IEnumerator CheckAttackingDeltStatus(PlayerBattleState player, bool isPlayer) { DeltemonClass attacker = player.DeltInBattle; BattleAnimator animator = BattleManager.Inst.Animator; if (!AttackingStatusEffects.Contains(attacker.curStatus)) { yield break; } StatusAffectData statusData = GetAttackingStatusEffect(attacker.curStatus); BattleManager.AddToBattleQueue( message: attacker.nickname + statusData.StatusActiveText, enumerator: animator.DeltAnimation(statusData.AnimationAndSoundKey, isPlayer) ); if (attacker.curStatus != statusType.Drunk) { // If Delt comes down if (Random.Range(0, 100) <= statusData.ChanceToRemove) { BattleManager.AddToBattleQueue(attacker.nickname + statusData.StatusRemovalText); BattleManager.Inst.StatusChange(isPlayer, statusType.None); } else { BattleManager.AddToBattleQueue(attacker.nickname + statusData.StatusContinueText); } } else { // If Delt hurts himself if (Random.Range(0, 100) <= 30) { attacker.health = attacker.health - (attacker.GPA * 0.05f); BattleManager.AddToBattleQueue(enumerator: animator.DeltAnimation("Hurt", isPlayer)); BattleManager.AddToBattleQueue(attacker.nickname + " hurt itself in it's drunkeness!"); // REFACTOR_TODO: Find proper location for this //yield return BattleManager.Inst.StartCoroutine(BattleManager.Inst.Animator.AnimateHurtDelt(isPlayer)); // Player DA's // REFACTOR_TODO: This should be in the hurt function if (attacker.health <= 0) { attacker.health = 0; BattleManager.AddToBattleQueue(attacker.nickname + " has DA'd for being too Drunk!"); BattleManager.Inst.StatusChange(isPlayer, statusType.DA); } } // Attacker relieved from Drunk status else if (Random.Range(0, 100) <= 27) { BattleManager.AddToBattleQueue(attacker.nickname + " has sobered up!"); BattleManager.Inst.StatusChange(isPlayer, statusType.None); } } }
void CheckPostMoveStatusEffects(PlayerBattleState player, bool isPlayer) { DeltemonClass delt = player.DeltInBattle; // Opp gets hurt by negative status if not DA'd if (PostMoveStatusEffects.Contains(delt.curStatus)) { // REFACTOR_TODO: Hurt function delt.health -= (delt.GPA * 0.125f); if (delt.health < 0) { delt.health = 0; } StatusAffectData statusEffect = GetPostMoveStatusEffect(delt.curStatus); // If opp Delt is Roasted if (delt.curStatus == statusType.Roasted) { BattleManager.AddToBattleQueue(enumerator: BattleManager.Inst.Animator.DeltAnimation(statusEffect.AnimationAndSoundKey, isPlayer)); BattleManager.AddToBattleQueue(delt.nickname + statusEffect.StatusActiveText); } // REFACTOR_TODO: Hurt function // Animate hurting opp Delt //yield return BattleManager.Inst.StartCoroutine(BattleManager.Inst.hurtDelt(false)); // REFACTOR_TODO: Hurt function // If opp Delt passed out if (delt.health == 0) { BattleManager.AddToBattleQueue(delt.nickname + " has DA'd!"); BattleManager.Inst.StatusChange(false, statusType.DA); // Opponent loses/selects another Delt //checkLoss(false); //if (playerWon) //{ // yield break; //} } } }