2023-04-12 16:46:31 +00:00
|
|
|
#include "ActNinjaSensei.h"
|
|
|
|
#include "Entity.h"
|
|
|
|
#include "EntityManager.h"
|
|
|
|
#include "GameMessages.h"
|
|
|
|
|
|
|
|
void ActNinjaSensei::OnStartup(Entity* self) {
|
2023-07-15 20:56:33 +00:00
|
|
|
auto students = Game::entityManager->GetEntitiesInGroup(this->m_StudentGroup);
|
2023-04-12 16:46:31 +00:00
|
|
|
std::vector<Entity*> validStudents = {};
|
|
|
|
for (auto* student : students) {
|
|
|
|
if (student && student->GetLOT() == this->m_StudentLOT) validStudents.push_back(student);
|
|
|
|
}
|
|
|
|
self->SetVar(u"students", validStudents);
|
|
|
|
self->AddTimer("crane", 5);
|
|
|
|
}
|
|
|
|
|
|
|
|
void ActNinjaSensei::OnTimerDone(Entity* self, std::string timerName) {
|
|
|
|
auto students = self->GetVar<std::vector<Entity*>>(u"students");
|
|
|
|
if (students.empty()) return;
|
|
|
|
|
|
|
|
if (timerName == "crane") {
|
|
|
|
for (auto student : students) {
|
|
|
|
if (student) GameMessages::SendPlayAnimation(student, u"crane");
|
|
|
|
}
|
|
|
|
GameMessages::SendPlayAnimation(self, u"crane");
|
|
|
|
self->AddTimer("bow", 15.33);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (timerName == "bow") {
|
|
|
|
GameMessages::SendPlayAnimation(self, u"bow");
|
|
|
|
for (auto student : students) {
|
|
|
|
if (student) GameMessages::SendPlayAnimation(student, u"bow");
|
|
|
|
}
|
|
|
|
GameMessages::SendPlayAnimation(self, u"bow");
|
|
|
|
self->AddTimer("tiger", 5);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (timerName == "tiger") {
|
|
|
|
GameMessages::SendPlayAnimation(self, u"tiger");
|
|
|
|
for (auto student : students) {
|
|
|
|
if (student) GameMessages::SendPlayAnimation(student, u"tiger");
|
|
|
|
}
|
|
|
|
GameMessages::SendPlayAnimation(self, u"tiger");
|
|
|
|
self->AddTimer("bow2", 15.33);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (timerName == "bow2") {
|
|
|
|
GameMessages::SendPlayAnimation(self, u"bow");
|
|
|
|
for (auto student : students) {
|
|
|
|
if (student) GameMessages::SendPlayAnimation(student, u"bow");
|
|
|
|
}
|
|
|
|
GameMessages::SendPlayAnimation(self, u"bow");
|
|
|
|
self->AddTimer("mantis", 5);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (timerName == "mantis") {
|
|
|
|
GameMessages::SendPlayAnimation(self, u"mantis");
|
|
|
|
for (auto student : students) {
|
|
|
|
if (student) GameMessages::SendPlayAnimation(student, u"mantis");
|
|
|
|
}
|
|
|
|
GameMessages::SendPlayAnimation(self, u"mantis");
|
|
|
|
self->AddTimer("bow3", 15.3);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (timerName == "bow3") {
|
|
|
|
GameMessages::SendPlayAnimation(self, u"bow");
|
|
|
|
for (auto student : students) {
|
|
|
|
if (student) GameMessages::SendPlayAnimation(student, u"bow");
|
|
|
|
}
|
|
|
|
GameMessages::SendPlayAnimation(self, u"bow");
|
|
|
|
self->AddTimer("repeat", 5);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (timerName == "repeat") {
|
|
|
|
self->CancelAllTimers();
|
|
|
|
self->AddTimer("crane", 5);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|