diff --git a/reframework/autorun/MHR_Overlay.lua b/reframework/autorun/MHR_Overlay.lua index 646c2a2..32edaa5 100644 --- a/reframework/autorun/MHR_Overlay.lua +++ b/reframework/autorun/MHR_Overlay.lua @@ -24,11 +24,13 @@ local monster_hook = require("MHR_Overlay.Monsters.monster_hook"); local small_monster = require("MHR_Overlay.Monsters.small_monster"); local ailments = require("MHR_Overlay.Monsters.ailments"); local ailment_hook = require("MHR_Overlay.Monsters.ailment_hook"); +local ailment_buildup = require("MHR_Overlay.Monsters.ailment_buildup"); local damage_meter_UI = require("MHR_Overlay.UI.Modules.damage_meter_UI"); local large_monster_UI = require("MHR_Overlay.UI.Modules.large_monster_UI"); local small_monster_UI = require("MHR_Overlay.UI.Modules.small_monster_UI"); local time_UI = require("MHR_Overlay.UI.Modules.time_UI"); +local env_creature_UI = require("MHR_Overlay.UI.Modules.env_creature_UI"); local body_part_UI_entity = require("MHR_Overlay.UI.UI_Entities.body_part_UI_entity"); local damage_UI_entity = require("MHR_Overlay.UI.UI_Entities.damage_UI_entity"); @@ -36,7 +38,7 @@ local health_UI_entity = require("MHR_Overlay.UI.UI_Entities.health_UI_entity"); local stamina_UI_entity = require("MHR_Overlay.UI.UI_Entities.stamina_UI_entity"); local rage_UI_entity = require("MHR_Overlay.UI.UI_Entities.rage_UI_entity"); local ailment_UI_entity = require("MHR_Overlay.UI.UI_Entities.ailment_UI_entity"); -local env_creature_UI = require("MHR_Overlay.UI.Modules.env_creature_UI"); +local ailment_buildup_UI_entity = require("MHR_Overlay.UI.UI_Entities.ailment_buildup_UI_entity"); local customization_menu = require("MHR_Overlay.UI.customization_menu"); local drawing = require("MHR_Overlay.UI.drawing"); @@ -58,6 +60,9 @@ health_UI_entity.init_module(); stamina_UI_entity.init_module(); rage_UI_entity.init_module(); ailment_UI_entity.init_module(); +ailment_buildup_UI_entity.init_module(); +body_part_UI_entity.init_module(); + damage_hook.init_module(); player.init_module(); @@ -70,9 +75,10 @@ large_monster.init_module(); monster_hook.init_module(); small_monster.init_module(); ailment_hook.init_module(); +ailment_buildup.init_module(); customization_menu.init_module(); -body_part_UI_entity.init_module(); + damage_meter_UI.init_module(); drawing.init_module(); large_monster_UI.init_module(); @@ -107,8 +113,8 @@ re.on_frame(function() end); re.on_frame(function() - --draw.text("xy: " .. tostring(xy), 551, 11, 0xFF000000); - --draw.text("xy: " .. tostring(xy), 550, 10, 0xFFFFFFFF); + draw.text("xy: " .. tostring(xy), 551, 11, 0xFF000000); + draw.text("xy: " .. tostring(xy), 550, 10, 0xFFFFFFFF); end); -- #endregion --------------------------RE_IMGUI--------------------------- diff --git a/reframework/autorun/MHR_Overlay/Damage_Meter/damage_hook.lua b/reframework/autorun/MHR_Overlay/Damage_Meter/damage_hook.lua index 9fb9371..77ac05f 100644 --- a/reframework/autorun/MHR_Overlay/Damage_Meter/damage_hook.lua +++ b/reframework/autorun/MHR_Overlay/Damage_Meter/damage_hook.lua @@ -120,15 +120,11 @@ function damage_hook.update_damage(args) monster = small_monster.get_monster(enemy); end - --xy = - -- "type: " .. tostring(damage_source_type) .. "\n" .. - -- "total damage: " .. tostring(damage_object.total_damage) .. "\n" .. - -- "physical damage: " .. tostring(damage_object.physical_damage) .. "\n" .. - -- "elemental damage: " .. tostring(damage_object.elemental_damage) .. "\n" .. - -- "condition damage: " .. tostring(condition_damage) .. "\n" .. - -- "condition type: " .. tostring(condition_type) .. "\n" .. - -- "is mario attack: " .. tostring(is_marionette_attack) .. "\n" .. - -- "attacker id: " .. tostring(attacker_id) .. "\n"; + local stun_damage = enemy_calc_damage_info:get_field("k__BackingField"); + if stun_damage ~= 0 and stun_damage ~= nil then + ailments.apply_ailment_buildup(monster, attacker_id, ailments.stun_id, stun_damage); + end + ailments.apply_ailment_buildup(monster, attacker_id, condition_type, condition_damage); diff --git a/reframework/autorun/MHR_Overlay/Misc/config.lua b/reframework/autorun/MHR_Overlay/Misc/config.lua index 7295a58..ef6eb96 100644 --- a/reframework/autorun/MHR_Overlay/Misc/config.lua +++ b/reframework/autorun/MHR_Overlay/Misc/config.lua @@ -508,7 +508,200 @@ function config.init() background = 0xA7000000 } } - } + }, + + ailment_buildups = { + visibility = false, + + offset = { + x = 220, + y = 17 + }, + + players_spacing = { + x = 0, + y = 24 + }, + + ailments_spacing = { + x = 0, + y = 17 + }, + + settings = { + buildup_bar_relative_to = "Top Buildup", + highlighted_bar = "Me", + time_limit = 15 + }, + + filter = { + stun = true, + poison = true, + blast = true, + }, + + sorting = { + type = "Buildup", + reversed_order = false + }, + + ailment_name_label = { + visibility = true, + + include = { + ailment_name = true, + activation_count = true + }, + + text = "%s", + offset = { + x = 5, + y = -17 + }, + color = 0xFF7cdbff, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + player_name_label = { + visibility = true, + + text = "%s", + offset = { + x = 5, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_value_label = { + visibility = true, + text = "%.0f", + offset = { + x = 115, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_percentage_label = { + visibility = true, + text = "%5.1f%%", + offset = { + x = 152, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + total_buildup_label = { + visibility = true, + text = "%s", + offset = { + x = 5, + y = 0 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + total_buildup_value_label = { + visibility = true, + text = "%.0f", + offset = { + x = 115, + y = 0 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xA796cfe5, + background = 0xA7000000 + } + }, + + highlighted_buildup_bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xA7F4D5A3, + background = 0xA7000000 + } + } + }, }, large_monster_UI = { @@ -1135,7 +1328,200 @@ function config.init() background = 0xA7000000 } } - } + }, + + ailment_buildups = { + visibility = false, + + offset = { + x = 220, + y = 17 + }, + + players_spacing = { + x = 0, + y = 24 + }, + + ailments_spacing = { + x = 0, + y = 17 + }, + + settings = { + buildup_bar_relative_to = "Top Buildup", + highlighted_bar = "Me", + time_limit = 15 + }, + + filter = { + stun = true, + poison = true, + blast = true, + }, + + sorting = { + type = "Buildup", + reversed_order = false + }, + + ailment_name_label = { + visibility = true, + + include = { + ailment_name = true, + activation_count = true + }, + + text = "%s", + offset = { + x = 5, + y = -17 + }, + color = 0xFF7cdbff, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + player_name_label = { + visibility = true, + + text = "%s", + offset = { + x = 5, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_value_label = { + visibility = true, + text = "%.0f", + offset = { + x = 115, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_percentage_label = { + visibility = true, + text = "%5.1f%%", + offset = { + x = 152, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + total_buildup_label = { + visibility = true, + text = "%s", + offset = { + x = 5, + y = 0 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + total_buildup_value_label = { + visibility = true, + text = "%.0f", + offset = { + x = 115, + y = 0 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xA796cfe5, + background = 0xA7000000 + } + }, + + highlighted_buildup_bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xA7F4D5A3, + background = 0xA7000000 + } + } + }, }, static = { @@ -1767,7 +2153,200 @@ function config.init() background = 0xA7000000 } } - } + }, + + ailment_buildups = { + visibility = false, + + offset = { + x = 220, + y = 17 + }, + + players_spacing = { + x = 0, + y = 24 + }, + + ailments_spacing = { + x = 0, + y = 17 + }, + + settings = { + buildup_bar_relative_to = "Top Buildup", + highlighted_bar = "Me", + time_limit = 15 + }, + + filter = { + stun = true, + poison = true, + blast = true, + }, + + sorting = { + type = "Buildup", + reversed_order = false + }, + + ailment_name_label = { + visibility = true, + + include = { + ailment_name = true, + activation_count = true + }, + + text = "%s", + offset = { + x = 5, + y = -17 + }, + color = 0xFF7cdbff, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + player_name_label = { + visibility = true, + + text = "%s", + offset = { + x = 5, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_value_label = { + visibility = true, + text = "%.0f", + offset = { + x = 115, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_percentage_label = { + visibility = true, + text = "%5.1f%%", + offset = { + x = 152, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + total_buildup_label = { + visibility = true, + text = "%s", + offset = { + x = 5, + y = 0 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + total_buildup_value_label = { + visibility = true, + text = "%.0f", + offset = { + x = 115, + y = 0 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xA796cfe5, + background = 0xA7000000 + } + }, + + highlighted_buildup_bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xA7F4D5A3, + background = 0xA7000000 + } + } + }, }, highlighted = { @@ -2379,7 +2958,200 @@ function config.init() background = 0xA7000000 } } - } + }, + + ailment_buildups = { + visibility = false, + + offset = { + x = 220, + y = 167 + }, + + players_spacing = { + x = 0, + y = 24 + }, + + ailments_spacing = { + x = 0, + y = 17 + }, + + settings = { + buildup_bar_relative_to = "Top Buildup", + highlighted_bar = "Me", + time_limit = 15 + }, + + filter = { + stun = true, + poison = true, + blast = true, + }, + + sorting = { + type = "Buildup", + reversed_order = false + }, + + ailment_name_label = { + visibility = true, + + include = { + ailment_name = true, + activation_count = true + }, + + text = "%s", + offset = { + x = 5, + y = -17 + }, + color = 0xFF7cdbff, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + player_name_label = { + visibility = true, + + text = "%s", + offset = { + x = 5, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_value_label = { + visibility = true, + text = "%.0f", + offset = { + x = 115, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_percentage_label = { + visibility = true, + text = "%5.1f%%", + offset = { + x = 152, + y = 0 + }, + color = 0xFFb5dded, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + total_buildup_label = { + visibility = true, + text = "%s", + offset = { + x = 5, + y = 0 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + total_buildup_value_label = { + visibility = true, + text = "%.0f", + offset = { + x = 115, + y = 0 + }, + color = 0xFFFF9393, + + shadow = { + visibility = true, + offset = { + x = 1, + y = 1 + }, + color = 0xFF000000 + } + }, + + buildup_bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xA796cfe5, + background = 0xA7000000 + } + }, + + highlighted_buildup_bar = { + visibility = true, + offset = { + x = 0, + y = 17 + }, + + size = { + width = 200, + height = 5 + }, + + colors = { + foreground = 0xA7F4D5A3, + background = 0xA7000000 + } + } + }, } }, @@ -2746,7 +3518,7 @@ function config.init_module() config.init(); config.load(); - config.current_config.version = "v1.10"; + config.current_config.version = "v1.11"; language.update(table_helpers.find_index(language.language_names, config.current_config.global_settings.language, false)); diff --git a/reframework/autorun/MHR_Overlay/Misc/language.lua b/reframework/autorun/MHR_Overlay/Misc/language.lua index 30ed52b..d0e75b4 100644 --- a/reframework/autorun/MHR_Overlay/Misc/language.lua +++ b/reframework/autorun/MHR_Overlay/Misc/language.lua @@ -90,7 +90,8 @@ language.default_language = { mini = "Mini", total_damage = "Total Damage", player = "Player", - buildup = "Buildup:" + buildup = "Buildup:", + total_buildup = "Total Buildup" }, customization_menu = { @@ -301,7 +302,22 @@ language.default_language = { creature_name_label = "Creature Name Label", hide_inactive_creatures = "Hide Inactive Creatures", - relative_offset = "Relative Offset" + relative_offset = "Relative Offset", + + ailment_buildups = "Ailment Buildups", + players_spacing = "Player Spacing", + ailments_spacing = "Ailment Spacing", + buildup_value_label = "Buildup Value Label", + buildup_percentage_label = "Buildup Percentage Label", + total_buildup_label = "Total Buildup Label", + total_buildup_value_label = "Total Buildup Value Label", + buildup_bar = "Buildup Bar", + highlighted_buildup_bar = "Highlighted Buildup Bar", + + filter = "Filter", + top_buildup = "Top Buildup", + total_buildup = "Total Buildup", + buildup_bars_are_relative_to = "Buildup Bars are relative to" } }; diff --git a/reframework/autorun/MHR_Overlay/Monsters/ailment_buildup.lua b/reframework/autorun/MHR_Overlay/Monsters/ailment_buildup.lua new file mode 100644 index 0000000..ccd9c61 --- /dev/null +++ b/reframework/autorun/MHR_Overlay/Monsters/ailment_buildup.lua @@ -0,0 +1,529 @@ +local ailment_buildup = {}; +local player; +local language; +local config; +local ailments; +local ailment_buildup_UI_entity; +local time; +local small_monster; +local large_monster; +local table_helpers; +local drawing; + +function ailment_buildup.draw_dynamic(monster, ailment_buildups_position_on_screen, opacity_scale) + if not config.current_config.large_monster_UI.dynamic.ailment_buildups.enabled then + return; + end + + for id, ailment in pairs(monster.ailments) do + if id == ailments.stun_id then + if not config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.stun then + goto continue; + end + + elseif id == ailments.poison_id then + if not config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.poison then + goto continue; + end + elseif id == ailments.blast_id then + if not config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.blast then + goto continue; + end + else + goto continue; + end + + if config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.time_limit ~= 0 and time.total_elapsed_seconds - ailment.last_change_time > config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.time_limit then + goto continue; + end + + local total_buildup = 0; + local top_buildup = 0; + + local displayed_players = {}; + for player_id, player_buildup in pairs(ailment.buildup) do + total_buildup = total_buildup + player_buildup; + + if player_buildup > top_buildup then + top_buildup = player_buildup; + end + + table.insert(displayed_players, + { + ["buildup"] = player_buildup, + ["buildup_share"] = ailment.buildup_share[player_id], + ["id"] = player_id + } + ); + end + + if total_buildup == 0 then + goto continue; + end + + if config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.type == "Normal" then + if config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.id < right.id; + end); + else + table.sort(displayed_players, function(left, right) + return left.id > right.id; + end); + end + elseif config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.type == "Buildup" then + if config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.buildup < right.buildup; + end); + else + table.sort(displayed_players, function(left, right) + return left.buildup > right.buildup; + end); + end + elseif config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.type == "Buildup Percentage" then + if config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.buildup_share < right.buildup_share; + end); + else + table.sort(displayed_players, function(left, right) + return left.buildup_share > right.buildup_share; + end); + end + end + + local ailment_name = ""; + if config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.include.ailment_name then + ailment_name = ailment.name .. " "; + end + if config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.include.activation_count and ailment.activate_count ~= 0 then + ailment_name = ailment_name .. "x" .. tostring(ailment.activate_count); + end + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_dynamic_UI.ailment_name_label, ailment_buildups_position_on_screen, opacity_scale, ailment_name); + + + local last_j = 0; + for j, _player in ipairs(displayed_players) do + local ailment_buildup_position_on_screen = { + x = ailment_buildups_position_on_screen.x + config.current_config.large_monster_UI.dynamic.ailment_buildups.players_spacing.x * (j - 1) * config.current_config.global_settings.modifiers.global_scale_modifier, + y = ailment_buildups_position_on_screen.y + config.current_config.large_monster_UI.dynamic.ailment_buildups.players_spacing.y * (j - 1) * config.current_config.global_settings.modifiers.global_scale_modifier; + }; + + ailment_buildup_UI_entity.draw_dynamic(_player, monster.ailments[ailments.stun_id].ailment_buildup_dynamic_UI, ailment_buildup_position_on_screen, opacity_scale, top_buildup); + + last_j = j; + end + + + + local total_buildup_position_on_screen = { + x = ailment_buildups_position_on_screen.x + config.current_config.large_monster_UI.dynamic.ailment_buildups.players_spacing.x * last_j * config.current_config.global_settings.modifiers.global_scale_modifier, + y = ailment_buildups_position_on_screen.y + config.current_config.large_monster_UI.dynamic.ailment_buildups.players_spacing.y * last_j * config.current_config.global_settings.modifiers.global_scale_modifier; + }; + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_dynamic_UI.total_buildup_label, total_buildup_position_on_screen, opacity_scale, language.current_language.UI.total_buildup); + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_dynamic_UI.total_buildup_value_label, total_buildup_position_on_screen, opacity_scale, total_buildup); + + ailment_buildups_position_on_screen = { + x = total_buildup_position_on_screen.x + config.current_config.large_monster_UI.dynamic.ailment_buildups.ailments_spacing.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = total_buildup_position_on_screen.y + 17 + config.current_config.large_monster_UI.dynamic.ailment_buildups.ailments_spacing.y * config.current_config.global_settings.modifiers.global_scale_modifier + }; + + ::continue:: + end + + +end + +function ailment_buildup.draw_static(monster, ailment_buildups_position_on_screen, opacity_scale) + if not config.current_config.large_monster_UI.static.ailment_buildups.enabled then + return; + end + + for id, ailment in pairs(monster.ailments) do + if id == ailments.stun_id then + if not config.current_config.large_monster_UI.static.ailment_buildups.filter.stun then + goto continue; + end + + elseif id == ailments.poison_id then + if not config.current_config.large_monster_UI.static.ailment_buildups.filter.poison then + goto continue; + end + elseif id == ailments.blast_id then + if not config.current_config.large_monster_UI.static.ailment_buildups.filter.blast then + goto continue; + end + else + goto continue; + end + + if config.current_config.large_monster_UI.static.ailment_buildups.settings.time_limit ~= 0 and time.total_elapsed_seconds - ailment.last_change_time > config.current_config.large_monster_UI.static.ailment_buildups.settings.time_limit then + goto continue; + end + + local total_buildup = 0; + local top_buildup = 0; + + local displayed_players = {}; + for player_id, player_buildup in pairs(ailment.buildup) do + total_buildup = total_buildup + player_buildup; + + if player_buildup > top_buildup then + top_buildup = player_buildup; + end + + table.insert(displayed_players, + { + ["buildup"] = player_buildup, + ["buildup_share"] = ailment.buildup_share[player_id], + ["id"] = player_id + } + ); + end + + if total_buildup == 0 then + goto continue; + end + + if config.current_config.large_monster_UI.static.ailment_buildups.sorting.type == "Normal" then + if config.current_config.large_monster_UI.static.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.id < right.id; + end); + else + table.sort(displayed_players, function(left, right) + return left.id > right.id; + end); + end + elseif config.current_config.large_monster_UI.static.ailment_buildups.sorting.type == "Buildup" then + if config.current_config.large_monster_UI.static.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.buildup < right.buildup; + end); + else + table.sort(displayed_players, function(left, right) + return left.buildup > right.buildup; + end); + end + elseif config.current_config.large_monster_UI.static.ailment_buildups.sorting.type == "Buildup Percentage" then + if config.current_config.large_monster_UI.static.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.buildup_share < right.buildup_share; + end); + else + table.sort(displayed_players, function(left, right) + return left.buildup_share > right.buildup_share; + end); + end + end + + local ailment_name = ""; + if config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.include.ailment_name then + ailment_name = ailment.name .. " "; + end + if config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.include.activation_count and ailment.activate_count ~= 0 then + ailment_name = ailment_name .. "x" .. tostring(ailment.activate_count); + end + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_static_UI.ailment_name_label, ailment_buildups_position_on_screen, opacity_scale, ailment_name); + + local last_j = 0; + for j, _player in ipairs(displayed_players) do + local ailment_buildup_position_on_screen = { + x = ailment_buildups_position_on_screen.x + config.current_config.large_monster_UI.static.ailment_buildups.players_spacing.x * (j - 1) * config.current_config.global_settings.modifiers.global_scale_modifier, + y = ailment_buildups_position_on_screen.y + config.current_config.large_monster_UI.static.ailment_buildups.players_spacing.y * (j - 1) * config.current_config.global_settings.modifiers.global_scale_modifier; + }; + + ailment_buildup_UI_entity.draw_static(_player, monster.ailments[ailments.stun_id].ailment_buildup_static_UI, ailment_buildup_position_on_screen, opacity_scale, top_buildup); + + last_j = j; + end + + local total_buildup_position_on_screen = { + x = ailment_buildups_position_on_screen.x + config.current_config.large_monster_UI.static.ailment_buildups.players_spacing.x * last_j * config.current_config.global_settings.modifiers.global_scale_modifier, + y = ailment_buildups_position_on_screen.y + config.current_config.large_monster_UI.static.ailment_buildups.players_spacing.y * last_j * config.current_config.global_settings.modifiers.global_scale_modifier; + }; + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_static_UI.total_buildup_label, total_buildup_position_on_screen, opacity_scale, language.current_language.UI.total_buildup); + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_static_UI.total_buildup_value_label, total_buildup_position_on_screen, opacity_scale, total_buildup); + + ailment_buildups_position_on_screen = { + x = total_buildup_position_on_screen.x + config.current_config.large_monster_UI.static.ailment_buildups.ailments_spacing.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = total_buildup_position_on_screen.y + 17 + config.current_config.large_monster_UI.static.ailment_buildups.ailments_spacing.y * config.current_config.global_settings.modifiers.global_scale_modifier + }; + + ::continue:: + end + + +end + +function ailment_buildup.draw_highlighted(monster, ailment_buildups_position_on_screen, opacity_scale) + if not config.current_config.large_monster_UI.highlighted.ailment_buildups.enabled then + return; + end + + for id, ailment in pairs(monster.ailments) do + if id == ailments.stun_id then + if not config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.stun then + goto continue; + end + + elseif id == ailments.poison_id then + if not config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.poison then + goto continue; + end + elseif id == ailments.blast_id then + if not config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.blast then + goto continue; + end + else + goto continue; + end + + if config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.time_limit ~= 0 and time.total_elapsed_seconds - ailment.last_change_time > config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.time_limit then + goto continue; + end + + local total_buildup = 0; + local top_buildup = 0; + + local displayed_players = {}; + for player_id, player_buildup in pairs(ailment.buildup) do + total_buildup = total_buildup + player_buildup; + + if player_buildup > top_buildup then + top_buildup = player_buildup; + end + + table.insert(displayed_players, + { + ["buildup"] = player_buildup, + ["buildup_share"] = ailment.buildup_share[player_id], + ["id"] = player_id + } + ); + end + + if total_buildup == 0 then + goto continue; + end + + if config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.type == "Normal" then + if config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.id < right.id; + end); + else + table.sort(displayed_players, function(left, right) + return left.id > right.id; + end); + end + elseif config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.type == "Buildup" then + if config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.buildup < right.buildup; + end); + else + table.sort(displayed_players, function(left, right) + return left.buildup > right.buildup; + end); + end + elseif config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.type == "Buildup Percentage" then + if config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.buildup_share < right.buildup_share; + end); + else + table.sort(displayed_players, function(left, right) + return left.buildup_share > right.buildup_share; + end); + end + end + + local ailment_name = ""; + if config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.include.ailment_name then + ailment_name = ailment.name .. " "; + end + if config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.include.activation_count and ailment.activate_count ~= 0 then + ailment_name = ailment_name .. "x" .. tostring(ailment.activate_count); + end + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_highlighted_UI.ailment_name_label, ailment_buildups_position_on_screen, opacity_scale, ailment_name); + + local last_j = 0; + for j, _player in ipairs(displayed_players) do + local ailment_buildup_position_on_screen = { + x = ailment_buildups_position_on_screen.x + config.current_config.large_monster_UI.highlighted.ailment_buildups.players_spacing.x * (j - 1) * config.current_config.global_settings.modifiers.global_scale_modifier, + y = ailment_buildups_position_on_screen.y + config.current_config.large_monster_UI.highlighted.ailment_buildups.players_spacing.y * (j - 1) * config.current_config.global_settings.modifiers.global_scale_modifier; + }; + + ailment_buildup_UI_entity.draw_highlighted(_player, monster.ailments[ailments.stun_id].ailment_buildup_highlighted_UI, ailment_buildup_position_on_screen, opacity_scale, top_buildup); + + last_j = j; + end + + local total_buildup_position_on_screen = { + x = ailment_buildups_position_on_screen.x + config.current_config.large_monster_UI.highlighted.ailment_buildups.players_spacing.x * last_j * config.current_config.global_settings.modifiers.global_scale_modifier, + y = ailment_buildups_position_on_screen.y + config.current_config.large_monster_UI.highlighted.ailment_buildups.players_spacing.y * last_j * config.current_config.global_settings.modifiers.global_scale_modifier; + }; + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_highlighted_UI.total_buildup_label, total_buildup_position_on_screen, opacity_scale, language.current_language.UI.total_buildup); + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_highlighted_UI.total_buildup_value_label, total_buildup_position_on_screen, opacity_scale, total_buildup); + + ailment_buildups_position_on_screen = { + x = total_buildup_position_on_screen.x + config.current_config.large_monster_UI.highlighted.ailment_buildups.ailments_spacing.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = total_buildup_position_on_screen.y + 17 + config.current_config.large_monster_UI.highlighted.ailment_buildups.ailments_spacing.y * config.current_config.global_settings.modifiers.global_scale_modifier + }; + + ::continue:: + end + + +end + +function ailment_buildup.draw_small(monster, ailment_buildups_position_on_screen, opacity_scale) + if not config.current_config.small_monster_UI.ailment_buildups.enabled then + return; + end + + for id, ailment in pairs(monster.ailments) do + if id == ailments.stun_id then + if not config.current_config.small_monster_UI.ailment_buildups.filter.stun then + goto continue; + end + + elseif id == ailments.poison_id then + if not config.current_config.small_monster_UI.ailment_buildups.filter.poison then + goto continue; + end + elseif id == ailments.blast_id then + if not config.current_config.small_monster_UI.ailment_buildups.filter.blast then + goto continue; + end + else + goto continue; + end + + if config.current_config.small_monster_UI.ailment_buildups.settings.time_limit ~= 0 and time.total_elapsed_seconds - ailment.last_change_time > config.current_config.small_monster_UI.ailment_buildups.settings.time_limit then + goto continue; + end + + local total_buildup = 0; + local top_buildup = 0; + + local displayed_players = {}; + for player_id, player_buildup in pairs(ailment.buildup) do + total_buildup = total_buildup + player_buildup; + + if player_buildup > top_buildup then + top_buildup = player_buildup; + end + + table.insert(displayed_players, + { + ["buildup"] = player_buildup, + ["buildup_share"] = ailment.buildup_share[player_id], + ["id"] = player_id + } + ); + end + + if total_buildup == 0 then + goto continue; + end + + if config.current_config.small_monster_UI.ailment_buildups.sorting.type == "Normal" then + if config.current_config.small_monster_UI.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.id < right.id; + end); + else + table.sort(displayed_players, function(left, right) + return left.id > right.id; + end); + end + elseif config.current_config.small_monster_UI.ailment_buildups.sorting.type == "Buildup" then + if config.current_config.small_monster_UI.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.buildup < right.buildup; + end); + else + table.sort(displayed_players, function(left, right) + return left.buildup > right.buildup; + end); + end + elseif config.current_config.small_monster_UI.ailment_buildups.sorting.type == "Buildup Percentage" then + if config.current_config.small_monster_UI.ailment_buildups.sorting.reversed_order then + table.sort(displayed_players, function(left, right) + return left.buildup_share < right.buildup_share; + end); + else + table.sort(displayed_players, function(left, right) + return left.buildup_share > right.buildup_share; + end); + end + end + + local ailment_name = ""; + if config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.include.ailment_name then + ailment_name = ailment.name .. " "; + end + if config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.include.activation_count and ailment.activate_count ~= 0 then + ailment_name = ailment_name .. "x" .. tostring(ailment.activate_count); + end + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_small_UI.ailment_name_label, ailment_buildups_position_on_screen, opacity_scale, ailment_name); + + local last_j = 0; + for j, _player in ipairs(displayed_players) do + local ailment_buildup_position_on_screen = { + x = ailment_buildups_position_on_screen.x + config.current_config.small_monster_UI.ailment_buildups.players_spacing.x * (j - 1) * config.current_config.global_settings.modifiers.global_scale_modifier, + y = ailment_buildups_position_on_screen.y + config.current_config.small_monster_UI.ailment_buildups.players_spacing.y * (j - 1) * config.current_config.global_settings.modifiers.global_scale_modifier; + }; + + ailment_buildup_UI_entity.draw_small(_player, monster.ailments[ailments.stun_id].ailment_buildup_small_UI, ailment_buildup_position_on_screen, opacity_scale, top_buildup); + + last_j = j; + end + + local total_buildup_position_on_screen = { + x = ailment_buildups_position_on_screen.x + config.current_config.small_monster_UI.ailment_buildups.players_spacing.x * last_j * config.current_config.global_settings.modifiers.global_scale_modifier, + y = ailment_buildups_position_on_screen.y + config.current_config.small_monster_UI.ailment_buildups.players_spacing.y * last_j * config.current_config.global_settings.modifiers.global_scale_modifier; + }; + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_small_UI.total_buildup_label, total_buildup_position_on_screen, opacity_scale, language.current_language.UI.total_buildup); + + drawing.draw_label(monster.ailments[ailments.stun_id].ailment_buildup_small_UI.total_buildup_value_label, total_buildup_position_on_screen, opacity_scale, total_buildup); + + ailment_buildups_position_on_screen = { + x = total_buildup_position_on_screen.x + config.current_config.small_monster_UI.ailment_buildups.ailments_spacing.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = total_buildup_position_on_screen.y + 17 + config.current_config.small_monster_UI.ailment_buildups.ailments_spacing.y * config.current_config.global_settings.modifiers.global_scale_modifier + }; + + ::continue:: + end + + +end + +function ailment_buildup.init_module() + player = require("MHR_Overlay.Damage_Meter.player"); + language = require("MHR_Overlay.Misc.language"); + config = require("MHR_Overlay.Misc.config"); + ailments = require("MHR_Overlay.Monsters.ailments"); + ailment_buildup_UI_entity = require("MHR_Overlay.UI.UI_Entities.ailment_buildup_UI_entity"); + time = require("MHR_Overlay.Game_Handler.time"); + small_monster = require("MHR_Overlay.Monsters.small_monster"); + large_monster = require("MHR_Overlay.Monsters.large_monster"); + table_helpers = require("MHR_Overlay.Misc.table_helpers"); + drawing = require("MHR_Overlay.UI.drawing"); +end + +return ailment_buildup; \ No newline at end of file diff --git a/reframework/autorun/MHR_Overlay/Monsters/ailment_hook.lua b/reframework/autorun/MHR_Overlay/Monsters/ailment_hook.lua index d5bab11..d65d959 100644 --- a/reframework/autorun/MHR_Overlay/Monsters/ailment_hook.lua +++ b/reframework/autorun/MHR_Overlay/Monsters/ailment_hook.lua @@ -54,7 +54,8 @@ function ailment_hook.poison_proc(poison_param) monster = small_monster.get_monster(enemy); end - ailments.calculate_ailment_contribution(monster, ailments.poison_id); + monster.ailments[ailments.poison_id].cashed_buildup_share = monster.ailments[ailments.poison_id].buildup_share; + ailments.clear_ailment_contribution(monster, ailments.poison_id); end function ailment_hook.stock_damage() diff --git a/reframework/autorun/MHR_Overlay/Monsters/ailments.lua b/reframework/autorun/MHR_Overlay/Monsters/ailments.lua index 82675b9..97473cd 100644 --- a/reframework/autorun/MHR_Overlay/Monsters/ailments.lua +++ b/reframework/autorun/MHR_Overlay/Monsters/ailments.lua @@ -3,6 +3,7 @@ local player; local language; local config; local ailment_UI_entity; +local ailment_buildup_UI_entity; local time; local small_monster; local large_monster; @@ -139,13 +140,65 @@ function ailments.init_ailments() _ailments[ailments.poison_id].buildup = {}; _ailments[ailments.poison_id].buildup_share = {}; + _ailments[ailments.poison_id].cashed_buildup_share = {}; _ailments[ailments.blast_id].buildup = {}; _ailments[ailments.blast_id].buildup_share = {}; + _ailments[ailments.stun_id].buildup = {}; + _ailments[ailments.stun_id].buildup_share = {}; + + ailments.init_ailment_buildup_UI(_ailments); + return _ailments; end +function ailments.init_ailment_buildup_UI(_ailments) + _ailments[ailments.stun_id].ailment_buildup_dynamic_UI = ailment_buildup_UI_entity.new( + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar, + config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar, + config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label, + config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label, + config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label, + config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label + ); + + _ailments[ailments.stun_id].ailment_buildup_static_UI = ailment_buildup_UI_entity.new( + config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar, + config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar, + config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label, + config.current_config.large_monster_UI.static.ailment_buildups.player_name_label, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label, + config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label, + config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label + ); + + _ailments[ailments.stun_id].ailment_buildup_highlighted_UI = ailment_buildup_UI_entity.new( + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar, + config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar, + config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label, + config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label, + config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label, + config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label + ); + + _ailments[ailments.stun_id].ailment_buildup_small_UI = ailment_buildup_UI_entity.new( + config.current_config.small_monster_UI.ailment_buildups.buildup_bar, + config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar, + config.current_config.small_monster_UI.ailment_buildups.ailment_name_label, + config.current_config.small_monster_UI.ailment_buildups.player_name_label, + config.current_config.small_monster_UI.ailment_buildups.buildup_value_label, + config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label, + config.current_config.small_monster_UI.ailment_buildups.total_buildup_label, + config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label + ); +end + local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase"); local enemy_condition_damage_param_base_type_def = sdk.find_type_definition("snow.enemy.EnemyConditionDamageParamBase"); @@ -218,6 +271,10 @@ function ailments.update_ailments(enemy, monster) if activate_count ~= nil then if activate_count ~= monster.ailments[id].activate_count then ailments.update_last_change_time(monster, id); + + if id == ailments.stun_id then + ailments.clear_ailment_contribution(monster, ailments.stun_id); + end end monster.ailments[id].activate_count = activate_count; @@ -267,7 +324,7 @@ function ailments.update_ailments(enemy, monster) monster.ailments[id].duration = duration; end - if duration ~= 0 then + if duration ~= 0 and duration ~= nil then monster.ailments[id].timer_percentage = timer / monster.ailments[id].duration; end @@ -286,14 +343,6 @@ function ailments.update_ailments(enemy, monster) monster.ailments[id].minutes_left = minutes_left; monster.ailments[id].seconds_left = seconds_left; end - - if is_active ~= nil then - if is_active ~= monster.ailments[id].is_active then - ailments.update_last_change_time(monster, id); - end - - monster.ailments[id].is_active = is_active; - end end end @@ -323,12 +372,11 @@ function ailments.update_poison_blast(monster, poison_param, blast_param) if activate_count > monster.ailments[ailments.blast_id].activate_count then monster.ailments[ailments.blast_id].activate_count = activate_count; - ailments.calculate_ailment_contribution(monster, ailments.blast_id); - local blast_damage = blast_damage_method:call(blast_param); local blast_adjust_rate = blast_adjust_rate_method:call(blast_param); ailments.apply_ailment_damage(monster, ailments.blast_id, blast_damage * blast_adjust_rate); + ailments.clear_ailment_contribution(monster, ailments.blast_id); end end end @@ -643,7 +691,8 @@ function ailments.draw_small(monster, ailments_position_on_screen, opacity_scale end function ailments.apply_ailment_buildup(monster, attacker_id, ailment_type, ailment_buildup) - if monster == nil or player == nil or (ailment_type ~= ailments.poison_id and ailment_type ~= ailments.blast_id) then + + if monster == nil or player == nil or (ailment_type ~= ailments.poison_id and ailment_type ~= ailments.blast_id and ailment_type ~= ailments.stun_id) then return; end @@ -654,6 +703,8 @@ function ailments.apply_ailment_buildup(monster, attacker_id, ailment_type, ailm -- accumulate this buildup for this attacker monster.ailments[ailment_type].buildup[attacker_id] = (monster.ailments[ailment_type].buildup[attacker_id] or 0) + ailment_buildup; + + ailments.calculate_ailment_contribution(monster, ailment_type); end -- Code by coavins @@ -667,8 +718,12 @@ function ailments.calculate_ailment_contribution(monster, ailment_type) for attacker_id, player_buildup in pairs(monster.ailments[ailment_type].buildup) do -- update ratio for this attacker monster.ailments[ailment_type].buildup_share[attacker_id] = player_buildup / total; - -- clear accumulated buildup for this attacker - -- they have to start over to earn a share of next ailment trigger + end +end + +function ailments.clear_ailment_contribution(monster, ailment_type) + for attacker_id, player_buildup in pairs(monster.ailments[ailment_type].buildup) do + monster.ailments[ailment_type].buildup_share[attacker_id] = 0; monster.ailments[ailment_type].buildup[attacker_id] = 0; end end @@ -681,8 +736,10 @@ function ailments.apply_ailment_damage(monster, ailment_type, ailment_damage) end local damage_source_type = ""; + local buildup_share = monster.ailments[ailment_type].buildup_share; if ailment_type == ailments.poison_id then damage_source_type = "poison"; + buildup_share = monster.ailments[ailment_type]._cached_buildup_share; elseif ailment_type == ailments.blast_id then damage_source_type = "blast"; else @@ -693,7 +750,7 @@ function ailments.apply_ailment_damage(monster, ailment_type, ailment_damage) -- split up damage according to ratio of buildup on boss for this type - for attacker_id, percentage in pairs(monster.ailments[ailment_type].buildup_share) do + for attacker_id, percentage in pairs(buildup_share) do local damage_portion = damage * percentage; local damage_object = {}; @@ -719,6 +776,7 @@ function ailments.init_module() language = require("MHR_Overlay.Misc.language"); config = require("MHR_Overlay.Misc.config"); ailment_UI_entity = require("MHR_Overlay.UI.UI_Entities.ailment_UI_entity"); + ailment_buildup_UI_entity = require("MHR_Overlay.UI.UI_Entities.ailment_buildup_UI_entity"); time = require("MHR_Overlay.Game_Handler.time"); small_monster = require("MHR_Overlay.Monsters.small_monster"); large_monster = require("MHR_Overlay.Monsters.large_monster"); diff --git a/reframework/autorun/MHR_Overlay/Monsters/large_monster.lua b/reframework/autorun/MHR_Overlay/Monsters/large_monster.lua index 5e8a644..0b262fb 100644 --- a/reframework/autorun/MHR_Overlay/Monsters/large_monster.lua +++ b/reframework/autorun/MHR_Overlay/Monsters/large_monster.lua @@ -8,6 +8,7 @@ local health_UI_entity; local stamina_UI_entity; local rage_UI_entity; local ailment_UI_entity; +local ailment_buildup; local screen; local drawing; local ailments; @@ -688,6 +689,11 @@ function large_monster.draw_dynamic(monster, position_on_screen, opacity_scale) x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.ailments.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier, y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.ailments.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier }; + + local ailment_buildups_position_on_screen = { + x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.ailment_buildups.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.ailment_buildups.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier + }; health_UI_entity.draw(monster, monster.health_dynamic_UI, health_position_on_screen, opacity_scale); drawing.draw_capture_line(monster.health_dynamic_UI.bar, health_position_on_screen, opacity_scale, monster.capture_percentage); @@ -707,6 +713,7 @@ function large_monster.draw_dynamic(monster, position_on_screen, opacity_scale) end ailments.draw_dynamic(monster, ailments_position_on_screen, opacity_scale); + ailment_buildup.draw_dynamic(monster, ailment_buildups_position_on_screen, opacity_scale); end function large_monster.draw_static(monster, position_on_screen, opacity_scale) @@ -762,6 +769,11 @@ function large_monster.draw_static(monster, position_on_screen, opacity_scale) y = position_on_screen.y + config.current_config.large_monster_UI.static.ailments.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier }; + local ailment_buildups_position_on_screen = { + x = position_on_screen.x + config.current_config.large_monster_UI.static.ailment_buildups.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = position_on_screen.y + config.current_config.large_monster_UI.static.ailment_buildups.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier + }; + health_UI_entity.draw(monster, monster.health_static_UI, health_position_on_screen, opacity_scale); drawing.draw_capture_line(monster.health_static_UI.bar, health_position_on_screen, opacity_scale, monster.capture_percentage); @@ -773,13 +785,14 @@ function large_monster.draw_static(monster, position_on_screen, opacity_scale) if config.current_config.large_monster_UI.static.ailments.settings.offset_is_relative_to_parts then if last_part_position_on_screen ~= nil then ailments_position_on_screen = { - x = last_part_position_on_screen.x + config.current_config.large_monster_UI.highlighted.ailments.relative_offset.x * config.current_config.global_settings.modifiers.global_scale_modifier, - y = last_part_position_on_screen.y + config.current_config.large_monster_UI.highlighted.ailments.relative_offset.y * config.current_config.global_settings.modifiers.global_scale_modifier + x = last_part_position_on_screen.x + config.current_config.large_monster_UI.static.ailments.relative_offset.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = last_part_position_on_screen.y + config.current_config.large_monster_UI.static.ailments.relative_offset.y * config.current_config.global_settings.modifiers.global_scale_modifier }; end end ailments.draw_static(monster, ailments_position_on_screen, opacity_scale); + ailment_buildup.draw_static(monster, ailment_buildups_position_on_screen, opacity_scale); end function large_monster.draw_highlighted(monster, position_on_screen, opacity_scale) @@ -834,6 +847,11 @@ function large_monster.draw_highlighted(monster, position_on_screen, opacity_sca y = position_on_screen.y + config.current_config.large_monster_UI.highlighted.ailments.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier }; + local ailment_buildups_position_on_screen = { + x = position_on_screen.x + config.current_config.large_monster_UI.highlighted.ailment_buildups.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = position_on_screen.y + config.current_config.large_monster_UI.highlighted.ailment_buildups.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier + }; + health_UI_entity.draw(monster, monster.health_highlighted_UI, health_position_on_screen, opacity_scale); drawing.draw_capture_line(monster.health_highlighted_UI.bar, health_position_on_screen, opacity_scale, monster.capture_percentage); @@ -842,8 +860,6 @@ function large_monster.draw_highlighted(monster, position_on_screen, opacity_sca local last_part_position_on_screen = body_part.draw_highlighted(monster, parts_position_on_screen, opacity_scale); - - if config.current_config.large_monster_UI.highlighted.ailments.settings.offset_is_relative_to_parts then if last_part_position_on_screen ~= nil then ailments_position_on_screen = { @@ -854,6 +870,7 @@ function large_monster.draw_highlighted(monster, position_on_screen, opacity_sca end ailments.draw_highlighted(monster, ailments_position_on_screen, opacity_scale); + ailment_buildup.draw_highlighted(monster, ailment_buildups_position_on_screen, opacity_scale); end function large_monster.init_list() @@ -877,6 +894,7 @@ function large_monster.init_module() ailments = require("MHR_Overlay.Monsters.ailments"); player = require("MHR_Overlay.Damage_Meter.player"); time = require("MHR_Overlay.Game_Handler.time"); + ailment_buildup = require("MHR_Overlay.Monsters.ailment_buildup"); end return large_monster; \ No newline at end of file diff --git a/reframework/autorun/MHR_Overlay/Monsters/small_monster.lua b/reframework/autorun/MHR_Overlay/Monsters/small_monster.lua index 0fc89e3..3463032 100644 --- a/reframework/autorun/MHR_Overlay/Monsters/small_monster.lua +++ b/reframework/autorun/MHR_Overlay/Monsters/small_monster.lua @@ -9,6 +9,7 @@ local screen; local drawing; local ailments; local ailment_UI_entity; +local ailment_buildup; small_monster.list = {}; @@ -282,11 +283,18 @@ function small_monster.draw(monster, position_on_screen, opacity_scale) x = position_on_screen.x + config.current_config.small_monster_UI.ailments.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier, y = position_on_screen.y + config.current_config.small_monster_UI.ailments.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier }; + + local ailment_buildups_position_on_screen = { + x = position_on_screen.x + config.current_config.small_monster_UI.ailment_buildups.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier, + y = position_on_screen.y + config.current_config.small_monster_UI.ailment_buildups.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier + }; health_UI_entity.draw(monster, monster.health_UI, health_position_on_screen, opacity_scale); stamina_UI_entity.draw(monster, monster.stamina_UI, stamina_position_on_screen, opacity_scale); ailments.draw_small(monster, ailments_position_on_screen, opacity_scale); + ailment_buildup.draw_small(monster, ailment_buildups_position_on_screen, opacity_scale); + end function small_monster.init_list() @@ -304,6 +312,7 @@ function small_monster.init_module() drawing = require("MHR_Overlay.UI.drawing"); ailments = require("MHR_Overlay.Monsters.ailments"); ailment_UI_entity = require("MHR_Overlay.UI.UI_Entities.ailment_UI_entity"); + ailment_buildup = require("MHR_Overlay.Monsters.ailment_buildup"); end return small_monster; \ No newline at end of file diff --git a/reframework/autorun/MHR_Overlay/UI/UI_Entities/ailment_buildup_UI_entity.lua b/reframework/autorun/MHR_Overlay/UI/UI_Entities/ailment_buildup_UI_entity.lua new file mode 100644 index 0000000..cea3254 --- /dev/null +++ b/reframework/autorun/MHR_Overlay/UI/UI_Entities/ailment_buildup_UI_entity.lua @@ -0,0 +1,154 @@ +local ailment_buildup_UI_entity = {}; +local table_helpers; +local drawing; +local config; +local player; +local language; + +function ailment_buildup_UI_entity.new(buildup_bar, highlighted_buildup_bar, ailment_name_label, player_name_label, buildup_value_label, buildup_percentage_label, total_buildup_label, total_buildup_value_label) + local entity = {}; + + + --entity.visibility = visibility; + entity.buildup_bar = table_helpers.deep_copy(buildup_bar); + entity.highlighted_buildup_bar = table_helpers.deep_copy(highlighted_buildup_bar); + entity.ailment_name_label = table_helpers.deep_copy(ailment_name_label); + entity.player_name_label = table_helpers.deep_copy(player_name_label); + entity.buildup_value_label = table_helpers.deep_copy(buildup_value_label); + entity.buildup_percentage_label = table_helpers.deep_copy(buildup_percentage_label); + entity.total_buildup_label = table_helpers.deep_copy(total_buildup_label); + entity.total_buildup_value_label = table_helpers.deep_copy(total_buildup_value_label); + + entity.buildup_bar.offset.x = entity.buildup_bar.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.buildup_bar.offset.y = entity.buildup_bar.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.buildup_bar.size.width = entity.buildup_bar.size.width * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.buildup_bar.size.height = entity.buildup_bar.size.height * config.current_config.global_settings.modifiers.global_scale_modifier; + + entity.highlighted_buildup_bar.offset.x = entity.highlighted_buildup_bar.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.highlighted_buildup_bar.offset.y = entity.highlighted_buildup_bar.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.highlighted_buildup_bar.size.width = entity.highlighted_buildup_bar.size.width * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.highlighted_buildup_bar.size.height = entity.highlighted_buildup_bar.size.height * config.current_config.global_settings.modifiers.global_scale_modifier; + + entity.player_name_label.offset.x = entity.player_name_label.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.player_name_label.offset.y = entity.player_name_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier; + + entity.buildup_value_label.offset.x = entity.buildup_value_label.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.buildup_value_label.offset.y = entity.buildup_value_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier; + + entity.buildup_percentage_label.offset.x = entity.buildup_percentage_label.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.buildup_percentage_label.offset.y = entity.buildup_percentage_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier; + + entity.total_buildup_label.offset.x = entity.total_buildup_label.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.total_buildup_label.offset.y = entity.total_buildup_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier; + + entity.total_buildup_value_label.offset.x = entity.total_buildup_value_label.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier; + entity.total_buildup_value_label.offset.y = entity.total_buildup_value_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier; + + return entity; +end + +function ailment_buildup_UI_entity.draw_dynamic(_player, ailment_buildup_UI, position_on_screen, opacity_scale, top_buildup) + + local player_buildup_bar_percentage = 0; + if config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.buildup_bar_relative_to == "Total Buildup" then + player_buildup_bar_percentage = _player.buildup_share; + else + if top_buildup ~= 0 then + player_buildup_bar_percentage = _player.buildup / top_buildup; + end + end + + if _player.id == player.myself.id and config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.highlighted_bar == "Me" then + drawing.draw_bar(ailment_buildup_UI.highlighted_buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + elseif config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.highlighted_bar == "Top Buildup" and _player.buildup == top_buildup then + drawing.draw_bar(ailment_buildup_UI.highlighted_buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + else + drawing.draw_bar(ailment_buildup_UI.buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + end + + drawing.draw_label(ailment_buildup_UI.player_name_label, position_on_screen, opacity_scale, player.get_player(_player.id).name); + drawing.draw_label(ailment_buildup_UI.buildup_value_label, position_on_screen, opacity_scale, _player.buildup); + drawing.draw_label(ailment_buildup_UI.buildup_percentage_label, position_on_screen, opacity_scale, 100 * _player.buildup_share); +end + +function ailment_buildup_UI_entity.draw_static(_player, ailment_buildup_UI, position_on_screen, opacity_scale, top_buildup) + + local player_buildup_bar_percentage = 0; + if config.current_config.large_monster_UI.static.ailment_buildups.settings.buildup_bar_relative_to == "Total Buildup" then + player_buildup_bar_percentage = _player.buildup_share; + else + if top_buildup ~= 0 then + player_buildup_bar_percentage = _player.buildup / top_buildup; + end + end + + if _player.id == player.myself.id and config.current_config.large_monster_UI.static.ailment_buildups.settings.highlighted_bar == "Me" then + drawing.draw_bar(ailment_buildup_UI.highlighted_buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + elseif config.current_config.large_monster_UI.static.ailment_buildups.settings.highlighted_bar == "Top Buildup" and _player.buildup == top_buildup then + drawing.draw_bar(ailment_buildup_UI.highlighted_buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + else + drawing.draw_bar(ailment_buildup_UI.buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + end + + drawing.draw_label(ailment_buildup_UI.player_name_label, position_on_screen, opacity_scale, player.get_player(_player.id).name); + drawing.draw_label(ailment_buildup_UI.buildup_value_label, position_on_screen, opacity_scale, _player.buildup); + drawing.draw_label(ailment_buildup_UI.buildup_percentage_label, position_on_screen, opacity_scale, 100 * _player.buildup_share); +end + +function ailment_buildup_UI_entity.draw_highlighted(_player, ailment_buildup_UI, position_on_screen, opacity_scale, top_buildup) + + local player_buildup_bar_percentage = 0; + if config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.buildup_bar_relative_to == "Total Buildup" then + player_buildup_bar_percentage = _player.buildup_share; + else + if top_buildup ~= 0 then + player_buildup_bar_percentage = _player.buildup / top_buildup; + end + end + + if _player.id == player.myself.id and config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.highlighted_bar == "Me" then + drawing.draw_bar(ailment_buildup_UI.highlighted_buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + elseif config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.highlighted_bar == "Top Buildup" and _player.buildup == top_buildup then + drawing.draw_bar(ailment_buildup_UI.highlighted_buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + else + drawing.draw_bar(ailment_buildup_UI.buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + end + + drawing.draw_label(ailment_buildup_UI.player_name_label, position_on_screen, opacity_scale, player.get_player(_player.id).name); + drawing.draw_label(ailment_buildup_UI.buildup_value_label, position_on_screen, opacity_scale, _player.buildup); + drawing.draw_label(ailment_buildup_UI.buildup_percentage_label, position_on_screen, opacity_scale, 100 * _player.buildup_share); +end + +function ailment_buildup_UI_entity.draw_small(_player, ailment_buildup_UI, position_on_screen, opacity_scale, top_buildup) + + local player_buildup_bar_percentage = 0; + if config.current_config.small_monster_UI.ailment_buildups.settings.buildup_bar_relative_to == "Total Buildup" then + player_buildup_bar_percentage = _player.buildup_share; + else + if top_buildup ~= 0 then + player_buildup_bar_percentage = _player.buildup / top_buildup; + end + end + + if _player.id == player.myself.id and config.current_config.small_monster_UI.ailment_buildups.settings.highlighted_bar == "Me" then + drawing.draw_bar(ailment_buildup_UI.highlighted_buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + elseif config.current_config.small_monster_UI.ailment_buildups.settings.highlighted_bar == "Top Buildup" and _player.buildup == top_buildup then + drawing.draw_bar(ailment_buildup_UI.highlighted_buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + else + drawing.draw_bar(ailment_buildup_UI.buildup_bar, position_on_screen, opacity_scale, player_buildup_bar_percentage); + end + + drawing.draw_label(ailment_buildup_UI.player_name_label, position_on_screen, opacity_scale, player.get_player(_player.id).name); + drawing.draw_label(ailment_buildup_UI.buildup_value_label, position_on_screen, opacity_scale, _player.buildup); + drawing.draw_label(ailment_buildup_UI.buildup_percentage_label, position_on_screen, opacity_scale, 100 * _player.buildup_share); +end + +function ailment_buildup_UI_entity.init_module() + table_helpers = require("MHR_Overlay.Misc.table_helpers"); + drawing = require("MHR_Overlay.UI.drawing"); + config = require("MHR_Overlay.Misc.config"); + player = require("MHR_Overlay.Damage_Meter.player"); + language = require("MHR_Overlay.Misc.language"); +end + +return ailment_buildup_UI_entity; \ No newline at end of file diff --git a/reframework/autorun/MHR_Overlay/UI/customization_menu.lua b/reframework/autorun/MHR_Overlay/UI/customization_menu.lua index d6a8647..b3a5053 100644 --- a/reframework/autorun/MHR_Overlay/UI/customization_menu.lua +++ b/reframework/autorun/MHR_Overlay/UI/customization_menu.lua @@ -32,7 +32,11 @@ customization_menu.displayed_anchor_types = {}; customization_menu.displayed_ailments_sorting_types = {}; customization_menu.displayed_monster_UI_sorting_types = {}; -customization_menu.displayed_large_monster_UI_parts_sorting_types = {}; +customization_menu.displayed_monster_UI_parts_sorting_types = {}; + +customization_menu.displayed_ailment_buildups_sorting_types = {}; +customization_menu.displayed_highlighted_buildup_bar_types = {}; +customization_menu.displayed_buildup_bar_relative_types = {}; customization_menu.displayed_damage_meter_UI_highlighted_bar_types = {}; customization_menu.displayed_damage_meter_UI_damage_bar_relative_types = {}; @@ -45,6 +49,10 @@ customization_menu.anchor_types = {}; customization_menu.monster_UI_sorting_types = {}; customization_menu.ailments_sorting_types = {}; +customization_menu.ailment_buildups_sorting_types = {}; +customization_menu.highlighted_buildup_bar_types = {}; +customization_menu.buildup_bar_relative_types = {}; + customization_menu.damage_meter_UI_highlighted_bar_types = {}; customization_menu.damage_meter_UI_damage_bar_relative_types = {}; customization_menu.damage_meter_UI_my_damage_bar_location_types = {}; @@ -66,6 +74,9 @@ customization_menu.fonts = {"Arial", "Arial Black", "Bahnschrift", "Calibri", "C customization_menu.small_monster_UI_orientation_index = 1; customization_menu.small_monster_UI_sorting_type_index = 1; customization_menu.small_monster_UI_ailments_sorting_type_index = 1; +customization_menu.small_monster_UI_ailment_buildups_sorting_type_index = 1; +customization_menu.small_monster_UI_highlighted_buildup_bar_index = 1; +customization_menu.small_monster_UI_buildup_bar_relative_index = 1; customization_menu.large_monster_UI_orientation_index = 1; customization_menu.large_monster_UI_sorting_type_index = 1; @@ -79,6 +90,18 @@ customization_menu.large_monster_dynamic_UI_ailments_sorting_type_index = 1; customization_menu.large_monster_static_UI_ailments_sorting_type_index = 1; customization_menu.large_monster_highlighted_UI_ailments_sorting_type_index = 1; +customization_menu.large_monster_dynamic_UI_ailment_buildups_sorting_type_index = 1; +customization_menu.large_monster_static_UI_ailment_buildups_sorting_type_index = 1; +customization_menu.large_monster_highlighted_UI_ailment_buildups_sorting_type_index = 1; + +customization_menu.large_monster_dynamic_UI_highlighted_buildup_bar_index = 1; +customization_menu.large_monster_static_UI_highlighted_buildup_bar_index = 1; +customization_menu.large_monster_highlighted_UI_highlighted_buildup_bar_index = 1; + +customization_menu.large_monster_dynamic_UI_buildup_bar_relative_index = 1; +customization_menu.large_monster_static_UI_buildup_bar_relative_index = 1; +customization_menu.large_monster_highlighted_UI_buildup_bar_relative_index = 1; + customization_menu.damage_meter_UI_orientation_index = 1; customization_menu.damage_meter_UI_sorting_type_index = 1; customization_menu.damage_meter_UI_highlighted_bar_index = 1; @@ -93,8 +116,6 @@ customization_menu.damage_meter_UI_anchor_index = 1; customization_menu.selected_UI_font_index = 9; - - customization_menu.all_UI_waiting_for_key = false; customization_menu.small_monster_UI_waiting_for_key = false; @@ -132,10 +153,15 @@ function customization_menu.init() customization_menu.displayed_anchor_types = {language.current_language.customization_menu.top_left, language.current_language.customization_menu.top_right, language.current_language.customization_menu.bottom_left, language.current_language.customization_menu.bottom_right}; customization_menu.displayed_monster_UI_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage, language.current_language.customization_menu.distance}; - customization_menu.displayed_large_monster_UI_parts_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage}; + customization_menu.displayed_monster_UI_parts_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage}; customization_menu.displayed_ailments_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.buildup, language.current_language.customization_menu.buildup_percentage}; + customization_menu.displayed_ailment_buildups_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.buildup, language.current_language.customization_menu.buildup_percentage}; + customization_menu.displayed_highlighted_buildup_bar_types = {language.current_language.customization_menu.me, language.current_language.customization_menu.top_buildup,language.current_language.customization_menu.none}; + customization_menu.displayed_buildup_bar_relative_types = {language.current_language.customization_menu.total_buildup, language.current_language.customization_menu.top_buildup}; + + customization_menu.displayed_damage_meter_UI_highlighted_bar_types = {language.current_language.customization_menu.me, language.current_language.customization_menu.top_damage, language.current_language.customization_menu.top_dps, language.current_language.customization_menu.none}; customization_menu.displayed_damage_meter_UI_damage_bar_relative_types = {language.current_language.customization_menu.total_damage, language.current_language.customization_menu.top_damage}; customization_menu.displayed_damage_meter_UI_my_damage_bar_location_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.first, language.current_language.customization_menu.last}; @@ -152,6 +178,11 @@ function customization_menu.init() customization_menu.large_monster_UI_parts_sorting_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.health, language.default_language.customization_menu.health_percentage}; customization_menu.ailments_sorting_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.buildup, language.default_language.customization_menu.buildup_percentage}; + + customization_menu.ailment_buildups_sorting_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.buildup, language.default_language.customization_menu.buildup_percentage}; + customization_menu.highlighted_buildup_bar_types = {language.default_language.customization_menu.me, language.default_language.customization_menu.top_buildup,language.default_language.customization_menu.none}; + customization_menu.buildup_bar_relative_types = {language.default_language.customization_menu.total_buildup, language.default_language.customization_menu.top_buildup}; + customization_menu.damage_meter_UI_highlighted_bar_types = {language.default_language.customization_menu.me, language.default_language.customization_menu.top_damage, language.default_language.customization_menu.top_dps, language.default_language.customization_menu.none}; customization_menu.damage_meter_UI_damage_bar_relative_types = {language.default_language.customization_menu.total_damage, language.default_language.customization_menu.top_damage}; customization_menu.damage_meter_UI_my_damage_bar_location_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.first, language.default_language.customization_menu.last}; @@ -171,6 +202,12 @@ function customization_menu.init() customization_menu.small_monster_UI_ailments_sorting_type_index = table_helpers.find_index(customization_menu.ailments_sorting_types, config.current_config.small_monster_UI.ailments.sorting.type, false); + customization_menu.small_monster_UI_ailment_buildups_sorting_type_index = table_helpers.find_index(customization_menu.ailment_buildups_sorting_types, + config.current_config.small_monster_UI.ailment_buildups.sorting.type, false); + customization_menu.small_monster_UI_highlighted_buildup_bar_index = table_helpers.find_index(customization_menu.highlighted_buildup_bar_types, + config.current_config.small_monster_UI.ailment_buildups.settings.highlighted_bar, false); + customization_menu.small_monster_UI_buildup_bar_relative_index = table_helpers.find_index(customization_menu.buildup_bar_relative_types, + config.current_config.small_monster_UI.ailment_buildups.settings.buildup_bar_relative_to, false); customization_menu.large_monster_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types, @@ -194,7 +231,8 @@ function customization_menu.init() customization_menu.large_monster_UI_parts_sorting_types, config.current_config.large_monster_UI.highlighted.parts.sorting.type, false); - + + customization_menu.large_monster_dynamic_UI_ailments_sorting_type_index = table_helpers.find_index( customization_menu.ailments_sorting_types, config.current_config.large_monster_UI.dynamic.ailments.sorting.type, false); @@ -208,6 +246,31 @@ function customization_menu.init() config.current_config.large_monster_UI.highlighted.ailments.sorting.type, false); + + customization_menu.large_monster_dynamic_UI_ailment_buildups_sorting_type_index = table_helpers.find_index(customization_menu.ailment_buildups_sorting_types, + config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.type, false); + customization_menu.large_monster_static_UI_ailment_buildups_sorting_type_index = table_helpers.find_index(customization_menu.ailment_buildups_sorting_types, + config.current_config.large_monster_UI.static.ailment_buildups.sorting.type, false); + customization_menu.large_monster_highlighted_UI_ailment_buildups_sorting_type_index = table_helpers.find_index(customization_menu.ailment_buildups_sorting_types, + config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.type, false); + + + customization_menu.large_monster_dynamic_UI_highlighted_buildup_bar_index = table_helpers.find_index(customization_menu.highlighted_buildup_bar_types, + config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.highlighted_bar, false); + customization_menu.large_monster_static_UI_highlighted_buildup_bar_index = table_helpers.find_index(customization_menu.highlighted_buildup_bar_types, + config.current_config.large_monster_UI.static.ailment_buildups.settings.highlighted_bar, false); + customization_menu.large_monster_highlighted_UI_highlighted_buildup_bar_index = table_helpers.find_index(customization_menu.highlighted_buildup_bar_types, + config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.highlighted_bar, false); + + customization_menu.large_monster_dynamic_UI_buildup_bar_relative_index = table_helpers.find_index(customization_menu.buildup_bar_relative_types, + config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.buildup_bar_relative_to, false); + customization_menu.large_monster_static_UI_buildup_bar_relative_index = table_helpers.find_index(customization_menu.buildup_bar_relative_types, + config.current_config.large_monster_UI.static.ailment_buildups.settings.buildup_bar_relative_to, false); + customization_menu.large_monster_highlighted_UI_buildup_bar_relative_index = table_helpers.find_index(customization_menu.buildup_bar_relative_types, + config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.buildup_bar_relative_to, false); + + + customization_menu.damage_meter_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types, config.current_config.damage_meter_UI.settings.orientation, false); @@ -245,6 +308,7 @@ function customization_menu.init() customization_menu.damage_meter_UI_anchor_index = table_helpers.find_index(customization_menu.anchor_types, config.current_config.damage_meter_UI.position.anchor, false); + end function customization_menu.draw() @@ -2007,6 +2071,655 @@ function customization_menu.draw() imgui.tree_pop(); end + if imgui.tree_node(language.current_language.customization_menu.ailment_buildups) then + changed, config.current_config.small_monster_UI.ailment_buildups.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.small_monster_UI.ailments.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.players_spacing) then + changed, config.current_config.small_monster_UI.ailment_buildups.players_spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.players_spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.players_spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.players_spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.ailments_spacing) then + changed, config.current_config.small_monster_UI.ailment_buildups.ailments_spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.ailments_spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.ailments_spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.ailments_spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.settings) then + changed, customization_menu.small_monster_UI_highlighted_buildup_bar_index = + imgui.combo(language.current_language.customization_menu.highlighted_bar, customization_menu.small_monster_UI_highlighted_buildup_bar_index, + customization_menu.displayed_highlighted_buildup_bar_types); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + if changed then + config.current_config.small_monster_UI.ailment_buildups.settings.highlighted_bar = + customization_menu.highlighted_buildup_bar_types[customization_menu.small_monster_UI_highlighted_buildup_bar_index]; + end + + changed, customization_menu.small_monster_UI_buildup_bar_relative_index = + imgui.combo(language.current_language.customization_menu.buildup_bars_are_relative_to, customization_menu.small_monster_UI_buildup_bar_relative_index, + customization_menu.displayed_buildup_bar_relative_types); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if changed then + config.current_config.small_monster_UI.ailment_buildups.settings.buildup_bar_relative_to = + customization_menu.displayed_buildup_bar_relative_types[customization_menu.small_monster_UI_damage_bar_relative_index]; + end + + changed, config.current_config.small_monster_UI.ailment_buildups.settings.time_limit = imgui.drag_float(language.current_language.customization_menu.time_limit, + config.current_config.small_monster_UI.ailment_buildups.settings.time_limit, 0.1, 0, 99999, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.filter) then + changed, config.current_config.small_monster_UI.ailment_buildups.filter.stun = imgui.checkbox(language.current_language.ailments.stun, + config.current_config.small_monster_UI.ailment_buildups.filter.stun); + + changed, config.current_config.small_monster_UI.ailment_buildups.filter.poison = imgui.checkbox(language.current_language.ailments.poison, + config.current_config.small_monster_UI.ailment_buildups.filter.poison); + + changed, config.current_config.small_monster_UI.ailment_buildups.filter.blast = imgui.checkbox(language.current_language.ailments.blast, + config.current_config.small_monster_UI.ailment_buildups.filter.blast); + + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.sorting) then + changed, customization_menu.small_monster_UI_ailment_buildups_sorting_type_index = imgui.combo(language.current_language.customization_menu.type, + customization_menu.small_monster_UI_ailment_buildups_sorting_type_index, + customization_menu.ailment_buildups_sorting_types); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if changed then + config.current_config.small_monster_UI.ailment_buildups.sorting.type = + customization_menu.ailment_buildups_sorting_types[customization_menu.small_monster_UI_ailment_buildups_sorting_type_index]; + end + + changed, config.current_config.small_monster_UI.ailment_buildups.sorting.reversed_order = imgui.checkbox( + language.current_language.customization_menu.reversed_order, config.current_config.small_monster_UI.ailment_buildups.sorting.reversed_order); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.ailment_name_label) then + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.include) then + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.include.ailment_name = imgui.checkbox( + language.current_language.customization_menu.ailment_name, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.include.ailment_name); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.include.activation_count = imgui.checkbox( + language.current_language.customization_menu.activation_count, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.include.activation_count); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.shadow.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.ailment_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.player_name_label) then + changed, config.current_config.small_monster_UI.ailment_buildups.player_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.small_monster_UI.ailment_buildups.player_name_label.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.player_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.player_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.player_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.player_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.player_name_label.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.player_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.small_monster_UI.ailment_buildups.player_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.player_name_label.shadow.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.player_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.small_monster_UI.ailment_buildups.player_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.player_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.small_monster_UI.ailment_buildups.player_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.player_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.player_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.buildup_value_label) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.shadow.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.buildup_value_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.buildup_percentage_label) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.shadow.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.buildup_percentage_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.total_buildup_label) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.total_buildup_value_label) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + -- add text format + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.shadow) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.shadow.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.color) then + changed, config.current_config.small_monster_UI.ailment_buildups.total_buildup_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.total_buildup_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.buildup_bar) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.small_monster_UI.ailment_buildups.buildup_bar.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.buildup_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.buildup_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.size) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.small_monster_UI.ailment_buildups.buildup_bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.small_monster_UI.ailment_buildups.buildup_bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.small_monster_UI.ailment_buildups.buildup_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.buildup_bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.background) then + changed, config.current_config.small_monster_UI.ailment_buildups.buildup_bar.colors.background = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.buildup_bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.highlighted_buildup_bar) then + changed, config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.visibility); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.size) then + changed, config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + changed, config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_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.small_monster_UI.ailment_buildups.highlighted_buildup_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.background) then + changed, config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.colors.background = imgui.color_picker_argb("", config.current_config.small_monster_UI.ailment_buildups.highlighted_buildup_bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + small_monster_UI_changed = small_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + imgui.tree_pop(); end @@ -3210,7 +3923,7 @@ function customization_menu.draw() if imgui.tree_node(language.current_language.customization_menu.sorting) then changed, customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = imgui.combo(language.current_language.customization_menu.type, customization_menu.large_monster_dynamic_UI_parts_sorting_type_index, - customization_menu.displayed_large_monster_UI_parts_sorting_types); + customization_menu.displayed_monster_UI_parts_sorting_types); config_changed = config_changed or changed; large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed; if changed then @@ -4088,6 +4801,654 @@ function customization_menu.draw() imgui.tree_pop(); end + if imgui.tree_node(language.current_language.customization_menu.ailment_buildups) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.dynamic.ailments.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.players_spacing) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.players_spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.players_spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.players_spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.players_spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.ailments_spacing) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailments_spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.ailments_spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailments_spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.ailments_spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + if imgui.tree_node(language.current_language.customization_menu.settings) then + changed, customization_menu.large_monster_dynamic_UI_highlighted_buildup_bar_index = + imgui.combo(language.current_language.customization_menu.highlighted_bar, customization_menu.large_monster_dynamic_UI_highlighted_buildup_bar_index, + customization_menu.displayed_highlighted_buildup_bar_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + if changed then + config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.highlighted_bar = + customization_menu.highlighted_buildup_bar_types[customization_menu.large_monster_dynamic_UI_highlighted_buildup_bar_index]; + end + + changed, customization_menu.large_monster_dynamic_UI_buildup_bar_relative_index = + imgui.combo(language.current_language.customization_menu.buildup_bars_are_relative_to, customization_menu.large_monster_dynamic_UI_buildup_bar_relative_index, + customization_menu.displayed_buildup_bar_relative_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if changed then + config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.buildup_bar_relative_to = + customization_menu.displayed_buildup_bar_relative_types[customization_menu.large_monster_dynamic_UI_damage_bar_relative_index]; + end + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.time_limit = imgui.drag_float(language.current_language.customization_menu.time_limit, + config.current_config.large_monster_UI.dynamic.ailment_buildups.settings.time_limit, 0.1, 0, 99999, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.filter) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.stun = imgui.checkbox(language.current_language.ailments.stun, + config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.stun); + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.poison = imgui.checkbox(language.current_language.ailments.poison, + config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.poison); + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.blast = imgui.checkbox(language.current_language.ailments.blast, + config.current_config.large_monster_UI.dynamic.ailment_buildups.filter.blast); + + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.sorting) then + changed, customization_menu.large_monster_dynamic_UI_ailment_buildups_sorting_type_index = imgui.combo(language.current_language.customization_menu.type, + customization_menu.large_monster_dynamic_UI_ailment_buildups_sorting_type_index, + customization_menu.ailment_buildups_sorting_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if changed then + config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.type = + customization_menu.ailment_buildups_sorting_types[customization_menu.large_monster_dynamic_UI_ailment_buildups_sorting_type_index]; + end + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.reversed_order = imgui.checkbox( + language.current_language.customization_menu.reversed_order, config.current_config.large_monster_UI.dynamic.ailment_buildups.sorting.reversed_order); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.ailment_name_label) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.include) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.include.ailment_name = imgui.checkbox( + language.current_language.customization_menu.ailment_name, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.include.ailment_name); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.include.activation_count = imgui.checkbox( + language.current_language.customization_menu.activation_count, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.include.activation_count); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.ailment_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.ailment_name_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.ailment_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.ailment_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.ailment_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.player_name_label) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.player_name_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.player_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.player_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.player_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_value_label) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_value_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_percentage_label) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_percentage_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_percentage_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_percentage_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_percentage_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.total_buildup_label) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.total_buildup_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.total_buildup_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.total_buildup_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.total_buildup_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.total_buildup_value_label) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.total_buildup_value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.total_buildup_value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.total_buildup_value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.total_buildup_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.total_buildup_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_bar) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.buildup_bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.buildup_bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.highlighted_buildup_bar) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.highlighted_buildup_bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.highlighted_buildup_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.dynamic.ailment_buildups.highlighted_buildup_bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.dynamic.ailment_buildups.highlighted_buildup_bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + imgui.tree_pop(); end @@ -5322,7 +6683,7 @@ function customization_menu.draw() if imgui.tree_node(language.current_language.customization_menu.sorting) then changed, customization_menu.large_monster_static_UI_parts_sorting_type_index = imgui.combo(language.current_language.customization_menu.type, customization_menu.large_monster_static_UI_parts_sorting_type_index, - customization_menu.displayed_large_monster_UI_parts_sorting_types); + customization_menu.displayed_monster_UI_parts_sorting_types); config_changed = config_changed or changed; large_monster_static_UI_changed = large_monster_static_UI_changed or changed; if changed then @@ -6198,6 +7559,655 @@ function customization_menu.draw() imgui.tree_pop(); end + if imgui.tree_node(language.current_language.customization_menu.ailment_buildups) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.static.ailments.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.players_spacing) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.players_spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.players_spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.players_spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.players_spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.ailments_spacing) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.ailments_spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.ailments_spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.ailments_spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.ailments_spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.settings) then + changed, customization_menu.large_monster_static_UI_highlighted_buildup_bar_index = + imgui.combo(language.current_language.customization_menu.highlighted_bar, customization_menu.large_monster_static_UI_highlighted_buildup_bar_index, + customization_menu.displayed_highlighted_buildup_bar_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + if changed then + config.current_config.large_monster_UI.static.ailment_buildups.settings.highlighted_bar = + customization_menu.highlighted_buildup_bar_types[customization_menu.large_monster_static_UI_highlighted_buildup_bar_index]; + end + + changed, customization_menu.large_monster_static_UI_buildup_bar_relative_index = + imgui.combo(language.current_language.customization_menu.buildup_bars_are_relative_to, customization_menu.large_monster_static_UI_buildup_bar_relative_index, + customization_menu.displayed_buildup_bar_relative_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if changed then + config.current_config.large_monster_UI.static.ailment_buildups.settings.buildup_bar_relative_to = + customization_menu.displayed_buildup_bar_relative_types[customization_menu.large_monster_static_UI_damage_bar_relative_index]; + end + + changed, config.current_config.large_monster_UI.static.ailment_buildups.settings.time_limit = imgui.drag_float(language.current_language.customization_menu.time_limit, + config.current_config.large_monster_UI.static.ailment_buildups.settings.time_limit, 0.1, 0, 99999, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.filter) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.filter.stun = imgui.checkbox(language.current_language.ailments.stun, + config.current_config.large_monster_UI.static.ailment_buildups.filter.stun); + + changed, config.current_config.large_monster_UI.static.ailment_buildups.filter.poison = imgui.checkbox(language.current_language.ailments.poison, + config.current_config.large_monster_UI.static.ailment_buildups.filter.poison); + + changed, config.current_config.large_monster_UI.static.ailment_buildups.filter.blast = imgui.checkbox(language.current_language.ailments.blast, + config.current_config.large_monster_UI.static.ailment_buildups.filter.blast); + + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.sorting) then + changed, customization_menu.large_monster_static_UI_ailment_buildups_sorting_type_index = imgui.combo(language.current_language.customization_menu.type, + customization_menu.large_monster_static_UI_ailment_buildups_sorting_type_index, + customization_menu.ailment_buildups_sorting_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if changed then + config.current_config.large_monster_UI.static.ailment_buildups.sorting.type = + customization_menu.ailment_buildups_sorting_types[customization_menu.large_monster_static_UI_ailment_buildups_sorting_type_index]; + end + + changed, config.current_config.large_monster_UI.static.ailment_buildups.sorting.reversed_order = imgui.checkbox( + language.current_language.customization_menu.reversed_order, config.current_config.large_monster_UI.static.ailment_buildups.sorting.reversed_order); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.ailment_name_label) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.include) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.include.ailment_name = imgui.checkbox( + language.current_language.customization_menu.ailment_name, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.include.ailment_name); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.include.activation_count = imgui.checkbox( + language.current_language.customization_menu.activation_count, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.include.activation_count); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.ailment_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.ailment_name_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.ailment_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.ailment_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.ailment_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.player_name_label) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.player_name_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.player_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.player_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.player_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_value_label) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.buildup_value_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_percentage_label) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_percentage_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_percentage_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_percentage_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.buildup_percentage_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.total_buildup_label) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.total_buildup_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.total_buildup_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.total_buildup_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.total_buildup_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.total_buildup_value_label) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.total_buildup_value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.total_buildup_value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.total_buildup_value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.total_buildup_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.total_buildup_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_bar) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.buildup_bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.buildup_bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.highlighted_buildup_bar) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.highlighted_buildup_bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.highlighted_buildup_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.static.ailment_buildups.highlighted_buildup_bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.static.ailment_buildups.highlighted_buildup_bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + imgui.tree_pop(); end @@ -7360,7 +9370,7 @@ function customization_menu.draw() 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); + customization_menu.displayed_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 @@ -8236,6 +10246,655 @@ function customization_menu.draw() imgui.tree_pop(); end + if imgui.tree_node(language.current_language.customization_menu.ailment_buildups) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.ailments.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.players_spacing) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.players_spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.players_spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.players_spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.players_spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.ailments_spacing) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailments_spacing.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.ailments_spacing.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailments_spacing.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.ailments_spacing.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.settings) then + changed, customization_menu.large_monster_highlighted_UI_highlighted_buildup_bar_index = + imgui.combo(language.current_language.customization_menu.highlighted_bar, customization_menu.large_monster_highlighted_UI_highlighted_buildup_bar_index, + customization_menu.displayed_highlighted_buildup_bar_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + if changed then + config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.highlighted_bar = + customization_menu.highlighted_buildup_bar_types[customization_menu.large_monster_highlighted_UI_highlighted_buildup_bar_index]; + end + + changed, customization_menu.large_monster_highlighted_UI_buildup_bar_relative_index = + imgui.combo(language.current_language.customization_menu.buildup_bars_are_relative_to, customization_menu.large_monster_highlighted_UI_buildup_bar_relative_index, + customization_menu.displayed_buildup_bar_relative_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if changed then + config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.buildup_bar_relative_to = + customization_menu.displayed_buildup_bar_relative_types[customization_menu.large_monster_highlighted_UI_damage_bar_relative_index]; + end + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.time_limit = imgui.drag_float(language.current_language.customization_menu.time_limit, + config.current_config.large_monster_UI.highlighted.ailment_buildups.settings.time_limit, 0.1, 0, 99999, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.filter) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.stun = imgui.checkbox(language.current_language.ailments.stun, + config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.stun); + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.poison = imgui.checkbox(language.current_language.ailments.poison, + config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.poison); + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.blast = imgui.checkbox(language.current_language.ailments.blast, + config.current_config.large_monster_UI.highlighted.ailment_buildups.filter.blast); + + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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_ailment_buildups_sorting_type_index = imgui.combo(language.current_language.customization_menu.type, + customization_menu.large_monster_highlighted_UI_ailment_buildups_sorting_type_index, + customization_menu.ailment_buildups_sorting_types); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if changed then + config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.type = + customization_menu.ailment_buildups_sorting_types[customization_menu.large_monster_highlighted_UI_ailment_buildups_sorting_type_index]; + end + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.reversed_order = imgui.checkbox( + language.current_language.customization_menu.reversed_order, config.current_config.large_monster_UI.highlighted.ailment_buildups.sorting.reversed_order); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + if imgui.tree_node(language.current_language.customization_menu.ailment_name_label) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.include) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.include.ailment_name = imgui.checkbox( + language.current_language.customization_menu.ailment_name, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.include.ailment_name); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.include.activation_count = imgui.checkbox( + language.current_language.customization_menu.activation_count, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.include.activation_count); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.ailment_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.ailment_name_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.ailment_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.ailment_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.ailment_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.player_name_label) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.player_name_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.player_name_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.player_name_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.player_name_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_value_label) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.offset.y, 0.1, -screen.height, screen.height, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_value_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_percentage_label) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_percentage_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_percentage_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_percentage_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_percentage_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_percentage_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.total_buildup_label) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.total_buildup_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.total_buildup_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.total_buildup_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.total_buildup_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.total_buildup_value_label) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.total_buildup_value_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.offset.x, 0.1, -screen.width, screen.width, + "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.total_buildup_value_label.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.total_buildup_value_label.shadow.visibility = imgui.checkbox( + language.current_language.customization_menu.visible, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.shadow.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.shadow.offset.x = imgui.drag_float( + language.current_language.customization_menu.x, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.shadow.offset.x, 0.1, -screen.width, + screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.shadow.offset.y = imgui.drag_float( + language.current_language.customization_menu.y, config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_value_label.shadow.offset.y, 0.1, -screen.height, + screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.total_buildup_value_label.shadow.color = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.total_buildup_label.shadow.color, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.buildup_bar) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.buildup_bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.buildup_bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.highlighted_buildup_bar) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible, + config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.visibility); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + if imgui.tree_node(language.current_language.customization_menu.offset) then + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.offset.x = imgui.drag_float(language.current_language.customization_menu.x, + config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.offset.x, 0.1, -screen.width, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.offset.y = imgui.drag_float(language.current_language.customization_menu.y, + config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.offset.y, 0.1, -screen.height, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.highlighted_buildup_bar.size.width = imgui.drag_float(language.current_language.customization_menu.width, + config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.size.width, 0.1, 0, screen.width, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + changed, config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.size.height = imgui.drag_float(language.current_language.customization_menu.height, + config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.size.height, 0.1, 0, screen.height, "%.1f"); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.highlighted_buildup_bar.colors.foreground = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.colors.foreground, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_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.ailment_buildups.highlighted_buildup_bar.colors.background = imgui.color_picker_argb("", config.current_config.large_monster_UI.highlighted.ailment_buildups.highlighted_buildup_bar.colors.background, customization_menu.color_picker_flags); + config_changed = config_changed or changed; + large_monster_UI_changed = large_monster_UI_changed or changed; + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + + imgui.tree_pop(); + end + imgui.tree_pop(); end @@ -9431,7 +12090,6 @@ function customization_menu.draw() end end - if config_changed then config.save(); end diff --git a/reframework/data/MHR Overlay/languages/en-us.json b/reframework/data/MHR Overlay/languages/en-us.json index 14ada8b..75d07aa 100644 --- a/reframework/data/MHR Overlay/languages/en-us.json +++ b/reframework/data/MHR Overlay/languages/en-us.json @@ -8,6 +8,7 @@ "rage": "Rage:", "silver": "Silver", "stamina": "Stamina:", + "total_buildup": "Total Buildup", "total_damage": "Total Damage" }, "ailments": { @@ -36,9 +37,11 @@ "UI_font": "UI Font", "UI_font_notice": "Any changes to the font require script reload!", "activation_count": "Activation Count", + "ailment_buildups": "Ailment Buildups", "ailment_name": "Ailment Name", "ailment_name_label": "Ailment Name Label", "ailments": "Ailments", + "ailments_spacing": "Ailment Spacing", "all_UI": "All UI", "anchor": "Anchor", "assign_new_key": "Assign new key", @@ -51,7 +54,11 @@ "bottom_left": "Bottom-Left", "bottom_right": "Bottom-Right", "buildup": "Buildup", + "buildup_bar": "Buildup Bar", + "buildup_bars_are_relative_to": "Buildup Bars are relative to", "buildup_percentage": "Buildup Percentage", + "buildup_percentage_label": "Buildup Percentage Label", + "buildup_value_label": "Buildup Value Label", "capture_line": "Capture Line", "color": "Color", "colors": "Colors", @@ -76,6 +83,7 @@ "endemic_life_UI": "Endemic Life UI", "family": "Family", "fight_time": "Fight Time", + "filter": "Filter", "first": "First", "first_hit": "First Hit", "flinch_count": "Flinch Count", @@ -99,6 +107,7 @@ "hide_undamaged_parts": "Hide Undamaged Parts", "highlighted": "Highlighted (targeted)", "highlighted_bar": "Highlighted Bar", + "highlighted_buildup_bar": "Highlighted Buildup Bar", "highlighted_damage_bar": "Highlighted Damage Bar", "horizontal": "Horizontal", "hotkeys": "Hotkeys", @@ -145,6 +154,7 @@ "player_id": "Player ID", "player_name": "Player Name", "player_name_label": "Player Name Label", + "players_spacing": "Player Spacing", "poison_damage": "Poison Damage", "position": "Position", "press_any_key": "Press any key...", @@ -175,10 +185,14 @@ "time_label": "Time Label", "time_limit": "Time Limit (seconds)", "timer_label": "Timer Label", + "top_buildup": "Top Buildup", "top_damage": "Top Damage", "top_dps": "Top DPS", "top_left": "Top-Left", "top_right": "Top-Right", + "total_buildup": "Total Buildup", + "total_buildup_label": "Total Buildup Label", + "total_buildup_value_label": "Total Buildup Value Label", "total_damage": "Total Damage", "total_damage_label": "Total Damage Label", "total_damage_offset_is_relative": "Total Damage Offset is Relative", diff --git a/reframework/data/MHR Overlay/languages/ko-kr.json b/reframework/data/MHR Overlay/languages/ko-kr.json index abc4684..62482b3 100644 --- a/reframework/data/MHR Overlay/languages/ko-kr.json +++ b/reframework/data/MHR Overlay/languages/ko-kr.json @@ -8,6 +8,7 @@ "rage": "분노:", "silver": "은관", "stamina": "스태미나:", + "total_buildup": "Total Buildup", "total_damage": "총 대미지" }, "ailments": { @@ -36,9 +37,11 @@ "UI_font": "UI 글꼴", "UI_font_notice": "글꼴 변경시 스크립트를 리로드 해야합니다!", "activation_count": "Activation Count", + "ailment_buildups": "Ailment Buildups", "ailment_name": "Ailment Name", "ailment_name_label": "Ailment Name Label", "ailments": "Ailments", + "ailments_spacing": "Ailment Spacing", "all_UI": "모든 UI", "anchor": "기준", "assign_new_key": "새 키를 할당", @@ -52,7 +55,11 @@ "bottom_right": "우하단", "break_count": "파괴 횟수", "buildup": "Buildup", + "buildup_bar": "Buildup Bar", + "buildup_bars_are_relative_to": "Buildup Bars are relative to", "buildup_percentage": "Buildup Percentage", + "buildup_percentage_label": "Buildup Percentage Label", + "buildup_value_label": "Buildup Value Label", "capture_line": "포획 표시선", "color": "색상", "colors": "색상", @@ -77,6 +84,7 @@ "endemic_life_UI": "Endemic Life UI", "family": "글꼴", "fight_time": "전투 시간", + "filter": "Filter", "first": "처음", "first_hit": "첫 공격", "flinch_count": "경직 횟수", @@ -100,6 +108,7 @@ "hide_undamaged_parts": "피해를 입히지 않은 부위 숨김", "highlighted": "타겟 몬스터 표시", "highlighted_bar": "타겟 몬스터 막대", + "highlighted_buildup_bar": "Highlighted Buildup Bar", "highlighted_damage_bar": "타겟 몬스터 대미지 막대", "horizontal": "가로", "hotkeys": "단축키", @@ -146,6 +155,7 @@ "player_id": "헌터 ID", "player_name": "헌터명", "player_name_label": "헌터명 라벨", + "players_spacing": "Player Spacing", "poison_damage": "독 대미지", "position": "위치", "press_any_key": "설정할 키를 누르세요...", @@ -176,10 +186,14 @@ "time_label": "시간 라벨", "time_limit": "Time Limit (seconds)", "timer_label": "타이머 라벨", + "top_buildup": "Top Buildup", "top_damage": "최고 대미지", "top_dps": "최고 DPS", "top_left": "좌상단", "top_right": "우상단", + "total_buildup": "Total Buildup", + "total_buildup_label": "Tota Buildup Label", + "total_buildup_value_label": "Tota Buildup Value Label", "total_damage": "총 대미지", "total_damage_label": "총 대미지 라벨", "total_damage_offset_is_relative": "총 대미지 위치를 상대적 위치로", diff --git a/reframework/data/MHR Overlay/languages/ru-ru.json b/reframework/data/MHR Overlay/languages/ru-ru.json index a6db073..1e87aa9 100644 --- a/reframework/data/MHR Overlay/languages/ru-ru.json +++ b/reframework/data/MHR Overlay/languages/ru-ru.json @@ -8,6 +8,7 @@ "rage": "Ярость:", "silver": "Серебро", "stamina": "Выносливость:", + "total_buildup": "Total Buildup", "total_damage": "Общий урон" }, "ailments": { @@ -36,9 +37,11 @@ "UI_font": "Шрифт интерфейса", "UI_font_notice": "Любые изменения шрифта требуют перезагрузку скрипта!", "activation_count": "Кол-во активаций", + "ailment_buildups": "Ailment Buildups", "ailment_name": "Название аномального статуса", "ailment_name_label": "Метка названия аномального статуса", "ailments": "Аномальные статусы", + "ailments_spacing": "Ailment Spacing", "all_UI": "Весь интерфейс", "anchor": "Привязка", "assign_new_key": "Привязать клавишу", @@ -52,7 +55,11 @@ "bottom_right": "Правй нижний угол", "break_count": "Счётчик повреждений", "buildup": "Накопление", + "buildup_bar": "Buildup Bar", + "buildup_bars_are_relative_to": "Buildup Bars are relative to", "buildup_percentage": "Процент накопления", + "buildup_percentage_label": "Buildup Percentage Label", + "buildup_value_label": "Buildup Value Label", "capture_line": "Линия здоровья захвата", "color": "Цвет", "colors": "Цвета", @@ -77,6 +84,7 @@ "endemic_life_UI": "Интерфейс местной живности", "family": "Семейство", "fight_time": "Время в бою", + "filter": "Filter", "first": "Первый", "first_hit": "Первый удар", "flinch_count": "Кол-во повреждений", @@ -100,6 +108,7 @@ "hide_undamaged_parts": "Скрыть неповреждённые части тела", "highlighted": "Помеченный", "highlighted_bar": "Помеченная шкала", + "highlighted_buildup_bar": "Highlighted Buildup Bar", "highlighted_damage_bar": "Помеченная шкала урона", "horizontal": "Горизонтально", "hotkeys": "Горячие клавиши", @@ -146,6 +155,7 @@ "player_id": "ИД игрока", "player_name": "Имя игрока", "player_name_label": "Метка имени игрока", + "players_spacing": "Player Spacing", "poison_damage": "Урон от отравления", "position": "Расположение", "press_any_key": "Нажмите любую клавишу...", @@ -176,10 +186,14 @@ "time_label": "Метка времени", "time_limit": "Ограничение по времени", "timer_label": "Метка таймера", + "top_buildup": "Top Buildup", "top_damage": "Наибольший урон", "top_dps": "Наибольший урон в секунду", "top_left": "Левый верхний угол", "top_right": "Правый верхний угол", + "total_buildup": "Total Buildup", + "total_buildup_label": "Tota Buildup Label", + "total_buildup_value_label": "Tota Buildup Value Label", "total_damage": "Общий урон", "total_damage_label": "Метка общего урона", "total_damage_offset_is_relative": "Относительный сдвиг общего урона", diff --git a/reframework/data/MHR Overlay/languages/zh-tw.json b/reframework/data/MHR Overlay/languages/zh-tw.json index b489c8e..d0c4b3f 100644 --- a/reframework/data/MHR Overlay/languages/zh-tw.json +++ b/reframework/data/MHR Overlay/languages/zh-tw.json @@ -8,6 +8,7 @@ "rage": "憤怒值:", "silver": "銀冠", "stamina": "耐力:", + "total_buildup": "Total Buildup", "total_damage": "總傷害" }, "ailments": { @@ -36,9 +37,11 @@ "UI_font": "UI 字體", "UI_font_notice": "當更改文字時,請重新載入", "activation_count": "Activation Count", + "ailment_buildups": "Ailment Buildups", "ailment_name": "Ailment Name", "ailment_name_label": "Ailment Name Label", "ailments": "Ailments", + "ailments_spacing": "Ailment Spacing", "all_UI": "All UI", "anchor": "錨點", "assign_new_key": "Assign new key", @@ -52,7 +55,11 @@ "bottom_right": "右下", "break_count": "破壞次數", "buildup": "Buildup", + "buildup_bar": "Buildup Bar", + "buildup_bars_are_relative_to": "Buildup Bars are relative to", "buildup_percentage": "Buildup Percentage", + "buildup_percentage_label": "Buildup Percentage Label", + "buildup_value_label": "Buildup Value Label", "capture_line": "可捕捉標記線", "color": "調色盤", "colors": "調色盤", @@ -77,6 +84,7 @@ "endemic_life_UI": "Endemic Life UI", "family": "字體", "fight_time": "Fight Time", + "filter": "Filter", "first": "第一", "first_hit": "First Hit", "flinch_count": "Flinch Count", @@ -100,6 +108,7 @@ "hide_undamaged_parts": "隱藏沒受到傷害的部位", "highlighted": "Highlighted (targeted)", "highlighted_bar": "重點條", + "highlighted_buildup_bar": "Highlighted Buildup Bar", "highlighted_damage_bar": "重點傷害條", "horizontal": "水平", "hotkeys": "Hotkeys", @@ -146,6 +155,7 @@ "player_id": "玩家ID", "player_name": "玩家名稱", "player_name_label": "玩家名稱", + "players_spacing": "Player Spacing", "poison_damage": "Poison Damage", "position": "位置", "press_any_key": "Press any key...", @@ -176,10 +186,14 @@ "time_label": "時間", "time_limit": "Time Limit (seconds)", "timer_label": "計時器", + "top_buildup": "Top Buildup", "top_damage": "最高傷害", "top_dps": "Top DPS", "top_left": "左上", "top_right": "右上", + "total_buildup": "Total Buildup", + "total_buildup_label": "Tota Buildup Label", + "total_buildup_value_label": "Tota Buildup Value Label", "total_damage": "總傷害", "total_damage_label": "總傷害文字", "total_damage_offset_is_relative": "總傷害顯示位置調整",