22 Commits

Author SHA1 Message Date
GreenComfyTea
2390bfe8ac Bump version to v2.7.1 2024-05-23 18:35:07 +03:00
GreenComfyTea
7398bab9ea [Buff UI] Fix buffs not working when Sorting by Timer/Duration is selected 2024-05-12 10:26:43 +03:00
GreenComfyTea
877a48583a Update russian localization 2024-05-11 08:26:14 +03:00
GreenComfyTea
ee6dfe2139 Hide some errors 2024-05-11 08:06:20 +03:00
GreenComfyTea
d4c52617d9 Add Endemic Life Head Tracking 2024-05-06 19:08:08 +03:00
GreenComfyTea
30d858b1f8 Bump version to 2.7 2024-05-06 18:45:16 +03:00
GreenComfyTea
3c8f5019ab Grammar 2024-05-06 18:44:49 +03:00
GreenComfyTea
4caa69930d Add Small and Large Monster Head Tracking 2024-05-06 18:44:33 +03:00
GreenComfyTea
874c89daa5 Update README.md 2024-04-10 13:53:11 +03:00
GreenComfyTea
26590a3e0b Bump version to v2.6.6 2024-03-01 16:57:15 +02:00
GreenComfyTea
1439498a67 [Hunting Horn -> Bead of Resonance]: Fixed in online when not host 2024-03-01 16:57:01 +02:00
GreenComfyTea
6a876ccdb4 Revert "Whitelist default.json localization file"
This reverts commit 9560dad602.
2024-02-09 10:48:45 +02:00
GreenComfyTea
9560dad602 Whitelist default.json localization file 2024-02-09 10:46:56 +02:00
GreenComfyTea
032b77ca95 Bump version to v2.6.5 2024-02-09 10:42:53 +02:00
GreenComfyTea
efdaae5b5a Formatting 2024-02-09 10:42:37 +02:00
GreenComfyTea
419d25070b Make keyboard.update() event-based 2024-02-09 10:42:21 +02:00
GreenComfyTea
bee2e7d873 Update README.md 2024-01-27 13:43:29 +02:00
GreenComfyTea
9bcc1142f6 Update README.md 2024-01-22 20:23:21 +02:00
GreenComfyTea
afec53e5f1 Bump version to 2.6.4 2024-01-22 19:38:42 +02:00
GreenComfyTea
b3cfa61660 Buff UI -> Fix Rampage Skills filters not working 2024-01-22 19:38:11 +02:00
GreenComfyTea
2f10a5d9e5 Buff UI -> Fix Harvest Moon not getting cleared when the buff expires or when skill is switched 2024-01-22 19:37:42 +02:00
GreenComfyTea
0dc74d4cc9 Buff UI -> Clear buff data on error 2024-01-22 19:36:12 +02:00
41 changed files with 889 additions and 506 deletions

View File

@@ -34,14 +34,14 @@
<img alt="Platform" src="https://custom-icon-badges.demolab.com/badge/platform-win%20%7C%20linux%20%7C%20steam%20deck-blue?logo=device-desktop" /> <img alt="Platform" src="https://custom-icon-badges.demolab.com/badge/platform-win%20%7C%20linux%20%7C%20steam%20deck-blue?logo=device-desktop" />
</a> </a>
<a href=""> <a href="">
<img alt="Maintenance" src="https://custom-icon-badges.demolab.com/maintenance/yes/2023?logo=tools" /> <img alt="Maintenance" src="https://custom-icon-badges.demolab.com/maintenance/yes/2024?logo=tools" />
</a> </a>
<br> <br>
<a href="https://www.nexusmods.com/monsterhunterrise/mods/26"> <a href="https://www.nexusmods.com/monsterhunterrise/mods/26">
<img alt="REFramework Dependency" src="https://custom-icon-badges.demolab.com/badge/dependency-REFramework%20v1.503%2B-green?logo=package-dependencies" /> <img alt="REFramework Dependency" src="https://custom-icon-badges.demolab.com/badge/dependency-REFramework%20v1.605%2B-green?logo=package-dependencies" />
</a> </a>
<a href="https://www.nexusmods.com/monsterhunterrise/mods/134"> <a href="https://www.nexusmods.com/monsterhunterrise/mods/134">
<img alt="REFramework Direct2D Dependency" src="https://custom-icon-badges.demolab.com/badge/dependency-REFramework%20Direct2D%20v0.4.0%2B-yellow?logo=package-dependencies" /> <img alt="REFramework Direct2D Dependency" src="https://custom-icon-badges.demolab.com/badge/dependency-REFramework%20Direct2D%20v1.0.0%2B-yellow?logo=package-dependencies" />
</a> </a>
<br> <br>
<br> <br>
@@ -136,7 +136,7 @@
# Requirements # Requirements
1. **[REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26)** (v1.503+); 1. **[REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26)** (v1.503+);
2. **[REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134)** (v0.4.0+) - Needed for Unicode Support. 2. **[REFramework Direct2D](https://www.nexusmods.com/monsterhunterrise/mods/134)** (v1.0.0+) - Needed for Unicode Support.
# How to install: # How to install:
1. Install **[REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26)**; 1. Install **[REFramework](https://www.nexusmods.com/monsterhunterrise/mods/26)**;

View File

@@ -543,7 +543,6 @@ end
re.on_frame(function() re.on_frame(function()
time.update_timers(); time.update_timers();
keyboard.update();
if d2d == nil or not config.current_config.global_settings.renderer.use_d2d_if_available then if d2d == nil or not config.current_config.global_settings.renderer.use_d2d_if_available then
draw_loop(); draw_loop();

View File

@@ -253,7 +253,9 @@ function this.update_poison(player)
local poison_level = poison_level_field:get_data(player); local poison_level = poison_level_field:get_data(player);
if poison_level == nil then if poison_level == nil then
error_handler.report("abnormal_statuses.update_poison", "Failed to access Data: poison_level"); error_handler.report("abnormal_statuses.update_poison", "Failed to Access Data: poison_level");
this.list.poison = nil;
this.list.deadly_poison = nil;
return; return;
end end
@@ -288,7 +290,9 @@ function this.update_bubbleblight(player)
local bubble_type = bubble_type_field:get_data(player); local bubble_type = bubble_type_field:get_data(player);
if bubble_type == nil then if bubble_type == nil then
error_handler.report("abnormal_statuses.update_bubbleblight", "Failed to access Data: bubble_Type"); error_handler.report("abnormal_statuses.update_bubbleblight", "Failed to Access Data: bubble_Type");
this.list.minor_bubbleblight = nil;
this.list.major_bubbleblight = nil;
return; return;
end end
@@ -314,13 +318,15 @@ function this.update_muck(player)
local is_mud_damage = get_is_mud_damage_method:call(player); local is_mud_damage = get_is_mud_damage_method:call(player);
if is_mud_damage == nil then if is_mud_damage == nil then
error_handler.report("abnormal_statuses.update_generic_boolean_value_method", "Failed to access Data: is_mud_damage"); error_handler.report("abnormal_statuses.update_generic_boolean_value_method", "Failed to Access Data: is_mud_damage");
this.list.muck = nil;
return; return;
end end
local is_gold_mud_damage = get_is_gold_mud_damage_method:call(player); local is_gold_mud_damage = get_is_gold_mud_damage_method:call(player);
if is_gold_mud_damage == nil then if is_gold_mud_damage == nil then
error_handler.report("abnormal_statuses.update_generic_boolean_value_method", "Failed to access Data: is_gold_mud_damage"); error_handler.report("abnormal_statuses.update_generic_boolean_value_method", "Failed to Access Data: is_gold_mud_damage");
this.list.muck = nil;
return; return;
end end
@@ -339,13 +345,15 @@ function this.update_frenzy_infection(player)
local virus_accumulator_value = virus_accumulator_field:get_data(player); local virus_accumulator_value = virus_accumulator_field:get_data(player);
if virus_accumulator_value == nil then if virus_accumulator_value == nil then
error_handler.report("abnormal_statuses.update_frenzy_infection", "Failed to access Data: virus_accumulator_value"); error_handler.report("abnormal_statuses.update_frenzy_infection", "Failed to Access Data: virus_accumulator_value");
this.list.frenzy_infection = nil;
return; return;
end end
local virus_timer = virus_timer_field:get_data(player); local virus_timer = virus_timer_field:get_data(player);
if virus_timer == nil then if virus_timer == nil then
error_handler.report("abnormal_statuses.update_frenzy_infection", "Failed to access Data: virus_timer"); error_handler.report("abnormal_statuses.update_frenzy_infection", "Failed to Access Data: virus_timer");
this.list.frenzy_infection = nil;
return; return;
end end
@@ -361,6 +369,7 @@ end
function this.update_sleep(player) function this.update_sleep(player)
if this.apply_filter("sleep") then if this.apply_filter("sleep") then
this.list.sleep = nil;
return; return;
end end

View File

@@ -142,13 +142,17 @@ function this.init_names()
misc_buffs.init_names(); misc_buffs.init_names();
end end
local tere = {};
local tere2 = {};
local tere3 = {};
function this.update() function this.update()
if not config.current_config.buff_UI.enabled then if not config.current_config.buff_UI.enabled then
return; return;
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("buffs.update", "Failed to access Data: player_manager"); error_handler.report("buffs.update", "Failed to Access Data: player_manager");
return; return;
end end
@@ -160,7 +164,7 @@ function this.update()
local master_player = find_master_player_method:call(singletons.player_manager); local master_player = find_master_player_method:call(singletons.player_manager);
if master_player == nil then if master_player == nil then
error_handler.report("buffs.update", "Failed to access Data: master_player"); error_handler.report("buffs.update", "Failed to Access Data: master_player");
return; return;
end end
@@ -168,24 +172,24 @@ function this.update()
local master_player_data = get_player_data_method:call(master_player); local master_player_data = get_player_data_method:call(master_player);
if master_player_data == nil then if master_player_data == nil then
error_handler.report("buffs.update", "Failed to access Data: master_player_data"); error_handler.report("buffs.update", "Failed to Access Data: master_player_data");
return; return;
end end
local weapon_type = player_weapon_type_field:get_data(master_player); local weapon_type = player_weapon_type_field:get_data(master_player);
if weapon_type == nil then if weapon_type == nil then
error_handler.report("buffs.update", "Failed to access Data: weapon_type"); error_handler.report("buffs.update", "Failed to Access Data: weapon_type");
return; return;
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("buffs.update", "Failed to access Data: player_manager"); error_handler.report("buffs.update", "Failed to Access Data: player_manager");
return; return;
end end
local item_parameter = get_ref_item_parameter_method:call(singletons.player_manager); local item_parameter = get_ref_item_parameter_method:call(singletons.player_manager);
if item_parameter == nil then if item_parameter == nil then
error_handler.report("buffs.update", "Failed to access Data: item_parameter"); error_handler.report("buffs.update", "Failed to Access Data: item_parameter");
return; return;
end end
@@ -255,7 +259,8 @@ function this.update_generic_buff(buff_list, filter_list, get_name_function,
end end
if value == nil then if value == nil then
error_handler.report("buffs.update_generic_number", string.format("Failed to access Data: %s_value", buff_key)); error_handler.report("buffs.update_generic_number", string.format("Failed to Access Data: %s_value", buff_key));
buff_list[buff_key] = nil;
return; return;
end end
@@ -291,7 +296,8 @@ function this.update_generic_buff(buff_list, filter_list, get_name_function,
end end
if timer == nil then if timer == nil then
error_handler.report("buffs.update_generic_number", string.format("Failed to access Data: %s_timer", buff_key)); error_handler.report("buffs.update_generic_number", string.format("Failed to Access Data: %s_timer", buff_key));
buff_list[buff_key] = nil;
return; return;
end end

View File

@@ -220,12 +220,14 @@ function this.update_dango_insurance()
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("dango_skills.update_dango_insurance", "Failed to access Data: player_manager"); error_handler.report("dango_skills.update_dango_insurance", "Failed to Access Data: player_manager");
this.list.dango_insurance = nil;
return; return;
end end
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
error_handler.report("dango_skills.update_dango_insurance", "Failed to access Data: quest_manager"); error_handler.report("dango_skills.update_dango_insurance", "Failed to Access Data: quest_manager");
this.list.dango_insurance = nil;
return; return;
end end
@@ -233,13 +235,15 @@ function this.update_dango_insurance()
local flag_cat_skill_insurance = flag_cat_skill_insurance_field:get_data(singletons.quest_manager); local flag_cat_skill_insurance = flag_cat_skill_insurance_field:get_data(singletons.quest_manager);
if flag_cat_skill_insurance == nil then if flag_cat_skill_insurance == nil then
error_handler.report("dango_skills.update_dango_insurance", "Failed to access Data: flag_cat_skill_insurance"); error_handler.report("dango_skills.update_dango_insurance", "Failed to Access Data: flag_cat_skill_insurance");
this.list.dango_insurance = nil;
return; return;
end end
local is_cat_skill_insurance = is_cat_skill_insurance_method:call(singletons.quest_manager, flag_cat_skill_insurance); local is_cat_skill_insurance = is_cat_skill_insurance_method:call(singletons.quest_manager, flag_cat_skill_insurance);
if is_cat_skill_insurance == nil then if is_cat_skill_insurance == nil then
error_handler.report("dango_skills.update_dango_insurance", "Failed to access Data: is_cat_skill_insurance"); error_handler.report("dango_skills.update_dango_insurance", "Failed to Access Data: is_cat_skill_insurance");
this.list.dango_insurance = nil;
return; return;
end end
@@ -260,7 +264,8 @@ function this.update_dango_insurance_defense_up(player_data)
local insurance_def_up_lv3 = kitchen_skill_insurance_def_up_lv3_field:get_data(player_data); local insurance_def_up_lv3 = kitchen_skill_insurance_def_up_lv3_field:get_data(player_data);
if insurance_def_up_lv3 == nil then if insurance_def_up_lv3 == nil then
error_handler.report("dango_skills.update_dango_insurance_defense_up", "Failed to access Data: insurance_def_up_lv3"); error_handler.report("dango_skills.update_dango_insurance_defense_up", "Failed to Access Data: insurance_def_up_lv3");
this.list.dango_insurance_defense_up = nil;
return; return;
end end
@@ -268,7 +273,8 @@ function this.update_dango_insurance_defense_up(player_data)
local insurance_def_up_lv4 = kitchen_skill_insurance_def_up_lv4_field:get_data(player_data); local insurance_def_up_lv4 = kitchen_skill_insurance_def_up_lv4_field:get_data(player_data);
if insurance_def_up_lv4 == nil then if insurance_def_up_lv4 == nil then
error_handler.report("dango_skills.update_dango_insurance_defense_up", "Failed to access Data: insurance_def_up_lv4"); error_handler.report("dango_skills.update_dango_insurance_defense_up", "Failed to Access Data: insurance_def_up_lv4");
this.list.dango_insurance_defense_up = nil;
return; return;
end end
@@ -292,7 +298,8 @@ function this.update_dango_flyer(player)
local is_kitchen_skill_wire_stop_regene = get_is_kitchen_skill_wire_stop_regene_method:call(player); local is_kitchen_skill_wire_stop_regene = get_is_kitchen_skill_wire_stop_regene_method:call(player);
if is_kitchen_skill_wire_stop_regene == nil then if is_kitchen_skill_wire_stop_regene == nil then
error_handler.report("dango_skills.update_dango_flyer", "Failed to access Data: is_kitchen_skill_wire_stop_regene"); error_handler.report("dango_skills.update_dango_flyer", "Failed to Access Data: is_kitchen_skill_wire_stop_regene");
this.list.dango_flyer = nil;
return; return;
end end
@@ -300,7 +307,8 @@ function this.update_dango_flyer(player)
local is_kitchen_skill_wire_stop_heal_spd = get_is_kitchen_skill_wire_stop_heal_spd_method:call(player); local is_kitchen_skill_wire_stop_heal_spd = get_is_kitchen_skill_wire_stop_heal_spd_method:call(player);
if is_kitchen_skill_wire_stop_heal_spd == nil then if is_kitchen_skill_wire_stop_heal_spd == nil then
error_handler.report("dango_skills.update_dango_flyer", "Failed to access Data: is_kitchen_skill_wire_stop_heal_spd"); error_handler.report("dango_skills.update_dango_flyer", "Failed to Access Data: is_kitchen_skill_wire_stop_heal_spd");
this.list.dango_flyer = nil;
return; return;
end end
@@ -330,7 +338,8 @@ function this.update_super_recovery_dango(player)
local kitchen_skill_surume_regene_timer = get_kitchen_skill_surume_regene_timer_method:call(player); local kitchen_skill_surume_regene_timer = get_kitchen_skill_surume_regene_timer_method:call(player);
if kitchen_skill_surume_regene_timer == nil then if kitchen_skill_surume_regene_timer == nil then
error_handler.report("dango_skills.update_super_recovery_dango", "Failed to access Data: kitchen_skill_surume_regene_timer"); error_handler.report("dango_skills.update_super_recovery_dango", "Failed to Access Data: kitchen_skill_surume_regene_timer");
this.list.super_recovery_dango = nil;
return; return;
end end
@@ -370,7 +379,7 @@ function this.get_dango_skill_name(key)
local dango_skill_name = get_name_method:call(nil, dango_skill_id); local dango_skill_name = get_name_method:call(nil, dango_skill_id);
if dango_skill_name == nil then if dango_skill_name == nil then
error_handler.report("dango_skills.get_dango_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("dango_skills.get_dango_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -143,7 +143,9 @@ function this.update_ruby_and_gold_wirebugs(player, player_data)
local marionette_mode_type = get_marionette_mode_type_method:call(player); local marionette_mode_type = get_marionette_mode_type_method:call(player);
if marionette_mode_type == nil then if marionette_mode_type == nil then
error_handler.report("endemic_life_buffs.update_ruby_and_gold_wirebugs", "Failed to access Data: marionette_mode_type"); error_handler.report("endemic_life_buffs.update_ruby_and_gold_wirebugs", "Failed to Access Data: marionette_mode_type");
this.list.ruby_wirebug = nil;
this.list.gold_wirebug = nil;
end end
if marionette_mode_type ~= 1 and marionette_mode_type ~= 2 then if marionette_mode_type ~= 1 and marionette_mode_type ~= 2 then
@@ -167,7 +169,8 @@ function this.update_butterflame(player_data)
local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data); local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data);
if atk_up_buff_second == nil then if atk_up_buff_second == nil then
error_handler.report("item_buffs.update_butterflame", "Failed to access Data: atk_up_buff_second"); error_handler.report("item_buffs.update_butterflame", "Failed to Access Data: atk_up_buff_second");
this.list.butterflame = nil;
return; return;
end end
@@ -193,13 +196,13 @@ end
function this.get_endemic_life_name(key) function this.get_endemic_life_name(key)
if singletons.message_manager == nil then if singletons.message_manager == nil then
error_handler.report("endemic_life_buffs.get_endemic_life_name", "Failed to access Data: message_manager"); error_handler.report("endemic_life_buffs.get_endemic_life_name", "Failed to Access Data: message_manager");
return key; return key;
end end
local endemic_life_name = get_env_creature_name_message_method:call(singletons.message_manager, env_creature.creature_ids[key]); local endemic_life_name = get_env_creature_name_message_method:call(singletons.message_manager, env_creature.creature_ids[key]);
if endemic_life_name == nil then if endemic_life_name == nil then
error_handler.report("endemic_life_buffs.get_endemic_life_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("endemic_life_buffs.get_endemic_life_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -170,7 +170,9 @@ function this.update_demondrug(player_data, item_parameter)
local demondrug_value = atk_up_alive_field:get_data(player_data); local demondrug_value = atk_up_alive_field:get_data(player_data);
if demondrug_value == nil then if demondrug_value == nil then
error_handler.report("item_buffs.update_demondrug", "Failed to access Data: demondrug_value"); error_handler.report("item_buffs.update_demondrug", "Failed to Access Data: demondrug_value");
this.list.demondrug = nil;
this.list.mega_demondrug = nil;
return; return;
end end
@@ -182,13 +184,17 @@ function this.update_demondrug(player_data, item_parameter)
local demondrug_const_value = demondrug_atk_up_field:get_data(item_parameter); local demondrug_const_value = demondrug_atk_up_field:get_data(item_parameter);
if demondrug_const_value == nil then if demondrug_const_value == nil then
error_handler.report("item_buffs.update_demondrug", "Failed to access Data: demondrug_const_value"); error_handler.report("item_buffs.update_demondrug", "Failed to Access Data: demondrug_const_value");
this.list.demondrug = nil;
this.list.mega_demondrug = nil;
return; return;
end end
local mega_demondrug_const_value = great_demondrug_atk_up_field:get_data(item_parameter); local mega_demondrug_const_value = great_demondrug_atk_up_field:get_data(item_parameter);
if mega_demondrug_const_value == nil then if mega_demondrug_const_value == nil then
error_handler.report("item_buffs.update_demondrug", "Failed to access Data: mega_demondrug_const_value"); error_handler.report("item_buffs.update_demondrug", "Failed to Access Data: mega_demondrug_const_value");
this.list.demondrug = nil;
this.list.mega_demondrug = nil;
return; return;
end end
@@ -221,7 +227,9 @@ function this.update_armorskin(player_data, item_parameter)
local armorskin_value = def_up_alive_field:get_data(player_data); local armorskin_value = def_up_alive_field:get_data(player_data);
if armorskin_value == nil then if armorskin_value == nil then
error_handler.report("item_buffs.update_armorskin", "Failed to access Data: armorskin_value"); error_handler.report("item_buffs.update_armorskin", "Failed to Access Data: armorskin_value");
this.list.armorskin = nil;
this.list.mega_armorskin = nil;
return; return;
end end
@@ -233,13 +241,17 @@ function this.update_armorskin(player_data, item_parameter)
local armorskin_const_value = armorskin_def_up_field:get_data(item_parameter); local armorskin_const_value = armorskin_def_up_field:get_data(item_parameter);
if armorskin_const_value == nil then if armorskin_const_value == nil then
error_handler.report("item_buffs.update_armorskin", "Failed to access Data: armorskin_const_value"); error_handler.report("item_buffs.update_armorskin", "Failed to Access Data: armorskin_const_value");
this.list.armorskin = nil;
this.list.mega_armorskin = nil;
return; return;
end end
local mega_armorskin_const_value = great_armorskin_def_up_field:get_data(item_parameter); local mega_armorskin_const_value = great_armorskin_def_up_field:get_data(item_parameter);
if mega_armorskin_const_value == nil then if mega_armorskin_const_value == nil then
error_handler.report("item_buffs.update_armorskin", "Failed to access Data: mega_armorskin_const_value"); error_handler.report("item_buffs.update_armorskin", "Failed to Access Data: mega_armorskin_const_value");
this.list.armorskin = nil;
this.list.mega_armorskin = nil;
return; return;
end end
@@ -268,13 +280,15 @@ function this.update_might_seed(player_data, item_parameter)
local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data); local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data);
if atk_up_buff_second == nil then if atk_up_buff_second == nil then
error_handler.report("item_buffs.update_might_seed", "Failed to access Data: atk_up_buff_second"); error_handler.report("item_buffs.update_might_seed", "Failed to Access Data: atk_up_buff_second");
this.list.might_seed = nil;
return; return;
end end
local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter); local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter);
if might_seed_atk_up == nil then if might_seed_atk_up == nil then
error_handler.report("item_buffs.update_might_seed", "Failed to access Data: might_seed_atk_up"); error_handler.report("item_buffs.update_might_seed", "Failed to Access Data: might_seed_atk_up");
this.list.might_seed = nil;
return; return;
end end
@@ -301,7 +315,7 @@ end
function this.get_item_buff_name(key) function this.get_item_buff_name(key)
local item_buff_name = get_name_method:call(nil, item_ids[key]); local item_buff_name = get_name_method:call(nil, item_ids[key]);
if item_buff_name == nil then if item_buff_name == nil then
error_handler.report("item_buffs.get_item_buff_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("item_buffs.get_item_buff_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -127,13 +127,13 @@ local get_name_method = data_shortcut_type_def:get_method("getName(snow.data.Dat
function this.update(master_player) function this.update(master_player)
local music_data_array = music_data_field:get_data(master_player); local music_data_array = music_data_field:get_data(master_player);
if music_data_array == nil then if music_data_array == nil then
error_handler.report("melody_effects.update", "Failed to access Data: music_data_array"); error_handler.report("melody_effects.update", "Failed to Access Data: music_data_array");
return; return;
end end
local length = get_length_method:call(music_data_array); local length = get_length_method:call(music_data_array);
if length == nil then if length == nil then
error_handler.report("melody_effects.update", "Failed to access Data: music_data_array -> length"); error_handler.report("melody_effects.update", "Failed to Access Data: music_data_array -> length");
return; return;
end end
@@ -152,7 +152,8 @@ function this.update(master_player)
local music_data = get_value_method:call(music_data_array, id); local music_data = get_value_method:call(music_data_array, id);
if music_data == nil then if music_data == nil then
error_handler.report("melody_effects.update", "Failed to access Data: music_data No." .. tostring(id)); error_handler.report("melody_effects.update", "Failed to Access Data: music_data No." .. tostring(id));
this.list[lua_index] = nil;
goto continue; goto continue;
end end
@@ -164,7 +165,8 @@ end
function this.update_melody_effect(lua_index, id, key, melody_effect, melody_data) function this.update_melody_effect(lua_index, id, key, melody_effect, melody_data)
local melody_timer = time_field:get_data(melody_data); local melody_timer = time_field:get_data(melody_data);
if melody_timer == nil then if melody_timer == nil then
error_handler.report("melody_effects.update_melody_effect", "Failed to access Data: melody_timer No. " .. tostring(id)); error_handler.report("melody_effects.update_melody_effect", "Failed to Access Data: melody_timer No. " .. tostring(id));
this.list[lua_index] = nil;
return; return;
end end
@@ -231,7 +233,7 @@ function this.get_melody_effect_name(id)
local melody_effect_name = get_name_method:call(nil, id); local melody_effect_name = get_name_method:call(nil, id);
if melody_effect_name == nil then if melody_effect_name == nil then
local name = string.format("Melody Effect No. %d", id); local name = string.format("Melody Effect No. %d", id);
error_handler.report("melody_effects.get_melody_effect_name", "Failed to access Data: " .. melody_effect_name); error_handler.report("melody_effects.get_melody_effect_name", "Failed to Access Data: " .. melody_effect_name);
return name; return name;
end end

View File

@@ -130,13 +130,15 @@ function this.update_attack_up(player_data, item_parameter)
local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data); local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data);
if atk_up_buff_second == nil then if atk_up_buff_second == nil then
error_handler.report("item_buffs.update_attack_up", "Failed to access Data: atk_up_buff_second"); error_handler.report("item_buffs.update_attack_up", "Failed to Access Data: atk_up_buff_second");
this.list.attack_up = nil;
return; return;
end end
local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter); local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter);
if might_seed_atk_up == nil then if might_seed_atk_up == nil then
error_handler.report("item_buffs.update_might_seed", "Failed to access Data: might_seed_atk_up"); error_handler.report("item_buffs.update_might_seed", "Failed to Access Data: might_seed_atk_up");
this.list.attack_up = nil;
return; return;
end end

