This commit is contained in:
Aaron Kimbre 2023-12-21 23:21:20 -06:00
parent 42ffd00478
commit f56f0a48fd
5 changed files with 78 additions and 0 deletions

View File

@ -307,6 +307,7 @@
#include "WildAndScared.h"
#include "WildGfGlowbug.h"
#include "WildAmbientCrab.h"
#include "WildMedusa.h"
#include "WildPants.h"
#include "WildNinjaStudent.h"
#include "WildNinjaSensei.h"
@ -921,6 +922,18 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
script = new WildNinjaStudent();
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_NINJA_SENSEI.lua")
script = new WildNinjaSensei();
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_MEDUSA.lua")
script = new WildMedusa();
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_snake_01.lua")
script = new WildSnake01();
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_snake_02.lua")
script = new WildSnake01();
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_snake_03.lua")
script = new WildSnake01();
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_snake_04.lua")
script = new WildSnake01();
else if (scriptName == "scripts\\ai\\WILD\\L_WILD_snake_05.lua")
script = new WildSnake01();
// 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

View File

@ -4,6 +4,7 @@ set(DSCRIPTS_SOURCES_AI_WILD
"WildAmbientCrab.cpp"
"WildAndScared.cpp"
"WildGfGlowbug.cpp"
"WildMedusa.cpp"
"WildNinjaBricks.cpp"
"WildNinjaStudent.cpp"
"WildNinjaSensei.cpp"

View File

@ -0,0 +1,55 @@
#include "WildMedusa.h"
#include "EntityInfo.h"
#include "DestroyableComponent.h"
#include "RenderComponent.h"
void WildMedusa::OnStartup(Entity* self) {
self->AddTimer("SnakeStartup", 0.2);
self->AddToGroup("snakesonaplane");
auto pos = self->GetPosition();
EntityInfo snake1{};
snake1.lot = 6564;
snake1.spawnerID = self->GetObjectID();
snake1.pos = NiPoint3(pos.x, pos.y, pos.z + 5);
auto* snake1_entity = Game::entityManager->CreateEntity(snake1);
Game::entityManager->ConstructEntity(snake1_entity);
EntityInfo snake2{};
snake2.lot = 6565;
snake2.spawnerID = self->GetObjectID();
snake2.pos = NiPoint3(pos.x, pos.y, pos.z - 5);
auto* snake2_entity = Game::entityManager->CreateEntity(snake2);
Game::entityManager->ConstructEntity(snake2_entity);
EntityInfo snake3{};
snake3.lot = 6566;
snake3.spawnerID = self->GetObjectID();
snake3.pos = NiPoint3(pos.x + 5, pos.y, pos.z);
auto* snake3_entity = Game::entityManager->CreateEntity(snake3);
Game::entityManager->ConstructEntity(snake3_entity);
EntityInfo snake4{};
snake4.lot = 6567;
snake4.spawnerID = self->GetObjectID();
snake4.pos = NiPoint3(pos.x - 5, pos.y, pos.z);
auto* snake4_entity = Game::entityManager->CreateEntity(snake4);
Game::entityManager->ConstructEntity(snake4_entity);
EntityInfo snake5{};
snake5.lot = 6568;
snake5.spawnerID = self->GetObjectID();
snake5.pos = NiPoint3(pos.x + 5, pos.y, pos.z - 5);
auto* snake5_entity = Game::entityManager->CreateEntity(snake5);
Game::entityManager->ConstructEntity(snake5_entity);
}
void WildMedusa:: OnNotifyObject(Entity* self, Entity* sender, const std::string& name, int32_t param1, int32_t param2) {
if (name == "next5"){
auto* destroyableComponent = self->GetComponent<DestroyableComponent>();
if (destroyableComponent) destroyableComponent->SetFaction(4);
auto* renderComponent = self->GetComponent<RenderComponent>();
if (renderComponent) renderComponent->PlayEffect(634, u"medusa", "");
}
}

View File

@ -0,0 +1,8 @@
#pragma once
#include "CppScripts.h"
class WildMedusa : public CppScripts::Script {
public:
void OnStartup(Entity* self) override;
void OnNotifyObject(Entity* self, Entity* sender, const std::string& name, int32_t param1, int32_t param2) override;
};

1
thirdparty/magic_enum vendored Submodule

@ -0,0 +1 @@
Subproject commit e26b05e0a04529ed2ac2571919f9755ba0afee18