mirror of
https://github.com/GreenComfyTea/MHR-Overlay.git
synced 2026-01-24 12:28:03 -08:00
Release v1.11
1) Cache config access function-wide where possible; 2) Break and Sever values added to parts; 3) Hooks are now applied in init_module instead of global space; 4) Added checks for submodule (health, stamina, etc) visibility. If not visible, do not pull data.
This commit is contained in:
@@ -22,12 +22,6 @@ local get_elemental_damage_method = enemy_calc_damage_info_type_def:get_method("
|
||||
local get_condition_damage_method = enemy_calc_damage_info_type_def:get_method("get_ConditionDamage");
|
||||
local get_condition_type_method = enemy_calc_damage_info_type_def:get_method("get_ConditionDamageType");
|
||||
|
||||
sdk.hook(enemy_character_base_after_calc_damage_damage_side, function(args)
|
||||
pcall(damage_hook.update_damage, args);
|
||||
end, function(retval)
|
||||
return retval;
|
||||
end);
|
||||
|
||||
function damage_hook.update_damage(args)
|
||||
local enemy = sdk.to_managed_object(args[2]);
|
||||
if enemy == nil then
|
||||
@@ -109,9 +103,6 @@ function damage_hook.update_damage(args)
|
||||
end
|
||||
|
||||
local attacking_player = player.get_player(attacker_id);
|
||||
if attacking_player == nil then
|
||||
--return;
|
||||
end
|
||||
|
||||
local monster;
|
||||
if is_large_monster then
|
||||
@@ -138,6 +129,12 @@ function damage_hook.init_module()
|
||||
small_monster = require("MHR_Overlay.Monsters.small_monster");
|
||||
large_monster = require("MHR_Overlay.Monsters.large_monster");
|
||||
ailments = require("MHR_Overlay.Monsters.ailments");
|
||||
|
||||
sdk.hook(enemy_character_base_after_calc_damage_damage_side, function(args)
|
||||
pcall(damage_hook.update_damage, args);
|
||||
end, function(retval)
|
||||
return retval;
|
||||
end);
|
||||
end
|
||||
|
||||
return damage_hook;
|
||||
@@ -191,70 +191,72 @@ function player.update_display(_player)
|
||||
_player.display.elemental_damage = 0;
|
||||
_player.display.ailment_damage = 0;
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_monster_types.small_monsters then
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.player_damage then
|
||||
local cached_config = config.current_config.damage_meter_UI;
|
||||
|
||||
if cached_config.tracked_monster_types.small_monsters then
|
||||
if cached_config.tracked_damage_types.player_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.bomb_damage then
|
||||
if cached_config.tracked_damage_types.bomb_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.bombs);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.kunai_damage then
|
||||
if cached_config.tracked_damage_types.kunai_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.kunai);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.installation_damage then
|
||||
if cached_config.tracked_damage_types.installation_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.installations);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.otomo_damage then
|
||||
if cached_config.tracked_damage_types.otomo_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.otomo);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.monster_damage then
|
||||
if cached_config.tracked_damage_types.monster_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.monster);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.poison_damage then
|
||||
if cached_config.tracked_damage_types.poison_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.poison);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.blast_damage then
|
||||
if cached_config.tracked_damage_types.blast_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.blast);
|
||||
end
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_monster_types.large_monsters then
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.player_damage then
|
||||
if cached_config.tracked_monster_types.large_monsters then
|
||||
if cached_config.tracked_damage_types.player_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.bomb_damage then
|
||||
if cached_config.tracked_damage_types.bomb_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.bombs);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.kunai_damage then
|
||||
if cached_config.tracked_damage_types.kunai_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.kunai);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.installation_damage then
|
||||
if cached_config.tracked_damage_types.installation_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.installations);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.otomo_damage then
|
||||
if cached_config.tracked_damage_types.otomo_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.otomo);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.monster_damage then
|
||||
if cached_config.tracked_damage_types.monster_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.monster);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.poison_damage then
|
||||
if cached_config.tracked_damage_types.poison_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.poison);
|
||||
end
|
||||
|
||||
if config.current_config.damage_meter_UI.tracked_damage_types.blast_damage then
|
||||
if cached_config.tracked_damage_types.blast_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.blast);
|
||||
end
|
||||
end
|
||||
@@ -498,32 +500,37 @@ function player.update_player_list_on_quest()
|
||||
end
|
||||
|
||||
function player.init_UI(_player)
|
||||
local cached_config = config.current_config.damage_meter_UI;
|
||||
|
||||
_player.damage_UI = damage_UI_entity.new(
|
||||
config.current_config.damage_meter_UI.damage_bar,
|
||||
config.current_config.damage_meter_UI.highlighted_damage_bar,
|
||||
config.current_config.damage_meter_UI.player_name_label,
|
||||
config.current_config.damage_meter_UI.dps_label,
|
||||
config.current_config.damage_meter_UI.hunter_rank_label,
|
||||
config.current_config.damage_meter_UI.damage_value_label,
|
||||
config.current_config.damage_meter_UI.damage_percentage_label
|
||||
cached_config.damage_bar,
|
||||
cached_config.highlighted_damage_bar,
|
||||
cached_config.player_name_label,
|
||||
cached_config.dps_label,
|
||||
cached_config.hunter_rank_label,
|
||||
cached_config.damage_value_label,
|
||||
cached_config.damage_percentage_label
|
||||
);
|
||||
end
|
||||
|
||||
function player.init_total_UI(_player)
|
||||
local cached_config = config.current_config.damage_meter_UI;
|
||||
local global_scale_modifier = config.current_config.global_settings.modifiers.global_scale_modifier;
|
||||
|
||||
_player.damage_UI = {
|
||||
total_damage_label = table_helpers.deep_copy(config.current_config.damage_meter_UI.total_damage_label),
|
||||
total_damage_value_label = table_helpers.deep_copy(config.current_config.damage_meter_UI.total_damage_value_label),
|
||||
total_dps_label = table_helpers.deep_copy(config.current_config.damage_meter_UI.total_dps_label)
|
||||
total_damage_label = table_helpers.deep_copy(cached_config.total_damage_label),
|
||||
total_damage_value_label = table_helpers.deep_copy(cached_config.total_damage_value_label),
|
||||
total_dps_label = table_helpers.deep_copy(cached_config.total_dps_label)
|
||||
};
|
||||
|
||||
_player.damage_UI.total_damage_label.offset.x = _player.damage_UI.total_damage_label.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier;
|
||||
_player.damage_UI.total_damage_label.offset.y = _player.damage_UI.total_damage_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier;
|
||||
_player.damage_UI.total_damage_label.offset.x = _player.damage_UI.total_damage_label.offset.x * global_scale_modifier;
|
||||
_player.damage_UI.total_damage_label.offset.y = _player.damage_UI.total_damage_label.offset.y * global_scale_modifier;
|
||||
|
||||
_player.damage_UI.total_damage_value_label.offset.x = _player.damage_UI.total_damage_value_label.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier;
|
||||
_player.damage_UI.total_damage_value_label.offset.y = _player.damage_UI.total_damage_value_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier;
|
||||
_player.damage_UI.total_damage_value_label.offset.x = _player.damage_UI.total_damage_value_label.offset.x * global_scale_modifier;
|
||||
_player.damage_UI.total_damage_value_label.offset.y = _player.damage_UI.total_damage_value_label.offset.y * global_scale_modifier;
|
||||
|
||||
_player.damage_UI.total_dps_label.offset.x = _player.damage_UI.total_dps_label.offset.x * config.current_config.global_settings.modifiers.global_scale_modifier;
|
||||
_player.damage_UI.total_dps_label.offset.y = _player.damage_UI.total_dps_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier;
|
||||
_player.damage_UI.total_dps_label.offset.x = _player.damage_UI.total_dps_label.offset.x * global_scale_modifier;
|
||||
_player.damage_UI.total_dps_label.offset.y = _player.damage_UI.total_dps_label.offset.y * global_scale_modifier;
|
||||
end
|
||||
|
||||
function player.draw(_player, position_on_screen, opacity_scale, top_damage, top_dps)
|
||||
|
||||
Reference in New Issue
Block a user