mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-22 05:27:19 +00:00
parent
33f9e9c8cb
commit
2cf92a16d2
@ -295,6 +295,12 @@
|
||||
// WBL scripts
|
||||
#include "WblGenericZone.h"
|
||||
|
||||
// Wild Scripts
|
||||
#include "WildAndScared.h"
|
||||
#include "WildGfGlowbug.h"
|
||||
#include "WildAmbientCrab.h"
|
||||
#include "WildPants.h"
|
||||
|
||||
//Big bad global bc this is a namespace and not a class:
|
||||
InvalidScript* invalidToReturn = new InvalidScript();
|
||||
std::map<std::string, CppScripts::Script*> m_Scripts;
|
||||
@ -860,11 +866,22 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
|
||||
else if (scriptName == "scripts\\zone\\LUPs\\WBL_generic_zone.lua")
|
||||
script = new WblGenericZone();
|
||||
|
||||
// Wild
|
||||
if (scriptName == "scripts\\ai\\WILD\\L_WILD_GF_RAT.lua" || scriptName == "scripts\\ai\\WILD\\L_WILD_GF_SNAIL.lua")
|
||||
script = new WildAndScared();
|
||||
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_GF_GLOWBUG.lua")
|
||||
script = new WildGfGlowbug();
|
||||
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_AMBIENT_CRAB.lua")
|
||||
script = new WildAmbientCrab();
|
||||
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_PANTS.lua")
|
||||
script = new WildPants();
|
||||
|
||||
// handle invalid script reporting if the path is greater than zero and it's not an ignored script
|
||||
// information not really needed for sys admins but is for developers
|
||||
else if (script == invalidToReturn) {
|
||||
if ((scriptName.length() > 0) && !((scriptName == "scripts\\02_server\\Enemy\\General\\L_SUSPEND_LUA_AI.lua") ||
|
||||
(scriptName == "scripts\\02_server\\Enemy\\General\\L_BASE_ENEMY_SPIDERLING.lua") ||
|
||||
(scriptName == "scripts\\ai\\WILD\\L_WILD_GF_FROG.lua") ||
|
||||
(scriptName == "scripts\\empty.lua")
|
||||
)) Game::logger->LogDebug("CppScripts", "LOT %i attempted to load CppScript for '%s', but returned InvalidScript.", parent->GetLOT(), scriptName.c_str());
|
||||
}
|
||||
|
@ -1,4 +1,8 @@
|
||||
set(DSCRIPTS_SOURCES_AI_WILD
|
||||
set(DSCRIPTS_SOURCES_AI_WILD
|
||||
"AllCrateChicken.cpp"
|
||||
"WildAmbients.cpp"
|
||||
"WildAmbientCrab.cpp"
|
||||
"WildAndScared.cpp"
|
||||
"WildGfGlowbug.cpp"
|
||||
"WildPants.cpp"
|
||||
PARENT_SCOPE)
|
||||
|
27
dScripts/ai/WILD/WildAmbientCrab.cpp
Normal file
27
dScripts/ai/WILD/WildAmbientCrab.cpp
Normal file
@ -0,0 +1,27 @@
|
||||
#include "WildAmbientCrab.h"
|
||||
#include "GameMessages.h"
|
||||
|
||||
void WildAmbientCrab::OnStartup(Entity* self){
|
||||
self->SetVar(u"flipped", true);
|
||||
GameMessages::SendPlayAnimation(self, u"idle");
|
||||
}
|
||||
|
||||
void WildAmbientCrab::OnUse(Entity* self, Entity* user) {
|
||||
auto flipped = self->GetVar<bool>(u"flipped");
|
||||
if (flipped) {
|
||||
self->AddTimer("Flipping", 0.6f);
|
||||
GameMessages::SendPlayAnimation(self, u"flip-over");
|
||||
self->SetVar(u"flipped", false);
|
||||
} else if (!flipped) {
|
||||
self->AddTimer("Flipback", 0.8f);
|
||||
GameMessages::SendPlayAnimation(self, u"flip-back");
|
||||
self->SetVar(u"flipped", true);
|
||||
}
|
||||
}
|
||||
|
||||
void WildAmbientCrab::OnTimerDone(Entity* self, std::string timerName) {
|
||||
if (timerName == "Flipping") GameMessages::SendPlayAnimation(self, u"over-idle");
|
||||
else if (timerName == "Flipback") GameMessages::SendPlayAnimation(self, u"idle");
|
||||
}
|
||||
|
||||
|
9
dScripts/ai/WILD/WildAmbientCrab.h
Normal file
9
dScripts/ai/WILD/WildAmbientCrab.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
#include "CppScripts.h"
|
||||
|
||||
class WildAmbientCrab final : public CppScripts::Script {
|
||||
public:
|
||||
void OnStartup(Entity* self) override;
|
||||
void OnTimerDone(Entity* self, std::string timerName) override;
|
||||
void OnUse(Entity* self, Entity* user) override;
|
||||
};
|
6
dScripts/ai/WILD/WildAndScared.cpp
Normal file
6
dScripts/ai/WILD/WildAndScared.cpp
Normal file
@ -0,0 +1,6 @@
|
||||
#include "WildAndScared.h"
|
||||
#include "GameMessages.h"
|
||||
|
||||
void WildAndScared::OnUse(Entity* self, Entity* user) {
|
||||
GameMessages::SendPlayAnimation(self, u"scared");
|
||||
}
|
7
dScripts/ai/WILD/WildAndScared.h
Normal file
7
dScripts/ai/WILD/WildAndScared.h
Normal file
@ -0,0 +1,7 @@
|
||||
#pragma once
|
||||
#include "CppScripts.h"
|
||||
|
||||
class WildAndScared : public CppScripts::Script {
|
||||
public:
|
||||
void OnUse(Entity* self, Entity* user) override;
|
||||
};
|
28
dScripts/ai/WILD/WildGfGlowbug.cpp
Normal file
28
dScripts/ai/WILD/WildGfGlowbug.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include "WildGfGlowbug.h"
|
||||
#include "GameMessages.h"
|
||||
|
||||
void WildGfGlowbug::OnStartup(Entity* self){
|
||||
self->SetVar(u"switch", false);
|
||||
}
|
||||
|
||||
void WildGfGlowbug::OnFireEventServerSide(Entity* self, Entity* sender, std::string args, int32_t param1, int32_t param2, int32_t param3) {
|
||||
if (args == "physicsReady") {
|
||||
auto switchState = self->GetVar<bool>(u"switch");
|
||||
if (!switchState) {
|
||||
GameMessages::SendStopFXEffect(self, true, "glowlight");
|
||||
} else if (switchState) {
|
||||
GameMessages::SendPlayFXEffect(self, -1, u"light", "glowlight", LWOOBJID_EMPTY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WildGfGlowbug::OnUse(Entity* self, Entity* user) {
|
||||
auto switchState = self->GetVar<bool>(u"switch");
|
||||
if (switchState) {
|
||||
GameMessages::SendStopFXEffect(self, true, "glowlight");
|
||||
self->SetVar(u"switch", false);
|
||||
} else if (!switchState) {
|
||||
GameMessages::SendPlayFXEffect(self, -1, u"light", "glowlight", LWOOBJID_EMPTY);
|
||||
self->SetVar(u"switch", true);
|
||||
}
|
||||
}
|
9
dScripts/ai/WILD/WildGfGlowbug.h
Normal file
9
dScripts/ai/WILD/WildGfGlowbug.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
#include "CppScripts.h"
|
||||
|
||||
class WildGfGlowbug : public CppScripts::Script {
|
||||
public:
|
||||
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 OnUse(Entity* self, Entity* user) override;
|
||||
};
|
10
dScripts/ai/WILD/WildPants.cpp
Normal file
10
dScripts/ai/WILD/WildPants.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include "WildPants.h"
|
||||
#include "GameMessages.h"
|
||||
|
||||
void WildPants::OnStartup(Entity* self) {
|
||||
self->SetProximityRadius(5, "scardyPants");
|
||||
}
|
||||
|
||||
void WildPants::OnProximityUpdate(Entity* self, Entity* entering, std::string name, std::string status) {
|
||||
if (status == "ENTER") GameMessages::SendPlayAnimation(self, u"scared");
|
||||
}
|
9
dScripts/ai/WILD/WildPants.h
Normal file
9
dScripts/ai/WILD/WildPants.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
#include "CppScripts.h"
|
||||
|
||||
class WildPants : public CppScripts::Script
|
||||
{
|
||||
public:
|
||||
void OnStartup(Entity* self) override;
|
||||
void OnProximityUpdate(Entity* self, Entity* entering, std::string name, std::string status) override;
|
||||
};
|
Loading…
Reference in New Issue
Block a user