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);
            }
        }
Ejemplo n.º 3
0
        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));
        }