mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-25 23:17:28 +00:00
Implemented die roll animations for the Lego Dice item
This commit is contained in:
parent
d7294bda55
commit
fb18225f46
@ -261,6 +261,7 @@
|
|||||||
#include "PersonalFortress.h"
|
#include "PersonalFortress.h"
|
||||||
#include "PropertyDevice.h"
|
#include "PropertyDevice.h"
|
||||||
#include "ImaginationBackpackHealServer.h"
|
#include "ImaginationBackpackHealServer.h"
|
||||||
|
#include "LegoDieRoll.h"
|
||||||
|
|
||||||
// Survival scripts
|
// Survival scripts
|
||||||
#include "AgSurvivalStromling.h"
|
#include "AgSurvivalStromling.h"
|
||||||
@ -774,6 +775,8 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
|
|||||||
script = new PropertyDevice();
|
script = new PropertyDevice();
|
||||||
else if (scriptName == "scripts\\02_server\\Map\\General\\L_IMAG_BACKPACK_HEALS_SERVER.lua")
|
else if (scriptName == "scripts\\02_server\\Map\\General\\L_IMAG_BACKPACK_HEALS_SERVER.lua")
|
||||||
script = new ImaginationBackpackHealServer();
|
script = new ImaginationBackpackHealServer();
|
||||||
|
else if (scriptName == "scripts\\ai\\GENERAL\\L_LEGO_DIE_ROLL.lua")
|
||||||
|
script = new LegoDieRoll();
|
||||||
|
|
||||||
//Ignore these scripts:
|
//Ignore these scripts:
|
||||||
else if (scriptName == "scripts\\02_server\\Enemy\\General\\L_SUSPEND_LUA_AI.lua")
|
else if (scriptName == "scripts\\02_server\\Enemy\\General\\L_SUSPEND_LUA_AI.lua")
|
||||||
|
41
dScripts/LegoDieRoll.cpp
Normal file
41
dScripts/LegoDieRoll.cpp
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#include "LegoDieRoll.h"
|
||||||
|
#include "Entity.h"
|
||||||
|
#include "GameMessages.h"
|
||||||
|
|
||||||
|
void LegoDieRoll::OnStartup(Entity* self) {
|
||||||
|
self->AddTimer("DoneRolling", 10.0f);
|
||||||
|
self->AddTimer("ThrowDice", LegoDieRoll::animTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LegoDieRoll::OnTimerDone(Entity* self, std::string timerName) {
|
||||||
|
if (timerName == "DoneRolling") {
|
||||||
|
self->Smash(self->GetObjectID(), SILENT);
|
||||||
|
}
|
||||||
|
else if (timerName == "ThrowDice") {
|
||||||
|
int dieRoll = GeneralUtils::GenerateRandomNumber<int>(1, 6);
|
||||||
|
|
||||||
|
switch (dieRoll)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
GameMessages::SendPlayAnimation(self, u"roll-die-1");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
GameMessages::SendPlayAnimation(self, u"roll-die-2");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
GameMessages::SendPlayAnimation(self, u"roll-die-3");
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
GameMessages::SendPlayAnimation(self, u"roll-die-4");
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
GameMessages::SendPlayAnimation(self, u"roll-die-5");
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
GameMessages::SendPlayAnimation(self, u"roll-die-6");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
dScripts/LegoDieRoll.h
Normal file
11
dScripts/LegoDieRoll.h
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "CppScripts.h"
|
||||||
|
|
||||||
|
class LegoDieRoll : public CppScripts::Script {
|
||||||
|
public:
|
||||||
|
void OnStartup(Entity* self);
|
||||||
|
void OnTimerDone(Entity* self, std::string timerName);
|
||||||
|
private:
|
||||||
|
constexpr static const float animTime = 2.0f;
|
||||||
|
};
|
||||||
|
|
1
utils
Submodule
1
utils
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 74508f879a17910ae7273ee62c7b3252d166b8ee
|
Loading…
Reference in New Issue
Block a user