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; } }
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()); }