From 88b2ef5f3835bad02bc58c5606e9de389883bc91 Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Tue, 29 Sep 2026 09:33:04 -0500 Subject: [PATCH] feat(scripts): Portabello's starflies start moving when their mission is handed in WBL_Starflies had no script. As the live script: when the mission given at that object is handed in, every object of the Starflies group starts its path. Check: in Portabello, hand in the starflies mission: the starflies fly off. Co-Authored-By: Claude Opus 5.5 --- dScripts/CppScripts.cpp | 2 ++ dScripts/zone/LUPs/CMakeLists.txt | 1 + dScripts/zone/LUPs/WblStarflies.cpp | 14 ++++++++++++++ dScripts/zone/LUPs/WblStarflies.h | 8 ++++++++ 4 files changed, 25 insertions(+) create mode 100644 dScripts/zone/LUPs/WblStarflies.cpp create mode 100644 dScripts/zone/LUPs/WblStarflies.h diff --git a/dScripts/CppScripts.cpp b/dScripts/CppScripts.cpp index 22832e7e5..f08450fcf 100644 --- a/dScripts/CppScripts.cpp +++ b/dScripts/CppScripts.cpp @@ -322,6 +322,7 @@ // WBL scripts #include "WblGenericZone.h" +#include "WblStarflies.h" // Alpha Scripts #include "TriggerGas.h" @@ -688,6 +689,7 @@ namespace { //WBL {"scripts\\zone\\LUPs\\WBL_generic_zone.lua", []() {return new WblGenericZone();}}, + {"scripts\\zone\\LUPs\\Portabello Intro\\WBL_Starflies.lua", []() {return new WblStarflies();}}, {"scripts\\zone\\LUPs\\Moonbase Intro\\MOONBASE-INTRO_INTRO_CINEMATIC.lua", []() {return new WblGenericZone();}}, //Alpha diff --git a/dScripts/zone/LUPs/CMakeLists.txt b/dScripts/zone/LUPs/CMakeLists.txt index 7ce84fcc0..642d43880 100644 --- a/dScripts/zone/LUPs/CMakeLists.txt +++ b/dScripts/zone/LUPs/CMakeLists.txt @@ -1,5 +1,6 @@ set(DSCRIPTS_SOURCES_ZONE_LUPS "WblGenericZone.cpp" + "WblStarflies.cpp" ) add_subdirectory(RobotCity_Intro) diff --git a/dScripts/zone/LUPs/WblStarflies.cpp b/dScripts/zone/LUPs/WblStarflies.cpp new file mode 100644 index 000000000..db003943e --- /dev/null +++ b/dScripts/zone/LUPs/WblStarflies.cpp @@ -0,0 +1,14 @@ +#include "WblStarflies.h" + +#include "Entity.h" +#include "EntityManager.h" +#include "eMissionState.h" +#include "MovingPlatformComponent.h" + +void WblStarflies::OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) { + if (missionState != eMissionState::COMPLETE && missionState != eMissionState::READY_TO_COMPLETE) return; + for (auto* starfly : Game::entityManager->GetEntitiesInGroup("Starflies")) { + if (starfly == self) continue; + if (auto* movingPlatform = starfly->GetComponent()) movingPlatform->StartPathing(); + } +} diff --git a/dScripts/zone/LUPs/WblStarflies.h b/dScripts/zone/LUPs/WblStarflies.h new file mode 100644 index 000000000..74b71a93f --- /dev/null +++ b/dScripts/zone/LUPs/WblStarflies.h @@ -0,0 +1,8 @@ +#pragma once +#include "CppScripts.h" + +// WBL_Starflies (Portabello): the starflies start moving when the mission given here is handed in +class WblStarflies : public CppScripts::Script { +public: + void OnMissionDialogueOK(Entity* self, Entity* target, int missionID, eMissionState missionState) override; +};