From fa494d7d56600aa2ee154dfdd34f684a20a32d8f Mon Sep 17 00:00:00 2001 From: GreenComfyTea Date: Mon, 14 Feb 2022 21:02:40 +0200 Subject: [PATCH] Added highlighted large monster UI. --- reframework/autorun/MHR_Overlay.lua | 19 +- .../MHR_Overlay/Damage_Meter/player.lua | 1 + .../MHR_Overlay/Game_Handler/singletons.lua | 16 + .../autorun/MHR_Overlay/Misc/config.lua | 483 ++++- .../autorun/MHR_Overlay/Misc/language.lua | 4 + .../MHR_Overlay/Monsters/body_part.lua | 16 + .../MHR_Overlay/Monsters/large_monster.lua | 125 +- .../UI/Modules/large_monster_UI.lua | 180 +- .../UI/UI_Entities/body_part_UI_entity.lua | 21 + .../UI/UI_Entities/damage_UI_entity.lua | 16 +- .../MHR_Overlay/UI/customization_menu.lua | 1583 ++++++++++++++++- .../data/MHR Overlay/languages/en-us.json | 4 + .../data/MHR Overlay/languages/ko-kr.json | 6 + .../data/MHR Overlay/languages/zh-tw.json | 6 + 14 files changed, 2381 insertions(+), 99 deletions(-) diff --git a/reframework/autorun/MHR_Overlay.lua b/reframework/autorun/MHR_Overlay.lua index c2ec785..8f04491 100644 --- a/reframework/autorun/MHR_Overlay.lua +++ b/reframework/autorun/MHR_Overlay.lua @@ -89,8 +89,8 @@ re.on_frame(function() end); re.on_frame(function() - --draw.text("x: " .. tostring(x), 451, 51, 0xFF000000); - --draw.text("x: " .. tostring(x), 450, 50, 0xFFFFFFFF); + draw.text("x: " .. tostring(x), 451, 51, 0xFF000000); + draw.text("x: " .. tostring(x), 450, 50, 0xFFFFFFFF); end); -- #endregion --------------------------RE_IMGUI--------------------------- @@ -114,9 +114,10 @@ end, function() 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 dynamic_enabled or static_enabled then - local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled); + 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 @@ -140,9 +141,10 @@ end, function() 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 then - local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled); + 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 @@ -171,9 +173,10 @@ end, function() local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and config.current_config.global_settings.module_visibility.quest_summary_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_summary_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_summary_screen.large_monster_highlighted_UI; - if dynamic_enabled or static_enabled then - local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled); + 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 diff --git a/reframework/autorun/MHR_Overlay/Damage_Meter/player.lua b/reframework/autorun/MHR_Overlay/Damage_Meter/player.lua index f97ec36..aab8755 100644 --- a/reframework/autorun/MHR_Overlay/Damage_Meter/player.lua +++ b/reframework/autorun/MHR_Overlay/Damage_Meter/player.lua @@ -262,6 +262,7 @@ function player.init_UI(_player) config.current_config.damage_meter_UI.damage_bar, config.current_config.damage_meter_UI.highlighted_damage_bar, config.current_config.damage_meter_UI.player_name_label, + config.current_config.damage_meter_UI.hunter_rank_label, config.current_config.damage_meter_UI.damage_value_label, config.current_config.damage_meter_UI.damage_percentage_label ); diff --git a/reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua b/reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua index 626e3fb..09de2c2 100644 --- a/reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua +++ b/reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua @@ -7,6 +7,7 @@ singletons.progress_manager = nil; singletons.quest_manager = nil; singletons.player_manager = nil; singletons.village_area_manager = nil; +singletons.gui_manager = nil; function singletons.init() singletons.init_message_manager(); @@ -16,6 +17,7 @@ function singletons.init() singletons.init_quest_manager(); singletons.init_player_manager(); singletons.init_village_area_manager(); + singletons.init_gui_manager(); end function singletons.init_message_manager() @@ -111,6 +113,20 @@ function singletons.init_village_area_manager() return singletons.village_area_manager; end +function singletons.init_gui_manager() + if singletons.gui_manager ~= nil then + return; + end + + singletons.gui_manager = sdk.get_managed_singleton("snow.gui.GuiManager"); + if singletons.gui_manager == nil then + log.error("[MHR Overlay] No gui manager"); + end + + return singletons.gui_manager; +end + + function singletons.init_module() singletons.init(); end diff --git a/reframework/autorun/MHR_Overlay/Misc/config.lua b/reframework/autorun/MHR_Overlay/Misc/config.lua index 82da3ab..1b5d1e5 100644 --- a/reframework/autorun/MHR_Overlay/Misc/config.lua +++ b/reframework/autorun/MHR_Overlay/Misc/config.lua @@ -22,6 +22,7 @@ function config.init() 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 }, @@ -30,6 +31,7 @@ function config.init() 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 }, @@ -37,6 +39,7 @@ function config.init() training_area = { large_monster_dynamic_UI = true, large_monster_static_UI = true, + large_monster_highlighted_UI = true, damage_meter_UI = true } }, @@ -749,8 +752,453 @@ function config.init() position = { x = 525, - y = 125,--y = 44, - anchor = "Top-Left" + y = 47, + anchor = "Bottom-Left" + }, + + monster_name_label = { + visibility = true, + text = "%s", + + include = { + monster_name = true, + crown = true, + size = true, + crown_thresholds = false + }, + + offset = { + x = 5, + y = 0 + }, + color = 0xFFCCF4E1, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + health = { + visibility = true, + + text_label = { + visibility = false, + text = "%s", + offset = { + x = -25, + y = 19 + }, + color = 0xFFCCF4E1, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + value_label = { + visibility = true, + text = "%.0f/%.0f", -- current_health/max_health + offset = { + x = 5, + y = 19 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + percentage_label = { + visibility = true, + text = "%5.1f%%", + + offset = { + x = 150, + y = 19 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 20 + }, + + normal_colors = { + foreground = 0xB974A653, + background = 0xB9000000, + }, + + capture_colors = { + foreground = 0xB9CCCC33, + background = 0x88000000 + }, + + capture_line = { + visibility = true, + offset = { + x = 0, + y = -3 + }, + + size = { + width = 2, + height = 8 + }, + + color = 0xB9000000 + } + } + }, + + stamina = { + visibility = true, + + text_label = { + visibility = false, + text = "%s", + offset = { + x = 15, + y = 37 + }, + color = 0xFFA3F5F0, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + value_label = { + visibility = false, + text = "%.0f/%.0f", -- current_health/max_health + offset = { + x = 55, + y = 54 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + percentage_label = { + visibility = false, + text = "%5.1f%%", + + offset = { + x = 145, + y = 54 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + bar = { + visibility = true, + offset = { + x = 0, + y = 37 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xB966CCC5, + background = 0x88000000 + } + } + }, + + rage = { + visibility = true, + + text_label = { + visibility = false, + text = "%s", + offset = { + x = 15, + y = 61 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + value_label = { + visibility = false, + text = "%.0f/%.0f", -- current_health/max_health + offset = { + x = 55, + y = 78 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + percentage_label = { + visibility = true, + text = "%5.1f%%", + + offset = { + x = 150, + y = 33 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + timer_label = { + visibility = true, + text = "%.0f:%02.0f", + + offset = { + x = 150, + y = 33 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + bar = { + visibility = true, + offset = { + x = 0, + y = 42 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xB9CC6666, + background = 0x88000000 + } + } + }, + + parts = { + visibility = false, + + offset = { + x = 0, + y = 50 + }, + + spacing = { + x = 0, + y = 24, + }, + + settings = { + hide_undamaged_parts = true, + }, + + sorting = { + type = "Normal", + reversed_order = false + }, + + part_name_label = { + visibility = true, + text = "%s", + + include = { + part_name = true, + break_count = true + }, + + offset = { + x = 15, + y = 61 + }, + color = 0xFFf9d9ff, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + text_label = { + visibility = false, + text = language.current_language.UI.HP, + offset = { + x = -15, + y = 69 + }, + color = 0xF1F4A3CC, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + value_label = { + visibility = true, + text = "%.0f/%.0f", -- current_health/max_health + offset = { + x = 55, + y = 74 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + percentage_label = { + visibility = true, + text = "%5.1f%%", + + offset = { + x = 145, + y = 74 + }, + color = 0xFFFFFFFF, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + bar = { + visibility = true, + offset = { + x = 10, + y = 75 + }, + + size = { + width = 185, + height = 5 + }, + + colors = { + foreground = 0xB9ca85cc, + background = 0x88000000 + } + } + } + }, + + highlighted = { + enabled = true, + + settings = { + hide_dead_or_captured = true + }, + + position = { + x = 615, + y = 25,--y = 44, + anchor = "Top-Right" }, monster_name_label = { @@ -1229,8 +1677,8 @@ function config.init() kunai_damage = true, installation_damage = true, -- hunting_installations like ballista, cannon, etc. otomo_damage = true, - monster_damage = true - }, -- note that installations during narwa fight are counted as monster damage + monster_damage = true -- note that installations during narwa fight are counted as monster damage + }, spacing = { x = 270, @@ -1267,14 +1715,12 @@ function config.init() include = { myself = { - hunter_rank = true, word_player = false, player_id = false, player_name = true }, others = { - hunter_rank = true, word_player = false, player_id = false, player_name = true @@ -1297,6 +1743,31 @@ function config.init() color = 0xFF000000 } }, + + hunter_rank_label = { + visibility = true, + + enable_for = { + me = true, + other_players = true + }, + + text = "[%d]", + offset = { + x = 5, + y = 0 + }, + color = 0xFFCCF4E1, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, damage_value_label = { visibility = true, diff --git a/reframework/autorun/MHR_Overlay/Misc/language.lua b/reframework/autorun/MHR_Overlay/Misc/language.lua index 1dd6228..8902edb 100644 --- a/reframework/autorun/MHR_Overlay/Misc/language.lua +++ b/reframework/autorun/MHR_Overlay/Misc/language.lua @@ -81,6 +81,7 @@ language.default_language = { large_monster_dynamic_UI = "Large Monster Dynamic UI", large_monster_static_UI = "Large Monster Static UI", + large_monster_highlighted_UI = "Large Monster Highlighted UI", language = "Language", module_visibility_on_different_screens = "Module Visibility on Different Screens", @@ -156,6 +157,7 @@ language.default_language = { dynamically_positioned = "Dynamically Positioned", statically_positioned = "Statically Positioned", + highlighted = "Highlighted (targeted)", include = "Include", monster_name = "Monster Name", @@ -185,6 +187,7 @@ language.default_language = { tracked_damage_types = "Tracked Damage Types", player_name_label = "Player Name Label", + hunter_rank_label = "Hunter Rank Label", damage_value_label = "Damage Value Label", damage_percentage_label = "Damage Percetange Label", total_damage_label = "Total Damage Label", @@ -199,6 +202,7 @@ language.default_language = { hide_total_if_total_damage_is_zero = "Hide Total if Total Damage is 0", total_damage_offset_is_relative = "Total Damage Offset is Relative", + enable_for = "Enable for", highlighted_bar = "Highlighted Bar", me = "Me", top_damage = "Top Damage", diff --git a/reframework/autorun/MHR_Overlay/Monsters/body_part.lua b/reframework/autorun/MHR_Overlay/Monsters/body_part.lua index 59ef8a1..ae1e531 100644 --- a/reframework/autorun/MHR_Overlay/Monsters/body_part.lua +++ b/reframework/autorun/MHR_Overlay/Monsters/body_part.lua @@ -28,6 +28,7 @@ function body_part.new(REpart, name, id) body_part.init_dynamic_UI(part); body_part.init_static_UI(part); + body_part.init_highlighted_UI(part); return part; end @@ -55,6 +56,17 @@ function body_part.init_static_UI(part) ); end +function body_part.init_highlighted_UI(part) + part.body_part_highlighted_UI = body_part_UI_entity.new( + config.current_config.large_monster_UI.highlighted.parts.visibility, + config.current_config.large_monster_UI.highlighted.parts.bar, + config.current_config.large_monster_UI.highlighted.parts.part_name_label, + config.current_config.large_monster_UI.highlighted.parts.text_label, + config.current_config.large_monster_UI.highlighted.parts.value_label, + config.current_config.large_monster_UI.highlighted.parts.percentage_label + ); +end + function body_part.update(part, new_health, new_max_health) if part == nil then return; @@ -80,6 +92,10 @@ function body_part.draw_static(part, position_on_screen, opacity_scale) body_part_UI_entity.draw_static(part, position_on_screen, opacity_scale); end +function body_part.draw_highlighted(part, position_on_screen, opacity_scale) + body_part_UI_entity.draw_highlighted(part, position_on_screen, opacity_scale); +end + function body_part.init_module() singletons = require("MHR_Overlay.Game_Handler.singletons"); customization_menu = require("MHR_Overlay.UI.customization_menu"); diff --git a/reframework/autorun/MHR_Overlay/Monsters/large_monster.lua b/reframework/autorun/MHR_Overlay/Monsters/large_monster.lua index 4ebc9ea..08fc43c 100644 --- a/reframework/autorun/MHR_Overlay/Monsters/large_monster.lua +++ b/reframework/autorun/MHR_Overlay/Monsters/large_monster.lua @@ -61,11 +61,11 @@ function large_monster.new(enemy) monster.crown = ""; monster.parts = {}; - + large_monster.init(monster, enemy); large_monster.init_static_UI(monster); large_monster.init_dynamic_UI(monster); - + large_monster.init_highlighted_UI(monster); if large_monster.list[enemy] == nil then large_monster.list[enemy] = monster; @@ -215,6 +215,41 @@ function large_monster.init_dynamic_UI(monster) end end +function large_monster.init_highlighted_UI(monster) + monster.highlighted_name_label = table_helpers.deep_copy(config.current_config.large_monster_UI.highlighted.monster_name_label); + + monster.health_highlighted_UI = health_UI_entity.new( + config.current_config.large_monster_UI.highlighted.health.visibility, + config.current_config.large_monster_UI.highlighted.health.bar, + config.current_config.large_monster_UI.highlighted.health.text_label, + config.current_config.large_monster_UI.highlighted.health.value_label, + config.current_config.large_monster_UI.highlighted.health.percentage_label + ); + + monster.health_highlighted_UI.bar.colors = config.current_config.large_monster_UI.highlighted.health.bar.normal_colors; + + monster.stamina_highlighted_UI = stamina_UI_entity.new( + config.current_config.large_monster_UI.highlighted.stamina.visibility, + config.current_config.large_monster_UI.highlighted.stamina.bar, + config.current_config.large_monster_UI.highlighted.stamina.text_label, + config.current_config.large_monster_UI.highlighted.stamina.value_label, + config.current_config.large_monster_UI.highlighted.stamina.percentage_label + ); + + monster.rage_highlighted_UI = rage_UI_entity.new( + config.current_config.large_monster_UI.highlighted.rage.visibility, + config.current_config.large_monster_UI.highlighted.rage.bar, + config.current_config.large_monster_UI.highlighted.rage.text_label, + config.current_config.large_monster_UI.highlighted.rage.value_label, + config.current_config.large_monster_UI.highlighted.rage.percentage_label, + config.current_config.large_monster_UI.highlighted.rage.timer_label + ); + + for REpart, part in pairs(monster.parts) do + body_part.init_highlighted_UI(part); + end +end + local physical_param_field = enemy_character_base_type_def:get_field("k__BackingField"); local status_param_field = enemy_character_base_type_def:get_field("k__BackingField") local stamina_param_field = enemy_character_base_type_def:get_field("k__BackingField") @@ -671,6 +706,92 @@ function large_monster.draw_static(monster, position_on_screen, opacity_scale) end end +function large_monster.draw_highlighted(monster, position_on_screen, opacity_scale) + local monster_name_text = ""; + if config.current_config.large_monster_UI.highlighted.monster_name_label.include.monster_name then + monster_name_text = string.format("%s ", monster.name); + end + + if config.current_config.large_monster_UI.highlighted.monster_name_label.include.crown and monster.crown ~= "" then + monster_name_text = monster_name_text .. string.format("%s ", monster.crown); + end + if config.current_config.large_monster_UI.highlighted.monster_name_label.include.size then + monster_name_text = monster_name_text .. string.format("#%.0f ", 100 * monster.size); + end + + if config.current_config.large_monster_UI.highlighted.monster_name_label.include.scrown_thresholds then + monster_name_text = monster_name_text .. string.format("<=%.0f >=%.0f >=%.0f", 100 * monster.small_border, + 100 * monster.big_border, 100 * monster.king_border); + end + + if monster.health < monster.capture_health then + monster.health_highlighted_UI.bar.colors = config.current_config.large_monster_UI.highlighted.health.bar.capture_colors; + else + monster.health_highlighted_UI.bar.colors = config.current_config.large_monster_UI.highlighted.health.bar.normal_colors; + end + + drawing.draw_label(monster.highlighted_name_label, position_on_screen, opacity_scale, monster_name_text); + + + health_UI_entity.draw(monster, monster.health_highlighted_UI, position_on_screen, opacity_scale); + drawing.draw_capture_line(monster.health_highlighted_UI.bar, position_on_screen, opacity_scale, monster.capture_percentage); + + stamina_UI_entity.draw(monster, monster.stamina_highlighted_UI, position_on_screen, opacity_scale); + rage_UI_entity.draw(monster, monster.rage_highlighted_UI, position_on_screen, opacity_scale); + + --sort parts here + local displayed_parts = {}; + for REpart, part in pairs(monster.parts) do + if config.current_config.large_monster_UI.highlighted.parts.settings.hide_undamaged_parts and part.health == part.max_health and part.break_count == 0 then + goto continue; + end + + table.insert(displayed_parts, part); + ::continue:: + end + + if config.current_config.large_monster_UI.highlighted.parts.sorting.type == "Normal" then + if config.current_config.large_monster_UI.highlighted.parts.sorting.reversed_order then + table.sort(displayed_parts, function(left, right) + return left.id > right.id; + end); + else + table.sort(displayed_parts, function(left, right) + return left.id < right.id; + end); + end + elseif config.current_config.large_monster_UI.highlighted.parts.sorting.type == "Health" then + if config.current_config.large_monster_UI.highlighted.parts.sorting.reversed_order then + table.sort(displayed_parts, function(left, right) + return left.health > right.health; + end); + else + table.sort(displayed_parts, function(left, right) + return left.health < right.health; + end); + end + elseif config.current_config.large_monster_UI.highlighted.parts.sorting.type == "Health Percentage" then + if config.current_config.large_monster_UI.highlighted.parts.sorting.reversed_order then + table.sort(displayed_parts, function(left, right) + return left.health_percentage > right.health_percentage; + end); + else + table.sort(displayed_parts, function(left, right) + return left.health_percentage < right.health_percentage; + end); + end + end + + for j, part in ipairs(displayed_parts) do + local part_position_on_screen = { + x = position_on_screen.x + config.current_config.large_monster_UI.highlighted.parts.offset.x + config.current_config.large_monster_UI.highlighted.parts.spacing.x * (j - 1), + y = position_on_screen.y + config.current_config.large_monster_UI.highlighted.parts.offset.y + config.current_config.large_monster_UI.highlighted.parts.spacing.y * (j - 1); + } + + body_part.draw_highlighted(part, part_position_on_screen, opacity_scale); + end +end + function large_monster.init_list() large_monster.list = {}; end diff --git a/reframework/autorun/MHR_Overlay/UI/Modules/large_monster_UI.lua b/reframework/autorun/MHR_Overlay/UI/Modules/large_monster_UI.lua index 7a69adf..847cdb2 100644 --- a/reframework/autorun/MHR_Overlay/UI/Modules/large_monster_UI.lua +++ b/reframework/autorun/MHR_Overlay/UI/Modules/large_monster_UI.lua @@ -15,18 +15,33 @@ local enemy_manager_type_def = sdk.find_type_definition("snow.enemy.EnemyManager local get_boss_enemy_count_method = enemy_manager_type_def:get_method("getBossEnemyCount"); local get_boss_enemy_method = enemy_manager_type_def:get_method("getBossEnemy"); -function large_monster_UI.draw(dynamic_enabled, static_enabled) +function large_monster_UI.draw(dynamic_enabled, static_enabled, highlighted_enabled) if singletons.enemy_manager == nil then return; end local displayed_monsters = {}; + local highlighted_id = -1; + local highlighted_monster = nil; + + if singletons.gui_manager ~= nil then + local gui_hud_target_camera = singletons.gui_manager:call("get_refGuiHud_TgCamera"); + if gui_hud_target_camera ~= nil then + highlighted_id = gui_hud_target_camera:get_field("OldTargetingEmIndex"); + + if highlighted_id == nil then + highlighted_id = -1; + end + end + end + + local enemy_count = get_boss_enemy_count_method:call(singletons.enemy_manager); if enemy_count == nil then return; end - + for i = 0, enemy_count - 1 do local enemy = get_boss_enemy_method:call(singletons.enemy_manager, i); if enemy == nil then @@ -40,6 +55,10 @@ function large_monster_UI.draw(dynamic_enabled, static_enabled) goto continue; end + if i == highlighted_id then + highlighted_monster = monster; + end + table.insert(displayed_monsters, monster); ::continue:: end @@ -51,7 +70,21 @@ function large_monster_UI.draw(dynamic_enabled, static_enabled) end if dynamic_enabled then - local i = 0; + large_monster_UI.draw_dynamic(displayed_monsters); + end + + if highlighted_enabled then + large_monster_UI.draw_highlighted(highlighted_monster); + end + + if static_enabled then + large_monster_UI.draw_static(displayed_monsters); + end + +end + +function large_monster_UI.draw_dynamic(displayed_monsters) + local i = 0; for _, monster in ipairs(displayed_monsters) do if config.current_config.large_monster_UI.dynamic.settings.max_distance == 0 then break; @@ -88,75 +121,88 @@ function large_monster_UI.draw(dynamic_enabled, static_enabled) i = i + 1; ::continue:: end - end +end - if static_enabled then - -- sort here - if config.current_config.large_monster_UI.static.sorting.type == "Normal" and config.current_config.large_monster_UI.static.sorting.reversed_order then - local reversed_monsters = {}; - for i = #displayed_monsters, 1, -1 do - table.insert(reversed_monsters, displayed_monsters[i]); - end - - displayed_monsters = reversed_monsters; - - elseif config.current_config.large_monster_UI.static.sorting.type == "Health" then - if config.current_config.large_monster_UI.static.sorting.reversed_order then - table.sort(displayed_monsters, function(left, right) - return left.health > right.health; - end); - else - table.sort(displayed_monsters, function(left, right) - return left.health < right.health; - end); - end - elseif config.current_config.large_monster_UI.static.sorting.type == "Health Percentage" then - if config.current_config.large_monster_UI.static.sorting.reversed_order then - table.sort(displayed_monsters, function(left, right) - return left.health_percentage > right.health_percentage; - end); - else - table.sort(displayed_monsters, function(left, right) - return left.health_percentage < right.health_percentage; - end); - end - elseif config.current_config.large_monster_UI.static.sorting.type == "Distance" then - if config.current_config.large_monster_UI.static.sorting.reversed_order then - table.sort(displayed_monsters, function(left, right) - return left.distance > right.distance; - end); - else - table.sort(displayed_monsters, function(left, right) - return left.distance < right.distance; - end); - end +function large_monster_UI.draw_static(displayed_monsters) + -- sort here + if config.current_config.large_monster_UI.static.sorting.type == "Normal" and config.current_config.large_monster_UI.static.sorting.reversed_order then + local reversed_monsters = {}; + for i = #displayed_monsters, 1, -1 do + table.insert(reversed_monsters, displayed_monsters[i]); end + + displayed_monsters = reversed_monsters; - local position_on_screen = screen.calculate_absolute_coordinates(config.current_config.large_monster_UI.static.position); - - local i = 0; - for _, monster in ipairs(displayed_monsters) do - if monster.dead_or_captured and config.current_config.large_monster_UI.static.settings.hide_dead_or_captured then - goto continue; - end - - local monster_position_on_screen = { - x = position_on_screen.x, - y = position_on_screen.y - } - - if config.current_config.large_monster_UI.static.settings.orientation == "Horizontal" then - monster_position_on_screen.x = monster_position_on_screen.x + config.current_config.large_monster_UI.static.spacing.x * i; - else - monster_position_on_screen.y = monster_position_on_screen.y + config.current_config.large_monster_UI.static.spacing.y * i; - end - - large_monster.draw_static(monster, monster_position_on_screen, 1); - - i = i + 1; - ::continue:: + elseif config.current_config.large_monster_UI.static.sorting.type == "Health" then + if config.current_config.large_monster_UI.static.sorting.reversed_order then + table.sort(displayed_monsters, function(left, right) + return left.health > right.health; + end); + else + table.sort(displayed_monsters, function(left, right) + return left.health < right.health; + end); + end + elseif config.current_config.large_monster_UI.static.sorting.type == "Health Percentage" then + if config.current_config.large_monster_UI.static.sorting.reversed_order then + table.sort(displayed_monsters, function(left, right) + return left.health_percentage > right.health_percentage; + end); + else + table.sort(displayed_monsters, function(left, right) + return left.health_percentage < right.health_percentage; + end); + end + elseif config.current_config.large_monster_UI.static.sorting.type == "Distance" then + if config.current_config.large_monster_UI.static.sorting.reversed_order then + table.sort(displayed_monsters, function(left, right) + return left.distance > right.distance; + end); + else + table.sort(displayed_monsters, function(left, right) + return left.distance < right.distance; + end); end end + + local position_on_screen = screen.calculate_absolute_coordinates(config.current_config.large_monster_UI.static.position); + + local i = 0; + for _, monster in ipairs(displayed_monsters) do + if monster.dead_or_captured and config.current_config.large_monster_UI.static.settings.hide_dead_or_captured then + goto continue; + end + + local monster_position_on_screen = { + x = position_on_screen.x, + y = position_on_screen.y + } + + if config.current_config.large_monster_UI.static.settings.orientation == "Horizontal" then + monster_position_on_screen.x = monster_position_on_screen.x + config.current_config.large_monster_UI.static.spacing.x * i; + else + monster_position_on_screen.y = monster_position_on_screen.y + config.current_config.large_monster_UI.static.spacing.y * i; + end + + large_monster.draw_static(monster, monster_position_on_screen, 1); + + i = i + 1; + ::continue:: + end +end + +function large_monster_UI.draw_highlighted(monster) + if monster == nil then + return; + end + + local position_on_screen = screen.calculate_absolute_coordinates(config.current_config.large_monster_UI.highlighted.position); + + if monster.dead_or_captured and config.current_config.large_monster_UI.highlighted.settings.hide_dead_or_captured then + return; + end + + large_monster.draw_highlighted(monster, position_on_screen, 1); end function large_monster_UI.init_module() diff --git a/reframework/autorun/MHR_Overlay/UI/UI_Entities/body_part_UI_entity.lua b/reframework/autorun/MHR_Overlay/UI/UI_Entities/body_part_UI_entity.lua index 82abf2f..58bcb8b 100644 --- a/reframework/autorun/MHR_Overlay/UI/UI_Entities/body_part_UI_entity.lua +++ b/reframework/autorun/MHR_Overlay/UI/UI_Entities/body_part_UI_entity.lua @@ -58,6 +58,27 @@ function body_part_UI_entity.draw_static(part, position_on_screen, opacity_scale drawing.draw_label(part.body_part_static_UI.percentage_label, position_on_screen, opacity_scale, 100 * part.health_percentage); end +function body_part_UI_entity.draw_highlighted(part, position_on_screen, opacity_scale) + if not part.body_part_highlighted_UI.visibility then + return; + end + + local part_name = ""; + if config.current_config.large_monster_UI.highlighted.parts.part_name_label.include.part_name then + part_name = part.name .. " "; + end + if config.current_config.large_monster_UI.highlighted.parts.part_name_label.include.break_count and part.break_count ~= 0 then + part_name = part_name .. "x" .. tostring(part.break_count); + end + + drawing.draw_bar(part.body_part_highlighted_UI.bar, position_on_screen, opacity_scale, part.health_percentage); + + drawing.draw_label(part.body_part_highlighted_UI.name_label, position_on_screen, opacity_scale, part_name); + drawing.draw_label(part.body_part_highlighted_UI.text_label, position_on_screen, opacity_scale); + drawing.draw_label(part.body_part_highlighted_UI.value_label, position_on_screen, opacity_scale, part.health, part.max_health); + drawing.draw_label(part.body_part_highlighted_UI.percentage_label, position_on_screen, opacity_scale, 100 * part.health_percentage); +end + function body_part_UI_entity.init_module() table_helpers = require("MHR_Overlay.Misc.table_helpers"); drawing = require("MHR_Overlay.UI.drawing"); diff --git a/reframework/autorun/MHR_Overlay/UI/UI_Entities/damage_UI_entity.lua b/reframework/autorun/MHR_Overlay/UI/UI_Entities/damage_UI_entity.lua index 8740361..a9ad460 100644 --- a/reframework/autorun/MHR_Overlay/UI/UI_Entities/damage_UI_entity.lua +++ b/reframework/autorun/MHR_Overlay/UI/UI_Entities/damage_UI_entity.lua @@ -5,13 +5,14 @@ local config; local player; local language; -function damage_UI_entity.new(bar, highlighted_bar, player_name_label, value_label, percentage_label) +function damage_UI_entity.new(bar, highlighted_bar, player_name_label, hunter_rank_label, value_label, percentage_label) local entity = {}; --entity.visibility = visibility; entity.bar = table_helpers.deep_copy(bar); entity.highlighted_bar = table_helpers.deep_copy(highlighted_bar); entity.player_name_label = table_helpers.deep_copy(player_name_label); + entity.hunter_rank_label = table_helpers.deep_copy(hunter_rank_label); entity.value_label = table_helpers.deep_copy(value_label); entity.percentage_label = table_helpers.deep_copy(percentage_label); @@ -26,12 +27,9 @@ function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_d end local player_name_text = ""; - if player_include.hunter_rank then - player_name_text = string.format("[%d] ", _player.hunter_rank); - end if player_include.word_player then - player_name_text = player_name_text .. language.current_config.UI.player .. " "; + player_name_text = language.current_language.UI.player .. " "; end if player_include.player_id then @@ -66,6 +64,14 @@ function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_d drawing.draw_bar(_player.damage_UI.bar, position_on_screen, opacity_scale, player_damage_bar_percentage); end + if _player.id == player.myself_id then + if _player.damage_UI.hunter_rank_label.enable_for.me then + drawing.draw_label(_player.damage_UI.hunter_rank_label, position_on_screen, opacity_scale, _player.hunter_rank); + end + elseif _player.damage_UI.hunter_rank_label.enable_for.other_players then + drawing.draw_label(_player.damage_UI.hunter_rank_label, position_on_screen, opacity_scale, _player.hunter_rank); + end + drawing.draw_label(_player.damage_UI.player_name_label, position_on_screen, opacity_scale, player_name_text); drawing.draw_label(_player.damage_UI.value_label, position_on_screen, opacity_scale, _player.display.total_damage); drawing.draw_label(_player.damage_UI.percentage_label, position_on_screen, opacity_scale, 100 * player_damage_percentage); diff --git a/reframework/autorun/MHR_Overlay/UI/customization_menu.lua b/reframework/autorun/MHR_Overlay/UI/customization_menu.lua index 499138e..8c642b1 100644 --- a/reframework/autorun/MHR_Overlay/UI/customization_menu.lua +++ b/reframework/autorun/MHR_Overlay/UI/customization_menu.lua @@ -350,6 +350,11 @@ function customization_menu.draw() config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI); config_changed = config_changed or changed; + changed, config.current_config.global_settings.module_visibility.during_quest.large_monster_highlighted_UI = + imgui.checkbox(language.current_language.customization_menu.large_monster_highlighted_UI, + config.current_config.global_settings.module_visibility.during_quest.large_monster_highlighted_UI); + config_changed = config_changed or changed; + changed, config.current_config.global_settings.module_visibility.during_quest.time_UI = imgui.checkbox(language.current_language.customization_menu.time_UI, config.current_config.global_settings.module_visibility.during_quest.time_UI); config_changed = config_changed or changed; @@ -379,6 +384,11 @@ function customization_menu.draw() .quest_summary_screen.large_monster_static_UI); config_changed = config_changed or changed; + changed, config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_highlighted_UI = + imgui.checkbox(language.current_language.customization_menu.large_monster_highlighted_UI, config.current_config.global_settings.module_visibility + .quest_summary_screen.large_monster_highlighted_UI); + config_changed = config_changed or changed; + changed, config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI = imgui.checkbox( language.current_language.customization_menu.time_UI, config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI); config_changed = config_changed or changed; @@ -4182,6 +4192,1490 @@ function customization_menu.draw() imgui.tree_pop(); end + if imgui.tree_node(language.current_language.customization_menu.highlighted) then + local large_monster_highlighted_UI_changed = false; + + changed, config.current_config.large_monster_UI.highlighted.enabled = + imgui.checkbox(language.current_language.customization_menu.enabled, config.current_config.large_monster_UI.highlighted.enabled); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.settings) then + changed, config.current_config.large_monster_UI.highlighted.settings.hide_dead_or_captured = imgui.checkbox(language.current_language.customization_menu.hide_dead_or_captured, config.current_config. + large_monster_UI.highlighted.settings.hide_dead_or_captured); + config_changed = config_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.position) then + changed, config.current_config.large_monster_UI.highlighted.position.x = + imgui.drag_float(language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.position.x, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.position.y = + imgui.drag_float(language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.position.y, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, customization_menu.large_monster_UI_anchor_index = imgui.combo(language.current_language.customization_menu.anchor, + customization_menu.large_monster_UI_anchor_index, customization_menu.displayed_anchor_types); + config_changed = config_changed or changed; + if changed then + config.current_config.large_monster_UI.highlighted.position.anchor = + customization_menu.anchor_types[customization_menu.large_monster_UI_anchor_index]; + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.monster_name_label) then + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.monster_name_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.include) then + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.include.monster_name = imgui.checkbox( + language.current_language.customization_menu.monster_name, config.current_config.large_monster_UI.highlighted.monster_name_label.include.monster_name); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.include.crown = imgui.checkbox(language.current_language.customization_menu.crown, + config.current_config.large_monster_UI.highlighted.monster_name_label.include.crown); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.include.size = imgui.checkbox(language.current_language.customization_menu.size, + config.current_config.large_monster_UI.highlighted.monster_name_label.include.size); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.include.scrown_thresholds = + imgui.checkbox(language.current_language.customization_menu.crown_thresholds, + config.current_config.large_monster_UI.highlighted.monster_name_label.include.scrown_thresholds); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.monster_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.monster_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.monster_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.monster_name_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.monster_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.monster_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.monster_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.monster_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.health) then + changed, config.current_config.large_monster_UI.highlighted.health.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.health.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.text_label) then + changed, config.current_config.large_monster_UI.highlighted.health.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.health.text_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.health.text_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.health.text_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.text_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.health.text_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.health.text_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.text_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.health.text_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.health.text_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.health.text_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.health.text_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.text_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.health.text_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.health.text_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.text_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.value_label) then + changed, config.current_config.large_monster_UI.highlighted.health.value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.health.value_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.health.value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.health.value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.health.value_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.health.value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.health.value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.health.value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.health.value_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.health.value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.value_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.health.value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.health.value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.value_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.percentage_label) then + changed, config.current_config.large_monster_UI.highlighted.health.percentage_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.health.percentage_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.health.percentage_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.health.percentage_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.percentage_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.health.percentage_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.health.percentage_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.percentage_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.health.percentage_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.health.percentage_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.health.percentage_label.shadow.offset.x = + imgui.drag_float(language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.health.percentage_label.shadow.offset.x, + 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.percentage_label.shadow.offset.y = + imgui.drag_float(language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.health.percentage_label.shadow.offset.y, + 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.health.percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.percentage_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.bar) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.health.bar.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.health.bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.health.bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.size) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.highlighted.health.bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.highlighted.health.bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.colors) then + if imgui.tree_node(language.current_language.customization_menu.foreground) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.normal_colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.bar.normal_colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.background) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.normal_colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.bar.normal_colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.monster_can_be_captured) then + if imgui.tree_node(language.current_language.customization_menu.foreground) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.capture_colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.bar.capture_colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.background) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.capture_colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.bar.capture_colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.capture_line) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.capture_line.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.health.bar.capture_line.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.capture_line.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.health.bar.capture_line.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.bar.capture_line.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.health.bar.capture_line.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.size) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.capture_line.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.highlighted.health.bar.capture_line.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.health.bar.capture_line.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.highlighted.health.bar.capture_line.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.health.bar.capture_line.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.health.bar.capture_line.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.stamina) then + changed, config.current_config.large_monster_UI.highlighted.stamina.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.stamina.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.text_label) then + changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.stamina.text_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.stamina.text_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.stamina.text_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.stamina.text_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.stamina.text_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.stamina.text_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.stamina.text_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.stamina.text_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.value_label) then + changed, config.current_config.large_monster_UI.highlighted.stamina.value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.stamina.value_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.stamina.value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.stamina.value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.stamina.value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.stamina.value_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.stamina.value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.stamina.value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.stamina.value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.stamina.value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.stamina.value_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.stamina.value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.stamina.value_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.stamina.value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.stamina.value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.stamina.value_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.percentage_label) then + changed, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.stamina.percentage_label.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.stamina.percentage_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.stamina.percentage_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.shadow.visibility = + imgui.checkbox(language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.shadow.offset.x = + imgui.drag_float(language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.shadow.offset.x, + 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.shadow.offset.y = + imgui.drag_float(language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.shadow.offset.y, + 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.stamina.percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.stamina.percentage_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.bar) then + changed, config.current_config.large_monster_UI.highlighted.stamina.bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.stamina.bar.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.stamina.bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.stamina.bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.stamina.bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.stamina.bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.size) then + changed, config.current_config.large_monster_UI.highlighted.stamina.bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.highlighted.stamina.bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.stamina.bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.highlighted.stamina.bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.colors) then + if imgui.tree_node(language.current_language.customization_menu.foreground) then + changed, config.current_config.large_monster_UI.highlighted.stamina.bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.stamina.bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.background) then + changed, config.current_config.large_monster_UI.highlighted.stamina.bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.stamina.bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.rage) then + changed, config.current_config.large_monster_UI.highlighted.rage.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.rage.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.text_label) then + changed, config.current_config.large_monster_UI.highlighted.rage.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.rage.text_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.text_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.rage.text_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.text_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.rage.text_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.rage.text_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.text_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.rage.text_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.rage.text_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.text_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.rage.text_label.shadow.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.text_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.rage.text_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.rage.text_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.text_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.value_label) then + changed, config.current_config.large_monster_UI.highlighted.rage.value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.rage.value_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.rage.value_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.rage.value_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.rage.value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.rage.value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.rage.value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.value_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.rage.value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.value_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.rage.value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.rage.value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.value_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.percentage_label) then + changed, config.current_config.large_monster_UI.highlighted.rage.percentage_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.rage.percentage_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.percentage_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.rage.percentage_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.percentage_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.rage.percentage_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.rage.percentage_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.percentage_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.rage.percentage_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.rage.percentage_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.percentage_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.rage.percentage_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.percentage_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.rage.percentage_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.rage.percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.percentage_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.timer_label) then + changed, config.current_config.large_monster_UI.highlighted.rage.timer_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.rage.timer_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.timer_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.rage.timer_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.timer_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.rage.timer_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.rage.timer_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.timer_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.rage.timer_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.rage.timer_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.timer_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.rage.timer_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.timer_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.rage.timer_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.rage.timer_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.timer_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.bar) then + changed, config.current_config.large_monster_UI.highlighted.rage.bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.rage.bar.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.rage.bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.rage.bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.rage.bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.size) then + changed, config.current_config.large_monster_UI.highlighted.rage.bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.highlighted.rage.bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.rage.bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.highlighted.rage.bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.colors) then + if imgui.tree_node(language.current_language.customization_menu.foreground) then + changed, config.current_config.large_monster_UI.highlighted.rage.bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.background) then + changed, config.current_config.large_monster_UI.highlighted.rage.bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.rage.bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.body_parts) then + changed, config.current_config.large_monster_UI.highlighted.parts.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.parts.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.spacing) then + changed, config.current_config.large_monster_UI.highlighted.parts.spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.settings) then + changed, config.current_config.large_monster_UI.highlighted.parts.settings.hide_undamaged_parts = imgui.checkbox( + language.current_language.customization_menu.hide_undamaged_parts, config.current_config.large_monster_UI.highlighted.parts.settings.hide_undamaged_parts); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.sorting) then + changed, customization_menu.large_monster_highlighted_UI_parts_sorting_type_index = imgui.combo(language.current_language.customization_menu.type, + customization_menu.large_monster_highlighted_UI_parts_sorting_type_index, + customization_menu.displayed_large_monster_UI_parts_sorting_types); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + if changed then + config.current_config.large_monster_UI.highlighted.parts.sorting.type = + customization_menu.large_monster_UI_parts_sorting_types[customization_menu.large_monster_highlighted_UI_parts_sorting_type_index]; + end + + changed, config.current_config.large_monster_UI.highlighted.parts.sorting.reversed_order = imgui.checkbox( + language.current_language.customization_menu.reversed_order, config.current_config.large_monster_UI.highlighted.parts.sorting.reversed_order); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.part_name_label) then + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.parts.part_name_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.include) then + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.include.part_name = imgui.checkbox( + language.current_language.customization_menu.part_name, config.current_config.large_monster_UI.highlighted.parts.part_name_label.include.part_name); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.include.break_count = imgui.checkbox( + language.current_language.customization_menu.break_count, config.current_config.large_monster_UI.highlighted.parts.part_name_label.include.break_count); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.part_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.part_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.part_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.parts.part_name_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.parts.part_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.parts.part_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.parts.part_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.part_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.text_label) then + changed, config.current_config.large_monster_UI.highlighted.parts.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.parts.text_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.text_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.text_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.text_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.text_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.parts.text_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.text_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.parts.text_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.parts.text_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.text_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.text_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.text_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.text_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.parts.text_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.text_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.value_label) then + changed, config.current_config.large_monster_UI.highlighted.parts.value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.parts.value_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.value_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.parts.value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.parts.value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.parts.value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.value_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.value_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.parts.value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.value_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.percentage_label) then + changed, config.current_config.large_monster_UI.highlighted.parts.percentage_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.parts.percentage_label.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.percentage_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.percentage_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.percentage_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.percentage_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.parts.percentage_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.percentage_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.large_monster_UI.highlighted.parts.percentage_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.parts.percentage_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.percentage_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.parts.percentage_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.percentage_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.parts.percentage_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.large_monster_UI.highlighted.parts.percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.percentage_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.bar) then + changed, config.current_config.large_monster_UI.highlighted.parts.bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.parts.bar.visibility); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.parts.bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.parts.bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.parts.bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.size) then + changed, config.current_config.large_monster_UI.highlighted.parts.bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.highlighted.parts.bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.parts.bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.highlighted.parts.bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.colors) then + if imgui.tree_node(language.current_language.customization_menu.foreground) then + changed, config.current_config.large_monster_UI.highlighted.parts.bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.background) then + changed, config.current_config.large_monster_UI.highlighted.parts.bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.parts.bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + if large_monster_highlighted_UI_changed then + for _, monster in pairs(large_monster.list) do + large_monster.init_highlighted_UI(monster); + end + end + + imgui.tree_pop(); + end + imgui.tree_pop(); end @@ -4477,11 +5971,6 @@ function customization_menu.draw() if imgui.tree_node(language.current_language.customization_menu.include) then if imgui.tree_node(language.current_language.customization_menu.me) then - changed, config.current_config.damage_meter_UI.player_name_label.include.myself.hunter_rank = imgui.checkbox( - language.current_language.customization_menu.hunter_rank, config.current_config.damage_meter_UI.player_name_label.include.myself.hunter_rank); - config_changed = config_changed or changed; - damage_meter_UI_changed = damage_meter_UI_changed or changed; - changed, config.current_config.damage_meter_UI.player_name_label.include.myself.word_player = imgui.checkbox( language.current_language.customization_menu.word_player, config.current_config.damage_meter_UI.player_name_label.include.myself.word_player); config_changed = config_changed or changed; @@ -4501,11 +5990,6 @@ function customization_menu.draw() end if imgui.tree_node(language.current_language.customization_menu.other_players) then - changed, config.current_config.damage_meter_UI.player_name_label.include.others.hunter_rank = imgui.checkbox( - language.current_language.customization_menu.hunter_rank, config.current_config.damage_meter_UI.player_name_label.include.others.hunter_rank); - config_changed = config_changed or changed; - damage_meter_UI_changed = damage_meter_UI_changed or changed; - changed, config.current_config.damage_meter_UI.player_name_label.include.others.word_player = imgui.checkbox( language.current_language.customization_menu.word_player, config.current_config.damage_meter_UI.player_name_label.include.others.word_player); config_changed = config_changed or changed; @@ -4584,6 +6068,84 @@ function customization_menu.draw() imgui.tree_pop(); end + if imgui.tree_node(language.current_language.customization_menu.hunter_rank_label) then + changed, config.current_config.damage_meter_UI.hunter_rank_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.damage_meter_UI.hunter_rank_label.visibility); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.enable_for) then + changed, config.current_config.damage_meter_UI.hunter_rank_label.enable_for.me = imgui.checkbox( + language.current_language.customization_menu.me, config.current_config.damage_meter_UI.hunter_rank_label.enable_for.me); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + changed, config.current_config.damage_meter_UI.hunter_rank_label.enable_for.other_players = imgui.checkbox( + language.current_language.customization_menu.other_players, config.current_config.damage_meter_UI.hunter_rank_label.enable_for.other_players); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.damage_meter_UI.hunter_rank_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.damage_meter_UI.hunter_rank_label.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + changed, config.current_config.damage_meter_UI.hunter_rank_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.damage_meter_UI.hunter_rank_label.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.damage_meter_UI.hunter_rank_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.hunter_rank_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.damage_meter_UI.hunter_rank_label.shadow.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.damage_meter_UI.hunter_rank_label.shadow.visibility); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.damage_meter_UI.hunter_rank_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.damage_meter_UI.hunter_rank_label.shadow.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + changed, config.current_config.damage_meter_UI.hunter_rank_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.damage_meter_UI.hunter_rank_label.shadow.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.damage_meter_UI.hunter_rank_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.hunter_rank_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + damage_meter_UI_changed = damage_meter_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + if imgui.tree_node(language.current_language.customization_menu.damage_value_label) then changed, config.current_config.damage_meter_UI.damage_value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, config.current_config.damage_meter_UI.damage_value_label.visibility); @@ -4972,7 +6534,6 @@ function customization_menu.draw() end imgui.end_window(); - imgui.pop_font(customization_menu.font); if config_changed then diff --git a/reframework/data/MHR Overlay/languages/en-us.json b/reframework/data/MHR Overlay/languages/en-us.json index f55cb3a..f725091 100644 --- a/reframework/data/MHR Overlay/languages/en-us.json +++ b/reframework/data/MHR Overlay/languages/en-us.json @@ -36,6 +36,7 @@ "during_quest": "During Quest", "dynamic_positioning": "Dynamic Positioning", "dynamically_positioned": "Dynamically Positioned", + "enable_for": "Enable for", "enabled": "Enabled", "family": "Family", "first": "First", @@ -49,10 +50,12 @@ "hide_player_if_player_damage_is_zero": "Hide Player if Player Damage is 0", "hide_total_if_total_damage_is_zero": "Hide Total if Total Damage is 0", "hide_undamaged_parts": "Hide Undamaged Parts", + "highlighted": "Highlighted (targeted)", "highlighted_bar": "Highlighted Bar", "highlighted_damage_bar": "Highlighted Damage Bar", "horizontal": "Horizontal", "hunter_rank": "Hunter Rank", + "hunter_rank_label": "Hunter Rank Label", "include": "Include", "installation_damage": "Installation Damage", "italic": "Italic", @@ -60,6 +63,7 @@ "language": "Language", "large_monster_UI": "Large Monster UI", "large_monster_dynamic_UI": "Large Monster Dynamic UI", + "large_monster_highlighted_UI": "Large Monster Highlighted UI", "large_monster_static_UI": "Large Monster Static UI", "large_monsters": "Large Monsters", "last": "Last", diff --git a/reframework/data/MHR Overlay/languages/ko-kr.json b/reframework/data/MHR Overlay/languages/ko-kr.json index 1e796dc..3253a57 100644 --- a/reframework/data/MHR Overlay/languages/ko-kr.json +++ b/reframework/data/MHR Overlay/languages/ko-kr.json @@ -36,6 +36,8 @@ "during_quest": "퀘스트 중", "dynamic_positioning": "유동 위치", "dynamically_positioned": "유동 위치 UI", + "enable_for": "Enable for", + "enable_on": "Enable on", "enabled": "사용함", "family": "글꼴", "first": "처음", @@ -51,11 +53,13 @@ "hide_player_if_player_damage_is_zero": "헌터 대미지가 0이면 헌터 숨김", "hide_total_if_total_damage_is_zero": "총 대미지가 0이면 모두 숨김", "hide_undamaged_parts": "피해를 입히지 않은 부위 숨김", + "highlighted": "Highlighted (targeted)", "highlighted_bar": "강조된 막대", "highlighted_damage_bar": "강조된 대미지 막대", "higlighted_bar": "강조된 막대", "horizontal": "가로", "hunter_rank": "헌터 랭크", + "hunter_rank_label": "Hunter Rank Label", "include": "포함", "installation_damage": "설비 대미지", "italic": "기울임", @@ -63,6 +67,7 @@ "language": "언어", "large_monster_UI": "대형 몬스터 UI", "large_monster_dynamic_UI": "대형 몬스터 유동 UI", + "large_monster_highlighted_UI": "Large Monster Highlighted UI", "large_monster_static_UI": "대형 몬스터 고정 UI", "large_monsters": "대형 몬스터", "last": "마지막", @@ -131,6 +136,7 @@ "vertical": "세로", "viewport_offset": "뷰포트 옵셋", "visible": "표시함", + "visible_on": "Visible on", "width": "너비", "word_player": "\"헌터\" 명칭", "world_offset": "전역 옵셋", diff --git a/reframework/data/MHR Overlay/languages/zh-tw.json b/reframework/data/MHR Overlay/languages/zh-tw.json index db4d788..9a37a71 100644 --- a/reframework/data/MHR Overlay/languages/zh-tw.json +++ b/reframework/data/MHR Overlay/languages/zh-tw.json @@ -36,6 +36,8 @@ "during_quest": "任務中", "dynamic_positioning": "浮動的資訊位置", "dynamically_positioned": "浮動的魔物資訊", + "enable_for": "Enable for", + "enable_on": "Enable on", "enabled": "可見", "family": "字體", "first": "第一", @@ -49,10 +51,12 @@ "hide_player_if_player_damage_is_zero": "當玩家傷害為0時,隱藏玩家傷害", "hide_total_if_total_damage_is_zero": "當總傷害為0時,隱藏總傷害", "hide_undamaged_parts": "隱藏沒受到傷害的部位", + "highlighted": "Highlighted (targeted)", "highlighted_bar": "重點條", "highlighted_damage_bar": "重點傷害條", "horizontal": "水平", "hunter_rank": "獵人等級", + "hunter_rank_label": "Hunter Rank Label", "include": "細部資訊調整", "installation_damage": "設備傷害", "italic": "斜體", @@ -60,6 +64,7 @@ "language": "語言", "large_monster_UI": "大型魔物 UI", "large_monster_dynamic_UI": "大型魔物浮動 UI", + "large_monster_highlighted_UI": "Large Monster Highlighted UI", "large_monster_static_UI": "大型魔物固定 UI", "large_monsters": "大型魔物群", "last": "最後", @@ -128,6 +133,7 @@ "vertical": "垂直", "viewport_offset": "視窗的位置", "visible": "可見", + "visible_on": "Visible on", "width": "寬度", "word_player": "名稱 \"玩家\"", "world_offset": "地圖中的位置",