Refactoring

This commit is contained in:
GreenComfyTea
2022-07-26 19:27:37 +03:00
parent a20c458629
commit 2f9a8ac6a3
41 changed files with 5939 additions and 18587 deletions

View File

@@ -12,7 +12,7 @@ local enemy_character_base_after_calc_damage_damage_side_method = enemy_characte
local is_boss_enemy_method = enemy_character_base_type_def:get_method("get_isBossEnemy");
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
local enemy_calc_damage_info_type_def = sdk.find_type_definition("snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide");
local enemy_calc_damage_info_type_def = sdk.find_type_definition("snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide");
local get_attacker_id_method = enemy_calc_damage_info_type_def:get_method("get_AttackerID");
local get_damage_attacker_type_method = enemy_calc_damage_info_type_def:get_method("get_DamageAttackerType");
local is_marionette_attack_method = enemy_calc_damage_info_type_def:get_method("get_IsMarionetteAttack");
@@ -28,7 +28,7 @@ local get_condition_type2_method = enemy_calc_damage_info_type_def:get_method("g
local get_condition_damage3_method = enemy_calc_damage_info_type_def:get_method("get_ConditionDamage3");
local get_condition_type3_method = enemy_calc_damage_info_type_def:get_method("get_ConditionDamageType3");
local stock_mystery_core_break_damage_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase.stockMysteryCoreBreakDamage");
local stock_mystery_core_break_damage_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase.stockMysteryCoreBreakDamage");
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
@@ -43,7 +43,8 @@ local is_from_host_field = packet_quest_forfeit_type_def:get_field("_IsFromQuest
function damage_hook.get_damage_source_type(damage_source_type_id, is_marionette_attack)
if is_marionette_attack then
return "wyvern riding";
elseif damage_source_type_id == 0 or damage_source_type_id == 7 or damage_source_type_id == 11 or damage_source_type_id == 13 then
elseif damage_source_type_id == 0 or damage_source_type_id == 7 or damage_source_type_id == 11 or
damage_source_type_id == 13 then
return "player";
elseif damage_source_type_id == 1 or damage_source_type_id == 8 then
return "bomb";
@@ -82,7 +83,7 @@ function damage_hook.update_damage(enemy, enemy_calc_damage_info)
local attacker_id = get_attacker_id_method:call(enemy_calc_damage_info);
local attacker_type = get_damage_attacker_type_method:call(enemy_calc_damage_info);
local is_marionette_attack = is_marionette_attack_method:call(enemy_calc_damage_info)
-- 4 is virtual player in singleplayer that "owns" 2nd otomo
if not quest_status.is_online and attacker_id == 4 then
attacker_id = player.myself.player_id;
@@ -93,7 +94,7 @@ function damage_hook.update_damage(enemy, enemy_calc_damage_info)
for enemy, monster in pairs(large_monster.list) do
if monster.unique_id == attacker_id then
attacker_id = monster.rider_id;
break;
break
end
end
end
@@ -161,7 +162,8 @@ function damage_hook.update_damage(enemy, enemy_calc_damage_info)
-- xy = "";
--end
local damage_source_type = damage_hook.get_damage_source_type(attacker_type, is_marionette_attack);
local damage_source_type = damage_hook.get_damage_source_type(attacker_type,
is_marionette_attack);
local attacking_player = player.get_player(attacker_id);
@@ -217,10 +219,10 @@ end
--function damage_hook.on_get_finish_shoot_wall_hit_damage_rate(enemy, rate, is_part_damage)
--xy = string.format("enemy: %s\nrate: %s\nis_part_damage: %s", tostring(enemy), tostring(rate), tostring(is_part_damage));
--xy = string.format("enemy: %s\nrate: %s\nis_part_damage: %s", tostring(enemy), tostring(rate), tostring(is_part_damage));
--end
local get_finish_shoot_wall_hit_damage_rate_method = enemy_character_base_type_def:get_method("stockFinishShootHitDamage");
function damage_hook.init_module()
@@ -268,4 +270,4 @@ function damage_hook.init_module()
--end);
end
return damage_hook;
return damage_hook;

View File

@@ -226,19 +226,19 @@ function player.update_display(_player)
if cached_config.tracked_damage_types.player_damage then
player.merge_damage(_player.display, _player.small_monsters);
end
if cached_config.tracked_damage_types.bomb_damage then
player.merge_damage(_player.display, _player.small_monsters.bombs);
end
if cached_config.tracked_damage_types.kunai_damage then
player.merge_damage(_player.display, _player.small_monsters.kunai);
end
if cached_config.tracked_damage_types.installation_damage then
player.merge_damage(_player.display, _player.small_monsters.installations);
end
if cached_config.tracked_damage_types.otomo_damage then
player.merge_damage(_player.display, _player.small_monsters.otomo);
end
@@ -268,19 +268,19 @@ function player.update_display(_player)
if cached_config.tracked_damage_types.player_damage then
player.merge_damage(_player.display, _player.large_monsters);
end
if cached_config.tracked_damage_types.bomb_damage then
player.merge_damage(_player.display, _player.large_monsters.bombs);
end
if cached_config.tracked_damage_types.kunai_damage then
player.merge_damage(_player.display, _player.large_monsters.kunai);
end
if cached_config.tracked_damage_types.installation_damage then
player.merge_damage(_player.display, _player.large_monsters.installations);
end
if cached_config.tracked_damage_types.otomo_damage then
player.merge_damage(_player.display, _player.large_monsters.otomo);
end
@@ -324,7 +324,7 @@ local get_transform_method = sdk.find_type_definition("via.GameObject"):get_meth
local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position");
function player.update_myself_position()
if singletons.player_manager == nil then
if singletons.player_manager == nil then
customization_menu.status = "No player manager";
return;
end
@@ -340,7 +340,7 @@ function player.update_myself_position()
customization_menu.status = "No master player game object";
return;
end
local master_player_transform = get_transform_method:call(master_player_game_object);
if not master_player_transform then
customization_menu.status = "No master player transform";
@@ -401,7 +401,7 @@ function player.update_player_list_(hunter_info_field_)
if singletons.lobby_manager == nil then
return;
end
if singletons.progress_manager == nil then
return;
end
@@ -424,9 +424,9 @@ function player.update_player_list_(hunter_info_field_)
local myself_id = get_master_player_id_method:call(singletons.player_manager) or -1;
--if quest_status.is_online then
--myself_id = get_master_player_id_method:call(singletons.player_manager) or -1;
--myself_id = get_master_player_id_method:call(singletons.player_manager) or -1;
--else
--myself_id = myself_quest_index_field:call(singletons.lobby_manager) or -1;
--myself_id = myself_quest_index_field:call(singletons.lobby_manager) or -1;
--end
if myself_id == nil then
@@ -447,11 +447,12 @@ function player.update_player_list_(hunter_info_field_)
--end
if myself_id ~= player.myself.id then
player.list[player.myself.id] = nil;
player.myself = player.new(myself_id, myself_guid, myself_player_name, myself_master_rank, myself_hunter_rank);
player.list[myself_id] = player.myself;
player.list[player.myself.id] = nil;
player.myself = player.new(myself_id, myself_guid, myself_player_name, myself_master_rank,
myself_hunter_rank);
player.list[myself_id] = player.myself;
end
-- other players
local player_info_list = hunter_info_field_:get_data(singletons.lobby_manager);
if player_info_list == nil then
@@ -468,13 +469,13 @@ function player.update_player_list_(hunter_info_field_)
for i = 0, count - 1 do
local player_info = get_item_method:call(player_info_list, i);
if player_info == nil then
goto continue;
goto continue
end
local player_id = member_index_field:get_data(player_info);
if player_id == nil then
goto continue;
goto continue
end
local player_guid = hunter_unique_id_field:get_data(player_info);
@@ -494,17 +495,18 @@ function player.update_player_list_(hunter_info_field_)
local player_name = name_field:get_data(player_info);
if player_name == nil then
goto continue;
goto continue
end
if player.list[player_id] == nil or
not guid_equals_method:call(player.list[player_id].guid, player_guid)
not guid_equals_method:call(player.list[player_id].guid, player_guid)
--player.list[player_id].guid ~= player_guid
then
local _player = player.new(player_id, player_guid, player_name, player_master_rank, player_hunter_rank);
player.list[player_id] = _player;
if player_name == player.myself.name and player_hunter_rank == player.myself.hunter_rank and player_master_rank == player.myself.master_rank then
if player_name == player.myself.name and player_hunter_rank == player.myself.hunter_rank and
player_master_rank == player.myself.master_rank then
player.myself = _player;
end
end
@@ -541,8 +543,10 @@ function player.init_total_UI(_player)
_player.damage_UI.total_damage_label.offset.x = _player.damage_UI.total_damage_label.offset.x * global_scale_modifier;
_player.damage_UI.total_damage_label.offset.y = _player.damage_UI.total_damage_label.offset.y * global_scale_modifier;
_player.damage_UI.total_damage_value_label.offset.x = _player.damage_UI.total_damage_value_label.offset.x * global_scale_modifier;
_player.damage_UI.total_damage_value_label.offset.y = _player.damage_UI.total_damage_value_label.offset.y * global_scale_modifier;
_player.damage_UI.total_damage_value_label.offset.x = _player.damage_UI.total_damage_value_label.offset.x *
global_scale_modifier;
_player.damage_UI.total_damage_value_label.offset.y = _player.damage_UI.total_damage_value_label.offset.y *
global_scale_modifier;
_player.damage_UI.total_dps_label.offset.x = _player.damage_UI.total_dps_label.offset.x * global_scale_modifier;
_player.damage_UI.total_dps_label.offset.y = _player.damage_UI.total_dps_label.offset.y * global_scale_modifier;
@@ -553,8 +557,10 @@ function player.draw(_player, position_on_screen, opacity_scale, top_damage, top
end
function player.draw_total(position_on_screen, opacity_scale)
drawing.draw_label(player.total.damage_UI.total_damage_label, position_on_screen, opacity_scale, language.current_language.UI.total_damage);
drawing.draw_label(player.total.damage_UI.total_damage_value_label, position_on_screen, opacity_scale, player.total.display.total_damage);
drawing.draw_label(player.total.damage_UI.total_damage_label, position_on_screen, opacity_scale,
language.current_language.UI.total_damage);
drawing.draw_label(player.total.damage_UI.total_damage_value_label, position_on_screen, opacity_scale,
player.total.display.total_damage);
drawing.draw_label(player.total.damage_UI.total_dps_label, position_on_screen, opacity_scale, player.total.dps);
end
@@ -572,4 +578,4 @@ function player.init_module()
player.init();
end
return player;
return player;