This commit is contained in:
GreenComfyTea
2022-02-07 18:21:24 +02:00
parent 9298c94b1d
commit 4e045be5eb
14 changed files with 437 additions and 63 deletions

View File

@@ -85,7 +85,7 @@ re.on_frame(function()
end); end);
re.on_frame(function() re.on_frame(function()
--draw.text("x: " .. tostring(x), 450, 50, 0xFFFFFFFF); draw.text("x: " .. tostring(x), 450, 50, 0xFFFFFFFF);
end); end);
-- #endregion -- #endregion
--------------------------RE_IMGUI--------------------------- --------------------------RE_IMGUI---------------------------
@@ -106,8 +106,11 @@ end, function()
quest_status.update_is_training_area(); quest_status.update_is_training_area();
if quest_status.is_training_area then if quest_status.is_training_area then
if (config.current_config.large_monster_UI.dynamic.enabled or config.current_config.large_monster_UI.static.enabled) and config.current_config.global_settings.module_visibility.training_area.large_monster_UI then local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and config.current_config.global_settings.module_visibility.training_area.large_monster_dynamic_UI;
large_monster_UI.draw(); local static_enabled = config.current_config.large_monster_UI.static.enabled and config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI;
if dynamic_enabled or static_enabled then
large_monster_UI.draw(dynamic_enabled, static_enabled);
end end
if config.current_config.damage_meter_UI.enabled and config.current_config.global_settings.module_visibility.training_area.damage_meter_UI then if config.current_config.damage_meter_UI.enabled and config.current_config.global_settings.module_visibility.training_area.damage_meter_UI then
@@ -120,8 +123,11 @@ end, function()
small_monster_UI.draw(); small_monster_UI.draw();
end end
if (config.current_config.large_monster_UI.dynamic.enabled or config.current_config.large_monster_UI.static.enabled) and config.current_config.global_settings.module_visibility.during_quest.large_monster_UI then local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI;
large_monster_UI.draw(); local static_enabled = config.current_config.large_monster_UI.static.enabled and config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI;
if dynamic_enabled or static_enabled then
large_monster_UI.draw(dynamic_enabled, static_enabled);
end end
if config.current_config.time_UI.enabled and config.current_config.global_settings.module_visibility.during_quest.time_UI then if config.current_config.time_UI.enabled and config.current_config.global_settings.module_visibility.during_quest.time_UI then
@@ -132,6 +138,17 @@ end, function()
damage_meter_UI.draw(); damage_meter_UI.draw();
end end
elseif quest_status.index > 2 then elseif quest_status.index > 2 then
if config.current_config.small_monster_UI.enabled and config.current_config.global_settings.module_visibility.quest_summary_screen.small_monster_UI then
small_monster_UI.draw();
end
local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_dynamic_UI;
local static_enabled = config.current_config.large_monster_UI.static.enabled and config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_static_UI;
if dynamic_enabled or static_enabled then
large_monster_UI.draw(dynamic_enabled, static_enabled);
end
if config.current_config.time_UI.enabled and config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI then if config.current_config.time_UI.enabled and config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI then
time_UI.draw(); time_UI.draw();
end end

View File

