Scripts/Icecrown Citadel

* Fixed Mutated Abomination for Professor Putricide
* Tweaked a bit Bone Storm damage formula and fixed its damage (fix by Havenard)
This commit is contained in:
Shauren
2011-10-06 15:27:47 +02:00
parent 4eaa4ce401
commit 0ef92d85b7
2 changed files with 11 additions and 11 deletions
@@ -193,9 +193,9 @@ class boss_lord_marrowgar : public CreatureScript
case EVENT_BONE_STORM_MOVE: case EVENT_BONE_STORM_MOVE:
{ {
events.ScheduleEvent(EVENT_BONE_STORM_MOVE, _boneStormDuration/3); events.ScheduleEvent(EVENT_BONE_STORM_MOVE, _boneStormDuration/3);
Unit* unit = SelectTarget(SELECT_TARGET_RANDOM, 1); Unit* unit = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me));
if (!unit) if (!unit)
unit = SelectTarget(SELECT_TARGET_RANDOM, 0); unit = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true);
if (unit) if (unit)
me->GetMotionMaster()->MovePoint(POINT_TARGET_BONESTORM_PLAYER, unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ()); me->GetMotionMaster()->MovePoint(POINT_TARGET_BONESTORM_PLAYER, unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ());
break; break;
@@ -564,14 +564,14 @@ class spell_marrowgar_bone_storm : public SpellScriptLoader
{ {
PrepareSpellScript(spell_marrowgar_bone_storm_SpellScript); PrepareSpellScript(spell_marrowgar_bone_storm_SpellScript);
void RecalculateDamage(SpellEffIndex /*effIndex*/) void RecalculateDamage()
{ {
SetHitDamage(int32(GetHitDamage() / sqrtf(logf(GetHitUnit()->GetExactDist2d(GetCaster()))))); SetHitDamage(int32(GetHitDamage() / std::max(sqrtf(GetHitUnit()->GetExactDist2d(GetCaster())), 1.0f)));
} }
void Register() void Register()
{ {
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_bone_storm_SpellScript::RecalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); OnHit += SpellHitFn(spell_marrowgar_bone_storm_SpellScript::RecalculateDamage);
} }
}; };
@@ -525,7 +525,7 @@ class boss_professor_putricide : public CreatureScript
EnterEvadeMode(); EnterEvadeMode();
break; break;
case EVENT_FESTERGUT_GOO: case EVENT_FESTERGUT_GOO:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true)) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
DoCast(target, SPELL_MALLABLE_GOO_H, true); // triggered, to skip LoS check DoCast(target, SPELL_MALLABLE_GOO_H, true); // triggered, to skip LoS check
events.ScheduleEvent(EVENT_FESTERGUT_GOO, urand(15000, 20000), 0, PHASE_FESTERGUT); events.ScheduleEvent(EVENT_FESTERGUT_GOO, urand(15000, 20000), 0, PHASE_FESTERGUT);
break; break;
@@ -534,7 +534,7 @@ class boss_professor_putricide : public CreatureScript
EnterEvadeMode(); EnterEvadeMode();
break; break;
case EVENT_ROTFACE_VILE_GAS: case EVENT_ROTFACE_VILE_GAS:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true)) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
DoCast(target, SPELL_VILE_GAS_H, true); // triggered, to skip LoS check DoCast(target, SPELL_VILE_GAS_H, true); // triggered, to skip LoS check
events.ScheduleEvent(EVENT_ROTFACE_VILE_GAS, urand(15000, 20000), 0, PHASE_ROTFACE); events.ScheduleEvent(EVENT_ROTFACE_VILE_GAS, urand(15000, 20000), 0, PHASE_ROTFACE);
break; break;
@@ -601,7 +601,7 @@ class boss_professor_putricide : public CreatureScript
events.ScheduleEvent(EVENT_CHOKING_GAS_BOMB, urand(35000, 40000)); events.ScheduleEvent(EVENT_CHOKING_GAS_BOMB, urand(35000, 40000));
break; break;
case EVENT_UNBOUND_PLAGUE: case EVENT_UNBOUND_PLAGUE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true)) if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(me)))
{ {
me->CastCustomSpell(SPELL_UNBOUND_PLAGUE, SPELLVALUE_BASE_POINT0, 775, target); me->CastCustomSpell(SPELL_UNBOUND_PLAGUE, SPELLVALUE_BASE_POINT0, 775, target);
DoCast(target, SPELL_UNBOUND_PLAGUE_SEARCHER); DoCast(target, SPELL_UNBOUND_PLAGUE_SEARCHER);
@@ -1341,18 +1341,18 @@ class spell_putricide_mutated_transformation : public SpellScriptLoader
if (!summon || !summon->IsVehicle()) if (!summon || !summon->IsVehicle())
return; return;
caster->CastSpell(summon, SPELL_MUTATED_TRANSFORMATION_NAME, true);
summon->CastSpell(summon, SPELL_ABOMINATION_VEHICLE_POWER_DRAIN, true); summon->CastSpell(summon, SPELL_ABOMINATION_VEHICLE_POWER_DRAIN, true);
summon->CastSpell(summon, SPELL_MUTATED_TRANSFORMATION_DAMAGE, true); summon->CastSpell(summon, SPELL_MUTATED_TRANSFORMATION_DAMAGE, true);
caster->CastSpell(summon, SPELL_MUTATED_TRANSFORMATION_NAME, true);
caster->EnterVehicle(summon, 0); caster->EnterVehicle(summon, 0); // VEHICLE_SPELL_RIDE_HARDCODED is used according to sniff, this is ok
summon->SetCreatorGUID(caster->GetGUID()); summon->SetCreatorGUID(caster->GetGUID());
putricide->AI()->JustSummoned(summon); putricide->AI()->JustSummoned(summon);
} }
void Register() void Register()
{ {
OnEffectHitTarget += SpellEffectFn(spell_putricide_mutated_transformation_SpellScript::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON); OnEffectHit += SpellEffectFn(spell_putricide_mutated_transformation_SpellScript::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
} }
}; };