aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp7
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp19
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp54
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp21
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp2
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp3
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp2
-rw-r--r--src/server/scripts/Northrend/ObsidianSanctum/boss_sartharion.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_erekem.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp6
-rw-r--r--src/server/scripts/Northrend/borean_tundra.cpp2
-rw-r--r--src/server/scripts/Northrend/zuldrak.cpp10
26 files changed, 104 insertions, 76 deletions
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
index 223c75d1a27..e5870139291 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
@@ -96,12 +96,7 @@ public:
if (!Victim || !Victim->HasAura(DUNGEON_MODE(SPELL_LEECH_POISON, H_SPELL_LEECH_POISON)) || !me->isAlive())
return;
- uint32 health = me->GetMaxHealth()/10;
-
- if ((me->GetHealth()+health) >= me->GetMaxHealth())
- me->SetHealth(me->GetMaxHealth());
- else
- me->SetHealth(me->GetHealth()+health);
+ me->ModifyHealth(int32(me->CountPctFromMaxHealth(10)));
}
void JustDied(Unit* /*Killer*/)
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
index 879338f50d4..410190f6638 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
@@ -293,7 +293,7 @@ public:
} else uiRenewTimer -= uiDiff;
- if (!bHealth && me->GetHealth()*100 / me->GetMaxHealth() <= 25)
+ if (!bHealth && !HealthAbovePct(25))
{
me->InterruptNonMeleeSpells(true);
DoCastAOE(SPELL_HOLY_NOVA,false);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
index ee06c38ed9e..be28b0c3e8b 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
@@ -159,7 +159,7 @@ public:
if (bEventInProgress)
if (uiResurrectTimer <= uiDiff)
{
- me->SetHealth(me->GetMaxHealth());
+ me->SetFullHealth();
DoCast(me,SPELL_BLACK_KNIGHT_RES,true);
uiPhase++;
uiResurrectTimer = 4000;
@@ -257,7 +257,7 @@ public:
}
}
- if (!me->hasUnitState(UNIT_STAT_ROOT) && !me->GetHealth()*100 / me->GetMaxHealth() <= 0)
+ if (!me->hasUnitState(UNIT_STAT_ROOT) && !me->HealthBelowPct(1))
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
index 9cd5c55af1b..8d2910db245 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp
@@ -43,8 +43,8 @@ public:
uint32 m_auiEncounter[MAX_ENCOUNTER];
- uint8 uiMovementDone;
- uint8 uiGrandChampionsDeaths;
+ uint16 uiMovementDone;
+ uint16 uiGrandChampionsDeaths;
uint8 uiArgentSoldierDeaths;
uint64 uiAnnouncerGUID;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index dab58de66d7..6e52f36b64d 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -107,7 +107,8 @@ enum SummonActions
ACTION_SHADOW_STRIKE,
ACTION_SCARAB_SUBMERGE,
};
- const Position SphereSpawn[6] =
+
+const Position SphereSpawn[6] =
{
{ 786.6439f, 108.2498f, 155.6701f, 0 },
{ 806.8429f, 150.5902f, 155.6701f, 0 },
@@ -115,7 +116,9 @@ enum SummonActions
{ 744.3701f, 119.5211f, 155.6701f, 0 },
{ 710.0211f, 120.8152f, 155.6701f, 0 },
{ 706.6383f, 161.5266f, 155.6701f, 0 },
-}; class boss_anubarak_trial : public CreatureScript
+};
+
+class boss_anubarak_trial : public CreatureScript
{
public:
boss_anubarak_trial() : CreatureScript("boss_anubarak_trial") { }
@@ -400,7 +403,8 @@ public:
};
- class mob_swarm_scarab : public CreatureScript
+
+class mob_swarm_scarab : public CreatureScript
{
public:
mob_swarm_scarab() : CreatureScript("mob_swarm_scarab") { }
@@ -467,7 +471,8 @@ public:
};
- class mob_nerubian_burrower : public CreatureScript
+
+class mob_nerubian_burrower : public CreatureScript
{
public:
mob_nerubian_burrower() : CreatureScript("mob_nerubian_burrower") { }
@@ -544,7 +549,8 @@ public:
};
- class mob_frost_sphere : public CreatureScript
+
+class mob_frost_sphere : public CreatureScript
{
public:
mob_frost_sphere() : CreatureScript("mob_frost_sphere") { }
@@ -624,7 +630,8 @@ public:
};
- class mob_anubarak_spike : public CreatureScript
+
+class mob_anubarak_spike : public CreatureScript
{
public:
mob_anubarak_spike() : CreatureScript("mob_anubarak_spike") { }
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index c106b59e347..fa3aad195f2 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -47,7 +47,8 @@ enum eSpells
SPELL_ANTI_AOE = 68595,
SPELL_PVP_TRINKET = 65547,
};
- class boss_toc_champion_controller : public CreatureScript
+
+class boss_toc_champion_controller : public CreatureScript
{
public:
boss_toc_champion_controller() : CreatureScript("boss_toc_champion_controller") { }
@@ -447,7 +448,8 @@ enum eDruidSpells
SPELL_THORNS = 66068,
SPELL_NATURE_GRASP = 66071, //1 min cd, self buff
};
- class mob_toc_druid : public CreatureScript
+
+class mob_toc_druid : public CreatureScript
{
public:
mob_toc_druid() : CreatureScript("mob_toc_druid") { }
@@ -542,7 +544,8 @@ enum eShamanSpells
AURA_EXHAUSTION = 57723,
AURA_SATED = 57724,
};
- class mob_toc_shaman : public CreatureScript
+
+class mob_toc_shaman : public CreatureScript
{
public:
mob_toc_shaman() : CreatureScript("mob_toc_shaman") { }
@@ -634,7 +637,8 @@ enum ePaladinSpells
SPELL_HAND_OF_PROTECTION = 66009,
SPELL_HAMMER_OF_JUSTICE = 66613,
};
- class mob_toc_paladin : public CreatureScript
+
+class mob_toc_paladin : public CreatureScript
{
public:
mob_toc_paladin() : CreatureScript("mob_toc_paladin") { }
@@ -682,7 +686,7 @@ public:
if (m_uiHandOfProtectionTimer <= uiDiff)
{
if (Unit *pTarget = DoSelectLowestHpFriendly(40.0f))
- if (pTarget->GetHealth() * 100 < pTarget->GetMaxHealth() * 15) // HealthBelowPct(15)
+ if (pTarget->HealthBelowPct(15))
DoCast(pTarget,SPELL_HAND_OF_PROTECTION);
m_uiHandOfProtectionTimer = urand(0*IN_MILLISECONDS,360*IN_MILLISECONDS);
} else m_uiHandOfProtectionTimer -= uiDiff;
@@ -739,7 +743,9 @@ enum ePriestSpells
SPELL_DISPEL = 65546,
SPELL_PSYCHIC_SCREAM = 65543,
SPELL_MANA_BURN = 66100,
-}; class mob_toc_priest : public CreatureScript
+};
+
+class mob_toc_priest : public CreatureScript
{
public:
mob_toc_priest() : CreatureScript("mob_toc_priest") { }
@@ -819,7 +825,8 @@ enum eShadowPriestSpells
SPELL_DISPERSION = 65544,
SPELL_SHADOWFORM = 16592,
};
- class mob_toc_shadow_priest : public CreatureScript
+
+class mob_toc_shadow_priest : public CreatureScript
{
public:
mob_toc_shadow_priest() : CreatureScript("mob_toc_shadow_priest") { }
@@ -930,7 +937,9 @@ enum eWarlockSpells
SPELL_UNSTABLE_AFFLICTION = 65812,
SPELL_SUMMON_FELHUNTER = 67514,
H_SPELL_UNSTABLE_AFFLICTION = 68155, //15s
-}; class mob_toc_warlock : public CreatureScript
+};
+
+class mob_toc_warlock : public CreatureScript
{
public:
mob_toc_warlock() : CreatureScript("mob_toc_warlock") { }
@@ -1035,7 +1044,9 @@ enum eMageSpells
SPELL_FROSTBOLT = 65807,
SPELL_ICE_BLOCK = 65802, //5min
SPELL_POLYMORPH = 65801, //15s
-}; class mob_toc_mage : public CreatureScript
+};
+
+class mob_toc_mage : public CreatureScript
{
public:
mob_toc_mage() : CreatureScript("mob_toc_mage") { }
@@ -1137,7 +1148,8 @@ enum eHunterSpells
SPELL_WYVERN_STING = 65877, //60s
SPELL_CALL_PET = 67777,
};
- class mob_toc_hunter : public CreatureScript
+
+class mob_toc_hunter : public CreatureScript
{
public:
mob_toc_hunter() : CreatureScript("mob_toc_hunter") { }
@@ -1251,7 +1263,9 @@ enum eBoomkinSpells
SPELL_MOONFIRE = 65856, //5s
SPELL_STARFIRE = 65854,
SPELL_WRATH = 65862,
-}; class mob_toc_boomkin : public CreatureScript
+};
+
+class mob_toc_boomkin : public CreatureScript
{
public:
mob_toc_boomkin() : CreatureScript("mob_toc_boomkin") { }
@@ -1353,7 +1367,9 @@ enum eWarriorSpells
SPELL_SUNDER_ARMOR = 65936,
SPELL_SHATTERING_THROW = 65940,
SPELL_RETALIATION = 65932,
-}; class mob_toc_warrior : public CreatureScript
+};
+
+class mob_toc_warrior : public CreatureScript
{
public:
mob_toc_warrior() : CreatureScript("mob_toc_warrior") { }
@@ -1465,7 +1481,9 @@ enum eDeathKnightSpells
SPELL_ICEBOUND_FORTITUDE = 66023, //1min
SPELL_ICY_TOUCH = 66021, //8sec
SPELL_STRANGULATE = 66018, //2min
-}; class mob_toc_dk : public CreatureScript
+};
+
+class mob_toc_dk : public CreatureScript
{
public:
mob_toc_dk() : CreatureScript("mob_toc_dk") { }
@@ -1565,7 +1583,9 @@ enum eRogueSpells
SPELL_SHADOWSTEP = 66178, //30sec
SPELL_HEMORRHAGE = 65954,
SPELL_EVISCERATE = 65957,
-}; class mob_toc_rogue : public CreatureScript
+};
+
+class mob_toc_rogue : public CreatureScript
{
public:
mob_toc_rogue() : CreatureScript("mob_toc_rogue") { }
@@ -1663,7 +1683,8 @@ enum eEnhShamanSpells
SPELL_LAVA_LASH = 65974,
SPELL_STORMSTRIKE = 65970,
};
- class mob_toc_enh_shaman : public CreatureScript
+
+class mob_toc_enh_shaman : public CreatureScript
{
public:
mob_toc_enh_shaman() : CreatureScript("mob_toc_enh_shaman") { }
@@ -1796,7 +1817,8 @@ enum eRetroPaladinSpells
SPELL_REPENTANCE = 66008, //60sec cd
SPELL_SEAL_OF_COMMAND = 66004, //no cd
};
- class mob_toc_retro_paladin : public CreatureScript
+
+class mob_toc_retro_paladin : public CreatureScript
{
public:
mob_toc_retro_paladin() : CreatureScript("mob_toc_retro_paladin") { }
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index 7b5fba4ca82..55c730d8f3b 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -261,7 +261,7 @@ struct boss_twin_baseAI : public ScriptedAI
if (caster->ToCreature() == me)
if (spell->Effect[0] == 136) //Effect Heal
if (m_pInstance)
- m_pInstance->SetData(DATA_HEALTH_TWIN_SHARED, me->GetHealth() + me->GetMaxHealth()*spell->EffectBasePoints[0]/100);
+ m_pInstance->SetData(DATA_HEALTH_TWIN_SHARED, me->GetHealth() + me->CountPctFromMaxHealth(spell->EffectBasePoints[0]));
}
void SummonColorballs(uint8 quantity)
@@ -270,7 +270,7 @@ struct boss_twin_baseAI : public ScriptedAI
float y = y0;
for (uint8 i = 0; i < quantity; i++)
{
- float x = urand(x0-r,x0+r);
+ float x = float(urand(uint32(x0 - r), uint32(x0 + r)));
if (urand(0,1))
y = y0 + sqrt(pow(r,2) - pow((x-x0),2));
else
@@ -420,7 +420,8 @@ struct boss_twin_baseAI : public ScriptedAI
/*######
## boss_fjola
######*/
- class boss_fjola : public CreatureScript
+
+class boss_fjola : public CreatureScript
{
public:
boss_fjola() : CreatureScript("boss_fjola") { }
@@ -479,7 +480,8 @@ public:
/*######
## boss_eydis
######*/
- class boss_eydis : public CreatureScript
+
+class boss_eydis : public CreatureScript
{
public:
boss_eydis() : CreatureScript("boss_eydis") { }
@@ -520,7 +522,8 @@ public:
};
- class mob_essence_of_twin : public CreatureScript
+
+class mob_essence_of_twin : public CreatureScript
{
public:
mob_essence_of_twin() : CreatureScript("mob_essence_of_twin") { }
@@ -560,7 +563,7 @@ struct mob_unleashed_ballAI : public ScriptedAI
{
float x0 = ToCCommonLoc[1].GetPositionX(), y0 = ToCCommonLoc[1].GetPositionY(), r = 47.0f;
float y = y0;
- float x = urand(x0-r,x0+r);
+ float x = float(urand(uint32(x0 - r), uint32(x0 + r)));
if (urand(0,1))
y = y0 + sqrt(pow(r,2) - pow((x-x0),2));
else
@@ -594,7 +597,8 @@ struct mob_unleashed_ballAI : public ScriptedAI
}
}
};
- class mob_unleashed_dark : public CreatureScript
+
+class mob_unleashed_dark : public CreatureScript
{
public:
mob_unleashed_dark() : CreatureScript("mob_unleashed_dark") { }
@@ -627,7 +631,8 @@ public:
};
- class mob_unleashed_light : public CreatureScript
+
+class mob_unleashed_light : public CreatureScript
{
public:
mob_unleashed_light() : CreatureScript("mob_unleashed_light") { }
diff --git a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
index 1d6a9869d71..9ee754b4a56 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp
@@ -63,7 +63,7 @@ public:
uint64 uiNovosCrystal3;
uint64 uiNovosCrystal4;
- uint8 m_auiEncounter[MAX_ENCOUNTER];
+ uint16 m_auiEncounter[MAX_ENCOUNTER];
std::string str_data;
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index 995443196e3..beaeb180618 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -124,7 +124,7 @@ public:
me->ExitVehicle();
// restore health if any damage done during intro
- me->SetHealth(me->GetMaxHealth());
+ me->SetFullHealth();
if (pInstance)
pInstance->SetData(DATA_TYRANNUS_EVENT, IN_PROGRESS);
diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
index 5635fe54559..ccc832470e6 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
@@ -105,7 +105,7 @@ public:
if (!UpdateVictim())
return;
- if (!bHealth && HealthBelowPct(50) && !HealthBelowPct(5))
+ if (!bHealth && HealthBelowPct(50) && !HealthBelowPct(5))
{
CreatureState(me, false);
DoCast(me,SPELL_FREEZE_ANIM);
@@ -140,7 +140,7 @@ public:
void JustSummoned(Creature* pSummon)
{
if (HealthBelowPct(5))
- pSummon->DealDamage(pSummon, pSummon->GetHealth() * 0.5 , NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ pSummon->DealDamage(pSummon, pSummon->GetHealth() * 0.5, NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
pSummon->AI()->AttackStart(me->getVictim());
}
};
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index daaed063994..bb66a727bb4 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -498,8 +498,7 @@ class spell_marrowgar_bone_storm : public SpellScriptLoader
return;
float distVar = distance >= 20.0f ? 4 : (10.0f/3.0f);
- dmg /= distance / distVar;
- SetHitDamage(dmg);
+ SetHitDamage(int32(dmg * distVar / distance));
}
void Register()
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
index ee3c89eac72..f80e355b65c 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
@@ -134,7 +134,7 @@ public:
if (me->IsWithinMeleeRange(me->getVictim()))
{
me->Kill(me->getVictim());
- me->ModifyHealth(me->GetMaxHealth() * 0.05f);
+ me->ModifyHealth(int32(me->CountPctFromMaxHealth(5)));
}
}
else
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
index 9acecc7337c..62762a2ea0f 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
@@ -94,7 +94,7 @@ public:
if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1))
if (!pTarget->HasAura(SPELL_MUTATING_INJECTION))
DoCast(pTarget, SPELL_MUTATING_INJECTION);
- events.ScheduleEvent(EVENT_INJECT, 8000 + 12000 * ((float)me->GetHealth() / me->GetMaxHealth()));
+ events.ScheduleEvent(EVENT_INJECT, 8000 + uint32(120 * me->GetHealthPct()));
return;
}
}
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
index 42ab62cc5c1..07591841af7 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
@@ -142,7 +142,7 @@ public:
uiCrystalSpikesTimer2 = 200;
} else uiCrystalSpikesTimer2 -= diff;
- if (!bFrenzy && (me->GetHealth() < me->GetMaxHealth() * 0.25))
+ if (!bFrenzy && HealthBelowPct(25))
{
DoCast(me, SPELL_FRENZY);
bFrenzy = true;
diff --git a/src/server/scripts/Northrend/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ObsidianSanctum/boss_sartharion.cpp
index 4538a73b7e8..37898942545 100644
--- a/src/server/scripts/Northrend/ObsidianSanctum/boss_sartharion.cpp
+++ b/src/server/scripts/Northrend/ObsidianSanctum/boss_sartharion.cpp
@@ -569,7 +569,7 @@ public:
Unit* pVesp = Unit::GetUnit(*me, pInstance ? pInstance->GetData64(DATA_VESPERON) : 0);
//spell will target dragons, if they are still alive at 35%
- if (!m_bIsBerserk && (me->GetHealth()*100 / me->GetMaxHealth()) <= 35
+ if (!m_bIsBerserk && !HealthAbovePct(35)
&& ((pTene && pTene->isAlive()) || (pShad && pShad->isAlive()) || (pVesp && pVesp->isAlive())))
{
DoScriptText(SAY_SARTHARION_BERSERK, me);
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
index f4d14262a23..bfaac47683f 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
@@ -202,7 +202,7 @@ public:
m_uiLightningNova_Timer -= uiDiff;
// Health check
- if ((me->GetHealth()*100 / me->GetMaxHealth()) < (100-(25*m_uiHealthAmountModifier)))
+ if (HealthBelowPct(100 - 25 * m_uiHealthAmountModifier))
{
switch(m_uiHealthAmountModifier)
{
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
index 081c6292d58..b5293f76be5 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
@@ -312,7 +312,7 @@ public:
}
// Health check
- if (!m_bCanShatterGolem && (me->GetHealth()*100 / me->GetMaxHealth()) < (100-(20*m_uiHealthAmountModifier)))
+ if (!m_bCanShatterGolem && me->HealthBelowPct(100 - 20 * m_uiHealthAmountModifier))
{
++m_uiHealthAmountModifier;
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
index 6925b9f6982..851a628fc23 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
@@ -190,11 +190,11 @@ public:
{
if (Creature* Brundir = Unit::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_STORMCALLER_BRUNDIR) : 0))
if (Brundir->isAlive())
- Brundir->SetHealth(Brundir->GetMaxHealth());
+ Brundir->SetFullHealth();
if (Creature* Molgeim = Unit::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_RUNEMASTER_MOLGEIM) : 0))
if (Molgeim->isAlive())
- Molgeim->SetHealth(Molgeim->GetMaxHealth());
+ Molgeim->SetFullHealth();
DoCast(SPELL_SUPERCHARGE);
}
@@ -315,11 +315,11 @@ public:
{
if (Creature* Steelbreaker = Unit::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_STEELBREAKER) : 0))
if (Steelbreaker->isAlive())
- Steelbreaker->SetHealth(Steelbreaker->GetMaxHealth());
+ Steelbreaker->SetFullHealth();
if (Creature* Brundir = Unit::GetCreature((*me), pInstance ? pInstance->GetData64(DATA_STORMCALLER_BRUNDIR) : 0))
if (Brundir->isAlive())
- Brundir->SetHealth(Brundir->GetMaxHealth());
+ Brundir->SetFullHealth();
DoCast(me, SPELL_SUPERCHARGE);
}
@@ -521,11 +521,11 @@ public:
{
if (Creature* Steelbreaker = Unit::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_STEELBREAKER) : 0))
if (Steelbreaker->isAlive())
- Steelbreaker->SetHealth(Steelbreaker->GetMaxHealth());
+ Steelbreaker->SetFullHealth();
if (Creature* Molgeim = Unit::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_RUNEMASTER_MOLGEIM) : 0))
if (Molgeim->isAlive())
- Molgeim->SetHealth(Molgeim->GetMaxHealth());
+ Molgeim->SetFullHealth();
DoCast(SPELL_SUPERCHARGE);
}
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp
index 424a80e6c48..c4de6b47d22 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_razorscale.cpp
@@ -131,13 +131,13 @@ public:
if (me->getVictim() && !me->getVictim()->GetCharmerOrOwnerPlayerOrPlayerItself())
me->Kill(me->getVictim());
- if ((me->GetHealth()*100 / me->GetMaxHealth()) < 99 && Phase == 1) // TODO: Only land (exit Phase 1) if brought down with harpoon guns! This is important!
+ if (HealthBelowPct(99) && Phase == 1) // TODO: Only land (exit Phase 1) if brought down with harpoon guns! This is important!
{
Phase = 2;
DoScriptText(SAY_PHASE_2_TRANS, me); // Audio: "Move quickly! She won't remain grounded for long!"
}
- if ((me->GetHealth()*100 / me->GetMaxHealth()) < 33 && Phase == 2) // Health under 33%, Razorscale can't fly anymore.
+ if (HealthBelowPct(33) && Phase == 2) // Health under 33%, Razorscale can't fly anymore.
{
Phase = 3;
DoScriptText(SAY_PHASE_3_TRANS, me); // "Razorscale lands permanently!"
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
index 7cb8dba721f..498106bcb7b 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
@@ -254,7 +254,7 @@ public:
enterHardMode = true;
// set max health
- me->SetHealth(me->GetMaxHealth());
+ me->SetFullHealth();
// Get his heartbreak buff
me->CastSpell(me, RAID_MODE(SPELL_HEARTBREAK_10, SPELL_HEARTBREAK_25), true);
@@ -611,7 +611,7 @@ public:
// TODO Send raid message
// Increase health with 1 percent
- pXT002->ModifyHealth(pXT002->GetMaxHealth() * 0.01);
+ pXT002->ModifyHealth(int32(pXT002->CountPctFromMaxHealth(1)));
// Despawns the scrapbot
me->ForcedDespawn();
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
index 6c17e0c764b..c0847e5cd47 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
@@ -318,7 +318,7 @@ public:
} else m_uiAbility_TORGYN_Timer -= diff;
// Health check -----------------------------------------------------------------------------
- if ((me->GetHealth()*100 / me->GetMaxHealth()) < (100-(m_uiHealthAmountMultipler * m_uiHealthAmountModifier)))
+ if (me->HealthBelowPct(100 - m_uiHealthAmountMultipler * m_uiHealthAmountModifier))
{
uint8 m_uiOrder = m_uiHealthAmountModifier - 1;
++m_uiHealthAmountModifier;
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
index 5052457c5e3..3b59dee2108 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
@@ -142,7 +142,7 @@ public:
if (minion && minion->isAlive())
{
minion->CastSpell(me, SPELL_OVERCHARGED, true);
- minion->SetHealth(minion->GetMaxHealth());
+ minion->SetFullHealth();
DoScriptText(EMOTE_OVERCHARGE, me);
events.ScheduleEvent(EVENT_OVERCHARGE, 45000);
}
diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
index bfb83f893a2..8e2f8659d43 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
@@ -238,11 +238,11 @@ public:
return me->GetGUID();
Creature *pGuard1 = Unit::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_EREKEM_GUARD_1) : 0);
- if (pGuard1 && pGuard1->isAlive() && (pGuard1->GetHealth()*100 <= pGuard1->GetMaxHealth() * 75))
+ if (pGuard1 && pGuard1->isAlive() && !pGuard1->HealthAbovePct(75))
return pGuard1->GetGUID();
Creature *pGuard2 = Unit::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_EREKEM_GUARD_2) : 0);
- if (pGuard2 && pGuard2->isAlive() && (pGuard2->GetHealth()*100 <= pGuard2->GetMaxHealth() * 75))
+ if (pGuard2 && pGuard2->isAlive() && !pGuard2->HealthAbovePct(75))
return pGuard2->GetGUID();
return 0;
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index 0425fc24712..01353d0128d 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -162,7 +162,7 @@ public:
switch(param)
{
case ACTION_WATER_ELEMENT_HIT:
- me->SetHealth(me->GetHealth() + me->GetMaxHealth() * 0.01f);
+ me->ModifyHealth(int32(me->CountPctFromMaxHealth(1)));
if (bIsExploded)
DoExplodeCompleted();
@@ -170,8 +170,8 @@ public:
bAchievement = false;
break;
case ACTION_WATER_ELEMENT_KILLED:
- uint32 damage = (me->GetMaxHealth()*3)/100;
- me->SetHealth(me->GetHealth() - damage);
+ uint32 damage = me->CountPctFromMaxHealth(3);
+ me->ModifyHealth(-int32(damage));
me->LowerPlayerDamageReq(damage);
break;
}
diff --git a/src/server/scripts/Northrend/borean_tundra.cpp b/src/server/scripts/Northrend/borean_tundra.cpp
index c98daec247e..f77d7804f51 100644
--- a/src/server/scripts/Northrend/borean_tundra.cpp
+++ b/src/server/scripts/Northrend/borean_tundra.cpp
@@ -1620,7 +1620,7 @@ public:
void SpellHit(Unit* pCaster, const SpellEntry* pSpell)
{
- if (pSpell->Id == SPELL_ARCANE_CHAINS && pCaster->GetTypeId() == TYPEID_PLAYER && me->GetHealth()*100 / me->GetMaxHealth() <= 50 && !bEnslaved)
+ if (pSpell->Id == SPELL_ARCANE_CHAINS && pCaster->GetTypeId() == TYPEID_PLAYER && !HealthAbovePct(50) && !bEnslaved)
{
EnterEvadeMode(); //We make sure that the npc is not attacking the player!
me->SetReactState(REACT_PASSIVE);
diff --git a/src/server/scripts/Northrend/zuldrak.cpp b/src/server/scripts/Northrend/zuldrak.cpp
index f6a0a3f00df..9eb8ff8157f 100644
--- a/src/server/scripts/Northrend/zuldrak.cpp
+++ b/src/server/scripts/Northrend/zuldrak.cpp
@@ -646,7 +646,7 @@ public:
uiFishyScentTimer = 20000;
} else uiFishyScentTimer -= uiDiff;
- if (!bSummoned && me->GetHealth()*100 / me->GetMaxHealth() <= 50)
+ if (!bSummoned && !HealthAbovePct(50))
{
DoScriptText(SAY_CALL_FOR_HELP ,me);
//DoCast(me->getVictim(), SPELL_SUMMON_WHISKER); petai is not working correctly???
@@ -771,7 +771,7 @@ public:
uiChargeTimer = 15000;
} else uiChargeTimer -= uiDiff;
- if (!bEnrage && me->GetHealth()*100 / me->GetMaxHealth() <= 20)
+ if (!bEnrage && !HealthAbovePct(20))
{
DoCast(me, SPELL_ENRAGE);
bEnrage = true;
@@ -968,7 +968,7 @@ public:
}
}
- if (bThunderClap && me->GetHealth()*100 / me->GetMaxHealth() <= 10)
+ if (bThunderClap && !HealthAbovePct(10))
{
DoCastAOE(SPELL_THUNDERCLAP);
bThunderClap = true;
@@ -994,7 +994,7 @@ public:
uiStinkyBeardTimer = 15000;
} else uiStinkyBeardTimer -= uiDiff;
- if (!bEnrage && me->GetHealth()*100 / me->GetMaxHealth() <= 20)
+ if (!bEnrage && !HealthAbovePct(20))
{
DoCast(me, SPELL_ENRAGE_STINKBEARD);
bEnrage = true;
@@ -1119,7 +1119,7 @@ public:
uiElementalSpellTimer = urand(5000,8000);
} else uiElementalSpellTimer -= uiDiff;
- if (!bAddAttack && me->GetHealth()*100 / me->GetMaxHealth() <= 20)
+ if (!bAddAttack && !HealthAbovePct(20))
{
if (!SummonList.empty())
for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr)