diff --git a/reframework/autorun/MHR_Overlay/Buffs/weapon_skills.lua b/reframework/autorun/MHR_Overlay/Buffs/weapon_skills.lua index 5ea7689..2ae7c77 100644 --- a/reframework/autorun/MHR_Overlay/Buffs/weapon_skills.lua +++ b/reframework/autorun/MHR_Overlay/Buffs/weapon_skills.lua @@ -46,25 +46,67 @@ local ValueType = ValueType; local package = package; this.list = { - + -- Great Sword + power_sheathe = nil, + -- Switch Axe + amped_state = nil, + switch_charger = nil, + axe_heavy_slam = nil, + -- Long Sword + spirit_gauge_autofill = nil, -- Soaring Kick, Iai Slash + spirit_gauge = nil, + harvest_moon = nil, + -- Light Bowgun + fanning_maneuver = nil, + -- Heavy Bowgun + counter_charger = nil, + rising_moon = nil, + setting_sun = nil, + -- Hammer + impact_burst = nil, + -- Gunlance + ground_splitter = nil, + erupting_cannon = nil, + -- Lance + anchor_rage = nil, + spiral_thrust = nil, + twin_wine = nil, + -- Sword & Shield + destroyer_oil = nil, + -- Dual Blades + ironshine_silk = nil, + archdemon_mode = nil, + -- Hunting Horn + silkbind_shockwave = nil, + bead_of_resonance = nil, + sonic_bloom = nil, + -- Charge Blade + element_boost = nil, + sword_boost_mode = nil, + -- Insect Glaive + red_extract = nil, + white_extract = nil, + orange_extract = nil, + all_extracts_mix = nil, + -- Bow + herculean_draw = nil, + bolt_boost = nil }; -this.weapon_types = { - nil, -- 0 Great Sword - nil, -- 1 Switch Axe - nil, -- 2 Long Sword - nil, -- 3 Light Bowgun - nil, -- 4 Heavy Bowgun - nil, -- 5 Hammer - nil, -- 6 Gunlance - nil, -- 7 Lance - nil, -- 8 Sword and Shield - nil, -- 9 Dual Blades - nil, -- 10 Hunting Horn - nil, -- 11 Charge Blade - nil, -- 12 Insect Glaive - nil, -- 13 Bow -}; +-- 0 Great Sword +-- 1 Switch Axe +-- 2 Long Sword +-- 3 Light Bowgun +-- 4 Heavy Bowgun +-- 5 Hammer +-- 6 Gunlance +-- 7 Lance +-- 8 Sword and Shield +-- 9 Dual Blades +-- 10 Hunting Horn +-- 11 Charge Blade +-- 12 Insect Glaive +-- 13 Bow local weapon_skills_type_name = "weapon_skills"; local previous_weapon_type = -1; @@ -94,6 +136,12 @@ local no_use_slash_gauge_timer_field = slash_axe_type_def:get_field("_NoUseSlash -- Axe: Heavy Slam local bottle_awake_assist_timer_field = slash_axe_type_def:get_field("_BottleAwakeAssistTimer"); + +local get_ref_player_user_data_s_axe_method = slash_axe_type_def:get_method("get_RefPlayerUserDataS_Axe"); + +local player_user_data_slash_axe_type_def = get_ref_player_user_data_s_axe_method:get_return_type(); +local get_no_user_slash_gauge_time_method = player_user_data_slash_axe_type_def:get_method("get_NoUserSlashGaugeTime"); + -- Long Sword local long_sword_type_def = sdk.find_type_definition("snow.player.LongSword"); @@ -108,19 +156,197 @@ local get_long_sword_gauge_lv_timer_method = long_sword_type_def:get_method("get local long_sword_shell_manager_type_def = sdk.find_type_definition("snow.shell.LongSwordShellManager"); local get_master_long_sword_shell_010s_method = long_sword_shell_manager_type_def:get_method("getMaseterLongSwordShell010s"); +local long_sword_shell_010_type_def = sdk.find_type_definition("snow.shell.LongSwordShell010"); +local long_sword_shell_010_life_timer_field = long_sword_shell_010_type_def:get_field("_lifeTimer"); + +local long_sword_shell_010_list_type_def = sdk.find_type_definition("System.Collections.Generic.List`1"); +local get_long_sword_shell_010_list_count_method = long_sword_shell_010_list_type_def:get_method("get_Count"); +local get_long_sword_shell_010_list_item_method = long_sword_shell_010_list_type_def:get_method("get_Item"); + +-- Light Bowgun + +local light_bowgun_type_def = sdk.find_type_definition("snow.player.LightBowgun"); +-- Fanning Maneuver +local light_bowgun_wire_buff_timer_field = light_bowgun_type_def:get_field("LightBowgunWireBuffTimer"); + +-- Heavy Bowgun + +local heavy_bowgun_type_def = sdk.find_type_definition("snow.player.HeavyBowgun"); +-- Counter Charger +local reduce_charge_timer_field = heavy_bowgun_type_def:get_field("_ReduseChargeTimer"); +local reduce_charge_timer_base_field = heavy_bowgun_type_def:get_field("_ReduseChargeTimeBase"); + +-- Rising Moon +local light_bowgun_shell_manager_type_def = sdk.find_type_definition("snow.shell.LightBowgunShellManager"); +local get_light_bowgun_shell_030s_speed_boost_list_method = light_bowgun_shell_manager_type_def:get_method("get_getLightBowgunShell030s_SpeedBoost"); + +local light_bowgun_shell_030_type_def = sdk.find_type_definition("snow.shell.LightBowgunShell030"); +local light_bowgun_shell_030_is_enable_hit_field = light_bowgun_shell_030_type_def:get_field("k__BackingField"); +local light_bowgun_shell_030_timer_field = light_bowgun_shell_030_type_def:get_field("_Timer"); + +-- Setting Sun +local get_light_bowgun_shell_030s_all_list_method = light_bowgun_shell_manager_type_def:get_method("get_getLightBowgunShell030s_All"); + +local light_bowgun_shell_030_list_type_def = sdk.find_type_definition("System.Collections.Generic.List`1"); +local get_light_bowgun_shell_030_list_count_method = light_bowgun_shell_030_list_type_def:get_method("get_Count"); +local get_light_bowgun_shell_030_list_item_method = light_bowgun_shell_030_list_type_def:get_method("get_Item"); + +-- Hammer + +local hammer_type_def = sdk.find_type_definition("snow.player.Hammer"); +-- Impact Burst +local hammer_impact_pulls_timer_field = hammer_type_def:get_field("_ImpactPullsTimer"); +local player_user_data_hammer_field = hammer_type_def:get_field("_PlayerUserDataHammer"); + +local player_user_data_hammer_type_def = player_user_data_hammer_field:get_type(); +local hammer_impact_pulls_time_max_field = player_user_data_hammer_type_def:get_field("ImpactPullsTimeMax"); + +-- Gunlance + +local gunlance_type_def = sdk.find_type_definition("snow.player.GunLance"); +local get_shot_type_method = gunlance_type_def:get_method("get__ShotType"); + +-- Ground Splitter +local shot_damage_up_duration_timer_field = gunlance_type_def:get_field("_ShotDamageUpDurationTimer"); +local get_player_user_data_gunlance_method = gunlance_type_def:get_method("GetPlayerUserDataGunLance"); + +local player_user_data_gunlance_type_def = get_player_user_data_gunlance_method:get_return_type(); +local shot_damage_up_time_field = player_user_data_gunlance_type_def:get_field("_ShotDamageUpTime"); + +local explode_pile_data_normal_field = player_user_data_gunlance_type_def:get_field("_ExplodePileData_Normal"); +local explode_pile_data_radiate_field = player_user_data_gunlance_type_def:get_field("_ExplodePileData_Radiate"); +local explode_pile_data_spread_field = player_user_data_gunlance_type_def:get_field("_ExplodePileData_Spread"); + +local explode_pile_data_type_def = explode_pile_data_normal_field:get_type(); +local explode_pile_data_duration_field = explode_pile_data_type_def:get_field("_Duration"); + +-- Erupting Cannon +local explode_pile_buff_timer_field = gunlance_type_def:get_field("_ExplodePileBuffTimer"); + +-- Lance + +local lance_type_def = sdk.find_type_definition("snow.player.Lance"); +-- Anchor Rage +local get_guard_rage_timer_method = lance_type_def:get_method("get_GuardRageTimer"); +local guard_rage_buff_type_field = lance_type_def:get_field("_GuardRageBuffType"); + +-- Spiral Thrust +local get_ruten_timer_method = lance_type_def:get_method("get_RutenTimer"); +-- Twin Wine +local chain_death_match_shell_field = lance_type_def:get_field("_ChainDeathMatchShell"); +local chain_death_match_shell_type_def = chain_death_match_shell_field:get_type(); +local chain_death_match_shell_life_timer_field = chain_death_match_shell_type_def:get_field("_lifeTimer"); + +local player_user_data_lance_field = lance_type_def:get_field("_PlayerUserDataLance"); + +local player_user_data_lance_type_field = player_user_data_lance_field:get_type(); +local guard_rage_timer_field = player_user_data_lance_type_field:get_field("_GuardRageTimer"); + +-- Sword & Shield + +local short_sword_type_def = sdk.find_type_definition("snow.player.ShortSword"); +-- Destroyer Oil +local get_oil_buff_timer_method = short_sword_type_def:get_method("get_OilBuffTimer"); +local player_user_data_short_sword_field = short_sword_type_def:get_field("_PlayerUserDataShortSword"); + +local player_user_data_short_sword_type_def = player_user_data_short_sword_field:get_type(); +local oil_buff_time_field = player_user_data_short_sword_type_def:get_field("OilBuffTime"); + +-- Dual Blades + +local dual_blades_type_def = sdk.find_type_definition("snow.player.DualBlades"); +-- Destroyer Oil +local get_sharpness_recovery_buff_valid_timer_method = dual_blades_type_def:get_method("get__SharpnessRecoveryBuffValidTimer"); +-- Archdemon Mode +local is_kijin_kyouka_field = dual_blades_type_def:get_field("IsKijinKyouka"); +local get_kijin_kyouka_gauge_method = dual_blades_type_def:get_method("get_KijinKyoukaGuage"); +local player_user_data_dual_blades_field = dual_blades_type_def:get_field("_PlayerUserDataDualBlades"); + +local player_user_data_dual_blades_type_def = player_user_data_dual_blades_field:get_type(); +local sharpness_recovery_buff_valid_max_timer_field = player_user_data_dual_blades_type_def:get_field("_SharpnessRecoveryBuffValidMaxTimer"); + +-- Hunting Horn + +local horn_type_def = sdk.find_type_definition("snow.player.Horn"); +-- Silkbind Shockwave +local horn_impact_pulls_timer_field = horn_type_def:get_field("_ImpactPullsTimer"); +local player_user_data_horn_field = horn_type_def:get_field("_PlayerUserDataHorn"); + +local player_user_data_dual_horn_type_def = player_user_data_horn_field:get_type(); +local horn_impact_pulls_duration_field = player_user_data_dual_horn_type_def:get_field("_ImpactPullsDuration"); +-- Bead of Resonance +local horn_shell_manager_type_def = sdk.find_type_definition("snow.shell.HornShellManager"); +local horn_shell_003s_field = horn_shell_manager_type_def:get_field("_HornShell003s"); + +local horn_shell_003_list_type_def = sdk.find_type_definition("System.Collections.Generic.List`1"); +local get_horn_shell_003_list_count_method = horn_shell_003_list_type_def:get_method("get_Count"); +local get_horn_shell_003_list_item_method = horn_shell_003_list_type_def:get_method("get_Item"); + +local horn_shell_003_type_def = sdk.find_type_definition("snow.shell.HornShell003"); +local horn_shell_003_life_timer_field = horn_shell_003_type_def:get_field("_lifeTimer"); +-- Sonic Bloom +local get_ref_blast_speaker_shell_method = horn_type_def:get_method("get_RefBlastSpeakerShell"); +local horn_shell_020_type_def = get_ref_blast_speaker_shell_method:get_return_type(); +local horn_shell_020_life_timer_field = horn_shell_020_type_def:get_field("_lifeTimer"); + +-- Charge Blade + +local charge_axe_type_def = sdk.find_type_definition("snow.player.ChargeAxe"); +-- Element Boost +local shield_buff_timer_field = charge_axe_type_def:get_field("_ShieldBuffTimer"); +local get_charged_bottle_num_method = charge_axe_type_def:get_method("get_ChargedBottleNum"); +-- Sword Boost Mode +local sword_buff_timer_field = charge_axe_type_def:get_field("_SwordBuffTimer"); + +local get_ref_player_user_data_charge_axe_method = charge_axe_type_def:get_method("get_RefPlayerUserDataC_Axe"); + +local player_user_data_charge_axe_type_def = get_ref_player_user_data_charge_axe_method:get_return_type(); +local get_sword_buff_time_method = player_user_data_charge_axe_type_def:get_method("get_SwordBuffTime"); +local get_shield_buff_time_per_bottle_method = player_user_data_charge_axe_type_def:get_method("get_ShieldBuffTimePerBottle"); + +-- Insect Glaive + +local insect_glaive_type_def = sdk.find_type_definition("snow.player.InsectGlaive"); +-- All Extracts Mix +local is_get_all_extractive_method = insect_glaive_type_def:get_method("isGetAllExtractive"); +local all_extractive_max_time_field = insect_glaive_type_def:get_field("AllExtractiveMaxTime"); + +-- Red Extract +local get_red_extractive_time_method = insect_glaive_type_def:get_method("get_RedExtractiveTime"); +local red_extractive_max_time_field = insect_glaive_type_def:get_field("RedExtractiveMaxTime"); +-- White Extract +local get_white_extractive_time_method = insect_glaive_type_def:get_method("get_WhiteExtractiveTime"); +local white_extractive_max_time_field = insect_glaive_type_def:get_field("WhiteExtractiveMaxTime"); +-- Orange Extract +local get_orange_extractive_time_method = insect_glaive_type_def:get_method("get_OrangeExtractiveTime"); +local orange_extractive_max_time_field = insect_glaive_type_def:get_field("OrangeExtractiveMaxTime"); + +-- Bow + +local bow_type_def = sdk.find_type_definition("snow.player.Bow"); +local get_ref_player_user_data_bow_method = bow_type_def:get_method("get_RefPlayerUserDataBow"); +-- Herculean Draw +local wire_buff_attack_up_timer_field = bow_type_def:get_field("_WireBuffAttackUpTimer"); +-- Bolt Boost +local wire_buff_arrow_up_timer_field = bow_type_def:get_field("_WireBuffArrowUpTimer"); + +local player_user_data_bow_type_def = get_ref_player_user_data_bow_method:get_return_type(); +local get_wire_buff_attack_up_time_method = player_user_data_bow_type_def:get_method("get_WireBuffAttackUpTime"); +local get_arrow_up_time_method = player_user_data_bow_type_def:get_method("get_ArrowUpBufTime"); + + 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)"); -local long_sword_shell_010_list_type_def = sdk.find_type_definition("System.Collections.Generic.List`1"); -local get_count_method = long_sword_shell_010_list_type_def:get_method("get_Count"); -local get_item_method = long_sword_shell_010_list_type_def:get_method("get_Item"); - -local long_sword_shell_010_type_def = sdk.find_type_definition("snow.shell.LongSwordShell010"); -local life_timer_field = long_sword_shell_010_type_def:get_field("_lifeTimer"); - local single_type_def = sdk.find_type_definition("System.Single"); -local mvalue_field = single_type_def:get_field("mValue"); +local single_mvalue_field = single_type_def:get_field("mValue"); + +local int32_type_def = sdk.find_type_definition("System.Int32"); +local int32_mvalue_field = int32_type_def:get_field("mValue"); + + +local heavy_bowgun_shot_type_data_fields = { explode_pile_data_normal_field, explode_pile_data_radiate_field, explode_pile_data_spread_field}; function this.update(player, player_data, weapon_type) if weapon_type ~= previous_weapon_type then @@ -173,18 +399,23 @@ function this.update(player, player_data, weapon_type) end end - function this.update_great_sword_skills(player) buffs.update_generic_buff(this.list, weapon_skills_type_name, "power_sheathe", nil, nil, player, move_wp_off_buff_set_time_field, player, move_wp_off_buff_set_time_field); end function this.update_switch_axe_skills(player) + local player_user_data_slash_axe = get_ref_player_user_data_s_axe_method:call(player); + if player_user_data_slash_axe == nil then + error_handler.report("weapon_skills.update_switch_axe_skills", "Failed to access Data: player_user_data_slash_axe"); + return; + end + buffs.update_generic_buff(this.list, weapon_skills_type_name, "amped_state", nil, nil, player, get_bottle_awake_duration_timer_method, player, bottle_awake_duration_time_field); buffs.update_generic_buff(this.list, weapon_skills_type_name, "switch_charger", nil, nil, - player, no_use_slash_gauge_timer_field); + player, no_use_slash_gauge_timer_field, player_user_data_slash_axe, get_no_user_slash_gauge_time_method); buffs.update_generic_buff(this.list, weapon_skills_type_name, "axe_heavy_slam", nil, nil, player, bottle_awake_assist_timer_field); @@ -192,7 +423,7 @@ end function this.update_long_sword_skills(player) buffs.update_generic_buff(this.list, weapon_skills_type_name, "spirit_gauge_autofill", nil, nil, - player, get_long_sword_gauge_powerup_time_method); + player, get_long_sword_gauge_powerup_time_method); this.update_spirit_gauge(player); this.update_harvest_moon(); @@ -228,7 +459,7 @@ function this.update_spirit_gauge(player) return; end - local long_sword_gauge_lv_time = mvalue_field:get_data(long_sword_gauge_lv_time_single_valtype); + local long_sword_gauge_lv_time = single_mvalue_field:get_data(long_sword_gauge_lv_time_single_valtype); if long_sword_gauge_lv_time == nil then error_handler.report("weapon_skills.update_spirit_gauge", "Failed to access Data: long_sword_gauge_lv_time"); return; @@ -249,7 +480,7 @@ function this.update_harvest_moon() return; end - local master_long_sword_shell_010_list_count = get_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 error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: master_long_sword_shell_010_list_count"); return; @@ -259,7 +490,7 @@ function this.update_harvest_moon() return; end - local master_long_sword_shell_010 = get_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 error_handler.report("weapon_skills.update_harvest_moon", "Failed to access Data: master_long_sword_shell_010"); return; @@ -280,36 +511,575 @@ function this.update_harvest_moon() end function this.update_light_bowgun_skills(player) + buffs.update_generic_buff(this.list, weapon_skills_type_name, "fanning_maneuver", nil, nil, + player, light_bowgun_wire_buff_timer_field); end function this.update_heavy_bowgun_skills(player) + buffs.update_generic_buff(this.list, weapon_skills_type_name, "counter_charger", nil, nil, + player, reduce_charge_timer_field, player, reduce_charge_timer_base_field); + + this.update_rising_moon(); + this.update_setting_sun() +end + +function this.update_rising_moon() + if singletons.light_bowgun_shell_manager == nil then + error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_manager"); + return; + end + + 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 + error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_030s_speed_boost_list"); + return; + 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); + 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"); + return; + end + + if light_bowgun_shell_030_speed_boost_list_count == 0 then + this.list.rising_moon = nil; + return; + 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); + if light_bowgun_shell_030 == nil then + error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: light_bowgun_shell_030"); + return; + end + + local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030); + if is_hit_enable == nil then + error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: is_hit_enable"); + return; + end + + if not is_hit_enable then + this.list.rising_moon = nil; + return; + end + + local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030); + if timer == nil then + error_handler.report("weapon_skills.update_rising_moon", "Failed to access Data: timer"); + return; + end + + if utils.number.is_equal(timer, 0) then + this.list.rising_moon = nil; + return; + end + + buffs.update_generic(this.list, weapon_skills_type_name, "rising_moon", 1, timer); +end + +function this.update_setting_sun() + if singletons.light_bowgun_shell_manager == nil then + error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_manager"); + return; + end + + 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 + error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030s_all_list"); + return; + end + + 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 + error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030_all_list_count"); + return; + end + + local min_count = 1; + if this.list.rising_moon ~= nil then + min_count = 2; + end + + if light_bowgun_shell_030_all_list_count < min_count then + this.list.setting_sun = nil; + return; + 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); + if light_bowgun_shell_030 == nil then + error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: light_bowgun_shell_030"); + return; + end + + local is_hit_enable = light_bowgun_shell_030_is_enable_hit_field:get_data(light_bowgun_shell_030); + if is_hit_enable == nil then + error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: is_hit_enable"); + return; + end + + if not is_hit_enable then + this.list.setting_sun = nil; + return; + end + + local timer = light_bowgun_shell_030_timer_field:get_data(light_bowgun_shell_030); + if timer == nil then + error_handler.report("weapon_skills.update_setting_sun", "Failed to access Data: timer"); + return; + end + + if utils.number.is_equal(timer, 0) then + this.list.setting_sun = nil; + return; + end + + buffs.update_generic(this.list, weapon_skills_type_name, "setting_sun", 1, timer); end function this.update_hammer_skills(player) + local player_user_data_hammer = player_user_data_hammer_field:get_data(player); + if player_user_data_hammer == nil then + error_handler.report("weapon_skills.update_hammer_skills", "Failed to access Data: player_user_data_hammer"); + return; + end + + buffs.update_generic_buff(this.list, weapon_skills_type_name, "impact_burst", nil, nil, + player, horn_impact_pulls_timer_field, player_user_data_hammer, hammer_impact_pulls_time_max_field); end function this.update_gunlance_skills(player) + local player_user_data_gunlance = get_player_user_data_gunlance_method:call(player); + if player_user_data_gunlance == nil then + error_handler.report("weapon_skills.update_gunlance_skills", "Failed to access Data: player_user_data_gunlance"); + return; + end + + buffs.update_generic_buff(this.list, weapon_skills_type_name, "ground_splitter", nil, nil, + player, shot_damage_up_duration_timer_field, player_user_data_gunlance, get_player_user_data_gunlance_method); + + this.update_erupting_cannon(player, player_user_data_gunlance); +end + +function this.update_erupting_cannon(player, player_user_data_gunlance) + local shot_type = get_shot_type_method:call(player); + if shot_type == nil then + error_handler.report("weapon_skills.update_erupting_cannon", "Failed to access Data: shot_type"); + return; + end + + local explode_pile_data = heavy_bowgun_shot_type_data_fields[shot_type + 1]:get_data(player_user_data_gunlance); + if explode_pile_data == nil then + error_handler.report("weapon_skills.update_erupting_cannon", "Failed to access Data: explode_pile_data"); + return; + end + + buffs.update_generic_buff(this.list, weapon_skills_type_name, "erupting_cannon", nil, nil, + player, explode_pile_buff_timer_field, explode_pile_data, explode_pile_data_duration_field); end function this.update_lance_skills(player) + buffs.update_generic_buff(this.list, weapon_skills_type_name, "spiral_thrust", nil, nil, + player, get_ruten_timer_method); + + this.update_anchor_rage(player); + this.update_twin_wine(player); +end + +function this.update_anchor_rage(player) + local guard_rage_buff_type = guard_rage_buff_type_field:get_data(player); + if guard_rage_buff_type == nil then + error_handler.report("weapon_skills.update_anchor_rage", "Failed to access Data: guard_rage_buff_type"); + return; + end + + if guard_rage_buff_type == 0 then + this.anchor_rage = nil; + return; + end + + local player_user_data_lance = player_user_data_lance_field:get_data(player); + if player_user_data_lance == nil then + error_handler.report("weapon_skills.update_anchor_rage", "Failed to access Data: player_user_data_lance"); + return; + end + + local guard_rage_timer_array = guard_rage_timer_field:get_data(player_user_data_lance); + if guard_rage_timer_array == nil then + error_handler.report("weapon_skills.update_anchor_rage", "Failed to access Data: guard_rage_timer_array"); + return; + end + + local guard_rage_timer_array_length = get_length_method:call(guard_rage_timer_array); + if guard_rage_timer_array_length == nil then + error_handler.report("weapon_skills.update_anchor_rage", "Failed to access Data: guard_rage_timer_array_length"); + return; + end + + if guard_rage_buff_type >= guard_rage_timer_array_length then + this.anchor_rage = nil; + return; + end + + local guard_rage_duration_valtype = get_value_method:call(guard_rage_timer_array, guard_rage_buff_type); + if guard_rage_duration_valtype == nil then + error_handler.report("weapon_skills.update_anchor_rage", "Failed to access Data: guard_rage_duration_valtype"); + return; + end + + buffs.update_generic_buff(this.list, weapon_skills_type_name, "anchor_rage", nil, nil, + player, get_guard_rage_timer_method, guard_rage_duration_valtype, single_mvalue_field); +end + +function this.update_twin_wine(player) + local chain_death_match_shell = chain_death_match_shell_field:get_data(player); + if chain_death_match_shell == nil then + error_handler.report("weapon_skills.update_twin_wine", "Failed to access Data: chain_death_match_shell"); + return; + end + + buffs.update_generic_buff(this.list, weapon_skills_type_name, "twin_wine", nil, nil, + chain_death_match_shell, chain_death_match_shell_life_timer_field); end function this.update_sword_and_shield_skills(player) + local player_user_data_short_sword = player_user_data_short_sword_field:get_data(player); + if player_user_data_short_sword == nil then + error_handler.report("weapon_skills.update_sword_and_shield_skills", "Failed to access Data: player_user_data_short_sword"); + return; + end + + buffs.update_generic_buff(this.list, weapon_skills_type_name, "destroyer_oil", nil, nil, + player, get_oil_buff_timer_method, player_user_data_short_sword, oil_buff_time_field); end function this.update_dual_blades_skills(player) + this.update_archdemon_mode(player) + + local player_user_data_dual_blades = player_user_data_dual_blades_field:get_data(player); + if player_user_data_dual_blades == nil then + error_handler.report("weapon_skills.update_dual_blades_skills", "Failed to access Data: player_user_data_dual_blades"); + return; + end + + buffs.update_generic_buff(this.list, weapon_skills_type_name, "ironshine_silk", nil, nil, + player, get_sharpness_recovery_buff_valid_timer_method, player_user_data_dual_blades, sharpness_recovery_buff_valid_max_timer_field); +end + +function this.update_archdemon_mode(player) + local is_kijin_kyouka = is_kijin_kyouka_field:get_data(player); + if is_kijin_kyouka == nil then + error_handler.report("weapon_skills.update_archdemon_mode", "Failed to access Data: is_kijin_kyouka"); + return; + end + + if not is_kijin_kyouka then + this.list.archdemon_mode = nil; + return; + end + + local kijin_kyouka_gauge = get_kijin_kyouka_gauge_method:call(player); + if kijin_kyouka_gauge == nil then + error_handler.report("weapon_skills.update_archdemon_mode", "Failed to access Data: kijin_kyouka_gauge"); + return; + end + + if utils.number.is_equal(kijin_kyouka_gauge, 0) then + this.list.archdemon_mode = nil; + return; + end + + buffs.update_generic(this.list, weapon_skills_type_name, "archdemon_mode", 1, kijin_kyouka_gauge); end function this.update_hunting_horn_skills(player) + this.update_bead_of_resonance(); + this.update_sonic_bloom(player); + + local player_user_data_horn = player_user_data_horn_field:get_data(player); + if player_user_data_horn == nil then + error_handler.report("weapon_skills.update_hunting_horn_skills", "Failed to access Data: player_user_data_horn"); + return; + end + + buffs.update_generic_buff(this.list, weapon_skills_type_name, "silkbind_shockwave", nil, nil, + player, horn_impact_pulls_timer_field, player_user_data_horn, horn_impact_pulls_duration_field); +end + +function this.update_bead_of_resonance() + if singletons.horn_shell_manager == nil then + error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_manager"); + return; + end + + local horn_shell_003s_array = horn_shell_003s_field:get_data(singletons.horn_shell_manager); + if horn_shell_003s_array == nil then + error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003s_list"); + return; + end + + local horn_shell_003s_array_length = get_length_method:call(horn_shell_003s_array); + 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"); + return; + end + + if players.myself.id >= horn_shell_003s_array_length then + this.list.bead_of_resonance = nil; + return; + end + + local horn_shell_003_list = get_value_method:call(horn_shell_003s_array, players.myself.id); + if horn_shell_003_list == nil then + error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003_list"); + return; + end + + 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 + error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003_list_count"); + return; + end + + if horn_shell_003_list_count == 0 then + this.list.bead_of_resonance = nil; + return; + end + + local horn_shell_003 = get_horn_shell_003_list_item_method:call(horn_shell_003_list, 0); + if horn_shell_003 == nil then + error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: horn_shell_003"); + return; + end + + local life_timer = horn_shell_003_life_timer_field:get_data(horn_shell_003); + if life_timer == nil then + error_handler.report("weapon_skills.update_bead_of_resonance", "Failed to access Data: life_timer"); + return; + end + + if utils.number.is_equal(life_timer, 0) then + this.list.bead_of_resonance = nil; + return; + end + + buffs.update_generic(this.list, weapon_skills_type_name, "bead_of_resonance", 1, life_timer); +end + +function this.update_sonic_bloom(player) + local blast_speaker_shell = get_ref_blast_speaker_shell_method:call(player); + if blast_speaker_shell == nil then + this.list.bead_of_resonance = nil; + return; + end + + local life_timer = horn_shell_020_life_timer_field:get_data(blast_speaker_shell); + if life_timer == nil then + error_handler.report("weapon_skills.update_sonic_bloom", "Failed to access Data: life_timer"); + return; + end + + if utils.number.is_equal(life_timer, 0) then + this.list.bead_of_resonance = nil; + return; + end + + buffs.update_generic(this.list, weapon_skills_type_name, "sonic_bloom", 1, life_timer); end function this.update_charge_blade_skills(player) + local player_user_data_charge_axe = get_ref_player_user_data_charge_axe_method:call(player); + if player_user_data_charge_axe == nil then + error_handler.report("weapon_skills.update_sonic_bloom", "Failed to access Data: life_timer"); + return; + end + + this.update_element_boost(player, player_user_data_charge_axe); + this.update_sword_boost_mode(player, player_user_data_charge_axe); +end + +function this.update_element_boost(player, player_user_data_charge_axe) + local shield_buff_timer = shield_buff_timer_field:get_data(player); + if shield_buff_timer == nil then + error_handler.report("weapon_skills.update_element_boost", "Failed to access Data: shield_buff_timer"); + return; + end + + if utils.number.is_equal(shield_buff_timer, 0) then + this.list.element_boost = nil; + return; + end + + shield_buff_timer = shield_buff_timer / 60; + + local duration = nil; + if this.list.element_boost == nil then + local shield_buff_time_per_bottle = get_shield_buff_time_per_bottle_method:call(player_user_data_charge_axe); + if shield_buff_time_per_bottle == nil then + error_handler.report("weapon_skills.update_element_boost", "Failed to access Data: shield_buff_time_duration"); + return; + end + + local bottle_num = get_charged_bottle_num_method:call(player); + if bottle_num == nil then + error_handler.report("weapon_skills.update_element_boost", "Failed to access Data: bottle_num"); + return; + end + + if bottle_num ~= 0 then + duration = (bottle_num * shield_buff_time_per_bottle) / 60; + else + duration = shield_buff_timer; + end + end + + buffs.update_generic(this.list, weapon_skills_type_name, "element_boost", 1, shield_buff_timer, duration); +end + +function this.update_sword_boost_mode(player, player_user_data_charge_axe) + local sword_buff_timer = sword_buff_timer_field:get_data(player); + if sword_buff_timer == nil then + error_handler.report("weapon_skills.update_sword_boost_mode", "Failed to access Data: sword_buff_timer"); + return; + end + + if utils.number.is_equal(sword_buff_timer, 0) then + this.list.sword_boost_mode = nil; + return; + end + + local sword_buff_time_duration = get_sword_buff_time_method:call(player_user_data_charge_axe); + if sword_buff_time_duration == nil then + error_handler.report("weapon_skills.update_sword_boost_mode", "Failed to access Data: sword_buff_time_duration"); + return; + end + + buffs.update_generic(this.list, weapon_skills_type_name, "sword_boost_mode", 1, sword_buff_timer / 60, sword_buff_time_duration / 60); end function this.update_insect_glaive_skills(player) + this.update_all_extracts_mix(player); + + if this.list.all_extracts_mix ~= nil then + this.list.red_extract = nil; + this.list.white_extract = nil; + this.list.orange_extract = nil; + return; + end + + this.update_extract(player, "red_extract", get_red_extractive_time_method, red_extractive_max_time_field) + this.update_extract(player, "white_extract", get_white_extractive_time_method, white_extractive_max_time_field) + this.update_extract(player, "orange_extract", get_orange_extractive_time_method, orange_extractive_max_time_field) +end + +function this.update_all_extracts_mix(player) + local is_get_all_extractive = is_get_all_extractive_method:call(player); + if is_get_all_extractive == nil then + error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to access Data: is_get_all_extractive"); + return; + end + + if not is_get_all_extractive then + this.list.all_extracts_mix = nil; + return; + end + + local red_extractive_time = get_red_extractive_time_method:call(player); + if red_extractive_time == nil then + error_handler.report("weapon_skills.update_all_extracts_mix", "Failed to access Data: red_extractive_time"); + return; + end + + if utils.number.is_equal(red_extractive_time, 0) then + this.list.all_extracts_mix = nil; + return; + end + + local all_extractive_max_time = all_extractive_max_time_field:get_data(player); + if all_extractive_max_time == nil then + error_handler.report("weapon_skills.update_all_extract", "Failed to access Data: all_extractive_max_time"); + return; + end + + buffs.update_generic(this.list, weapon_skills_type_name, "all_extracts_mix", 1, red_extractive_time, all_extractive_max_time); +end + +function this.update_extract(player, extract_key, time_holder, max_time_holder) + local extractive_time = time_holder:call(player); + if extractive_time == nil then + error_handler.report("weapon_skills.update_extract", string.format("Failed to access Data: %s_extractive_time", extract_key)); + return; + end + + if utils.number.is_equal(extractive_time, 0) then + this.list[extract_key] = nil; + return; + end + + local duration = nil; + + local extractive_max_time_array = max_time_holder:get_data(player); + if extractive_max_time_array == nil then + error_handler.report("weapon_skills.update_red_extract", string.format("Failed to access Data: %s_extractive_max_time_array", extract_key)); + return; + end + + local extractive_max_time_array_length = get_length_method:call(extractive_max_time_array); + if extractive_max_time_array_length == nil then + error_handler.report("weapon_skills.update_red_extract", string.format("Failed to access Data: %s_extractive_max_time_array_length", extract_key)); + return; + end + + if extractive_max_time_array_length ~= 0 then + local extractive_max_time_int32_valtype = get_value_method:call(extractive_max_time_array, 0); + if extractive_max_time_int32_valtype == nil then + error_handler.report("weapon_skills.update_red_extract", string.format("Failed to access Data: %s_extractive_max_time_int32_valtype", extract_key)); + return; + end + + local extractive_max_time = int32_mvalue_field:get_data(extractive_max_time_int32_valtype); + if extractive_max_time == nil then + error_handler.report("weapon_skills.update_red_extract", string.format("Failed to access Data: %s_extractive_max_time", extract_key)); + return; + end + + duration = extractive_max_time; + end + + buffs.update_generic(this.list, weapon_skills_type_name, extract_key, 1, extractive_time, duration); end function this.update_bow_skills(player) + local player_user_data_bow = get_ref_player_user_data_bow_method:call(player); + if player_user_data_bow == nil then + error_handler.report("weapon_skills.update_extract", "Failed to access Data: player_user_data_bow"); + return; + end + + this.update_bow_skill(player, "herculean_draw", wire_buff_attack_up_timer_field, player_user_data_bow, get_wire_buff_attack_up_time_method); + this.update_bow_skill(player, "bolt_boost", wire_buff_arrow_up_timer_field, player_user_data_bow, get_arrow_up_time_method); +end + +function this.update_bow_skill(player, bow_skill_key, timer_holder, player_user_data_bow, max_time_holder) + local timer = timer_holder:get_data(player); + if timer == nil then + error_handler.report("weapon_skills.update_bow_skill", string.format("Failed to access Data: %s_timer", bow_skill_key)); + return; + end + + if utils.number.is_equal(timer, 0) then + this.list[bow_skill_key] = nil; + return; + end + + local max_time = max_time_holder:call(player_user_data_bow); + if max_time == nil then + error_handler.report("weapon_skills.update_bow_skill", string.format("Failed to access Data: %s_max_time", bow_skill_key)); + return; + end + + buffs.update_generic(this.list, weapon_skills_type_name, bow_skill_key, 1, timer / 60, max_time / 60); end function this.init_names() diff --git a/reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua b/reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua index 48c403b..b8d7653 100644 --- a/reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua +++ b/reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua @@ -63,6 +63,8 @@ function this.init() this.init_servant_manager(); this.init_otomo_manager(); this.init_long_sword_shell_manager(); + this.init_light_bowgun_shell_manager(); + this.init_horn_shell_manager(); end function this.init_message_manager() @@ -193,6 +195,23 @@ function this.init_long_sword_shell_manager() return this.long_sword_shell_manager; end +function this.init_light_bowgun_shell_manager() + this.light_bowgun_shell_manager = sdk.get_managed_singleton("snow.shell.LightBowgunShellManager"); + if this.light_bowgun_shell_manager == nil then + error_handler.report("singletons.init_light_bowgun_shell_manager", "Failed to access Data: light_bowgun_shell_manager"); + end + + return this.light_bowgun_shell_manager; +end + +function this.init_horn_shell_manager() + this.horn_shell_manager = sdk.get_managed_singleton("snow.shell.HornShellManager"); + if this.horn_shell_manager == nil then + error_handler.report("singletons.init_horn_shell_manager", "Failed to access Data: horn_shell_manager"); + end + + return this.horn_shell_manager; +end function this.init_dependencies() diff --git a/reframework/autorun/MHR_Overlay/Misc/language.lua b/reframework/autorun/MHR_Overlay/Misc/language.lua index 72254ac..fe24a40 100644 --- a/reframework/autorun/MHR_Overlay/Misc/language.lua +++ b/reframework/autorun/MHR_Overlay/Misc/language.lua @@ -389,7 +389,7 @@ this.default_language = { -- foray = "Foray", -- tune_up = "Tune-Up", grinder_s = "Grinder (S)", - -- bladescale_hone = "Bladescale Hone", + bladescale_hone = "Bladescale Hone", -- wall_runner_boost = "Wall Runner (Boost)", -- quick_breath = "Quick Breath", -- element_exploit = "Element Exploit", @@ -479,7 +479,42 @@ this.default_language = { -- Long Sword spirit_gauge_autofill = "Spirit Gauge Autofill", -- Soaring Kick, Iai Slash spirit_gauge = "Spirit Gauge", - harvest_moon = "Harvest Moon" + harvest_moon = "Harvest Moon", + -- Light Bowgun + fanning_maneuver = "Fanning Maneuver", + -- Heavy Bowgun + counter_charger = "Counter Charger", + rising_moon = "Rising Moon", + setting_sun = "Setting Sun", + -- Hammer + impact_burst = "Impact Burst", + -- Gunlance + ground_splitter = "Ground Splitter", + erupting_cannon = "Erupting Cannon", + -- Lance + anchor_rage = "Anchor Rage", + spiral_thrust = "Spiral Thrust", + twin_wine = "Twin Wine", + -- Sword & Shield + destroyer_oil = "Destroyer Oil", + -- Dual Blades + ironshine_silk = "Ironshine Silk", + archdemon_mode = "Archdemon Mode", + -- Hunting Horn + silkbind_shockwave = "Silkbind Shockwave", + bead_of_resonance = "Bead of Resonance", + sonic_bloom = "Sonic Bloom", + -- Charge Blade + element_boost = "Element Boost", + sword_boost_mode ="Sword Boost Mode", + -- Insect Glaive + red_extract = "Red Extract", + white_extract = "White Extract", + orange_extract = "Orange Extract", + all_extracts_mix = "All Extracts Mix", + -- Bow + herculean_draw = "Herculean Draw", + bolt_boost = "Bolt Boost" }, UI = { diff --git a/reframework/data/MHR Overlay/languages/en-us.json b/reframework/data/MHR Overlay/languages/en-us.json index f3dc4b7..b20e6b6 100644 --- a/reframework/data/MHR Overlay/languages/en-us.json +++ b/reframework/data/MHR Overlay/languages/en-us.json @@ -529,6 +529,7 @@ "adrenaline_rush": "Adrenaline Rush", "affinity_sliding": "Affinity Sliding", "agitator": "Agitator", + "bladescale_hone": "Bladescale Hone", "bloodlust": "Bloodlust", "burst": "Burst", "coalescence": "Coalescence", @@ -574,12 +575,36 @@ 0 ], "weapon_skills": { + "all_extracts_mix": "All Extracts Mix", "amped_state": "Amped State", + "anchor_rage": "Anchor Rage", + "archdemon_mode": "Archdemon Mode", "axe_heavy_slam": "Axe: Heavy Slam", + "bead_of_resonance": "Bead of Resonance", + "bolt_boost": "Bolt Boost", + "counter_charger": "Counter Charger", + "destroyer_oil": "Destroyer Oil", + "element_boost": "Element Boost", + "erupting_cannon": "Erupting Cannon", + "fanning_maneuver": "Fanning Maneuver", + "ground_splitter": "Ground Splitter", "harvest_moon": "Harvest Moon", + "herculean_draw": "Herculean Draw", + "impact_burst": "Impact Burst", + "ironshine_silk": "Ironshine Silk", + "orange_extract": "Orange Extract", "power_sheathe": "Power Sheathe", + "red_extract": "Red Extract", + "rising_moon": "Rising Moon", + "setting_sun": "Setting Sun", + "silkbind_shockwave": "Silkbind Shockwave", + "sonic_bloom": "Sonic Bloom", + "spiral_thrust": "Spiral Thrust", "spirit_gauge": "Spirit Gauge", "spirit_gauge_autofill": "Spirit Gauge Autofill", - "switch_charger": "Switch Charger" + "switch_charger": "Switch Charger", + "sword_boost_mode": "Sword Boost Mode", + "twin_wine": "Twin Wine", + "white_extract": "White Extract" } } \ No newline at end of file diff --git a/reframework/data/MHR Overlay/languages/ja-jp.json b/reframework/data/MHR Overlay/languages/ja-jp.json index 76423d7..d680008 100644 --- a/reframework/data/MHR Overlay/languages/ja-jp.json +++ b/reframework/data/MHR Overlay/languages/ja-jp.json @@ -530,6 +530,7 @@ "adrenaline_rush": "Adrenaline Rush", "affinity_sliding": "Affinity Sliding", "agitator": "Agitator", + "bladescale_hone": "Bladescale Hone", "bloodlust": "Bloodlust", "burst": "Burst", "coalescence": "Coalescence", @@ -587,14 +588,40 @@ 0 ], "weapon_skills": { + "all_extracts_mix": "All Extracts Mix", "amped_state": "Amped State", + "anchor_rage": "Anchor Rage", + "archdemon_mode": "Archdemon Mode", "axe_heavy_slam": "Axe: Heavy Slam", + "bead_of_resonance": "Bead of Resonance", + "bolt_boost": "Bolt Boost", + "counter_charger": "Counter Charger", + "destroyer_oil": "Destroyer Oil", + "element_boost": "Element Boost", + "erupting_cannon": "Erupting Cannon", + "fanning_maneuver": "Fannin Maneuver", + "ground_splitter": "Ground Splitter", "harvest_moon": "Harvest Moon", + "herculean_draw": "Herculean Draw", "iai_slash": "Iai Slash", + "impact_burst": "Impact Burst", + "ironshine_silk": "Ironshine Silk", + "orange_extract": "O Extract", "power_sheathe": "Power Sheathe", + "red_extract": "Red Extract", + "rising_moon": "Rising Moon", + "setting_sun": "Setting Sun", + "shield_charge": "Shield Charge", + "silkbind_shockwave": "Silkbind Shockwave", "soaring_kick": "Soaring Kick", + "sonic_bloom": "Sonic Bloom", + "spiral_thrust": "Spiral Thrust", "spirit_gauge": "Spirit Gauge", "spirit_gauge_autofill": "Spirit Gauge Autofill", - "switch_charger": "Switch Charger" + "switch_charger": "Switch Charger", + "sword_boost_mode": "Sword Boost Mode", + "sword_charge": "Sword Charge", + "twin_wine": "Twin Wine", + "white_extract": "White Extract" } } \ No newline at end of file diff --git a/reframework/data/MHR Overlay/languages/ko-kr.json b/reframework/data/MHR Overlay/languages/ko-kr.json index d4aa357..65471c5 100644 --- a/reframework/data/MHR Overlay/languages/ko-kr.json +++ b/reframework/data/MHR Overlay/languages/ko-kr.json @@ -531,6 +531,7 @@ "adrenaline_rush": "Adrenaline Rush", "affinity_sliding": "Affinity Sliding", "agitator": "Agitator", + "bladescale_hone": "Bladescale Hone", "bloodlust": "Bloodlust", "burst": "Burst", "coalescence": "Coalescence", @@ -588,14 +589,40 @@ 0 ], "weapon_skills": { + "all_extracts_mix": "All Extracts Mix", "amped_state": "Amped State", + "anchor_rage": "Anchor Rage", + "archdemon_mode": "Archdemon Mode", "axe_heavy_slam": "Axe: Heavy Slam", + "bead_of_resonance": "Bead of Resonance", + "bolt_boost": "Bolt Boost", + "counter_charger": "Counter Charger", + "destroyer_oil": "Destroyer Oil", + "element_boost": "Element Boost", + "erupting_cannon": "Erupting Cannon", + "fanning_maneuver": "Fannin Maneuver", + "ground_splitter": "Ground Splitter", "harvest_moon": "Harvest Moon", + "herculean_draw": "Herculean Draw", "iai_slash": "Iai Slash", + "impact_burst": "Impact Burst", + "ironshine_silk": "Ironshine Silk", + "orange_extract": "O Extract", "power_sheathe": "Power Sheathe", + "red_extract": "Red Extract", + "rising_moon": "Rising Moon", + "setting_sun": "Setting Sun", + "shield_charge": "Shield Charge", + "silkbind_shockwave": "Silkbind Shockwave", "soaring_kick": "Soaring Kick", + "sonic_bloom": "Sonic Bloom", + "spiral_thrust": "Spiral Thrust", "spirit_gauge": "Spirit Gauge", "spirit_gauge_autofill": "Spirit Gauge Autofill", - "switch_charger": "Switch Charger" + "switch_charger": "Switch Charger", + "sword_boost_mode": "Sword Boost Mode", + "sword_charge": "Sword Charge", + "twin_wine": "Twin Wine", + "white_extract": "White Extract" } } \ No newline at end of file diff --git a/reframework/data/MHR Overlay/languages/ru-ru.json b/reframework/data/MHR Overlay/languages/ru-ru.json index d2c7f57..3d38ff9 100644 --- a/reframework/data/MHR Overlay/languages/ru-ru.json +++ b/reframework/data/MHR Overlay/languages/ru-ru.json @@ -531,6 +531,7 @@ "adrenaline_rush": "Adrenaline Rush", "affinity_sliding": "Affinity Sliding", "agitator": "Agitator", + "bladescale_hone": "Bladescale Hone", "bloodlust": "Bloodlust", "burst": "Burst", "coalescence": "Coalescence", @@ -584,14 +585,40 @@ 0 ], "weapon_skills": { + "all_extracts_mix": "All Extracts Mix", "amped_state": "Amped State", + "anchor_rage": "Anchor Rage", + "archdemon_mode": "Archdemon Mode", "axe_heavy_slam": "Axe: Heavy Slam", + "bead_of_resonance": "Bead of Resonance", + "bolt_boost": "Bolt Boost", + "counter_charger": "Counter Charger", + "destroyer_oil": "Destroyer Oil", + "element_boost": "Element Boost", + "erupting_cannon": "Erupting Cannon", + "fanning_maneuver": "Fannin Maneuver", + "ground_splitter": "Ground Splitter", "harvest_moon": "Harvest Moon", + "herculean_draw": "Herculean Draw", "iai_slash": "Iai Slash", + "impact_burst": "Impact Burst", + "ironshine_silk": "Ironshine Silk", + "orange_extract": "O Extract", "power_sheathe": "Power Sheathe", + "red_extract": "Red Extract", + "rising_moon": "Rising Moon", + "setting_sun": "Setting Sun", + "shield_charge": "Shield Charge", + "silkbind_shockwave": "Silkbind Shockwave", "soaring_kick": "Soaring Kick", + "sonic_bloom": "Sonic Bloom", + "spiral_thrust": "Spiral Thrust", "spirit_gauge": "Spirit Gauge", "spirit_gauge_autofill": "Spirit Gauge Autofill", - "switch_charger": "Switch Charger" + "switch_charger": "Switch Charger", + "sword_boost_mode": "Sword Boost Mode", + "sword_charge": "Sword Charge", + "twin_wine": "Twin Wine", + "white_extract": "White Extract" } } \ No newline at end of file diff --git a/reframework/data/MHR Overlay/languages/zh-cn.json b/reframework/data/MHR Overlay/languages/zh-cn.json index f933860..e7481ea 100644 --- a/reframework/data/MHR Overlay/languages/zh-cn.json +++ b/reframework/data/MHR Overlay/languages/zh-cn.json @@ -531,6 +531,7 @@ "adrenaline_rush": "Adrenaline Rush", "affinity_sliding": "Affinity Sliding", "agitator": "Agitator", + "bladescale_hone": "Bladescale Hone", "bloodlust": "Bloodlust", "burst": "Burst", "coalescence": "Coalescence", @@ -588,14 +589,40 @@ 0 ], "weapon_skills": { + "all_extracts_mix": "All Extracts Mix", "amped_state": "Amped State", + "anchor_rage": "Anchor Rage", + "archdemon_mode": "Archdemon Mode", "axe_heavy_slam": "Axe: Heavy Slam", + "bead_of_resonance": "Bead of Resonance", + "bolt_boost": "Bolt Boost", + "counter_charger": "Counter Charger", + "destroyer_oil": "Destroyer Oil", + "element_boost": "Element Boost", + "erupting_cannon": "Erupting Cannon", + "fanning_maneuver": "Fannin Maneuver", + "ground_splitter": "Ground Splitter", "harvest_moon": "Harvest Moon", + "herculean_draw": "Herculean Draw", "iai_slash": "Iai Slash", + "impact_burst": "Impact Burst", + "ironshine_silk": "Ironshine Silk", + "orange_extract": "O Extract", "power_sheathe": "Power Sheathe", + "red_extract": "Red Extract", + "rising_moon": "Rising Moon", + "setting_sun": "Setting Sun", + "shield_charge": "Shield Charge", + "silkbind_shockwave": "Silkbind Shockwave", "soaring_kick": "Soaring Kick", + "sonic_bloom": "Sonic Bloom", + "spiral_thrust": "Spiral Thrust", "spirit_gauge": "Spirit Gauge", "spirit_gauge_autofill": "Spirit Gauge Autofill", - "switch_charger": "Switch Charger" + "switch_charger": "Switch Charger", + "sword_boost_mode": "Sword Boost Mode", + "sword_charge": "Sword Charge", + "twin_wine": "Twin Wine", + "white_extract": "White Extract" } } \ No newline at end of file diff --git a/reframework/data/MHR Overlay/languages/zh-tw.json b/reframework/data/MHR Overlay/languages/zh-tw.json index 6a0e462..6565e83 100644 --- a/reframework/data/MHR Overlay/languages/zh-tw.json +++ b/reframework/data/MHR Overlay/languages/zh-tw.json @@ -531,6 +531,7 @@ "adrenaline_rush": "Adrenaline Rush", "affinity_sliding": "Affinity Sliding", "agitator": "Agitator", + "bladescale_hone": "Bladescale Hone", "bloodlust": "Bloodlust", "burst": "Burst", "coalescence": "Coalescence", @@ -588,14 +589,40 @@ 0 ], "weapon_skills": { + "all_extracts_mix": "All Extracts Mix", "amped_state": "Amped State", + "anchor_rage": "Anchor Rage", + "archdemon_mode": "Archdemon Mode", "axe_heavy_slam": "Axe: Heavy Slam", + "bead_of_resonance": "Bead of Resonance", + "bolt_boost": "Bolt Boost", + "counter_charger": "Counter Charger", + "destroyer_oil": "Destroyer Oil", + "element_boost": "Element Boost", + "erupting_cannon": "Erupting Cannon", + "fanning_maneuver": "Fannin Maneuver", + "ground_splitter": "Ground Splitter", "harvest_moon": "Harvest Moon", + "herculean_draw": "Herculean Draw", "iai_slash": "Iai Slash", + "impact_burst": "Impact Burst", + "ironshine_silk": "Ironshine Silk", + "orange_extract": "O Extract", "power_sheathe": "Power Sheathe", + "red_extract": "Red Extract", + "rising_moon": "Rising Moon", + "setting_sun": "Setting Sun", + "shield_charge": "Shield Charge", + "silkbind_shockwave": "Silkbind Shockwave", "soaring_kick": "Soaring Kick", + "sonic_bloom": "Sonic Bloom", + "spiral_thrust": "Spiral Thrust", "spirit_gauge": "Spirit Gauge", "spirit_gauge_autofill": "Spirit Gauge Autofill", - "switch_charger": "Switch Charger" + "switch_charger": "Switch Charger", + "sword_boost_mode": "Sword Boost Mode", + "sword_charge": "Sword Charge", + "twin_wine": "Twin Wine", + "white_extract": "White Extract" } } \ No newline at end of file