Example #1
0
    //Monster's health is reduced by player's attack, possibly switching to won state.
    internal void MonsterHurt()
    {
        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }

        if (!enemyAttackPhase)
        {
            health -= player.PlayerAttack();

            Animator.Play("Hurt");

            CheckDeath();
        }
        else if (player.timeLeft.value > player.greenZone)
        {
            health -= 1;

            feedback.DamageSet(SetFeedback.PlayerCountered);

            Animator.Play("Hurt");

            CheckDeath();
        }
        else
        {
            feedback.DamageSet(SetFeedback.PlayerDodged);
        }


        MakeQuestion();
    }
    //Player was wrong or so slow, enemy gets an attack!
    internal override void EnemyAttack()
    {
        if (ArrowsFired)
        {
            return;
        }

        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }


        if (animator)
        {
            animator.Play("Attack");
        }

        feedback.DamageSet(SetFeedback.PlayerHit);


        player.DamagePlayer(1);

        sprite.transform.localPosition = startingPosition;
        sprite.transform.localRotation = startingRotation;


        CheckDeath(true);

        CreateQuestion();
    }
    internal void CalculusDamage(int inflicted)
    {
        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }


        if (animator)
        {
            animator.Play("Hurt");
        }

        sprite.transform.localPosition = startingPosition;
        sprite.transform.localRotation = startingRotation;


        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }

        feedback.DamageSet(SetFeedback.EnemyHit);

        health -= inflicted;

        bar.changeHealth(false, health);

        CreateQuestion();

        CheckDeath(true);
    }
    //Player attacks monster.
    internal override void MonsterHurt()
    {
        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }

        if (Operator == operators.Multiplication)
        {
            multiplicationHeads(1);
            return;
        }
        if (Operator == operators.Division && enemyPhase)
        {
            feedback.DamageSet(SetFeedback.PlayerDodged);
            CreateQuestion();
            return;
        }

        if (animator)
        {
            animator.Play("Hurt");
        }

        sprite.transform.localPosition = startingPosition;
        sprite.transform.localRotation = startingRotation;


        //Addition boss gets harder with each phase.
        if (Operator == operators.Addition)
        {
            m_button.enemyChoices++;
            m_button.enemyAnswerRange += 1;
            bossSpacing += 2;
        }

        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }

        feedback.DamageSet(SetFeedback.EnemyHit);

        --health;

        bar.changeHealth(false, health);

        CreateQuestion();

        CheckDeath(true);
    }
Example #5
0
    //Calculate player's damage and return it.
    internal float PlayerAttack()
    {
        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }


        abilities.attacking++;

        float damage = attackDamage;


        if (Frozen > 0)
        {
            if (Frozen > 1)
            {
                damage = attackDamage * critMod;
                feedback.DamageSet(SetFeedback.EnemyCrit);
                abilities.Crits++;
            }
            else
            {
                feedback.DamageSet(SetFeedback.EnemyHit);
            }


            if (Frozen < 3)
            {
                Frozen = 0;
            }

            return(damage);
        }

        if (Timer > greenZone)
        {
            damage *= critMod;
            feedback.DamageSet(SetFeedback.EnemyCrit);
            abilities.Crits++;
        }
        else
        {
            feedback.DamageSet(SetFeedback.EnemyHit);
        }

        return(damage);
    }
Example #6
0
    internal float PlayerCounter()
    {
        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }


        if (Timer > greenZone)
        {
            abilities.Counters++;
            feedback.DamageSet(SetFeedback.PlayerCountered);
            return(attackDamage);
        }
        feedback.DamageSet(SetFeedback.PlayerDodged);
        return(0);
    }
Example #7
0
    //Reduce the player's health, with a_damage being the enemy's attack.
    public void DamagePlayer(float a_damage)
    {
        abilities.attacking = 0;

        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }

        feedback.DamageSet(SetFeedback.PlayerHit);


        currentHealth -= a_damage * abilities.ReduceDamage();

        Healthbar.changeHealth(true, currentHealth);

        parent.currentEnemy.abilityDamage(a_damage * abilities.BounceDamage());


        parent.currentEnemy.CheckDeath();
    }
Example #8
0
    //Player is hurt, and a new question is built.
    internal void EnemyAttack()
    {
        if (!feedback)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }

        if (enemyAttackPhase)
        {
            player.DamagePlayer(attack);

            Animator.Play("Attack");
            feedback.DamageSet(SetFeedback.PlayerHit);

            FindObjectOfType <StepManager>().ProgressTutorial();
        }
        else
        {
            feedback.DamageSet(SetFeedback.PlayerMissed);
        }
        MakeQuestion();
    }
    //Calculate player's damage and return it.
    internal float PlayerAttack()
    {
        if (feedback == null)
        {
            feedback = FindObjectOfType <combatFeedback>();
        }

        float damage = attack;


        if (Timer > greenZone)
        {
            damage *= 2;
            feedback.DamageSet(SetFeedback.EnemyCrit);
        }
        else
        {
            feedback.DamageSet(SetFeedback.EnemyHit);
        }
        Timer = resetTime;
        return(damage);
    }