private void CalculateRank(StageCompletedData data) { var ranks = new string[] { "D", "C", "B", "A", "S" }; if (GameMap.Instance.CurrentMapId == 5 && data.HeartsLost == 0 && data.EnemiesDefeated >= data.MaxEnemies) { _rank = "S"; return; } var count = 0; if (data.CoinsCollected >= data.MaxCoins) { count++; } if (data.HeartsLost == 0) { count++; } if (data.EnemiesDefeated >= data.MaxEnemies) { count++; } if (data.Time <= data.MaxTime) { count++; } _rank = ranks[count]; }
private void CalculateRank(StageCompletedData data) { var ranks = new string[] { "D", "C", "B", "A", "S" }; var count = 0; if (data.CoinsCollected >= data.MaxCoins) { count++; } if (data.HeartsLost == 0) { count++; } if (data.EnemiesDefeated >= data.MaxEnemies) { count++; } if (data.Time <= data.MaxTime) { count++; } _rank = ranks[count]; }
public void Initialize(StageCompletedData data) { _data = data; var screenSize = SceneManager.Instance.VirtualSize; var font = SceneManager.Instance.GameFont; var format = "{0}/{1}"; var coins = data.CoinsCollected; var hearts = data.HeartsLost; var enemies = data.EnemiesDefeated; var time = data.Time; var failed = data.Failed; var titleMesured = SceneManager.Instance.GameFontBig.MeasureString(failed ? TitleFailed : TitleCompleted); _titlePosition = new Vector2((screenSize.X - titleMesured.X) / 2, -titleMesured.Y); var l1 = font.MeasureString(CoinsEarned); var l2 = font.MeasureString(HeartsLost); var l3 = font.MeasureString(EnemiesDefeated); var l4 = font.MeasureString(Time); _rowsInnerPositionsRight = new float[] { -font.MeasureString(String.Format(format, 0, data.MaxCoins)).X - 10, -font.MeasureString(String.Format(format, 0, data.HeartsLost)).X - 10, -font.MeasureString(String.Format(format, 0, data.MaxEnemies)).X - 10, -font.MeasureString(FormatTime(data.Time)).X - 10 }; _rowsInnerPositionsLeft = new float[, ] { // Current, Initial { -l1.X, -l1.X }, { -l2.X, -l2.X }, { -l3.X, -l3.X }, { -l4.X, -l4.X }, }; _values = new int[, ] { { 0, coins }, { 0, hearts }, { 0, enemies } }; _timeValues = new TimeSpan[] { new TimeSpan(), time }; if (failed) { _rank = "F"; } else { _completed = true; CalculateRank(data); } if (_rank == "S") { var texture = ImageManager.loadScene(SceneResFolder, "rank" + _rank); var frames = new Rectangle[] { new Rectangle(0, 0, 80, 80), new Rectangle(80, 0, 80, 80), new Rectangle(160, 0, 80, 80) }; _rankSprite = new AnimatedSprite(texture, frames, 100, Vector2.Zero); _rankSprite.Origin = new Vector2(40, 40); } else { _rankSprite = new Sprite(ImageManager.loadScene(SceneResFolder, "rank" + _rank)); } _rankSprite.Position = new Vector2(315, 199); _rankSprite.IsVisible = false; _rankSprite.Scale = new Vector2(3, 3); var rm = font.MeasureString(_rankSentences[_rank]); _rankSentencePosition = new Vector2(270 - rm.X, 199 - rm.Y / 2); }
private void CalculateRank(StageCompletedData data) { var ranks = new string[] { "D", "C", "B", "A", "S" }; var count = 0; if (data.CoinsCollected >= data.MaxCoins) count++; if (data.HeartsLost == 0) count++; if (data.EnemiesDefeated >= data.MaxEnemies) count++; if (data.Time <= data.MaxTime) count++; _rank = ranks[count]; }
public void Initialize(StageCompletedData data) { _data = data; var screenSize = SceneManager.Instance.VirtualSize; var font = SceneManager.Instance.GameFont; var format = "{0}/{1}"; var coins = data.CoinsCollected; var hearts = data.HeartsLost; var enemies = data.EnemiesDefeated; var time = data.Time; var failed = data.Failed; var titleMesured = SceneManager.Instance.GameFontBig.MeasureString(failed ? TitleFailed : TitleCompleted); _titlePosition = new Vector2((screenSize.X - titleMesured.X) / 2, -titleMesured.Y); var l1 = font.MeasureString(CoinsEarned); var l2 = font.MeasureString(HeartsLost); var l3 = font.MeasureString(EnemiesDefeated); var l4 = font.MeasureString(Time); _rowsInnerPositionsRight = new float[] { -font.MeasureString(String.Format(format, 0, data.MaxCoins)).X - 10, -font.MeasureString(String.Format(format, 0, data.HeartsLost)).X - 10, -font.MeasureString(String.Format(format, 0, data.MaxEnemies)).X - 10, -font.MeasureString(FormatTime(data.Time)).X - 10 }; _rowsInnerPositionsLeft = new float[,] { // Current, Initial { -l1.X, -l1.X }, { -l2.X, -l2.X }, { -l3.X, -l3.X }, { -l4.X, -l4.X }, }; _values = new int[,] { { 0, coins }, { 0, hearts }, { 0, enemies } }; _timeValues = new TimeSpan[] { new TimeSpan(), time }; if (failed) { _rank = "F"; } else { _completed = true; CalculateRank(data); } if (_rank == "S") { var texture = ImageManager.loadScene(SceneResFolder, "rank" + _rank); var frames = new Rectangle[] { new Rectangle(0, 0, 80, 80), new Rectangle(80, 0, 80, 80), new Rectangle(160, 0, 80, 80) }; _rankSprite = new AnimatedSprite(texture, frames, 100, Vector2.Zero); _rankSprite.Origin = new Vector2(40, 40); } else { _rankSprite = new Sprite(ImageManager.loadScene(SceneResFolder, "rank" + _rank)); } _rankSprite.Position = new Vector2(315, 199); _rankSprite.IsVisible = false; _rankSprite.Scale = new Vector2(3, 3); var rm = font.MeasureString(_rankSentences[_rank]); _rankSentencePosition = new Vector2(270 - rm.X, 199 - rm.Y / 2); }