Compare commits
No commits in common. "f36578c4293c5d9902a9e48d0f020ea50f69e906" and "8ca5097604d7793d64d9c607d051dc24059e5a4b" have entirely different histories.
f36578c429
...
8ca5097604
@ -335,7 +335,6 @@ MonoBehaviour:
|
|||||||
player2: {fileID: 2249596435903131710}
|
player2: {fileID: 2249596435903131710}
|
||||||
scoreboard: {fileID: 634835458}
|
scoreboard: {fileID: 634835458}
|
||||||
isDuoMode: 1
|
isDuoMode: 1
|
||||||
playerData: {fileID: 11400000, guid: 928d6efd735c3814d955e3f955a0264a, type: 2}
|
|
||||||
--- !u!4 &70882853
|
--- !u!4 &70882853
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -533,7 +533,6 @@ MonoBehaviour:
|
|||||||
player2: {fileID: 0}
|
player2: {fileID: 0}
|
||||||
scoreboard: {fileID: 634835458}
|
scoreboard: {fileID: 634835458}
|
||||||
isDuoMode: 0
|
isDuoMode: 0
|
||||||
playerData: {fileID: 11400000, guid: 928d6efd735c3814d955e3f955a0264a, type: 2}
|
|
||||||
--- !u!4 &93601729
|
--- !u!4 &93601729
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -7,7 +7,7 @@ MonoBehaviour:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 0}
|
m_GameObject: {fileID: 0}
|
||||||
m_Enabled: 0
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 9055f72a604bc3f4ba01bc120f0643d2, type: 3}
|
m_Script: {fileID: 11500000, guid: 9055f72a604bc3f4ba01bc120f0643d2, type: 3}
|
||||||
m_Name: PlayerData
|
m_Name: PlayerData
|
||||||
@ -15,6 +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
|
||||||
|
<CurrentSpeed>k__BackingField: 10
|
||||||
<InitialSpeed>k__BackingField: 10
|
<InitialSpeed>k__BackingField: 10
|
||||||
<CurrentSpeed>k__BackingField: 401.62177
|
<SpeedAcceleration>k__BackingField: 0
|
||||||
<SpeedAcceleration>k__BackingField: 1
|
|
||||||
|
@ -1,39 +1,13 @@
|
|||||||
using System;
|
using System.Collections;
|
||||||
using System.Collections;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
[CreateAssetMenu(fileName = "PlayerData", menuName = "ScriptableObjects/Player")]
|
[CreateAssetMenu(fileName = "PlayerData", menuName = "ScriptableObjects/Player")]
|
||||||
public sealed class PlayerData : ScriptableObject
|
public class PlayerData : ScriptableObject
|
||||||
{
|
{
|
||||||
// Serialize Fields
|
[field: SerializeField] public int InvincibilityTime { get; private set; }
|
||||||
[field: SerializeField] public int InvincibilityTime { get; protected 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 CurrentSpeed { get; set; }
|
||||||
[field: SerializeField] public float InitialSpeed { get; private set; }
|
[field: SerializeField] public float InitialSpeed { get; private set; }
|
||||||
[field: SerializeField] public float CurrentSpeed { get; private set; }
|
|
||||||
[field: SerializeField] public float SpeedAcceleration { get; private set; }
|
[field: SerializeField] public float SpeedAcceleration { get; private set; }
|
||||||
|
|
||||||
// Other attributes
|
|
||||||
private bool onPause = false;
|
|
||||||
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
CurrentSpeed = InitialSpeed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Reset()
|
|
||||||
{
|
|
||||||
CurrentSpeed = InitialSpeed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update()
|
|
||||||
{
|
|
||||||
if (!onPause)
|
|
||||||
CurrentSpeed += SpeedAcceleration / 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void isPaused(bool isPaused)
|
|
||||||
{
|
|
||||||
onPause = isPaused;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,6 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
[SerializeField] [CanBeNull] private Player player2;
|
[SerializeField] [CanBeNull] private Player player2;
|
||||||
[SerializeField] private Scoreboard scoreboard;
|
[SerializeField] private Scoreboard scoreboard;
|
||||||
[SerializeField] private Boolean isDuoMode;
|
[SerializeField] private Boolean isDuoMode;
|
||||||
[SerializeField] private PlayerData playerData;
|
|
||||||
|
|
||||||
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; }
|
||||||
@ -40,7 +39,6 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
}
|
}
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
playerData.Update();
|
|
||||||
_player1InputTranslator.Tick();
|
_player1InputTranslator.Tick();
|
||||||
if (isDuoMode)
|
if (isDuoMode)
|
||||||
{
|
{
|
||||||
@ -48,8 +46,8 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
}
|
}
|
||||||
|
|
||||||
Curver.Tick();
|
Curver.Tick();
|
||||||
// curver.SinCurveX();
|
// curver.SinCurveX();
|
||||||
// Curver.SinCurveY();
|
// Curver.SinCurveY();
|
||||||
//Curver.TurnWorldToLeft();
|
//Curver.TurnWorldToLeft();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,25 +63,29 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
player2Holder.Init(true);
|
player2Holder.Init(true);
|
||||||
_player2InputTranslator = new InputTranslator<KeyBinding>(player2Holder, true);
|
_player2InputTranslator = new InputTranslator<KeyBinding>(player2Holder, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
playerData.Reset();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddCommandTranslator(ICommandTranslator translator, bool isPlayer2)
|
public void AddCommandTranslator(ICommandTranslator translator, bool isPlayer2)
|
||||||
{
|
{
|
||||||
if (isPlayer2)
|
if (isPlayer2)
|
||||||
{
|
{
|
||||||
_player2InputTranslator.AddCommandTranslator(translator);
|
_player2InputTranslator.AddCommandTranslator(translator);
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
_player1InputTranslator.AddCommandTranslator(translator);
|
_player1InputTranslator.AddCommandTranslator(translator);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void PauseSession(bool isPaused)
|
public void PauseSession(bool isPaused)
|
||||||
{
|
{
|
||||||
playerData.isPaused(isPaused);
|
if (isPaused)
|
||||||
|
_speedAtPause = player1.playerData.CurrentSpeed;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player1.playerData.CurrentSpeed = _speedAtPause;
|
||||||
|
}
|
||||||
|
|
||||||
Time.timeScale = isPaused ? 0 : 1;
|
Time.timeScale = isPaused ? 0 : 1;
|
||||||
if (!_isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) )
|
if (!_isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) )
|
||||||
{
|
{
|
||||||
@ -182,7 +184,6 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
public void ResetToDefault()
|
public void ResetToDefault()
|
||||||
{
|
{
|
||||||
PauseSession(false);
|
PauseSession(false);
|
||||||
playerData.Reset();
|
|
||||||
if(player1 !=null)
|
if(player1 !=null)
|
||||||
player1.ResetToDefault();
|
player1.ResetToDefault();
|
||||||
if (isDuoMode && player2 != null)
|
if (isDuoMode && player2 != null)
|
||||||
@ -190,9 +191,4 @@ public class GameSession : MonoBehaviour,IResettable
|
|||||||
player2.ResetToDefault();
|
player2.ResetToDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerData GetPlayerData()
|
|
||||||
{
|
|
||||||
return this.playerData;
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -34,10 +34,11 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
|||||||
|
|
||||||
#region PlayerComponents
|
#region PlayerComponents
|
||||||
|
|
||||||
public 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 { get { return playerData; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -47,8 +48,14 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
|||||||
|
|
||||||
public LaneSystem LaneSystem
|
public LaneSystem LaneSystem
|
||||||
{
|
{
|
||||||
get => laneSystem;
|
get
|
||||||
private set => laneSystem = value;
|
{
|
||||||
|
return laneSystem;
|
||||||
|
}
|
||||||
|
private set
|
||||||
|
{
|
||||||
|
laneSystem = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -65,7 +72,6 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
|||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
playerData = GameSession.Instance.GetPlayerData();
|
|
||||||
GameSession.Instance.AddCommandTranslator(this, isPlayer2);
|
GameSession.Instance.AddCommandTranslator(this, isPlayer2);
|
||||||
animator = GetComponent<Animator>();
|
animator = GetComponent<Animator>();
|
||||||
if (animator)
|
if (animator)
|
||||||
@ -76,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()
|
||||||
@ -90,6 +97,7 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
|||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
|
playerData.CurrentSpeed += playerData.SpeedAcceleration / 1000;
|
||||||
PlayerStateMachine.Tick();
|
PlayerStateMachine.Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,6 +176,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)
|
||||||
|
@ -8,7 +8,7 @@ public abstract class MovingState : PlayerState
|
|||||||
private float speed; //SO
|
private float speed; //SO
|
||||||
private float laneSwitchSpeed; //SO
|
private float laneSwitchSpeed; //SO
|
||||||
protected const float gravity = -9.8f;
|
protected const float gravity = -9.8f;
|
||||||
private float invincibilityTime => playerSM.playerData.InvincibilityTime;
|
private float invincibilityTime => playerSM.PlayerData.InvincibilityTime;
|
||||||
public MovingState(PlayerStateMachine playerStateMachine) : base(playerStateMachine)
|
public MovingState(PlayerStateMachine playerStateMachine) : base(playerStateMachine)
|
||||||
{
|
{
|
||||||
this.playerSM = playerStateMachine;
|
this.playerSM = playerStateMachine;
|
||||||
|
@ -11,7 +11,7 @@ public abstract class PlayerState : State<Player>
|
|||||||
public PlayerState(PlayerStateMachine playerStateMachine)
|
public PlayerState(PlayerStateMachine playerStateMachine)
|
||||||
{
|
{
|
||||||
playerSM = playerStateMachine;
|
playerSM = playerStateMachine;
|
||||||
playerData = playerStateMachine.playerData;
|
playerData = playerStateMachine.PlayerData;
|
||||||
playerTransform = playerStateMachine.PlayerTransform;
|
playerTransform = playerStateMachine.PlayerTransform;
|
||||||
}
|
}
|
||||||
public override void Tick()
|
public override void Tick()
|
||||||
|
@ -4,13 +4,14 @@ using UnityEngine.Animations.Rigging;
|
|||||||
public class PlayerStateMachine : StateMachine<Player>
|
public class PlayerStateMachine : StateMachine<Player>
|
||||||
{
|
{
|
||||||
private Player player;
|
private Player player;
|
||||||
public PlayerData playerData;
|
private PlayerData playerData;
|
||||||
private Transform playerTransform;
|
private Transform playerTransform;
|
||||||
public Transform PlayerTransform { get { return playerTransform; } }
|
public Transform PlayerTransform { get { return playerTransform; } }
|
||||||
|
public PlayerData PlayerData { get { return playerData; } }
|
||||||
public PlayerStateMachine(Player player)
|
public PlayerStateMachine(Player player)
|
||||||
{
|
{
|
||||||
this.player = player;
|
this.player = player;
|
||||||
playerData = GameSession.Instance.GetPlayerData();
|
playerData = player.PlayerData;
|
||||||
playerTransform = player.transform;
|
playerTransform = player.transform;
|
||||||
InitStates();
|
InitStates();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user