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