mirror of
https://github.com/GreenComfyTea/MHR-Overlay.git
synced 2026-01-24 04:18:11 -08:00
Quest Flow Tracking Rework
This commit is contained in:
@@ -53,6 +53,7 @@ local rage_customization = require("MHR_Overlay.UI.Customizations.rage_customiza
|
||||
local body_parts_customization = require("MHR_Overlay.UI.Customizations.body_parts_customization");
|
||||
local ailments_customization = require("MHR_Overlay.UI.Customizations.ailments_customization");
|
||||
local ailment_buildups_customization = require("MHR_Overlay.UI.Customizations.ailment_buildups_customization");
|
||||
local module_visibility_customization = require("MHR_Overlay.UI.Customizations.module_visibility_customization");
|
||||
|
||||
local large_monster_UI_customization = require("MHR_Overlay.UI.Customizations.large_monster_UI_customization");
|
||||
|
||||
@@ -107,6 +108,7 @@ rage_customization.init_module();
|
||||
body_parts_customization.init_module();
|
||||
ailments_customization.init_module();
|
||||
ailment_buildups_customization.init_module();
|
||||
module_visibility_customization.init_module();
|
||||
|
||||
drawing.init_module();
|
||||
|
||||
@@ -124,157 +126,127 @@ log.info("[MHR Overlay] Loaded.");
|
||||
|
||||
----------------------------LOOP-----------------------------
|
||||
-- #region
|
||||
|
||||
local function draw_modules(module_visibility_config, flow_state_name)
|
||||
if module_visibility_config.small_monster_UI and config.current_config.small_monster_UI.enabled then
|
||||
local success = pcall(small_monster_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = string.format("[%s] Small monster drawing function threw an exception", flow_state_name);
|
||||
end
|
||||
end
|
||||
|
||||
local large_monster_UI_config = config.current_config.large_monster_UI;
|
||||
|
||||
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and
|
||||
module_visibility_config.large_monster_dynamic_UI;
|
||||
local static_enabled = large_monster_UI_config.static.enabled and
|
||||
module_visibility_config.large_monster_static_UI;
|
||||
local highlighted_enabled = large_monster_UI_config.highlighted.enabled and
|
||||
module_visibility_config.large_monster_highlighted_UI;
|
||||
|
||||
if dynamic_enabled or static_enabled or highlighted_enabled then
|
||||
local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
|
||||
if not success then
|
||||
customization_menu.status = string.format("[%s] Large Monster drawing function threw an exception", flow_state_name);
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.time_UI.enabled and module_visibility_config.time_UI then
|
||||
local success = pcall(time_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = string.format("[%s] Time Drawing function threw an exception", flow_state_name);
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then
|
||||
local success = pcall(damage_meter_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = string.format("[%s] Damage Meter drawing function threw an exception", flow_state_name);
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then
|
||||
local success = pcall(env_creature_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = string.format("[%s] Endemic Life drawing function threw an exception", flow_state_name);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function main_loop()
|
||||
customization_menu.status = "OK";
|
||||
singletons.init();
|
||||
screen.update_window_size();
|
||||
player.update_myself_position();
|
||||
quest_status.update_is_online();
|
||||
quest_status.update_is_result_screen();
|
||||
quest_status.update_is_host();
|
||||
quest_status.update_is_quest_host();
|
||||
time.tick();
|
||||
|
||||
--xy = tostring(singletons.quest_manager:call("isPlayQuest")) ..
|
||||
--"\n" .. tostring(singletons.quest_manager:call("isActiveQuest")) ..
|
||||
--"\n" .. tostring(singletons.quest_manager:call("isSingleQuest")) ..
|
||||
--"\n" .. tostring(singletons.quest_manager:call("isStartQuest")) ..
|
||||
--"\n" .. tostring(quest_status.index);
|
||||
--xy = xy .. quest_status.get_flow_state(quest_status.flow_state, true);
|
||||
|
||||
player.update_player_list(quest_status.index >= 2);
|
||||
if quest_status.index < 2 then
|
||||
quest_status.update_is_training_area();
|
||||
|
||||
if quest_status.is_training_area then
|
||||
local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and
|
||||
config.current_config.global_settings.module_visibility.training_area
|
||||
.large_monster_dynamic_UI;
|
||||
local static_enabled = config.current_config.large_monster_UI.static.enabled and
|
||||
config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI;
|
||||
local highlighted_enabled = config.current_config.large_monster_UI.highlighted.enabled and
|
||||
config.current_config.global_settings.module_visibility.training_area
|
||||
.large_monster_highlighted_UI;
|
||||
if quest_status.flow_state == quest_status.flow_states.IN_LOBBY then
|
||||
|
||||
if dynamic_enabled or static_enabled or highlighted_enabled then
|
||||
local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
|
||||
if not success then
|
||||
customization_menu.status = "Large monster drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.training_area.damage_meter_UI then
|
||||
local success = pcall(damage_meter_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Damage meter drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.endemic_life_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.training_area.endemic_life_UI then
|
||||
local success = pcall(env_creature_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Endemic life drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif quest_status.is_result_screen then
|
||||
if config.current_config.small_monster_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.quest_result_screen.small_monster_UI then
|
||||
local success = pcall(small_monster_UI.draw);
|
||||
if config.current_config.endemic_life_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.in_lobby.endemic_life_UI then
|
||||
local success = pcall(env_creature_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Small monster drawing function threw an exception";
|
||||
customization_menu.status = "[In Lobby] Endemic life drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and
|
||||
config.current_config.global_settings.module_visibility.quest_result_screen
|
||||
.large_monster_dynamic_UI;
|
||||
local static_enabled = config.current_config.large_monster_UI.static.enabled and
|
||||
config.current_config.global_settings.module_visibility.quest_result_screen
|
||||
.large_monster_static_UI;
|
||||
local highlighted_enabled = config.current_config.large_monster_UI.highlighted.enabled and
|
||||
config.current_config.global_settings.module_visibility.quest_result_screen
|
||||
.large_monster_highlighted_UI;
|
||||
elseif quest_status.flow_state == quest_status.flow_states.IN_TRAINING_AREA then
|
||||
|
||||
local large_monster_UI_config = config.current_config.large_monster_UI;
|
||||
local module_visibility_config = config.current_config.global_settings.module_visibility.in_training_area;
|
||||
|
||||
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_config.large_monster_dynamic_UI;
|
||||
local static_enabled = large_monster_UI_config.static.enabled and module_visibility_config.large_monster_static_UI;
|
||||
local highlighted_enabled = large_monster_UI_config.highlighted.enabled and module_visibility_config.large_monster_highlighted_UI;
|
||||
|
||||
if dynamic_enabled or static_enabled or highlighted_enabled then
|
||||
local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
|
||||
if not success then
|
||||
customization_menu.status = "Large monster drawing function threw an exception";
|
||||
customization_menu.status = "[In Training Area] Large monster drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.time_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.quest_result_screen.time_UI then
|
||||
local success = pcall(time_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Time drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.quest_result_screen.damage_meter_UI then
|
||||
if config.current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then
|
||||
local success = pcall(damage_meter_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Damage meter drawing function threw an exception";
|
||||
customization_menu.status = "[In Training Area] Damage meter drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.endemic_life_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.quest_result_screen.endemic_life_UI then
|
||||
if config.current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then
|
||||
local success = pcall(env_creature_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Endemic life drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
elseif quest_status.index == 2 then
|
||||
|
||||
if config.current_config.small_monster_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.during_quest.small_monster_UI then
|
||||
local success = pcall(small_monster_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Small monster drawing function threw an exception";
|
||||
customization_menu.status = "[In Training Area] Endemic life drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and
|
||||
config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI;
|
||||
local static_enabled = config.current_config.large_monster_UI.static.enabled and
|
||||
config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI;
|
||||
local highlighted_enabled = config.current_config.large_monster_UI.highlighted.enabled and
|
||||
config.current_config.global_settings.module_visibility.during_quest
|
||||
.large_monster_highlighted_UI;
|
||||
|
||||
if dynamic_enabled or static_enabled or highlighted_enabled then
|
||||
local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
|
||||
if not success then
|
||||
customization_menu.status = "Large monster drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.time_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.during_quest.time_UI then
|
||||
local success = pcall(time_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Time drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.during_quest.damage_meter_UI then
|
||||
local success = pcall(damage_meter_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Damage meter drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.endemic_life_UI.enabled and
|
||||
config.current_config.global_settings.module_visibility.during_quest.endemic_life_UI then
|
||||
local success = pcall(env_creature_UI.draw);
|
||||
if not success then
|
||||
customization_menu.status = "Endemic life drawing function threw an exception";
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif quest_status.flow_state == quest_status.flow_states.CUTSCENE then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.cutscene, "Cutscene");
|
||||
elseif quest_status.flow_state == quest_status.flow_states.LOADING_QUEST then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.loading_quest, "Loading Quest");
|
||||
elseif quest_status.flow_state == quest_status.flow_states.QUEST_START_ANIMATION then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.quest_start_animation, "Quest Start Animation");
|
||||
elseif quest_status.flow_state >= quest_status.flow_states.PLAYING_QUEST and quest_status.flow_state <= quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.playing_quest, "Playing Quest");
|
||||
elseif quest_status.flow_state == quest_status.flow_states.KILLCAM then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.killcam, "Killcam");
|
||||
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_TIMER then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.quest_end_timer, "Quest End Timer");
|
||||
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_ANIMATION then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.quest_end_animation, "Quest End Animation");
|
||||
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_SCREEN then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.quest_end_screen, "Quest End Screen");
|
||||
elseif quest_status.flow_state == quest_status.flow_states.REWARD_SCREEN then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.reward_screen, "Reward Screen");
|
||||
elseif quest_status.flow_state == quest_status.flow_states.SUMMARY_SCREEN then
|
||||
draw_modules(config.current_config.global_settings.module_visibility.summary_screen, "Summary Screen");
|
||||
end
|
||||
end
|
||||
|
||||
-- #endregion
|
||||
@@ -318,6 +290,35 @@ if debug.enabled then
|
||||
if d2d ~= nil then
|
||||
d2d.register(function()
|
||||
end, function()
|
||||
local is_ready_quest = singletons.quest_manager:call("isReadyQuest");
|
||||
local is_ready_play_quest = singletons.quest_manager:call("isReadyPlayQuest");
|
||||
local is_play_quest = singletons.quest_manager:call("isPlayQuest");
|
||||
local is_stay_quest = singletons.quest_manager:call("isStayQuest");
|
||||
local is_end_wait = singletons.quest_manager:call("isEndWait");
|
||||
local is_active_quest = singletons.quest_manager:call("isActiveQuest");
|
||||
local quest_clear = singletons.quest_manager:call("checkQuestClear");
|
||||
local is_result_demo_play_start = singletons.quest_manager:call("isResultDemoPlayStart");
|
||||
local isResultGuestDrawOff = singletons.quest_manager:call("isResultGuestDrawOff");
|
||||
|
||||
local game_manager = sdk.get_managed_singleton("snow.SnowGameManager");
|
||||
local current_status = game_manager:get_field("_CurrentStatus");
|
||||
|
||||
local demo_camera = sdk.get_managed_singleton("snow.camera.DemoCamera");
|
||||
local is_play_demo = demo_camera:call("IsPlayDemo");
|
||||
|
||||
--[[xy = "\nquest_status.index: " .. tostring(quest_status.index);
|
||||
xy = xy .. "\nis_ready_quest: " .. tostring(is_ready_quest);
|
||||
xy = xy .. "\nis_ready_play_quest: " .. tostring(is_ready_play_quest);
|
||||
xy = xy .. "\nis_play_quest: " .. tostring(is_play_quest);
|
||||
xy = xy .. "\nis_stay_quest: " .. tostring(is_stay_quest);
|
||||
xy = xy .. "\nis_end_wait: " .. tostring(is_end_wait);
|
||||
xy = xy .. "\nis_active_quest: " .. tostring(is_active_quest);
|
||||
xy = xy .. "\nquest_clear: " .. tostring(quest_clear);
|
||||
xy = xy .. "\nis_result_demo_play_start: " .. tostring(is_result_demo_play_start);
|
||||
xy = xy .. "\nisResultGuestDrawOff: " .. tostring(isResultGuestDrawOff);
|
||||
xy = xy .. "\ncurrent_status: " .. tostring(current_status);
|
||||
xy = xy .. "\nis_play_demo: " .. tostring(is_play_demo);--]]
|
||||
|
||||
if xy ~= "" then
|
||||
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
|
||||
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
||||
@@ -326,8 +327,8 @@ if debug.enabled then
|
||||
else
|
||||
re.on_frame(function()
|
||||
if xy ~= "" then
|
||||
draw.text("xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
|
||||
draw.text("xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
||||
draw.text("xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
|
||||
end
|
||||
end);
|
||||
end
|
||||
|
||||
@@ -500,8 +500,8 @@ function player.init_UI(_player)
|
||||
local cached_config = config.current_config.damage_meter_UI;
|
||||
|
||||
_player.damage_UI = damage_UI_entity.new(cached_config.damage_bar, cached_config.highlighted_damage_bar,
|
||||
cached_config.player_name_label, cached_config.dps_label, cached_config.master_hunter_rank_label,
|
||||
cached_config.damage_value_label, cached_config.damage_percentage_label, cached_config.cart_count_label);
|
||||
cached_config.player_name_label, cached_config.dps_label, cached_config.master_hunter_rank_label,
|
||||
cached_config.damage_value_label, cached_config.damage_percentage_label, cached_config.cart_count_label);
|
||||
end
|
||||
|
||||
function player.init_total_UI(_player)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
local quest_status = {};
|
||||
|
||||
local singletons;
|
||||
local customization_menu;
|
||||
local player;
|
||||
@@ -8,35 +9,235 @@ local damage_meter_UI;
|
||||
local time;
|
||||
local env_creature;
|
||||
|
||||
quest_status.flow_states = {
|
||||
NONE = 0,
|
||||
IN_LOBBY = 1,
|
||||
IN_TRAINING_AREA = 2,
|
||||
CUTSCENE = 4,
|
||||
LOADING_QUEST = 8,
|
||||
QUEST_START_ANIMATION = 16,
|
||||
PLAYING_QUEST = 32,
|
||||
|
||||
PLAYER_DEATH_ANIMATION = 64,
|
||||
PLAYER_CART_ANIMATION = 128,
|
||||
FAST_TRAVEL_ANIMATION = 256,
|
||||
WYVERN_RIDING_START_ANIMATION = 512,
|
||||
|
||||
KILLCAM = 1024,
|
||||
QUEST_END_TIMER = 2048,
|
||||
QUEST_END_ANIMATION = 4096,
|
||||
QUEST_END_SCREEN = 8192,
|
||||
REWARD_SCREEN = 16384,
|
||||
SUMMARY_SCREEN = 32768,
|
||||
};
|
||||
|
||||
quest_status.previous_flow_state = quest_status.flow_states.NONE;
|
||||
quest_status.flow_state = quest_status.flow_states.NONE;
|
||||
|
||||
quest_status.index = 0;
|
||||
quest_status.is_online = false;
|
||||
quest_status.is_host = false;
|
||||
quest_status.is_training_area = false;
|
||||
quest_status.is_result_screen = false;
|
||||
quest_status.is_quest_clear = false;
|
||||
quest_status.is_quest_host = false;
|
||||
|
||||
local quest_manager_type_definition = sdk.find_type_definition("snow.QuestManager");
|
||||
local on_changed_game_status = quest_manager_type_definition:get_method("onChangedGameStatus");
|
||||
local get_status_method = quest_manager_type_definition:get_method("getStatus");
|
||||
local is_result_demo_play_start_method = quest_manager_type_definition:get_method("isResultDemoPlayStart");
|
||||
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
|
||||
local on_changed_game_status_method = quest_manager_type_def:get_method("onChangedGameStatus");
|
||||
local is_result_demo_play_start_method = quest_manager_type_def:get_method("isResultDemoPlayStart");
|
||||
local set_quest_clear_method = quest_manager_type_def:get_method("setQuestClear");
|
||||
local set_quest_clear_sub_method = quest_manager_type_def:get_method("setQuestClearSub");
|
||||
local set_quest_clear_sub_hyakurui_method = quest_manager_type_def:get_method("setQuestClearSubHyakuryu");
|
||||
local set_quest_fail_method = quest_manager_type_def:get_method("setQuestFail");
|
||||
|
||||
local set_quest_clear_method = quest_manager_type_definition:get_method("setQuestClear");
|
||||
local set_quest_clear_sub_method = quest_manager_type_definition:get_method("setQuestClearSub");
|
||||
local set_quest_clear_sub_hyakurui_method = quest_manager_type_definition:get_method("setQuestClearSubHyakuryu");
|
||||
local game_manager_type_def = sdk.find_type_definition("snow.SnowGameManager");
|
||||
local get_status_method = game_manager_type_def:get_method("getStatus");
|
||||
|
||||
local village_area_manager_type_def = sdk.find_type_definition("snow.VillageAreaManager");
|
||||
local check_current_area_training_area_method = village_area_manager_type_def:get_method("checkCurrentArea_TrainingArea");
|
||||
local fast_travel_method = village_area_manager_type_def:get_method("fastTravel");
|
||||
|
||||
local lobby_manager_type_definition = sdk.find_type_definition("snow.LobbyManager");
|
||||
local is_quest_online_method = lobby_manager_type_definition:get_method("IsQuestOnline");
|
||||
local is_quest_host_method = lobby_manager_type_definition:get_method("isQuestHost");
|
||||
|
||||
local is_play_quest_method = quest_manager_type_def:get_method("isPlayQuest");
|
||||
local is_end_wait_method = quest_manager_type_def:get_method("isEndWait");
|
||||
|
||||
local demo_camera_type_def = sdk.find_type_definition("snow.camera.DemoCamera");
|
||||
local demo_request_activation_method = demo_camera_type_def:get_method("RequestActivation");
|
||||
local demo_end_method = demo_camera_type_def:get_method("DemoEnd");
|
||||
|
||||
local gui_quest_end_base_type_def = sdk.find_type_definition("snow.gui.GuiQuestEndBase");
|
||||
local quest_end_set_state_method = gui_quest_end_base_type_def:get_method("setState");
|
||||
|
||||
local gui_result_reward_type_def = sdk.find_type_definition("snow.gui.GuiResultReward");
|
||||
local gui_result_reward_do_open_method = gui_result_reward_type_def:get_method("doOpen");
|
||||
|
||||
local gui_result_pay_off_type_def = sdk.find_type_definition("snow.gui.GuiResultPayOff");
|
||||
local gui_result_pay_off_do_open_method = gui_result_pay_off_type_def:get_method("doOpen");
|
||||
|
||||
local unique_event_manager_type_def = sdk.find_type_definition("snow.eventcut.UniqueEventManager");
|
||||
local play_event_common_method = unique_event_manager_type_def:get_method("playEventCommon");
|
||||
local event_manager_dispose_method = unique_event_manager_type_def:get_method("dispose");
|
||||
|
||||
function quest_status.get_flow_state(flow_state, new_line)
|
||||
for key, value in pairs(quest_status.flow_states) do
|
||||
if value == flow_state then
|
||||
if new_line then
|
||||
return "\n" .. tostring(key);
|
||||
else
|
||||
return tostring(key);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--type 2 = quest start
|
||||
--type 3 = monster killcam
|
||||
--type 5 = end screen
|
||||
function quest_status.on_demo_request_activation(request_data_base)
|
||||
if request_data_base == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
if quest_status.index ~= 2 then
|
||||
return;
|
||||
end
|
||||
|
||||
local request_data_type = request_data_base:call("get_Type");
|
||||
if request_data_type == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
-- QUEST_START_ANIMATION
|
||||
if request_data_type == 2 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.QUEST_START_ANIMATION;
|
||||
|
||||
-- KILLCAM
|
||||
elseif request_data_type == 3 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.KILLCAM;
|
||||
|
||||
-- QUEST_END_ANIMATION
|
||||
elseif request_data_type == 5 or request_data_type == 6 or request_data_type == 7 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_ANIMATION;
|
||||
|
||||
-- PLAYER_DEATH_ANIMATION
|
||||
elseif request_data_type == 8 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.PLAYER_DEATH_ANIMATION;
|
||||
|
||||
-- PLAYER_CART_ANIMATION
|
||||
elseif request_data_type == 9 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.PLAYER_CART_ANIMATION;
|
||||
|
||||
-- FAST_TRAVEL_ANIMATION
|
||||
elseif request_data_type == 10 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.FAST_TRAVEL_ANIMATION;
|
||||
|
||||
-- WYVERN_RIDING_START_ANIMATION
|
||||
elseif request_data_type == 11 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.WYVERN_RIDING_START_ANIMATION;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_demo_end()
|
||||
if quest_status.index == 2 then
|
||||
if quest_status.flow_state == quest_status.flow_states.PLAYER_DEATH_ANIMATION
|
||||
or quest_status.flow_state == quest_status.flow_states.PLAYER_CART_ANIMATION
|
||||
or quest_status.flow_state == quest_status.flow_states.FAST_TRAVEL_ANIMATION
|
||||
or quest_status.flow_state == quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then
|
||||
|
||||
local next_flow_state = quest_status.previous_flow_state;
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = next_flow_state;
|
||||
|
||||
elseif quest_status.flow_state == quest_status.flow_states.QUEST_START_ANIMATION then
|
||||
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.PLAYING_QUEST;
|
||||
|
||||
elseif quest_status.flow_state == quest_status.flow_states.KILLCAM then
|
||||
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_TIMER;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_set_quest_clear()
|
||||
if quest_status.index == 2 and quest_status.flow_state ~= quest_status.flow_states.KILLCAM then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_TIMER;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_quest_end_set_state()
|
||||
if quest_status.index == 2 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_SCREEN;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_gui_result_reward_do_open()
|
||||
if quest_status.index == 3 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.REWARD_SCREEN;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_gui_result_pay_off_do_open()
|
||||
if quest_status.index == 3 then
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_play_event_common()
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.CUTSCENE;
|
||||
end
|
||||
|
||||
function quest_status.on_event_manager_dispose()
|
||||
if quest_status.flow_state == quest_status.flow_states.CUTSCENE then
|
||||
|
||||
local next_flow_state = quest_status.previous_flow_state;
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = next_flow_state;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_set_quest_fail()
|
||||
if quest_status.flow_state == quest_status.flow_states.PLAYER_DEATH_ANIMATION or
|
||||
quest_status.flow_state == quest_status.flow_states.PLAYER_CART_ANIMATION or
|
||||
quest_status.flow_state == quest_status.flow_states.FAST_TRAVEL_ANIMATION or
|
||||
quest_status.flow_state == quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then
|
||||
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_ANIMATION;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_village_fast_travel(area)
|
||||
if area == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
quest_status.previous_flow_state = quest_status.flow_state;
|
||||
|
||||
if area == 7 then
|
||||
quest_status.flow_state = quest_status.flow_states.IN_TRAINING_AREA;
|
||||
else
|
||||
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.on_changed_game_status(new_quest_status)
|
||||
if (quest_status.index < 2 and new_quest_status == 2)
|
||||
or new_quest_status < 2 then
|
||||
quest_status.index = new_quest_status;
|
||||
|
||||
if quest_status.index < 3 then
|
||||
player.init();
|
||||
small_monster.init_list();
|
||||
large_monster.init_list();
|
||||
@@ -47,11 +248,15 @@ function quest_status.on_changed_game_status(new_quest_status)
|
||||
damage_meter_UI.last_displayed_players = {};
|
||||
end
|
||||
|
||||
quest_status.index = new_quest_status;
|
||||
end
|
||||
|
||||
function quest_status.on_set_quest_clear()
|
||||
quest_status.is_quest_clear = true;
|
||||
if quest_status.index == 0 then
|
||||
quest_status.flow_state = quest_status.flow_states.NONE;
|
||||
elseif quest_status.index == 1 then
|
||||
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
|
||||
elseif quest_status.index == 2 then
|
||||
quest_status.flow_state = quest_status.flow_states.LOADING_QUEST;
|
||||
elseif quest_status.index == 3 then
|
||||
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
|
||||
end
|
||||
end
|
||||
|
||||
function quest_status.init()
|
||||
@@ -59,16 +264,26 @@ function quest_status.init()
|
||||
return;
|
||||
end
|
||||
|
||||
local new_quest_status = get_status_method:call(singletons.quest_manager);
|
||||
local new_quest_status = get_status_method:call(singletons.game_manager);
|
||||
if new_quest_status == nil then
|
||||
customization_menu.status = "No quest status";
|
||||
return;
|
||||
end
|
||||
|
||||
quest_status.index = new_quest_status;
|
||||
|
||||
if quest_status.index == 0 then
|
||||
quest_status.flow_state = quest_status.flow_states.NONE;
|
||||
elseif quest_status.index == 1 then
|
||||
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
|
||||
elseif quest_status.index == 2 then
|
||||
quest_status.flow_state = quest_status.flow_states.PLAYING_QUEST;
|
||||
elseif quest_status.index == 3 then
|
||||
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
|
||||
end
|
||||
|
||||
quest_status.update_is_online();
|
||||
quest_status.update_is_training_area();
|
||||
quest_status.update_is_result_screen();
|
||||
end
|
||||
|
||||
function quest_status.update_is_online()
|
||||
@@ -88,17 +303,17 @@ function quest_status.update_is_online()
|
||||
quest_status.is_online = is_quest_online;
|
||||
end
|
||||
|
||||
function quest_status.update_is_host()
|
||||
function quest_status.update_is_quest_host()
|
||||
if singletons.lobby_manager == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
local is_host = is_quest_host_method:call(singletons.lobby_manager, true);
|
||||
if is_host == nil then
|
||||
local is_quest_host = is_quest_host_method:call(singletons.lobby_manager, true);
|
||||
if is_quest_host == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
quest_status.is_host = is_host;
|
||||
quest_status.is_quest_host = is_quest_host;
|
||||
end
|
||||
|
||||
function quest_status.update_is_training_area()
|
||||
@@ -112,25 +327,9 @@ function quest_status.update_is_training_area()
|
||||
return;
|
||||
end
|
||||
|
||||
if quest_status.is_training_area == true and _is_training_area == false then
|
||||
player.init();
|
||||
if _is_training_area then
|
||||
quest_status.flow_state = quest_status.flow_states.IN_TRAINING_AREA;
|
||||
end
|
||||
|
||||
quest_status.is_training_area = _is_training_area;
|
||||
end
|
||||
|
||||
function quest_status.update_is_result_screen()
|
||||
if singletons.quest_manager == nil then
|
||||
customization_menu.status = "No quest manager";
|
||||
return;
|
||||
end
|
||||
|
||||
local is_result_demo_play_start = is_result_demo_play_start_method:call(singletons.quest_manager);
|
||||
if is_result_demo_play_start == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
quest_status.is_result_screen = is_result_demo_play_start;
|
||||
end
|
||||
|
||||
function quest_status.init_module()
|
||||
@@ -145,7 +344,7 @@ function quest_status.init_module()
|
||||
|
||||
quest_status.init();
|
||||
|
||||
sdk.hook(on_changed_game_status, function(args)
|
||||
sdk.hook(on_changed_game_status_method, function(args)
|
||||
quest_status.on_changed_game_status(sdk.to_int64(args[3]));
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
@@ -160,6 +359,46 @@ function quest_status.init_module()
|
||||
sdk.hook(set_quest_clear_sub_hyakurui_method, function(args)
|
||||
quest_status.on_set_quest_clear();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(demo_request_activation_method, function(args)
|
||||
quest_status.on_demo_request_activation(sdk.to_managed_object(args[3]));
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(demo_end_method, function(args)
|
||||
quest_status.on_demo_end();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(set_quest_clear_method, function(args)
|
||||
quest_status.on_set_quest_clear();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(quest_end_set_state_method, function(args)
|
||||
quest_status.on_quest_end_set_state();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(gui_result_reward_do_open_method, function(args)
|
||||
quest_status.on_gui_result_reward_do_open();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(gui_result_pay_off_do_open_method, function(args)
|
||||
quest_status.on_gui_result_pay_off_do_open();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(play_event_common_method, function(args)
|
||||
quest_status.on_play_event_common();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(event_manager_dispose_method, function(args)
|
||||
quest_status.on_event_manager_dispose();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(set_quest_fail_method, function(args)
|
||||
quest_status.on_set_quest_fail();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(fast_travel_method, function(args)
|
||||
quest_status.on_village_fast_travel(sdk.to_int64(args[3]));
|
||||
end, function(retval) return retval; end);
|
||||
end
|
||||
|
||||
return quest_status;
|
||||
|
||||
@@ -10,6 +10,7 @@ singletons.village_area_manager = nil;
|
||||
singletons.gui_manager = nil;
|
||||
singletons.game_keyboard = nil;
|
||||
singletons.scene_manager = nil;
|
||||
singletons.game_manager = nil;
|
||||
|
||||
function singletons.init()
|
||||
singletons.init_message_manager();
|
||||
@@ -22,6 +23,7 @@ function singletons.init()
|
||||
singletons.init_gui_manager();
|
||||
singletons.init_game_keyboard();
|
||||
singletons.init_scene_manager();
|
||||
singletons.init_game_manager();
|
||||
end
|
||||
|
||||
function singletons.init_message_manager()
|
||||
@@ -156,6 +158,19 @@ function singletons.init_scene_manager()
|
||||
return singletons.scene_manager;
|
||||
end
|
||||
|
||||
function singletons.init_game_manager()
|
||||
if singletons.game_manager ~= nil then
|
||||
return;
|
||||
end
|
||||
|
||||
singletons.game_manager = sdk.get_managed_singleton("snow.SnowGameManager");
|
||||
if singletons.game_manager == nil then
|
||||
--log.error("[MHR Overlay] No enemy manager");
|
||||
end
|
||||
|
||||
return singletons.game_manager;
|
||||
end
|
||||
|
||||
function singletons.init_module()
|
||||
singletons.init();
|
||||
end
|
||||
|
||||
@@ -34,7 +34,39 @@ function config.init()
|
||||
},
|
||||
|
||||
module_visibility = {
|
||||
during_quest = {
|
||||
in_lobby = {
|
||||
endemic_life_UI = false
|
||||
},
|
||||
|
||||
in_training_area = {
|
||||
large_monster_dynamic_UI = true,
|
||||
large_monster_static_UI = true,
|
||||
large_monster_highlighted_UI = true,
|
||||
damage_meter_UI = true,
|
||||
endemic_life_UI = true
|
||||
},
|
||||
|
||||
cutscene = {
|
||||
small_monster_UI = false,
|
||||
large_monster_dynamic_UI = false,
|
||||
large_monster_static_UI = false,
|
||||
large_monster_highlighted_UI = false,
|
||||
time_UI = false,
|
||||
damage_meter_UI = false,
|
||||
endemic_life_UI = false
|
||||
},
|
||||
|
||||
loading_quest = {
|
||||
small_monster_UI = false,
|
||||
large_monster_dynamic_UI = false,
|
||||
large_monster_static_UI = false,
|
||||
large_monster_highlighted_UI = false,
|
||||
time_UI = false,
|
||||
damage_meter_UI = false,
|
||||
endemic_life_UI = false
|
||||
},
|
||||
|
||||
quest_start_animation = {
|
||||
small_monster_UI = true,
|
||||
large_monster_dynamic_UI = true,
|
||||
large_monster_static_UI = true,
|
||||
@@ -44,7 +76,57 @@ function config.init()
|
||||
endemic_life_UI = true
|
||||
},
|
||||
|
||||
quest_result_screen = {
|
||||
playing_quest = {
|
||||
small_monster_UI = true,
|
||||
large_monster_dynamic_UI = true,
|
||||
large_monster_static_UI = true,
|
||||
large_monster_highlighted_UI = true,
|
||||
time_UI = true,
|
||||
damage_meter_UI = true,
|
||||
endemic_life_UI = true
|
||||
},
|
||||
|
||||
killcam = {
|
||||
small_monster_UI = true,
|
||||
large_monster_dynamic_UI = true,
|
||||
large_monster_static_UI = true,
|
||||
large_monster_highlighted_UI = true,
|
||||
time_UI = true,
|
||||
damage_meter_UI = true,
|
||||
endemic_life_UI = true
|
||||
},
|
||||
|
||||
quest_end_timer = {
|
||||
small_monster_UI = true,
|
||||
large_monster_dynamic_UI = true,
|
||||
large_monster_static_UI = true,
|
||||
large_monster_highlighted_UI = true,
|
||||
time_UI = true,
|
||||
damage_meter_UI = true,
|
||||
endemic_life_UI = true
|
||||
},
|
||||
|
||||
quest_end_animation = {
|
||||
small_monster_UI = false,
|
||||
large_monster_dynamic_UI = false,
|
||||
large_monster_static_UI = false,
|
||||
large_monster_highlighted_UI = false,
|
||||
time_UI = false,
|
||||
damage_meter_UI = false,
|
||||
endemic_life_UI = false
|
||||
},
|
||||
|
||||
quest_end_screen = {
|
||||
small_monster_UI = false,
|
||||
large_monster_dynamic_UI = false,
|
||||
large_monster_static_UI = false,
|
||||
large_monster_highlighted_UI = false,
|
||||
time_UI = false,
|
||||
damage_meter_UI = false,
|
||||
endemic_life_UI = false
|
||||
},
|
||||
|
||||
reward_screen = {
|
||||
small_monster_UI = false,
|
||||
large_monster_dynamic_UI = false,
|
||||
large_monster_static_UI = true,
|
||||
@@ -54,13 +136,15 @@ function config.init()
|
||||
endemic_life_UI = false
|
||||
},
|
||||
|
||||
training_area = {
|
||||
large_monster_dynamic_UI = true,
|
||||
summary_screen = {
|
||||
small_monster_UI = false,
|
||||
large_monster_dynamic_UI = false,
|
||||
large_monster_static_UI = true,
|
||||
large_monster_highlighted_UI = true,
|
||||
time_UI = true,
|
||||
damage_meter_UI = true,
|
||||
endemic_life_UI = true
|
||||
}
|
||||
endemic_life_UI = false
|
||||
},
|
||||
},
|
||||
|
||||
hotkeys_with_modifiers = {
|
||||
@@ -221,7 +305,7 @@ function config.init()
|
||||
visibility = true,
|
||||
text = "%.0f/%.0f", -- current_health/max_health
|
||||
offset = {
|
||||
x = 50,
|
||||
x = 32,
|
||||
y = 0
|
||||
},
|
||||
color = 0xFFCCF4E1,
|
||||
|
||||
@@ -147,10 +147,19 @@ language.default_language = {
|
||||
large_monster_highlighted_UI = "Large Monster Highlighted UI",
|
||||
|
||||
language = "Language",
|
||||
module_visibility_on_different_screens = "Module Visibility on Different Screens",
|
||||
during_quest = "During Quest",
|
||||
quest_result_screen = "Quest Result Screen",
|
||||
training_area = "Training Area",
|
||||
module_visibility_based_on_game_state = "Module Visibility based on Game State",
|
||||
in_lobby = "In Lobby",
|
||||
in_training_area = "In Training Area",
|
||||
cutscene = "Cutscene",
|
||||
loading_quest = "Loading Quest",
|
||||
quest_start_animation = "Quest Start Animation",
|
||||
playing_quest = "Playing Quest",
|
||||
killcam = "Killcam",
|
||||
quest_end_timer = "Quest End Timer",
|
||||
quest_end_animation = "Quest End Animation",
|
||||
quest_end_screen = "Quest End Screen",
|
||||
reward_screen = "Reward Screen",
|
||||
summary_screen = "Summary Screen",
|
||||
|
||||
performance = "Performance",
|
||||
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
local module_visibility_customization = {};
|
||||
|
||||
local table_helpers;
|
||||
local config;
|
||||
local screen;
|
||||
local player;
|
||||
local large_monster;
|
||||
local small_monster;
|
||||
local env_creature;
|
||||
local language;
|
||||
local part_names;
|
||||
local time_UI;
|
||||
local keyboard;
|
||||
local customization_menu;
|
||||
local label_customization;
|
||||
local bar_customization;
|
||||
|
||||
function module_visibility_customization.draw(cached_config)
|
||||
local changed = false;
|
||||
local config_changed = false;
|
||||
|
||||
changed, cached_config.small_monster_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.small_monster_UI,
|
||||
cached_config.small_monster_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.large_monster_dynamic_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_dynamic_UI,
|
||||
cached_config.large_monster_dynamic_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.large_monster_static_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_static_UI,
|
||||
cached_config.large_monster_static_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.large_monster_highlighted_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_highlighted_UI,
|
||||
cached_config.large_monster_highlighted_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.time_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.time_UI,
|
||||
cached_config.time_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.damage_meter_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.damage_meter_UI,
|
||||
cached_config.damage_meter_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.endemic_life_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.endemic_life_UI,
|
||||
cached_config.endemic_life_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
return config_changed;
|
||||
end
|
||||
|
||||
function module_visibility_customization.init_module()
|
||||
table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
||||
language = require("MHR_Overlay.Misc.language");
|
||||
config = require("MHR_Overlay.Misc.config");
|
||||
screen = require("MHR_Overlay.Game_Handler.screen");
|
||||
player = require("MHR_Overlay.Damage_Meter.player");
|
||||
small_monster = require("MHR_Overlay.Monsters.small_monster");
|
||||
large_monster = require("MHR_Overlay.Monsters.large_monster");
|
||||
env_creature = require("MHR_Overlay.Endemic_Life.env_creature");
|
||||
part_names = require("MHR_Overlay.Misc.part_names");
|
||||
time_UI = require("MHR_Overlay.UI.Modules.time_UI");
|
||||
keyboard = require("MHR_Overlay.Game_Handler.keyboard");
|
||||
customization_menu = require("MHR_Overlay.UI.customization_menu");
|
||||
end
|
||||
|
||||
return module_visibility_customization;
|
||||
@@ -77,7 +77,7 @@ function damage_meter_UI.draw()
|
||||
local quest_players = {};
|
||||
if damage_meter_UI.freeze_displayed_players and damage_meter_UI.last_displayed_players ~= {} then
|
||||
quest_players = damage_meter_UI.last_displayed_players;
|
||||
elseif quest_status.index < 2 then
|
||||
elseif quest_status.flow_state == quest_status.flow_states.IN_LOBBY or quest_status.flow_state == quest_status.flow_states.IN_TRAINING_AREA then
|
||||
local player_info_list = hunter_info_field:get_data(singletons.lobby_manager);
|
||||
quest_players = damage_meter_UI.get_players(player_info_list);
|
||||
else
|
||||
|
||||
@@ -143,6 +143,10 @@ function large_monster_UI.draw_dynamic(displayed_monsters, highlighted_monster,
|
||||
break
|
||||
end
|
||||
|
||||
if monster.id == 549 or monster.id == 25 or monster.id == 2073 then
|
||||
goto continue
|
||||
end
|
||||
|
||||
if monster.dead_or_captured and cached_config.settings.hide_dead_or_captured then
|
||||
goto continue
|
||||
end
|
||||
|
||||
@@ -23,6 +23,7 @@ local rage_customization;
|
||||
local body_parts_customization;
|
||||
local ailments_customization;
|
||||
local ailment_buildups_customization;
|
||||
local module_visibility_customization;
|
||||
|
||||
customization_menu.font = nil;
|
||||
customization_menu.font_range = {0x1, 0xFFFF, 0};
|
||||
@@ -759,129 +760,111 @@ function customization_menu.draw_global_settings()
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.module_visibility_on_different_screens) then
|
||||
if imgui.tree_node(language.current_language.customization_menu.during_quest) then
|
||||
changed, cached_config.module_visibility.during_quest.small_monster_UI =
|
||||
imgui.checkbox(language.current_language.customization_menu.small_monster_UI,
|
||||
cached_config.module_visibility.during_quest.small_monster_UI);
|
||||
if imgui.tree_node(language.current_language.customization_menu.module_visibility_based_on_game_state) then
|
||||
if imgui.tree_node(language.current_language.customization_menu.in_lobby) then
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.during_quest.large_monster_dynamic_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_dynamic_UI,
|
||||
cached_config.module_visibility.during_quest.large_monster_dynamic_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
imgui.same_line();
|
||||
|
||||
changed, cached_config.module_visibility.during_quest.large_monster_static_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_static_UI,
|
||||
cached_config.module_visibility.during_quest.large_monster_static_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.during_quest.large_monster_highlighted_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_highlighted_UI,
|
||||
cached_config.module_visibility.during_quest.large_monster_highlighted_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.during_quest.time_UI =
|
||||
imgui.checkbox(language.current_language.customization_menu.time_UI,
|
||||
cached_config.module_visibility.during_quest.time_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
imgui.same_line();
|
||||
|
||||
changed, cached_config.module_visibility.during_quest.damage_meter_UI =
|
||||
imgui.checkbox(language.current_language.customization_menu.damage_meter_UI,
|
||||
cached_config.module_visibility.during_quest.damage_meter_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.during_quest.endemic_life_UI =
|
||||
imgui.checkbox(language.current_language.customization_menu.endemic_life_UI,
|
||||
cached_config.module_visibility.during_quest.endemic_life_UI);
|
||||
changed, cached_config.module_visibility.in_lobby.endemic_life_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.endemic_life_UI,
|
||||
cached_config.module_visibility.in_lobby.endemic_life_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.quest_result_screen) then
|
||||
changed, cached_config.module_visibility.quest_result_screen.small_monster_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.small_monster_UI,
|
||||
cached_config.module_visibility.quest_result_screen.small_monster_UI);
|
||||
if imgui.tree_node(language.current_language.customization_menu.in_training_area) then
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.quest_result_screen.large_monster_dynamic_UI = imgui.checkbox(
|
||||
changed, cached_config.module_visibility.in_training_area.large_monster_dynamic_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_dynamic_UI,
|
||||
cached_config.module_visibility.quest_result_screen.large_monster_dynamic_UI);
|
||||
cached_config.module_visibility.in_training_area.large_monster_dynamic_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
imgui.same_line();
|
||||
|
||||
changed, cached_config.module_visibility.quest_result_screen.large_monster_static_UI = imgui.checkbox(
|
||||
changed, cached_config.module_visibility.in_training_area.large_monster_static_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_static_UI,
|
||||
cached_config.module_visibility.quest_result_screen.large_monster_static_UI);
|
||||
cached_config.module_visibility.in_training_area.large_monster_static_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.quest_result_screen.large_monster_highlighted_UI = imgui.checkbox(
|
||||
changed, cached_config.module_visibility.in_training_area.large_monster_highlighted_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_highlighted_UI,
|
||||
cached_config.module_visibility.quest_result_screen.large_monster_highlighted_UI);
|
||||
cached_config.module_visibility.in_training_area.large_monster_highlighted_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.quest_result_screen.time_UI =
|
||||
imgui.checkbox(language.current_language.customization_menu.time_UI,
|
||||
cached_config.module_visibility.quest_result_screen.time_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
imgui.same_line();
|
||||
|
||||
changed, cached_config.module_visibility.quest_result_screen.damage_meter_UI = imgui.checkbox(
|
||||
changed, cached_config.module_visibility.in_training_area.damage_meter_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.damage_meter_UI,
|
||||
cached_config.module_visibility.quest_result_screen.damage_meter_UI);
|
||||
cached_config.module_visibility.in_training_area.damage_meter_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.during_quest.endemic_life_UI =
|
||||
imgui.checkbox(language.current_language.customization_menu.endemic_life_UI,
|
||||
cached_config.module_visibility.during_quest.endemic_life_UI);
|
||||
changed, cached_config.module_visibility.in_training_area.endemic_life_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.endemic_life_UI,
|
||||
cached_config.module_visibility.in_training_area.endemic_life_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.training_area) then
|
||||
changed, cached_config.module_visibility.training_area.large_monster_dynamic_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_dynamic_UI,
|
||||
cached_config.module_visibility.training_area.large_monster_dynamic_UI);
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.cutscene) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.cutscene);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.same_line();
|
||||
|
||||
changed, cached_config.module_visibility.training_area.large_monster_static_UI = imgui.checkbox(
|
||||
language.current_language.customization_menu.large_monster_static_UI,
|
||||
cached_config.module_visibility.training_area.large_monster_static_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.training_area.damage_meter_UI =
|
||||
imgui.checkbox(language.current_language.customization_menu.damage_meter_UI,
|
||||
cached_config.module_visibility.training_area.damage_meter_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
changed, cached_config.module_visibility.during_quest.endemic_life_UI =
|
||||
imgui.checkbox(language.current_language.customization_menu.endemic_life_UI,
|
||||
cached_config.module_visibility.during_quest.endemic_life_UI);
|
||||
|
||||
config_changed = config_changed or changed;
|
||||
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.loading_quest) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.loading_quest);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.quest_start_animation) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.quest_start_animation);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.playing_quest) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.playing_quest);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.killcam) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.killcam);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.quest_end_timer) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.quest_end_timer);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.quest_end_animation) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.quest_end_animation);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.quest_end_screen) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.quest_end_screen);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.reward_screen) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.reward_screen);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
if imgui.tree_node(language.current_language.customization_menu.summary_screen) then
|
||||
changed = module_visibility_customization.draw(cached_config.module_visibility.summary_screen);
|
||||
config_changed = config_changed or changed;
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
imgui.tree_pop();
|
||||
end
|
||||
|
||||
@@ -2018,6 +2001,7 @@ function customization_menu.init_module()
|
||||
body_parts_customization = require("MHR_Overlay.UI.Customizations.body_parts_customization");
|
||||
ailments_customization = require("MHR_Overlay.UI.Customizations.ailments_customization");
|
||||
ailment_buildups_customization = require("MHR_Overlay.UI.Customizations.ailment_buildups_customization");
|
||||
module_visibility_customization = require("MHR_Overlay.UI.Customizations.module_visibility_customization");
|
||||
|
||||
customization_menu.init();
|
||||
customization_menu.reload_font(false);
|
||||
|
||||
Reference in New Issue
Block a user