View File

@@ -134,7 +134,7 @@ end
function this.get_otomo_move_name(key) function this.get_otomo_move_name(key)
local otomo_move_name = get_name_method:call(nil, otomo_moves_ids[key]); local otomo_move_name = get_name_method:call(nil, otomo_moves_ids[key]);
if otomo_move_name == nil then if otomo_move_name == nil then
error_handler.report("otomo_moves.get_otomo_move_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("otomo_moves.get_otomo_move_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -88,7 +88,7 @@ function this.update_rampage_skill(key, value_owner, value_holder, timer_owner,
end end
function this.apply_filter(key) function this.apply_filter(key)
return this.apply_filter(this.list, config.current_config.buff_UI.filter.rampage_skills, key); return buffs.apply_filter(this.list, config.current_config.buff_UI.filter.rampage_skills, key);
end end
function this.init_all_UI() function this.init_all_UI()
@@ -106,7 +106,7 @@ end
function this.get_rampage_skill_name(key) function this.get_rampage_skill_name(key)
local rampage_skill_name = get_name_method:call(nil, rampage_skill_ids[key]); local rampage_skill_name = get_name_method:call(nil, rampage_skill_ids[key]);
if rampage_skill_name == nil then if rampage_skill_name == nil then
error_handler.report("rampage_skills.get_rampage_skill_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("rampage_skills.get_rampage_skill_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -472,7 +472,7 @@ end
function this.update_equipped_skill_data(player) function this.update_equipped_skill_data(player)
local player_skill_list = get_player_skill_list_method:call(player); local player_skill_list = get_player_skill_list_method:call(player);
if player_skill_list == nil then if player_skill_list == nil then
error_handler.report("this.update_equipped_skill_data", "Failed to access Data: player_skill_list"); error_handler.report("this.update_equipped_skill_data", "Failed to Access Data: player_skill_list");
return; return;
end end
@@ -490,7 +490,7 @@ function this.update_equipped_skill_data(player)
local skill_level = skill_lv_field:get_data(re_skill_data); local skill_level = skill_lv_field:get_data(re_skill_data);
if skill_level == nil then if skill_level == nil then
error_handler.report("skills.update_equipped_skill_data", string.format("Failed to access Data: %s -> skill_level", skill_key)); error_handler.report("skills.update_equipped_skill_data", string.format("Failed to Access Data: %s -> skill_level", skill_key));
goto continue; goto continue;
end end
@@ -514,7 +514,8 @@ function this.update_wind_mantle(player, weapon_type)
local is_wind_mantle_enable = is_equip_skill_226_enable_field:get_data(player); local is_wind_mantle_enable = is_equip_skill_226_enable_field:get_data(player);
if is_wind_mantle_enable == nil then if is_wind_mantle_enable == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: is_wind_mantle_enable"); error_handler.report("skills.update_wind_mantle", "Failed to Access Data: is_wind_mantle_enable");
this.list.wind_mantle = nil;
return; return;
end end
@@ -525,13 +526,15 @@ function this.update_wind_mantle(player, weapon_type)
local wind_mantle_timer = equip_skill_226_attack_off_timer_field:get_data(player); local wind_mantle_timer = equip_skill_226_attack_off_timer_field:get_data(player);
if wind_mantle_timer == nil then if wind_mantle_timer == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: wind_mantle_timer"); error_handler.report("skills.update_wind_mantle", "Failed to Access Data: wind_mantle_timer");
this.list.wind_mantle = nil;
return; return;
end end
local wind_mantle_value = equip_skill_226_attack_count_field:get_data(player); local wind_mantle_value = equip_skill_226_attack_count_field:get_data(player);
if wind_mantle_value == nil then if wind_mantle_value == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: wind_mantle_value"); error_handler.report("skills.update_wind_mantle", "Failed to Access Data: wind_mantle_value");
this.list.wind_mantle = nil;
return; return;
end end
@@ -564,11 +567,13 @@ function this.update_maximum_might(player_data)
local whole_body_timer = whole_body_timer_field:get_data(player_data); local whole_body_timer = whole_body_timer_field:get_data(player_data);
if whole_body_timer == nil then if whole_body_timer == nil then
error_handler.report("skills.update_maximum_might", "Failed to access Data: whole_body_timer"); error_handler.report("skills.update_maximum_might", "Failed to Access Data: whole_body_timer");
this.list.maximum_might = nil;
return; return;
end end
if player_info.list.max_stamina == -1 then if player_info.list.max_stamina == -1 then
this.list.maximum_might = nil;
return; return;
end end
@@ -627,7 +632,8 @@ function this.update_bloodlust()
if bloodlust == nil then if bloodlust == nil then
local bloodlust_name = this.get_skill_name("bloodlust"); local bloodlust_name = this.get_skill_name("bloodlust");
if bloodlust_name == nil then if bloodlust_name == nil then
error_handler.report("skills.update_bloodlust", "Failed to access Data: bloodlust_name"); error_handler.report("skills.update_bloodlust", "Failed to Access Data: bloodlust_name");
this.list.bloodlust = nil;
return; return;
end end
@@ -644,7 +650,8 @@ function this.update_frenzied_bloodlust(player, player_data)
local hunter_wire_skill_231_num = get_hunter_wire_skill_231_num_method:call(player); local hunter_wire_skill_231_num = get_hunter_wire_skill_231_num_method:call(player);
if hunter_wire_skill_231_num == nil then if hunter_wire_skill_231_num == nil then
error_handler.report("skills.update_frenzied_bloodlust", "Failed to access Data: hunter_wire_skill_231_num"); error_handler.report("skills.update_frenzied_bloodlust", "Failed to Access Data: hunter_wire_skill_231_num");
this.list.frenzied_bloodlust = nil;
return; return;
end end
@@ -657,13 +664,15 @@ function this.update_frenzied_bloodlust(player, player_data)
local equip_skill_231_wire_num_timer = equip_skill_231_wire_num_timer_field:get_data(player_data); local equip_skill_231_wire_num_timer = equip_skill_231_wire_num_timer_field:get_data(player_data);
if equip_skill_231_wire_num_timer == nil then if equip_skill_231_wire_num_timer == nil then
error_handler.report("skills.update_frenzied_bloodlust", "Failed to access Data: equip_skill_231_wire_num_timer"); error_handler.report("skills.update_frenzied_bloodlust", "Failed to Access Data: equip_skill_231_wire_num_timer");
this.list.frenzied_bloodlust = nil;
return; return;
end end
local equip_skill_231_wp_off_timer = equip_skill_231_wp_off_timer_field:get_data(player_data); local equip_skill_231_wp_off_timer = equip_skill_231_wp_off_timer_field:get_data(player_data);
if equip_skill_231_wp_off_timer == nil then if equip_skill_231_wp_off_timer == nil then
error_handler.report("skills.update_frenzied_bloodlust", "Failed to access Data: equip_skill_231_wp_off_timer"); error_handler.report("skills.update_frenzied_bloodlust", "Failed to Access Data: equip_skill_231_wp_off_timer");
this.list.frenzied_bloodlust = nil;
return; return;
end end
@@ -770,7 +779,8 @@ function this.update_resentment(player_data)
local r_vital = r_vital_field:get_data(player_data); local r_vital = r_vital_field:get_data(player_data);
if r_vital == nil then if r_vital == nil then
error_handler.report("skills.update_resentment", "Failed to access Data: r_vital"); error_handler.report("skills.update_resentment", "Failed to Access Data: r_vital");
this.list.resentment = nil;
return; return;
end end
@@ -802,7 +812,8 @@ function this.update_spiribirds_call(player_data)
local equip_skill_211_timer = equip_skill_211_timer_field:get_data(player_data); local equip_skill_211_timer = equip_skill_211_timer_field:get_data(player_data);
if equip_skill_211_timer == nil then if equip_skill_211_timer == nil then
error_handler.report("skills.update_spiribirds_call", "Failed to access Data: equip_skill_211_timer"); error_handler.report("skills.update_spiribirds_call", "Failed to Access Data: equip_skill_211_timer");
this.list.spiribirds_call = nil;
return; return;
end end
@@ -863,7 +874,7 @@ function this.get_skill_name(key)
local skill_name = get_name_method:call(nil, skill_data_list[key].id); local skill_name = get_name_method:call(nil, skill_data_list[key].id);
if skill_name == nil then if skill_name == nil then
error_handler.report("skills.get_skill_name", string.format("Failed to access Data: %s_name", key)); error_handler.report("skills.get_skill_name", string.format("Failed to Access Data: %s_name", key));
return key; return key;
end end

View File

@@ -586,35 +586,41 @@ function this.update_harvest_moon()
end end
if singletons.long_sword_shell_manager == nil then if singletons.long_sword_shell_manager == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: long_sword_shell_manager"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: long_sword_shell_manager");
this.list.harvest_moon = nil;
return; return;
end end
local master_long_sword_shell_010_list = get_master_long_sword_shell_010s_method:call(singletons.long_sword_shell_manager, players.myself.id); local master_long_sword_shell_010_list = get_master_long_sword_shell_010s_method:call(singletons.long_sword_shell_manager, players.myself.id);
if master_long_sword_shell_010_list == nil then if master_long_sword_shell_010_list == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: master_long_sword_shell_010_list"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: master_long_sword_shell_010_list");
this.list.harvest_moon = nil;
return; return;
end end
local master_long_sword_shell_010_list_count = get_long_sword_shell_010_list_count_method:call(master_long_sword_shell_010_list); local master_long_sword_shell_010_list_count = get_long_sword_shell_010_list_count_method:call(master_long_sword_shell_010_list);
if master_long_sword_shell_010_list_count == nil then if master_long_sword_shell_010_list_count == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: master_long_sword_shell_010_list_count"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: master_long_sword_shell_010_list_count");
this.list.harvest_moon = nil;
return; return;
end end
if master_long_sword_shell_010_list_count == 0 then if master_long_sword_shell_010_list_count == 0 then
this.list.harvest_moon = nil;
return; return;
end end
local master_long_sword_shell_010 = get_long_sword_shell_010_list_item_method:call(master_long_sword_shell_010_list, 0); local master_long_sword_shell_010 = get_long_sword_shell_010_list_item_method:call(master_long_sword_shell_010_list, 0);
if master_long_sword_shell_010 == nil then if master_long_sword_shell_010 == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: master_long_sword_shell_010"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: master_long_sword_shell_010");
this.list.harvest_moon = nil;
return; return;
end end
local life_timer = long_sword_shell_010_life_timer_field:get_data(master_long_sword_shell_010); local life_timer = long_sword_shell_010_life_timer_field:get_data(master_long_sword_shell_010);
if life_timer == nil then if life_timer == nil then
error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: life_timer"); error_handler.report("weapon_skills.update_harvest_moon", "Failed to Access Data: life_timer");
this.list.harvest_moon = nil;
return; return;
end end
@@ -639,7 +645,8 @@ function this.update_wyvernblast_reload(player_data)
local wyvernblast_reload_timer = wyvernblast_reload_timer_field:get_data(player_data); local wyvernblast_reload_timer = wyvernblast_reload_timer_field:get_data(player_data);
if wyvernblast_reload_timer == nil then if wyvernblast_reload_timer == nil then
error_handler.report("weapon_skills.update_wyvernblast_reload", "Failed to access Data: heavy_bowgun_overheat_timer_field"); error_handler.report("weapon_skills.update_wyvernblast_reload", "Failed to Access Data: heavy_bowgun_overheat_timer_field");
this.list.wyvernblast_reload = nil;
return; return;
end end
@@ -668,19 +675,22 @@ function this.update_rising_moon()
end end
if singletons.light_bowgun_shell_manager == nil then if singletons.light_bowgun_shell_manager == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_manager"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: light_bowgun_shell_manager");
this.list.rising_moon = nil;
return; return;
end end
local light_bowgun_shell_030s_speed_boost_list = get_light_bowgun_shell_030s_speed_boost_list_method:call(singletons.light_bowgun_shell_manager); local light_bowgun_shell_030s_speed_boost_list = get_light_bowgun_shell_030s_speed_boost_list_method:call(singletons.light_bowgun_shell_manager);
if light_bowgun_shell_030s_speed_boost_list == nil then if light_bowgun_shell_030s_speed_boost_list == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_030s_speed_boost_list"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: light_bowgun_shell_030s_speed_boost_list");
this.list.rising_moon = nil;
return; return;
end end
local light_bowgun_shell_030_speed_boost_list_count = get_light_bowgun_shell_030_list_count_method:call(light_bowgun_shell_030s_speed_boost_list); local light_bowgun_shell_030_speed_boost_list_count = get_light_bowgun_shell_030_list_count_method:call(light_bowgun_shell_030s_speed_boost_list);
if light_bowgun_shell_030_speed_boost_list_count == nil then if light_bowgun_shell_030_speed_boost_list_count == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_030_speed_boost_list_count"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: light_bowgun_shell_030_speed_boost_list_count");
this.list.rising_moon = nil;
return; return;
end end
@@ -689,16 +699,17 @@ function this.update_rising_moon()
return; return;
end end
-- Possibly requires players.myself.id instead of 0?
local light_bowgun_shell_030 = get_light_bowgun_shell_030_list_item_method:call(light_bowgun_shell_030s_speed_boost_list, 0); local light_bowgun_shell_030 = get_light_bowgun_shell_030_list_item_method:call(light_bowgun_shell_030s_speed_boost_list, 0);
if light_bowgun_shell_030 == nil then if light_bowgun_shell_030 == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_030"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: light_bowgun_shell_030");
this.list.rising_moon = nil;
return; return;
end end
local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030); local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030);
if is_hit_enable == nil then if is_hit_enable == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: is_hit_enable"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: is_hit_enable");
this.list.rising_moon = nil;
return; return;
end end
@@ -709,7 +720,8 @@ function this.update_rising_moon()
local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030); local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030);
if timer == nil then if timer == nil then
error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: timer"); error_handler.report("weapon_skills.update_rising_moon", "Failed to Access Data: timer");
this.list.rising_moon = nil;
return; return;
end end
@@ -727,19 +739,22 @@ function this.update_setting_sun()
end end
if singletons.light_bowgun_shell_manager == nil then if singletons.light_bowgun_shell_manager == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_manager"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: light_bowgun_shell_manager");
this.list.setting_sun = nil;
return; return;
end end
local light_bowgun_shell_030s_all_list = get_light_bowgun_shell_030s_all_list_method:call(singletons.light_bowgun_shell_manager); local light_bowgun_shell_030s_all_list = get_light_bowgun_shell_030s_all_list_method:call(singletons.light_bowgun_shell_manager);
if light_bowgun_shell_030s_all_list == nil then if light_bowgun_shell_030s_all_list == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030s_all_list"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: light_bowgun_shell_030s_all_list");
this.list.setting_sun = nil;
return; return;
end end
local light_bowgun_shell_030_all_list_count = get_light_bowgun_shell_030_list_count_method:call(light_bowgun_shell_030s_all_list); local light_bowgun_shell_030_all_list_count = get_light_bowgun_shell_030_list_count_method:call(light_bowgun_shell_030s_all_list);
if light_bowgun_shell_030_all_list_count == nil then if light_bowgun_shell_030_all_list_count == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030_all_list_count"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: light_bowgun_shell_030_all_list_count");
this.list.setting_sun = nil;
return; return;
end end
@@ -753,16 +768,17 @@ function this.update_setting_sun()
return; return;
end end
-- Possibly requires players.myself.id instead of 0?
local light_bowgun_shell_030 = get_light_bowgun_shell_030_list_item_method:call(light_bowgun_shell_030s_all_list, 0); local light_bowgun_shell_030 = get_light_bowgun_shell_030_list_item_method:call(light_bowgun_shell_030s_all_list, 0);
if light_bowgun_shell_030 == nil then if light_bowgun_shell_030 == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: light_bowgun_shell_030");
this.list.setting_sun = nil;
return; return;
end end
local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030); local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030);
if is_hit_enable == nil then if is_hit_enable == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: is_hit_enable"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: is_hit_enable");
this.list.setting_sun = nil;
return; return;
end end
@@ -773,7 +789,8 @@ function this.update_setting_sun()
local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030); local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030);
if timer == nil then if timer == nil then
error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: timer"); error_handler.report("weapon_skills.update_setting_sun", "Failed to Access Data: timer");
this.list.setting_sun = nil;
return; return;
end end
@@ -792,7 +809,8 @@ function this.update_overheat(player_data)
local heavy_bowgun_overheat_timer = heavy_bowgun_overheat_timer_field:get_data(player_data); local heavy_bowgun_overheat_timer = heavy_bowgun_overheat_timer_field:get_data(player_data);
if heavy_bowgun_overheat_timer_field == nil then if heavy_bowgun_overheat_timer_field == nil then
error_handler.report("weapon_skills.update_overheat", "Failed to access Data: heavy_bowgun_overheat_timer_field"); error_handler.report("weapon_skills.update_overheat", "Failed to Access Data: heavy_bowgun_overheat_timer_field");
this.list.overheat = nil;
return; return;
end end
@@ -827,7 +845,8 @@ function this.update_twin_wine(player)
local chain_death_match_shell = chain_death_match_shell_field:get_data(player); local chain_death_match_shell = chain_death_match_shell_field:get_data(player);
if chain_death_match_shell == nil then if chain_death_match_shell == nil then
error_handler.report("weapon_skills.update_twin_wine", "Failed to access Data: chain_death_match_shell"); error_handler.report("weapon_skills.update_twin_wine", "Failed to Access Data: chain_death_match_shell");
this.list.twin_wine = nil;
return; return;
end end
@@ -851,7 +870,8 @@ function this.update_archdemon_mode(player)
local is_kijin_kyouka = is_kijin_kyouka_field:get_data(player); local is_kijin_kyouka = is_kijin_kyouka_field:get_data(player);
if is_kijin_kyouka == nil then if is_kijin_kyouka == nil then
error_handler.report("weapon_skills.update_archdemon_mode", "Failed to access Data: is_kijin_kyouka"); error_handler.report("weapon_skills.update_archdemon_mode", "Failed to Access Data: is_kijin_kyouka");
this.list.archdemon_mode = nil;
return; return;
end end
@@ -862,7 +882,8 @@ function this.update_archdemon_mode(player)
local kijin_kyouka_gauge = get_kijin_kyouka_gauge_method:call(player); local kijin_kyouka_gauge = get_kijin_kyouka_gauge_method:call(player);
if kijin_kyouka_gauge == nil then if kijin_kyouka_gauge == nil then
error_handler.report("weapon_skills.update_archdemon_mode", "Failed to access Data: kijin_kyouka_gauge"); error_handler.report("weapon_skills.update_archdemon_mode", "Failed to Access Data: kijin_kyouka_gauge");
this.list.archdemon_mode = nil;
return; return;
end end
@@ -887,36 +908,41 @@ function this.update_bead_of_resonance()
end end
if singletons.horn_shell_manager == nil then if singletons.horn_shell_manager == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_manager"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_manager");
this.list.bead_of_resonance = nil;
return; return;
end end
local horn_shell_003s_array = horn_shell_003s_field:get_data(singletons.horn_shell_manager); local horn_shell_003s_array = horn_shell_003s_field:get_data(singletons.horn_shell_manager);
if horn_shell_003s_array == nil then if horn_shell_003s_array == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003s_list"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003s_list");
this.list.bead_of_resonance = nil;
return; return;
end end
local horn_shell_003s_array_length = get_length_method:call(horn_shell_003s_array); local horn_shell_003s_array_length = get_length_method:call(horn_shell_003s_array);
if horn_shell_003s_array_length == nil then if horn_shell_003s_array_length == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003s_array_length"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003s_array_length");
return;
end
if players.myself.id >= horn_shell_003s_array_length then
this.list.bead_of_resonance = nil; this.list.bead_of_resonance = nil;
return; return;
end end
local horn_shell_003_list = get_value_method:call(horn_shell_003s_array, players.myself.id); if horn_shell_003s_array_length == 0 then
this.list.bead_of_resonance = nil;
return;
end
local horn_shell_003_list = get_value_method:call(horn_shell_003s_array, 0);
if horn_shell_003_list == nil then if horn_shell_003_list == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003_list"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003_list");
this.list.bead_of_resonance = nil;
return; return;
end end
local horn_shell_003_list_count = get_horn_shell_003_list_count_method:call(horn_shell_003_list); local horn_shell_003_list_count = get_horn_shell_003_list_count_method:call(horn_shell_003_list);
if horn_shell_003_list_count == nil then if horn_shell_003_list_count == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003_list_count"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003_list_count");
this.list.bead_of_resonance = nil;
return; return;
end end
@@ -927,13 +953,15 @@ function this.update_bead_of_resonance()
local horn_shell_003 = get_horn_shell_003_list_item_method:call(horn_shell_003_list, 0); local horn_shell_003 = get_horn_shell_003_list_item_method:call(horn_shell_003_list, 0);
if horn_shell_003 == nil then if horn_shell_003 == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: horn_shell_003");
this.list.bead_of_resonance = nil;
return; return;
end end
local life_timer = horn_shell_003_life_timer_field:get_data(horn_shell_003); local life_timer = horn_shell_003_life_timer_field:get_data(horn_shell_003);
if life_timer == nil then if life_timer == nil then
error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: life_timer"); error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to Access Data: life_timer");
this.list.bead_of_resonance = nil;
return; return;
end end
@@ -958,7 +986,8 @@ function this.update_sonic_bloom(player)
local life_timer = horn_shell_020_life_timer_field:get_data(blast_speaker_shell); local life_timer = horn_shell_020_life_timer_field:get_data(blast_speaker_shell);
if life_timer == nil then if life_timer == nil then
error_handler.report("weapon_skills.update_sonic_bloom", "Failed to access Data: life_timer"); error_handler.report("weapon_skills.update_sonic_bloom", "Failed to Access Data: life_timer");
this.list.sonic_bloom = nil;
return; return;
end end
@@ -997,7 +1026,8 @@ function this.update_all_extracts_mix(player)
local is_get_all_extractive = is_get_all_extractive_method:call(player); local is_get_all_extractive = is_get_all_extractive_method:call(player);
if is_get_all_extractive == nil then if is_get_all_extractive == nil then
error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to access Data: is_get_all_extractive"); error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to Access Data: is_get_all_extractive");
this.list.all_extracts_mix = nil;
return; return;
end end
@@ -1008,7 +1038,8 @@ function this.update_all_extracts_mix(player)
local red_extractive_time = get_red_extractive_time_method:call(player); local red_extractive_time = get_red_extractive_time_method:call(player);
if red_extractive_time == nil then if red_extractive_time == nil then
error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to access Data: red_extractive_time"); error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to Access Data: red_extractive_time");
this.list.all_extracts_mix = nil;
return; return;
end end
@@ -1027,7 +1058,8 @@ function this.update_extract(player, extract_key, time_holder)
local extractive_time = time_holder:call(player); local extractive_time = time_holder:call(player);
if extractive_time == nil then if extractive_time == nil then
error_handler.report("weapon_skills.update_extract", string.format("Failed to access Data: %s_extractive_time", extract_key)); error_handler.report("weapon_skills.update_extract", string.format("Failed to Access Data: %s_extractive_time", extract_key));
this.list[extract_key] = nil;
return; return;
end end
@@ -1072,7 +1104,7 @@ function this.get_weapon_skill_name(weapon_skill_key)
local weapon_skill_name = get_name_method:call(nil, weapon_skill_id); local weapon_skill_name = get_name_method:call(nil, weapon_skill_id);
if weapon_skill_name == nil then if weapon_skill_name == nil then
error_handler.report("weapon_skills.get_weapon_skill_name", string.format("Failed to access Data: %s_name", weapon_skill_key)); error_handler.report("weapon_skills.get_weapon_skill_name", string.format("Failed to Access Data: %s_name", weapon_skill_key));
return weapon_skill_key; return weapon_skill_key;
end end

