using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input.Touch; using Penguloon.Scenes; using System; namespace Penguloon.Controls { public class IngameEndStats : ControlBase { public IngameOptionsState State { get; set; } = IngameOptionsState.Hide; public DateTime ShowTime { get; set; } public Button BtnExit { get; set; } public Button BtnRestart { get; set; } public IngameEndStats(SceneBase parentScene, Vector2 position, Vector2 size) : base(parentScene, position, size) { this.DrawText = false; this.BackgroundIdle = ContentManager.GetTexture("UI/optionsMenuBackground"); this.BackgroundPressed = ContentManager.GetTexture("UI/optionsMenuBackground"); this.BackgroundDisabled = ContentManager.GetTexture("UI/optionsMenuBackground"); Vector2 BtnSize = new Vector2(Size.X - 90, StaticUIValues.IngameUIPlayButtonHeight); Vector2 MsgBoxSize = new Vector2(900, 550); BtnExit = new Button(parentScene, new Vector2(position.X + (Size.X / 2) - (BtnSize.X / 2), Position.Y + Size.Y - 50 - BtnSize.Y), BtnSize, parentScene.Main.Resources.GetString(Resource.String.EndScreenExit)); BtnRestart = new Button(parentScene, new Vector2(position.X + (Size.X / 2) - (BtnSize.X / 2), Position.Y + Size.Y - 50 - BtnSize.Y - BtnSize.Y - 20), BtnSize, parentScene.Main.Resources.GetString(Resource.String.EndScreenRestart)); BtnExit.OnClick += BtnExit_OnClick; BtnRestart.OnClick += BtnRestart_OnClick; } private void BtnRestart_OnClick(object sender, ClickArgs e) { GameScene gameScene = (GameScene)ParentScene; this.State = IngameOptionsState.Hide; gameScene.Level.Restart(); } private void BtnExit_OnClick(object sender, ClickArgs e) { GameScene gameScene = (GameScene)ParentScene; SceneManager.SelectedScene = SelectedScene.Menu; } public override void Draw(float deltaTime) { if (State == IngameOptionsState.Hide) return; base.Draw(deltaTime); SpriteFont font_ = ContentManager.GetFont(StaticUIValues.MenuFont); int textHeight = (int)font_.MeasureString("Y").Y; GameScene scene = (GameScene)ParentScene; // game over ParentScene.DrawText(ContentManager.GetFont(StaticUIValues.MenuFont), ParentScene.Main.Resources.GetString(Resource.String.EndScreenGameOver), new Vector2(Position.X, Position.Y + 40), new Vector2(Size.X, 0), TextAllignment.CenterTop, Color.FromNonPremultiplied(111, 138, 183, 255), Color.Black, 2); // kills ParentScene.DrawText(ContentManager.GetFont(StaticUIValues.MenuFont), ParentScene.Main.Resources.GetString(Resource.String.EndScreenKills) + ": " + scene.Level.Kills, new Vector2(Position.X, Position.Y + (30 * 2) + (textHeight * 1)), new Vector2(Size.X, 0), TextAllignment.CenterTop, Color.White, Color.Black, 2); // wave ParentScene.DrawText(ContentManager.GetFont(StaticUIValues.MenuFont), ParentScene.Main.Resources.GetString(Resource.String.EndScreenWave) + ": " + (scene.Level.Map.WaveManager.CurrentWave - 1).ToString(), new Vector2(Position.X, Position.Y + (20 * 3) + (textHeight * 2)), new Vector2(Size.X, 0), TextAllignment.CenterTop, Color.White, Color.Black, 2); // pr if (scene.Level.NewPR) ParentScene.DrawText(ContentManager.GetFont(StaticUIValues.MenuFont), ParentScene.Main.Resources.GetString(Resource.String.EndScreenPR), new Vector2(Position.X, Position.Y + (20 * 4) + (textHeight * 3)), new Vector2(Size.X, 0), TextAllignment.CenterTop, Color.FromNonPremultiplied(220, 0, 0, 255), Color.Black, 2); BtnExit.Draw(deltaTime); BtnRestart.Draw(deltaTime); } public override void Update(float deltaTime, TouchLocation[] touchLocations) { if (State == IngameOptionsState.Hide) return; base.Update(deltaTime, touchLocations); BtnExit.Update(deltaTime, touchLocations); BtnRestart.Update(deltaTime, touchLocations); } } }