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:
@@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user