View File

@@ -107,13 +107,13 @@ function this.update_damage(enemy, enemy_calc_damage_info)
local is_large_monster = is_boss_enemy_method:call(enemy); local is_large_monster = is_boss_enemy_method:call(enemy);
if is_large_monster == nil then if is_large_monster == nil then
error_handler.report("damage_hook.update_damage", "Failed to access Data: is_large_monster"); error_handler.report("damage_hook.update_damage", "Failed to Access Data: is_large_monster");
return; return;
end end
local dead_or_captured = check_die_method:call(enemy); local dead_or_captured = check_die_method:call(enemy);
if dead_or_captured == nil then if dead_or_captured == nil then
error_handler.report("damage_hook.update_damage", "Failed to access Data: dead_or_captured"); error_handler.report("damage_hook.update_damage", "Failed to Access Data: dead_or_captured");
return; return;
end end
@@ -331,7 +331,7 @@ function this.on_anomaly_core_break(anomaly_core_part)
local anomaly_core_break_damage_rate = get_mystery_core_break_damage_rate_method:call(anomaly_monster.enemy); local anomaly_core_break_damage_rate = get_mystery_core_break_damage_rate_method:call(anomaly_monster.enemy);
if anomaly_core_break_damage_rate == nil then if anomaly_core_break_damage_rate == nil then
error_handler.report("damage_hook.on_anomaly_core_break", "Failed to access Data: anomaly_core_break_damage_rate"); error_handler.report("damage_hook.on_anomaly_core_break", "Failed to Access Data: anomaly_core_break_damage_rate");
return; return;
end end

View File

@@ -134,19 +134,19 @@ function this.update_servant_list()
local cached_config = config.current_config.damage_meter_UI; local cached_config = config.current_config.damage_meter_UI;
if singletons.servant_manager == nil then if singletons.servant_manager == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: servant_manager"); error_handler.report("non_players.update_servant_list", "Failed to Access Data: servant_manager");
return; return;
end end
local quest_servant_id_list = get_quest_servant_id_list_method:call(singletons.servant_manager); local quest_servant_id_list = get_quest_servant_id_list_method:call(singletons.servant_manager);
if quest_servant_id_list == nil then if quest_servant_id_list == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: quest_servant_id_list"); -- error_handler.report("non_players.update_servant_list", "Failed to Access Data: quest_servant_id_list");
return; return;
end end
local servant_count = servant_get_count_method:call(quest_servant_id_list); local servant_count = servant_get_count_method:call(quest_servant_id_list);
if servant_count == nil then if servant_count == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: servant_count"); error_handler.report("non_players.update_servant_list", "Failed to Access Data: servant_count");
return; return;
end end
@@ -154,20 +154,20 @@ function this.update_servant_list()
for i = 0, servant_count - 1 do for i = 0, servant_count - 1 do
local servant_id = servant_get_item_method:call(quest_servant_id_list, i); local servant_id = servant_get_item_method:call(quest_servant_id_list, i);
if servant_id == nil then if servant_id == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: servant_id No." .. tostring(i)); error_handler.report("non_players.update_servant_list", "Failed to Access Data: servant_id No." .. tostring(i));
goto continue; goto continue;
end end
local ai_control = get_ai_control_by_servant_id_method:call(singletons.servant_manager, servant_id); local ai_control = get_ai_control_by_servant_id_method:call(singletons.servant_manager, servant_id);
if ai_control == nil then if ai_control == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: ai_control No." .. tostring(i)); error_handler.report("non_players.update_servant_list", "Failed to Access Data: ai_control No." .. tostring(i));
goto continue; goto continue;
end end
local servant_info = get_servant_info_method:call(ai_control); local servant_info = get_servant_info_method:call(ai_control);
if servant_info == nil then if servant_info == nil then
error_handler.report("non_players.update_servant_list", "Failed to access Data: servant_info No." .. tostring(i)); error_handler.report("non_players.update_servant_list", "Failed to Access Data: servant_info No." .. tostring(i));
goto continue; goto continue;
end end
@@ -191,7 +191,7 @@ end
function this.update_otomo_list(is_on_quest, is_online) function this.update_otomo_list(is_on_quest, is_online)
if singletons.otomo_manager == nil then if singletons.otomo_manager == nil then
error_handler.report("non_players.update_otomo_list", "Failed to access Data: otomo_manager"); error_handler.report("non_players.update_otomo_list", "Failed to Access Data: otomo_manager");
return; return;
end end
@@ -220,11 +220,11 @@ function this.update_my_otomos()
local first_otomo = get_master_otomo_info_method:call(singletons.otomo_manager, 0); local first_otomo = get_master_otomo_info_method:call(singletons.otomo_manager, 0);
if first_otomo == nil then if first_otomo == nil then
error_handler.report("non_players.update_my_otomos", "Failed to access Data: first_otomo"); error_handler.report("non_players.update_my_otomos", "Failed to Access Data: first_otomo");
else else
local name = otomo_create_data_name_field:get_data(first_otomo); local name = otomo_create_data_name_field:get_data(first_otomo);
if name == nil then if name == nil then
error_handler.report("non_players.update_my_otomos", "Failed to access Data: first_otomo -> name"); error_handler.report("non_players.update_my_otomos", "Failed to Access Data: first_otomo -> name");
end end
if name ~= nil and name ~= "" then if name ~= nil and name ~= "" then
@@ -241,11 +241,11 @@ function this.update_my_otomos()
local second_otomo = get_master_otomo_info_method:call(singletons.otomo_manager, 1); local second_otomo = get_master_otomo_info_method:call(singletons.otomo_manager, 1);
if second_otomo == nil then if second_otomo == nil then
error_handler.report("non_players.update_my_otomos", "Failed to access Data: second_otomo"); error_handler.report("non_players.update_my_otomos", "Failed to Access Data: second_otomo");
else else
local name = otomo_create_data_name_field:get_data(second_otomo); local name = otomo_create_data_name_field:get_data(second_otomo);
if name == nil then if name == nil then
error_handler.report("non_players.update_my_otomos", "Failed to access Data: second_otomo -> name"); error_handler.report("non_players.update_my_otomos", "Failed to Access Data: second_otomo -> name");
return; return;
end end
@@ -268,20 +268,20 @@ function this.update_servant_otomos()
local servant_otomo_list = get_servant_otomo_list_method:call(singletons.otomo_manager); local servant_otomo_list = get_servant_otomo_list_method:call(singletons.otomo_manager);
if servant_otomo_list == nil then if servant_otomo_list == nil then
error_handler.report("non_players.update_servant_otomos", "Failed to access Data: servant_otomo_list"); error_handler.report("non_players.update_servant_otomos", "Failed to Access Data: servant_otomo_list");
return; return;
end end
local count = otomo_get_count_method:call(servant_otomo_list); local count = otomo_get_count_method:call(servant_otomo_list);
if count == nil then if count == nil then
error_handler.report("non_players.update_servant_otomos", "Failed to access Data: servant_otomo_list -> count"); error_handler.report("non_players.update_servant_otomos", "Failed to Access Data: servant_otomo_list -> count");
return; return;
end end
for i = 0, count - 1 do for i = 0, count - 1 do
local servant_otomo = otomo_get_item_method:call(servant_otomo_list, i); local servant_otomo = otomo_get_item_method:call(servant_otomo_list, i);
if servant_otomo == nil then if servant_otomo == nil then
error_handler.report("non_players.update_servant_otomos", "Failed to access Data: servant_otomo No. " .. tostring(i)); error_handler.report("non_players.update_servant_otomos", "Failed to Access Data: servant_otomo No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -292,7 +292,7 @@ function this.update_servant_otomos()
local member_id = otomo_create_data:get_field("MemberID"); local member_id = otomo_create_data:get_field("MemberID");
if name == nil then if name == nil then
error_handler.report("non_players.update_servant_otomos", string.format("Failed to access Data: servant_otomo No. %d -> name", i)); error_handler.report("non_players.update_servant_otomos", string.format("Failed to Access Data: servant_otomo No. %d -> name", i));
goto continue; goto continue;
end end
@@ -313,33 +313,33 @@ function this.update_otomos(otomo_info_field_)
local cached_config = config.current_config.damage_meter_UI; local cached_config = config.current_config.damage_meter_UI;
if singletons.lobby_manager == nil then if singletons.lobby_manager == nil then
error_handler.report("non_players.update_otomos", "Failed to access Data: lobby_manager"); error_handler.report("non_players.update_otomos", "Failed to Access Data: lobby_manager");
return; return;
end end
-- other players -- other players
local otomo_info_list = otomo_info_field_:get_data(singletons.lobby_manager); local otomo_info_list = otomo_info_field_:get_data(singletons.lobby_manager);
if otomo_info_list == nil then if otomo_info_list == nil then
error_handler.report("non_players.update_otomos", "Failed to access Data: otomo_info_list"); error_handler.report("non_players.update_otomos", "Failed to Access Data: otomo_info_list");
return; return;
end end
local count = otomo_info_get_count_method:call(otomo_info_list); local count = otomo_info_get_count_method:call(otomo_info_list);
if count == nil then if count == nil then
error_handler.report("non_players.update_otomos", "Failed to access Data: otomo_info_list -> count"); error_handler.report("non_players.update_otomos", "Failed to Access Data: otomo_info_list -> count");
return; return;
end end
for id = 0, count - 1 do for id = 0, count - 1 do
local otomo_info = otomo_info_get_item_method:call(otomo_info_list, id); local otomo_info = otomo_info_get_item_method:call(otomo_info_list, id);
if otomo_info == nil then if otomo_info == nil then
error_handler.report("non_players.update_otomos", "Failed to access Data: otomo_info No. " .. tostring(id)); error_handler.report("non_players.update_otomos", "Failed to Access Data: otomo_info No. " .. tostring(id));
goto continue; goto continue;
end end
local name = otomo_info_name_field:get_data(otomo_info); local name = otomo_info_name_field:get_data(otomo_info);
if name == nil then if name == nil then
error_handler.report("non_players.update_otomos", string.format("Failed to access Data: otomo_info No. %d -> name", id)); error_handler.report("non_players.update_otomos", string.format("Failed to Access Data: otomo_info No. %d -> name", id));
goto continue; goto continue;
end end

View File

@@ -390,7 +390,7 @@ local get_pos_field = player_base_type_def:get_method("get_Pos");
function this.update_myself_position() function this.update_myself_position()
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("players.update_myself_position", "Failed to access Data: player_manager"); error_handler.report("players.update_myself_position", "Failed to Access Data: player_manager");
return; return;
end end
@@ -401,13 +401,13 @@ function this.update_myself_position()
local master_player = find_master_player_method:call(singletons.player_manager); local master_player = find_master_player_method:call(singletons.player_manager);
if master_player == nil then if master_player == nil then
error_handler.report("players.update_myself_position", "Failed to access Data: master_player"); error_handler.report("players.update_myself_position", "Failed to Access Data: master_player");
return; return;
end end
local position = get_pos_field:call(master_player); local position = get_pos_field:call(master_player);
if position == nil then if position == nil then
error_handler.report("players.update_myself_position", "Failed to access Data: position"); error_handler.report("players.update_myself_position", "Failed to Access Data: position");
end end
this.myself_position = position; this.myself_position = position;
@@ -466,25 +466,25 @@ function this.update_player_list(hunter_info_field_)
local cached_config = config.current_config.damage_meter_UI; local cached_config = config.current_config.damage_meter_UI;
if singletons.lobby_manager == nil then if singletons.lobby_manager == nil then
error_handler.report("players.update_player_list", "Failed to access Data: lobby_manager"); error_handler.report("players.update_player_list", "Failed to Access Data: lobby_manager");
return; return;
end end
if singletons.progress_manager == nil then if singletons.progress_manager == nil then
error_handler.report("players.update_player_list", "Failed to access Data: progress_manager"); error_handler.report("players.update_player_list", "Failed to Access Data: progress_manager");
return; return;
end end
-- myself player -- myself player
local myself_player_info = my_hunter_info_field:get_data(singletons.lobby_manager); local myself_player_info = my_hunter_info_field:get_data(singletons.lobby_manager);
if myself_player_info == nil then if myself_player_info == nil then
error_handler.report("players.update_player_list", "Failed to access Data: myself_player_info"); error_handler.report("players.update_player_list", "Failed to Access Data: myself_player_info");
return; return;
end end
local myself_player_name = name_field:get_data(myself_player_info); local myself_player_name = name_field:get_data(myself_player_info);
if myself_player_name == nil then if myself_player_name == nil then
error_handler.report("players.update_player_list", "Failed to access Data: myself_player_name"); error_handler.report("players.update_player_list", "Failed to Access Data: myself_player_name");
return; return;
end end
@@ -494,7 +494,7 @@ function this.update_player_list(hunter_info_field_)
local myself_id = get_master_player_id_method:call(singletons.player_manager); local myself_id = get_master_player_id_method:call(singletons.player_manager);
if myself_id == nil then if myself_id == nil then
error_handler.report("players.update_player_list", "Failed to access Data: myself_id"); error_handler.report("players.update_player_list", "Failed to Access Data: myself_id");
return; return;
end end
@@ -507,26 +507,26 @@ function this.update_player_list(hunter_info_field_)
-- other players -- other players
local player_info_array = hunter_info_field_:get_data(singletons.lobby_manager); local player_info_array = hunter_info_field_:get_data(singletons.lobby_manager);
if player_info_array == nil then if player_info_array == nil then
error_handler.report("players.update_player_list", "Failed to access Data: player_info_array"); error_handler.report("players.update_player_list", "Failed to Access Data: player_info_array");
return; return;
end end
local count = get_count_method:call(player_info_array); local count = get_count_method:call(player_info_array);
if count == nil then if count == nil then
error_handler.report("players.update_player_list", "Failed to access Data: player_info_array -> count"); error_handler.report("players.update_player_list", "Failed to Access Data: player_info_array -> count");
return; return;
end end
for i = 0, count - 1 do for i = 0, count - 1 do
local player_info = get_item_method:call(player_info_array, i); local player_info = get_item_method:call(player_info_array, i);
if player_info == nil then if player_info == nil then
error_handler.report("players.update_player_list", "Failed to access Data: player_info No. " .. tostring(i)); -- error_handler.report("players.update_player_list", "Failed to Access Data: player_info No. " .. tostring(i));
goto continue; goto continue;
end end
local id = member_index_field:get_data(player_info); local id = member_index_field:get_data(player_info);
if id == nil then if id == nil then
error_handler.report("players.update_player_list", string.format("Failed to access Data: player_info No. %d -> id", i)); error_handler.report("players.update_player_list", string.format("Failed to Access Data: player_info No. %d -> id", i));
goto continue; goto continue;
end end
@@ -535,7 +535,7 @@ function this.update_player_list(hunter_info_field_)
local name = name_field:get_data(player_info); local name = name_field:get_data(player_info);
if name == nil then if name == nil then
error_handler.report("players.update_player_list", string.format("Failed to access Data: player_info No. %d -> name", i)); error_handler.report("players.update_player_list", string.format("Failed to Access Data: player_info No. %d -> name", i));
goto continue; goto continue;
end end

View File

@@ -53,6 +53,29 @@ this.creature_ids = {
gold_wirebug = 63, gold_wirebug = 63,
}; };
local environment_creature_base_type_def = sdk.find_type_definition("snow.envCreature.EnvironmentCreatureBase");
local creature_type_field = environment_creature_base_type_def:get_field("_Type");
local creature_is_inactive_field = environment_creature_base_type_def:get_field("<Muteki>k__BackingField");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_env_creature_name_message_method = message_manager_type_def:get_method("getEnvCreatureNameMessage");
local get_pos_method = environment_creature_base_type_def:get_method("get_Pos");
local get_ref_mesh_method = environment_creature_base_type_def:get_method("getMesh");
local mesh_type_def = get_ref_mesh_method:get_return_type();
local get_game_object_method = mesh_type_def:get_method("get_GameObject");
local game_object_type_def = get_game_object_method:get_return_type();
local get_transform_method = game_object_type_def:get_method("get_Transform");
local transform_type_def = get_transform_method:get_return_type();
local get_joint_by_name_method = transform_type_def:get_method("getJointByName");
local joint_type_def = get_joint_by_name_method:get_return_type();
local get_position_method = joint_type_def:get_method("get_Position");
function this.new(REcreature) function this.new(REcreature)
local creature = {}; local creature = {};
@@ -81,30 +104,23 @@ function this.get_creature(REcreature)
return this.list[REcreature]; return this.list[REcreature];
end end
local environment_creature_base_type_def = sdk.find_type_definition("snow.envCreature.EnvironmentCreatureBase");
local creature_type_field = environment_creature_base_type_def:get_field("_Type");
local creature_is_inactive_field = environment_creature_base_type_def:get_field("<Muteki>k__BackingField");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_env_creature_name_message_method = message_manager_type_def:get_method("getEnvCreatureNameMessage");
local get_pos_method = environment_creature_base_type_def:get_method("get_Pos");
function this.init(creature, REcreature) function this.init(creature, REcreature)
local creature_type = creature_type_field:get_data(REcreature); local creature_type = creature_type_field:get_data(REcreature);
if creature_type == nil then if creature_type == nil then
error_handler.report("env_creature.init", "Failed to access Data: creature_type"); error_handler.report("env_creature.init", "Failed to Access Data: creature_type");
return; return;
end end
local creature_name = get_env_creature_name_message_method:call(singletons.message_manager, creature_type); local creature_name = get_env_creature_name_message_method:call(singletons.message_manager, creature_type);
if creature_name == nil then if creature_name == nil then
error_handler.report("env_creature.init", "Failed to access Data: creature_name"); error_handler.report("env_creature.init", "Failed to Access Data: creature_name");
return; return;
end end
creature.name = creature_name; creature.name = creature_name;
creature.id = creature_type; creature.id = creature_type;
this.update_head_joint(REcreature, creature)
end end
function this.init_UI(creature) function this.init_UI(creature)
@@ -127,10 +143,12 @@ function this.update_position(REcreature, creature)
local position = get_pos_method:call(REcreature); local position = get_pos_method:call(REcreature);
if position == nil then if position == nil then
error_handler.report("env_creature.update_position", "Failed to access Data: position"); error_handler.report("env_creature.update_position", "Failed to Access Data: position");
end end
creature.position = position; creature.position = position;
this.update_head_position(REcreature, creature);
end end
function this.update(REcreature, creature) function this.update(REcreature, creature)
@@ -144,12 +162,76 @@ function this.update(REcreature, creature)
local is_inactive = creature_is_inactive_field:get_data(REcreature); local is_inactive = creature_is_inactive_field:get_data(REcreature);
if is_inactive == nil then if is_inactive == nil then
error_handler.report("env_creature.update", "Failed to access Data: is_inactive"); error_handler.report("env_creature.update", "Failed to Access Data: is_inactive");
end end
creature.is_inactive = is_inactive; creature.is_inactive = is_inactive;
end end
function this.update_head_joint(REcreature, creature)
local mesh = get_ref_mesh_method:call(REcreature);
if mesh == nil then
error_handler.report("env_creature.update_head_joint", "Failed to Access Data: Mesh");
return;
end
local game_object = get_game_object_method:call(mesh);
if game_object == nil then
error_handler.report("env_creature.update_head_joint", "Failed to Access Data: GameObject");
return;
end
local transform = get_transform_method:call(game_object);
if transform == nil then
error_handler.report("env_creature.update_head_joint", "Failed to Access Data: Transform");
return;
end
local head_joint = get_joint_by_name_method:call(transform, "Head_00")
or get_joint_by_name_method:call(transform, "Head")
or get_joint_by_name_method:call(transform, "Head_01")
or get_joint_by_name_method:call(transform, "Spine_00")
or get_joint_by_name_method:call(transform, "Body_00")
or get_joint_by_name_method:call(transform, "body_00")
or get_joint_by_name_method:call(transform, "Cog")
or get_joint_by_name_method:call(transform, "Cog_00")
or get_joint_by_name_method:call(transform, "head")
or get_joint_by_name_method:call(transform, "root");
if head_joint == nil then
-- local out = "";
-- local joints = transform:get_Joints();
-- for i = 0, joints:get_Length() - 1 do
-- local joint = joints[i];
-- local joint_name = joint:get_Name();
-- out = out .. joint_name .. "\n";
-- end
-- error_handler.report(creature.name, out);
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: HeadJoint");
return;
end
creature.head_joint = head_joint;
end
function this.update_head_position(REcreature, creature)
if creature.head_joint == nil then
return;
end
local head_position = get_position_method:call(creature.head_joint);
if head_position == nil then
error_handler.report("env_creature.update_head_position", "Failed to Access Data: HeadPosition");
return;
end
creature.head_position = head_position;
end
function this.draw(creature, position_on_screen, opacity_scale) function this.draw(creature, position_on_screen, opacity_scale)
if d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available then if d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available then
local text_width, text_height = drawing.font:measure(creature.name); local text_width, text_height = drawing.font:measure(creature.name);

