diff --git a/blcrack/cracker/cracker.cpp b/blcrack/cracker/cracker.cpp index 11f41dd39..ca95fe8d8 100644 --- a/blcrack/cracker/cracker.cpp +++ b/blcrack/cracker/cracker.cpp @@ -607,6 +607,7 @@ void Cracker::load_lua_resources() { m_lua_res.Chapter_GetFleetOfDuty = m_state["Chapter"]["GetFleetOfDuty"]; m_lua_res.Chapter_findPath = m_state["Chapter"]["findPath"]; m_lua_res.ChapterConst_SubjectPlayer = m_state["ChapterConst"]["SubjectPlayer"]; + m_lua_res.Ship_ENERGY_LOW = m_state["Ship"]["ENERGY_LOW"]; SPDLOG_INFO("Load lua functions"); m_original.GetBattleCheckResult = m_state["GetBattleCheckResult"]; @@ -645,6 +646,7 @@ void Cracker::load_lua_resources() { m_original.LevelStageView_tryAutoTrigger = m_state["LevelStageView"]["tryAutoTrigger"]; m_original.LevelStageView_TryAutoFight = m_state["LevelStageView"]["TryAutoFight"]; m_original.Story_Ctor = m_state["Story"]["Ctor"]; + m_original.Fleet_EnergyCheck = m_state["Fleet"]["EnergyCheck"]; } void Cracker::hook_all_lua_functions() { @@ -1154,6 +1156,21 @@ void Cracker::hook_all_lua_functions() { } return sol::make_object(L, 150); }; + m_state["Fleet"]["EnergyCheck"] = [this](sol::this_state L, Lua::VariadicArgs args) { + CALLED(Fleet.EnergyCheck); + + bool no_emotion_warning_enabled = IS_ENABLED(NO_EMOTION_WARNING); + + if (no_emotion_warning_enabled) { + m_state["Ship"]["ENERGY_LOW"] = -1; + } + + m_original.Fleet_EnergyCheck(L, args); + + if (no_emotion_warning_enabled) { + m_state["Ship"]["ENERGY_LOW"] = m_lua_res.Ship_ENERGY_LOW; + } + }; // enable_no_bb_animation m_state["ys"]["Battle"]["BattleManualWeaponAutoBot"]["SetActive"] = [this](sol::this_state L, Lua::VariadicArgs args) -> Lua::Object { diff --git a/blcrack/cracker/cracker.hpp b/blcrack/cracker/cracker.hpp index 9d43d7bc8..59dd0c354 100644 --- a/blcrack/cracker/cracker.hpp +++ b/blcrack/cracker/cracker.hpp @@ -332,6 +332,7 @@ private: Lua::Function LevelStageView_tryAutoTrigger; Lua::Function LevelStageView_TryAutoFight; Lua::Function Story_Ctor; + Lua::Function Fleet_EnergyCheck; } m_original; struct { Lua::Function Clone; @@ -369,6 +370,7 @@ private: Lua::Function Chapter_GetFleetOfDuty; Lua::Function Chapter_findPath; int ChapterConst_SubjectPlayer; + int Ship_ENERGY_LOW; } m_lua_res; struct {