10 Commits

Author SHA1 Message Date
GreenComfyTea
50131b08f1 Remove Kushala Daora Soul string 2023-09-06 16:31:54 +03:00
GreenComfyTea
89bb48602d language.lua upd 2023-09-06 16:31:10 +03:00
GreenComfyTea
1580b4c4c2 Add Embolden, Berserk, Powder Mantle, Strife, Inspiration, Blood Awakening Skills, move Kushala Daora Soul to Rampage Skills 2023-09-06 16:30:54 +03:00
GreenComfyTea
5c42502700 Remove Might/Adamant Seeds (covered by Attack/Defense Up) and Dash Juice(covered by Stamina Use Down) 2023-09-06 16:29:56 +03:00
GreenComfyTea
d7a4450a37 Add Stinkmink, remove Peepersects (covered by Stamina Use Down) 2023-09-06 16:28:48 +03:00
GreenComfyTea
590b3b17c2 Remove Dango Bulker (covered by Attack Up) 2023-09-06 16:27:17 +03:00
GreenComfyTea
e20af6479e Move Attack Up, Defense Up, Stamina Use Down to Misc Buffs 2023-09-06 16:26:55 +03:00
GreenComfyTea
6bab1b2435 Add Rampage Skills to Update Function 2023-09-06 16:26:08 +03:00
GreenComfyTea
195252ed70 Abnormal Statuses: Add Falling Asleep 2023-09-06 16:25:09 +03:00
GreenComfyTea
b9a3088658 Add Rampage Skills 2023-09-06 16:24:17 +03:00
18 changed files with 548 additions and 264 deletions

View File

@@ -53,6 +53,7 @@ local dango_skills = require("MHR_Overlay.Buffs.dango_skills");
local abnormal_statuses = require("MHR_Overlay.Buffs.abnormal_statuses");
local otomo_moves = require("MHR_Overlay.Buffs.otomo_moves");
local weapon_skills = require("MHR_Overlay.Buffs.weapon_skills");
local rampage_skills = require("MHR_Overlay.Buffs.rampage_skills");
local misc_buffs = require("MHR_Overlay.Buffs.misc_buffs");
local players = require("MHR_Overlay.Damage_Meter.players");
@@ -136,6 +137,7 @@ dango_skills.init_dependencies();
abnormal_statuses.init_dependencies();
otomo_moves.init_dependencies();
weapon_skills.init_dependencies();
rampage_skills.init_dependencies();
misc_buffs.init_dependencies();
damage_hook.init_dependencies();
@@ -214,6 +216,7 @@ dango_skills.init_module();
abnormal_statuses.init_module();
otomo_moves.init_module();
weapon_skills.init_module();
rampage_skills.init_module();
misc_buffs.init_module();
damage_hook.init_module();

View File

