public static IEffect MakeEffect(EffecID effecID, int value) { IEffect effect = null; switch (effecID) { case EffecID.Damage: effect = new Damage(value); break; case EffecID.MagicDamage: effect = new Damage(value, true); break; case EffecID.GainArmor: effect = new GainArmor(value); break; case EffecID.RemoveArmor: effect = new RemoveArmor(value); break; case EffecID.RecoverHP: effect = new RecoverHP(value); break; case EffecID.AddCard: List <int> ids = new List <int>(); for (int i = 0; i < value; i++) { ids.Add(-1); } effect = new AddCard(ids); break; default: Tool.DeBugWarning($"{effecID} is not implemented"); break; } return(effect); }
protected virtual void Death() { isDead = true; GameController.instance.currentRoom.CheckMobs(); // Drops // Money int moneyChance = UnityEngine.Random.Range(0, chanceToDropMoney); // Chance to drop money if (moneyChance == 0) { Money.SpawnMoneyRand(transform.position, transform.parent, moneyMin, moneyMax); } int hpChance = UnityEngine.Random.Range(0, 4); if (hpChance == 0) { RecoverHP.SpawnHP(transform.position, transform.parent); } // Power Ups if (powerUps.Count > 0) { List <PowerUp> powerUpsToDrop = new List <PowerUp>(); foreach (PowerUp upgrade in powerUps) { powerUpsToDrop.Add(upgrade); } foreach (PowerUp upgrade in powerUpsToDrop) { DropPowerUp(upgrade); } } }