Exemplo n.º 1
0
    public void affectCreature(CreatureClass cc)
    {
        switch (effectType)
        {
        case 1:     //Damage spell X
            cc.takeDamage(e_value);
            Debug.Log("(Spell)Damage on creature: " + cc.name);
            break;

        case 2:     //Heal spell X
            cc.takeHealing(e_value);
            Debug.Log("(Spell)Heal on creature: " + cc.name);
            break;

        case 3:     //Drain arcana X
            cc.spendArcana(e_value);
            Debug.Log("(Spell)Arcana drained on creature: " + cc.name);
            break;

        case 4:     //Full arcana MAX
            cc.setArcana(cc.getMaxArcana());
            Debug.Log("(Spell)Arcana maxed for creature: " + cc.name);
            break;

        case 5:     //Buff defense +1
            cc.setDefense(cc.getDefense() + 1f);
            Debug.Log("(Spell)Defense buffed for creature: " + cc.name);
            break;

        default:
            Debug.Log("spell effect hit default");
            break;
        }
    }
Exemplo n.º 2
0
    public void AttackCreatureMelee(CreatureClass creature)
    {
        if (creature.getName() == this.getName())
        {
            Debug.Log("Can't attack yourself!");
            return;
        }
        float rnd        = Random.Range(0, 100);
        float chance     = rnd + critChance;
        int   modifier   = 1;
        int   calcDamage = Mathf.FloorToInt((2 * Random.Range(this.getAtkPower(), this.getAtkPower() + 5) - creature.getDefense()) * 0.5f);

        if (chance >= 80)
        {
            modifier = modifier * 2;
        }
        creature.takeDamage(calcDamage * modifier);
        //Debug.Log("Attacked creature: " + creature + " with " + calcDamage*modifier + " damage " + "cc: " + chance);
        GameObject tmp_txt = Instantiate(damageText);

        tmp_txt.GetComponent <Text_Damage>().setPos(creature.transform.position);
        tmp_txt.GetComponent <Text_Damage>().setText("-" + (calcDamage * modifier).ToString());
    }