1V1 logique OK, Manque modif deathscreen

This commit is contained in:
PC-PAUL\paulf 2025-01-14 17:41:14 +01:00
parent f47def84dd
commit 2bf911a312
9 changed files with 55 additions and 874 deletions

View File

@ -298,7 +298,7 @@ GameObject:
- component: {fileID: 70882852} - component: {fileID: 70882852}
- component: {fileID: 70882851} - component: {fileID: 70882851}
m_Layer: 0 m_Layer: 0
m_Name: GameSessionPlayer2 m_Name: GameSession
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -316,7 +316,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c734ff3b010f1640a238a992583af1f, type: 3} m_Script: {fileID: 11500000, guid: 8c734ff3b010f1640a238a992583af1f, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
<CurveStrengthY>k__BackingField: 0 <CurveStrengthY>k__BackingField: 0.0015
<CurveStrengthX>k__BackingField: 0 <CurveStrengthX>k__BackingField: 0
curveOrigin: {fileID: 1480218705} curveOrigin: {fileID: 1480218705}
--- !u!114 &70882852 --- !u!114 &70882852

View File

@ -15,4 +15,6 @@ MonoBehaviour:
<InvincibilityTime>k__BackingField: 600 <InvincibilityTime>k__BackingField: 600
<JumpHeight>k__BackingField: 6 <JumpHeight>k__BackingField: 6
<LaneSwitchSpeed>k__BackingField: 20 <LaneSwitchSpeed>k__BackingField: 20
<Speed>k__BackingField: 10 <CurrentSpeed>k__BackingField: 10
<InitialSpeed>k__BackingField: 10
<SpeedAcceleration>k__BackingField: 0

View File

@ -7,5 +7,7 @@ public class PlayerData : ScriptableObject
[field: SerializeField] public int InvincibilityTime { get; private set; } [field: SerializeField] public int InvincibilityTime { get; private set; }
[field: SerializeField] public float JumpHeight { get; private set; } [field: SerializeField] public float JumpHeight { get; private set; }
[field: SerializeField] public float LaneSwitchSpeed { get; private set; } [field: SerializeField] public float LaneSwitchSpeed { get; private set; }
[field: SerializeField] public float Speed { get; private set; } [field: SerializeField] public float CurrentSpeed { get; set; }
[field: SerializeField] public float InitialSpeed { get; private set; }
[field: SerializeField] public float SpeedAcceleration { get; private set; }
} }

View File

@ -18,8 +18,9 @@ public class GameSession : MonoBehaviour,IResettable
private IInputTranslator _player1InputTranslator; private IInputTranslator _player1InputTranslator;
private IInputTranslator _player2InputTranslator; private IInputTranslator _player2InputTranslator;
public static string MatchResult { get; private set; } public static string MatchResult { get; private set; }
private bool isSessionPaused = false; private bool _isSessionPaused = false;
private bool isInputAlreadyRestricted = false; private bool _isInputAlreadyRestricted = false;
private float _speedAtPause;
private void Awake() private void Awake()
{ {
@ -77,19 +78,26 @@ public class GameSession : MonoBehaviour,IResettable
public void PauseSession(bool isPaused) public void PauseSession(bool isPaused)
{ {
Time.timeScale = isPaused ? 0 : 1; if (isPaused)
if (!isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) ) _speedAtPause = player1.playerData.CurrentSpeed;
else
{ {
isInputAlreadyRestricted = true; player1.playerData.CurrentSpeed = _speedAtPause;
isSessionPaused = isPaused; }
Time.timeScale = isPaused ? 0 : 1;
if (!_isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) )
{
_isInputAlreadyRestricted = true;
_isSessionPaused = isPaused;
return; return;
} }
if (!_player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && !_player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands)) if (!_player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && !_player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands))
{ {
isInputAlreadyRestricted = false; _isInputAlreadyRestricted = false;
} }
isSessionPaused = isPaused; _isSessionPaused = isPaused;
if (isInputAlreadyRestricted) if (_isInputAlreadyRestricted)
{ {
return; return;
} }

