Пример #1
0
 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;
 }
Пример #2
0
 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);
     }
 }
Пример #3
0
    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();
    }