Compare commits

...

4 Commits

9 changed files with 19339 additions and 19552 deletions

View File

@ -1,9 +1,5 @@
fileFormatVersion: 2
<<<<<<<< HEAD:Assets/TextMesh Pro/Examples & Extras/Scenes/27 - Double Pass Shader Example.unity.meta
guid: 43c23d1fff294aa4b90d180240a2295a
========
guid: 9fc0d4010bbf28b4594072e72b8655ab
>>>>>>>> 4c350d16a4b31db0659a0e5146e5626a353b2200:Assets/Scenes/DeathScreen.unity.meta
DefaultImporter:
externalObjects: {}
userData:

View File

@ -3820,6 +3820,10 @@ PrefabInstance:
propertyPath: laneSystem
value:
objectReference: {fileID: 106057762}
- target: {fileID: 7509186232753540492, guid: 01fa89ab9028c864b8560621b7d51f50, type: 3}
propertyPath: playerData
value:
objectReference: {fileID: 11400000, guid: 928d6efd735c3814d955e3f955a0264a, type: 2}
- target: {fileID: 7581911058254726377, guid: 01fa89ab9028c864b8560621b7d51f50, type: 3}
propertyPath: m_Name
value: Player

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; set; }
[field: SerializeField] public float InitialSpeed { get; private set; }
[field: SerializeField] public float SpeedAcceleration { get; private set; }
[field: SerializeField] public float CurrentSpeed { get; set; }
}

View File

@ -13,6 +13,7 @@ public class GameSession : MonoBehaviour,IResettable
private IInputTranslator inputTranslator;
private bool isSessionPaused = false;
private float speedAtPause;
private bool isInputAlreadyRestricted = false;
private void Awake()
@ -60,6 +61,15 @@ public class GameSession : MonoBehaviour,IResettable
public void PauseSession(bool isPaused)
{
// Save the speed before pausing the game and restore it while the game resume
if (isPaused)
{
speedAtPause = currentPlayer.PlayerData.CurrentSpeed;
}else{
currentPlayer.PlayerData.CurrentSpeed = speedAtPause;
}
Time.timeScale = isPaused ? 0 : 1;
if (!isSessionPaused && inputTranslator.IsTranslationResticted(InputConstants.InGameCommands))
{

View File

@ -29,7 +29,6 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
[SerializeField] private PlayerData playerData;
private int initialSpeed;
public IDamageable PlayerHealth { get; private set; }
public Statistics PlayerStatictics { get; private set; }
public PlayerData PlayerData { get { return playerData; } }
@ -60,7 +59,6 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
PlayerStatictics = GetComponent<Statistics>();
PlayerStateMachine = new PlayerStateMachine(this);
InvincibilityTime = playerData.InvincibilityTime;
initialSpeed = (int)playerData.Speed;
}
private void OnEnable()
{
@ -78,7 +76,7 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
private void Update()
{
PlayerData.Speed += 0.0001f;
playerData.CurrentSpeed += playerData.SpeedAcceleration / 100;
// Add smthg to manage the animator speed
PlayerStateMachine.Tick();
}
@ -113,7 +111,7 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
private void Die()
{
PlayerData.Speed = initialSpeed;
PlayerData.CurrentSpeed = PlayerData.InitialSpeed;
PlayerStateMachine.SetState(PlayerStateMachine.PlayerDeadState);
GameSession.Instance.UpdateScoreboard(new ScoreboardEntry(name,PlayerStatictics.Score));
@ -133,6 +131,7 @@ public class Player : MonoBehaviour,IResettable, ICommandTranslator
}
public void ResetToDefault()
{
PlayerData.CurrentSpeed = PlayerData.InitialSpeed;
PlayerStateMachine.SetState(null);
PlayerStatictics.ResetToDefault();
LaneSystem.ResetToDefault();

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(){}
@ -21,7 +21,7 @@ public abstract class MovingState : PlayerState
public override void Tick()
{
speed = playerData.Speed;
speed = playerData.CurrentSpeed;
//HandleDirection();
playerSM.HorizontalDeltaPosition = playerSM.PlayerTransform.forward * speed * Time.deltaTime ;
playerSM.HorizontalDeltaPosition += playerSM.PlayerTransform.forward * speed * Time.deltaTime;

View File

@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class ScoreboardEntriesTable
{
@ -13,12 +14,12 @@ public class ScoreboardEntriesTable
public class Scoreboard : MonoBehaviour, ICommandTranslator
{
[SerializeField] private ScoreboardView scoreboardView;
[SerializeField] private int maxEntries;
private List<ScoreboardEntry> entries = new List<ScoreboardEntry>();
public event Action<ScoreboardEntry> OnEntryAdded;
[SerializeField] private ScoreboardView scoreboardView;
private void Start()
{
@ -29,17 +30,15 @@ public class Scoreboard : MonoBehaviour, ICommandTranslator
return;
if (entriesTable.entries == null)
return;
List<PlayerScoreboardCardData> scoreboardCardDatas = new List<PlayerScoreboardCardData>();
for (int i = 0; i < entriesTable.entries.Count; i++)
{
entries.Add(entriesTable.entries[i]);
OnEntryAdded?.Invoke(entriesTable.entries[i]);
PlayerScoreboardCardData cardData = new PlayerScoreboardCardData(entriesTable.entries[i].Name, entriesTable.entries[i].Score.ToString());
scoreboardCardDatas.Add(cardData);
}
SortScoreboardEntriesByHighscore(entries);
SortScoreboardCardsDatasByHighscore(scoreboardCardDatas);
scoreboardView.AddPlayerCards(scoreboardCardDatas);
// Sort scores descending then creates cards (invert this order cause issues)
entries.Sort((x, y) => y.Score.CompareTo(x.Score));
scoreboardView.AddEntries(entries.GetRange(0, maxEntries));
}
public void AddScoreboardEntry(string entryName, int entryScore)
@ -68,11 +67,11 @@ public class Scoreboard : MonoBehaviour, ICommandTranslator
public void SaveScoreboardEntriesTable()
{
SortScoreboardEntriesByHighscore(entries);
ScoreboardEntriesTable scoreboardEntriesTable = new ScoreboardEntriesTable(entries);
string jsonScoreboardEntries = JsonUtility.ToJson(scoreboardEntriesTable);
PlayerPrefs.SetString("ScoreboardEntriesTableTest", jsonScoreboardEntries);
PlayerPrefs.Save();
}
public void TranslateCommand(ECommand command, PressedState state)

View File

@ -26,6 +26,15 @@ public class ScoreboardView : BaseView
AddPlayerCard(cardData);
}
}
public void AddEntries(List<ScoreboardEntry> entries)
{
int rank = 1;
foreach (var entry in entries)
{
AddPlayerCard(new PlayerScoreboardCardData(rank + ".\t" + entry.Name, entry.Score.ToString()));
rank++;
}
}
private void AddPlayerCard(PlayerScoreboardCardData cardData)
{

File diff suppressed because one or more lines are too long