Jump and crouch OK, lane broken
This commit is contained in:
parent
ee95dd043f
commit
2898130a82
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,8 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
|
|
||||||
public static GameSession Instance { get; private set; }
|
public static GameSession Instance { get; private set; }
|
||||||
public WorldCurver Curver { get; private set; }
|
public WorldCurver Curver { get; private set; }
|
||||||
private IInputTranslator inputTranslator;
|
private IInputTranslator _player1InputTranslator;
|
||||||
|
private IInputTranslator _player2InputTranslator;
|
||||||
|
|
||||||
private bool isSessionPaused = false;
|
private bool isSessionPaused = false;
|
||||||
private bool isInputAlreadyRestricted = false;
|
private bool isInputAlreadyRestricted = false;
|
||||||
@ -34,7 +35,9 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
}
|
}
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
inputTranslator.Tick();
|
_player1InputTranslator.Tick();
|
||||||
|
_player2InputTranslator.Tick();
|
||||||
|
|
||||||
Curver.Tick();
|
Curver.Tick();
|
||||||
// curver.SinCurveX();
|
// curver.SinCurveX();
|
||||||
// Curver.SinCurveY();
|
// Curver.SinCurveY();
|
||||||
@ -43,26 +46,34 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
|
|
||||||
private void Init()
|
private void Init()
|
||||||
{
|
{
|
||||||
IBindingHolder<KeyBinding> keyHolder = new KeyBindingHolder();
|
var player1Holder = new KeyBindingHolder();
|
||||||
inputTranslator = new InputTranslator<KeyBinding>(keyHolder, isPlayer2);
|
player1Holder.Init(false);
|
||||||
|
_player1InputTranslator = new InputTranslator<KeyBinding>(player1Holder, false);
|
||||||
|
|
||||||
|
var player2Holder = new KeyBindingHolder();
|
||||||
|
player2Holder.Init(true);
|
||||||
|
_player2InputTranslator = new InputTranslator<KeyBinding>(player2Holder, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddCommandTranslator(ICommandTranslator translator)
|
public void AddCommandTranslator(ICommandTranslator translator, bool isPlayer2)
|
||||||
{
|
{
|
||||||
inputTranslator.AddCommandTranslator(translator);
|
if (isPlayer2)
|
||||||
|
_player2InputTranslator.AddCommandTranslator(translator);
|
||||||
|
else
|
||||||
|
_player1InputTranslator.AddCommandTranslator(translator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void PauseSession(bool isPaused)
|
public void PauseSession(bool isPaused)
|
||||||
{
|
{
|
||||||
Time.timeScale = isPaused ? 0 : 1;
|
Time.timeScale = isPaused ? 0 : 1;
|
||||||
if (!isSessionPaused && inputTranslator.IsTranslationResticted(InputConstants.InGameCommands))
|
if (!isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) )
|
||||||
{
|
{
|
||||||
isInputAlreadyRestricted = true;
|
isInputAlreadyRestricted = true;
|
||||||
isSessionPaused = isPaused;
|
isSessionPaused = isPaused;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!inputTranslator.IsTranslationResticted(InputConstants.InGameCommands))
|
if (!_player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && !_player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands))
|
||||||
{
|
{
|
||||||
isInputAlreadyRestricted = false;
|
isInputAlreadyRestricted = false;
|
||||||
}
|
}
|
||||||
@ -76,7 +87,9 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
|
|
||||||
public void RestrictInputs(List<ECommand> commands,bool isRestricted)
|
public void RestrictInputs(List<ECommand> commands,bool isRestricted)
|
||||||
{
|
{
|
||||||
inputTranslator.RestictTranslation(commands, isRestricted);
|
_player1InputTranslator.RestictTranslation(commands, isRestricted);
|
||||||
|
_player2InputTranslator.RestictTranslation(commands, isRestricted);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateScoreboard(ScoreboardEntry entry)
|
public void UpdateScoreboard(ScoreboardEntry entry)
|
||||||
|
@ -27,7 +27,7 @@ public class KeyBindingHolder : IBindingHolder<KeyBinding>
|
|||||||
{ECommand.RIGHT2, new KeyBinding(KeyCode.D)},
|
{ECommand.RIGHT2, new KeyBinding(KeyCode.D)},
|
||||||
};
|
};
|
||||||
|
|
||||||
public void Init(Boolean isPlayer2 = false)
|
public void Init(Boolean isPlayer2)
|
||||||
{
|
{
|
||||||
if (InputBindings == null)
|
if (InputBindings == null)
|
||||||
if (isPlayer2)
|
if (isPlayer2)
|
||||||
|
@ -6,7 +6,7 @@ public class Pause : MonoBehaviour,ICommandTranslator
|
|||||||
{
|
{
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
GameSession.Instance.AddCommandTranslator(this);
|
GameSession.Instance.AddCommandTranslator(this, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TranslateCommand(ECommand command, PressedState state)
|
public void TranslateCommand(ECommand command, PressedState state)
|
||||||
|
@ -42,7 +42,7 @@ public class Health : MonoBehaviour, IDamageable,IHealable, IResettable
|
|||||||
public void TakeDamage(int amount)
|
public void TakeDamage(int amount)
|
||||||
{
|
{
|
||||||
if (CurrentHealth > 0){
|
if (CurrentHealth > 0){
|
||||||
CurrentHealth -= amount;
|
//CurrentHealth -= amount; TODO: To change to take damage
|
||||||
if (CurrentHealth <= 0){
|
if (CurrentHealth <= 0){
|
||||||
CurrentHealth = 0;
|
CurrentHealth = 0;
|
||||||
OnOutOfHealth?.Invoke();
|
OnOutOfHealth?.Invoke();
|
||||||
|
@ -50,9 +50,16 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
|||||||
|
|
||||||
public LaneSystem LaneSystem
|
public LaneSystem LaneSystem
|
||||||
{
|
{
|
||||||
get { return laneSystem; }
|
get
|
||||||
private set { laneSystem = value; }
|
{
|
||||||
|
return laneSystem;
|
||||||
}
|
}
|
||||||
|
private set
|
||||||
|
{
|
||||||
|
laneSystem = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public CharacterController CharacterController { get; private set; }
|
public CharacterController CharacterController { get; private set; }
|
||||||
public PlayerCollider PlayerCollider { get; private set; }
|
public PlayerCollider PlayerCollider { get; private set; }
|
||||||
@ -65,7 +72,7 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
|||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
GameSession.Instance.AddCommandTranslator(this);
|
GameSession.Instance.AddCommandTranslator(this, isPlayer2);
|
||||||
animator = GetComponent<Animator>();
|
animator = GetComponent<Animator>();
|
||||||
if (animator)
|
if (animator)
|
||||||
PlayerAnimator = new PlayerAnimator(animator);
|
PlayerAnimator = new PlayerAnimator(animator);
|
||||||
@ -163,20 +170,22 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
|||||||
public void TranslateCommand(ECommand command, PressedState state)
|
public void TranslateCommand(ECommand command, PressedState state)
|
||||||
{
|
{
|
||||||
if (state.IsPressed)
|
if (state.IsPressed)
|
||||||
{
|
|
||||||
if (isPlayer2)
|
|
||||||
{
|
{
|
||||||
switch (command)
|
switch (command)
|
||||||
{
|
{
|
||||||
|
case ECommand.RIGHT:
|
||||||
case ECommand.RIGHT2:
|
case ECommand.RIGHT2:
|
||||||
PlayerStateMachine.IncreaseTargetLane();
|
PlayerStateMachine.IncreaseTargetLane();
|
||||||
break;
|
break;
|
||||||
|
case ECommand.LEFT:
|
||||||
case ECommand.LEFT2:
|
case ECommand.LEFT2:
|
||||||
PlayerStateMachine.DecreaseTargetLane();
|
PlayerStateMachine.DecreaseTargetLane();
|
||||||
break;
|
break;
|
||||||
|
case ECommand.UP:
|
||||||
case ECommand.UP2:
|
case ECommand.UP2:
|
||||||
PlayerStateMachine.SetState(PlayerStateMachine.PlayerJumpState);
|
PlayerStateMachine.SetState(PlayerStateMachine.PlayerJumpState);
|
||||||
break;
|
break;
|
||||||
|
case ECommand.DOWN:
|
||||||
case ECommand.DOWN2:
|
case ECommand.DOWN2:
|
||||||
PlayerStateMachine.SetState(PlayerStateMachine.PlayerSlideState);
|
PlayerStateMachine.SetState(PlayerStateMachine.PlayerSlideState);
|
||||||
break;
|
break;
|
||||||
@ -184,26 +193,6 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
switch (command)
|
|
||||||
{
|
|
||||||
case ECommand.RIGHT:
|
|
||||||
PlayerStateMachine.IncreaseTargetLane();
|
|
||||||
break;
|
|
||||||
case ECommand.LEFT:
|
|
||||||
PlayerStateMachine.DecreaseTargetLane();
|
|
||||||
break;
|
|
||||||
case ECommand.UP:
|
|
||||||
PlayerStateMachine.SetState(PlayerStateMachine.PlayerJumpState);
|
|
||||||
break;
|
|
||||||
case ECommand.DOWN:
|
|
||||||
PlayerStateMachine.SetState(PlayerStateMachine.PlayerSlideState);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ public class Scoreboard : MonoBehaviour, ICommandTranslator
|
|||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
GameSession.Instance.AddCommandTranslator(this);
|
GameSession.Instance.AddCommandTranslator(this, false);
|
||||||
string jsonScoreboardEntries = PlayerPrefs.GetString("ScoreboardEntriesTableTest"); //Binary file
|
string jsonScoreboardEntries = PlayerPrefs.GetString("ScoreboardEntriesTableTest"); //Binary file
|
||||||
ScoreboardEntriesTable entriesTable = JsonUtility.FromJson<ScoreboardEntriesTable>(jsonScoreboardEntries);
|
ScoreboardEntriesTable entriesTable = JsonUtility.FromJson<ScoreboardEntriesTable>(jsonScoreboardEntries);
|
||||||
if (entriesTable == null)
|
if (entriesTable == null)
|
||||||
|
File diff suppressed because one or more lines are too long
@ -14,5 +14,8 @@ EditorBuildSettings:
|
|||||||
- enabled: 1
|
- enabled: 1
|
||||||
path: Assets/Scenes/DeathScreen.unity
|
path: Assets/Scenes/DeathScreen.unity
|
||||||
guid: 9fc0d4010bbf28b4594072e72b8655ab
|
guid: 9fc0d4010bbf28b4594072e72b8655ab
|
||||||
|
- enabled: 1
|
||||||
|
path: Assets/Scenes/DuoGameScene.unity
|
||||||
|
guid: 682d64d1d4474994cba4504e7df89dd0
|
||||||
m_configObjects: {}
|
m_configObjects: {}
|
||||||
m_UseUCBPForAssetBundles: 0
|
m_UseUCBPForAssetBundles: 0
|
||||||
|
@ -2,8 +2,9 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!78 &1
|
--- !u!78 &1
|
||||||
TagManager:
|
TagManager:
|
||||||
serializedVersion: 2
|
serializedVersion: 3
|
||||||
tags: []
|
tags:
|
||||||
|
- PlayerEyes
|
||||||
layers:
|
layers:
|
||||||
- Default
|
- Default
|
||||||
- TransparentFX
|
- TransparentFX
|
||||||
@ -11,8 +12,8 @@ TagManager:
|
|||||||
-
|
-
|
||||||
- Water
|
- Water
|
||||||
- UI
|
- UI
|
||||||
-
|
- Player1
|
||||||
-
|
- Player2
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
@ -41,3 +42,5 @@ TagManager:
|
|||||||
- name: Default
|
- name: Default
|
||||||
uniqueID: 0
|
uniqueID: 0
|
||||||
locked: 0
|
locked: 0
|
||||||
|
m_RenderingLayers:
|
||||||
|
- Default
|
||||||
|
Loading…
x
Reference in New Issue
Block a user