public override void Paint() { if (Registers.gameState == GameState.Running) { //Type = 0, friendly missile //Type = 1, enemy missile if (type == 0) { GAME_ENGINE.SetColor(rda.Next(0, 255), rda.Next(0, 255), rda.Next(0, 255)); GAME_ENGINE.FillEllipse(rec_explosion); } else { #if (DEBUG) GAME_ENGINE.DrawBitmap(explosion_bmp, ExplosionLocationTopLeft); #endif } duration -= GAME_ENGINE.GetDeltaTime() * 2.4f; if (nukeTown != null && nuked == false) { List <Building> checkBuildings = gm.GetBuildings(); for (int i = 0; i < 6; i++) { if (i == 5) { Console.WriteLine(string.Format("Size: {0}", checkBuildings.Count)); i = 5; } if (checkBuildings[i] == null) { continue; } if (Utils.Distance(new Vector2f(checkBuildings[i].GetX() + checkBuildings[i].GetWidth() * 0.5f, checkBuildings[i].GetY() + checkBuildings[i].GetHeight()), ExplosionLocation) < 40f) { Console.WriteLine(string.Format("Building hit! {0}", i)); nukeTown.Nuke(); nuked = true; break; } } } if (type == 0) { ExplosionCollision(); } if (duration <= 0f) { Dispose(); } } }