mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 10:30:27 +00:00
fix(Core/Quest): The Lich, Ras Frostwhisper (#2373)
This commit is contained in:
committed by
Francesco Borzì
parent
0fd565d557
commit
4e6a8a2756
@@ -8,6 +8,7 @@
|
||||
#include "scholomance.h"
|
||||
#include "GameObjectAI.h"
|
||||
#include "SpellScript.h"
|
||||
#include "SpellAuras.h"
|
||||
|
||||
class instance_scholomance : public InstanceMapScript
|
||||
{
|
||||
@@ -21,18 +22,18 @@ class instance_scholomance : public InstanceMapScript
|
||||
|
||||
struct instance_scholomance_InstanceMapScript : public InstanceScript
|
||||
{
|
||||
instance_scholomance_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
GateKirtonosGUID = 0;
|
||||
GateMiliciaGUID = 0;
|
||||
GateTheolenGUID = 0;
|
||||
GatePolkeltGUID = 0;
|
||||
GateRavenianGUID = 0;
|
||||
GateBarovGUID = 0;
|
||||
GateIlluciaGUID = 0;
|
||||
_kirtonosState = 0;
|
||||
_miniBosses = 0;
|
||||
}
|
||||
instance_scholomance_InstanceMapScript(Map* map) : InstanceScript(map),
|
||||
GateKirtonosGUID { 0 },
|
||||
GateMiliciaGUID { 0 },
|
||||
GateTheolenGUID { 0 },
|
||||
GatePolkeltGUID { 0 },
|
||||
GateRavenianGUID { 0 },
|
||||
GateBarovGUID { 0 },
|
||||
GateIlluciaGUID { 0 },
|
||||
_kirtonosState { 0 },
|
||||
_miniBosses { 0 },
|
||||
_rasHuman { 0 }
|
||||
{ }
|
||||
|
||||
void OnGameObjectCreate(GameObject* go)
|
||||
{
|
||||
@@ -95,6 +96,9 @@ class instance_scholomance : public InstanceMapScript
|
||||
case DATA_MINI_BOSSES:
|
||||
++_miniBosses;
|
||||
break;
|
||||
case DATA_RAS_HUMAN:
|
||||
_rasHuman = data;
|
||||
break;
|
||||
}
|
||||
|
||||
SaveToDB();
|
||||
@@ -108,6 +112,8 @@ class instance_scholomance : public InstanceMapScript
|
||||
return _kirtonosState;
|
||||
case DATA_MINI_BOSSES:
|
||||
return _miniBosses;
|
||||
case DATA_RAS_HUMAN:
|
||||
return _rasHuman;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -149,6 +155,7 @@ class instance_scholomance : public InstanceMapScript
|
||||
|
||||
uint32 _kirtonosState;
|
||||
uint32 _miniBosses;
|
||||
uint32 _rasHuman;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -455,6 +462,53 @@ class spell_scholomance_shadow_portal_rooms : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class spell_scholomance_boon_of_life : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_scholomance_boon_of_life() : SpellScriptLoader("spell_scholomance_boon_of_life") { }
|
||||
|
||||
class spell_scholomance_boon_of_life_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_scholomance_boon_of_life_AuraScript);
|
||||
|
||||
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (Unit* caster = GetCaster())
|
||||
if (Unit* target = GetTarget())
|
||||
if (Creature* creature = target->ToCreature())
|
||||
{
|
||||
creature->AI()->AttackStart(caster);
|
||||
creature->AddThreat(caster, 10000.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (Unit* target = GetTarget())
|
||||
if (Creature* creature = target->ToCreature())
|
||||
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_CANCEL)
|
||||
{
|
||||
creature->AI()->Talk(TALK_RAS_HUMAN);
|
||||
creature->SetDisplayId(MODEL_RAS_HUMAN);
|
||||
creature->SetHealth(target->GetMaxHealth());
|
||||
if (InstanceScript* instance = creature->GetInstanceScript())
|
||||
instance->SetData(DATA_RAS_HUMAN,1);
|
||||
}
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectRemove += AuraEffectRemoveFn(spell_scholomance_boon_of_life_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
|
||||
AfterEffectApply += AuraEffectApplyFn(spell_scholomance_boon_of_life_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const
|
||||
{
|
||||
return new spell_scholomance_boon_of_life_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_instance_scholomance()
|
||||
{
|
||||
new instance_scholomance();
|
||||
@@ -463,4 +517,5 @@ void AddSC_instance_scholomance()
|
||||
new spell_kormok_summon_bone_minions();
|
||||
new spell_scholomance_shadow_portal();
|
||||
new spell_scholomance_shadow_portal_rooms();
|
||||
new spell_scholomance_boon_of_life();
|
||||
}
|
||||
|
||||
@@ -8,7 +8,18 @@
|
||||
enum DataTypes
|
||||
{
|
||||
DATA_KIRTONOS_THE_HERALD = 0,
|
||||
DATA_MINI_BOSSES = 1
|
||||
DATA_MINI_BOSSES = 1,
|
||||
DATA_RAS_HUMAN = 2
|
||||
};
|
||||
|
||||
enum ModelIds
|
||||
{
|
||||
MODEL_RAS_HUMAN = 3975
|
||||
};
|
||||
|
||||
enum TalkGroupIds
|
||||
{
|
||||
TALK_RAS_HUMAN = 0
|
||||
};
|
||||
|
||||
enum CreatureIds
|
||||
|
||||
Reference in New Issue
Block a user