diff options
Diffstat (limited to 'Penguloon/Levels/LevelBase.cs')
| -rw-r--r-- | Penguloon/Levels/LevelBase.cs | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/Penguloon/Levels/LevelBase.cs b/Penguloon/Levels/LevelBase.cs index 31f94fa..013bd94 100644 --- a/Penguloon/Levels/LevelBase.cs +++ b/Penguloon/Levels/LevelBase.cs @@ -21,8 +21,10 @@ namespace Penguloon.Levels public Map Map { get; set; } public int Health { get; set; } + public int Money { get; set; } - public int Money { get; set; } = 0; + public int HealthBase { get; set; } + public int MoneyBase { get; set; } public int MoneySpent { get; set; } = 0; @@ -37,16 +39,21 @@ namespace Penguloon.Levels public TouchLocation[] PrevTouchLocations { get; set; } public DateTime StartDate { get; set; } + public DateTime EndDate { get; set; } + + public bool NewPR { get; set; } = false; public LevelBase() { - + } public abstract void CreateMap(); public virtual void Initialize(GameScene sceneBase) { + MoneyBase = Money; + HealthBase = Health; StartDate = DateTime.Now; this.ParentScene = sceneBase; CreateMap(); @@ -62,12 +69,31 @@ namespace Penguloon.Levels DrawSelectedObject(); - string time = (DateTime.Now - StartDate).ToString("hh':'mm':'ss"); + string time = ""; + + if (!Finished) + time = (DateTime.Now - StartDate).ToString("hh':'mm':'ss"); + else + time = (EndDate - StartDate).ToString("hh':'mm':'ss"); ParentScene.DrawText(ContentManager.GetFont("Fonts/GWENT/36"), time, new Vector2(10, StaticUIValues.ScreenViewport.Y - ContentManager.GetFont("Fonts/GWENT/36").MeasureString("XD").Y - 10), new Vector2(), TextAllignment.LeftTop, Color.White, Color.Black, 2); } + public void Restart() + { + CreateMap(); + Map.WaveManager.CurrentWave = 1; + + ParentScene.StartRoundBtn.ControlState = ControlState.Idle; + StartDate = DateTime.Now; + Kills = 0; + MoneySpent = 0; + Money = MoneyBase; + Health = HealthBase; + Finished = false; + } + private void DrawSelectedObject() { if (ParentScene.ObjectSeletor.State == Controls.State.Idle || ParentScene.ObjectSeletor.SelectedObjectIndex == -1) return; @@ -110,9 +136,12 @@ namespace Penguloon.Levels { Map.Update(deltaTime); - if(Health <= 0) + if(Health <= 0 && !Finished) { Finished = true; + EndDate = DateTime.Now; + ParentScene.IngameEndStats.State = IngameOptionsState.Show; + FinishGame(); } UpdateUnique(deltaTime, touchLocations); @@ -249,7 +278,10 @@ namespace Penguloon.Levels UserdataManager.HighestKills = Kills; if (Map.WaveManager.CurrentWave - 1 > UserdataManager.HighestRound) + { UserdataManager.HighestRound = Map.WaveManager.CurrentWave - 1; + NewPR = true; + } UserdataManager.WriteData(ParentScene.Main.Context); |
