public SpellResults Do_Ability(Summon s) { int heal = s.Base_Health / 10 + s.Curse * 5; SpellResults r = new SpellResults(0, 0, heal, 0, 0, 0); //if (Random.Range(0, 101) > 80) r += new Burn().Do_Ability(s); //if (Random.Range(0, 101) > 80) r += new Poison().Do_Ability(s); return r; }
public virtual void Cast_Spell(Summon s) { results = new SpellResults(0, 0, 0, 0, 0, 0); foreach(Ability a in abilities) { results += a.Do_Ability(s); } }
private void Calculate_Results() { SpellResults player_results; SpellResults enemy_results; if(player_choice == null) { player_results = new SpellResults(0, 0, 0, 0, 0, 0); } else { player_choice.Cast_Spell(player.Players_Summon); player_results = player_choice.Results; } if(enemy_choice == null) { enemy_results = new SpellResults(0, 0, 0, 0, 0, 0); } else { enemy_choice.Cast_Spell(enemy.Players_Summon); enemy_results = enemy_choice.Results; } Increment_Combo(); int player_damaged = (player_results.Block > enemy_results.Damage) ? 0 : (enemy_results.Damage - player_results.Block); int enemy_damaged = (enemy_results.Block > player_results.Damage) ? 0 : (player_results.Damage - enemy_results.Block); int player_burned = (enemy_results.Burn > player.Players_Summon.Burn) ? enemy_results.Burn : player.Players_Summon.Burn; int enemy_burned = (player_results.Burn > enemy.Players_Summon.Burn) ? player_results.Burn : player.Players_Summon.Burn; int player_poisoned = (enemy_results.Poison > player.Players_Summon.Poison) ? enemy_results.Poison : player.Players_Summon.Poison; int enemy_poisoned = (player_results.Poison > enemy.Players_Summon.Poison) ? player_results.Poison : player.Players_Summon.Poison; int player_paralyzed = (enemy_results.Paralyze > player.Players_Summon.Paralyze) ? enemy_results.Paralyze : player.Players_Summon.Paralyze; int enemy_paralyzed = (player_results.Paralyze > enemy.Players_Summon.Paralyze) ? player_results.Paralyze : player.Players_Summon.Paralyze; player.Players_Summon.Health = ((player.Players_Summon.Health - player_damaged) < 0) ? 0 : (player.Players_Summon.Health - player_damaged); enemy.Players_Summon.Health = ((enemy.Players_Summon.Health - enemy_damaged) < 0) ? 0 : (enemy.Players_Summon.Health - enemy_damaged); player.Players_Summon.Burn = player_burned; enemy.Players_Summon.Burn = enemy_burned; player.Players_Summon.Poison = player_poisoned; enemy.Players_Summon.Poison = enemy_poisoned; player.Players_Summon.Paralyze = player_paralyzed; enemy.Players_Summon.Paralyze = enemy_paralyzed; player.Players_Summon.Health = (player.Players_Summon.Base_Health < (player_results.Heal + player.Players_Summon.Health)) ? player.Players_Summon.Base_Health : (player_results.Heal + player.Players_Summon.Health); enemy.Players_Summon.Health = (enemy.Players_Summon.Base_Health < (enemy_results.Heal + enemy.Players_Summon.Health)) ? enemy.Players_Summon.Base_Health : (enemy_results.Heal + enemy.Players_Summon.Health); Setup_Damage_Text("Damage: " + -player_damaged, "Damage: " + -enemy_damaged); if (player_choice != null) { if (player_choice.Type == BaseSpell.Spell_Types.ATTACK) { player_summon_sprite.GetComponent<Animator>().SetTrigger("attack"); } else { player_summon_sprite.GetComponent<Animator>().SetTrigger("shield"); } } if (enemy_choice != null) { if (enemy_choice.Type == BaseSpell.Spell_Types.ATTACK) { enemy_summon_sprite.GetComponent<Animator>().SetTrigger("attack"); } else { enemy_summon_sprite.GetComponent<Animator>().SetTrigger("shield"); } } StartCoroutine(Reset_Animator_Triggers(0.5f)); StartCoroutine(Take_Damage_Trigger(player_damaged, enemy_damaged)); Start_Damage_Text(); }