View File

@ -41,15 +41,15 @@ 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;
if (CurrentHealth <= 0){ // if (CurrentHealth <= 0){
CurrentHealth = 0; // CurrentHealth = 0;
OnOutOfHealth?.Invoke(); // OnOutOfHealth?.Invoke();
} // }
OnHealthChanged(this, healthArgs.GetUpdatedArgs(CurrentHealth, MaxHealth)); // OnHealthChanged(this, healthArgs.GetUpdatedArgs(CurrentHealth, MaxHealth));
} // }
} }
public void Heal(int amount) public void Heal(int amount)
{ {

View File

@ -34,14 +34,11 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
#region PlayerComponents #region PlayerComponents
[SerializeField] private PlayerData playerData; [SerializeField] internal PlayerData playerData;
public IDamageable PlayerHealth { get; private set; } public IDamageable PlayerHealth { get; private set; }
public Statistics PlayerStatictics { get; private set; } public Statistics PlayerStatictics { get; private set; }
public PlayerData PlayerData public PlayerData PlayerData { get { return playerData; } }
{
get { return playerData; }
}
#endregion #endregion
@ -85,6 +82,7 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
PlayerStatictics = GetComponent<Statistics>(); PlayerStatictics = GetComponent<Statistics>();
PlayerStateMachine = new PlayerStateMachine(this); PlayerStateMachine = new PlayerStateMachine(this);
InvincibilityTime = playerData.InvincibilityTime; InvincibilityTime = playerData.InvincibilityTime;
playerData.CurrentSpeed = playerData.InitialSpeed;
} }
private void OnEnable() private void OnEnable()
@ -104,6 +102,7 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
private void Update() private void Update()
{ {
playerData.CurrentSpeed += playerData.SpeedAcceleration / 1000;
PlayerStateMachine.Tick(); PlayerStateMachine.Tick();
} }
@ -182,6 +181,7 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
LaneSystem.ResetToDefault(); LaneSystem.ResetToDefault();
Physics.SyncTransforms(); Physics.SyncTransforms();
ReloadAnimator(); ReloadAnimator();
playerData.CurrentSpeed = playerData.InitialSpeed;
} }
public void TranslateCommand(ECommand command, PressedState state) public void TranslateCommand(ECommand command, PressedState state)

View File

@ -12,7 +12,7 @@ public abstract class MovingState : PlayerState
public MovingState(PlayerStateMachine playerStateMachine) : base(playerStateMachine) public MovingState(PlayerStateMachine playerStateMachine) : base(playerStateMachine)
{ {
this.playerSM = playerStateMachine; this.playerSM = playerStateMachine;
speed = playerData.Speed; speed = playerData.CurrentSpeed;
laneSwitchSpeed = playerData.LaneSwitchSpeed; laneSwitchSpeed = playerData.LaneSwitchSpeed;
} }
public override void OnStateEnter(){} public override void OnStateEnter(){}

View File

@ -8,9 +8,14 @@ public class ChunkGenerator : MonoBehaviour
[SerializeField] private LaneSystem LaneSystem; [SerializeField] private LaneSystem LaneSystem;
public CoinPool CoinPool { get; private set; } public CoinPool CoinPool { get; private set; }
[field: SerializeField] public List<ObstaclePool> ObstaclePools { get; private set; } [field: SerializeField] public List<ObstaclePool> ObstaclePools { get; private set; }
private bool _isFirstChunk = true;
public Chunk Generate(Chunk chunkToFill) public Chunk Generate(Chunk chunkToFill)
{ {
if (_isFirstChunk)
{
_isFirstChunk = false;
return chunkToFill;
}
if (ObstaclePools.IsEmpty()) if (ObstaclePools.IsEmpty())
return chunkToFill; return chunkToFill;
var obstaclePool = ObstaclePools.GetRandomElement(); var obstaclePool = ObstaclePools.GetRandomElement();

File diff suppressed because one or more lines are too long