diff options
| author | ModoX <moardox@gmail.com> | 2024-12-28 23:25:10 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-28 23:25:10 +0100 |
| commit | 309ba22a15e5e0b4321b99f7157ccb18e0adc8dd (patch) | |
| tree | f40e4b0b27df733b348144b3813b932f8aeb3268 /src/server/scripts/KulTiras | |
| parent | d8bcf5fcb655d9931f7c74883ca19c0428e2a8ae (diff) | |
Core/AI: Implemented conversation ai (#30538)
Diffstat (limited to 'src/server/scripts/KulTiras')
| -rw-r--r-- | src/server/scripts/KulTiras/WaycrestManor/waycrest_manor.cpp | 11 | ||||
| -rw-r--r-- | src/server/scripts/KulTiras/zone_boralus.cpp | 75 |
2 files changed, 44 insertions, 42 deletions
diff --git a/src/server/scripts/KulTiras/WaycrestManor/waycrest_manor.cpp b/src/server/scripts/KulTiras/WaycrestManor/waycrest_manor.cpp index d8973eb29e7..21fb2e722fc 100644 --- a/src/server/scripts/KulTiras/WaycrestManor/waycrest_manor.cpp +++ b/src/server/scripts/KulTiras/WaycrestManor/waycrest_manor.cpp @@ -18,6 +18,7 @@ #include "AreaTrigger.h" #include "AreaTriggerAI.h" #include "Conversation.h" +#include "ConversationAI.h" #include "Creature.h" #include "InstanceScript.h" #include "Map.h" @@ -351,12 +352,12 @@ class spell_waycrest_manor_organ_missiles : public SpellScript // 267597 - Waycrest Manor - Waycrests Defeated (Alliance) // 7351 - Conversation // 7352 - Conversation -class conversation_waycrest_manor_waycrests_defeated : public ConversationScript +class conversation_waycrest_manor_waycrests_defeated : public ConversationAI { public: - conversation_waycrest_manor_waycrests_defeated() : ConversationScript("conversation_waycrest_manor_waycrests_defeated") { } + conversation_waycrest_manor_waycrests_defeated(Conversation* conversation) : ConversationAI(conversation) { } - void OnConversationStart(Conversation* conversation) override + void OnStart() override { if (Milliseconds const* gorakTulMoveStartTimeAlliance = conversation->GetLineStartTime(DEFAULT_LOCALE, CONVERSATION_LINE_LUCILLE_WAYCREST)) _events.ScheduleEvent(EVENT_GORAK_TUL_TRANSFORM, *gorakTulMoveStartTimeAlliance); @@ -364,7 +365,7 @@ public: _events.ScheduleEvent(EVENT_GORAK_TUL_TRANSFORM, *gorakTulMoveStartTimeHorde + 3s); } - void OnConversationUpdate(Conversation* conversation, uint32 diff) override + void OnUpdate(uint32 diff) override { _events.Update(diff); @@ -442,5 +443,5 @@ void AddSC_waycrest_manor() // Lord and Lady Waycrest outro RegisterAreaTriggerAI(at_waycrest_manor_organ_missiles); RegisterSpellScript(spell_waycrest_manor_organ_missiles); - new conversation_waycrest_manor_waycrests_defeated(); + RegisterConversationAI(conversation_waycrest_manor_waycrests_defeated); } diff --git a/src/server/scripts/KulTiras/zone_boralus.cpp b/src/server/scripts/KulTiras/zone_boralus.cpp index 32dc6942110..854e8e0298f 100644 --- a/src/server/scripts/KulTiras/zone_boralus.cpp +++ b/src/server/scripts/KulTiras/zone_boralus.cpp @@ -19,6 +19,7 @@ #include "AreaTriggerAI.h" #include "Containers.h" #include "Conversation.h" +#include "ConversationAI.h" #include "CreatureAIImpl.h" #include "MotionMaster.h" #include "ObjectAccessor.h" @@ -138,12 +139,12 @@ struct npc_taelia_get_your_bearings : public ScriptedAI }; // 5360 - Conversation -class conversation_boralus_hub_tour_00 : public ConversationScript +class conversation_boralus_hub_tour_00 : public ConversationAI { public: - conversation_boralus_hub_tour_00() : ConversationScript("conversation_boralus_hub_tour_00") { } + conversation_boralus_hub_tour_00(Conversation* conversation) : ConversationAI(conversation) { } - void OnConversationCreate(Conversation* conversation, Unit* creator) override + void OnCreate(Unit* creator) override { Creature* kultiranGuard = creator->FindNearestCreatureWithOptions(20.0f, { .CreatureId = NPC_SUMMONED_KULTIRAN_GUARD, .IgnorePhases = true, .OwnerGuid = creator->GetGUID() }); if (!kultiranGuard) @@ -174,10 +175,10 @@ struct at_boralus_get_your_bearings : AreaTriggerAI }; // 5362 - Conversation - Get your Bearings (Ferry) -class conversation_boralus_hub_tour : public ConversationScript +class conversation_boralus_hub_tour : public ConversationAI { public: - conversation_boralus_hub_tour(char const* scriptName) : ConversationScript(scriptName) { } + conversation_boralus_hub_tour(Conversation* conversation) : ConversationAI(conversation) { } enum ConversationFerryData { @@ -187,7 +188,7 @@ public: virtual Position const& GetGuardMovePosition() = 0; virtual uint32 GetKillCreditId() = 0; - void OnConversationCreate(Conversation* conversation, Unit* creator) override + void OnCreate(Unit* creator) override { Creature* kultiranGuard = creator->FindNearestCreatureWithOptions(20.0f, { .CreatureId = NPC_SUMMONED_KULTIRAN_GUARD, .IgnorePhases = true, .OwnerGuid = creator->GetGUID() }); if (!kultiranGuard) @@ -200,14 +201,14 @@ public: conversation->Start(); } - void OnConversationStart(Conversation* conversation) override + void OnStart() override { LocaleConstant privateOwnerLocale = conversation->GetPrivateObjectOwnerLocale(); _events.ScheduleEvent(EVENT_TAELIA_CREDIT, conversation->GetLastLineEndTime(privateOwnerLocale)); } - void OnConversationUpdate(Conversation* conversation, uint32 diff) override + void OnUpdate(uint32 diff) override { _events.Update(diff); @@ -241,7 +242,7 @@ Position const TaeliaFerryPos = { 1039.5955f, -598.00653f, 1.458778f }; class conversation_boralus_hub_tour_ferry : public conversation_boralus_hub_tour { public: - conversation_boralus_hub_tour_ferry() : conversation_boralus_hub_tour("conversation_boralus_hub_tour_ferry") { } + conversation_boralus_hub_tour_ferry(Conversation* conversation) : conversation_boralus_hub_tour(conversation) { } Position const& GetGuardMovePosition() { @@ -260,7 +261,7 @@ Position const TaeliaBankPos = { 1118.7385f, -622.4115f, 17.76035f }; class conversation_boralus_hub_tour_counting_house : public conversation_boralus_hub_tour { public: - conversation_boralus_hub_tour_counting_house() : conversation_boralus_hub_tour("conversation_boralus_hub_tour_counting_house") { } + conversation_boralus_hub_tour_counting_house(Conversation* conversation) : conversation_boralus_hub_tour(conversation) { } Position const& GetGuardMovePosition() { @@ -279,7 +280,7 @@ Position const TaeliaInnPos = { 1177.39f, -587.682f, 31.557224f }; class conversation_boralus_hub_tour_harbor_inn : public conversation_boralus_hub_tour { public: - conversation_boralus_hub_tour_harbor_inn() : conversation_boralus_hub_tour("conversation_boralus_hub_tour_harbor_inn") { } + conversation_boralus_hub_tour_harbor_inn(Conversation* conversation) : conversation_boralus_hub_tour(conversation) { } Position const& GetGuardMovePosition() { @@ -298,7 +299,7 @@ Position const TaeliaFlightMasterPos = { 1149.82f, -471.071f, 30.503826f }; class conversation_boralus_hub_tour_flight_master : public conversation_boralus_hub_tour { public: - conversation_boralus_hub_tour_flight_master() : conversation_boralus_hub_tour("conversation_boralus_hub_tour_flight_master") { } + conversation_boralus_hub_tour_flight_master(Conversation* conversation) : conversation_boralus_hub_tour(conversation) {} Position const& GetGuardMovePosition() { @@ -312,12 +313,12 @@ public: }; // 9556 - Conversation The Old Knight (accept Quest) -class conversation_boralus_accept_old_knight : public ConversationScript +class conversation_boralus_accept_old_knight : public ConversationAI { public: - conversation_boralus_accept_old_knight() : ConversationScript("conversation_boralus_accept_old_knight") { } + conversation_boralus_accept_old_knight(Conversation* conversation) : ConversationAI(conversation) { } - void OnConversationCreate(Conversation* conversation, Unit* creator) override + void OnCreate(Unit* creator) override { Creature* kultiranGuard = creator->FindNearestCreatureWithOptions(20.0f, { .CreatureId = NPC_SUMMONED_KULTIRAN_GUARD, .IgnorePhases = true, .OwnerGuid = creator->GetGUID() }); if (!kultiranGuard) @@ -344,12 +345,12 @@ struct at_boralus_old_knight_enter_harbormasters_office : AreaTriggerAI }; // 7605 - Conversation The Old Knight (Enter the Harbormasters Office) -class conversation_boralus_enter_harbormaster_office : public ConversationScript +class conversation_boralus_enter_harbormaster_office : public ConversationAI { public: - conversation_boralus_enter_harbormaster_office() : ConversationScript("conversation_boralus_enter_harbormaster_office") { } + conversation_boralus_enter_harbormaster_office(Conversation* conversation) : ConversationAI(conversation) { } - void OnConversationCreate(Conversation* conversation, Unit* creator) override + void OnCreate(Unit* creator) override { Creature* kultiranGuard = creator->FindNearestCreatureWithOptions(20.0f, { .CreatureId = NPC_SUMMONED_KULTIRAN_GUARD, .IgnorePhases = true, .OwnerGuid = creator->GetGUID() }); if (!kultiranGuard) @@ -428,10 +429,10 @@ Position const GreyguardOneOfficePos = { 1044.979f, -468.523f, 8.386f, 6.03047f Position const GreyguardTwoOfficePos = { 1042.359f, -467.738f, 8.386f, 6.04665f }; // 8062 - Conversation -class conversation_boralus_cyrus_meets_genn : public ConversationScript +class conversation_boralus_cyrus_meets_genn : public ConversationAI { public: - conversation_boralus_cyrus_meets_genn() : ConversationScript("conversation_boralus_cyrus_meets_genn") { } + conversation_boralus_cyrus_meets_genn(Conversation* conversation) : ConversationAI(conversation) { } enum OldKnightsConversationData { @@ -440,7 +441,7 @@ public: EVENT_OLD_KNIGHTS_CLONE_DESPAWN = 1 }; - void OnConversationCreate(Conversation* conversation, Unit* creator) override + void OnCreate(Unit* creator) override { Creature* cyrusObject = GetClosestCreatureWithOptions(creator, 30.0f, { .CreatureId = NPC_CYRUS_CRESTFALL, .IgnorePhases = true }); Creature* gennObject = GetClosestCreatureWithOptions(creator, 30.0f, { .CreatureId = NPC_GENN_GREYMANE, .IgnorePhases = true }); @@ -470,14 +471,14 @@ public: conversation->Start(); } - void OnConversationStart(Conversation* conversation) override + void OnStart() override { LocaleConstant privateOwnerLocale = conversation->GetPrivateObjectOwnerLocale(); _events.ScheduleEvent(EVENT_OLD_KNIGHTS_CLONE_DESPAWN, conversation->GetLineEndTime(privateOwnerLocale, CONVO_LINE_CYRUS_AND_GENN_DESPAWN)); } - void OnConversationUpdate(Conversation* conversation, uint32 diff) override + void OnUpdate(uint32 diff) override { _events.Update(diff); @@ -532,10 +533,10 @@ Position const CyrusMoveToOfficeFirePos = { 1075.257f, -487.25696f, 9.812291f }; Position const CyrusStaticOfficePos = { 1071.428f, -486.312f, 9.783f, 3.4995f }; // 7653 - Conversation -class conversation_cyrus_crestfall_shaking_hands : public ConversationScript +class conversation_cyrus_crestfall_shaking_hands : public ConversationAI { public: - conversation_cyrus_crestfall_shaking_hands() : ConversationScript("conversation_cyrus_crestfall_shaking_hands") { } + conversation_cyrus_crestfall_shaking_hands(Conversation* conversation) : ConversationAI(conversation) { } enum ShakingHandsConversationData { @@ -553,7 +554,7 @@ public: POINT_CYRUS_MOVE_BACK_TO_GENN = 2 }; - void OnConversationCreate(Conversation* conversation, Unit* creator) override + void OnCreate(Unit* creator) override { Creature* cyrusObject = GetClosestCreatureWithOptions(creator, 10.0f, { .CreatureId = NPC_CYRUS_CRESTFALL, .IgnorePhases = true }); if (!cyrusObject) @@ -569,7 +570,7 @@ public: conversation->Start(); } - void OnConversationStart(Conversation* conversation) override + void OnStart() override { LocaleConstant privateOwnerLocale = conversation->GetPrivateObjectOwnerLocale(); @@ -579,7 +580,7 @@ public: _events.ScheduleEvent(EVENT_CYRUS_DESPAWN_CLONE_OFFICE, conversation->GetLineEndTime(privateOwnerLocale, CONVO_LINE_CYRUS_DESPAWN_CLONE_OFFICE)); } - void OnConversationUpdate(Conversation* conversation, uint32 diff) override + void OnUpdate(uint32 diff) override { _events.Update(diff); @@ -778,15 +779,15 @@ void AddSC_zone_boralus() RegisterCreatureAI(npc_7th_legion_magus_sanctum_of_the_sages); // Conversation - new conversation_boralus_hub_tour_00(); - new conversation_boralus_hub_tour_ferry(); - new conversation_boralus_hub_tour_counting_house(); - new conversation_boralus_hub_tour_harbor_inn(); - new conversation_boralus_hub_tour_flight_master(); - new conversation_boralus_accept_old_knight(); - new conversation_boralus_enter_harbormaster_office(); - new conversation_boralus_cyrus_meets_genn(); - new conversation_cyrus_crestfall_shaking_hands(); + RegisterConversationAI(conversation_boralus_hub_tour_00); + RegisterConversationAI(conversation_boralus_hub_tour_ferry); + RegisterConversationAI(conversation_boralus_hub_tour_counting_house); + RegisterConversationAI(conversation_boralus_hub_tour_harbor_inn); + RegisterConversationAI(conversation_boralus_hub_tour_flight_master); + RegisterConversationAI(conversation_boralus_accept_old_knight); + RegisterConversationAI(conversation_boralus_enter_harbormaster_office); + RegisterConversationAI(conversation_boralus_cyrus_meets_genn); + RegisterConversationAI(conversation_cyrus_crestfall_shaking_hands); // Scene new scene_boralus_client_scene_cyrus_and_genn(); |