@@ -82,54 +82,55 @@ local frenzy_infected_duration = 121;
local player_quest_base_type_def = sdk.find_type_definition("snow.player.PlayerQuestBase");
-- Fireblight
local fire_duration_timer = player_quest_base_type_def:get_field("_FireLDurationTimer");
local fire_duration_timer_field = player_quest_base_type_def:get_field("_FireLDurationTimer");
-- Waterblight
local water_duration_timer = player_quest_base_type_def:get_field("_WaterLDurationTimer");
local water_duration_timer_field = player_quest_base_type_def:get_field("_WaterLDurationTimer");
-- Iceblight
local ice_duration_timer = player_quest_base_type_def:get_field("_IceLDurationTimer");
local ice_duration_timer_field = player_quest_base_type_def:get_field("_IceLDurationTimer");
-- Thunderblight
local thunder_duration_timer = player_quest_base_type_def:get_field("_ThunderLDurationTimer");
local thunder_duration_timer_field = player_quest_base_type_def:get_field("_ThunderLDurationTimer");
-- Dragonblight
local dragon_duration_timer = player_quest_base_type_def:get_field("_DragonLDurationTimer");
local dragon_duration_timer_field = player_quest_base_type_def:get_field("_DragonLDurationTimer");
-- blastblight
local bomb_duration_timer = player_quest_base_type_def:get_field("_BombDurationTimer");
local bomb_duration_timer_field = player_quest_base_type_def:get_field("_BombDurationTimer");
-- Bubbleblight
local bubble_type_field = player_quest_base_type_def:get_field("_BubbleType");
local bubble_damage_timer = player_quest_base_type_def:get_field("_BubbleDamageTimer");
local bubble_damage_timer_field = player_quest_base_type_def:get_field("_BubbleDamageTimer");
-- Hellfireblight
local oni_bomb_duration_timer = player_quest_base_type_def:get_field("_OniBombDurationTimer");
local oni_bomb_duration_timer_field = player_quest_base_type_def:get_field("_OniBombDurationTimer");
-- Bloodblight
local mystery_debuff_timer = player_quest_base_type_def:get_field("_MysteryDebuffTimer");
local mystery_debuff_timer_field = player_quest_base_type_def:get_field("_MysteryDebuffTimer");
-- Frostblight
local get_is_frozen_damage_method = player_quest_base_type_def:get_method("get_IsFrozenDamage");
-- Poison
local poison_level_field = player_quest_base_type_def:get_field("_PoisonLv");
local poison_duration_timer = player_quest_base_type_def:get_field("_PoisonDurationTimer");
local poison_duration_timer_field = player_quest_base_type_def:get_field("_PoisonDurationTimer");
-- Stun
local stun_duration_timer = player_quest_base_type_def:get_field("_StunDurationTimer");
local stun_duration_timer_field = player_quest_base_type_def:get_field("_StunDurationTimer");
-- Falling Sleep
local get_sleep_movable_timer_method = player_quest_base_type_def:get_method("get_SleepMovableTimer");
-- Sleep
local sleep_duration_timer = player_quest_base_type_def:get_field("_SleepDurationTimer");
local sleep_duration_timer_field = player_quest_base_type_def:get_field("_SleepDurationTimer");
-- Paralysis
local paralyze_duration_timer = player_quest_base_type_def:get_field("_ParalyzeDurationTimer");
local paralyze_duration_timer_field = player_quest_base_type_def:get_field("_ParalyzeDurationTimer");
-- Defense Down
local defense_down_duration_timer = player_quest_base_type_def:get_field("_DefenceDownDurationTimer");
local defense_down_duration_timer_field = player_quest_base_type_def:get_field("_DefenceDownDurationTimer");
-- Resistance Down
local resistance_down_duration_timer = player_quest_base_type_def:get_field("_ResistanceDownDurationTimer");
local resistance_down_duration_timer_field = player_quest_base_type_def:get_field("_ResistanceDownDurationTimer");
-- Tremor
local quake_duration_timer = player_quest_base_type_def:get_field("_QuakeDurationTimer");
local quake_duration_timer_field = player_quest_base_type_def:get_field("_QuakeDurationTimer");
-- Roar
local ear_duration_timer = player_quest_base_type_def:get_field("_EarDurationTimer");
local ear_duration_timer_field = player_quest_base_type_def:get_field("_EarDurationTimer");
-- Webbed
local beto_duration_timer = player_quest_base_type_def:get_field("_BetoDurationTimer");
local beto_duration_timer_field = player_quest_base_type_def:get_field("_BetoDurationTimer");
-- Stench
local stink_duration_timer = player_quest_base_type_def:get_field("_StinkDurationTimer");
local stink_duration_timer_field = player_quest_base_type_def:get_field("_StinkDurationTimer");
-- Leeched
local blooding_enemy_timer = player_quest_base_type_def:get_field("_BloodingEnemyTimer");
local blooding_enemy_timer_field = player_quest_base_type_def:get_field("_BloodingEnemyTimer");
-- Bleeding
local bleeding_debuff_timer = player_quest_base_type_def:get_field("_BleedingDebuffTimer");
local bleeding_debuff_timer_field = player_quest_base_type_def:get_field("_BleedingDebuffTimer");
-- Engulfed
local get_is_vacuum_damage_method = player_quest_base_type_def:get_method("get__IsVacuumDamage");
-- Muck
@@ -143,6 +144,7 @@ local virus_timer_field = player_quest_base_type_def:get_field("_VirusTimer");
local virus_onset_timer_field = player_quest_base_type_def:get_field("_VirusOnsetTimer");
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Frenzy Overcome
local virus_overcome_buff_timer_field = player_data_type_def:get_field("_VirusOvercomeBuffTimer");
@@ -162,34 +164,36 @@ function this.update(player, player_data)
this.update_muck(player);
this.update_frenzy_infection(player);
buffs.update_generic_buff(this.list, ailments_type_name, "fireblight", this.get_abnormal_status_name, nil, nil, player, fire_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "fireblight", this.get_abnormal_status_name, nil, nil, player, fire_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "waterblight", this.get_abnormal_status_name, nil, nil, player, water_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "iceblight", this.get_abnormal_status_name, nil, nil, player, ice_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "thunderblight", this.get_abnormal_status_name, nil, nil, player, thunder_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "dragonblight", this.get_abnormal_status_name, nil, nil, player, dragon_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "blastblight", this.get_abnormal_status_name, nil, nil, player, bomb_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "hellfireblight", this.get_abnormal_status_name, nil, nil, player, oni_bomb_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "bloodblight", this.get_abnormal_status_name, nil, nil, player, mystery_debuff_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "fireblight", this.get_abnormal_status_name, nil, nil, player, fire_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "fireblight", this.get_abnormal_status_name, nil, nil, player, fire_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "waterblight", this.get_abnormal_status_name, nil, nil, player, water_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "iceblight", this.get_abnormal_status_name, nil, nil, player, ice_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "thunderblight", this.get_abnormal_status_name, nil, nil, player, thunder_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "dragonblight", this.get_abnormal_status_name, nil, nil, player, dragon_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "blastblight", this.get_abnormal_status_name, nil, nil, player, bomb_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "hellfireblight", this.get_abnormal_status_name, nil, nil, player, oni_bomb_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "bloodblight", this.get_abnormal_status_name, nil, nil, player, mystery_debuff_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "stun", this.get_abnormal_status_name, nil, nil, player, stun_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "paralysis", this.get_abnormal_status_name, nil, nil, player, paralyze_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "sleep", this.get_abnormal_status_name, nil, nil, player, sleep_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "defense_down", this.get_abnormal_status_name, nil, nil, player, defense_down_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "resistance_down", this.get_abnormal_status_name, nil, nil, player, resistance_down_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "stun", this.get_abnormal_status_name, nil, nil, player, stun_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "paralysis", this.get_abnormal_status_name, nil, nil, player, paralyze_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "falling_asleep", this.get_abnormal_status_name, nil, nil, player, get_sleep_movable_timer_method);
buffs.update_generic_buff(this.list, ailments_type_name, "defense_down", this.get_abnormal_status_name, nil, nil, player, defense_down_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "resistance_down", this.get_abnormal_status_name, nil, nil, player, resistance_down_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "tremor", this.get_abnormal_status_name, nil, nil, player, quake_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "roar", this.get_abnormal_status_name, nil, nil, player, ear_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "webbed", this.get_abnormal_status_name, nil, nil, player, beto_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "stench", this.get_abnormal_status_name, nil, nil, player, stink_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "leeched", this.get_abnormal_status_name, nil, nil, player, blooding_enemy_timer, nil, nil, true);
buffs.update_generic_buff(this.list, ailments_type_name, "bleeding", this.get_abnormal_status_name, nil, nil, player, bleeding_debuff_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "tremor", this.get_abnormal_status_name, nil, nil, player, quake_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "roar", this.get_abnormal_status_name, nil, nil, player, ear_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "webbed", this.get_abnormal_status_name, nil, nil, player, beto_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "stench", this.get_abnormal_status_name, nil, nil, player, stink_duration_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "leeched", this.get_abnormal_status_name, nil, nil, player, blooding_enemy_timer_field, nil, nil, true);
buffs.update_generic_buff(this.list, ailments_type_name, "bleeding", this.get_abnormal_status_name, nil, nil, player, bleeding_debuff_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "frenzy", this.get_abnormal_status_name, nil, nil, player, virus_onset_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "frenzy_overcome", this.get_abnormal_status_name, nil, nil, player_data, virus_overcome_buff_timer_field);
buffs.update_generic_buff(this.list, ailments_type_name, "engulfed", this.get_abnormal_status_name, player, get_is_vacuum_damage_method);
buffs.update_generic_buff(this.list, ailments_type_name, "frostblight", this.get_abnormal_status_name, player, get_is_frozen_damage_method);
this.update_sleep(player);
end
function this.update_poison(player)
@@ -206,10 +210,10 @@ function this.update_poison(player)
end
if poison_level == 1 then
buffs.update_generic_buff(this.list, ailments_type_name, "poison", this.get_abnormal_status_name, player, poison_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "poison", this.get_abnormal_status_name, player, poison_duration_timer_field);
this.list.deadly_poison = nil;
else
buffs.update_generic_buff(this.list, ailments_type_name, "deadly_poison", this.get_abnormal_status_name, player, poison_duration_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "deadly_poison", this.get_abnormal_status_name, player, poison_duration_timer_field);
this.list.poison = nil;
end
end
@@ -228,10 +232,10 @@ function this.update_bubbleblight(player)
end
if bubble_type == 1 then
buffs.update_generic_buff(this.list, ailments_type_name, "minor_bubbleblight", this.get_abnormal_status_name, player, bubble_damage_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "minor_bubbleblight", this.get_abnormal_status_name, player, bubble_damage_timer_field);
this.list.major_bubbleblight = nil;
else
buffs.update_generic_buff(this.list, ailments_type_name, "major_bubbleblight", this.get_abnormal_status_name, player, bubble_damage_timer);
buffs.update_generic_buff(this.list, ailments_type_name, "major_bubbleblight", this.get_abnormal_status_name, player, bubble_damage_timer_field);
this.list.minor_bubbleblight = nil;
end
end
@@ -280,6 +284,15 @@ function this.update_frenzy_infection(player)
buffs.update_generic(this.list, ailments_type_name, "frenzy_infection", this.get_abnormal_status_name, 1, timer, frenzy_infected_duration);
end
function this.update_sleep(player)
if this.list.falling_asleep ~= nil then
this.list.sleep = nil;
return;
end
buffs.update_generic_buff(this.list, ailments_type_name, "sleep", this.get_abnormal_status_name, nil, nil, player, sleep_duration_timer_field);
end
function this.init_names()
for abnormal_status_key, debuff in pairs(this.list) do
debuff.name = this.get_abnormal_status_name(abnormal_status_key);

View File

