#pragma once #include "CppScripts.h" class BasePropertyServer : virtual public CppScripts::Script { public: virtual void SetGameVariables(Entity* self); virtual void CheckForOwner(Entity* self); virtual void PropGuardCheck(Entity* self, Entity* player); void OnStartup(Entity* self) override; void OnFireEventServerSide(Entity* self, Entity* sender, std::string args, int32_t param1, int32_t param2, int32_t param3) override; void OnPlayerLoaded(Entity* self, Entity* player) override { BasePlayerLoaded(self, player); }; void OnPlayerExit(Entity* self, Entity* player) override { BasePlayerExit(self, player); }; void OnZonePropertyModelPlaced(Entity* self, Entity* player) override { BaseZonePropertyModelPlaced(self, player); } void OnZonePropertyRented(Entity* self, Entity* renter) override { BaseZonePropertyRented(self, renter); }; void OnTimerDone(Entity* self, std::string timerName) override { BaseTimerDone(self, timerName); }; virtual void BasePlayerLoaded(Entity* self, Entity* player); virtual void BaseZonePropertyRented(Entity* self, Entity* player) const; virtual void BaseZonePropertyModelPlaced(Entity* self, Entity* player) const; virtual void BasePlayerExit(Entity* self, Entity* player); virtual void BaseTimerDone(Entity* self, const std::string& timerName); void KillClouds(Entity* self); virtual void SpawnSpots(Entity* self); virtual void KillSpots(Entity* self); virtual void StartMaelstrom(Entity* self, Entity* player); virtual void StartTornadoFx(Entity* self) const; virtual void KillGuard(Entity* self); static void RequestDie(Entity* self, Entity* other); void DeactivateSpawner(const std::string& spawnerName); static void ResetSpawner(const std::string& spawnerName); static void DestroySpawner(const std::string& spawnerName); static void ActivateSpawner(const std::string& spawnerName); static void TriggerSpawner(const std::string& spawnerNamstatic); static LWOOBJID GetOwner(); protected: void HandleOrbsTimer(Entity* self); void HandleGeneratorTimer(Entity* self); void HandleQuickBuildTimer(Entity* self); // GUIDs std::string GUIDMaelstrom = "{7881e0a1-ef6d-420c-8040-f59994aa3357}"; std::string GUIDPeaceful = "{c5725665-58d0-465f-9e11-aeb1d21842ba}"; // Groups std::u16string PropertyPlaqueGroup = u"PropertyPlaqueGroup"; std::u16string PropertyVendorGroup = u"PropertyVendorGroup"; std::u16string PropertyBorderGroup = u"PropertyBorderGroup"; std::u16string SpotsGroup = u"SpotsGroup"; std::u16string MSCloudsGroup = u"MSCloudsGroup"; std::u16string GeneratorFXGroup = u"GeneratorFXGroup"; std::u16string GeneratorGroup = u"GeneratorGroup"; std::u16string ImagOrbGroup = u"ImagOrbGroup"; std::u16string FXManagerGroup = u"FXManagerGroup"; std::u16string ClaimMarkerGroup = u"ClaimMarkerGroup"; std::u16string GuardGroup = u"GuardGroup"; std::u16string EnemiesGroup = u"EnemiesGroup"; // Spawners std::u16string EnemiesSpawner = u"EnemiesSpawner"; std::u16string PropObjsSpawner = u"PropObjsSpawner"; std::u16string PropertyMGSpawner = u"PropertyMGSpawner"; std::u16string DamageFXSpawner = u"DamageFXSpawner"; std::u16string FXSpotsSpawner = u"FXSpotsSpawner"; std::u16string GeneratorSpawner = u"GeneratorSpawner"; std::u16string GeneratorFXSpawner = u"GeneratorFXSpawner"; std::u16string FXManagerSpawner = u"FXManagerSpawner"; std::u16string ImageOrbSpawner = u"ImageOrbSpawner"; std::u16string AmbientFXSpawner = u"AmbientFXSpawners"; std::u16string SmashablesSpawner = u"SmashablesSpawner"; std::u16string ClaimMarkerSpawner = u"ClaimMarkerSpawner"; std::u16string BehaviorObjsSpawner = u"BehaviorObjsSpawner"; //Flags / constants std::u16string guardFirstMissionFlag = u"guardFirstMissionFlag"; std::u16string guardMissionFlag = u"guardMissionFlag"; std::u16string brickLinkMissionIDFlag = u"brickLinkMissionIDFlag"; std::u16string placedModelFlag = u"placedModelFlag"; std::u16string generatorIdFlag = u"generatorIdFlag"; std::u16string defeatedProperyFlag = u"defeatedProperyFlag"; std::u16string passwordFlag = u"passwordFlag"; std::u16string orbIDFlag = u"orbIDFlag"; std::u16string behaviorQBID = u"behaviorQBID"; // Variables std::u16string PlayerIDVariable = u"playerID"; std::u16string CollidedVariable = u"collided"; std::u16string PropertyOwnerVariable = u"PropertyOwner"; std::u16string PropertyOwnerIDVariable = u"PropertyOwnerID"; std::u16string FXObjectsGoneVariable = u"FXObjectGone"; std::u16string RenterVariable = u"renter"; std::u16string UnclaimedVariable = u"unclaimed"; // Events std::string CheckForPropertyOwnerEvent = "CheckForPropertyOwner"; // Timers std::string StartGeneratorTimer = "startGenerator"; std::string StartOrbTimer = "startOrb"; std::string StartQuickbuildTimer = "startQuickbuild"; std::string TornadoOffTimer = "tornadoOff"; std::string KillMarkerTimer = "killMarker"; std::string KillGuardTimer = "KillGuard"; std::string ShowClearEffectsTimer = "ShowClearEffects"; std::string TurnSkyOffTimer = "turnSkyOff"; std::string KillStrombiesTimer = "killStrombies"; std::string KillFXObjectTimer = "killFXObject"; std::string ShowVendorTimer = "ShowVendor"; std::string BoundsVisOnTimer = "BoundsVisOn"; std::string RunPlayerLoadedAgainTimer = "runPlayerLoadedAgain"; std::string PollTornadoFXTimer = "pollTornadoFX"; };