@@ -9,18 +9,23 @@ config.default_config = {
module_visibility = { module_visibility = {
during_quest = { during_quest = {
small_monster_UI = true, small_monster_UI = true,
large_monster_UI = true, large_monster_dynamic_UI = true,
large_monster_static_UI = true,
time_UI = true, time_UI = true,
damage_meter_UI = true damage_meter_UI = true
}, },
quest_summary_Screen = { quest_summary_screen = {
small_monster_UI = false,
large_monster_dynamic_UI = false,
large_monster_static_UI = true,
time_UI = true, time_UI = true,
damage_meter_UI = true damage_meter_UI = true
}, },
training_area = { training_area = {
large_monster_UI = true, large_monster_dynamic_UI = true,
large_monster_static_UI = true,
damage_meter_UI = true damage_meter_UI = true
} }
}, },
@@ -94,6 +99,8 @@ config.default_config = {
}, },
health = { health = {
visibility = true,
text_label = { text_label = {
visibility = false, visibility = false,
text = "HP:", text = "HP:",
@@ -173,8 +180,10 @@ config.default_config = {
}, },
stamina = { stamina = {
visibility = true,
text_label = { text_label = {
visibility = false, visibility = true,
text = "Stamina:", text = "Stamina:",
offset = { offset = {
x = 15, x = 15,
@@ -193,7 +202,7 @@ config.default_config = {
}, },
value_label = { value_label = {
visibility = false, visibility = true,
text = "%.0f/%.0f", -- current_health/max_health text = "%.0f/%.0f", -- current_health/max_health
offset = { offset = {
x = 15, x = 15,
@@ -232,7 +241,7 @@ config.default_config = {
}, },
bar = { bar = {
visibility = false, visibility = true,
offset = { offset = {
x = 10, x = 10,
y = 54 y = 54
@@ -299,6 +308,8 @@ config.default_config = {
}, },
health = { health = {
visibility = true,
text_label = { text_label = {
visibility = false, visibility = false,
text = "HP:", text = "HP:",
@@ -381,6 +392,8 @@ config.default_config = {
}, },
stamina = { stamina = {
visibility = true,
text_label = { text_label = {
visibility = true, visibility = true,
text = "Stamina:", text = "Stamina:",
@@ -459,6 +472,8 @@ config.default_config = {
}, },
rage = { rage = {
visibility = true,
text_label = { text_label = {
visibility = true, visibility = true,
text = "Rage:", text = "Rage:",
@@ -537,19 +552,29 @@ config.default_config = {
}, },
parts = { parts = {
visibility = false,
offset = { offset = {
x = 0, x = 0,
y = 50 y = 50
}, },
spacing = { spacing = {
x = 0, x = 0,
y = 24, y = 24,
}, },
settings = {
hide_undamaged_parts = true,
},
sorting = {
type = "Normal",
reversed_order = false
},
part_name_label = { part_name_label = {
visibility = false, visibility = true,
text = "%s", text = "%s",
include = { include = {
@@ -593,7 +618,7 @@ config.default_config = {
}, },
value_label = { value_label = {
visibility = false, visibility = true,
text = "%.0f/%.0f", -- current_health/max_health text = "%.0f/%.0f", -- current_health/max_health
offset = { offset = {
x = 55, x = 55,
@@ -632,7 +657,7 @@ config.default_config = {
}, },
bar = { bar = {
visibility = false, visibility = true,
offset = { offset = {
x = 10, x = 10,
y = 78 y = 78
@@ -702,6 +727,8 @@ config.default_config = {
}, },
health = { health = {
visibility = true,
text_label = { text_label = {
visibility = false, visibility = false,
text = "HP:", text = "HP:",
@@ -784,6 +811,8 @@ config.default_config = {
}, },
stamina = { stamina = {
visibility = true,
text_label = { text_label = {
visibility = true, visibility = true,
text = "Stamina:", text = "Stamina:",
@@ -862,6 +891,8 @@ config.default_config = {
}, },
rage = { rage = {
visibility = true,
text_label = { text_label = {
visibility = true, visibility = true,
text = "Rage:", text = "Rage:",
@@ -940,16 +971,28 @@ config.default_config = {
}, },
parts = { parts = {
visibility = true,
offset = { offset = {
x = 0, x = 0,
y = 50 y = 50
}, },
spacing = { spacing = {
x = 0, x = 0,
y = 24, y = 24,
}, },
settings = {
hide_undamaged_parts = true,
},
sorting = {
type = "Normal",
reversed_order = false
},
part_name_label = { part_name_label = {
visibility = true, visibility = true,
@@ -1111,6 +1154,7 @@ config.default_config = {
hide_module_if_total_damage_is_zero = false, hide_module_if_total_damage_is_zero = false,
hide_player_if_player_damage_is_zero = false, hide_player_if_player_damage_is_zero = false,
hide_total_if_total_damage_is_zero = false,
total_damage_offset_is_relative = true, total_damage_offset_is_relative = true,
highlighted_bar = "Me", highlighted_bar = "Me",

View File

@@ -34,6 +34,7 @@ end
function body_part.init_dynamic_UI(part) function body_part.init_dynamic_UI(part)
part.body_part_dynamic_UI = body_part_UI_entity.new( part.body_part_dynamic_UI = body_part_UI_entity.new(
config.current_config.large_monster_UI.dynamic.parts.visibility,
config.current_config.large_monster_UI.dynamic.parts.bar, config.current_config.large_monster_UI.dynamic.parts.bar,
config.current_config.large_monster_UI.dynamic.parts.part_name_label, config.current_config.large_monster_UI.dynamic.parts.part_name_label,
config.current_config.large_monster_UI.dynamic.parts.text_label, config.current_config.large_monster_UI.dynamic.parts.text_label,
@@ -44,6 +45,7 @@ end
function body_part.init_static_UI(part) function body_part.init_static_UI(part)
part.body_part_static_UI = body_part_UI_entity.new( part.body_part_static_UI = body_part_UI_entity.new(
config.current_config.large_monster_UI.static.parts.visibility,
config.current_config.large_monster_UI.static.parts.bar, config.current_config.large_monster_UI.static.parts.bar,
config.current_config.large_monster_UI.static.parts.part_name_label, config.current_config.large_monster_UI.static.parts.part_name_label,
config.current_config.large_monster_UI.static.parts.text_label, config.current_config.large_monster_UI.static.parts.text_label,

View File

@@ -56,6 +56,7 @@ function large_monster.new(enemy)
large_monster.init_static_UI(monster); large_monster.init_static_UI(monster);
large_monster.init_dynamic_UI(monster); large_monster.init_dynamic_UI(monster);
if large_monster.list[enemy] == nil then if large_monster.list[enemy] == nil then
large_monster.list[enemy] = monster; large_monster.list[enemy] = monster;
end end
@@ -123,6 +124,7 @@ function large_monster.init_static_UI(monster)
monster.static_name_label = table_helpers.deep_copy(config.current_config.large_monster_UI.static.monster_name_label); monster.static_name_label = table_helpers.deep_copy(config.current_config.large_monster_UI.static.monster_name_label);
monster.health_static_UI = health_UI_entity.new( monster.health_static_UI = health_UI_entity.new(
config.current_config.large_monster_UI.static.health.visibility,
config.current_config.large_monster_UI.static.health.bar, config.current_config.large_monster_UI.static.health.bar,
config.current_config.large_monster_UI.static.health.text_label, config.current_config.large_monster_UI.static.health.text_label,
config.current_config.large_monster_UI.static.health.value_label, config.current_config.large_monster_UI.static.health.value_label,
@@ -130,6 +132,7 @@ function large_monster.init_static_UI(monster)
); );
monster.stamina_static_UI = stamina_UI_entity.new( monster.stamina_static_UI = stamina_UI_entity.new(
config.current_config.large_monster_UI.static.stamina.visibility,
config.current_config.large_monster_UI.static.stamina.bar, config.current_config.large_monster_UI.static.stamina.bar,
config.current_config.large_monster_UI.static.stamina.text_label, config.current_config.large_monster_UI.static.stamina.text_label,
config.current_config.large_monster_UI.static.stamina.value_label, config.current_config.large_monster_UI.static.stamina.value_label,
@@ -137,6 +140,7 @@ function large_monster.init_static_UI(monster)
); );
monster.rage_static_UI = rage_UI_entity.new( monster.rage_static_UI = rage_UI_entity.new(
config.current_config.large_monster_UI.static.rage.visibility,
config.current_config.large_monster_UI.static.rage.bar, config.current_config.large_monster_UI.static.rage.bar,
config.current_config.large_monster_UI.static.rage.text_label, config.current_config.large_monster_UI.static.rage.text_label,
config.current_config.large_monster_UI.static.rage.value_label, config.current_config.large_monster_UI.static.rage.value_label,
@@ -152,6 +156,7 @@ function large_monster.init_dynamic_UI(monster)
monster.dynamic_name_label = table_helpers.deep_copy(config.current_config.large_monster_UI.dynamic.monster_name_label); monster.dynamic_name_label = table_helpers.deep_copy(config.current_config.large_monster_UI.dynamic.monster_name_label);
monster.health_dynamic_UI = health_UI_entity.new( monster.health_dynamic_UI = health_UI_entity.new(
config.current_config.large_monster_UI.dynamic.health.visibility,
config.current_config.large_monster_UI.dynamic.health.bar, config.current_config.large_monster_UI.dynamic.health.bar,
config.current_config.large_monster_UI.dynamic.health.text_label, config.current_config.large_monster_UI.dynamic.health.text_label,
config.current_config.large_monster_UI.dynamic.health.value_label, config.current_config.large_monster_UI.dynamic.health.value_label,
@@ -159,6 +164,7 @@ function large_monster.init_dynamic_UI(monster)
); );
monster.stamina_dynamic_UI = stamina_UI_entity.new( monster.stamina_dynamic_UI = stamina_UI_entity.new(
config.current_config.large_monster_UI.dynamic.stamina.visibility,
config.current_config.large_monster_UI.dynamic.stamina.bar, config.current_config.large_monster_UI.dynamic.stamina.bar,
config.current_config.large_monster_UI.dynamic.stamina.text_label, config.current_config.large_monster_UI.dynamic.stamina.text_label,
config.current_config.large_monster_UI.dynamic.stamina.value_label, config.current_config.large_monster_UI.dynamic.stamina.value_label,
@@ -166,6 +172,7 @@ function large_monster.init_dynamic_UI(monster)
); );
monster.rage_dynamic_UI = rage_UI_entity.new( monster.rage_dynamic_UI = rage_UI_entity.new(
config.current_config.large_monster_UI.dynamic.rage.visibility,
config.current_config.large_monster_UI.dynamic.rage.bar, config.current_config.large_monster_UI.dynamic.rage.bar,
config.current_config.large_monster_UI.dynamic.rage.text_label, config.current_config.large_monster_UI.dynamic.rage.text_label,
config.current_config.large_monster_UI.dynamic.rage.value_label, config.current_config.large_monster_UI.dynamic.rage.value_label,
@@ -414,16 +421,56 @@ function large_monster.draw_dynamic(monster, position_on_screen, opacity_scale)
stamina_UI_entity.draw(monster, monster.stamina_dynamic_UI, position_on_screen, opacity_scale); stamina_UI_entity.draw(monster, monster.stamina_dynamic_UI, position_on_screen, opacity_scale);
rage_UI_entity.draw(monster, monster.rage_dynamic_UI, position_on_screen, opacity_scale); rage_UI_entity.draw(monster, monster.rage_dynamic_UI, position_on_screen, opacity_scale);
local j = 0; --sort parts here
local displayed_parts = {};
for REpart, part in pairs(monster.parts) do for REpart, part in pairs(monster.parts) do
if config.current_config.large_monster_UI.dynamic.parts.settings.hide_undamaged_parts and part.health == part.max_health and part.break_count == 0 then
goto continue;
end
table.insert(displayed_parts, part);
::continue::
end
if config.current_config.large_monster_UI.dynamic.parts.sorting.type == "Normal" then
if config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order then
table.sort(displayed_parts, function(left, right)
return left.id > right.id;
end);
else
table.sort(displayed_parts, function(left, right)
return left.id < right.id;
end);
end
elseif config.current_config.large_monster_UI.dynamic.parts.sorting.type == "Health" then
if config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order then
table.sort(displayed_parts, function(left, right)
return left.health > right.health;
end);
else
table.sort(displayed_parts, function(left, right)
return left.health < right.health;
end);
end
elseif config.current_config.large_monster_UI.dynamic.parts.sorting.type == "Health Percentage" then
if config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order then
table.sort(displayed_parts, function(left, right)
return left.health_percentage > right.health_percentage;
end);
else
table.sort(displayed_parts, function(left, right)
return left.health_percentage < right.health_percentage;
end);
end
end
for j, part in ipairs(displayed_parts) do
local part_position_on_screen = { local part_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.parts.offset.x + config.current_config.large_monster_UI.dynamic.parts.spacing.x * j, x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.parts.offset.x + config.current_config.large_monster_UI.dynamic.parts.spacing.x * (j - 1),
y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.parts.offset.y + config.current_config.large_monster_UI.dynamic.parts.spacing.y * j; y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.parts.offset.y + config.current_config.large_monster_UI.dynamic.parts.spacing.y * (j - 1);
} }
body_part.draw_dynamic(part, part_position_on_screen, opacity_scale); body_part.draw_dynamic(part, part_position_on_screen, opacity_scale);
j = j + 1;
end end
end end
@@ -451,16 +498,56 @@ function large_monster.draw_static(monster, position_on_screen, opacity_scale)
stamina_UI_entity.draw(monster, monster.stamina_static_UI, position_on_screen, opacity_scale); stamina_UI_entity.draw(monster, monster.stamina_static_UI, position_on_screen, opacity_scale);
rage_UI_entity.draw(monster, monster.rage_static_UI, position_on_screen, opacity_scale); rage_UI_entity.draw(monster, monster.rage_static_UI, position_on_screen, opacity_scale);
local j = 0; --sort parts here
local displayed_parts = {};
for REpart, part in pairs(monster.parts) do for REpart, part in pairs(monster.parts) do
if config.current_config.large_monster_UI.static.parts.settings.hide_undamaged_parts and part.health == part.max_health and part.break_count == 0 then
goto continue;
end
table.insert(displayed_parts, part);
::continue::
end
if config.current_config.large_monster_UI.static.parts.sorting.type == "Normal" then
if config.current_config.large_monster_UI.static.parts.sorting.reversed_order then
table.sort(displayed_parts, function(left, right)
return left.id > right.id;
end);
else
table.sort(displayed_parts, function(left, right)
return left.id < right.id;
end);
end
elseif config.current_config.large_monster_UI.static.parts.sorting.type == "Health" then
if config.current_config.large_monster_UI.static.parts.sorting.reversed_order then
table.sort(displayed_parts, function(left, right)
return left.health > right.health;
end);
else
table.sort(displayed_parts, function(left, right)
return left.health < right.health;
end);
end
elseif config.current_config.large_monster_UI.static.parts.sorting.type == "Health Percentage" then
if config.current_config.large_monster_UI.static.parts.sorting.reversed_order then
table.sort(displayed_parts, function(left, right)
return left.health_percentage > right.health_percentage;
end);
else
table.sort(displayed_parts, function(left, right)
return left.health_percentage < right.health_percentage;
end);
end
end
for j, part in ipairs(displayed_parts) do
local part_position_on_screen = { local part_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.static.parts.offset.x + config.current_config.large_monster_UI.static.parts.spacing.x * j, x = position_on_screen.x + config.current_config.large_monster_UI.static.parts.offset.x + config.current_config.large_monster_UI.static.parts.spacing.x * (j - 1),
y = position_on_screen.y + config.current_config.large_monster_UI.static.parts.offset.y + config.current_config.large_monster_UI.static.parts.spacing.y * j; y = position_on_screen.y + config.current_config.large_monster_UI.static.parts.offset.y + config.current_config.large_monster_UI.static.parts.spacing.y * (j - 1);
} }
body_part.draw_static(part, part_position_on_screen, opacity_scale); body_part.draw_static(part, part_position_on_screen, opacity_scale);
j = j + 1;
end end
end end

View File

@@ -63,6 +63,7 @@ function small_monster.init_UI(monster)
monster.name_label = table_helpers.deep_copy(config.current_config.small_monster_UI.monster_name_label); monster.name_label = table_helpers.deep_copy(config.current_config.small_monster_UI.monster_name_label);
monster.health_UI = health_UI_entity.new( monster.health_UI = health_UI_entity.new(
config.current_config.small_monster_UI.health.visibility,
config.current_config.small_monster_UI.health.bar, config.current_config.small_monster_UI.health.bar,
config.current_config.small_monster_UI.health.text_label, config.current_config.small_monster_UI.health.text_label,
config.current_config.small_monster_UI.health.value_label, config.current_config.small_monster_UI.health.value_label,
@@ -70,6 +71,7 @@ function small_monster.init_UI(monster)
); );
monster.stamina_UI = stamina_UI_entity.new( monster.stamina_UI = stamina_UI_entity.new(
config.current_config.small_monster_UI.stamina.visibility,
config.current_config.small_monster_UI.stamina.bar, config.current_config.small_monster_UI.stamina.bar,
config.current_config.small_monster_UI.stamina.text_label, config.current_config.small_monster_UI.stamina.text_label,
config.current_config.small_monster_UI.stamina.value_label, config.current_config.small_monster_UI.stamina.value_label,
@@ -176,6 +178,7 @@ end
function small_monster.draw(monster, position_on_screen, opacity_scale) function small_monster.draw(monster, position_on_screen, opacity_scale)
drawing.draw_label(monster.name_label, position_on_screen, opacity_scale, monster.name); drawing.draw_label(monster.name_label, position_on_screen, opacity_scale, monster.name);
health_UI_entity.draw(monster, monster.health_UI, position_on_screen, opacity_scale); health_UI_entity.draw(monster, monster.health_UI, position_on_screen, opacity_scale);
stamina_UI_entity.draw(monster, monster.stamina_UI, position_on_screen, opacity_scale); stamina_UI_entity.draw(monster, monster.stamina_UI, position_on_screen, opacity_scale);
end end

View File

@@ -56,9 +56,13 @@ function damage_meter_UI.draw()
myself_hunter_rank = 0; myself_hunter_rank = 0;
end end
x = singletons.lobby_manager:get_field("_myselfIndex");
if player.list[player.myself_id] == nil then if player.list[player.myself_id] == nil then
player.list[player.myself_id] = player.new(player.myself_id, myself_player_name, myself_hunter_rank); player.list[player.myself_id] = player.new(player.myself_id, myself_player_name, myself_hunter_rank);
player.myself = player.list[player.myself_id]; player.myself = player.list[player.myself_id];
else
end end
local quest_players = {}; local quest_players = {};
@@ -87,7 +91,6 @@ function damage_meter_UI.draw()
local player_id = player_info:get_field("_memberIndex"); local player_id = player_info:get_field("_memberIndex");
if player_id == nil then if player_id == nil then
goto continue goto continue
end end
@@ -176,6 +179,10 @@ function damage_meter_UI.draw()
end end
-- draw total damage -- draw total damage
if config.current_config.damage_meter_UI.settings.hide_total_if_total_damage_is_zero and player.total.display.total_damage == 0 then
return;
end
if not config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative then if not config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative then
position_on_screen = screen.calculate_absolute_coordinates(config.current_config.damage_meter_UI.position); position_on_screen = screen.calculate_absolute_coordinates(config.current_config.damage_meter_UI.position);
end end

View File

@@ -11,7 +11,7 @@ local health_UI_entity;
local stamina_UI_entity; local stamina_UI_entity;
local rage_UI_entity; local rage_UI_entity;
function large_monster_UI.draw() function large_monster_UI.draw(dynamic_enabled, static_enabled)
if singletons.enemy_manager == nil then if singletons.enemy_manager == nil then
return; return;
end end
@@ -39,7 +39,7 @@ function large_monster_UI.draw()
table.insert(displayed_monsters, monster); table.insert(displayed_monsters, monster);
end end
if config.current_config.large_monster_UI.dynamic.enabled then if dynamic_enabled then
local i = 0; local i = 0;
for _, monster in ipairs(displayed_monsters) do for _, monster in ipairs(displayed_monsters) do
@@ -77,7 +77,7 @@ function large_monster_UI.draw()
end end
end end
if config.current_config.large_monster_UI.static.enabled then if static_enabled then
-- sort here -- sort here
if config.current_config.large_monster_UI.static.sorting.type == "Normal" and config.current_config.large_monster_UI.static.sorting.reversed_order then if config.current_config.large_monster_UI.static.sorting.type == "Normal" and config.current_config.large_monster_UI.static.sorting.reversed_order then
local reversed_monsters = {}; local reversed_monsters = {};

View File

@@ -110,13 +110,12 @@ function small_monster_UI.draw()
if distance > config.current_config.small_monster_UI.dynamic_positioning.max_distance then if distance > config.current_config.small_monster_UI.dynamic_positioning.max_distance then
goto continue; goto continue;
end end
if config.current_config.small_monster_UI.dynamic_positioning.opacity_falloff then if config.current_config.small_monster_UI.dynamic_positioning.opacity_falloff then
opacity_scale = 1 - (distance / config.current_config.small_monster_UI.dynamic_positioning.max_distance); opacity_scale = 1 - (distance / config.current_config.small_monster_UI.dynamic_positioning.max_distance);
end end
end end
small_monster.draw(monster, position_on_screen, opacity_scale); small_monster.draw(monster, position_on_screen, opacity_scale);
i = i + 1; i = i + 1;

View File

@@ -3,9 +3,10 @@ local config;
local table_helpers; local table_helpers;
local drawing; local drawing;
function body_part_UI_entity.new(bar, name_label, text_label, value_label, percentage_label) function body_part_UI_entity.new(visibility, bar, name_label, text_label, value_label, percentage_label)
local entity = {}; local entity = {};
entity.visibility = visibility;
entity.bar = table_helpers.deep_copy(bar); entity.bar = table_helpers.deep_copy(bar);
entity.name_label = table_helpers.deep_copy(name_label); entity.name_label = table_helpers.deep_copy(name_label);
entity.text_label = table_helpers.deep_copy(text_label); entity.text_label = table_helpers.deep_copy(text_label);
@@ -16,6 +17,9 @@ function body_part_UI_entity.new(bar, name_label, text_label, value_label, perce
end end
function body_part_UI_entity.draw_dynamic(part, position_on_screen, opacity_scale) function body_part_UI_entity.draw_dynamic(part, position_on_screen, opacity_scale)
if not part.body_part_dynamic_UI.visibility then
return;
end
local part_name = ""; local part_name = "";
if config.current_config.large_monster_UI.dynamic.parts.part_name_label.include.part_name then if config.current_config.large_monster_UI.dynamic.parts.part_name_label.include.part_name then
@@ -34,6 +38,9 @@ function body_part_UI_entity.draw_dynamic(part, position_on_screen, opacity_scal
end end
function body_part_UI_entity.draw_static(part, position_on_screen, opacity_scale) function body_part_UI_entity.draw_static(part, position_on_screen, opacity_scale)
if not part.body_part_static_UI.visibility then
return;
end
local part_name = ""; local part_name = "";
if config.current_config.large_monster_UI.static.parts.part_name_label.include.part_name then if config.current_config.large_monster_UI.static.parts.part_name_label.include.part_name then

View File

@@ -7,6 +7,7 @@ local player;
function damage_UI_entity.new(bar, highlighted_bar, player_name_label, value_label, percentage_label) function damage_UI_entity.new(bar, highlighted_bar, player_name_label, value_label, percentage_label)
local entity = {}; local entity = {};
--entity.visibility = visibility;
entity.bar = table_helpers.deep_copy(bar); entity.bar = table_helpers.deep_copy(bar);
entity.highlighted_bar = table_helpers.deep_copy(highlighted_bar); entity.highlighted_bar = table_helpers.deep_copy(highlighted_bar);
entity.player_name_label = table_helpers.deep_copy(player_name_label); entity.player_name_label = table_helpers.deep_copy(player_name_label);
@@ -17,6 +18,7 @@ function damage_UI_entity.new(bar, highlighted_bar, player_name_label, value_lab
end end
function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_damage) function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_damage)
local player_include = config.current_config.damage_meter_UI.player_name_label.include.others; local player_include = config.current_config.damage_meter_UI.player_name_label.include.others;
if _player.id == _player.myself_id then if _player.id == _player.myself_id then
player_include = config.current_config.damage_meter_UI.player_name_label.include.myself; player_include = config.current_config.damage_meter_UI.player_name_label.include.myself;

View File

@@ -2,9 +2,10 @@ local health_UI_entity = {};
local table_helpers; local table_helpers;
local drawing; local drawing;
function health_UI_entity.new(bar, text_label, value_label, percentage_label) function health_UI_entity.new(visibility, bar, text_label, value_label, percentage_label)
local entity = {}; local entity = {};
entity.visibility = visibility;
entity.bar = table_helpers.deep_copy(bar); entity.bar = table_helpers.deep_copy(bar);
entity.text_label = table_helpers.deep_copy(text_label); entity.text_label = table_helpers.deep_copy(text_label);
entity.value_label = table_helpers.deep_copy(value_label); entity.value_label = table_helpers.deep_copy(value_label);
@@ -14,6 +15,10 @@ function health_UI_entity.new(bar, text_label, value_label, percentage_label)
end end
function health_UI_entity.draw(monster, health_UI, position_on_screen, opacity_scale) function health_UI_entity.draw(monster, health_UI, position_on_screen, opacity_scale)
if not health_UI.visibility then
x = health_UI.visibility
return;
end
drawing.draw_bar(health_UI.bar, position_on_screen, opacity_scale, monster.health_percentage); drawing.draw_bar(health_UI.bar, position_on_screen, opacity_scale, monster.health_percentage);

View File

@@ -2,9 +2,10 @@ local rage_UI_entity = {};
local table_helpers; local table_helpers;
local drawing; local drawing;
function rage_UI_entity.new(bar, text_label, value_label, percentage_label) function rage_UI_entity.new(visibility, bar, text_label, value_label, percentage_label)
local entity = {}; local entity = {};
entity.visibility = visibility;
entity.bar = table_helpers.deep_copy(bar); entity.bar = table_helpers.deep_copy(bar);
entity.text_label = table_helpers.deep_copy(text_label); entity.text_label = table_helpers.deep_copy(text_label);
entity.value_label = table_helpers.deep_copy(value_label); entity.value_label = table_helpers.deep_copy(value_label);
@@ -16,6 +17,10 @@ function rage_UI_entity.new(bar, text_label, value_label, percentage_label)
end end
function rage_UI_entity.draw(monster, rage_UI, position_on_screen, opacity_scale) function rage_UI_entity.draw(monster, rage_UI, position_on_screen, opacity_scale)
if not rage_UI.visibility then
return;
end
if monster.is_in_rage then if monster.is_in_rage then
drawing.draw_bar(rage_UI.bar, position_on_screen, opacity_scale, monster.rage_timer_percentage); drawing.draw_bar(rage_UI.bar, position_on_screen, opacity_scale, monster.rage_timer_percentage);

View File

@@ -2,9 +2,10 @@ local stamina_UI_entity = {};
local table_helpers; local table_helpers;
local drawing; local drawing;
function stamina_UI_entity.new(bar, text_label, value_label, percentage_label) function stamina_UI_entity.new(visibility, bar, text_label, value_label, percentage_label)
local entity = {}; local entity = {};
entity.visibility = visibility;
entity.bar = table_helpers.deep_copy(bar); entity.bar = table_helpers.deep_copy(bar);
entity.text_label = table_helpers.deep_copy(text_label); entity.text_label = table_helpers.deep_copy(text_label);
entity.value_label = table_helpers.deep_copy(value_label); entity.value_label = table_helpers.deep_copy(value_label);
@@ -14,6 +15,10 @@ function stamina_UI_entity.new(bar, text_label, value_label, percentage_label)
end end
function stamina_UI_entity.draw(monster, stamina_UI, position_on_screen, opacity_scale) function stamina_UI_entity.draw(monster, stamina_UI, position_on_screen, opacity_scale)
if not stamina_UI.visibility then
return;
end
drawing.draw_bar(stamina_UI.bar, position_on_screen, opacity_scale, monster.stamina_percentage); drawing.draw_bar(stamina_UI.bar, position_on_screen, opacity_scale, monster.stamina_percentage);
drawing.draw_label(stamina_UI.text_label, position_on_screen, opacity_scale); drawing.draw_label(stamina_UI.text_label, position_on_screen, opacity_scale);

View File

@@ -15,7 +15,8 @@ customization_menu.color_picker_flags = 327680;
customization_menu.orientation_types = {"Horizontal", "Vertical"}; customization_menu.orientation_types = {"Horizontal", "Vertical"};
customization_menu.anchor_types = {"Top-left", "Top-Right", "Bottom-Left", "Bottom-Right"}; customization_menu.anchor_types = {"Top-left", "Top-Right", "Bottom-Left", "Bottom-Right"};
customization_menu.monster_UI_sorting_types = {"Normal", "Health", "Health Percentage"}; customization_menu.monster_UI_sorting_types = {"Normal", "Health", "Health Percentage", "Distance"};
customization_menu.large_monster_UI_parts_sorting_types = {"Normal", "Health", "Health Percentage"};
customization_menu.damage_meter_UI_highlighted_bar_types = {"Me", "Top Damage", "None"}; customization_menu.damage_meter_UI_highlighted_bar_types = {"Me", "Top Damage", "None"};
customization_menu.damage_meter_UI_damage_bar_relative_types = {"Total Damage", "Top Damage"}; customization_menu.damage_meter_UI_damage_bar_relative_types = {"Total Damage", "Top Damage"};
@@ -34,8 +35,14 @@ customization_menu.fonts = {"Arial", "Arial Black", "Bahnschrift", "Calibri", "C
"Segoe UI Symbol", "SimSun", "Sitka", "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Segoe UI Symbol", "SimSun", "Sitka", "Sylfaen", "Symbol", "Tahoma", "Times New Roman",
"Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic"}; "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic"};
customization_menu.monster_UI_orientation_index = 0; customization_menu.small_monster_UI_orientation_index = 0;
customization_menu.monster_UI_sorting_type_index = 0; customization_menu.small_monster_UI_sorting_type_index = 0;
customization_menu.large_monster_UI_orientation_index = 0;
customization_menu.large_monster_UI_sorting_type_index = 0;
customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = 0;
customization_menu.large_monster_static_UI_parts_sorting_type_index = 0;
customization_menu.damage_meter_UI_orientation_index = 0; customization_menu.damage_meter_UI_orientation_index = 0;
customization_menu.damage_meter_UI_sorting_type_index = 0; customization_menu.damage_meter_UI_sorting_type_index = 0;
@@ -43,15 +50,26 @@ customization_menu.damage_meter_UI_highlighted_bar_index = 0;
customization_menu.damage_meter_UI_damage_bar_relative_index = 0; customization_menu.damage_meter_UI_damage_bar_relative_index = 0;
customization_menu.damage_meter_UI_my_damage_bar_location_index = 0; customization_menu.damage_meter_UI_my_damage_bar_location_index = 0;
customization_menu.small_monster_UI_anchor_index = 0;
customization_menu.large_monster_UI_anchor_index = 0;
customization_menu.time_UI_anchor_index = 0;
customization_menu.damage_meter_UI_anchor_index = 0;
customization_menu.selected_font_index = 9; customization_menu.selected_font_index = 9;
function customization_menu.init() function customization_menu.init()
customization_menu.monster_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types, customization_menu.large_monster_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types,
config.current_config.large_monster_UI.static.settings.orientation, false); config.current_config.large_monster_UI.static.settings.orientation, false);
customization_menu.monster_UI_sorting_type_index = table_helpers.find_index( customization_menu.large_monster_UI_sorting_type_index = table_helpers.find_index(
customization_menu.monster_UI_sorting_types, config.current_config.large_monster_UI.static.sorting.type, false); customization_menu.monster_UI_sorting_types, config.current_config.large_monster_UI.static.sorting.type, false);
customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = table_helpers.find_index(
customization_menu.large_monster_UI_parts_sorting_types, config.current_config.large_monster_UI.dynamic.parts.sorting.type, false);
customization_menu.large_monster_static_UI_parts_sorting_type_index = table_helpers.find_index(
customization_menu.large_monster_UI_parts_sorting_types, config.current_config.large_monster_UI.static.parts.sorting.type, false);
customization_menu.damage_meter_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types, customization_menu.damage_meter_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types,
config.current_config.damage_meter_UI.settings.orientation, false); config.current_config.damage_meter_UI.settings.orientation, false);
@@ -72,6 +90,18 @@ function customization_menu.init()
customization_menu.selected_font_index = table_helpers.find_index(customization_menu.fonts, customization_menu.selected_font_index = table_helpers.find_index(customization_menu.fonts,
config.current_config.global_settings.font.family, false); config.current_config.global_settings.font.family, false);
customization_menu.small_monster_UI_anchor_index = table_helpers.find_index(customization_menu.anchor_types,
config.current_config.small_monster_UI.static_position.anchor, false);
customization_menu.large_monster_UI_anchor_index = table_helpers.find_index(customization_menu.anchor_types,
config.current_config.large_monster_UI.static.position.anchor, false);
customization_menu.time_UI_anchor_index = table_helpers.find_index(customization_menu.anchor_types,
config.current_config.time_UI.position.anchor, false);
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 end
function customization_menu.draw() function customization_menu.draw()
@@ -91,16 +121,16 @@ function customization_menu.draw()
changed, config.current_config.small_monster_UI.enabled = imgui.checkbox("Small Monster UI", config.current_config changed, config.current_config.small_monster_UI.enabled = imgui.checkbox("Small Monster UI", config.current_config
.small_monster_UI.enabled); .small_monster_UI.enabled);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.large_monster_UI.dynamic.enabled =
imgui.checkbox("Large Monster Dynamic UI", config.current_config.large_monster_UI.dynamic.enabled);
config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
changed, config.current_config.large_monster_UI.static.enabled = changed, config.current_config.large_monster_UI.static.enabled =
imgui.checkbox("Large Monster Static UI", config.current_config.large_monster_UI.static.enabled); imgui.checkbox("Large Monster Static UI", config.current_config.large_monster_UI.static.enabled);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.large_monster_UI.static.enabled =
imgui.checkbox("Large Monster Dynamic UI", config.current_config.large_monster_UI.static.enabled);
config_changed = config_changed or changed;
changed, config.current_config.time_UI.enabled = imgui.checkbox("Time UI", config.current_config.time_UI.enabled); changed, config.current_config.time_UI.enabled = imgui.checkbox("Time UI", config.current_config.time_UI.enabled);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
@@ -119,10 +149,14 @@ function customization_menu.draw()
changed, config.current_config.global_settings.module_visibility.during_quest.small_monster_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.during_quest.small_monster_UI = imgui.checkbox(
"Small Monster UI", config.current_config.global_settings.module_visibility.during_quest.small_monster_UI); "Small Monster UI", config.current_config.global_settings.module_visibility.during_quest.small_monster_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI = imgui.checkbox(
"Large Monster Dynamic UI", config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI);
config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
changed, config.current_config.global_settings.module_visibility.during_quest.large_monster_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI = imgui.checkbox(
"Large Monster UI", config.current_config.global_settings.module_visibility.during_quest.large_monster_UI); "Large Monster Static UI", config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.during_quest.time_UI = imgui.checkbox("Time UI", changed, config.current_config.global_settings.module_visibility.during_quest.time_UI = imgui.checkbox("Time UI",
@@ -138,25 +172,38 @@ function customization_menu.draw()
end end
if imgui.tree_node("Quest Summary Screen") then if imgui.tree_node("Quest Summary Screen") then
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.quest_summary_screen.small_monster_UI = imgui.checkbox(
"Time UI", config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI); "Small Monster UI", config.current_config.global_settings.module_visibility.quest_summary_screen.small_monster_UI);
config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_dynamic_UI = imgui.checkbox(
"Large Monster Dynamic UI", config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_dynamic_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.damage_meter_UI = changed, config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_static_UI = imgui.checkbox("Large Monster Static UI", config.current_config.global_settings.module_visibility.quest_summary_screen.large_monster_static_UI);
imgui.checkbox("Damage Meter UI", config_changed = config_changed or changed;
config.current_config.global_settings.module_visibility.quest_summary_screen.damage_meter_UI);
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI = imgui.checkbox("Time UI", config.current_config.global_settings.module_visibility.quest_summary_screen.time_UI);
config_changed = config_changed or changed;
imgui.same_line();
changed, config.current_config.global_settings.module_visibility.quest_summary_screen.damage_meter_UI = imgui.checkbox("Damage Meter UI", config.current_config.global_settings.module_visibility.quest_summary_screen.damage_meter_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
if imgui.tree_node("Training Area") then if imgui.tree_node("Training Area") then
changed, config.current_config.global_settings.module_visibility.training_area.large_monster_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.training_area.large_monster_dynamic_UI = imgui.checkbox(
"Large Monster UI", config.current_config.global_settings.module_visibility.training_area.large_monster_UI); "Large Monster Dynamic UI", config.current_config.global_settings.module_visibility.training_area.large_monster_dynamic_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.same_line(); imgui.same_line();
changed, config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI = imgui.checkbox(
"Large Monster Static UI", config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI);
config_changed = config_changed or changed;
changed, config.current_config.global_settings.module_visibility.training_area.damage_meter_UI = imgui.checkbox( changed, config.current_config.global_settings.module_visibility.training_area.damage_meter_UI = imgui.checkbox(
"Damage Meter UI", config.current_config.global_settings.module_visibility.training_area.damage_meter_UI); "Damage Meter UI", config.current_config.global_settings.module_visibility.training_area.damage_meter_UI);
config_changed = config_changed or changed; config_changed = config_changed or changed;
@@ -202,12 +249,12 @@ function customization_menu.draw()
config_changed = config_changed or changed; config_changed = config_changed or changed;
if imgui.tree_node("Settings") then if imgui.tree_node("Settings") then
changed, customization_menu.monster_UI_orientation_index = imgui.combo("Static Orientation", changed, customization_menu.small_monster_UI_orientation_index = imgui.combo("Static Orientation",
customization_menu.monster_UI_orientation_index, customization_menu.orientation_types); customization_menu.small_monster_UI_orientation_index, customization_menu.orientation_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
if changed then if changed then
config.current_config.small_monster_UI.settings.orientation = config.current_config.small_monster_UI.settings.orientation =
customization_menu.orientation_types[customization_menu.monster_UI_orientation_index]; customization_menu.orientation_types[customization_menu.small_monster_UI_orientation_index];
end end
imgui.tree_pop(); imgui.tree_pop();
@@ -269,6 +316,14 @@ function customization_menu.draw()
imgui.drag_float("Y", config.current_config.small_monster_UI.static_position.y, 0.1, 0, screen.height, "%.1f"); imgui.drag_float("Y", config.current_config.small_monster_UI.static_position.y, 0.1, 0, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, customization_menu.small_monster_UI_anchor_index = imgui.combo("Anchor",
customization_menu.small_monster_UI_anchor_index, customization_menu.anchor_types);
config_changed = config_changed or changed;
if changed then
config.current_config.small_monster_UI.static_position.anchor =
customization_menu.anchor_types[customization_menu.small_monster_UI_anchor_index];
end
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -287,12 +342,12 @@ function customization_menu.draw()
end end
if imgui.tree_node("Static Sorting") then if imgui.tree_node("Static Sorting") then
changed, customization_menu.monster_UI_sort_type_index = imgui.combo("Type", changed, customization_menu.small_monster_UI_sorting_type_index = imgui.combo("Type",
customization_menu.monster_UI_sort_type_index, customization_menu.monster_UI_sorting_types); customization_menu.small_monster_UI_sorting_type_index, customization_menu.monster_UI_sorting_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
if changed then if changed then
config.current_config.small_monster_UI.static_sorting.type = config.current_config.small_monster_UI.static_sorting.type =
customization_menu.monster_UI_sorting_types[customization_menu.monster_UI_sort_type_index]; customization_menu.monster_UI_sorting_types[customization_menu.small_monster_UI_sorting_type_index];
end end
changed, config.current_config.small_monster_UI.static_sorting.reversed_order = changed, config.current_config.small_monster_UI.static_sorting.reversed_order =
@@ -367,6 +422,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Health") then if imgui.tree_node("Health") then
changed, config.current_config.small_monster_UI.health.visibility = imgui.checkbox("Visible",
config.current_config.small_monster_UI.health.visibility);
config_changed = config_changed or changed;
small_monster_UI_changed = small_monster_UI_changed or changed;
if imgui.tree_node("Text Label") then if imgui.tree_node("Text Label") then
changed, config.current_config.small_monster_UI.health.text_label.visibility = imgui.checkbox("Visible", changed, config.current_config.small_monster_UI.health.text_label.visibility = imgui.checkbox("Visible",
config.current_config.small_monster_UI.health.text_label.visibility); config.current_config.small_monster_UI.health.text_label.visibility);
@@ -629,6 +689,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Stamina (Pointless: small monsters don't get tired)") then if imgui.tree_node("Stamina (Pointless: small monsters don't get tired)") then
changed, config.current_config.small_monster_UI.stamina.visibility = imgui.checkbox("Visible",
config.current_config.small_monster_UI.stamina.visibility);
config_changed = config_changed or changed;
small_monster_UI_changed = small_monster_UI_changed or changed;
if imgui.tree_node("Text Label") then if imgui.tree_node("Text Label") then
changed, config.current_config.small_monster_UI.stamina.text_label.visibility = imgui.checkbox("Visible", changed, config.current_config.small_monster_UI.stamina.text_label.visibility = imgui.checkbox("Visible",
config.current_config.small_monster_UI.stamina.text_label.visibility); config.current_config.small_monster_UI.stamina.text_label.visibility);
@@ -1047,6 +1112,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Health") then if imgui.tree_node("Health") then
changed, config.current_config.large_monster_UI.dynamic.health.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.dynamic.health.visibility);
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
if imgui.tree_node("Text Label") then if imgui.tree_node("Text Label") then
changed, config.current_config.large_monster_UI.dynamic.health.text_label.visibility = imgui.checkbox("Visible", changed, config.current_config.large_monster_UI.dynamic.health.text_label.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.dynamic.health.text_label.visibility); config.current_config.large_monster_UI.dynamic.health.text_label.visibility);
@@ -1330,6 +1400,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Stamina") then if imgui.tree_node("Stamina") then
changed, config.current_config.large_monster_UI.dynamic.stamina.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.dynamic.stamina.visibility);
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
if imgui.tree_node("Text Label") then if imgui.tree_node("Text Label") then
changed, config.current_config.large_monster_UI.dynamic.stamina.text_label.visibility = imgui.checkbox("Visible", changed, config.current_config.large_monster_UI.dynamic.stamina.text_label.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.dynamic.stamina.text_label.visibility); config.current_config.large_monster_UI.dynamic.stamina.text_label.visibility);
@@ -1596,6 +1671,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Rage") then if imgui.tree_node("Rage") then
changed, config.current_config.large_monster_UI.dynamic.rage.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.dynamic.rage.visibility);
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
if imgui.tree_node("Text Label") then if imgui.tree_node("Text Label") then
changed, config.current_config.large_monster_UI.dynamic.rage.text_label.visibility = imgui.checkbox("Visible", changed, config.current_config.large_monster_UI.dynamic.rage.text_label.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.dynamic.rage.text_label.visibility); config.current_config.large_monster_UI.dynamic.rage.text_label.visibility);
@@ -1860,6 +1940,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Body Parts") then if imgui.tree_node("Body Parts") then
changed, config.current_config.large_monster_UI.dynamic.parts.visibility = imgui.checkbox(
"Visible", config.current_config.large_monster_UI.dynamic.parts.visibility);
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.large_monster_UI.dynamic.parts.offset.x = imgui.drag_float("X", changed, config.current_config.large_monster_UI.dynamic.parts.offset.x = imgui.drag_float("X",
config.current_config.large_monster_UI.dynamic.parts.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.large_monster_UI.dynamic.parts.offset.x, 0.1, -screen.width, screen.width, "%.1f");
@@ -1888,6 +1973,33 @@ function customization_menu.draw()
imgui.tree_pop(); imgui.tree_pop();
end end
if imgui.tree_node("Settings") then
changed, config.current_config.large_monster_UI.dynamic.parts.settings.hide_undamaged_parts =
imgui.checkbox("Hide Undamaged Parts", config.current_config.large_monster_UI.dynamic.parts.settings.hide_undamaged_parts);
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node("Sorting") then
changed, customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = imgui.combo("Type",
customization_menu.large_monster_dynamic_UI_parts_sorting_type_index, customization_menu.large_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
config.current_config.large_monster_UI.dynamic.parts.sorting.type =
customization_menu.large_monster_UI_parts_sorting_types[customization_menu.large_monster_dynamic_UI_parts_sorting_type_index];
end
changed, config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order =
imgui.checkbox("Reversed Order", config.current_config.large_monster_UI.dynamic.parts.sorting.reversed_order);
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node("Part Name Label") then if imgui.tree_node("Part Name Label") then
changed, config.current_config.large_monster_UI.dynamic.parts.part_name_label.visibility = imgui.checkbox( changed, config.current_config.large_monster_UI.dynamic.parts.part_name_label.visibility = imgui.checkbox(
"Visible", config.current_config.large_monster_UI.dynamic.parts.part_name_label.visibility); "Visible", config.current_config.large_monster_UI.dynamic.parts.part_name_label.visibility);
@@ -2239,6 +2351,7 @@ function customization_menu.draw()
end end
end end
imgui.tree_pop();
end end
if imgui.tree_node("Statically Positioned") then if imgui.tree_node("Statically Positioned") then
@@ -2251,13 +2364,13 @@ function customization_menu.draw()
if imgui.tree_node("Settings") then if imgui.tree_node("Settings") then
changed, customization_menu.monster_UI_orientation_index = imgui.combo("Orientation", changed, customization_menu.large_monster_UI_orientation_index = imgui.combo("Orientation",
customization_menu.monster_UI_orientation_index, customization_menu.orientation_types); customization_menu.large_monster_UI_orientation_index, customization_menu.orientation_types);
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed; large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if changed then if changed then
config.current_config.large_monster_UI.static.settings.orientation = config.current_config.large_monster_UI.static.settings.orientation =
customization_menu.orientation_types[customization_menu.monster_UI_orientation_index]; customization_menu.orientation_types[customization_menu.large_monster_UI_orientation_index];
end end
imgui.tree_pop(); imgui.tree_pop();
@@ -2274,6 +2387,14 @@ function customization_menu.draw()
config_changed = config_changed or changed; config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed; large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
changed, customization_menu.large_monster_UI_anchor_index = imgui.combo("Anchor",
customization_menu.large_monster_UI_anchor_index, customization_menu.anchor_types);
config_changed = config_changed or changed;
if changed then
config.current_config.large_monster_UI.static.position.anchor =
customization_menu.anchor_types[customization_menu.large_monster_UI_anchor_index];
end
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -2403,6 +2524,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Health") then if imgui.tree_node("Health") then
changed, config.current_config.large_monster_UI.static.health.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.static.health.visibility);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if imgui.tree_node("Text Label") then if imgui.tree_node("Text Label") then
changed, config.current_config.large_monster_UI.static.health.text_label.visibility = imgui.checkbox("Visible", changed, config.current_config.large_monster_UI.static.health.text_label.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.static.health.text_label.visibility); config.current_config.large_monster_UI.static.health.text_label.visibility);
@@ -2686,6 +2812,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Stamina") then if imgui.tree_node("Stamina") then
changed, config.current_config.large_monster_UI.static.stamina.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.static.stamina.visibility);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if imgui.tree_node("Text Label") then if imgui.tree_node("Text Label") then
changed, config.current_config.large_monster_UI.static.stamina.text_label.visibility = imgui.checkbox("Visible", changed, config.current_config.large_monster_UI.static.stamina.text_label.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.static.stamina.text_label.visibility); config.current_config.large_monster_UI.static.stamina.text_label.visibility);
@@ -2951,6 +3082,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Rage") then if imgui.tree_node("Rage") then
changed, config.current_config.large_monster_UI.static.rage.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.static.rage.visibility);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if imgui.tree_node("Text Label") then if imgui.tree_node("Text Label") then
changed, config.current_config.large_monster_UI.static.rage.text_label.visibility = imgui.checkbox("Visible", changed, config.current_config.large_monster_UI.static.rage.text_label.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.static.rage.text_label.visibility); config.current_config.large_monster_UI.static.rage.text_label.visibility);
@@ -3214,6 +3350,11 @@ function customization_menu.draw()
end end
if imgui.tree_node("Body Parts") then if imgui.tree_node("Body Parts") then
changed, config.current_config.large_monster_UI.static.parts.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.static.parts.visibility);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if imgui.tree_node("Offset") then if imgui.tree_node("Offset") then
changed, config.current_config.large_monster_UI.static.parts.offset.x = imgui.drag_float("X", changed, config.current_config.large_monster_UI.static.parts.offset.x = imgui.drag_float("X",
config.current_config.large_monster_UI.static.parts.offset.x, 0.1, -screen.width, screen.width, "%.1f"); config.current_config.large_monster_UI.static.parts.offset.x, 0.1, -screen.width, screen.width, "%.1f");
@@ -3242,6 +3383,33 @@ function customization_menu.draw()
imgui.tree_pop(); imgui.tree_pop();
end end
if imgui.tree_node("Settings") then
changed, config.current_config.large_monster_UI.static.parts.settings.hide_undamaged_parts =
imgui.checkbox("Hide Undamaged Parts", config.current_config.large_monster_UI.static.parts.settings.hide_undamaged_parts);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node("Sorting") then
changed, customization_menu.large_monster_static_UI_parts_sorting_type_index = imgui.combo("Type",
customization_menu.large_monster_static_UI_parts_sorting_type_index, customization_menu.large_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
config.current_config.large_monster_UI.static.parts.sorting.type =
customization_menu.large_monster_UI_parts_sorting_types[customization_menu.large_monster_static_UI_parts_sorting_type_index];
end
changed, config.current_config.large_monster_UI.static.parts.sorting.reversed_order =
imgui.checkbox("Reversed Order", config.current_config.large_monster_UI.static.parts.sorting.reversed_order);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node("Part Name Label") then if imgui.tree_node("Part Name Label") then
changed, config.current_config.large_monster_UI.static.parts.part_name_label.visibility = imgui.checkbox("Visible", changed, config.current_config.large_monster_UI.static.parts.part_name_label.visibility = imgui.checkbox("Visible",
config.current_config.large_monster_UI.static.parts.part_name_label.visibility); config.current_config.large_monster_UI.static.parts.part_name_label.visibility);
@@ -3591,6 +3759,7 @@ function customization_menu.draw()
end end
end end
imgui.tree_pop();
end end
imgui.tree_pop(); imgui.tree_pop();
@@ -3609,6 +3778,14 @@ function customization_menu.draw()
0.1, 0, screen.height, "%.1f"); 0.1, 0, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, customization_menu.time_UI_anchor_index = imgui.combo("Anchor",
customization_menu.time_UI_anchor_index, customization_menu.anchor_types);
config_changed = config_changed or changed;
if changed then
config.current_config.time_UI.position.anchor =
customization_menu.anchor_types[customization_menu.time_UI_anchor_index];
end
imgui.tree_pop(); imgui.tree_pop();
end end
@@ -3688,6 +3865,12 @@ function customization_menu.draw()
config.current_config.damage_meter_UI.settings.hide_player_if_player_damage_is_zero); config.current_config.damage_meter_UI.settings.hide_player_if_player_damage_is_zero);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, config.current_config.damage_meter_UI.settings.hide_total_if_total_damage_is_zero = imgui.checkbox(
"Hide Total if Total Damage is 0",
config.current_config.damage_meter_UI.settings.hide_total_if_total_damage_is_zero);
config_changed = config_changed or changed;
changed, config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative = imgui.checkbox( changed, config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative = imgui.checkbox(
"Total Damage Offset is Relative", config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative); "Total Damage Offset is Relative", config.current_config.damage_meter_UI.settings.total_damage_offset_is_relative);
config_changed = config_changed or changed; config_changed = config_changed or changed;
@@ -3815,6 +3998,14 @@ function customization_menu.draw()
imgui.drag_float("Y", config.current_config.damage_meter_UI.position.y, 0.1, 0, screen.height, "%.1f"); imgui.drag_float("Y", config.current_config.damage_meter_UI.position.y, 0.1, 0, screen.height, "%.1f");
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, customization_menu.damage_meter_UI_anchor_index = imgui.combo("Anchor",
customization_menu.damage_meter_UI_anchor_index, customization_menu.anchor_types);
config_changed = config_changed or changed;
if changed then
config.current_config.damage_meter_UI.position.anchor =
customization_menu.anchor_types[customization_menu.damage_meter_UI_anchor_index];
end
imgui.tree_pop(); imgui.tree_pop();
end end