//Enemy's Special Attack Functionality IEnumerator EnemySpecial(UnitWLevelling unit, BattleHUDWLevelling hud) { bool isDead = false; enemyUnit.unitCurrentMP -= 33; if (!enemyUnit.unitIsMagic) { isDead = unit.TakeRegDamage(enemyUnit, true); } else if (enemyUnit.unitIsMagic) { isDead = unit.TakeMagDamage(enemyUnit, true); } hud.HPFiddling(unit.unitCurrentHP); hud.MPFiddling(unit.unitCurrentMP); dialogueText.text = enemyUnit.unitName + " attacks " + unit.unitName + " for " + enemyUnit.unitAttack + "!"; yield return(new WaitForSeconds(2f)); if (isDead) { deadCheck += 1; } }
//Uses item if passed unit selected to use an item IEnumerator PartyUseItem(UnitWLevelling unit, BattleHUDWLevelling hud) { if (unit.unitCurrentMP >= 50) { unit.unitCurrentHP += 25; if (unit.unitCurrentHP > unit.unitMaxHP) { unit.unitCurrentHP = unit.unitMaxHP; } unit.unitCurrentMP -= 50; dialogueText.text = unit.unitName + " healed self, at least, they had better have."; } else { dialogueText.text = unit.unitName + "'s attempt to heal failed."; } hud.HPFiddling(unit.unitCurrentHP); hud.MPFiddling(unit.unitCurrentMP); yield return(new WaitForSeconds(2f)); Debug.Log(unit.unitName + " healed self"); }
//Runs during attack phase if passed unit selected special attack IEnumerator PartySpecialAtk(UnitWLevelling unit) { bool isDead = false; if (unit.unitCurrentMP >= 33) { if (!unit.unitIsMagic && unit.unitClass != ClassSelect.HEALER) { isDead = enemyUnit.TakeRegDamage(unit, true); unit.gameObject.GetComponent <Animator>().SetBool("isHit", true); yield return(new WaitForSeconds(1f)); StartCoroutine(HitParticleSystem(enemyPlatform)); dialogueText.text = unit.unitName + " does " + (unit.unitAttack * 2) + " damage!"; } else if (unit.unitIsMagic && unit.unitClass != ClassSelect.HEALER) { isDead = enemyUnit.TakeMagDamage(unit, true); unit.gameObject.GetComponent <Animator>().SetBool("isHit", true); yield return(new WaitForSeconds(1f)); StartCoroutine(HitParticleSystem(enemyPlatform)); dialogueText.text = unit.unitName + " does " + (unit.unitAttack * 2) + " damage!"; } else if (unit.unitClass == ClassSelect.HEALER) { isDead = partyFourUnit.HealDamage(partyOneUnit, partyTwoUnit, partyThreeUnit); pOneHUD.HPFiddling(partyOneUnit.unitCurrentHP); pTwoHUD.HPFiddling(partyTwoUnit.unitCurrentHP); pThreeHUD.HPFiddling(partyThreeUnit.unitCurrentHP); pFourHUD.HPFiddling(partyFourUnit.unitCurrentHP); pFourHUD.MPFiddling(partyFourUnit.unitCurrentMP); dialogueText.text = unit.unitName + " does some light first aid!"; } } else { dialogueText.text = unit.unitName + " doesn't have enough mana!"; } if (unit.unitCurrentMP <= 0) { unit.unitCurrentMP = 0; } enemyHUD.HPFiddling(enemyUnit.unitCurrentHP); pOneHUD.HPFiddling(partyOneUnit.unitCurrentHP); pTwoHUD.HPFiddling(partyTwoUnit.unitCurrentHP); pThreeHUD.HPFiddling(partyThreeUnit.unitCurrentHP); pFourHUD.HPFiddling(partyFourUnit.unitCurrentHP); pOneHUD.MPFiddling(partyOneUnit.unitCurrentMP); pTwoHUD.MPFiddling(partyTwoUnit.unitCurrentMP); pThreeHUD.MPFiddling(partyThreeUnit.unitCurrentMP); pFourHUD.MPFiddling(partyFourUnit.unitCurrentMP); yield return(new WaitForSeconds(2f)); if (isDead) { state = BattleStateWL.WON; StartCoroutine(BattleEnd()); } Debug.Log(unit.unitName + " S-ATK COMP"); }