Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
            }
        }
    }