@@ -18,6 +18,7 @@ local abnormal_statuses;
local otomo_moves;
local weapon_skills;
local misc_buffs;
local rampage_skills;
local sdk = sdk;
local tostring = tostring;
@@ -54,12 +55,31 @@ local package = package;
--[[
TODO:
[x] DONE! Wirebug-related skills
More otomo skills
[x] DONE! More Dango skills
Part breaker, charge master
[x] DONE! Weapon buffs
More endemic life, such as Lampsquid
[x] DONE! Horn music
[x] DONE! abnormal_statuses: Immunity
[x] DONE! consumables: Stinkmink
[x] DONE! rampage skills: Chameleos Soul
[x] WONT IMPLEMENT! skills: Furious Buildup
[x] DONE! skills: powder mantle
[x] WONT IMPLEMENT! skills: frostcraft
[x] COULDNT FIND! skills: defiance --
[x] DONE! skills: embolden
[x] DONE! skills: strife
[x] DONE! skills: berserk
[x] DONE! skills: dragon conversion
[x] DONE! abnormal_statuses: Pre-Sleep
More otomo skills
skills: Part breaker, charge master
Demon Ammo, Armor Ammo
weapon skills - Arc Shot: Affinity, Arc Shot: Brace
endemic_life_buffs: Red, Yellow Lampsquid
Add duration detection to skills
Add duration detection to otomo moves
Add duration detection to dango skills
Add duration detection to rampage skills
Add duration detection to endemic life buffs
]]
local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager");
@@ -173,6 +193,7 @@ function this.update()
consumables.update(master_player_data);
otomo_moves.update(master_player_data);
rampage_skills.update(master_player_data);
if not is_player_lobby_base then
skills.update(master_player, master_player_data, weapon_type);
@@ -183,19 +204,20 @@ function this.update()
misc_buffs.update(master_player, master_player_data);
end
-- local tbl = {
-- "_IsEnable_KitchenSkill048_Reduce",
-- "_KitchenSkill_Insurance_DefUp_Lv3",
-- "_KitchenSkill_Insurance_DefUp_Lv4",
-- "_KitchenSkill051_AtkUpTimer",
-- "_KitchenSkill051_AtkUp",
-- "_KitchenSkill054_Timer",
-- "_KitchenSkill054_DefUp",
-- };
-- xy = "";
-- for _, key in ipairs(tbl) do
-- xy = string.format("%s%s: %s\n", xy, key, tostring(master_player_data:get_field(key)));
-- local fields = sdk.find_type_definition("snow.player.PlayerData"):get_fields();
-- for i = 1, 999 do
-- if fields[i] ~= nil then
-- local value = fields[i]:get_data(master_player_data);
-- if value ~= nil then
-- pcall(function()
-- if not utils.number.is_equal(value, 0) then
-- xy = string.format("%s%s: %s\n", xy, fields[i]:get_name(), tostring(value));
-- end
-- end);
-- end
-- end
-- end
end
@@ -355,6 +377,7 @@ function this.init_dependencies()
abnormal_statuses = require("MHR_Overlay.Buffs.abnormal_statuses");
otomo_moves = require("MHR_Overlay.Buffs.otomo_moves");
weapon_skills = require("MHR_Overlay.Buffs.weapon_skills");
rampage_skills = require("MHR_Overlay.Buffs.rampage_skills");
misc_buffs = require("MHR_Overlay.Buffs.misc_buffs");
end

View File

@@ -47,12 +47,12 @@ this.list = {
mega_demondrug = nil,
armorskin = nil,
mega_armorskin = nil,
might_seed = nil,
adamant_seed = nil,
-- might_seed = nil,
-- adamant_seed = nil,
demon_powder = nil,
hardshell_powder = nil,
immunizer = nil,
dash_juice = nil,
-- dash_juice = nil,
gourmet_fish = nil,
};
@@ -61,12 +61,12 @@ local consumable_ids = {
mega_demondrug = 68157918,
armorskin = 68157922,
mega_armorskin = 68157923,
might_seed = 68157919,
adamant_seed = 68157924,
--might_seed = 68157919,
--adamant_seed = 68157924,
demon_powder = 68157920,
hardshell_powder = 68157925,
immunizer = 68157911,
dash_juice = 68157913,
--dash_juice = 68157913,
gourmet_fish = 68157909
}
@@ -98,12 +98,6 @@ local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
local atk_up_alive_field = player_data_type_def:get_field("_AtkUpAlive");
-- Armorskin/Mega Armorskin
local def_up_alive_field = player_data_type_def:get_field("_DefUpAlive");
-- Might Seed
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");
-- Adamant Seed
local def_up_buff_second_field = player_data_type_def:get_field("_DefUpBuffSecond");
local def_up_buff_second_timer_field = player_data_type_def:get_field("_DefUpBuffSecondTimer");
-- Demon Powder
local atk_up_item_second_field = player_data_type_def:get_field("_AtkUpItemSecond");
local atk_up_item_second_timer_field = player_data_type_def:get_field("_AtkUpItemSecondTimer");
@@ -112,8 +106,6 @@ local def_up_item_second_field = player_data_type_def:get_field("_DefUpItemSecon
local def_up_item_second_timer_field = player_data_type_def:get_field("_DefUpItemSecondTimer");
-- Immunizer
local vitalizer_timer_field = player_data_type_def:get_field("_VitalizerTimer");
-- Dash Juice
local stamina_up_buff_second_timer_field = player_data_type_def:get_field("_StaminaUpBuffSecondTimer");
-- Gourmet Fish
local fish_regene_enable_field = player_data_type_def:get_field("_FishRegeneEnableTimer");
@@ -131,11 +123,6 @@ function this.update(player_data)
this.update_demondrug(player_data, item_parameter);
this.update_armorskin(player_data, item_parameter);
this.update_might_seed(player_data, item_parameter);
this.update_dash_juice(player_data, item_parameter);
buffs.update_generic_buff(this.list, consumables_type_name, "adamant_seed", this.get_consumable_name,
player_data, def_up_buff_second_field, player_data, def_up_buff_second_timer_field, item_parameter, adamant_seed_timer_field);
buffs.update_generic_buff(this.list, consumables_type_name, "demon_powder", this.get_consumable_name,
player_data, atk_up_item_second_field, player_data, atk_up_item_second_timer_field, item_parameter, demondrug_powder_timer_field);
@@ -226,60 +213,6 @@ function this.update_armorskin(player_data, item_parameter)
buffs.update_generic(this.list, consumables_type_name, consumable_key, this.get_consumable_name);
end
function this.update_might_seed(player_data, item_parameter)
local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data);
if atk_up_buff_second == nil then
error_handler.report("consumables.update_might_seed", "Failed to access Data: atk_up_buff_second");
return;
end
local might_seed_atk_up = might_seed_atk_up_field:get_data(item_parameter);
if might_seed_atk_up == nil then
error_handler.report("consumables.update_might_seed", "Failed to access Data: might_seed_atk_up");
return;
end
if atk_up_buff_second ~= might_seed_atk_up then
this.list.might_seed = nil;
return;
end
this.update_generic_buff(this.list, consumables_type_name, "might_seed", this.get_consumable_name,
nil, nil, player_data, atk_up_buff_second_timer_field, item_parameter, might_seed_timer_field);
end
function this.update_dash_juice(player_data, item_parameter)
local stamina_up_buff_second_timer = stamina_up_buff_second_timer_field:get_data(player_data);
if stamina_up_buff_second_timer == nil then
error_handler.report("consumables.update_dash_juice", "Failed to access Data: stamina_up_buff_second_timer");
return;
end
local stamina_up_buff_second = stamina_up_buff_second_field:get_data(item_parameter);
if stamina_up_buff_second == nil then
error_handler.report("consumables.update_dash_juice", "Failed to access Data: stamina_up_buff_second");
return;
end
if utils.number.is_equal(stamina_up_buff_second_timer, 0) then
this.list.dash_juice = nil;
return;
end
local timer = stamina_up_buff_second_timer / 60;
local dash_juice_consumable = this.list.dash_juice;
if dash_juice_consumable == nil
or (dash_juice_consumable ~= nil and timer > dash_juice_consumable.timer) then
if timer <= endemic_life_buffs.peepersects_duration + 0.1 then
this.list.dash_juice = nil;
return;
end
end
buffs.update_generic(this.list, consumables_type_name, "dash_juice", this.get_consumable_name, 1, timer, stamina_up_buff_second);
end
function this.get_consumable_name(consumable_key)
local consumable_name = get_name_method:call(nil, consumable_ids[consumable_key]);
if consumable_name == nil then

