1V1 logique OK, Manque modif deathscreen
This commit is contained in:
parent
f47def84dd
commit
2bf911a312
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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; }
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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)
|
||||||
|
@ -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(){}
|
||||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user