View File

@@ -9,6 +9,7 @@ local large_monster;
local damage_meter_UI; local damage_meter_UI;
local time; local time;
local error_handler; local error_handler;
local quest_status;
local sdk = sdk; local sdk = sdk;
local tostring = tostring; local tostring = tostring;
@@ -49,6 +50,7 @@ local hard_keyboard_field_type_def = hard_keyboard_field:get_type();
local get_down_method = hard_keyboard_field_type_def:get_method("getDown"); local get_down_method = hard_keyboard_field_type_def:get_method("getDown");
local get_trigger_method = hard_keyboard_field_type_def:get_method("getTrg"); local get_trigger_method = hard_keyboard_field_type_def:get_method("getTrg");
local get_release_method = hard_keyboard_field_type_def:get_method("getRelease"); local get_release_method = hard_keyboard_field_type_def:get_method("getRelease");
local update_method = hard_keyboard_field_type_def:get_method("update");
this.hotkey_modifiers_down = { this.hotkey_modifiers_down = {
ctrl = false, ctrl = false,
@@ -334,15 +336,9 @@ this.keys = {
--[254] = "Clear" --[254] = "Clear"
}; };
function this.update() function this.update(hard_keyboard)
if singletons.game_keyboard == nil then
error_handler.report("keyboard.update", "Failed to access Data: game_keyboard");
return;
end
local hard_keyboard = hard_keyboard_field:get_data(singletons.game_keyboard);
if hard_keyboard == nil then if hard_keyboard == nil then
error_handler.report("keyboard.update", "Failed to access Data: hard_keyboard"); error_handler.report("keyboard.update", "Failed to Access Data: hard_keyboard");
return; return;
end end
@@ -517,7 +513,7 @@ function this.check_hotkeys(hard_keyboard)
local all_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.all_UI.key)); local all_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.all_UI.key));
if all_UI_key_release == nil then if all_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: all_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: all_UI_key_release");
elseif all_UI_key_release then elseif all_UI_key_release then
local is_any_enabled = config.current_config.time_UI.enabled local is_any_enabled = config.current_config.time_UI.enabled
@@ -549,7 +545,7 @@ function this.check_hotkeys(hard_keyboard)
local small_monster_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.small_monster_UI.key)); local small_monster_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.small_monster_UI.key));
if small_monster_UI_key_release == nil then if small_monster_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: small_monster_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: small_monster_UI_key_release");
elseif small_monster_UI_key_release then elseif small_monster_UI_key_release then
config.current_config.small_monster_UI.enabled = not config.current_config.small_monster_UI.enabled; config.current_config.small_monster_UI.enabled = not config.current_config.small_monster_UI.enabled;
@@ -563,7 +559,7 @@ function this.check_hotkeys(hard_keyboard)
local large_monster_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_UI.key)); local large_monster_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_UI.key));
if large_monster_UI_key_release == nil then if large_monster_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: large_monster_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: large_monster_UI_key_release");
elseif large_monster_UI_key_release then elseif large_monster_UI_key_release then
local is_any_enabled = config.current_config.large_monster_UI.dynamic.enabled local is_any_enabled = config.current_config.large_monster_UI.dynamic.enabled
@@ -583,7 +579,7 @@ function this.check_hotkeys(hard_keyboard)
local large_monster_dynamic_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_dynamic_UI.key)); local large_monster_dynamic_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_dynamic_UI.key));
if large_monster_dynamic_UI_key_release == nil then if large_monster_dynamic_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: large_monster_dynamic_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: large_monster_dynamic_UI_key_release");
elseif large_monster_dynamic_UI_key_release then elseif large_monster_dynamic_UI_key_release then
config.current_config.large_monster_UI.dynamic.enabled = not config.current_config.large_monster_UI.dynamic.enabled; config.current_config.large_monster_UI.dynamic.enabled = not config.current_config.large_monster_UI.dynamic.enabled;
@@ -597,7 +593,7 @@ function this.check_hotkeys(hard_keyboard)
local large_monster_static_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_static_UI.key)); local large_monster_static_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_static_UI.key));
if large_monster_static_UI_key_release == nil then if large_monster_static_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: large_monster_static_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: large_monster_static_UI_key_release");
elseif large_monster_static_UI_key_release then elseif large_monster_static_UI_key_release then
config.current_config.large_monster_UI.static.enabled = not config.current_config.large_monster_UI.static.enabled; config.current_config.large_monster_UI.static.enabled = not config.current_config.large_monster_UI.static.enabled;
@@ -611,7 +607,7 @@ function this.check_hotkeys(hard_keyboard)
local large_monster_highlighted_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_highlighted_UI.key)); local large_monster_highlighted_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.large_monster_highlighted_UI.key));
if large_monster_highlighted_UI_key_release == nil then if large_monster_highlighted_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: large_monster_highlighted_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: large_monster_highlighted_UI_key_release");
elseif large_monster_highlighted_UI_key_release then elseif large_monster_highlighted_UI_key_release then
config.current_config.large_monster_UI.highlighted.enabled = not config.current_config.large_monster_UI.highlighted.enabled; config.current_config.large_monster_UI.highlighted.enabled = not config.current_config.large_monster_UI.highlighted.enabled;
@@ -625,7 +621,7 @@ function this.check_hotkeys(hard_keyboard)
local time_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.time_UI.key)); local time_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.time_UI.key));
if time_UI_key_release == nil then if time_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: time_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: time_UI_key_release");
elseif time_UI_key_release then elseif time_UI_key_release then
config.current_config.time_UI.enabled = not config.current_config.time_UI.enabled; config.current_config.time_UI.enabled = not config.current_config.time_UI.enabled;
@@ -639,7 +635,7 @@ function this.check_hotkeys(hard_keyboard)
local damage_meter_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.damage_meter_UI.key)); local damage_meter_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.damage_meter_UI.key));
if damage_meter_UI_key_release == nil then if damage_meter_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: damage_meter_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: damage_meter_UI_key_release");
elseif damage_meter_UI_key_release then elseif damage_meter_UI_key_release then
config.current_config.damage_meter_UI.enabled = not config.current_config.damage_meter_UI.enabled; config.current_config.damage_meter_UI.enabled = not config.current_config.damage_meter_UI.enabled;
@@ -653,7 +649,7 @@ function this.check_hotkeys(hard_keyboard)
local endemic_life_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.endemic_life_UI.key)); local endemic_life_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.endemic_life_UI.key));
if endemic_life_UI_key_release == nil then if endemic_life_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: endemic_life_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: endemic_life_UI_key_release");
elseif endemic_life_UI_key_release then elseif endemic_life_UI_key_release then
config.current_config.endemic_life_UI.enabled = not config.current_config.endemic_life_UI.enabled; config.current_config.endemic_life_UI.enabled = not config.current_config.endemic_life_UI.enabled;
@@ -667,7 +663,7 @@ function this.check_hotkeys(hard_keyboard)
local buff_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.buff_UI.key)); local buff_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.buff_UI.key));
if buff_UI_key_release == nil then if buff_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: buff_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: buff_UI_key_release");
elseif buff_UI_key_release then elseif buff_UI_key_release then
config.current_config.buff_UI.enabled = not config.current_config.buff_UI.enabled; config.current_config.buff_UI.enabled = not config.current_config.buff_UI.enabled;
@@ -681,7 +677,7 @@ function this.check_hotkeys(hard_keyboard)
local stats_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.stats_UI.key)); local stats_UI_key_release = get_release_method:call(hard_keyboard, math.tointeger(cached_config.stats_UI.key));
if stats_UI_key_release == nil then if stats_UI_key_release == nil then
error_handler.report("keyboard.check_hotkeys", "Failed to access Data: stats_UI_key_release"); error_handler.report("keyboard.check_hotkeys", "Failed to Access Data: stats_UI_key_release");
elseif stats_UI_key_release then elseif stats_UI_key_release then
config.current_config.stats_UI.enabled = not config.current_config.stats_UI.enabled; config.current_config.stats_UI.enabled = not config.current_config.stats_UI.enabled;
@@ -717,9 +713,19 @@ function this.init_dependencies()
damage_meter_UI = require("MHR_Overlay.UI.Modules.damage_meter_UI"); damage_meter_UI = require("MHR_Overlay.UI.Modules.damage_meter_UI");
time = require("MHR_Overlay.Game_Handler.time"); time = require("MHR_Overlay.Game_Handler.time");
error_handler = require("MHR_Overlay.Misc.error_handler"); error_handler = require("MHR_Overlay.Misc.error_handler");
quest_status = require("MHR_Overlay.Game_Handler.quest_status");
end end
function this.init_module() function this.init_module()
sdk.hook(update_method, function(args)
local hard_keyboard = sdk.to_managed_object(args[2]);
this.update(hard_keyboard);
end, function(retval)
return retval;
end);
end end
return this; return this;

View File

@@ -177,44 +177,44 @@ end
function this.update_cart_count() function this.update_cart_count()
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: quest_manager"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: quest_manager");
return; return;
end end
local death_num = get_death_num_method:call(singletons.quest_manager); local death_num = get_death_num_method:call(singletons.quest_manager);
if death_num == nil then if death_num == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: death_num"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: death_num");
else else
this.cart_count = death_num; this.cart_count = death_num;
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: player_manager"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: player_manager");
return; return;
end end
local player_data_array = get_player_data_method:call(singletons.player_manager); local player_data_array = get_player_data_method:call(singletons.player_manager);
if player_data_array == nil then if player_data_array == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: player_data_array"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: player_data_array");
return; return;
end end
local player_data_array_length = get_length_method:call(player_data_array); local player_data_array_length = get_length_method:call(player_data_array);
if player_data_array_length == nil then if player_data_array_length == nil then
error_handler.report("quest_status.update_cart_count", "Failed to access Data: player_data_array_length"); error_handler.report("quest_status.update_cart_count", "Failed to Access Data: player_data_array_length");
return; return;
end end
for i = 0, player_data_array_length - 1 do for i = 0, player_data_array_length - 1 do
local player_data = get_value_method:call(player_data_array, i); local player_data = get_value_method:call(player_data_array, i);
if player_data_array_length == nil then if player_data_array_length == nil then
error_handler.report("quest_status.update_cart_count", string.format("Failed to access Data: player_data No. %d", i)); error_handler.report("quest_status.update_cart_count", string.format("Failed to Access Data: player_data No. %d", i));
goto continue; goto continue;
end end
local die_count = die_count_field:get_data(player_data); local die_count = die_count_field:get_data(player_data);
if die_count == nil then if die_count == nil then
error_handler.report("quest_status.update_cart_count", string.format("Failed to access Data: die_count No. %d", i)); error_handler.report("quest_status.update_cart_count", string.format("Failed to Access Data: die_count No. %d", i));
goto continue; goto continue;
end end
@@ -229,13 +229,13 @@ end
function this.get_max_cart_count() function this.get_max_cart_count()
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
error_handler.report("quest_status.get_max_cart_count", "Failed to access Data: quest_manager"); error_handler.report("quest_status.get_max_cart_count", "Failed to Access Data: quest_manager");
return; return;
end end
local quest_life = get_quest_life_method:call(singletons.quest_manager); local quest_life = get_quest_life_method:call(singletons.quest_manager);
if quest_life == nil then if quest_life == nil then
error_handler.report("quest_status.get_max_cart_count", "Failed to access Data: quest_life"); error_handler.report("quest_status.get_max_cart_count", "Failed to Access Data: quest_life");
end end
this.max_cart_count = quest_life; this.max_cart_count = quest_life;
@@ -256,7 +256,7 @@ function this.on_demo_request_activation(request_data_base)
local request_data_type = request_data_base:call("get_Type"); local request_data_type = request_data_base:call("get_Type");
if request_data_type == nil then if request_data_type == nil then
error_handler.report("quest_status.on_demo_request_activation", "Failed to access Data: request_data_type"); error_handler.report("quest_status.on_demo_request_activation", "Failed to Access Data: request_data_type");
return; return;
end end
@@ -388,13 +388,13 @@ end
function this.init() function this.init()
if singletons.quest_manager == nil then if singletons.quest_manager == nil then
error_handler.report("quest_status.init", "Failed to access Data: quest_manager"); error_handler.report("quest_status.init", "Failed to Access Data: quest_manager");
return; return;
end end
local new_quest_status = get_status_method:call(singletons.game_manager); local new_quest_status = get_status_method:call(singletons.game_manager);
if new_quest_status == nil then if new_quest_status == nil then
error_handler.report("quest_status.init", "Failed to access Data: new_quest_status"); error_handler.report("quest_status.init", "Failed to Access Data: new_quest_status");
return; return;
end end
@@ -415,13 +415,13 @@ end
function this.update_is_online() function this.update_is_online()
if singletons.lobby_manager == nil then if singletons.lobby_manager == nil then
error_handler.report("quest_status.update_is_online", "Failed to access Data: lobby_manager"); error_handler.report("quest_status.update_is_online", "Failed to Access Data: lobby_manager");
return; return;
end end
local is_quest_online = is_quest_online_method:call(singletons.lobby_manager); local is_quest_online = is_quest_online_method:call(singletons.lobby_manager);
if is_quest_online == nil then if is_quest_online == nil then
error_handler.report("quest_status.update_is_online", "Failed to access Data: is_quest_online"); error_handler.report("quest_status.update_is_online", "Failed to Access Data: is_quest_online");
return; return;
end end
@@ -430,13 +430,13 @@ end
--[[function quest_status.update_is_quest_host() --[[function quest_status.update_is_quest_host()
if singletons.lobby_manager == nil then if singletons.lobby_manager == nil then
error_handler.report("quest_status.update_is_quest_host", "Failed to access Data: lobby_manager"); error_handler.report("quest_status.update_is_quest_host", "Failed to Access Data: lobby_manager");
return; return;
end end
local is_quest_host = is_quest_host_method:call(singletons.lobby_manager, true); local is_quest_host = is_quest_host_method:call(singletons.lobby_manager, true);
if is_quest_host == nil then if is_quest_host == nil then
error_handler.report("quest_status.update_is_quest_host", "Failed to access Data: is_quest_host"); error_handler.report("quest_status.update_is_quest_host", "Failed to Access Data: is_quest_host");
return; return;
end end
@@ -445,13 +445,13 @@ end--]]
function this.update_is_training_area() function this.update_is_training_area()
if singletons.village_area_manager == nil then if singletons.village_area_manager == nil then
error_handler.report("quest_status.update_is_training_area", "Failed to access Data: village_area_manager"); error_handler.report("quest_status.update_is_training_area", "Failed to Access Data: village_area_manager");
return; return;
end end
local is_training_area = check_current_area_training_area_method:call(singletons.village_area_manager); local is_training_area = check_current_area_training_area_method:call(singletons.village_area_manager);
if is_training_area == nil then if is_training_area == nil then
error_handler.report("quest_status.update_is_training_area", "Failed to access Data: is_training_area"); error_handler.report("quest_status.update_is_training_area", "Failed to Access Data: is_training_area");
return; return;
end end

View File

@@ -75,26 +75,26 @@ function this.get_game_window_size()
scene_view = sdk.call_native_func(singletons.scene_manager, sdk.find_type_definition("via.SceneManager") , "get_MainView"); scene_view = sdk.call_native_func(singletons.scene_manager, sdk.find_type_definition("via.SceneManager") , "get_MainView");
if scene_view == nil then if scene_view == nil then
error_handler.report("screen.get_game_window_size", "Failed to access Data: scene_view"); error_handler.report("screen.get_game_window_size", "Failed to Access Data: scene_view");
return; return;
end end
end end
local size = get_size_method:call(scene_view); local size = get_size_method:call(scene_view);
if size == nil then if size == nil then
error_handler.report("screen.get_game_window_size", "Failed to access Data: size"); error_handler.report("screen.get_game_window_size", "Failed to Access Data: size");
return; return;
end end
local screen_width = width_field:get_data(size); local screen_width = width_field:get_data(size);
if screen_width == nil then if screen_width == nil then
error_handler.report("screen.get_game_window_size", "Failed to access Data: screen_width"); error_handler.report("screen.get_game_window_size", "Failed to Access Data: screen_width");
return; return;
end end
local screen_height = height_field:get_data(size); local screen_height = height_field:get_data(size);
if screen_height == nil then if screen_height == nil then
error_handler.report("screen.get_game_window_size", "Failed to access Data: screen_height"); error_handler.report("screen.get_game_window_size", "Failed to Access Data: screen_height");
return; return;
end end

View File

@@ -70,7 +70,7 @@ end
function this.update_message_manager() function this.update_message_manager()
this.message_manager = sdk.get_managed_singleton("snow.gui.MessageManager"); this.message_manager = sdk.get_managed_singleton("snow.gui.MessageManager");
if this.message_manager == nil then if this.message_manager == nil then
error_handler.report("singletons.update_message_manager", "Failed to access Data: message_manager"); error_handler.report("singletons.update_message_manager", "Failed to Access Data: message_manager");
end end
return this.message_manager; return this.message_manager;
@@ -79,7 +79,7 @@ end
function this.update_enemy_manager() function this.update_enemy_manager()
this.enemy_manager = sdk.get_managed_singleton("snow.enemy.EnemyManager"); this.enemy_manager = sdk.get_managed_singleton("snow.enemy.EnemyManager");
if this.enemy_manager == nil then if this.enemy_manager == nil then
error_handler.report("singletons.update_enemy_manager", "Failed to access Data: enemy_manager"); error_handler.report("singletons.update_enemy_manager", "Failed to Access Data: enemy_manager");
end end
return this.enemy_manager; return this.enemy_manager;
@@ -88,7 +88,7 @@ end
function this.update_lobby_manager() function this.update_lobby_manager()
this.lobby_manager = sdk.get_managed_singleton("snow.LobbyManager"); this.lobby_manager = sdk.get_managed_singleton("snow.LobbyManager");
if this.lobby_manager == nil then if this.lobby_manager == nil then
error_handler.report("singletons.update_lobby_manager", "Failed to access Data: lobby_manager"); error_handler.report("singletons.update_lobby_manager", "Failed to Access Data: lobby_manager");
return false; return false;
end end
@@ -98,7 +98,7 @@ end
function this.update_progress_manager() function this.update_progress_manager()
this.progress_manager = sdk.get_managed_singleton("snow.progress.ProgressManager"); this.progress_manager = sdk.get_managed_singleton("snow.progress.ProgressManager");
if this.progress_manager == nil then if this.progress_manager == nil then
error_handler.report("singletons.update_progress_manager", "Failed to access Data: progress_manager"); error_handler.report("singletons.update_progress_manager", "Failed to Access Data: progress_manager");
return false; return false;
end end
@@ -108,7 +108,7 @@ end
function this.update_quest_manager() function this.update_quest_manager()
this.quest_manager = sdk.get_managed_singleton("snow.QuestManager"); this.quest_manager = sdk.get_managed_singleton("snow.QuestManager");
if this.quest_manager == nil then if this.quest_manager == nil then
error_handler.report("singletons.update_quest_manager", "Failed to access Data: quest_manager"); error_handler.report("singletons.update_quest_manager", "Failed to Access Data: quest_manager");
end end
return this.quest_manager; return this.quest_manager;
@@ -117,7 +117,7 @@ end
function this.update_player_manager() function this.update_player_manager()
this.player_manager = sdk.get_managed_singleton("snow.player.PlayerManager"); this.player_manager = sdk.get_managed_singleton("snow.player.PlayerManager");
if this.player_manager == nil then if this.player_manager == nil then
error_handler.report("singletons.update_player_manager", "Failed to access Data: player_manager"); error_handler.report("singletons.update_player_manager", "Failed to Access Data: player_manager");
end end
return this.player_manager; return this.player_manager;
@@ -126,7 +126,7 @@ end
function this.update_village_area_manager() function this.update_village_area_manager()
this.village_area_manager = sdk.get_managed_singleton("snow.VillageAreaManager"); this.village_area_manager = sdk.get_managed_singleton("snow.VillageAreaManager");
if this.village_area_manager == nil then if this.village_area_manager == nil then
error_handler.report("singletons.update_village_area_manager", "Failed to access Data: village_area_manager"); -- error_handler.report("singletons.update_village_area_manager", "Failed to Access Data: village_area_manager");
end end
return this.village_area_manager; return this.village_area_manager;
@@ -135,7 +135,7 @@ end
function this.update_gui_manager() function this.update_gui_manager()
this.gui_manager = sdk.get_managed_singleton("snow.gui.GuiManager"); this.gui_manager = sdk.get_managed_singleton("snow.gui.GuiManager");
if this.gui_manager == nil then if this.gui_manager == nil then
error_handler.report("singletons.update_gui_manager", "Failed to access Data: gui_manager"); error_handler.report("singletons.update_gui_manager", "Failed to Access Data: gui_manager");
end end
return this.gui_manager; return this.gui_manager;
@@ -144,7 +144,7 @@ end
function this.update_game_keyboard() function this.update_game_keyboard()
this.game_keyboard = sdk.get_managed_singleton("snow.GameKeyboard"); this.game_keyboard = sdk.get_managed_singleton("snow.GameKeyboard");
if this.game_keyboard == nil then if this.game_keyboard == nil then
error_handler.report("singletons.update_game_keyboard", "Failed to access Data: game_keyboard"); error_handler.report("singletons.update_game_keyboard", "Failed to Access Data: game_keyboard");
end end
return this.game_keyboard; return this.game_keyboard;
@@ -153,7 +153,7 @@ end
function this.update_scene_manager() function this.update_scene_manager()
this.scene_manager = sdk.get_native_singleton("via.SceneManager"); this.scene_manager = sdk.get_native_singleton("via.SceneManager");
if this.scene_manager == nil then if this.scene_manager == nil then
error_handler.report("singletons.update_scene_manager", "Failed to access Data: scene_manager"); error_handler.report("singletons.update_scene_manager", "Failed to Access Data: scene_manager");
end end
return this.scene_manager; return this.scene_manager;
@@ -162,7 +162,7 @@ end
function this.update_game_manager() function this.update_game_manager()
this.game_manager = sdk.get_managed_singleton("snow.SnowGameManager"); this.game_manager = sdk.get_managed_singleton("snow.SnowGameManager");
if this.game_manager == nil then if this.game_manager == nil then
error_handler.report("singletons.update_game_manager", "Failed to access Data: game_manager"); error_handler.report("singletons.update_game_manager", "Failed to Access Data: game_manager");
end end
return this.game_manager; return this.game_manager;
@@ -171,7 +171,7 @@ end
function this.update_servant_manager() function this.update_servant_manager()
this.servant_manager = sdk.get_managed_singleton("snow.ai.ServantManager"); this.servant_manager = sdk.get_managed_singleton("snow.ai.ServantManager");
if this.servant_manager == nil then if this.servant_manager == nil then
error_handler.report("singletons.update_servant_manager", "Failed to access Data: servant_manager"); error_handler.report("singletons.update_servant_manager", "Failed to Access Data: servant_manager");
end end
return this.servant_manager; return this.servant_manager;
@@ -180,7 +180,7 @@ end
function this.update_otomo_manager() function this.update_otomo_manager()
this.otomo_manager = sdk.get_managed_singleton("snow.otomo.OtomoManager"); this.otomo_manager = sdk.get_managed_singleton("snow.otomo.OtomoManager");
if this.otomo_manager == nil then if this.otomo_manager == nil then
error_handler.report("singletons.update_otomo_manager", "Failed to access Data: otomo_manager"); error_handler.report("singletons.update_otomo_manager", "Failed to Access Data: otomo_manager");
end end
return this.otomo_manager; return this.otomo_manager;
@@ -189,7 +189,7 @@ end
function this.update_long_sword_shell_manager() function this.update_long_sword_shell_manager()
this.long_sword_shell_manager = sdk.get_managed_singleton("snow.shell.LongSwordShellManager"); this.long_sword_shell_manager = sdk.get_managed_singleton("snow.shell.LongSwordShellManager");
if this.long_sword_shell_manager == nil then if this.long_sword_shell_manager == nil then
error_handler.report("singletons.update_long_sword_shell_manager", "Failed to access Data: long_sword_shell_manager"); error_handler.report("singletons.update_long_sword_shell_manager", "Failed to Access Data: long_sword_shell_manager");
end end
return this.long_sword_shell_manager; return this.long_sword_shell_manager;
@@ -198,7 +198,7 @@ end
function this.update_light_bowgun_shell_manager() function this.update_light_bowgun_shell_manager()
this.light_bowgun_shell_manager = sdk.get_managed_singleton("snow.shell.LightBowgunShellManager"); this.light_bowgun_shell_manager = sdk.get_managed_singleton("snow.shell.LightBowgunShellManager");
if this.light_bowgun_shell_manager == nil then if this.light_bowgun_shell_manager == nil then
error_handler.report("singletons.update_light_bowgun_shell_manager", "Failed to access Data: light_bowgun_shell_manager"); error_handler.report("singletons.update_light_bowgun_shell_manager", "Failed to Access Data: light_bowgun_shell_manager");
end end
return this.light_bowgun_shell_manager; return this.light_bowgun_shell_manager;
@@ -207,7 +207,7 @@ end
function this.update_horn_shell_manager() function this.update_horn_shell_manager()
this.horn_shell_manager = sdk.get_managed_singleton("snow.shell.HornShellManager"); this.horn_shell_manager = sdk.get_managed_singleton("snow.shell.HornShellManager");
if this.horn_shell_manager == nil then if this.horn_shell_manager == nil then
error_handler.report("singletons.update_horn_shell_manager", "Failed to access Data: horn_shell_manager"); error_handler.report("singletons.update_horn_shell_manager", "Failed to Access Data: horn_shell_manager");
end end
return this.horn_shell_manager; return this.horn_shell_manager;

View File

@@ -74,14 +74,14 @@ function this.new_timer(callback, cooldown_seconds, start_offset_seconds)
this.timer_list[callback] = timer; this.timer_list[callback] = timer;
end end
function this.new_delay_timer(callback, delay) function this.new_delay_timer(callback, delay_seconds)
if callback == nil or delay == nil then if callback == nil or delay_seconds == nil then
return; return;
end end
local delay_timer = {}; local delay_timer = {};
delay_timer.callback = callback; delay_timer.callback = callback;
delay_timer.delay = delay; delay_timer.delay = delay_seconds;
delay_timer.init_time = os.clock(); delay_timer.init_time = os.clock();
@@ -153,14 +153,14 @@ function this.update_quest_time()
local quest_time_elapsed_minutes = get_quest_elapsed_time_min_method:call(singletons.quest_manager); local quest_time_elapsed_minutes = get_quest_elapsed_time_min_method:call(singletons.quest_manager);
if quest_time_elapsed_minutes == nil then if quest_time_elapsed_minutes == nil then
error_handler.report("time.update_quest_time", "Failed to access Data: quest_time_elapsed_minutes"); error_handler.report("time.update_quest_time", "Failed to Access Data: quest_time_elapsed_minutes");
else else
this.elapsed_minutes = quest_time_elapsed_minutes; this.elapsed_minutes = quest_time_elapsed_minutes;
end end
local quest_time_total_elapsed_seconds = get_quest_elapsed_time_sec_method:call(singletons.quest_manager); local quest_time_total_elapsed_seconds = get_quest_elapsed_time_sec_method:call(singletons.quest_manager);
if quest_time_total_elapsed_seconds == nil then if quest_time_total_elapsed_seconds == nil then
error_handler.report("time.update_quest_time", "Failed to access Data: quest_time_total_elapsed_seconds"); error_handler.report("time.update_quest_time", "Failed to Access Data: quest_time_total_elapsed_seconds");
else else
this.total_elapsed_seconds = quest_time_total_elapsed_seconds; this.total_elapsed_seconds = quest_time_total_elapsed_seconds;
end end

View File

@@ -36,7 +36,7 @@ local os = os;
local ValueType = ValueType; local ValueType = ValueType;
local package = package; local package = package;
this.version = "2.6.3"; this.version = "2.7.1";
this.config_folder = "MHR Overlay\\configs\\"; this.config_folder = "MHR Overlay\\configs\\";
this.current_config_value_file_name = "MHR Overlay\\config.json"; this.current_config_value_file_name = "MHR Overlay\\config.json";
@@ -320,18 +320,20 @@ function this.init_default()
dynamic_positioning = { dynamic_positioning = {
enabled = true, enabled = true,
max_distance = 300, head_tracking = true,
opacity_falloff = true, opacity_falloff = true,
max_distance = 300,
world_offset = { world_offset = {
x = 0, x = 0,
y = 3, y = 1,
z = 0 z = 0
}, },
viewport_offset = { viewport_offset = {
x = -50, x = -50,
y = 0 y = -30
} }
}, },
@@ -1022,23 +1024,24 @@ function this.init_default()
enabled = true, enabled = true,
settings = { settings = {
head_tracking = true,
hide_dead_or_captured = true, hide_dead_or_captured = true,
render_highlighted_monster = true, render_highlighted_monster = true,
render_not_highlighted_monsters = true, render_not_highlighted_monsters = true,
max_distance = 300,
opacity_falloff = true, opacity_falloff = true,
max_distance = 300,
time_limit = 15 time_limit = 15
}, },
world_offset = { world_offset = {
x = 0, x = 0,
y = 6, y = 2,
z = 0 z = 0
}, },
viewport_offset = { viewport_offset = {
x = -100, x = -100,
y = 0 y = -30
}, },
monster_name_label = { monster_name_label = {
@@ -7454,6 +7457,7 @@ function this.init_default()
enabled = false, enabled = false,
settings = { settings = {
head_tracking = true,
hide_inactive_creatures = true, hide_inactive_creatures = true,
max_distance = 300, max_distance = 300,
opacity_falloff = true opacity_falloff = true

View File

@@ -902,6 +902,8 @@ this.default_language = {
infinite_buffs_location = "Infinite Buffs Location", infinite_buffs_location = "Infinite Buffs Location",
effect_level = "Effect Level", effect_level = "Effect Level",
head_tracking = "Head Tracking"
}, },
}; };

View File

@@ -129,19 +129,19 @@ function this.update()
end end
if singletons.player_manager == nil then if singletons.player_manager == nil then
error_handler.report("player_info.update", "Failed to access Data: player_manager"); error_handler.report("player_info.update", "Failed to Access Data: player_manager");
return; return;
end end
local master_player = find_master_player_method:call(singletons.player_manager); local master_player = find_master_player_method:call(singletons.player_manager);
if master_player == nil then if master_player == nil then
error_handler.report("player_info.update", "Failed to access Data: master_player"); error_handler.report("player_info.update", "Failed to Access Data: master_player");
return; return;
end end
local master_player_data = get_player_data_method:call(master_player); local master_player_data = get_player_data_method:call(master_player);
if master_player_data == nil then if master_player_data == nil then
error_handler.report("player_info.update", "Failed to access Data: master_player_data"); error_handler.report("player_info.update", "Failed to Access Data: master_player_data");
end end
master_player_ref = master_player; master_player_ref = master_player;
@@ -176,7 +176,7 @@ end
function this.update_generic(key, player_data, field) function this.update_generic(key, player_data, field)
local value = field:get_data(player_data); local value = field:get_data(player_data);
if value == nil then if value == nil then
error_handler.report("player_info.update_generic", string.format("Failed to access Data: %s_value", key)); error_handler.report("player_info.update_generic", string.format("Failed to Access Data: %s_value", key));
return; return;
end end
@@ -186,14 +186,14 @@ end
function this.update_resistances(player_data) function this.update_resistances(player_data)
local resistance_element_array = resistance_element_field:get_data(player_data); local resistance_element_array = resistance_element_field:get_data(player_data);
if resistance_element_array == nil then if resistance_element_array == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: resistance_element_array"); error_handler.report("player_info.update_resistances", "Failed to Access Data: resistance_element_array");
return; return;
end end
-- Fire Resistance -- Fire Resistance
local fire_resistance_single_valtype = get_value_method:call(resistance_element_array, 0); local fire_resistance_single_valtype = get_value_method:call(resistance_element_array, 0);
if fire_resistance_single_valtype == nil then if fire_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: fire_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: fire_resistance_single_valtype");
return; return;
end end
@@ -201,14 +201,14 @@ function this.update_resistances(player_data)
if fire_resistance ~= nil then if fire_resistance ~= nil then
this.list.fire_resistance = math.floor(fire_resistance); this.list.fire_resistance = math.floor(fire_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: fire_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: fire_resistance");
return; return;
end end
-- Water Resistance -- Water Resistance
local water_resistance_single_valtype = get_value_method:call(resistance_element_array, 1); local water_resistance_single_valtype = get_value_method:call(resistance_element_array, 1);
if water_resistance_single_valtype == nil then if water_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: water_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: water_resistance_single_valtype");
return; return;
end end
@@ -216,14 +216,14 @@ function this.update_resistances(player_data)
if water_resistance ~= nil then if water_resistance ~= nil then
this.list.water_resistance = math.floor(water_resistance); this.list.water_resistance = math.floor(water_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: water_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: water_resistance");
return; return;
end end
-- Thunder Resistance -- Thunder Resistance
local thunder_resistance_single_valtype = get_value_method:call(resistance_element_array, 2); local thunder_resistance_single_valtype = get_value_method:call(resistance_element_array, 2);
if thunder_resistance_single_valtype == nil then if thunder_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: thunder_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: thunder_resistance_single_valtype");
return; return;
end end
@@ -231,14 +231,14 @@ function this.update_resistances(player_data)
if thunder_resistance ~= nil then if thunder_resistance ~= nil then
this.list.thunder_resistance = math.floor(thunder_resistance); this.list.thunder_resistance = math.floor(thunder_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: thunder_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: thunder_resistance");
return; return;
end end
-- Ice Resistance -- Ice Resistance
local ice_resistance_single_valtype = get_value_method:call(resistance_element_array, 3); local ice_resistance_single_valtype = get_value_method:call(resistance_element_array, 3);
if ice_resistance_single_valtype == nil then if ice_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: ice_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: ice_resistance_single_valtype");
return; return;
end end
@@ -246,14 +246,14 @@ function this.update_resistances(player_data)
if ice_resistance ~= nil then if ice_resistance ~= nil then
this.list.ice_resistance = math.floor(ice_resistance); this.list.ice_resistance = math.floor(ice_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: ice_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: ice_resistance");
return; return;
end end
-- Dragon Resistance -- Dragon Resistance
local dragon_resistance_single_valtype = get_value_method:call(resistance_element_array, 4); local dragon_resistance_single_valtype = get_value_method:call(resistance_element_array, 4);
if dragon_resistance_single_valtype == nil then if dragon_resistance_single_valtype == nil then
error_handler.report("player_info.update_resistances", "Failed to access Data: dragon_resistance_single_valtype"); error_handler.report("player_info.update_resistances", "Failed to Access Data: dragon_resistance_single_valtype");
return; return;
end end
@@ -261,7 +261,7 @@ function this.update_resistances(player_data)
if dragon_resistance ~= nil then if dragon_resistance ~= nil then
this.list.dragon_resistance = math.floor(dragon_resistance); this.list.dragon_resistance = math.floor(dragon_resistance);
else else
error_handler.report("player_info.update_resistances", "Failed to access Data: dragon_resistance"); error_handler.report("player_info.update_resistances", "Failed to Access Data: dragon_resistance");
return; return;
end end
end end
@@ -285,7 +285,7 @@ end
function this.update_health(quest_player_base) function this.update_health(quest_player_base)
local vital = get_vital_method:call(master_player_data_ref); local vital = get_vital_method:call(master_player_data_ref);
if vital == nil then if vital == nil then
error_handler.report("player_info.update_health", "Failed to access Data: vital"); error_handler.report("player_info.update_health", "Failed to Access Data: vital");
return; return;
end end
@@ -299,7 +299,7 @@ function this.update_heroics(quest_player_base)
local is_predicament_power_up = is_predicament_power_up_method:call(master_player_ref); local is_predicament_power_up = is_predicament_power_up_method:call(master_player_ref);
if is_predicament_power_up == nil then if is_predicament_power_up == nil then
error_handler.report("player_info.update_heroics", "Failed to access Data: is_predicament_power_up"); error_handler.report("player_info.update_heroics", "Failed to Access Data: is_predicament_power_up");
return; return;
end end
@@ -313,7 +313,7 @@ function this.update_dango_adrenaline(quest_player_base)
local is_kitchen_skill_predicament_powerup = is_kitchen_skill_predicament_powerup_method:call(master_player_ref); local is_kitchen_skill_predicament_powerup = is_kitchen_skill_predicament_powerup_method:call(master_player_ref);
if is_kitchen_skill_predicament_powerup == nil then if is_kitchen_skill_predicament_powerup == nil then
error_handler.report("player_info.update_dango_adrenaline", "Failed to access Data: is_kitchen_skill_predicament_powerup"); error_handler.report("player_info.update_dango_adrenaline", "Failed to Access Data: is_kitchen_skill_predicament_powerup");
return; return;
end end

View File

@@ -69,13 +69,13 @@ function this.poison_proc(poison_param)
local enemy = get_enemy_method:call(poison_param); local enemy = get_enemy_method:call(poison_param);
if enemy == nil then if enemy == nil then
error_handler.report("ailment_hook.poison_proc", "Failed to access Data: enemy"); error_handler.report("ailment_hook.poison_proc", "Failed to Access Data: enemy");
return; return;
end end
local is_large = is_boss_enemy_method:call(enemy); local is_large = is_boss_enemy_method:call(enemy);
if is_large == nil then if is_large == nil then
error_handler.report("ailment_hook.poison_proc", "Failed to access Data: is_large"); error_handler.report("ailment_hook.poison_proc", "Failed to Access Data: is_large");
return; return;
end end
@@ -100,13 +100,13 @@ function this.blast_proc(blast_param)
local enemy = get_enemy_method:call(blast_param); local enemy = get_enemy_method:call(blast_param);
if enemy == nil then if enemy == nil then
error_handler.report("ailment_hook.blast_proc", "Failed to access Data: enemy"); error_handler.report("ailment_hook.blast_proc", "Failed to Access Data: enemy");
return; return;
end end
local is_large = is_boss_enemy_method:call(enemy); local is_large = is_boss_enemy_method:call(enemy);
if is_large == nil then if is_large == nil then
error_handler.report("ailment_hook.blast_proc", "Failed to access Data: is_large"); error_handler.report("ailment_hook.blast_proc", "Failed to Access Data: is_large");
return; return;
end end
@@ -128,13 +128,13 @@ function this.stock_damage()
for enemy, monster in pairs(large_monster.list) do for enemy, monster in pairs(large_monster.list) do
local damage_param = get_damage_param_method:call(enemy); local damage_param = get_damage_param_method:call(enemy);
if damage_param == nil then if damage_param == nil then
error_handler.report("ailment_hook.stock_damage", "Failed to access Data: large_monster -> damage_param"); error_handler.report("ailment_hook.stock_damage", "Failed to Access Data: large_monster -> damage_param");
goto continue; goto continue;
end end
local poison_param = poison_param_field:get_data(damage_param); local poison_param = poison_param_field:get_data(damage_param);
if poison_param == nil then if poison_param == nil then
error_handler.report("ailment_hook.stock_damage", "Failed to access Data: large_monster -> poison_param"); error_handler.report("ailment_hook.stock_damage", "Failed to Access Data: large_monster -> poison_param");
goto continue; goto continue;
end end
@@ -145,13 +145,13 @@ function this.stock_damage()
for enemy, monster in pairs(small_monster.list) do for enemy, monster in pairs(small_monster.list) do
local damage_param = get_damage_param_method:call(enemy); local damage_param = get_damage_param_method:call(enemy);
if damage_param == nil then if damage_param == nil then
error_handler.report("ailment_hook.stock_damage", "Failed to access Data: small_monster -> damage_param"); error_handler.report("ailment_hook.stock_damage", "Failed to Access Data: small_monster -> damage_param");
goto continue; goto continue;
end end
local poison_param = poison_param_field:get_data(damage_param); local poison_param = poison_param_field:get_data(damage_param);
if poison_param == nil then if poison_param == nil then
error_handler.report("ailment_hook.stock_damage", "Failed to access Data: small_monster -> poison_param"); error_handler.report("ailment_hook.stock_damage", "Failed to Access Data: small_monster -> poison_param");
goto continue; goto continue;
end end

View File

@@ -289,7 +289,7 @@ function this.update_ailments(enemy, monster)
local damage_param = get_damage_param_method:call(enemy); local damage_param = get_damage_param_method:call(enemy);
if damage_param == nil then if damage_param == nil then
error_handler.report("ailments.update_ailments", "Failed to access Data: damage_param"); error_handler.report("ailments.update_ailments", "Failed to Access Data: damage_param");
return; return;
end end
@@ -307,13 +307,13 @@ function this.update_ailments(enemy, monster)
local condition_param_array = get_condition_param_method:call(damage_param); local condition_param_array = get_condition_param_method:call(damage_param);
if condition_param_array == nil then if condition_param_array == nil then
error_handler.report("ailments.update_ailments", "Failed to access Data: condition_param_array"); error_handler.report("ailments.update_ailments", "Failed to Access Data: condition_param_array");
return; return;
end end
local condition_param_array_length = get_length_method:call(condition_param_array); local condition_param_array_length = get_length_method:call(condition_param_array);
if condition_param_array_length == nil then if condition_param_array_length == nil then
error_handler.report("ailments.update_ailments", "Failed to access Data: condition_param_array_length"); error_handler.report("ailments.update_ailments", "Failed to Access Data: condition_param_array_length");
return; return;
end end
@@ -324,7 +324,7 @@ function this.update_ailments(enemy, monster)
local ailment_param = get_value_method:call(condition_param_array, id); local ailment_param = get_value_method:call(condition_param_array, id);
if ailment_param == nil then if ailment_param == nil then
error_handler.report("ailments.update_ailments", "Failed to access Data: ailment_param No. " .. tostring(id)); error_handler.report("ailments.update_ailments", "Failed to Access Data: ailment_param No. " .. tostring(id));
goto continue; goto continue;
end end
@@ -338,21 +338,21 @@ function this.update_stun_poison_blast_ailments(monster, damage_param)
if stun_param ~= nil then if stun_param ~= nil then
this.update_ailment(monster, stun_param, this.stun_id); this.update_ailment(monster, stun_param, this.stun_id);
else else
error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to access Data: stun_param"); error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to Access Data: stun_param");
end end
local poison_param = poison_param_field:get_data(damage_param); local poison_param = poison_param_field:get_data(damage_param);
if poison_param ~= nil then if poison_param ~= nil then
this.update_ailment(monster, poison_param, this.poison_id); this.update_ailment(monster, poison_param, this.poison_id);
else else
error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to access Data: poison_param"); error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to Access Data: poison_param");
end end
local blast_param = blast_param_field:get_data(damage_param); local blast_param = blast_param_field:get_data(damage_param);
if blast_param ~= nil then if blast_param ~= nil then
this.update_ailment(monster, blast_param, this.blast_id); this.update_ailment(monster, blast_param, this.blast_id);
else else
error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to access Data: blast_param"); error_handler.report("ailments.update_stun_poison_blast_ailments", "Failed to Access Data: blast_param");
end end
end end
@@ -380,14 +380,14 @@ function this.update_ailment(monster, ailment_param, id)
if activate_count_valtype ~= nil then if activate_count_valtype ~= nil then
activate_count = int32_mvalue_field:get_data(activate_count_valtype); activate_count = int32_mvalue_field:get_data(activate_count_valtype);
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: activate_count_valtype"); error_handler.report("ailments.update_ailment", "Failed to Access Data: activate_count_valtype");
end end
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: activate_count_array_length"); error_handler.report("ailments.update_ailment", "Failed to Access Data: activate_count_array_length");
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: activate_count_array"); error_handler.report("ailments.update_ailment", "Failed to Access Data: activate_count_array");
end end
if buildup_array ~= nil then if buildup_array ~= nil then
@@ -401,14 +401,14 @@ function this.update_ailment(monster, ailment_param, id)
if buildup_valtype ~= nil then if buildup_valtype ~= nil then
buildup = single_mvalue_field:get_data(buildup_valtype); buildup = single_mvalue_field:get_data(buildup_valtype);
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_valtype"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_valtype");
end end
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_array_length"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_array_length");
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_array"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_array");
end end
if buildup_limit_array ~= nil then if buildup_limit_array ~= nil then
@@ -422,14 +422,14 @@ function this.update_ailment(monster, ailment_param, id)
if buildup_limit_valtype ~= nil then if buildup_limit_valtype ~= nil then
buildup_limit = single_mvalue_field:get_data(buildup_limit_valtype); buildup_limit = single_mvalue_field:get_data(buildup_limit_valtype);
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_limit_valtype"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_limit_valtype");
end end
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_limit_array_length"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_limit_array_length");
end end
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_limit_array"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_limit_array");
end end
if is_enable == nil then if is_enable == nil then
@@ -453,7 +453,7 @@ function this.update_ailment(monster, ailment_param, id)
monster.ailments[id].activate_count = activate_count; monster.ailments[id].activate_count = activate_count;
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: activate_count"); error_handler.report("ailments.update_ailment", "Failed to Access Data: activate_count");
end end
if buildup ~= nil then if buildup ~= nil then
@@ -463,7 +463,7 @@ function this.update_ailment(monster, ailment_param, id)
monster.ailments[id].total_buildup = buildup; monster.ailments[id].total_buildup = buildup;
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup");
end end
if buildup_limit ~= nil then if buildup_limit ~= nil then
@@ -473,7 +473,7 @@ function this.update_ailment(monster, ailment_param, id)
monster.ailments[id].buildup_limit = buildup_limit; monster.ailments[id].buildup_limit = buildup_limit;
else else
error_handler.report("ailments.update_ailment", "Failed to access Data: buildup_limit"); error_handler.report("ailments.update_ailment", "Failed to Access Data: buildup_limit");
end end
if buildup ~= nil and buildup_limit ~= nil and buildup_limit ~= 0 then if buildup ~= nil and buildup_limit ~= nil and buildup_limit ~= 0 then
@@ -544,7 +544,7 @@ function this.update_poison(monster, poison_param)
--if poison tick, apply damage --if poison tick, apply damage
local is_damage = poison_get_is_damage_method:call(poison_param); local is_damage = poison_get_is_damage_method:call(poison_param);
if is_damage == nil then if is_damage == nil then
error_handler.report("ailments.update_poison", "Failed to access Data: is_damage"); error_handler.report("ailments.update_poison", "Failed to Access Data: is_damage");
return; return;
end end
@@ -554,7 +554,7 @@ function this.update_poison(monster, poison_param)
local poison_damage = poison_damage_field:get_data(poison_param); local poison_damage = poison_damage_field:get_data(poison_param);
if poison_damage == nil then if poison_damage == nil then
error_handler.report("ailments.update_poison", "Failed to access Data: poison_damage"); error_handler.report("ailments.update_poison", "Failed to Access Data: poison_damage");
return; return;
end end

View File

@@ -64,6 +64,126 @@ this.monster_ids = {
risen_chameleos = 2073 risen_chameleos = 2073
} }
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_type_field = enemy_character_base_type_def:get_field("<EnemyType>k__BackingField");
local get_monster_list_register_scale_method = enemy_character_base_type_def:get_method("get_MonsterListRegisterScale");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_enemy_name_message_method = message_manager_type_def:get_method("getEnemyNameMessage");
local enemy_manager_type_def = sdk.find_type_definition("snow.enemy.EnemyManager");
local find_enemy_size_info_method = enemy_manager_type_def:get_method("findEnemySizeInfo");
local size_info_type_def = find_enemy_size_info_method:get_return_type();
local get_small_border_method = size_info_type_def:get_method("get_SmallBorder");
local get_big_border_method = size_info_type_def:get_method("get_BigBorder");
local get_king_border_method = size_info_type_def:get_method("get_KingBorder");
local get_set_info_method = enemy_character_base_type_def:get_method("get_SetInfo");
local set_info_type = get_set_info_method:get_return_type();
local get_unique_id_method = set_info_type:get_method("get_UniqueId");
local get_physical_param_method = enemy_character_base_type_def:get_method("get_PhysicalParam");
local get_stamina_param_method = enemy_character_base_type_def:get_method("get_StaminaParam");
local get_anger_param_method = enemy_character_base_type_def:get_method("get_AngerParam");
local get_damage_param_method = enemy_character_base_type_def:get_method("get_DamageParam");
local get_mystery_param_method = enemy_character_base_type_def:get_method("get_MysteryParam");
local get_mario_param_method = enemy_character_base_type_def:get_method("get_MarioParam");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local is_disp_icon_mini_map_method = enemy_character_base_type_def:get_method("isDispIconMiniMap");
local get_ref_mesh_method = enemy_character_base_type_def:get_method("get_RefMesh");
local mesh_type_def = get_ref_mesh_method:get_return_type();
local get_game_object_method = mesh_type_def:get_method("get_GameObject");
local game_object_type_def = get_game_object_method:get_return_type();
local get_transform_method = game_object_type_def:get_method("get_Transform");
local transform_type_def = get_transform_method:get_return_type();
local get_joint_by_name_method = transform_type_def:get_method("getJointByName");
local joint_type_def = get_joint_by_name_method:get_return_type();
local get_position_method = joint_type_def:get_method("get_Position");
local physical_param_type_def = get_physical_param_method:get_return_type();
local get_vital_method = physical_param_type_def:get_method("getVital");
local get_capture_hp_vital_method = physical_param_type_def:get_method("get_CaptureHpVital");
local vital_param_type_def = get_vital_method:get_return_type();
local get_current_method = vital_param_type_def:get_method("get_Current");
local get_max_method = vital_param_type_def:get_method("get_Max");
local is_enable_method = vital_param_type_def:get_method("isEnable");
local stamina_param_type_def = get_stamina_param_method:get_return_type();
local is_tired_method = stamina_param_type_def:get_method("isTired");
local get_stamina_method = stamina_param_type_def:get_method("getStamina");
local get_max_stamina_method = stamina_param_type_def:get_method("getMaxStamina");
local get_remaining_tired_time_method = stamina_param_type_def:get_method("getStaminaRemainingTime");
local get_total_tired_time_method = stamina_param_type_def:get_method("get_TiredSec");
local anger_param_type_def = get_anger_param_method:get_return_type();
local is_anger_method = anger_param_type_def:get_method("isAnger");
local get_anger_point_method = anger_param_type_def:get_method("get_AngerPoint");
local get_limit_anger_method = anger_param_type_def:get_method("get_LimitAnger");
local get_remaining_anger_time_method = anger_param_type_def:get_method("getAngerRemainingTime");
local get_total_anger_time_method = anger_param_type_def:get_method("get_TimerAnger");
local mario_param_type_def = get_mario_param_method:get_return_type();
local get_is_marionette_method = mario_param_type_def:get_method("get_IsMarionette");
local get_mario_player_index_method = mario_param_type_def:get_method("get_MarioPlayerIndex");
local get_pos_field = enemy_character_base_type_def:get_method("get_Pos");
local system_array_type_def = sdk.find_type_definition("System.Array");
local get_length_method = system_array_type_def:get_method("get_Length");
local get_value_method = system_array_type_def:get_method("GetValue(System.Int32)");
-- Lucent Nargacuga
local em037_02Character_type_def = sdk.find_type_definition("snow.enemy.em037.Em037_02Character");
local is_stealth_method = em037_02Character_type_def:get_method("isStealth");
-- Risen Chameleos and CHameleos
local Em025Character_base_type_Def = sdk.find_type_definition("snow.enemy.em025.Em025CharacterBase");
local get_stealth_ctrl_method = Em025Character_base_type_Def:get_method("get_StealthCtrl");
local stealth_ctrl_type_def = get_stealth_ctrl_method:get_return_type();
local get_current_status_method = stealth_ctrl_type_def:get_method("get_CurrentStatus");
local damage_param_type_def = get_damage_param_method:get_return_type();
local enemy_parts_damage_info_field = damage_param_type_def:get_field("_EnemyPartsDamageInfo");
local enemy_parts_damage_info_type_def = enemy_parts_damage_info_field:get_type();
local get_part_info_array_method = enemy_parts_damage_info_type_def:get_method("get_PartsInfo");
local enemy_parts_info_type_def = sdk.find_type_definition("snow.enemy.EnemyDamageParam.EnemyPartsDamageInfo.EnemyPartsInfo");
local get_parts_break_damage_level_method = enemy_parts_info_type_def:get_method("get_PartsBreakDamageLevel");
local get_parts_break_damage_max_level_method = enemy_parts_info_type_def:get_method("get_PartsBreakDamageMaxLevel");
local get_parts_loss_state_method = enemy_parts_info_type_def:get_method("get_PartsLossState");
local mystery_param_type_def = get_mystery_param_method:get_return_type();
local core_parts_array_field = mystery_param_type_def:get_field("CoreParts");
local enemy_mystery_core_parts_type_def = sdk.find_type_definition("snow.enemy.EnemyMysteryCoreParts");
local core_parts_get_vital_method = enemy_mystery_core_parts_type_def:get_method("get_Vital");
local core_parts_get_is_active_method = enemy_mystery_core_parts_type_def:get_method("get_IsActive");
local core_parts_get_dying_vital_threashold_method = enemy_mystery_core_parts_type_def:get_method("get_DyingVitalThreashold");
local on_break_method = enemy_mystery_core_parts_type_def:get_method("onBreak");
local gui_manager_type_def = sdk.find_type_definition("snow.gui.GuiManager");
local get_tg_camera_method = gui_manager_type_def:get_method("get_refGuiHud_TgCamera");
local tg_camera_type_def = get_tg_camera_method:get_return_type();
local get_targeting_enemy_index_field = tg_camera_type_def:get_field("OldTargetingEmIndex");
local lobby_manager_type_def = sdk.find_type_definition("snow.LobbyManager");
local receive_quest_hunter_info_method = lobby_manager_type_def:get_method("receiveQuestHunterInfo");
function this.new(enemy) function this.new(enemy)
local monster = {}; local monster = {};
@@ -116,7 +236,10 @@ function this.new(enemy)
monster.rage_seconds_left = 0; monster.rage_seconds_left = 0;
monster.rage_timer_percentage = 0; monster.rage_timer_percentage = 0;
monster.head_joint = nil;
monster.position = Vector3f.new(0, 0, 0); monster.position = Vector3f.new(0, 0, 0);
monster.head_position = Vector3f.new(0, 0, 0);
monster.distance = 0; monster.distance = 0;
monster.name = "Large Monster"; monster.name = "Large Monster";
@@ -166,116 +289,10 @@ function this.get_monster(enemy)
return monster; return monster;
end end
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_type_field = enemy_character_base_type_def:get_field("<EnemyType>k__BackingField");
local get_monster_list_register_scale_method = enemy_character_base_type_def:get_method("get_MonsterListRegisterScale");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_enemy_name_message_method = message_manager_type_def:get_method("getEnemyNameMessage");
local enemy_manager_type_def = sdk.find_type_definition("snow.enemy.EnemyManager");
local find_enemy_size_info_method = enemy_manager_type_def:get_method("findEnemySizeInfo");
local size_info_type = find_enemy_size_info_method:get_return_type();
local get_small_border_method = size_info_type:get_method("get_SmallBorder");
local get_big_border_method = size_info_type:get_method("get_BigBorder");
local get_king_border_method = size_info_type:get_method("get_KingBorder");
local get_set_info_method = enemy_character_base_type_def:get_method("get_SetInfo");
local set_info_type = get_set_info_method:get_return_type();
local get_unique_id_method = set_info_type:get_method("get_UniqueId");
local get_physical_param_method = enemy_character_base_type_def:get_method("get_PhysicalParam");
local get_stamina_param_method = enemy_character_base_type_def:get_method("get_StaminaParam");
local get_anger_param_method = enemy_character_base_type_def:get_method("get_AngerParam");
local get_damage_param_method = enemy_character_base_type_def:get_method("get_DamageParam");
local get_mystery_param_method = enemy_character_base_type_def:get_method("get_MysteryParam");
local get_mario_param_method = enemy_character_base_type_def:get_method("get_MarioParam");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local is_disp_icon_mini_map_method = enemy_character_base_type_def:get_method("isDispIconMiniMap");
local physical_param_type = get_physical_param_method:get_return_type();
local get_vital_method = physical_param_type:get_method("getVital");
local get_capture_hp_vital_method = physical_param_type:get_method("get_CaptureHpVital");
local vital_param_type = get_vital_method:get_return_type();
local get_current_method = vital_param_type:get_method("get_Current");
local get_max_method = vital_param_type:get_method("get_Max");
local is_enable_method = vital_param_type:get_method("isEnable");
local stamina_param_type = get_stamina_param_method:get_return_type();
local is_tired_method = stamina_param_type:get_method("isTired");
local get_stamina_method = stamina_param_type:get_method("getStamina");
local get_max_stamina_method = stamina_param_type:get_method("getMaxStamina");
local get_remaining_tired_time_method = stamina_param_type:get_method("getStaminaRemainingTime");
local get_total_tired_time_method = stamina_param_type:get_method("get_TiredSec");
local anger_param_type = get_anger_param_method:get_return_type();
local is_anger_method = anger_param_type:get_method("isAnger");
local get_anger_point_method = anger_param_type:get_method("get_AngerPoint");
local get_limit_anger_method = anger_param_type:get_method("get_LimitAnger");
local get_remaining_anger_time_method = anger_param_type:get_method("getAngerRemainingTime");
local get_total_anger_time_method = anger_param_type:get_method("get_TimerAnger");
local mario_param_type = get_mario_param_method:get_return_type();
local get_is_marionette_method = mario_param_type:get_method("get_IsMarionette");
local get_mario_player_index_method = mario_param_type:get_method("get_MarioPlayerIndex");
local get_pos_field = enemy_character_base_type_def:get_method("get_Pos");
local system_array_type_def = sdk.find_type_definition("System.Array");
local get_length_method = system_array_type_def:get_method("get_Length");
local get_value_method = system_array_type_def:get_method("GetValue(System.Int32)");
-- Lucent Nargacuga
local em037_02Character_type_def = sdk.find_type_definition("snow.enemy.em037.Em037_02Character");
local is_stealth_method = em037_02Character_type_def:get_method("isStealth");
-- Risen Chameleos and CHameleos
local Em025Character_base_type_Def = sdk.find_type_definition("snow.enemy.em025.Em025CharacterBase");
local get_stealth_ctrl_method = Em025Character_base_type_Def:get_method("get_StealthCtrl");
local stealth_ctrl_type_def = get_stealth_ctrl_method:get_return_type();
local get_current_status_method = stealth_ctrl_type_def:get_method("get_CurrentStatus");
local damage_param_type_def = get_damage_param_method:get_return_type();
local enemy_parts_damage_info_field = damage_param_type_def:get_field("_EnemyPartsDamageInfo");
local enemy_parts_damage_info_type_def = enemy_parts_damage_info_field:get_type();
local get_part_info_array_method = enemy_parts_damage_info_type_def:get_method("get_PartsInfo");
local enemy_parts_info_type_def = sdk.find_type_definition("snow.enemy.EnemyDamageParam.EnemyPartsDamageInfo.EnemyPartsInfo");
local get_parts_break_damage_level_method = enemy_parts_info_type_def:get_method("get_PartsBreakDamageLevel");
local get_parts_break_damage_max_level_method = enemy_parts_info_type_def:get_method("get_PartsBreakDamageMaxLevel");
local get_parts_loss_state_method = enemy_parts_info_type_def:get_method("get_PartsLossState");
local mystery_param_type_def = get_mystery_param_method:get_return_type();
local core_parts_array_field = mystery_param_type_def:get_field("CoreParts");
local enemy_mystery_core_parts_type_def = sdk.find_type_definition("snow.enemy.EnemyMysteryCoreParts");
local core_parts_get_vital_method = enemy_mystery_core_parts_type_def:get_method("get_Vital");
local core_parts_get_is_active_method = enemy_mystery_core_parts_type_def:get_method("get_IsActive");
local core_parts_get_dying_vital_threashold_method = enemy_mystery_core_parts_type_def:get_method("get_DyingVitalThreashold");
local on_break_method = enemy_mystery_core_parts_type_def:get_method("onBreak");
local gui_manager_type_def = sdk.find_type_definition("snow.gui.GuiManager");
local get_tg_camera_method = gui_manager_type_def:get_method("get_refGuiHud_TgCamera");
local tg_camera_type_def = get_tg_camera_method:get_return_type();
local get_targeting_enemy_index_field = tg_camera_type_def:get_field("OldTargetingEmIndex");
local lobby_manager_type_def = sdk.find_type_definition("snow.LobbyManager");
local receive_quest_hunter_info_method = lobby_manager_type_def:get_method("receiveQuestHunterInfo");
function this.init(monster, enemy) function this.init(monster, enemy)
local monster_id = enemy_type_field:get_data(enemy); local monster_id = enemy_type_field:get_data(enemy);
if monster_id == nil then if monster_id == nil then
error_handler.report("large_monster.init", "Failed to access Data: enemy_type"); error_handler.report("large_monster.init", "Failed to Access Data: enemy_type");
return; return;
end end
@@ -289,7 +306,7 @@ function this.init(monster, enemy)
if enemy_name ~= nil then if enemy_name ~= nil then
monster.name = enemy_name; monster.name = enemy_name;
else else
error_handler.report("large_monster.init", "Failed to access Data: enemy_name"); error_handler.report("large_monster.init", "Failed to Access Data: enemy_name");
end end
if monster_id ~= this.monster_ids.toadversary then if monster_id ~= this.monster_ids.toadversary then
@@ -299,10 +316,10 @@ function this.init(monster, enemy)
if unique_id ~= nil then if unique_id ~= nil then
monster.unique_id = unique_id; monster.unique_id = unique_id;
else else
error_handler.report("large_monster.init", "Failed to access Data: unique_id"); error_handler.report("large_monster.init", "Failed to Access Data: unique_id");
end end
else else
error_handler.report("large_monster.init", "Failed to access Data: set_info"); error_handler.report("large_monster.init", "Failed to Access Data: set_info");
end end
local size_info = find_enemy_size_info_method:call(singletons.enemy_manager, monster_id); local size_info = find_enemy_size_info_method:call(singletons.enemy_manager, monster_id);
@@ -316,25 +333,25 @@ function this.init(monster, enemy)
if small_border ~= nil then if small_border ~= nil then
monster.small_border = small_border; monster.small_border = small_border;
else else
error_handler.report("large_monster.init", "Failed to access Data: small_border"); error_handler.report("large_monster.init", "Failed to Access Data: small_border");
end end
if big_border ~= nil then if big_border ~= nil then
monster.big_border = big_border; monster.big_border = big_border;
else else
error_handler.report("large_monster.init", "Failed to access Data: big_border"); error_handler.report("large_monster.init", "Failed to Access Data: big_border");
end end
if king_border ~= nil then if king_border ~= nil then
monster.king_border = king_border; monster.king_border = king_border;
else else
error_handler.report("large_monster.init", "Failed to access Data: king_border"); error_handler.report("large_monster.init", "Failed to Access Data: king_border");
end end
if size ~= nil then if size ~= nil then
monster.size = size; monster.size = size;
else else
error_handler.report("large_monster.init", "Failed to access Data: size"); error_handler.report("large_monster.init", "Failed to Access Data: size");
end end
if monster.size <= monster.small_border then if monster.size <= monster.small_border then
@@ -345,7 +362,7 @@ function this.init(monster, enemy)
monster.crown = language.current_language.UI.silver; monster.crown = language.current_language.UI.silver;
end end
else else
error_handler.report("large_monster.init", "Failed to access Data: size_info"); error_handler.report("large_monster.init", "Failed to Access Data: size_info");
end end
end end
@@ -360,13 +377,13 @@ function this.init(monster, enemy)
if is_capture_enable_ ~= nil then if is_capture_enable_ ~= nil then
is_capture_enable = is_capture_enable_; is_capture_enable = is_capture_enable_;
else else
error_handler.report("large_monster.init", "Failed to access Data: is_capture_enable_"); error_handler.report("large_monster.init", "Failed to Access Data: is_capture_enable_");
end end
else else
error_handler.report("large_monster.init", "Failed to access Data: capture_param"); error_handler.report("large_monster.init", "Failed to Access Data: capture_param");
end end
else else
error_handler.report("large_monster.init", "Failed to access Data: damage_param"); error_handler.report("large_monster.init", "Failed to Access Data: damage_param");
end end
local mystery_param = get_mystery_param_method:call(enemy); local mystery_param = get_mystery_param_method:call(enemy);
@@ -374,6 +391,8 @@ function this.init(monster, enemy)
monster.is_anomaly = is_anomaly; monster.is_anomaly = is_anomaly;
monster.is_capturable = is_capture_enable and not is_anomaly; monster.is_capturable = is_capture_enable and not is_anomaly;
this.update_head_joint(enemy, monster);
end end
function this.init_UI(monster, monster_UI, cached_config) function this.init_UI(monster, monster_UI, cached_config)
@@ -478,10 +497,73 @@ function this.update_position(enemy, monster)
local position = get_pos_field:call(enemy); local position = get_pos_field:call(enemy);
if position == nil then if position == nil then
error_handler.report("large_monster.update_position", "Failed to access Data: position"); error_handler.report("large_monster.update_position", "Failed to Access Data: position");
end end
monster.position = position; monster.position = position;
this.update_head_position(enemy, monster);
end
function this.update_head_joint(enemy, monster)
local mesh = get_ref_mesh_method:call(enemy);
if mesh == nil then
error_handler.report("large_monster.update_head_joint", "Failed to Access Data: Mesh");
return;
end
local game_object = get_game_object_method:call(mesh);
if game_object == nil then
error_handler.report("large_monster.update_head_joint", "Failed to Access Data: GameObject");
return;
end
local transform = get_transform_method:call(game_object);
if transform == nil then
error_handler.report("large_monster.update_head_joint", "Failed to Access Data: Transform");
return;
end
local head_joint = get_joint_by_name_method:call(transform, "Head_00")
or get_joint_by_name_method:call(transform, "Head")
or get_joint_by_name_method:call(transform, "Head_01")
or get_joint_by_name_method:call(transform, "Spine_00")
or get_joint_by_name_method:call(transform, "Cog")
or get_joint_by_name_method:call(transform, "head")
or get_joint_by_name_method:call(transform, "root");
if head_joint == nil then
-- local joints = transform:get_Joints();
-- local out = "";
-- for i = 0, joints:get_Length() - 1 do
-- local joint = joints[i];
-- local joint_name = joint:get_Name();
-- out = out .. joint_name .. "\n";
-- end
-- error_handler.report(monster.name, out);
error_handler.report("large_monster.update_head_joint", "Failed to Access Data: HeadJoint");
return;
end
monster.head_joint = head_joint;
end
function this.update_head_position(enemy, monster)
if monster.head_joint == nil then
return;
end
local head_position = get_position_method:call(monster.head_joint);
if head_position == nil then
error_handler.report("large_monster.update_head_position", "Failed to Access Data: HeadPosition");
return;
end
monster.head_position = head_position;
end end
-- Code by coavins -- Code by coavins
@@ -490,20 +572,20 @@ function this.update_all_riders()
-- get marionette rider -- get marionette rider
local mario_param = get_mario_param_method:call(enemy); local mario_param = get_mario_param_method:call(enemy);
if mario_param == nil then if mario_param == nil then
error_handler.report("large_monster.update_all_riders", "Failed to access Data: mario_param"); error_handler.report("large_monster.update_all_riders", "Failed to Access Data: mario_param");
goto continue; goto continue;
end end
local is_marionette = get_is_marionette_method:call(mario_param); local is_marionette = get_is_marionette_method:call(mario_param);
if is_marionette == nil then if is_marionette == nil then
error_handler.report("large_monster.update_all_riders", "Failed to access Data: is_marionette"); error_handler.report("large_monster.update_all_riders", "Failed to Access Data: is_marionette");
goto continue; goto continue;
end end
if is_marionette then if is_marionette then
local player_id = get_mario_player_index_method:call(mario_param); local player_id = get_mario_player_index_method:call(mario_param);
if player_id == nil then if player_id == nil then
error_handler.report("large_monster.update_all_riders", "Failed to access Data: player_id"); error_handler.report("large_monster.update_all_riders", "Failed to Access Data: player_id");
goto continue; goto continue;
end end
@@ -529,14 +611,14 @@ function this.update(enemy, monster)
if dead_or_captured ~= nil then if dead_or_captured ~= nil then
monster.dead_or_captured = dead_or_captured; monster.dead_or_captured = dead_or_captured;
else else
error_handler.report("large_monster.update", "Failed to access Data: dead_or_captured"); error_handler.report("large_monster.update", "Failed to Access Data: dead_or_captured");
end end
local is_disp_icon_mini_map = is_disp_icon_mini_map_method:call(enemy); local is_disp_icon_mini_map = is_disp_icon_mini_map_method:call(enemy);
if is_disp_icon_mini_map ~= nil then if is_disp_icon_mini_map ~= nil then
monster.is_disp_icon_mini_map = is_disp_icon_mini_map; monster.is_disp_icon_mini_map = is_disp_icon_mini_map;
else else
error_handler.report("large_monster.update", "Failed to access Data: is_disp_icon_mini_map"); error_handler.report("large_monster.update", "Failed to Access Data: is_disp_icon_mini_map");
end end
if monster.id == this.monster_ids.lucent_nargacuga or monster.id == this.monster_ids.chameleos or monster.id == this.monster_ids.risen_chameleos then if monster.id == this.monster_ids.lucent_nargacuga or monster.id == this.monster_ids.chameleos or monster.id == this.monster_ids.risen_chameleos then
@@ -550,7 +632,7 @@ function this.update(enemy, monster)
if is_stealth == nil then if is_stealth == nil then
monster.is_stealth = is_stealth; monster.is_stealth = is_stealth;
else else
error_handler.report("large_monster.update", "Failed to access Data: is_stealth"); error_handler.report("large_monster.update", "Failed to Access Data: is_stealth");
end end
-- Chameleos and Risen Chameleos -- Chameleos and Risen Chameleos
@@ -560,14 +642,14 @@ function this.update(enemy, monster)
local status = get_current_status_method:call(stealth_controller); local status = get_current_status_method:call(stealth_controller);
if status == nil then if status == nil then
error_handler.report("large_monster.update", "Failed to access Data: status"); error_handler.report("large_monster.update", "Failed to Access Data: status");
elseif status >= 2 then elseif status >= 2 then
monster.is_stealth = true; monster.is_stealth = true;
else else
monster.is_stealth = false; monster.is_stealth = false;
end end
else else
error_handler.report("large_monster.update", "Failed to access Data: stealth_controller"); error_handler.report("large_monster.update", "Failed to Access Data: stealth_controller");
end end
end end
end end
@@ -592,13 +674,13 @@ function this.update_health(enemy, monster)
local physical_param = get_physical_param_method:call(enemy); local physical_param = get_physical_param_method:call(enemy);
if physical_param == nil then if physical_param == nil then
error_handler.report("large_monster.update_health", "Failed to access Data: physical_param"); error_handler.report("large_monster.update_health", "Failed to Access Data: physical_param");
return nil; return nil;
end end
local vital_param = get_vital_method:call(physical_param, 0, 0); local vital_param = get_vital_method:call(physical_param, 0, 0);
if vital_param == nil then if vital_param == nil then
error_handler.report("large_monster.update_health", "Failed to access Data: vital_param"); error_handler.report("large_monster.update_health", "Failed to Access Data: vital_param");
return nil; return nil;
end end
@@ -606,21 +688,21 @@ function this.update_health(enemy, monster)
if health ~= nil then if health ~= nil then
monster.health = health; monster.health = health;
else else
error_handler.report("large_monster.update_health", "Failed to access Data: health"); error_handler.report("large_monster.update_health", "Failed to Access Data: health");
end end
local max_health = get_max_method:call(vital_param); local max_health = get_max_method:call(vital_param);
if max_health ~= nil then if max_health ~= nil then
monster.max_health = max_health; monster.max_health = max_health;
else else
error_handler.report("large_monster.update_health", "Failed to access Data: max_health"); error_handler.report("large_monster.update_health", "Failed to Access Data: max_health");
end end
local capture_health = get_capture_hp_vital_method:call(physical_param); local capture_health = get_capture_hp_vital_method:call(physical_param);
if capture_health ~= nil then if capture_health ~= nil then
monster.capture_health = capture_health; monster.capture_health = capture_health;
else else
error_handler.report("large_monster.update_health", "Failed to access Data: capture_health"); error_handler.report("large_monster.update_health", "Failed to Access Data: capture_health");
end end
monster.missing_health = max_health - health; monster.missing_health = max_health - health;
@@ -652,7 +734,7 @@ function this.update_stamina(enemy, monster, stamina_param)
if stamina_param == nil then if stamina_param == nil then
stamina_param = get_stamina_param_method:call(enemy); stamina_param = get_stamina_param_method:call(enemy);
if stamina_param == nil then if stamina_param == nil then
error_handler.report("large_monster.update_stamina", "Failed to access Data: stamina_param"); error_handler.report("large_monster.update_stamina", "Failed to Access Data: stamina_param");
return; return;
end end
end end
@@ -661,7 +743,7 @@ function this.update_stamina(enemy, monster, stamina_param)
if is_tired ~= nil then if is_tired ~= nil then
monster.is_tired = is_tired; monster.is_tired = is_tired;
else else
error_handler.report("large_monster.update_stamina", "Failed to access Data: is_tired"); error_handler.report("large_monster.update_stamina", "Failed to Access Data: is_tired");
return; return;
end end
@@ -673,7 +755,7 @@ function this.update_stamina(enemy, monster, stamina_param)
if stamina ~= nil then if stamina ~= nil then
monster.stamina = stamina; monster.stamina = stamina;
else else
error_handler.report("large_monster.update_stamina", "Failed to access Data: stamina"); error_handler.report("large_monster.update_stamina", "Failed to Access Data: stamina");
return; return;
end end
@@ -681,7 +763,7 @@ function this.update_stamina(enemy, monster, stamina_param)
if max_stamina ~= nil then if max_stamina ~= nil then
monster.max_stamina = max_stamina; monster.max_stamina = max_stamina;
else else
error_handler.report("large_monster.update_stamina", "Failed to access Data: max_stamina"); error_handler.report("large_monster.update_stamina", "Failed to Access Data: max_stamina");
return; return;
end end
@@ -709,7 +791,7 @@ function this.update_stamina_timer(enemy, monster, stamina_param)
if stamina_param == nil then if stamina_param == nil then
stamina_param = get_stamina_param_method:call(enemy); stamina_param = get_stamina_param_method:call(enemy);
if stamina_param == nil then if stamina_param == nil then
error_handler.report("large_monster.update_stamina_timer", "Failed to access Data: stamina_param"); error_handler.report("large_monster.update_stamina_timer", "Failed to Access Data: stamina_param");
return; return;
end end
end end
@@ -718,7 +800,7 @@ function this.update_stamina_timer(enemy, monster, stamina_param)
if is_tired ~= nil then if is_tired ~= nil then
monster.is_tired = is_tired; monster.is_tired = is_tired;
else else
error_handler.report("large_monster.update_stamina_timer", "Failed to access Data: is_tired"); error_handler.report("large_monster.update_stamina_timer", "Failed to Access Data: is_tired");
return; return;
end end
@@ -730,7 +812,7 @@ function this.update_stamina_timer(enemy, monster, stamina_param)
if tired_timer ~= nil then if tired_timer ~= nil then
monster.tired_timer = tired_timer; monster.tired_timer = tired_timer;
else else
error_handler.report("large_monster.update_stamina_timer", "Failed to access Data: tired_timer"); error_handler.report("large_monster.update_stamina_timer", "Failed to Access Data: tired_timer");
return; return;
end end
@@ -738,7 +820,7 @@ function this.update_stamina_timer(enemy, monster, stamina_param)
if tired_duration ~= nil then if tired_duration ~= nil then
monster.tired_duration = tired_duration; monster.tired_duration = tired_duration;
else else
error_handler.report("large_monster.update_stamina_timer", "Failed to access Data: tired_duration"); error_handler.report("large_monster.update_stamina_timer", "Failed to Access Data: tired_duration");
return; return;
end end
@@ -773,7 +855,7 @@ function this.update_rage(enemy, monster, anger_param)
if anger_param == nil then if anger_param == nil then
anger_param = get_anger_param_method:call(enemy); anger_param = get_anger_param_method:call(enemy);
if anger_param == nil then if anger_param == nil then
error_handler.report("large_monster.update_rage", "Failed to access Data: anger_param"); error_handler.report("large_monster.update_rage", "Failed to Access Data: anger_param");
return; return;
end end
end end
@@ -782,7 +864,7 @@ function this.update_rage(enemy, monster, anger_param)
if is_in_rage ~= nil then if is_in_rage ~= nil then
monster.is_in_rage = is_in_rage; monster.is_in_rage = is_in_rage;
else else
error_handler.report("large_monster.update_rage", "Failed to access Data: is_in_rage"); error_handler.report("large_monster.update_rage", "Failed to Access Data: is_in_rage");
return; return;
end end
@@ -794,7 +876,7 @@ function this.update_rage(enemy, monster, anger_param)
if rage_point ~= nil then if rage_point ~= nil then
monster.rage_point = rage_point; monster.rage_point = rage_point;
else else
error_handler.report("large_monster.update_rage", "Failed to access Data: rage_point"); error_handler.report("large_monster.update_rage", "Failed to Access Data: rage_point");
return; return;
end end
@@ -802,7 +884,7 @@ function this.update_rage(enemy, monster, anger_param)
if rage_limit ~= nil then if rage_limit ~= nil then
monster.rage_limit = rage_limit; monster.rage_limit = rage_limit;
else else
error_handler.report("large_monster.update_rage", "Failed to access Data: rage_limit"); error_handler.report("large_monster.update_rage", "Failed to Access Data: rage_limit");
return; return;
end end
@@ -829,7 +911,7 @@ function this.update_rage_timer(enemy, monster, anger_param)
if anger_param == nil then if anger_param == nil then
anger_param = get_anger_param_method:call(enemy); anger_param = get_anger_param_method:call(enemy);
if anger_param == nil then if anger_param == nil then
error_handler.report("large_monster.update_rage_timer", "Failed to access Data: anger_param"); error_handler.report("large_monster.update_rage_timer", "Failed to Access Data: anger_param");
return; return;
end end
end end
@@ -838,7 +920,7 @@ function this.update_rage_timer(enemy, monster, anger_param)
if is_in_rage ~= nil then if is_in_rage ~= nil then
monster.is_in_rage = is_in_rage; monster.is_in_rage = is_in_rage;
else else
error_handler.report("large_monster.update_rage_timer", "Failed to access Data: is_in_rage"); error_handler.report("large_monster.update_rage_timer", "Failed to Access Data: is_in_rage");
return; return;
end end
@@ -850,7 +932,7 @@ function this.update_rage_timer(enemy, monster, anger_param)
if rage_timer ~= nil then if rage_timer ~= nil then
monster.rage_timer = rage_timer; monster.rage_timer = rage_timer;
else else
error_handler.report("large_monster.update_rage_timer", "Failed to access Data: rage_timer"); error_handler.report("large_monster.update_rage_timer", "Failed to Access Data: rage_timer");
return; return;
end end
@@ -858,7 +940,7 @@ function this.update_rage_timer(enemy, monster, anger_param)
if rage_duration ~= nil then if rage_duration ~= nil then
monster.rage_duration = rage_duration; monster.rage_duration = rage_duration;
else else
error_handler.report("large_monster.update_rage_timer", "Failed to access Data: rage_duration"); error_handler.report("large_monster.update_rage_timer", "Failed to Access Data: rage_duration");
return; return;
end end
@@ -905,32 +987,32 @@ function this.update_parts(enemy, monster, physical_param)
if physical_param == nil then if physical_param == nil then
physical_param = get_physical_param_method:call(enemy); physical_param = get_physical_param_method:call(enemy);
if physical_param == nil then if physical_param == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: physical_param"); error_handler.report("large_monster.update_parts", "Failed to Access Data: physical_param");
return; return;
end end
end end
local damage_param = get_damage_param_method:call(enemy); local damage_param = get_damage_param_method:call(enemy);
if damage_param == nil then if damage_param == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: damage_param"); error_handler.report("large_monster.update_parts", "Failed to Access Data: damage_param");
return; return;
end end
local enemy_parts_damage_info = enemy_parts_damage_info_field:get_data(damage_param); local enemy_parts_damage_info = enemy_parts_damage_info_field:get_data(damage_param);
if enemy_parts_damage_info == nil then if enemy_parts_damage_info == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: enemy_parts_damage_info"); error_handler.report("large_monster.update_parts", "Failed to Access Data: enemy_parts_damage_info");
return; return;
end end
local core_parts_array = get_part_info_array_method:call(enemy_parts_damage_info); local core_parts_array = get_part_info_array_method:call(enemy_parts_damage_info);
if core_parts_array == nil then if core_parts_array == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: core_parts_array"); error_handler.report("large_monster.update_parts", "Failed to Access Data: core_parts_array");
return; return;
end end
local core_parts_array_length = get_length_method:call(core_parts_array); local core_parts_array_length = get_length_method:call(core_parts_array);
if core_parts_array_length == nil then if core_parts_array_length == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: core_parts_array_length"); error_handler.report("large_monster.update_parts", "Failed to Access Data: core_parts_array_length");
return; return;
end end
@@ -939,7 +1021,7 @@ function this.update_parts(enemy, monster, physical_param)
local enemy_parts_info = get_value_method:call(core_parts_array, i); local enemy_parts_info = get_value_method:call(core_parts_array, i);
if enemy_parts_info == nil then if enemy_parts_info == nil then
error_handler.report("large_monster.update_parts", "Failed to access Data: enemy_parts_info No. " .. tostring(i)); error_handler.report("large_monster.update_parts", "Failed to Access Data: enemy_parts_info No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -963,19 +1045,19 @@ function this.update_parts(enemy, monster, physical_param)
local part_current = get_current_method:call(part_vital); local part_current = get_current_method:call(part_vital);
if part_current == nil then if part_current == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_current", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_current", i));
end end
local part_max = get_max_method:call(part_vital); local part_max = get_max_method:call(part_vital);
if part_max == nil then if part_max == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_max", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_max", i));
end end
if part_current ~= nil and part_max ~= nil then if part_current ~= nil and part_max ~= nil then
body_part.update_flinch(part, part_current, part_max); body_part.update_flinch(part, part_current, part_max);
end end
else else
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_vital", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_vital", i));
end end
end end
@@ -988,29 +1070,29 @@ function this.update_parts(enemy, monster, physical_param)
local part_break_current = get_current_method:call(part_break_vital); local part_break_current = get_current_method:call(part_break_vital);
if part_break_current == nil then if part_break_current == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_current", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_current", i));
end end
local part_break_max = get_max_method:call(part_break_vital); local part_break_max = get_max_method:call(part_break_vital);
if part_break_max == nil then if part_break_max == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_max", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_max", i));
end end
local part_break_count = get_parts_break_damage_level_method:call(enemy_parts_info); local part_break_count = get_parts_break_damage_level_method:call(enemy_parts_info);
if part_break_count == nil then if part_break_count == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_count", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_count", i));
end end
local part_break_max_count = get_parts_break_damage_max_level_method:call(enemy_parts_info); local part_break_max_count = get_parts_break_damage_max_level_method:call(enemy_parts_info);
if part_break_max_count == nil then if part_break_max_count == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_max_count", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_max_count", i));
end end
if part_break_current ~= nil and part_break_max ~= nil and part_break_count ~= nil and part_break_max_count ~= nil then if part_break_current ~= nil and part_break_max ~= nil and part_break_count ~= nil and part_break_max_count ~= nil then
body_part.update_break(part, part_break_current, part_break_max, part_break_count, part_break_max_count); body_part.update_break(part, part_break_current, part_break_max, part_break_count, part_break_max_count);
end end
else else
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_break_vital", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_break_vital", i));
end end
end end
@@ -1023,24 +1105,24 @@ function this.update_parts(enemy, monster, physical_param)
local part_loss_current = get_current_method:call(part_loss_vital); local part_loss_current = get_current_method:call(part_loss_vital);
if part_loss_current == nil then if part_loss_current == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_loss_current", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_loss_current", i));
end end
local part_loss_max = get_max_method:call(part_loss_vital); local part_loss_max = get_max_method:call(part_loss_vital);
if part_loss_max == nil then if part_loss_max == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_loss_max", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_loss_max", i));
end end
local is_severed = get_parts_loss_state_method:call(enemy_parts_info); local is_severed = get_parts_loss_state_method:call(enemy_parts_info);
if is_severed == nil then if is_severed == nil then
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> is_severed", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> is_severed", i));
end end
if part_loss_current ~= nil and part_loss_max ~= nil and is_severed ~= nil then if part_loss_current ~= nil and part_loss_max ~= nil and is_severed ~= nil then
body_part.update_loss(part, part_loss_current, part_loss_max, is_severed); body_part.update_loss(part, part_loss_current, part_loss_max, is_severed);
end end
else else
error_handler.report("large_monster.update_parts", string.format("Failed to access Data: enemy_parts_info No. %d -> part_loss_vital", i)); error_handler.report("large_monster.update_parts", string.format("Failed to Access Data: enemy_parts_info No. %d -> part_loss_vital", i));
end end
end end
@@ -1078,13 +1160,13 @@ function this.update_anomaly_parts(enemy, monster, mystery_param)
local core_parts_array = core_parts_array_field:get_data(mystery_param); local core_parts_array = core_parts_array_field:get_data(mystery_param);
if core_parts_array == nil then if core_parts_array == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: core_parts_array"); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: core_parts_array");
return; return;
end end
local core_parts_array_length = get_length_method:call(core_parts_array); local core_parts_array_length = get_length_method:call(core_parts_array);
if core_parts_array_length == nil then if core_parts_array_length == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: core_parts_array_length"); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: core_parts_array_length");
return; return;
end end
@@ -1093,7 +1175,7 @@ function this.update_anomaly_parts(enemy, monster, mystery_param)
local core_part = get_value_method:call(core_parts_array, i); local core_part = get_value_method:call(core_parts_array, i);
if core_part == nil then if core_part == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: core_part No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: core_part No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -1110,13 +1192,13 @@ function this.update_anomaly_parts(enemy, monster, mystery_param)
local part_vital = core_parts_get_vital_method:call(core_part); local part_vital = core_parts_get_vital_method:call(core_part);
if part_vital == nil then if part_vital == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_vital No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_vital No. " .. tostring(i));
return; return;
end end
local part_is_active = core_parts_get_is_active_method:call(core_part); local part_is_active = core_parts_get_is_active_method:call(core_part);
if part_is_active == nil then if part_is_active == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_is_active No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_is_active No. " .. tostring(i));
return; return;
end end
@@ -1124,19 +1206,19 @@ function this.update_anomaly_parts(enemy, monster, mystery_param)
local part_current = get_current_method:call(part_vital); local part_current = get_current_method:call(part_vital);
if part_current == nil then if part_current == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_current No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_current No. " .. tostring(i));
goto continue; goto continue;
end end
local part_max = get_max_method:call(part_vital); local part_max = get_max_method:call(part_vital);
if part_max == nil then if part_max == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_max No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_max No. " .. tostring(i));
goto continue; goto continue;
end end
local part_is_enabled = is_enable_method:call(part_vital); local part_is_enabled = is_enable_method:call(part_vital);
if part_is_enabled == nil then if part_is_enabled == nil then
error_handler.report("large_monster.update_anomaly_parts", "Failed to access Data: part_is_enabled No. " .. tostring(i)); error_handler.report("large_monster.update_anomaly_parts", "Failed to Access Data: part_is_enabled No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -1159,19 +1241,19 @@ function this.update_highlighted_id()
end end
if singletons.gui_manager == nil then if singletons.gui_manager == nil then
error_handler.report("large_monster.update_highlighted_id", "Failed to access Data: gui_manager"); error_handler.report("large_monster.update_highlighted_id", "Failed to Access Data: gui_manager");
return; return;
end end
local gui_hud_target_camera = get_tg_camera_method:call(singletons.gui_manager); local gui_hud_target_camera = get_tg_camera_method:call(singletons.gui_manager);
if gui_hud_target_camera == nil then if gui_hud_target_camera == nil then
error_handler.report("large_monster.update_highlighted_id", "Failed to access Data: gui_hud_target_camera"); error_handler.report("large_monster.update_highlighted_id", "Failed to Access Data: gui_hud_target_camera");
return; return;
end end
local highlighted_id = get_targeting_enemy_index_field:get_data(gui_hud_target_camera); local highlighted_id = get_targeting_enemy_index_field:get_data(gui_hud_target_camera);
if highlighted_id == nil then if highlighted_id == nil then
error_handler.report("large_monster_UI.update_highlighted_id", "Failed to access Data: highlighted_id"); error_handler.report("large_monster_UI.update_highlighted_id", "Failed to Access Data: highlighted_id");
return; return;
end end

View File

@@ -205,13 +205,13 @@ end
function this.update_health(enemy_damage_check) function this.update_health(enemy_damage_check)
local enemy = get_ref_enemy:call(enemy_damage_check); local enemy = get_ref_enemy:call(enemy_damage_check);
if enemy == nil then if enemy == nil then
error_handler.report("monster_hook.update_health", "Failed to access Data: enemy"); error_handler.report("monster_hook.update_health", "Failed to Access Data: enemy");
return; return;
end end
local is_large = is_boss_enemy_method:call(enemy); local is_large = is_boss_enemy_method:call(enemy);
if is_large == nil then if is_large == nil then
error_handler.report("monster_hook.update_health", "Failed to access Data: is_large"); error_handler.report("monster_hook.update_health", "Failed to Access Data: is_large");
return; return;
end end
@@ -234,7 +234,7 @@ function this.update_stamina(stamina_param, stamina_sub)
local enemy = get_enemy_method:call(stamina_param); local enemy = get_enemy_method:call(stamina_param);
if enemy == nil then if enemy == nil then
error_handler.report("monster_hook.update_stamina", "Failed to access Data: enemy"); error_handler.report("monster_hook.update_stamina", "Failed to Access Data: enemy");
return; return;
end end

View File

@@ -48,6 +48,39 @@ local package = package;
this.list = {}; this.list = {};
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_type_field = enemy_character_base_type_def:get_field("<EnemyType>k__BackingField");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_enemy_name_message_method = message_manager_type_def:get_method("getEnemyNameMessage");
local get_ref_mesh_method = enemy_character_base_type_def:get_method("get_RefMesh");
local mesh_type_def = get_ref_mesh_method:get_return_type();
local get_game_object_method = mesh_type_def:get_method("get_GameObject");
local game_object_type_def = get_game_object_method:get_return_type();
local get_transform_method = game_object_type_def:get_method("get_Transform");
local transform_type_def = get_transform_method:get_return_type();
local get_joint_by_name_method = transform_type_def:get_method("getJointByName");
local joint_type_def = get_joint_by_name_method:get_return_type();
local get_position_method = joint_type_def:get_method("get_Position");
local get_physical_param_method = enemy_character_base_type_def:get_method("get_PhysicalParam");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local physical_param_type = get_physical_param_method:get_return_type();
local get_vital_method = physical_param_type:get_method("getVital");
local vital_param_type = get_vital_method:get_return_type();
local get_current_method = vital_param_type:get_method("get_Current");
local get_max_method = vital_param_type:get_method("get_Max");
local get_pos_method = enemy_character_base_type_def:get_method("get_Pos");
function this.new(enemy) function this.new(enemy)
local monster = {}; local monster = {};
monster.is_large = false; monster.is_large = false;
@@ -58,7 +91,10 @@ function this.new(enemy)
monster.missing_health = 0; monster.missing_health = 0;
monster.capture_health = 0; monster.capture_health = 0;
monster.head_joint = nil;
monster.position = Vector3f.new(0, 0, 0); monster.position = Vector3f.new(0, 0, 0);
monster.head_position = Vector3f.new(0, 0, 0);
monster.distance = 0; monster.distance = 0;
monster.name = "Small Monster"; monster.name = "Small Monster";
@@ -89,16 +125,10 @@ function this.get_monster(enemy)
return monster; return monster;
end end
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
local enemy_type_field = enemy_character_base_type_def:get_field("<EnemyType>k__BackingField");
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
local get_enemy_name_message_method = message_manager_type_def:get_method("getEnemyNameMessage");
function this.init(monster, enemy) function this.init(monster, enemy)
local enemy_type = enemy_type_field:get_data(enemy); local enemy_type = enemy_type_field:get_data(enemy);
if enemy_type == nil then if enemy_type == nil then
error_handler.report("small_monster.init", "Failed to access Data: enemy_type"); error_handler.report("small_monster.init", "Failed to Access Data: enemy_type");
return; return;
end end
@@ -106,10 +136,12 @@ function this.init(monster, enemy)
local enemy_name = get_enemy_name_message_method:call(singletons.message_manager, enemy_type); local enemy_name = get_enemy_name_message_method:call(singletons.message_manager, enemy_type);
if enemy_name == nil then if enemy_name == nil then
error_handler.report("small_monster.init", "Failed to access Data: enemy_name"); error_handler.report("small_monster.init", "Failed to Access Data: enemy_name");
end end
monster.name = enemy_name; monster.name = enemy_name;
this.update_head_joint(enemy, monster);
end end
function this.init_UI(monster) function this.init_UI(monster)
@@ -153,18 +185,6 @@ function this.init_UI(monster)
); );
end end
local get_physical_param_method = enemy_character_base_type_def:get_method("get_PhysicalParam");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local physical_param_type = get_physical_param_method:get_return_type();
local get_vital_method = physical_param_type:get_method("getVital");
local vital_param_type = get_vital_method:get_return_type();
local get_current_method = vital_param_type:get_method("get_Current");
local get_max_method = vital_param_type:get_method("get_Max");
local get_pos_method = enemy_character_base_type_def:get_method("get_Pos");
function this.update_position(enemy, monster) function this.update_position(enemy, monster)
local cached_config = config.current_config.small_monster_UI; local cached_config = config.current_config.small_monster_UI;
@@ -179,10 +199,73 @@ function this.update_position(enemy, monster)
local position = get_pos_method:call(enemy); local position = get_pos_method:call(enemy);
if position == nil then if position == nil then
error_handler.report("small_monster.update_position", "Failed to access Data: position"); error_handler.report("small_monster.update_position", "Failed to Access Data: position");
end end
monster.position = position; monster.position = position;
this.update_head_position(enemy, monster);
end
function this.update_head_joint(enemy, monster)
local mesh = get_ref_mesh_method:call(enemy);
if mesh == nil then
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: Mesh");
return;
end
local game_object = get_game_object_method:call(mesh);
if game_object == nil then
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: GameObject");
return;
end
local transform = get_transform_method:call(game_object);
if transform == nil then
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: Transform");
return;
end
local head_joint = get_joint_by_name_method:call(transform, "Head_00")
or get_joint_by_name_method:call(transform, "Head")
or get_joint_by_name_method:call(transform, "Head_01")
or get_joint_by_name_method:call(transform, "Spine_00")
or get_joint_by_name_method:call(transform, "Cog")
or get_joint_by_name_method:call(transform, "head")
or get_joint_by_name_method:call(transform, "root");
if head_joint == nil then
-- local out = "";
-- local joints = transform:get_Joints();
-- for i = 0, joints:get_Length() - 1 do
-- local joint = joints[i];
-- local joint_name = joint:get_Name();
-- out = out .. joint_name .. "\n";
-- end
-- error_handler.report(monster.name, out);
error_handler.report("small_monster.update_head_joint", "Failed to Access Data: HeadJoint");
return;
end
monster.head_joint = head_joint;
end
function this.update_head_position(enemy, monster)
if monster.head_joint == nil then
return;
end
local head_position = get_position_method:call(monster.head_joint);
if head_position == nil then
error_handler.report("small_monster.update_head_position", "Failed to Access Data: HeadPosition");
return;
end
monster.head_position = head_position;
end end
function this.update(enemy, monster) function this.update(enemy, monster)
@@ -194,7 +277,7 @@ function this.update(enemy, monster)
if dead_or_captured ~= nil then if dead_or_captured ~= nil then
monster.dead_or_captured = dead_or_captured; monster.dead_or_captured = dead_or_captured;
else else
error_handler.report("small_monster.update", "Failed to access Data: dead_or_captured"); error_handler.report("small_monster.update", "Failed to Access Data: dead_or_captured");
end end
pcall(ailments.update_ailments, enemy, monster); pcall(ailments.update_ailments, enemy, monster);
@@ -207,13 +290,13 @@ function this.update_health(enemy, monster)
local physical_param = get_physical_param_method:call(enemy); local physical_param = get_physical_param_method:call(enemy);
if physical_param == nil then if physical_param == nil then
error_handler.report("small_monster.update_health", "Failed to access Data: physical_param"); error_handler.report("small_monster.update_health", "Failed to Access Data: physical_param");
return; return;
end end
local vital_param = get_vital_method:call(physical_param, 0, 0); local vital_param = get_vital_method:call(physical_param, 0, 0);
if vital_param == nil then if vital_param == nil then
error_handler.report("small_monster.update_health", "Failed to access Data: vital_param"); error_handler.report("small_monster.update_health", "Failed to Access Data: vital_param");
return; return;
end end
@@ -221,7 +304,7 @@ function this.update_health(enemy, monster)
if health ~= nil then if health ~= nil then
monster.health = health; monster.health = health;
else else
error_handler.report("small_monster.update_health", "Failed to access Data: health"); error_handler.report("small_monster.update_health", "Failed to Access Data: health");
return; return;
end end
@@ -229,7 +312,7 @@ function this.update_health(enemy, monster)
if max_health ~= nil then if max_health ~= nil then
monster.max_health = max_health; monster.max_health = max_health;
else else
error_handler.report("small_monster.update_health", "Failed to access Data: max_health"); error_handler.report("small_monster.update_health", "Failed to Access Data: max_health");
return; return;
end end

