From 58f60e41f3f3b7113567ff3b33130e731c7588ff Mon Sep 17 00:00:00 2001 From: Sidien Date: Mon, 26 Feb 2024 22:31:38 +0100 Subject: [PATCH] Add support for RGMercs - Lua edition --- boxr.cpp | 35 +++++++++++++++++++++++++++++++++++ boxr.h | 15 +++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/boxr.cpp b/boxr.cpp index 8584e6c..4768ab5 100644 --- a/boxr.cpp +++ b/boxr.cpp @@ -86,6 +86,7 @@ MasterBoxControl::MasterBoxControl() { boxes.push_back(std::make_shared()); boxes.push_back(std::make_shared()); boxes.push_back(std::make_shared()); + boxes.push_back(std::make_shared()); boxes.push_back(std::make_shared()); } @@ -140,6 +141,40 @@ void RGMercsControl::SetRaidAssistNum(int raidAssistNum) { boxrRunCommandf(MACRO_COMMAND_DELAY "/rg OutsideAssistList {}", GetRaidMainAssistName(raidAssistNum)); } +bool RGMercsLuaControl::IsRunning() { + return EvaluateBooleanMacroExpression("${Lua.Script[rgmercs].Status.Equal[RUNNING]}"); +} + +void RGMercsLuaControl::Pause() { + boxrRunCommandf("/rg pause"); + PauseTwist(); +} + +void RGMercsLuaControl::Unpause() { + boxrRunCommandf("/rg unpause"); +} + +void RGMercsLuaControl::Chase() { + boxrRunCommandf("/rg chaseon"); +} + +void RGMercsLuaControl::Camp() { + boxrRunCommandf("/rg campon"); +} + +void RGMercsLuaControl::Manual() { + boxrRunCommandf("/rg chaseoff"); + boxrRunCommandf("/rg campoff"); +} + +void RGMercsLuaControl::BurnNow() { + LOGGER.info("BurnNow is not supported for RGMercs - Lua edition"); +} + +void RGMercsLuaControl::SetRaidAssistNum(int raidAssistNum) { + LOGGER.info("RaidAssistNum is not supported for RGMercs - Lua edition"); +} + bool KissAssistControl::IsRunning() { return ci_starts_with(gszMacroName, "kiss"); } diff --git a/boxr.h b/boxr.h index cf4c8d8..ac651f0 100644 --- a/boxr.h +++ b/boxr.h @@ -58,6 +58,21 @@ class RGMercsControl : public BoxControl { inline std::string GetPauseQuery() { return MACRO_PAUSED_QUERY; } }; +class RGMercsLuaControl : public BoxControl { +public: + const char* GetKey() override { return "rgmercs.lua"; } + const char* GetName() override { return "RGMercs - Lua edition"; } + bool IsRunning() override; + void Pause() override; + void Unpause() override; + void Chase() override; + void Camp() override; + void Manual() override; + void BurnNow() override; + void SetRaidAssistNum(int raidAssistNum) override; + inline std::string GetPauseQuery() { return MACRO_PAUSED_QUERY; } +}; + class KissAssistControl : public BoxControl { public: const char* GetKey() override { return "kissassist"; }