AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
npc_cos_chromie_start Class Reference
Inheritance diagram for npc_cos_chromie_start:
CreatureScript ScriptObject UpdatableScript< Creature >

Public Member Functions

 npc_cos_chromie_start ()
 
bool OnQuestAccept (Player *, Creature *creature, Quest const *quest) override
 
bool OnGossipSelect (Player *player, Creature *creature, uint32, uint32) override
 
- Public Member Functions inherited from CreatureScript
bool IsDatabaseBound () const override
 
virtual bool OnGossipHello (Player *, Creature *)
 
virtual bool OnGossipSelectCode (Player *, Creature *, uint32, uint32, char const *)
 
virtual bool OnQuestSelect (Player *, Creature *, Quest const *)
 
virtual bool OnQuestComplete (Player *, Creature *, Quest const *)
 
virtual bool OnQuestReward (Player *, Creature *, Quest const *, uint32)
 
virtual uint32 GetDialogStatus (Player *, Creature *)
 
virtual CreatureAIGetAI (Creature *) const
 
virtual void OnFfaPvpStateUpdate (Creature *, bool)
 
- Public Member Functions inherited from ScriptObject
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
std::string const & GetName () const
 
uint16 GetTotalAvailableHooks ()
 
- Public Member Functions inherited from UpdatableScript< Creature >
virtual void OnUpdate (Creature *, uint32)
 

Additional Inherited Members

- Protected Member Functions inherited from CreatureScript
 CreatureScript (char const *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (char const *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 
- Protected Member Functions inherited from UpdatableScript< Creature >
 UpdatableScript ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ npc_cos_chromie_start()

npc_cos_chromie_start::npc_cos_chromie_start ( )
inline
1432: CreatureScript("npc_cos_chromie_start") { }
Definition CreatureScript.h:25

Member Function Documentation

◆ OnGossipSelect()

bool npc_cos_chromie_start::OnGossipSelect ( Player player,
Creature creature,
uint32  ,
uint32   
)
inlineoverridevirtual

Reimplemented from CreatureScript.

1444 {
1445 switch (player->PlayerTalkClass->GetGossipMenu().GetMenuId())
1446 {
1447 case GOSSIP_MENU_START:
1448 {
1449 if (InstanceScript* instance = creature->GetInstanceScript())
1450 if (instance->GetData(DATA_ARTHAS_EVENT) == COS_PROGRESS_NOT_STARTED)
1451 instance->SetData(DATA_SHOW_CRATES, 1);
1452
1453 break;
1454 }
1456 {
1457 if (!player->HasItemCount(ITEM_ARCANE_DISRUPTOR))
1458 creature->CastSpell(player, SPELL_SUMMON_ARCANE_DISRUPTOR);
1459
1460 break;
1461 }
1462 // Since 3.3.3: "Players may now skip the initial introduction dialog to this dungeon once they have completed it at least once."
1464 {
1465 if (InstanceScript* instance = creature->GetInstanceScript())
1466 {
1467 if (instance->GetData(DATA_ARTHAS_EVENT) == COS_PROGRESS_NOT_STARTED)
1468 {
1470
1471 if (Creature* arthas = ObjectAccessor::GetCreature(*creature, instance->GetGuidData(DATA_ARTHAS)))
1472 arthas->AI()->Reset();
1473 }
1474
1476 }
1477 break;
1478 }
1479 default:
1480 break;
1481 }
1482
1483 return false;
1484 }
Definition Creature.h:47
uint32 GetMenuId() const
Definition GossipDef.h:172
Definition InstanceScript.h:143
GossipMenu & GetGossipMenu()
Definition GossipDef.h:264
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
Definition PlayerStorage.cpp:659
PlayerMenu * PlayerTalkClass
Definition Player.h:2285
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1361
void NearTeleportTo(Position &pos, bool casting=false, bool vehicleTeleport=false, bool withPet=false, bool removeTransport=false)
Definition Unit.cpp:15959
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1242
@ ITEM_ARCANE_DISRUPTOR
Definition culling_of_stratholme.cpp:1420
@ SPELL_SUMMON_ARCANE_DISRUPTOR
Definition culling_of_stratholme.cpp:1423
@ GOSSIP_MENU_ACTION_MENU_SKIP
Definition culling_of_stratholme.cpp:1425
@ GOSSIP_MENU_START
Definition culling_of_stratholme.cpp:1424
@ GOSSIP_MENU_ACTION_INTERFERE
Definition culling_of_stratholme.cpp:1426
@ DATA_ARTHAS
Definition culling_of_stratholme.h:43
const Position LeaderIntroPos2
Definition culling_of_stratholme.h:146
@ COS_PROGRESS_NOT_STARTED
Definition culling_of_stratholme.h:118
@ COS_PROGRESS_FINISHED_INTRO
Definition culling_of_stratholme.h:121
@ DATA_ARTHAS_EVENT
Definition culling_of_stratholme.h:28
@ DATA_SHOW_CRATES
Definition culling_of_stratholme.h:32
Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:234
float GetPositionZ() const
Definition Position.h:123
float GetOrientation() const
Definition Position.h:124
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122

References Unit::CastSpell(), COS_PROGRESS_FINISHED_INTRO, COS_PROGRESS_NOT_STARTED, DATA_ARTHAS, DATA_ARTHAS_EVENT, DATA_SHOW_CRATES, ObjectAccessor::GetCreature(), PlayerMenu::GetGossipMenu(), WorldObject::GetInstanceScript(), GossipMenu::GetMenuId(), Position::GetOrientation(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), GOSSIP_MENU_ACTION_INTERFERE, GOSSIP_MENU_ACTION_MENU_SKIP, GOSSIP_MENU_START, Player::HasItemCount(), ITEM_ARCANE_DISRUPTOR, LeaderIntroPos2, Unit::NearTeleportTo(), Player::PlayerTalkClass, and SPELL_SUMMON_ARCANE_DISRUPTOR.

◆ OnQuestAccept()

bool npc_cos_chromie_start::OnQuestAccept ( Player ,
Creature creature,
Quest const *  quest 
)
inlineoverridevirtual

Reimplemented from CreatureScript.

1435 {
1436 if (quest->GetQuestId() == QUEST_DISPELLING_ILLUSIONS)
1437 if (InstanceScript* instance = creature->GetInstanceScript())
1438 instance->SetData(DATA_SHOW_CRATES, 1);
1439
1440 return true;
1441 }
@ QUEST_DISPELLING_ILLUSIONS
Definition culling_of_stratholme.cpp:1421

References DATA_SHOW_CRATES, WorldObject::GetInstanceScript(), Quest::GetQuestId(), and QUEST_DISPELLING_ILLUSIONS.


The documentation for this class was generated from the following file: