From 5f609a588a0550a905521dadb07021f036b73ce6 Mon Sep 17 00:00:00 2001 From: GreenComfyTea Date: Sun, 3 Sep 2023 15:53:11 +0300 Subject: [PATCH] Dangos: Add Dango Insurance Defense Up, Dango Hunter and Dango Connector --- .../autorun/MHR_Overlay/Buffs/dangos.lua | 87 +++++++++++++++++-- .../autorun/MHR_Overlay/Misc/language.lua | 6 ++ .../UI/UI_Entities/buff_UI_entity.lua | 2 +- .../data/MHR Overlay/languages/en-us.json | 4 + .../data/MHR Overlay/languages/ja-jp.json | 2 + .../data/MHR Overlay/languages/ko-kr.json | 2 + .../data/MHR Overlay/languages/ru-ru.json | 2 + .../data/MHR Overlay/languages/zh-cn.json | 2 + .../data/MHR Overlay/languages/zh-tw.json | 2 + 9 files changed, 101 insertions(+), 8 deletions(-) diff --git a/reframework/autorun/MHR_Overlay/Buffs/dangos.lua b/reframework/autorun/MHR_Overlay/Buffs/dangos.lua index fe63bb9..556dbf7 100644 --- a/reframework/autorun/MHR_Overlay/Buffs/dangos.lua +++ b/reframework/autorun/MHR_Overlay/Buffs/dangos.lua @@ -42,12 +42,14 @@ local ValueType = ValueType; local package = package; this.list = { - dango_defender = nil, dango_adrenaline = nil, dango_booster = nil, - dango_glutton = nil, - dango_bulker = nil, + dango_insurance_defense_up = nil, + dango_glutton = nil, + dango_defender = nil, + dango_hunter = nil, + dango_connector = nil }; local dango_ids = { @@ -112,7 +114,6 @@ local dango_ids = { this.is_dango_adrenaline_active = false; local dangos_type_name = "dangos"; -local dango_defender_minimal_value = 200; local dango_bulker_attack_up = 15; local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager"); @@ -125,7 +126,7 @@ local player_user_data_item_parameter_type_def = get_ref_item_parameter_method:g local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); -- Dango Defender -local kitchen_skill_048_field = player_data_type_def:get_field("_KitchenSkill048_Damage"); +local is_enable_kitchen_skill_048_reduce_method = player_data_type_def:get_field("_IsEnable_KitchenSkill048_Reduce"); -- Dango Booster local kitchen_skill_027_timer_field = player_data_type_def:get_field("_KitchenSkill027Timer"); -- Dango Glutton @@ -133,6 +134,14 @@ local kitchen_skill_045_timer_field = player_data_type_def:get_field("_KitchenSk -- Dango Bulker local atk_up_buff_second_field = player_data_type_def:get_field("_AtkUpBuffSecond"); local atk_up_buff_second_timer_field = player_data_type_def:get_field("_AtkUpBuffSecondTimer"); +-- Dango Insurance +local kitchen_skill_insurance_def_up_lv3_field = player_data_type_def:get_field("_KitchenSkill_Insurance_DefUp_Lv3"); +local kitchen_skill_insurance_def_up_lv4_field = player_data_type_def:get_field("_KitchenSkill_Insurance_DefUp_Lv4"); +-- Dango Hunter +local kitchen_skill_051_atk_up_timer_field = player_data_type_def:get_field("_KitchenSkill051_AtkUpTimer"); +-- Dango Connector +local kitchen_skill_054_timer_field = player_data_type_def:get_field("_KitchenSkill054_Timer"); +-- local player_base_type_def = sdk.find_type_definition("snow.player.PlayerBase"); @@ -149,17 +158,35 @@ function this.update(player, player_data) return; end + --[[local tbl = { + "_KitchenSkill_Insurance_DefUp_Lv3", + "_KitchenSkill_Insurance_DefUp_Lv4", + }; + + local str = ""; + for _, field in ipairs(tbl) do + local value = player_data:get_field(field); + str = string.format("%s%s: %s\n", str, field, tostring(value)); + end + + xy = str;]] + this.update_dango_adrenaline(); this.update_dango_bulker(player_data); - + this.update_dango_hunter(player_data); + this.update_dango_insurance_defense_up(player_data); + buffs.update_generic_buff(this.list, dangos_type_name, "dango_defender", this.get_dango_name, - player_data, kitchen_skill_048_field, nil, nil, nil, nil, true, dango_defender_minimal_value); + player_data, is_enable_kitchen_skill_048_reduce_method, nil, nil, nil, nil, true); buffs.update_generic_buff(this.list, dangos_type_name, "dango_booster", this.get_dango_name, nil, nil, player_data, kitchen_skill_027_timer_field); buffs.update_generic_buff(this.list, dangos_type_name, "dango_glutton", this.get_dango_name, nil, nil, player_data, kitchen_skill_045_timer_field); + + buffs.update_generic_buff(this.list, dangos_type_name, "dango_connector", this.get_dango_name, + nil, nil, player_data, kitchen_skill_054_timer_field); end function this.update_dango_adrenaline() @@ -186,7 +213,53 @@ function this.update_dango_bulker(player_data) buffs.update_generic_buff(this.list, dangos_type_name, "dango_bulker", this.get_dango_name, nil, nil, player_data, atk_up_buff_second_timer_field); end +function this.update_dango_insurance_defense_up(player_data) + local level = 3; + + local insurance_def_up_lv3 = kitchen_skill_insurance_def_up_lv3_field:get_data(player_data); + if insurance_def_up_lv3 == nil then + error_handler.report("buffs.update_dango_insurance", "Failed to access Data: insurance_def_up_lv3"); + return; + end + + if not insurance_def_up_lv3 then + + local insurance_def_up_lv4 = kitchen_skill_insurance_def_up_lv4_field:get_data(player_data); + if insurance_def_up_lv4 == nil then + error_handler.report("buffs.update_dango_insurance", "Failed to access Data: insurance_def_up_lv4"); + return; + end + + if not insurance_def_up_lv4 then + this.list.insurance_defense_up = nil; + end + + level = 4; + end + + buffs.update_generic(this.list, dangos_type_name, "dango_insurance_defense_up", this.get_dango_name, level); +end + +function this.update_dango_hunter(player_data) + local dango_hunter_buff = buffs.update_generic_buff(this.list, dangos_type_name, "dango_hunter", this.get_dango_name, + nil, nil, player_data, kitchen_skill_051_atk_up_timer_field); + + if dango_hunter_buff then + dango_hunter_buff.level = 4; + end +end + function this.get_dango_name(dango_key) + if dango_ids[dango_key] == nil then + + local dango_name = language.current_language.dangos[dango_key]; + if dango_name == nil then + return dango_key; + end + + return dango_name; + end + local dango_name = get_name_method:call(nil, dango_ids[dango_key]); if dango_name == nil then error_handler.report("dangos.get_dango_name", string.format("Failed to access Data: %s_name", dango_key)); diff --git a/reframework/autorun/MHR_Overlay/Misc/language.lua b/reframework/autorun/MHR_Overlay/Misc/language.lua index 44c4433..c8bffbe 100644 --- a/reframework/autorun/MHR_Overlay/Misc/language.lua +++ b/reframework/autorun/MHR_Overlay/Misc/language.lua @@ -217,6 +217,10 @@ this.default_language = { frenzy_overcome = "Frenzy Overcome" }, + dangos = { + dango_insurance_defense_up = "Dango Insurance Defense Up" + }, + skills = { kushala_daora_soul = "Kushala Daora Soul" }, @@ -293,6 +297,8 @@ this.default_language = { otomo = "Buddy", servant = "Follower", + + lv = "Lv." }, customization_menu = { diff --git a/reframework/autorun/MHR_Overlay/UI/UI_Entities/buff_UI_entity.lua b/reframework/autorun/MHR_Overlay/UI/UI_Entities/buff_UI_entity.lua index c366539..41eab95 100644 --- a/reframework/autorun/MHR_Overlay/UI/UI_Entities/buff_UI_entity.lua +++ b/reframework/autorun/MHR_Overlay/UI/UI_Entities/buff_UI_entity.lua @@ -75,7 +75,7 @@ function this.draw(buff, buff_UI, position_on_screen, opacity_scale) local buff_name = buff.name; if cached_config.name_label.include.skill_level and buff.level > 1 then - buff_name = string.format("%s %d", buff_name, buff.level); + buff_name = string.format("%s %s%d", buff_name, language.current_language.UI.lv, buff.level); end drawing.draw_label(buff_UI.name_label, position_on_screen, opacity_scale, buff_name); diff --git a/reframework/data/MHR Overlay/languages/en-us.json b/reframework/data/MHR Overlay/languages/en-us.json index 7d7ab88..3f324e3 100644 --- a/reframework/data/MHR Overlay/languages/en-us.json +++ b/reframework/data/MHR Overlay/languages/en-us.json @@ -3,6 +3,7 @@ "HP": "HP:", "buildup": "Buildup:", "gold": "Gold", + "lv": "Lv.", "mini": "Mini", "otomo": "Buddy", "part_anomaly_core": "Anomaly Core", @@ -362,6 +363,9 @@ "y": "Y", "z": "Z" }, + "dangos": { + "dango_insurance_defense_up": "Dango Insurance Defense Up" + }, "font_name": "", "misc_buffs": { "stamina_use_down": "Stamina Use Down" diff --git a/reframework/data/MHR Overlay/languages/ja-jp.json b/reframework/data/MHR Overlay/languages/ja-jp.json index c99dfaf..752a86d 100644 --- a/reframework/data/MHR Overlay/languages/ja-jp.json +++ b/reframework/data/MHR Overlay/languages/ja-jp.json @@ -3,6 +3,7 @@ "HP": "HP:", "buildup": "蓄積値:", "gold": "金冠", + "lv": "Lv.", "mini": "小型", "otomo": "Buddy", "part_anomaly_core": "Anomaly Core", @@ -401,6 +402,7 @@ "dango_ice_res_hi": "Dango Ice Res (Hi)", "dango_immunizer": "Dango Immunizer", "dango_insurance": "Dango Insurance", + "dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_marksman": "Dango Marksman", "dango_medic": "Dango Medic", "dango_medic_hi": "Dango Medic (Hi)", diff --git a/reframework/data/MHR Overlay/languages/ko-kr.json b/reframework/data/MHR Overlay/languages/ko-kr.json index e14e7a1..3a1a893 100644 --- a/reframework/data/MHR Overlay/languages/ko-kr.json +++ b/reframework/data/MHR Overlay/languages/ko-kr.json @@ -3,6 +3,7 @@ "HP": "체력:", "buildup": "누적치:", "gold": "금관", + "lv": "Lv.", "mini": "최소", "otomo": "동반자", "part_anomaly_core": "괴이핵", @@ -402,6 +403,7 @@ "dango_ice_res_hi": "Dango Ice Res (Hi)", "dango_immunizer": "Dango Immunizer", "dango_insurance": "Dango Insurance", + "dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_marksman": "Dango Marksman", "dango_medic": "Dango Medic", "dango_medic_hi": "Dango Medic (Hi)", diff --git a/reframework/data/MHR Overlay/languages/ru-ru.json b/reframework/data/MHR Overlay/languages/ru-ru.json index 07e4f61..a2c59c6 100644 --- a/reframework/data/MHR Overlay/languages/ru-ru.json +++ b/reframework/data/MHR Overlay/languages/ru-ru.json @@ -3,6 +3,7 @@ "HP": "ОЗ:", "buildup": "Накопление", "gold": "Золото", + "lv": "Lv.", "mini": "Мини", "otomo": "Cпутник", "part_anomaly_core": "Ядро аномалии", @@ -402,6 +403,7 @@ "dango_ice_res_hi": "Dango Ice Res (Hi)", "dango_immunizer": "Dango Immunizer", "dango_insurance": "Dango Insurance", + "dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_marksman": "Dango Marksman", "dango_medic": "Dango Medic", "dango_medic_hi": "Dango Medic (Hi)", diff --git a/reframework/data/MHR Overlay/languages/zh-cn.json b/reframework/data/MHR Overlay/languages/zh-cn.json index a7f116d..d23811f 100644 --- a/reframework/data/MHR Overlay/languages/zh-cn.json +++ b/reframework/data/MHR Overlay/languages/zh-cn.json @@ -3,6 +3,7 @@ "HP": "生命:", "buildup": "积累值:", "gold": "金冠", + "lv": "Lv.", "mini": "小型", "otomo": "随从", "part_anomaly_core": "怪异核", @@ -402,6 +403,7 @@ "dango_ice_res_hi": "Dango Ice Res (Hi)", "dango_immunizer": "Dango Immunizer", "dango_insurance": "Dango Insurance", + "dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_marksman": "Dango Marksman", "dango_medic": "Dango Medic", "dango_medic_hi": "Dango Medic (Hi)", diff --git a/reframework/data/MHR Overlay/languages/zh-tw.json b/reframework/data/MHR Overlay/languages/zh-tw.json index 74e4809..a16e8b5 100644 --- a/reframework/data/MHR Overlay/languages/zh-tw.json +++ b/reframework/data/MHR Overlay/languages/zh-tw.json @@ -3,6 +3,7 @@ "HP": "生命:", "buildup": "累積值:", "gold": "金冠", + "lv": "Lv.", "mini": "小型", "otomo": "Buddy", "part_anomaly_core": "Anomaly Core", @@ -402,6 +403,7 @@ "dango_ice_res_hi": "Dango Ice Res (Hi)", "dango_immunizer": "Dango Immunizer", "dango_insurance": "Dango Insurance", + "dango_insurance_defense_up": "Dango Insurance Defense Up", "dango_marksman": "Dango Marksman", "dango_medic": "Dango Medic", "dango_medic_hi": "Dango Medic (Hi)",