void CastHellfire() { BuffHandler.Buff debuff = new BuffHandler.Buff(HellfireName, false, -(int)(HellfireDamage * (1.0f + 0.1 * HellfireCounts)), HellfireDuration, Spell.Enemy); if (Tank) Tank.PlaceBuff(new BuffHandler.Buff(debuff)); if (DPS1) DPS1.PlaceBuff(new BuffHandler.Buff(debuff)); if (DPS2) DPS2.PlaceBuff(new BuffHandler.Buff(debuff)); if (DPS3) DPS3.PlaceBuff(new BuffHandler.Buff(debuff)); if (Healer) Healer.PlaceBuff(new BuffHandler.Buff(debuff)); HellfireCounts++; cycleNumber = 0; CurrentTarget = AttemptToTargetTank(); castTime = DreadFlameCastTime; SpellName = DreadFlameName; BossFightNextSpellText.text = "Next Spell will be " + DreadFlameName + "!"; }
void CastDeadlyGust() { if (cycleNumber == 6) cycleNumber = 0; if (!CurrentTarget) return; BuffHandler.Buff debuff = new BuffHandler.Buff(DeadlyGustName, false, -(int)DeadlyGustDamage, DeadlyGustDuration, Spell.Enemy); CurrentTarget.PlaceBuff(new BuffHandler.Buff(debuff)); CurrentTarget.CanDealDamage = false; StartCoroutine(EnableDPSAgain(CurrentTarget, DeadlyGustDuration)); if (cycleNumber == 0) { CurrentTarget = AttemptToTargetTank(); castTime = WindShearCastTime; SpellName = WindShearName; BossFightNextSpellText.text = "Next Spell will be " + WindShearName + "!"; } else { CurrentTarget = GetRandomDPS(); castTime = DropCastTime; SpellName = DropName; BossFightNextSpellText.text = "Next Spell will be " + DeadlyGustName + "!"; } }
void CastDreadFlame() { BuffHandler.Buff debuff = new BuffHandler.Buff(DreadFlameName, false, -(int)(DreadFlameDamage * (1.0f + 0.1 * DreadFlameCounts)), DreadFlameDuration, Spell.Enemy); if (!CurrentTarget) CurrentTarget = AttemptToTargetTank(); CurrentTarget.PlaceBuff(debuff); if (cycleNumber == 1) { CurrentTarget = AttemptToTargetTank(); BossFightNextSpellText.text = "Next Spell will be " + HellfireName + "!"; } else { castTime = HellfireCastTime; SpellName = HellfireName; BossFightNextSpellText.text = "Next Spell will be " + DreadFlameName + "!"; } DreadFlameCounts++; }
IEnumerator CastBuffAfterTime(float time, PartyMemberScript target, Spell buff) { yield return new WaitForSeconds(time); if (target.isActiveAndEnabled) { ManaBar.value -= SpellStats.GetManaCost(buff); if (buff == Spell.Ultimate1) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Ultimate1), true, SpellStats.GetHealAmount(Spell.Ultimate1),SpellStats.Ultimate1Duration, Spell.Ultimate1); target.PlaceBuff(newBuff); } else if (buff == Spell.Ultimate3) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Ultimate3), true, SpellStats.GetHealAmount(Spell.Ultimate3), SpellStats.Ultimate3Duration, Spell.Ultimate3); target.PlaceBuff(newBuff); } else if (buff == Spell.Spell5) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Spell5), true, SpellStats.GetHealAmount(Spell.Spell5), SpellStats.Spell5Duration, Spell.Spell5); target.PlaceBuff(newBuff); } else if (buff == Spell.Spell8) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Spell8), true, SpellStats.GetHealAmount(Spell.Spell8), SpellStats.Spell8Duration, Spell.Spell8); target.PlaceBuff(newBuff); StartCoroutine(ReCastSpell8(SpellStats.Spell8Duration, SpellStats.Spell8Jumps)); } } }
IEnumerator ReCastSpell8(float time, int Spell8JumpsLeft) { yield return new WaitForSeconds(time); Spell8JumpsLeft--; if (Spell8JumpsLeft > 0) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Spell8), true, SpellStats.GetHealAmount(Spell.Spell8), SpellStats.Spell8Duration, Spell.Spell8); ReturnLowestHealthMember().PlaceBuff(newBuff); StartCoroutine(ReCastSpell8(SpellStats.Spell8Duration, Spell8JumpsLeft)); } }
IEnumerator CastUltimate2AfterTime(float time) { yield return new WaitForSeconds(time); ManaBar.value -= SpellStats.GetManaCost(Spell.Ultimate2); if (Tank.isActiveAndEnabled) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Ultimate2), true, SpellStats.GetHealAmount(Spell.Ultimate2), SpellStats.Ultimate2Duration, Spell.Ultimate2); Tank.PlaceBuff(newBuff); } if (DPS1.isActiveAndEnabled) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Ultimate2), true, SpellStats.GetHealAmount(Spell.Ultimate2), SpellStats.Ultimate2Duration, Spell.Ultimate2); DPS1.PlaceBuff(newBuff); } if (DPS2.isActiveAndEnabled) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Ultimate2), true, SpellStats.GetHealAmount(Spell.Ultimate2), SpellStats.Ultimate2Duration, Spell.Ultimate2); DPS2.PlaceBuff(newBuff); } if (DPS3.isActiveAndEnabled) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Ultimate2), true, SpellStats.GetHealAmount(Spell.Ultimate2), SpellStats.Ultimate2Duration, Spell.Ultimate2); DPS3.PlaceBuff(newBuff); } if (Healer.isActiveAndEnabled) { BuffHandler.Buff newBuff = new BuffHandler.Buff(SpellStats.GetSpellName(Spell.Ultimate2), true, SpellStats.GetHealAmount(Spell.Ultimate2), SpellStats.Ultimate2Duration, Spell.Ultimate2); Healer.PlaceBuff(newBuff); } }