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; +};