View File

@@ -205,7 +205,7 @@ function this.sort_buffs(_displayed_buffs, cached_config)
if infinite_buffs_location == "First" then if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then if left.is_infinite and right.is_infinite then
return left.timer < right.timer; return left.name < right.name;
elseif left.is_infinite then elseif left.is_infinite then
return true; return true;
elseif right.is_infinite then elseif right.is_infinite then
@@ -217,7 +217,7 @@ function this.sort_buffs(_displayed_buffs, cached_config)
elseif infinite_buffs_location == "Last" then elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then if left.is_infinite and right.is_infinite then
return left.timer < right.timer; return left.name < right.name;
elseif left.is_infinite then elseif left.is_infinite then
return false; return false;
elseif right.is_infinite then elseif right.is_infinite then
@@ -236,7 +236,7 @@ function this.sort_buffs(_displayed_buffs, cached_config)
if infinite_buffs_location == "First" then if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then if left.is_infinite and right.is_infinite then
return left.timer > right.timer; return left.name > right.name;
elseif left.is_infinite then elseif left.is_infinite then
return false; return false;
elseif right.is_infinite then elseif right.is_infinite then
@@ -248,7 +248,7 @@ function this.sort_buffs(_displayed_buffs, cached_config)
elseif infinite_buffs_location == "Last" then elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then if left.is_infinite and right.is_infinite then
return left.timer > right.timer; return left.name > right.name;
elseif left.is_infinite then elseif left.is_infinite then
return true; return true;
elseif right.is_infinite then elseif right.is_infinite then
@@ -269,7 +269,7 @@ function this.sort_buffs(_displayed_buffs, cached_config)
if infinite_buffs_location == "First" then if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then if left.is_infinite and right.is_infinite then
return left.duration < right.duration; return left.name < right.name;
elseif left.is_infinite then elseif left.is_infinite then
return true; return true;
elseif right.is_infinite then elseif right.is_infinite then
@@ -281,7 +281,7 @@ function this.sort_buffs(_displayed_buffs, cached_config)
elseif infinite_buffs_location == "Last" then elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then if left.is_infinite and right.is_infinite then
return left.duration < right.duration; return left.name < right.name;
elseif left.is_infinite then elseif left.is_infinite then
return false; return false;
elseif right.is_infinite then elseif right.is_infinite then
@@ -300,7 +300,7 @@ function this.sort_buffs(_displayed_buffs, cached_config)
if infinite_buffs_location == "First" then if infinite_buffs_location == "First" then
if left.is_infinite and right.is_infinite then if left.is_infinite and right.is_infinite then
return left.duration > right.duration; return left.name > right.name;
elseif left.is_infinite then elseif left.is_infinite then
return false; return false;
elseif right.is_infinite then elseif right.is_infinite then
@@ -312,7 +312,7 @@ function this.sort_buffs(_displayed_buffs, cached_config)
elseif infinite_buffs_location == "Last" then elseif infinite_buffs_location == "Last" then
if left.is_infinite and right.is_infinite then if left.is_infinite and right.is_infinite then
return left.duration > right.duration; return left.name > right.name;
elseif left.is_infinite then elseif left.is_infinite then
return true; return true;
elseif right.is_infinite then elseif right.is_infinite then

