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

View File

@ -15,4 +15,6 @@ MonoBehaviour:
<InvincibilityTime>k__BackingField: 600
<JumpHeight>k__BackingField: 6
<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 float JumpHeight { 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 _player2InputTranslator;
public static string MatchResult { get; private set; }
private bool isSessionPaused = false;
private bool isInputAlreadyRestricted = false;
private bool _isSessionPaused = false;
private bool _isInputAlreadyRestricted = false;
private float _speedAtPause;
private void Awake()
{
@ -77,19 +78,26 @@ public class GameSession : MonoBehaviour,IResettable
public void PauseSession(bool isPaused)
{
Time.timeScale = isPaused ? 0 : 1;
if (!isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) )
if (isPaused)
_speedAtPause = player1.playerData.CurrentSpeed;
else
{
isInputAlreadyRestricted = true;
isSessionPaused = isPaused;
player1.playerData.CurrentSpeed = _speedAtPause;
}
Time.timeScale = isPaused ? 0 : 1;
if (!_isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) )
{
_isInputAlreadyRestricted = true;
_isSessionPaused = isPaused;
return;
}
if (!_player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && !_player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands))
{
isInputAlreadyRestricted = false;
_isInputAlreadyRestricted = false;
}
isSessionPaused = isPaused;
if (isInputAlreadyRestricted)
_isSessionPaused = isPaused;
if (_isInputAlreadyRestricted)
{
return;
}

View File

@ -41,15 +41,15 @@ public class Health : MonoBehaviour, IDamageable,IHealable, IResettable
}
public void TakeDamage(int amount)
{
if (CurrentHealth > 0)
{
CurrentHealth -= amount;
if (CurrentHealth <= 0){
CurrentHealth = 0;
OnOutOfHealth?.Invoke();
}
OnHealthChanged(this, healthArgs.GetUpdatedArgs(CurrentHealth, MaxHealth));
}
// if (CurrentHealth > 0)
// {
// CurrentHealth -= amount;
// if (CurrentHealth <= 0){
// CurrentHealth = 0;
// OnOutOfHealth?.Invoke();
// }
// OnHealthChanged(this, healthArgs.GetUpdatedArgs(CurrentHealth, MaxHealth));
// }
}
public void Heal(int amount)
{

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long