View File

@@ -44,7 +44,6 @@ local package = package;
this.list = {
dango_adrenaline = nil,
dango_booster = nil,
dango_bulker = nil,
dango_insurance = nil,
dango_insurance_defense_up = nil,
dango_glutton = nil,
@@ -56,60 +55,60 @@ this.list = {
};
local dango_ids = {
dango_polisher = 1,
dango_rider = 2,
-- dango_polisher = 1,
-- dango_rider = 2,
dango_adrenaline = 3,
dango_carver_lo = 4,
dango_carver_hi = 5,
dango_medic_lo = 6,
dango_medic_hi = 7,
dango_fighter = 8,
dango_pyro = 9,
dango_specialist = 10,
dango_defender_lo = 11,
dango_defender_hi = 12,
dango_harvester = 13,
dango_marksman = 14,
dango_fortune_caller = 15,
dango_miracle_worker = 16,
dango_deflector = 17,
dango_weakener = 18,
dango_calculator = 19,
dango_temper = 20,
dango_wall_runner = 21,
dango_slugger = 22,
dango_money_maker = 23,
dango_bombardier = 24,
dango_moxie = 25,
dango_immunizer = 26,
dango_trainer = 27,
-- dango_carver_lo = 4,
-- dango_carver_hi = 5,
-- dango_medic_lo = 6,
-- dango_medic_hi = 7,
-- dango_fighter = 8,
-- dango_pyro = 9,
-- dango_specialist = 10,
-- dango_defender_lo = 11,
-- dango_defender_hi = 12,
-- dango_harvester = 13,
-- dango_marksman = 14,
-- dango_fortune_caller = 15,
-- dango_miracle_worker = 16,
-- dango_deflector = 17,
-- dango_weakener = 18,
-- dango_calculator = 19,
-- dango_temper = 20,
-- dango_wall_runner = 21,
-- dango_slugger = 22,
-- dango_money_maker = 23,
-- dango_bombardier = 24,
-- dango_moxie = 25,
-- dango_immunizer = 26,
-- dango_trainer = 27,
dango_booster = 28,
dango_feet = 29,
dango_bulker = 30,
-- dango_feet = 29,
-- dango_bulker = 30,
dango_insurance = 31,
dango_reviver = 32,
dango_summoner = 33,
dango_hurler = 34,
dango_fire_res_lo = 35,
dango_fire_res_hi = 36,
dango_water_res_lo = 37,
dango_water_res_hi = 38,
dango_thunder_res_lo = 39,
dango_thunder_res_hi = 40,
dango_ice_res_lo = 41,
dango_ice_res_hi = 42,
dango_dragon_res_lo = 43,
dango_dragon_res_hi = 44,
dango_gatherer = 45,
-- dango_reviver = 32,
-- dango_summoner = 33,
-- dango_hurler = 34,
-- dango_fire_res_lo = 35,
-- dango_fire_res_hi = 36,
-- dango_water_res_lo = 37,
-- dango_water_res_hi = 38,
-- dango_thunder_res_lo = 39,
-- dango_thunder_res_hi = 40,
-- dango_ice_res_lo = 41,
-- dango_ice_res_hi = 42,
-- dango_dragon_res_lo = 43,
-- dango_dragon_res_hi = 44,
-- dango_gatherer = 45,
dango_glutton = 46,
dango_bird_caller = 47,
-- dango_bird_caller = 47,
dango_flyer = 48,
dango_defender = 49,
enhanced_dango_fighter = 50,
dango_driver = 51,
-- enhanced_dango_fighter = 50,
-- dango_driver = 51,
dango_hunter = 52,
dango_guard = 53,
dango_shifter = 54,
-- dango_guard = 53,
-- dango_shifter = 54,
dango_connector = 55,
super_recovery_dango = 56
};
@@ -136,9 +135,6 @@ local is_enable_kitchen_skill_048_reduce_method = player_data_type_def:get_field
local kitchen_skill_027_timer_field = player_data_type_def:get_field("_KitchenSkill027Timer");
-- Dango Glutton
local kitchen_skill_045_timer_field = player_data_type_def:get_field("_KitchenSkill045Timer");
-- 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");
@@ -182,7 +178,6 @@ function this.update(player, player_data)
end
this.update_dango_adrenaline();
this.update_dango_bulker(player_data);
this.update_dango_hunter(player_data);
this.update_dango_insurance();
this.update_dango_insurance_defense_up(player_data);
@@ -211,21 +206,6 @@ function this.update_dango_adrenaline()
buffs.update_generic(this.list, dango_skills_type_name, "dango_adrenaline", this.get_dango_name);
end
function this.update_dango_bulker(player_data)
local atk_up_buff_second = atk_up_buff_second_field:get_data(player_data);
if atk_up_buff_second == nil then
error_handler.report("consumables.update_dango_bulker", "Failed to access Data: atk_up_buff_second");
return;
end
if atk_up_buff_second ~= dango_bulker_attack_up then
this.list.dango_bulker = nil;
return;
end
buffs.update_generic_buff(this.list, dango_skills_type_name, "dango_bulker", this.get_dango_name, nil, nil, player_data, atk_up_buff_second_timer_field);
end
function this.update_dango_insurance()
if singletons.player_manager == nil then
error_handler.report("consumables.update_dango_insurance", "Failed to access Data: player_manager");

View File

@@ -44,8 +44,11 @@ local ValueType = ValueType;
local package = package;
this.list = {
cutterfly = nil,
clothfly = nil,
stinkmink = nil,
butterflame = nil,
-- peepersects = nil,
cutterfly = nil,
ruby_wirebug = nil,
gold_wirebug = nil
};
@@ -75,8 +78,8 @@ local wirebug_powerup_timer_field = player_data_type_def:get_field("_WireBugPowe
-- Butterflame
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");
-- Peepersects
local stamina_up_buff_second_timer_field = player_data_type_def:get_field("_StaminaUpBuffSecondTimer");
-- Stinkmink
local lead_enemy_timer_field = player_data_type_def:get_field("_LeadEnemyTimer");
local player_quest_base_type_def = sdk.find_type_definition("snow.player.PlayerQuestBase");
-- Ruby/Gold Wirebugs
@@ -88,13 +91,15 @@ local get_env_creature_name_message_method = message_manager_type_def:get_method
function this.update(player, player_data, item_parameter)
this.update_ruby_and_gold_wirebugs(player, player_data);
this.update_butterflame(player_data);
this.update_peepersects(player_data);
buffs.update_generic_buff(this.list, endemic_life_buffs_type_name, "cutterfly", this.get_endemic_life_name,
nil, nil, player_data, crit_up_ec_second_timer_field);
buffs.update_generic_buff(this.list, endemic_life_buffs_type_name, "clothfly", this.get_endemic_life_name,
nil, nil, player_data, def_up_buff_second_rate_timer_field);
buffs.update_generic_buff(this.list, endemic_life_buffs_type_name, "stinkmink", this.get_endemic_life_name,
nil, nil, player_data, lead_enemy_timer_field);
end
function this.update_ruby_and_gold_wirebugs(player, player_data)

View File

@@ -44,38 +44,51 @@ local ValueType = ValueType;
local package = package;
this.list = {
attack_up = nil,
defense_up = nil,
stamina_use_down = nil,
};
local misc_buffs_type_name = "misc_buffs";
-- Attack Up
-- Might Seed +10 3min
-- Dango Bulker + 15 30sec
-- Chameleos Souls +15 30sec
-- Defense Up
-- Adamant Seed +20 3min
-- Chameleos Souls +20 30sec
-- Stamina Use Down
-- Dash Juice 3min
-- Peepersects 1.5min
-- Chameleos Soul 30sec
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Dash Juice/Peepersects
-- Attack Up
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");
-- Defense Up
local def_up_buff_second_field = player_data_type_def:get_field("_DefUpBuffSecond");
local def_up_buff_second_timer_field = player_data_type_def:get_field("_DefUpBuffSecondTimer");
-- Stamina Use Down
local stamina_up_buff_second_timer_field = player_data_type_def:get_field("_StaminaUpBuffSecondTimer");
-- Immunity
local debuff_prevention_timer_field = player_data_type_def:get_field("_DebuffPreventionTimer");
function this.update(player, player_data)
this.update_stamina_use_down(player_data);
end
buffs.update_generic_buff(this.list, misc_buffs_type_name, "stamina_use_down", this.get_misc_buff_name,
nil, nil, player_data, stamina_up_buff_second_timer_field);
function this.update_stamina_use_down(player_data)
if consumables.list.dash_juice ~= nil or endemic_life_buffs.list.peepersects ~= nil then
this.list.stamina_use_down = nil;
return;
end
buffs.update_generic_buff(this.list, misc_buffs_type_name, "attack_up", this.get_misc_buff_name,
player_data, atk_up_buff_second_field, player_data, atk_up_buff_second_timer_field);
local stamina_up_buff_second_timer = stamina_up_buff_second_timer_field:get_data(player_data);
if stamina_up_buff_second_timer == nil then
error_handler.report("consumables.update_stamina_use_down", "Failed to access Data: stamina_up_buff_second_timer");
return;
end
buffs.update_generic_buff(this.list, misc_buffs_type_name, "defense_up", this.get_misc_buff_name,
player_data, def_up_buff_second_field, player_data, def_up_buff_second_timer_field);
if utils.number.is_equal(stamina_up_buff_second_timer, 0) then
this.list.stamina_use_down = nil;
return;
end
buffs.update_generic(this.list, misc_buffs_type_name, "stamina_use_down", this.get_misc_buff_name, 1,
stamina_up_buff_second_timer / 60, endemic_life_buffs.peepersects_duration);
buffs.update_generic_buff(this.list, misc_buffs_type_name, "immunity", this.get_misc_buff_name,
nil, nil, player_data, debuff_prevention_timer_field);
end
function this.init_names()

View File

@@ -0,0 +1,160 @@
local this = {};
local buffs;
local buff_UI_entity;
local config;
local singletons;
local players;
local utils;
local language;
local error_handler;
local env_creature;
local player_info;
local time;
local abnormal_statuses;
local sdk = sdk;
local tostring = tostring;
local pairs = pairs;
local ipairs = ipairs;
local tonumber = tonumber;
local require = require;
local pcall = pcall;
local table = table;
local string = string;
local Vector3f = Vector3f;
local d2d = d2d;
local math = math;
local json = json;
local log = log;
local fs = fs;
local next = next;
local skills_type_name = type;
local setmetatable = setmetatable;
local getmetatable = getmetatable;
local assert = assert;
local select = select;
local coroutine = coroutine;
local utf8 = utf8;
local re = re;
local imgui = imgui;
local draw = draw;
local Vector2f = Vector2f;
local reframework = reframework;
local os = os;
local ValueType = ValueType;
local package = package;
this.list = {
burst = nil,
kushala_daora_soul = nil,
intrepid_heart = nil,
dereliction = nil,
latent_power = nil,
protective_polish = nil,
wind_mantle = nil,
grinder_s = nil,
counterstrike = nil,
affinity_sliding = nil,
coalescence = nil,
adrenaline_rush = nil,
wall_runner = nil,
offensive_guard = nil,
hellfire_cloak = nil,
agitator = nil,
furious = nil,
status_trigger = nil,
heaven_sent = nil,
heroics = nil,
resuscitate = nil,
maximum_might = nil,
bloodlust = nil,
frenzied_bloodlust = nil,
peak_performance = nil,
dragonheart = nil,
resentment = nil,
bladescale_hone = nil,
spiribirds_call = nil,
embolden = nil,
berserk = nil,
powder_mantle_red = nil,
powder_mantle_blue = nil,
strife = nil,
inspiration = nil,
blood_awakening = nil
};
local rampage_skills_type_name = "rampage_skills";
local rampage_skill_ids = {
chameleos_soul = 250,
kushala_daora_soul = 251,
};
local kushara_daora_soul_breakpoint = 5;
local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager");
local get_player_data_method = player_manager_type_def:get_method("get_PlayerData");
local get_ref_item_parameter_method = player_manager_type_def:get_method("get_RefItemParameter");
local player_user_data_item_parameter_type_def = get_ref_item_parameter_method:get_return_type();
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Kushala Daora Soul
local hyakuryu_dragon_power_up_count_field = player_data_type_def:get_field("_HyakuryuDragonPowerUpCnt");
local hyakuryu_dragon_power_up_timer_field = player_data_type_def:get_field("_HyakuryuDragonPowerUpTimer");
-- Chameleos Soul
local hyakuryu_onazuti_power_up_interval_field = player_data_type_def:get_field("_HyakuryuHyakuryuOnazutiPowerUpInterval");
local data_shortcut_type_def = sdk.find_type_definition("snow.data.DataShortcut");
local get_name_method = data_shortcut_type_def:get_method("getName(snow.data.DataDef.PlHyakuryuSkillId)");
function this.update(player_data)
--local item_parameter = get_ref_item_parameter_method:call(singletons.player_manager);
--if item_parameter == nil then
-- error_handler.report("skills.update", "Failed to access Data: item_parameter");
-- return;
--end
buffs.update_generic_buff(this.list, rampage_skills_type_name, "kushala_daora_soul", this.get_skill_name,
player_data, hyakuryu_dragon_power_up_count_field, player_data, hyakuryu_dragon_power_up_timer_field, nil, nil, false, nil, {kushara_daora_soul_breakpoint});
buffs.update_generic_buff(this.list, rampage_skills_type_name, "chameleos_soul", this.get_skill_name,
nil, nil, player_data, hyakuryu_onazuti_power_up_interval_field);
end
function this.init_names()
for rampage_skill_key, skill in pairs(this.list) do
skill.name = this.get_skill_name(rampage_skill_key);
end
end
function this.get_skill_name(rampage_skill_key)
local rampage_skill_name = get_name_method:call(nil, rampage_skill_ids[rampage_skill_key]);
if rampage_skill_name == nil then
error_handler.report("skills.get_skill_name", string.format("Failed to access Data: %s_name", rampage_skill_key));
return rampage_skill_key;
end
return rampage_skill_name;
end
function this.init_dependencies()
buffs = require("MHR_Overlay.Buffs.buffs");
config = require("MHR_Overlay.Misc.config");
utils = require("MHR_Overlay.Misc.utils");
buff_UI_entity = require("MHR_Overlay.UI.UI_Entities.buff_UI_entity");
singletons = require("MHR_Overlay.Game_Handler.singletons");
players = require("MHR_Overlay.Damage_Meter.players");
language = require("MHR_Overlay.Misc.language");
error_handler = require("MHR_Overlay.Misc.error_handler");
env_creature = require("MHR_Overlay.Endemic_Life.env_creature");
player_info = require("MHR_Overlay.Misc.player_info");
time = require("MHR_Overlay.Game_Handler.time");
abnormal_statuses = require("MHR_Overlay.Buffs.abnormal_statuses");
end
function this.init_module()
end
return this;

View File

@@ -47,7 +47,6 @@ local package = package;
this.list = {
burst = nil,
kushala_daora_soul = nil,
intrepid_heart = nil,
dereliction = nil,
latent_power = nil,
@@ -74,7 +73,14 @@ this.list = {
dragonheart = nil,
resentment = nil,
bladescale_hone = nil,
spiribirds_call = nil
spiribirds_call = nil,
embolden = nil,
berserk = nil,
powder_mantle_red = nil,
powder_mantle_blue = nil,
strife = nil,
inspiration = nil,
blood_awakening = nil
};
local skills_type_name = "skills";
@@ -200,7 +206,7 @@ local skill_data_list = {
-- defiance = { id = 118 },
-- sneak_attack = { id = 119 },
adrenaline_rush = { id = 120 },
-- embolden = { id = 121 },
embolden = { id = 121 },
-- redirection = { id = 122 },
spiribirds_call = { id = 123 },
-- charge_master = { id = 124 },
@@ -216,35 +222,27 @@ local skill_data_list = {
status_trigger = { id = 134 },
intrepid_heart = { id = 135 },
-- buildup_boost = { id = 136 },
-- berserk = { id = 137 },
berserk = { id = 137 },
wind_mantle = { id = 138 },
-- powder_mantle = { id = 139 },
-- frostcraft = { id = 140 },
-- dragon_conversion = { id = 141 },
heaven_sent = { id = 142 },
frenzied_bloodlust = { id = 143 },
-- blood_awakening = { id = 144 },
-- strife = { id = 145 },
blood_awakening = { id = 144 },
strife = { id = 145, level = 0, is_equipped = false },
-- shock_absorber = { id = 146 },
-- inspiration = { id = 147 },
inspiration = { id = 147 },
}
local burst_breakpoints = {5};
local kushara_daora_soul_breakpoint = 5;
local intrepid_heart_minimal_value = 400;
local dereliction_breakpoints = {100, 50};
local maximum_might_delay_timer = nil;
local maximum_might_previous_timer_value = 0;
local frenzied_bloodlust_duration = 0;
local frenzied_bloodlust_sheathed_duration = 0;
local dragonheart_breakpoints = {0.5, 0.5, 0.7, 0.7, 0.8};
local spiribirds_call_duration = 60;
local wind_mantle_duration = 15;
local burst_breakpoints = { 5 };
local dereliction_breakpoints = { 100, 50 };
local dragonheart_breakpoints = { 0.5, 0.5, 0.7, 0.7, 0.8 };
local strife_breakpoints = { { 10 }, { 15 }, { 20 } };
local blood_awakening_breakpoints = { 2 };
local wind_mantle_breakpoints = { 20, 10 }; -- Sword & Shield, Lance, Hammer, Switch Axe, Insect Glaive, Long Sword, Hunting Horn
local wind_mantle_special_breakpoints = {
[0] = { 10, 5 }, -- Great Sword
@@ -254,7 +252,17 @@ local wind_mantle_special_breakpoints = {
[9] = { 40, 20 }, -- Dual Blades
[11] = { 30, 15 }, -- Charge Blade
[13] = { 60, 30 }, -- Bow
}
};
local maximum_might_delay_timer = nil;
local maximum_might_previous_timer_value = 0;
local frenzied_bloodlust_duration = 0;
local frenzied_bloodlust_sheathed_duration = 0;
local spiribirds_call_duration = 60;
local wind_mantle_duration = 15;
local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager");
local get_player_data_method = player_manager_type_def:get_method("get_PlayerData");
@@ -266,9 +274,6 @@ local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Burst
local rengeki_power_up_count_field = player_data_type_def:get_field("_RengekiPowerUpCnt");
local rengeki_power_up_timer_field = player_data_type_def:get_field("_RengekiPowerUpTimer");
-- Kushala Daora Soul
local hyakuryu_dragon_power_up_count_field = player_data_type_def:get_field("_HyakuryuDragonPowerUpCnt");
local hyakuryu_dragon_power_up_timer_field = player_data_type_def:get_field("_HyakuryuDragonPowerUpTimer");
-- Intrepid Heart
local equip_skill_223_accumulator_field = player_data_type_def:get_field("_EquipSkill223Accumulator");
-- Derelection
@@ -304,6 +309,13 @@ local r_vital_field = player_data_type_def:get_field("_r_Vital");
local equip_skill_222_timer_field = player_data_type_def:get_field("_EquipSkill222_Timer");
-- Spiritbird's Call
local equip_skill_211_timer_field = player_data_type_def:get_field("_EquipSkill211_Timer");
-- Powder Mantle
local equip_skill_227_state_field = player_data_type_def:get_field("_EquipSkill227State");
local equip_skill_227_state_timer_field = player_data_type_def:get_field("_EquipSkill227StateTimer");
-- Inspiration
local equip_skill_235_atk_up_second_timer_field = player_data_type_def:get_field("_EquipSkill235AtkUpSecondTimer");
-- Blood Awakening
local equip_skill_232_timer_field = player_data_type_def:get_field("_EquipSkill232Timer");
@@ -317,6 +329,10 @@ local power_freedom_timer_field = player_base_type_def:get_field("_PowerFreedomT
local sharpness_gauge_boost_timer_field = player_base_type_def:get_field("_SharpnessGaugeBoostTimer");
-- Heroics
local is_predicament_power_up_method = player_base_type_def:get_method("isPredicamentPowerUp");
-- Berserk
local get_is_enable_equip_skill_225_method = player_base_type_def:get_method("get_IsEnableEquipSkill225");
-- Dragon Conversion
local equip_skill_229_sum_resist_field = player_base_type_def:get_field("_EquipSkill229SumResist");
-- Resuscitate
local is_debuff_state_method = player_base_type_def:get_method("isDebuffState");
@@ -326,14 +342,30 @@ local get_skill_data_method = player_skill_list_type_def:get_method("getSkillDat
local skill_data_type_def = get_skill_data_method:get_return_type();
local skill_lv_field = skill_data_type_def:get_field("SkillLv");
local player_quest_base_type_def = sdk.find_type_definition("snow.player.PlayerQuestBase");
-- Wind Mantle
local is_equip_skill_226_enable_field = player_quest_base_type_def:get_field("_IsEquipSkill226Enable");
local equip_skill_226_attack_count_field = player_quest_base_type_def:get_field("_EquipSkill226AttackCount");
local equip_skill_226_attack_off_timer_field = player_quest_base_type_def:get_field("_EquipSkill226AttackOffTimer");
-- Heaven-Sent
local is_active_equip_skill_230_method = player_quest_base_type_def:get_method("isActiveEquipSkill230");
-- Frenzied Bloodlust
local get_hunter_wire_skill_231_num_method = player_quest_base_type_def:get_method("get_HunterWireSkill231Num");
-- Embolden
local get_active_equip_209_method = player_quest_base_type_def:get_method("getActiveEquipSkill209");
-- Dragon Conversion
local equip_skill_229_use_up_flag_field = player_quest_base_type_def:get_field("_EquipSkill229UseUpFlg");
-- Strife
local get_affinity_equip_skill_233_method = player_quest_base_type_def:get_method("getAffinityEquipSkill233");
-- Blood Awakening
local get_equip_skill_232_lv_method = player_quest_base_type_def:get_method("getEquipSkill232Lv");
local get_equip_skill_232_param_method = player_quest_base_type_def:get_method("getEquipSkill232Param");
local equip_skill_232_param_type_def = get_equip_skill_232_param_method:get_return_type();
local activation_time_lv_1_field = equip_skill_232_param_type_def:get_field("_ActivationTime_Lv1");
local activation_time_lv_2_field = equip_skill_232_param_type_def:get_field("_ActivationTime_Lv2");
local bow_type_def = sdk.find_type_definition("snow.player.Bow");
local _equip_skill_216_bottle_up_timer_field = bow_type_def:get_field("_EquipSkill216_BottleUpTimer");
@@ -359,6 +391,8 @@ function this.update(player, player_data, weapon_type)
this.update_resentment(player_data);
this.update_bladescale_hone(player, weapon_type);
this.update_spiribirds_call(player_data);
this.update_powder_mantle(player_data);
this.update_blood_awakening(player, player_data);
this.update_generic_skill("dereliction", player_data, symbiosis_skill_lost_vital_field,
nil, nil, nil, nil, true, nil, dereliction_breakpoints);
@@ -366,9 +400,6 @@ function this.update(player, player_data, weapon_type)
this.update_generic_skill("burst", player_data, rengeki_power_up_count_field,
player_data, rengeki_power_up_timer_field, nil, nil, false, nil, burst_breakpoints);
this.update_generic_skill("kushala_daora_soul", player_data, hyakuryu_dragon_power_up_count_field,
player_data, hyakuryu_dragon_power_up_timer_field, nil, nil, false, nil, {kushara_daora_soul_breakpoint});
this.update_generic_skill("intrepid_heart", player_data, equip_skill_223_accumulator_field,
nil, nil, nil, nil, true, intrepid_heart_minimal_value);
@@ -382,14 +413,21 @@ function this.update(player, player_data, weapon_type)
this.update_generic_skill("wall_runner", nil, nil, player_data, wall_run_powerup_timer_field);
this.update_generic_skill("offensive_guard", nil, nil, player_data, equip_skill_036_timer_field);
this.update_generic_skill("hellfire_cloak", nil, nil, player_data, onibi_powerup_timer_field);
this.update_generic_skill("agitator", nil, nil, player_data, challenge_timer_field, true);
this.update_generic_skill("agitator", nil, nil, player_data, challenge_timer_field, nil, nil, true);
this.update_generic_skill("furious", nil, nil, player_data, furious_skill_stamina_buff_second_timer_field);
this.update_generic_skill("status_trigger", nil, nil, player_data, equip_skill_222_timer_field);
this.update_generic_skill("inspiration", nil, nil, player_data, equip_skill_235_atk_up_second_timer_field);
this.update_generic_skill("heaven_sent", player, is_active_equip_skill_230_method);
this.update_generic_skill("heroics", player, is_predicament_power_up_method);
this.update_generic_skill("resuscitate", player, is_debuff_state_method);
this.update_generic_skill("embolden", player, get_active_equip_209_method);
this.update_generic_skill("berserk", player, get_is_enable_equip_skill_225_method);
this.update_generic_skill("dragon_conversion_elemental_attack_up", player, equip_skill_229_sum_resist_field);
this.update_generic_skill("dragon_conversion_elemental_res_up", player, equip_skill_229_use_up_flag_field);
this.update_generic_skill("strife", player, get_affinity_equip_skill_233_method,
nil, nil, nil, nil, nil, nil, strife_breakpoints[skill_data_list.strife.level]);
end
function this.update_generic_skill(skill_key, value_owner, value_holder, timer_owner, timer_holder, duration_owner, duration_holder,
@@ -444,17 +482,23 @@ function this.update_equipped_skill_data(player)
end
function this.update_wind_mantle(player, weapon_type)
local wind_mantle_timer = equip_skill_226_attack_off_timer_field:get_data(player);
if wind_mantle_timer == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: wind_mantle_timer");
local is_wind_mantle_enable = is_equip_skill_226_enable_field:get_data(player);
if is_wind_mantle_enable == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: is_wind_mantle_enable");
return;
end
if utils.number.is_equal(wind_mantle_timer, 0) then
if not is_wind_mantle_enable then
this.list.wind_mantle = nil;
return;
end
local wind_mantle_timer = equip_skill_226_attack_off_timer_field:get_data(player);
if wind_mantle_timer == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: wind_mantle_timer");
return;
end
local wind_mantle_value = equip_skill_226_attack_count_field:get_data(player);
if wind_mantle_value == nil then
error_handler.report("skills.update_wind_mantle", "Failed to access Data: wind_mantle_value");
@@ -685,6 +729,42 @@ function this.update_spiribirds_call(player_data)
buffs.update_generic(this.list, skills_type_name, "spiribirds_call", this.get_skill_name, 1, timer, spiribirds_call_duration);
end
function this.update_powder_mantle(player_data)
this.update_generic_skill("powder_mantle_blue", player_data, equip_skill_227_state_field,
player_data, equip_skill_227_state_timer_field, nil, nil, nil, 2);
if this.list.powder_mantle_blue ~= nil then
this.list.powder_mantle_red = nil;
return;
end
this.update_generic_skill("powder_mantle_red", player_data, equip_skill_227_state_field,
player_data, equip_skill_227_state_timer_field, nil, nil, nil);
end
function this.update_blood_awakening(player, player_data)
this.update_generic_skill("blood_awakening", player, get_equip_skill_232_lv_method,
player_data, equip_skill_232_timer_field,
nil, nil,
nil, nil, blood_awakening_breakpoints);
local blood_awakening = this.list.blood_awakening;
if this.list.blood_awakening == nil then
return;
end
local activation_time_field = activation_time_lv_1_field;
if blood_awakening.level == 2 then
activation_time_field = activation_time_lv_2_field;
end
local blood_awakening_param = get_equip_skill_232_param_method:call(player);
local blood_awakening_duration = activation_time_field:get_data(blood_awakening_param);
blood_awakening.duration = blood_awakening_duration / 60;
end
function this.init_names()
for skill_key, skill in pairs(this.list) do
skill.name = this.get_skill_name(skill_key);

View File

@@ -43,6 +43,7 @@ this.list = {};
this.creature_ids = {
clothfly = 7,
stinkmink = 23,
butterflame = 28,
peepersects = 29,
cutterfly = 50,

View File

@@ -204,6 +204,7 @@ this.default_language = {
defense_down = "Defense Down",
resistance_down = "Resistance Down",
falling_asleep = "Falling Asleep",
tremor = "Tremor",
roar = "Roar",
webbed = "Webbed",
@@ -222,7 +223,10 @@ this.default_language = {
},
skills = {
kushala_daora_soul = "Kushala Daora Soul"
powder_mantle_red = "Powder Mantle (Red)",
powder_mantle_blue = "Powder Mantle (Blue)",
dragon_conversion_elemental_attack_up = "Dragon Conversion Elem. Atk Up",
dragon_conversion_elemental_res_up = "Dragon Conversion Elem. Res Up",
},
weapon_skills = {
@@ -277,7 +281,10 @@ this.default_language = {
},
misc_buffs = {
stamina_use_down = "Stamina Use Down"
attack_up = "Attack Up",
defense_up = "Defense Up",
stamina_use_down = "Stamina Use Down",
immunity = "Immunity"
},
UI = {

View File

@@ -15,6 +15,7 @@ local abnormal_statuses;
local otomo_moves;
local weapon_skills;
local misc_buffs;
local rampage_skills;
local sdk = sdk;
local tostring = tostring;
@@ -137,16 +138,27 @@ function this.update()
::continue8::
end
for key, rampage_skill in pairs(rampage_skills.list) do
if not rampage_skill.is_active then
goto continue9;
end
table.insert(_displayed_buffs, rampage_skill);
::continue9::
end
for key, misc_buffs in pairs(misc_buffs.list) do
if not misc_buffs.is_active then
goto continue9;
goto continue10;
end
table.insert(_displayed_buffs, misc_buffs);
::continue9::
::continue10::
end
displayed_buffs = this.sort_buffs(_displayed_buffs, cached_config);
end
@@ -232,6 +244,7 @@ function this.init_dependencies()
otomo_moves = require("MHR_Overlay.Buffs.otomo_moves");
weapon_skills = require("MHR_Overlay.Buffs.weapon_skills");
misc_buffs = require("MHR_Overlay.Buffs.misc_buffs");
rampage_skills = require("MHR_Overlay.Buffs.rampage_skills");
end
function this.init_module()

View File

@@ -30,6 +30,7 @@
"exhaust": "Exhaust",
"fall_otomo_trap": "Fall Buddy Trap",
"fall_trap": "Fall Trap",
"falling_asleep": "Falling Asleep",
"fireblight": "Fireblight",
"flash": "Flash",
"frenzy": "Frenzy",
@@ -368,6 +369,9 @@
},
"font_name": "",
"misc_buffs": {
"attack_up": "Attack Up",
"defense_up": "Defense Up",
"immunity": "Immunity",
"stamina_use_down": "Stamina Use Down"
},
"parts": {
@@ -440,7 +444,11 @@
"wings": "Wings"
},
"skills": {
"kushala_daora_soul": "Kushala Daora Soul"
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Atk Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res Up",
"kushala_daora_soul": "Kushala Daora Soul",
"powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)"
},
"stats": {
"affinity": "Affinity",

View File

@@ -31,6 +31,7 @@
"exhaust": "疲労",
"fall_otomo_trap": "オトモ落とし穴",
"fall_trap": "落とし穴",
"falling_asleep": "Falling Asleep",
"fireblight": "火属性やられ",
"flash": "目くらまし",
"frenzy": "Frenzy",
@@ -458,6 +459,10 @@
"wind_pressure_negated": "Wind Pressure Negated"
},
"misc_buffs": {
"attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up",
"immunity": "Immunity",
"stamina_use_down": "Stamina Use Down"
},
"otomo_moves": {
@@ -544,6 +549,8 @@
"coalescence": "Coalescence",
"counterstrike": "Counterstrike",
"dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up",
"dragonheart": "Dragonheart",
"frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious",
@@ -557,6 +564,8 @@
"maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard",
"peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)",
"protective_polish": "Protective Polish",
"resentment": "Resentment",
"resuscitate": "Resuscitate",

View File

@@ -31,6 +31,7 @@
"exhaust": "탈진",
"fall_otomo_trap": "동반자 구멍 함정",
"fall_trap": "구멍 함정",
"falling_asleep": "Falling Asleep",
"fireblight": "불바위구리",
"flash": "섬광",
"frenzy": "Frenzy",
@@ -459,6 +460,10 @@
"wind_pressure_negated": "Wind Pressure Negated"
},
"misc_buffs": {
"attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up",
"immunity": "Immunity",
"stamina_use_down": "Stamina Use Down"
},
"otomo_moves": {
@@ -545,6 +550,8 @@
"coalescence": "Coalescence",
"counterstrike": "Counterstrike",
"dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up",
"dragonheart": "Dragonheart",
"frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious",
@@ -558,6 +565,8 @@
"maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard",
"peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)",
"protective_polish": "Protective Polish",
"resentment": "Resentment",
"resuscitate": "Resuscitate",

View File

@@ -31,6 +31,7 @@
"exhaust": "Усталость",
"fall_otomo_trap": "Волчья яма спутника",
"fall_trap": "Волчья яма",
"falling_asleep": "Falling Asleep",
"fireblight": "Огненная порча",
"flash": "Оглушение",
"frenzy": "Frenzy",
@@ -459,6 +460,10 @@
"wind_pressure_negated": "Wind Pressure Negated"
},
"misc_buffs": {
"attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up",
"immunity": "Immunity",
"stamina_use_down": "Stamina Use Down"
},
"otomo_moves": {
@@ -545,6 +550,8 @@
"coalescence": "Coalescence",
"counterstrike": "Counterstrike",
"dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up",
"dragonheart": "Dragonheart",
"frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious",
@@ -558,6 +565,8 @@
"maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard",
"peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)",
"protective_polish": "Protective Polish",
"resentment": "Resentment",
"resuscitate": "Resuscitate",

View File

@@ -31,6 +31,7 @@
"exhaust": "减气",
"fall_otomo_trap": "随从落穴陷阱",
"fall_trap": "落穴陷阱",
"falling_asleep": "Falling Asleep",
"fireblight": "火异常状态",
"flash": "闪光",
"frenzy": "Frenzy",
@@ -459,6 +460,10 @@
"wind_pressure_negated": "Wind Pressure Negated"
},
"misc_buffs": {
"attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up",
"immunity": "Immunity",
"stamina_use_down": "Stamina Use Down"
},
"otomo_moves": {
@@ -545,6 +550,8 @@
"coalescence": "Coalescence",
"counterstrike": "Counterstrike",
"dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up",
"dragonheart": "Dragonheart",
"frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious",
@@ -558,6 +565,8 @@
"maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard",
"peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)",
"protective_polish": "Protective Polish",
"resentment": "Resentment",
"resuscitate": "Resuscitate",

View File

@@ -31,6 +31,7 @@
"exhaust": "疲勞",
"fall_otomo_trap": "隨從地洞陷阱",
"fall_trap": "地洞陷阱",
"falling_asleep": "Falling Asleep",
"fireblight": "火屬性異常",
"flash": "失明",
"frenzy": "Frenzy",
@@ -459,6 +460,10 @@
"wind_pressure_negated": "Wind Pressure Negated"
},
"misc_buffs": {
"attack_up": "Attack Up",
"defense_down": "Defense Down",
"defense_up": "Defense Up",
"immunity": "Immunity",
"stamina_use_down": "Stamina Use Down"
},
"otomo_moves": {
@@ -545,6 +550,8 @@
"coalescence": "Coalescence",
"counterstrike": "Counterstrike",
"dereliction": "Dereliction",
"dragon_conversion_elemental_attack_up": "Dragon Conversion Elem. Attack Up",
"dragon_conversion_elemental_res_up": "Dragon Conversion Elem. Res. Up",
"dragonheart": "Dragonheart",
"frenzied_bloodlust": "Frenzied Bloodlust",
"furious": "Furious",
@@ -558,6 +565,8 @@
"maximum_might": "Maximum Might",
"offensive_guard": "Offensive Guard",
"peak_performance": "Peak Performance",
"powder_mantle_blue": "Powder Mantle (Blue)",
"powder_mantle_red": "Powder Mantle (Red)",
"protective_polish": "Protective Polish",
"resentment": "Resentment",
"resuscitate": "Resuscitate",