void OnBonusTake_Clock(object sender, EventArgs e) { // Finding and destroying clock bonuses currently active: var clockBonus = ProcessableObjects.Find(p => (p is CBonusClock) && (p != (e as BonusEventArgs).Bonus)); if (clockBonus != null) { RemoveObject((CGameObject)clockBonus); } AllGameObjects.EnemiesEnabled = false; }
void OnBonusTake_Spade(object sender, EventArgs e) { var spadeBonus = ProcessableObjects.Find(p => (p is CBonusSpade) && (p != (e as BonusEventArgs).Bonus)); if (spadeBonus != null) { RemoveObject((CGameObject)spadeBonus); } //this.hQ.ReceiveFortification(); for (int i = 0; i < 8; i++) { var grObject = CObjectCreator.CreateStaticObject(StaticObjects.Iron, hqXs[i], hqYs[i]); ClearPositionForObject(grObject); ((e as BonusEventArgs).Bonus as CBonusSpade).HQobjects.Add(grObject); AddObject((CGameObject)grObject); } }
void CreateBonus() { // Removing previous bonus: var bonus = ProcessableObjects.Find(p => { if (p is CBonus) { return(!(p as CBonus).Taken); } else { return(false); } } ); if (bonus != null) { RemoveObject((CGameObject)bonus); } // Creating random bonus at random position: AddObject(CObjectCreator.CreateBonus(random.Next(16, 400), random.Next(16, 400), (Bonuses)random.Next(0, 6))); }
// On Force field activation: void OnActivate_ForceField(CTank sender, int time) { // Finding and destroying senders current forsfield if any: var forcefield = ProcessableObjects.Find(p => { if (p is CForceField) { if ((p as CForceField).Owner == sender) { return(true); } } return(false); }); // if (forcefield != null) { (forcefield as CForceField).Destroyed = true; } // Adding new forcefield: AddObject(CObjectCreator.CreateForceField((CTank)sender, time)); }