Example #1
0
        public void AddModifier(BaseModifier modifier)
        {
            _allModifiers.Add(modifier);

            switch (modifier)
            {
            case BaseTowerModifier towerModifier:
                foreach (var tower in Towers.Instances)
                {
                    towerModifier.AddToTower(tower);
                }
                break;

            case BaseEnemyModifer enemyModifer:
                foreach (var enemyInstance in Enemies.Instances)
                {
                    enemyModifer.AddToEnemy(enemyInstance);
                }
                break;

            case BaseEnemyCurrencyModifier enemyCurrencyModifier:
                foreach (var enemyInstance in Enemies.Instances)
                {
                    enemyCurrencyModifier.AddToEnemy(enemyInstance);
                }
                break;
                // add more stuff
            }
        }
Example #2
0
        public void RemoveModifier(BaseModifier modifier)
        {
            if (_allModifiers.Remove(modifier))
            {
                switch (modifier)
                {
                case BaseTowerModifier towerModifier:
                    foreach (var tower in Towers.Instances)
                    {
                        towerModifier.RemoveFromTower(tower);
                    }
                    break;

                case BaseEnemyModifer enemyModifer:
                    foreach (var enemyInstance in Enemies.Instances)
                    {
                        enemyModifer.RemoveFromEnemy(enemyInstance);
                    }
                    break;

                case BaseEnemyCurrencyModifier enemyLootModifier:
                    foreach (var enemyInstance in Enemies.Instances)
                    {
                        enemyLootModifier.RemoveFromEnemy(enemyInstance);
                    }
                    break;
                }
            }
        }