View File

@@ -86,7 +86,12 @@ function this.draw()
cached_config.world_offset.z cached_config.world_offset.z
); );
local position_on_screen = draw.world_to_screen(creature.position + world_offset); local position_on_screen;
if cached_config.settings.head_tracking then
position_on_screen = draw.world_to_screen(creature.head_position + world_offset);
else
position_on_screen = draw.world_to_screen(creature.position + world_offset);
end
if position_on_screen == nil then if position_on_screen == nil then
goto continue; goto continue;

View File

@@ -65,7 +65,7 @@ function this.update(dynamic_enabled, static_enabled, highlighted_enabled)
local cached_config = config.current_config.large_monster_UI; local cached_config = config.current_config.large_monster_UI;
if singletons.enemy_manager == nil then if singletons.enemy_manager == nil then
error_handler.report("large_monster_UI.update", "Failed to access Data: enemy_manager"); error_handler.report("large_monster_UI.update", "Failed to Access Data: enemy_manager");
return; return;
end end
@@ -73,7 +73,7 @@ function this.update(dynamic_enabled, static_enabled, highlighted_enabled)
local enemy_count = get_boss_enemy_count_method:call(singletons.enemy_manager); local enemy_count = get_boss_enemy_count_method:call(singletons.enemy_manager);
if enemy_count == nil then if enemy_count == nil then
error_handler.report("large_monster_UI.update", "Failed to access Data: enemy_count"); error_handler.report("large_monster_UI.update", "Failed to Access Data: enemy_count");
return; return;
end end
@@ -81,7 +81,7 @@ function this.update(dynamic_enabled, static_enabled, highlighted_enabled)
for i = 0, enemy_count - 1 do for i = 0, enemy_count - 1 do
local enemy = get_boss_enemy_method:call(singletons.enemy_manager, i); local enemy = get_boss_enemy_method:call(singletons.enemy_manager, i);
if enemy == nil then if enemy == nil then
error_handler.report("large_monster_UI.update", "Failed to access Data: enemy No. " .. tostring(i)); error_handler.report("large_monster_UI.update", "Failed to Access Data: enemy No. " .. tostring(i));
goto continue; goto continue;
end end
@@ -337,7 +337,13 @@ function this.draw_dynamic(cached_config)
local i = 0; local i = 0;
for _, monster in ipairs(displayed_dynamic_monsters) do for _, monster in ipairs(displayed_dynamic_monsters) do
local world_offset = Vector3f.new(cached_config.world_offset.x, cached_config.world_offset.y, cached_config.world_offset.z); local world_offset = Vector3f.new(cached_config.world_offset.x, cached_config.world_offset.y, cached_config.world_offset.z);
local position_on_screen = draw.world_to_screen(monster.position + world_offset);
local position_on_screen;
if cached_config.settings.head_tracking then
position_on_screen = draw.world_to_screen(monster.head_position + world_offset);
else
position_on_screen = draw.world_to_screen(monster.position + world_offset);
end
if position_on_screen == nil then if position_on_screen == nil then
goto continue; goto continue;

View File

@@ -126,7 +126,8 @@ end
function this.draw() function this.draw()
local cached_config = config.current_config.small_monster_UI; local cached_config = config.current_config.small_monster_UI;
local is_dynamic_positioning_enabled = cached_config.dynamic_positioning.enabled; local dynamic_positioning_config = cached_config.dynamic_positioning;
local is_dynamic_positioning_enabled = dynamic_positioning_config.enabled;
local i = 0; local i = 0;
for _, monster in ipairs(displayed_monsters) do for _, monster in ipairs(displayed_monsters) do
@@ -134,19 +135,23 @@ function this.draw()
if is_dynamic_positioning_enabled then if is_dynamic_positioning_enabled then
local world_offset = Vector3f.new( local world_offset = Vector3f.new(
cached_config.dynamic_positioning.world_offset.x, dynamic_positioning_config.world_offset.x,
cached_config.dynamic_positioning.world_offset.y, dynamic_positioning_config.world_offset.y,
cached_config.dynamic_positioning.world_offset.z dynamic_positioning_config.world_offset.z
); );
if dynamic_positioning_config.head_tracking then
position_on_screen = draw.world_to_screen(monster.head_position + world_offset);
else
position_on_screen = draw.world_to_screen(monster.position + world_offset); position_on_screen = draw.world_to_screen(monster.position + world_offset);
end
if position_on_screen == nil then if position_on_screen == nil then
goto continue; goto continue;
end end
position_on_screen.x = position_on_screen.x + cached_config.dynamic_positioning.viewport_offset.x; position_on_screen.x = position_on_screen.x + dynamic_positioning_config.viewport_offset.x;
position_on_screen.y = position_on_screen.y + cached_config.dynamic_positioning.viewport_offset.y; position_on_screen.y = position_on_screen.y + dynamic_positioning_config.viewport_offset.y;
else else
position_on_screen = screen.calculate_absolute_coordinates(cached_config.static_position); position_on_screen = screen.calculate_absolute_coordinates(cached_config.static_position);
if cached_config.settings.orientation == "Horizontal" then if cached_config.settings.orientation == "Horizontal" then
@@ -157,9 +162,9 @@ function this.draw()
end end
local opacity_scale = 1; local opacity_scale = 1;
if is_dynamic_positioning_enabled and cached_config.dynamic_positioning.opacity_falloff then if is_dynamic_positioning_enabled and dynamic_positioning_config.opacity_falloff then
monster.distance = (players.myself_position - monster.position):length(); monster.distance = (players.myself_position - monster.position):length();
opacity_scale = 1 - (monster.distance / cached_config.dynamic_positioning.max_distance); opacity_scale = 1 - (monster.distance / dynamic_positioning_config.max_distance);
end end
small_monster.draw(monster, cached_config, position_on_screen, opacity_scale); small_monster.draw(monster, cached_config, position_on_screen, opacity_scale);

View File

@@ -1338,6 +1338,11 @@ function this.draw_small_monster_UI()
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed, cached_config.dynamic_positioning.head_tracking = imgui.checkbox(
language.current_language.customization_menu.head_tracking, cached_config.dynamic_positioning.head_tracking);
config_changed = config_changed or changed;
changed, cached_config.dynamic_positioning.opacity_falloff = changed, cached_config.dynamic_positioning.opacity_falloff =
imgui.checkbox(language.current_language.customization_menu.opacity_falloff, imgui.checkbox(language.current_language.customization_menu.opacity_falloff,
cached_config.dynamic_positioning.opacity_falloff); cached_config.dynamic_positioning.opacity_falloff);
@@ -1479,6 +1484,11 @@ function this.draw_large_monster_dynamic_UI()
config_changed = config_changed or changed; config_changed = config_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.settings) then if imgui.tree_node(language.current_language.customization_menu.settings) then
changed, cached_config.settings.head_tracking = imgui.checkbox(
language.current_language.customization_menu.head_tracking, cached_config.settings.head_tracking);
config_changed = config_changed or changed;
changed, cached_config.settings.hide_dead_or_captured = imgui.checkbox( changed, cached_config.settings.hide_dead_or_captured = imgui.checkbox(
language.current_language.customization_menu.hide_dead_or_captured, cached_config.settings.hide_dead_or_captured); language.current_language.customization_menu.hide_dead_or_captured, cached_config.settings.hide_dead_or_captured);
@@ -2300,6 +2310,11 @@ function this.draw_endemic_life_UI()
config_changed = config_changed or changed; config_changed = config_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.settings) then if imgui.tree_node(language.current_language.customization_menu.settings) then
changed, cached_config.settings.head_tracking = imgui.checkbox(
language.current_language.customization_menu.head_tracking, cached_config.settings.head_tracking);
config_changed = config_changed or changed;
changed, cached_config.settings.hide_inactive_creatures = imgui.checkbox( changed, cached_config.settings.hide_inactive_creatures = imgui.checkbox(
language.current_language.customization_menu.hide_inactive_creatures, cached_config.settings.hide_inactive_creatures); language.current_language.customization_menu.hide_inactive_creatures, cached_config.settings.hide_inactive_creatures);

View File

@@ -165,6 +165,7 @@
"global_position_modifier": "Global Position Modifier", "global_position_modifier": "Global Position Modifier",
"global_scale_modifier": "Global Scale Modifier", "global_scale_modifier": "Global Scale Modifier",
"global_settings": "Global Settings", "global_settings": "Global Settings",
"head_tracking": "Head Tracking",
"health": "Health", "health": "Health",
"health_anomaly_filter": "Health + Anomaly Core", "health_anomaly_filter": "Health + Anomaly Core",
"health_break_anomaly_filter": "Health + Break + Anomaly Core", "health_break_anomaly_filter": "Health + Break + Anomaly Core",

View File

@@ -165,6 +165,7 @@
"global_position_modifier": "全体的な位置の調整", "global_position_modifier": "全体的な位置の調整",
"global_scale_modifier": "全体的なスケールの調整", "global_scale_modifier": "全体的なスケールの調整",
"global_settings": "全体設定", "global_settings": "全体設定",
"head_tracking": "Head Tracking",
"health": "体力", "health": "体力",
"health_anomaly_filter": "Health + Anomaly Core", "health_anomaly_filter": "Health + Anomaly Core",
"health_break_anomaly_filter": "Health + Break + Anomaly Core", "health_break_anomaly_filter": "Health + Break + Anomaly Core",

View File

@@ -165,6 +165,7 @@
"global_position_modifier": "전역 위치 배율", "global_position_modifier": "전역 위치 배율",
"global_scale_modifier": "전역 크기 배율", "global_scale_modifier": "전역 크기 배율",
"global_settings": "전역 설정", "global_settings": "전역 설정",
"head_tracking": "Head Tracking",
"health": "체력", "health": "체력",
"health_anomaly_filter": "체력 + 괴이핵", "health_anomaly_filter": "체력 + 괴이핵",
"health_break_anomaly_filter": "체력 + 파괴 + 괴이핵", "health_break_anomaly_filter": "체력 + 파괴 + 괴이핵",

View File

@@ -165,6 +165,7 @@
"global_position_modifier": "Глобальный модификатор расположения", "global_position_modifier": "Глобальный модификатор расположения",
"global_scale_modifier": "Глобальный модификатор размера", "global_scale_modifier": "Глобальный модификатор размера",
"global_settings": "Общие настройки", "global_settings": "Общие настройки",
"head_tracking": "Отслеживание головы",
"health": "Здоровье", "health": "Здоровье",
"health_anomaly_filter": "Здоровье + Ядро аномалии", "health_anomaly_filter": "Здоровье + Ядро аномалии",
"health_break_anomaly_filter": "Здоровье + Повреждение + Ядро аномалии", "health_break_anomaly_filter": "Здоровье + Повреждение + Ядро аномалии",

View File

@@ -165,6 +165,7 @@
"global_position_modifier": "全局位置更改", "global_position_modifier": "全局位置更改",
"global_scale_modifier": "全局比例更改", "global_scale_modifier": "全局比例更改",
"global_settings": "全局设定", "global_settings": "全局设定",
"head_tracking": "Head Tracking",
"health": "生命", "health": "生命",
"health_anomaly_filter": "Health + Anomaly Core", "health_anomaly_filter": "Health + Anomaly Core",
"health_break_anomaly_filter": "Health + Break + Anomaly Core", "health_break_anomaly_filter": "Health + Break + Anomaly Core",

View File

@@ -165,6 +165,7 @@
"global_position_modifier": "全域位置更改", "global_position_modifier": "全域位置更改",
"global_scale_modifier": "全域比例更改", "global_scale_modifier": "全域比例更改",
"global_settings": "全域設定", "global_settings": "全域設定",
"head_tracking": "Head Tracking",
"health": "血量", "health": "血量",
"health_anomaly_filter": "Health + Anomaly Core", "health_anomaly_filter": "Health + Anomaly Core",
"health_break_anomaly_filter": "Health + Break + Anomaly Core", "health_break_anomaly_filter": "Health + Break + Anomaly Core",