Jump and crouch OK, lane broken

This commit is contained in:
PC-PAUL\paulf 2025-01-09 10:18:10 +01:00
parent ee95dd043f
commit 2898130a82
10 changed files with 1066 additions and 68 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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();

View File

@ -50,10 +50,17 @@ 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);
@ -164,46 +171,28 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
{ {
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.UP2: case ECommand.UP:
PlayerStateMachine.SetState(PlayerStateMachine.PlayerJumpState); case ECommand.UP2:
break; PlayerStateMachine.SetState(PlayerStateMachine.PlayerJumpState);
case ECommand.DOWN2: break;
PlayerStateMachine.SetState(PlayerStateMachine.PlayerSlideState); case ECommand.DOWN:
break; case ECommand.DOWN2:
default: PlayerStateMachine.SetState(PlayerStateMachine.PlayerSlideState);
break; break;
} default:
} 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;
}
} }
} }
} }
} }

View File

@ -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

View File

@ -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

View File

@ -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