4 Commits

Author SHA1 Message Date
GreenComfyTea
423635400c Implement Buff Customization by Type 2023-09-30 11:03:25 +03:00
GreenComfyTea
17b89d3d7f Fix Include -> Skill Level Not Working 2023-09-30 11:02:38 +03:00
GreenComfyTea
c3d78705a3 Add Missing skill_level Translation String 2023-09-30 11:01:21 +03:00
GreenComfyTea
764b72f0ea Add buff types back 2023-09-30 10:06:04 +03:00
22 changed files with 1231 additions and 154 deletions

View File

@@ -109,6 +109,10 @@ this.keys = {
"frenzy_infection" "frenzy_infection"
}; };
this.UI = nil;
local abnormal_statuses_type_name = "abnormal_statuses";
local frenzy_infected_duration = 121; local frenzy_infected_duration = 121;
local player_quest_base_type_def = sdk.find_type_definition("snow.player.PlayerQuestBase"); local player_quest_base_type_def = sdk.find_type_definition("snow.player.PlayerQuestBase");
@@ -221,12 +225,12 @@ function this.update(player, player_data)
end end
function this.update_abnormal_status(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_abnormal_status(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.abnormal_statuses, this.get_abnormal_status_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.abnormal_statuses, this.get_abnormal_status_name,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); abnormal_statuses_type_name, key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_abnormal_status_name, key, level, timer); return buffs.update_generic(this.list, this.get_abnormal_status_name, abnormal_statuses_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -368,9 +372,15 @@ function this.update_sleep(player)
this.update_abnormal_status("sleep", nil, nil, player, sleep_duration_timer_field); this.update_abnormal_status("sleep", nil, nil, player, sleep_duration_timer_field);
end end
function this.init_all_UI()
for abnormal_status_key, abnormal_status in pairs(this.list) do
buffs.init_UI(abnormal_status);
end
end
function this.init_names() function this.init_names()
for abnormal_status_key, debuff in pairs(this.list) do for abnormal_status_key, abnormal_status in pairs(this.list) do
debuff.name = this.get_abnormal_status_name(abnormal_status_key); abnormal_status.name = this.get_abnormal_status_name(abnormal_status_key);
end end
end end

View File

@@ -64,7 +64,7 @@ local player_lobby_base_type_def = sdk.find_type_definition("snow.player.PlayerL
local player_base_type_def = sdk.find_type_definition("snow.player.PlayerBase"); local player_base_type_def = sdk.find_type_definition("snow.player.PlayerBase");
local player_weapon_type_field = player_base_type_def:get_field("_playerWeaponType"); local player_weapon_type_field = player_base_type_def:get_field("_playerWeaponType");
function this.new(key, name, level, duration) function this.new(type, key, name, level, duration)
local is_infinite = false; local is_infinite = false;
if name == nil then if name == nil then
@@ -83,6 +83,7 @@ function this.new(key, name, level, duration)
local buff = {}; local buff = {};
buff.type = type;
buff.key = key; buff.key = key;
buff.name = name; buff.name = name;
buff.level = level; buff.level = level;
@@ -110,20 +111,37 @@ function this.init_buffs()
this.list = {}; this.list = {};
end end
function this.init_all_UI()
abnormal_statuses.init_all_UI();
item_buffs.init_all_UI();
endemic_life_buffs.init_all_UI();
melody_effects.init_all_UI();
dango_skills.init_all_UI();
rampage_skills.init_all_UI();
skills.init_all_UI();
weapon_skills.init_all_UI();
otomo_moves.init_all_UI();
misc_buffs.init_all_UI();
end
function this.init_UI(buff) function this.init_UI(buff)
local cached_config = config.current_config.buff_UI; local cached_config = config.current_config.buff_UI[buff.type];
buff.buff_UI = buff_UI_entity.new(cached_config.bar, cached_config.name_label, cached_config.timer_label); buff.buff_UI = buff_UI_entity.new(cached_config.bar, cached_config.name_label, cached_config.timer_label);
end end
function this.init_names() function this.init_names()
abnormal_statuses.init_names(); abnormal_statuses.init_names();
item_buffs.init_names();
endemic_life_buffs.init_names();
melody_effects.init_names();
dango_skills.init_names();
rampage_skills.init_names();
skills.init_names(); skills.init_names();
weapon_skills.init_names(); weapon_skills.init_names();
otomo_moves.init_names();
misc_buffs.init_names(); misc_buffs.init_names();
end end
local tere = {};
function this.update() function this.update()
if not config.current_config.buff_UI.enabled then if not config.current_config.buff_UI.enabled then
return; return;
@@ -213,7 +231,8 @@ function this.update_timer(buff, timer)
end end
end end
function this.update_generic_buff(buff_list, filter_list, get_name_function, buff_key, function this.update_generic_buff(buff_list, filter_list, get_name_function,
buff_type, buff_key,
value_owner, value_holder, value_owner, value_holder,
timer_owner, timer_holder, timer_owner, timer_holder,
is_infinite, minimal_value, level_breakpoints) is_infinite, minimal_value, level_breakpoints)
@@ -288,17 +307,17 @@ function this.update_generic_buff(buff_list, filter_list, get_name_function, buf
end end
end end
return this.update_generic(buff_list, get_name_function, buff_key, level, timer); return this.update_generic(buff_list, get_name_function, buff_type, buff_key, level, timer);
end end
function this.update_generic(buff_list, get_name_function, buff_key, level, timer) function this.update_generic(buff_list, get_name_function, buff_type, buff_key, level, timer)
level = level or 1; level = level or 1;
local buff = buff_list[buff_key]; local buff = buff_list[buff_key];
if buff == nil then if buff == nil then
local name = get_name_function(buff_key); local name = get_name_function(buff_key);
buff = this.new(buff_key, name, level, timer); buff = this.new(buff_type, buff_key, name, level, timer);
buff_list[buff_key] = buff; buff_list[buff_key] = buff;
else else
if buff.level ~= level then if buff.level ~= level then

View File

@@ -127,8 +127,11 @@ local dango_skill_ids = {
super_recovery_dango = 56 super_recovery_dango = 56
}; };
this.is_dango_adrenaline_active = false; this.is_dango_adrenaline_active = false;
local dango_skills_type_name = "dango_skills";
local dango_bulker_attack_up = 15; local dango_bulker_attack_up = 15;
local previous_super_recovery_dango_timer = 0; local previous_super_recovery_dango_timer = 0;
@@ -171,8 +174,6 @@ local flag_cat_skill_insurance_field = quest_manager_type_def:get_field("_FlagCa
local is_cat_skill_insurance_method = quest_manager_type_def:get_method("isCatSkillInsurance"); local is_cat_skill_insurance_method = quest_manager_type_def:get_method("isCatSkillInsurance");
function this.update(player, player_data) function this.update(player, player_data)
this.update_dango_adrenaline(); this.update_dango_adrenaline();
this.update_dango_hunter(player_data); this.update_dango_hunter(player_data);
this.update_dango_insurance(); this.update_dango_insurance();
@@ -187,12 +188,13 @@ function this.update(player, player_data)
end end
function this.update_dango_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_dango_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.dango_skills, this.get_dango_skill_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.dango_skills, this.get_dango_skill_name,
dango_skills_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_dango_skill_name, key, level, timer); return buffs.update_generic(this.list, this.get_dango_skill_name, dango_skills_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -342,6 +344,18 @@ function this.update_super_recovery_dango(player)
this.update_generic("super_recovery_dango"); this.update_generic("super_recovery_dango");
end end
function this.init_all_UI()
for dango_skill_key, dango_skill in pairs(this.list) do
buffs.init_UI(dango_skill);
end
end
function this.init_names()
for dango_skill_key, dango_skill in pairs(this.list) do
dango_skill.name = this.get_dango_skill_name(dango_skill_key);
end
end
function this.get_dango_skill_name(key) function this.get_dango_skill_name(key)
local dango_skill_id = dango_skill_ids[key]; local dango_skill_id = dango_skill_ids[key];
if dango_skill_id == nil then if dango_skill_id == nil then

View File

@@ -71,6 +71,8 @@ this.keys = {
this.peepersects_duration = 90; this.peepersects_duration = 90;
this.butterflame_attack_up = 25; this.butterflame_attack_up = 25;
local endemic_life_buffs_type_name = "endemic_life_buffs";
local marionette_mode_types = { "ruby_wirebug", "gold_wirebug" }; local marionette_mode_types = { "ruby_wirebug", "gold_wirebug" };
@@ -112,12 +114,13 @@ function this.update(player, player_data, item_parameter)
end end
function this.update_endemic_life_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_endemic_life_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.endemic_life_buffs, this.get_endemic_life_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.endemic_life_buffs, this.get_endemic_life_name,
endemic_life_buffs_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_endemic_life_name, key, level, timer); return buffs.update_generic(this.list, this.get_endemic_life_name, endemic_life_buffs_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -176,6 +179,18 @@ function this.update_butterflame(player_data)
this.update_endemic_life_buff("butterflame", nil, nil, player_data, atk_up_buff_second_timer_field); this.update_endemic_life_buff("butterflame", nil, nil, player_data, atk_up_buff_second_timer_field);
end end
function this.init_all_UI()
for endemic_life_key, endemic_life in pairs(this.list) do
buffs.init_UI(endemic_life);
end
end
function this.init_names()
for endemic_life_key, endemic_life in pairs(this.list) do
endemic_life.name = this.get_endemic_life_name(endemic_life_key);
end
end
function this.get_endemic_life_name(key) function this.get_endemic_life_name(key)
if singletons.message_manager == nil then if singletons.message_manager == nil then
error_handler.report("endemic_life_buffs.get_endemic_life_name", "Failed to access Data: message_manager"); error_handler.report("endemic_life_buffs.get_endemic_life_name", "Failed to access Data: message_manager");

View File

@@ -88,6 +88,8 @@ local item_ids = {
this.might_seed_attack_up = 10; this.might_seed_attack_up = 10;
local item_buffs_type_name = "item_buffs";
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Demondrug/Mega Demondrug -- Demondrug/Mega Demondrug
local atk_up_alive_field = player_data_type_def:get_field("_AtkUpAlive"); local atk_up_alive_field = player_data_type_def:get_field("_AtkUpAlive");
@@ -140,12 +142,13 @@ function this.update(player_data, item_parameter)
end end
function this.update_item_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_item_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.item_buffs, this.get_item_buff_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.item_buffs, this.get_item_buff_name,
item_buffs_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_item_buff_name, key, level, timer); return buffs.update_generic(this.list, this.get_item_buff_name, item_buffs_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -279,6 +282,18 @@ function this.update_might_seed(player_data, item_parameter)
this.update_item_buff("might_seed", nil, nil, player_data, atk_up_buff_second_timer_field); this.update_item_buff("might_seed", nil, nil, player_data, atk_up_buff_second_timer_field);
end end
function this.init_all_UI()
for item_buff_key, item_buff in pairs(this.list) do
buffs.init_UI(item_buff);
end
end
function this.init_names()
for item_buff_key, item_buff in pairs(this.list) do
item_buff.name = this.get_item_buff_name(item_buff_key);
end
end
function this.get_item_buff_name(key) function this.get_item_buff_name(key)
local item_buff_name = get_name_method:call(nil, item_ids[key]); local item_buff_name = get_name_method:call(nil, item_ids[key]);
if item_buff_name == nil then if item_buff_name == nil then

View File

@@ -106,6 +106,8 @@ this.keys = {
this.list = {}; this.list = {};
local melody_effects_type_name = "melody_effects";
local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager"); local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager");
local find_master_player_method = player_manager_type_def:get_method("findMasterPlayer"); local find_master_player_method = player_manager_type_def:get_method("findMasterPlayer");
@@ -174,7 +176,7 @@ function this.update_melody_effect(lua_index, id, key, melody_effect, melody_dat
if melody_effect == nil then if melody_effect == nil then
local melody_effect_name = this.get_melody_effect_name(id); local melody_effect_name = this.get_melody_effect_name(id);
melody_effect = buffs.new(key, melody_effect_name, 1, melody_timer / 60); melody_effect = buffs.new(melody_effects_type_name, key, melody_effect_name, 1, melody_timer / 60);
this.list[lua_index] = melody_effect; this.list[lua_index] = melody_effect;
else else
buffs.update_timer(melody_effect, melody_timer / 60); buffs.update_timer(melody_effect, melody_timer / 60);
@@ -213,6 +215,18 @@ function this.apply_filter(key, lua_index)
return true; return true;
end end
function this.init_all_UI()
for melody_effect_id, melody_effect in pairs(this.list) do
buffs.init_UI(melody_effect);
end
end
function this.init_names()
for melody_effect_id, melody_effect in pairs(this.list) do
melody_effect.name = this.get_melody_effect_name(melody_effect_id - 1);
end
end
function this.get_melody_effect_name(id) function this.get_melody_effect_name(id)
local melody_effect_name = get_name_method:call(nil, id); local melody_effect_name = get_name_method:call(nil, id);
if melody_effect_name == nil then if melody_effect_name == nil then

View File

@@ -78,6 +78,8 @@ this.keys = {
-- Immunizer 5min -- Immunizer 5min
-- Vase of Vitality 20sec -- Vase of Vitality 20sec
local misc_buffs_type_name = "misc_buffs";
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Attack Up -- Attack Up
@@ -112,7 +114,8 @@ function this.update(player, player_data, item_parameter)
end end
function this.update_misc_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_misc_buff(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.misc_buffs, this.get_misc_buff_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.misc_buffs, this.get_misc_buff_name,
misc_buffs_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
@@ -145,10 +148,15 @@ function this.update_attack_up(player_data, item_parameter)
this.update_misc_buff("attack_up", nil, nil, player_data, atk_up_buff_second_timer_field); this.update_misc_buff("attack_up", nil, nil, player_data, atk_up_buff_second_timer_field);
end end
function this.init_all_UI()
for misc_buff_key, misc_buff in pairs(this.list) do
buffs.init_UI(misc_buff);
end
end
function this.init_names() function this.init_names()
for misc_buff_key, dango in pairs(this.list) do for misc_buff_key, misc_buff in pairs(this.list) do
dango.name = this.get_misc_buff_name(misc_buff_key); misc_buff.name = this.get_misc_buff_name(misc_buff_key);
end end
end end

View File

@@ -90,6 +90,8 @@ local otomo_moves_ids = {
-- ameowzing_mist = 30 -- ameowzing_mist = 30
}; };
local otomo_moves_type_name = "otomo_moves"
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
-- Palico: Rousing Roar -- Palico: Rousing Roar
local beast_roar_otomo_timer_field = player_data_type_def:get_field("_BeastRoarOtomoTimer"); local beast_roar_otomo_timer_field = player_data_type_def:get_field("_BeastRoarOtomoTimer");
@@ -108,7 +110,8 @@ function this.update(player_data)
end end
function this.update_otomo_move(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_otomo_move(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.otomo_moves, this.get_otomo_move_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.otomo_moves, this.get_otomo_move_name,
otomo_moves_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
end end
@@ -116,6 +119,18 @@ function this.apply_filter(key)
return buffs.apply_filter(this.list, config.current_config.buff_UI.filter.otomo_moves, key); return buffs.apply_filter(this.list, config.current_config.buff_UI.filter.otomo_moves, key);
end end
function this.init_all_UI()
for otomo_move_key, otomo_move in pairs(this.list) do
buffs.init_UI(otomo_move);
end
end
function this.init_names()
for otomo_move_key, otomo_move in pairs(this.list) do
otomo_move.name = this.get_otomo_move_name(otomo_move_key);
end
end
function this.get_otomo_move_name(key) function this.get_otomo_move_name(key)
local otomo_move_name = get_name_method:call(nil, otomo_moves_ids[key]); local otomo_move_name = get_name_method:call(nil, otomo_moves_ids[key]);
if otomo_move_name == nil then if otomo_move_name == nil then

View File

@@ -60,6 +60,8 @@ local rampage_skill_ids = {
kushala_daora_soul = 251, kushala_daora_soul = 251,
}; };
local rampage_skills_type_name = "rampage_skills";
local kushara_daora_soul_breakpoint = 5; local kushara_daora_soul_breakpoint = 5;
local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData"); local player_data_type_def = sdk.find_type_definition("snow.player.PlayerData");
@@ -80,7 +82,8 @@ function this.update(player_data)
end end
function this.update_rampage_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_rampage_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.rampage_skills, this.get_rampage_skill_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.rampage_skills, this.get_rampage_skill_name,
rampage_skills_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
end end
@@ -88,9 +91,15 @@ function this.apply_filter(key)
return this.apply_filter(this.list, config.current_config.buff_UI.filter.rampage_skills, key); return this.apply_filter(this.list, config.current_config.buff_UI.filter.rampage_skills, key);
end end
function this.init_all_UI()
for rampage_skill_key, rampage_skill in pairs(this.list) do
buffs.init_UI(rampage_skill);
end
end
function this.init_names() function this.init_names()
for rampage_skill_key, skill in pairs(this.list) do for rampage_skill_key, rampage_skill in pairs(this.list) do
skill.name = this.get_rampage_skill_name(rampage_skill_key); rampage_skill.name = this.get_rampage_skill_name(rampage_skill_key);
end end
end end

View File

@@ -449,7 +449,6 @@ function this.update(player, player_data, weapon_type)
this.update_skill("strife", player, get_affinity_equip_skill_233_method, nil, nil, nil, nil, strife_breakpoints[skill_data_list.strife.level]); this.update_skill("strife", player, get_affinity_equip_skill_233_method, nil, nil, nil, nil, strife_breakpoints[skill_data_list.strife.level]);
end end
function this.update_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_skill(key, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
local skill_data = skill_data_list[key]; local skill_data = skill_data_list[key];
if skill_data ~= nil and skill_data.is_equipped ~= nil and not skill_data.is_equipped then if skill_data ~= nil and skill_data.is_equipped ~= nil and not skill_data.is_equipped then
@@ -457,12 +456,13 @@ function this.update_skill(key, value_owner, value_holder, timer_owner, timer_ho
return nil; return nil;
end end
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.skills, this.get_skill_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.skills, this.get_skill_name,
skills_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_skill_name, key, level, timer); return buffs.update_generic(this.list, this.get_skill_name, skills_type_name, key, level, timer);
end end
function this.apply_filter(key) function this.apply_filter(key)
@@ -472,7 +472,7 @@ end
function this.update_equipped_skill_data(player) function this.update_equipped_skill_data(player)
local player_skill_list = get_player_skill_list_method:call(player); local player_skill_list = get_player_skill_list_method:call(player);
if player_skill_list == nil then if player_skill_list == nil then
error_handler.report("buffs.update", "Failed to access Data: player_skill_list"); error_handler.report("this.update_equipped_skill_data", "Failed to access Data: player_skill_list");
return; return;
end end
@@ -583,14 +583,14 @@ function this.update_maximum_might(player_data)
local maximum_might_name = this.get_skill_name("maximum_might"); local maximum_might_name = this.get_skill_name("maximum_might");
if whole_body_timer < maximum_might_previous_timer_value then if whole_body_timer < maximum_might_previous_timer_value then
this.list.maximum_might = buffs.new("maximum_might", maximum_might_name, 1); this.list.maximum_might = buffs.new(skills_type_name, "maximum_might", maximum_might_name, 1);
elseif utils.number.is_equal(whole_body_timer, 0) then elseif utils.number.is_equal(whole_body_timer, 0) then
if maximum_might_delay_timer == nil then if maximum_might_delay_timer == nil then
maximum_might_delay_timer = time.new_delay_timer(function() maximum_might_delay_timer = time.new_delay_timer(function()
maximum_might_delay_timer = nil; maximum_might_delay_timer = nil;
this.list.maximum_might = buffs.new("maximum_might", maximum_might_name, 1); this.list.maximum_might = buffs.new(skills_type_name, "maximum_might", maximum_might_name, 1);
end, 3.5); end, 3.5);
end end
@@ -631,7 +631,7 @@ function this.update_bloodlust()
return; return;
end end
this.list.bloodlust = buffs.new("bloodlust", bloodlust_name); this.list.bloodlust = buffs.new(skills_type_name, "bloodlust", bloodlust_name);
end end
this.list.bloodlust.is_visible = true; this.list.bloodlust.is_visible = true;
@@ -837,6 +837,12 @@ function this.update_blood_awakening(player, player_data)
this.update_skill("blood_awakening", player, get_equip_skill_232_lv_method, player_data, equip_skill_232_timer_field, nil, nil, blood_awakening_breakpoints); this.update_skill("blood_awakening", player, get_equip_skill_232_lv_method, player_data, equip_skill_232_timer_field, nil, nil, blood_awakening_breakpoints);
end end
function this.init_all_UI()
for skill_key, skill in pairs(this.list) do
buffs.init_UI(skill);
end
end
function this.init_names() function this.init_names()
for skill_key, skill in pairs(this.list) do for skill_key, skill in pairs(this.list) do
skill.name = this.get_skill_name(skill_key); skill.name = this.get_skill_name(skill_key);

View File

@@ -273,6 +273,7 @@ local weapon_skill_ids = {
bolt_boost = 154 bolt_boost = 154
}; };
local weapon_skill_type_name = "weapon_skills";
-- 0 Great Sword -- 0 Great Sword
local great_sword_type_name = "great_sword"; local great_sword_type_name = "great_sword";
-- 1 Switch Axe -- 1 Switch Axe
@@ -546,12 +547,13 @@ function this.update(player, player_data, weapon_type)
end end
function this.update_weapon_skill(key, weapon_type_name, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints) function this.update_weapon_skill(key, weapon_type_name, value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints)
return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.weapon_skills[weapon_type_name], this.get_weapon_skill_name, key, return buffs.update_generic_buff(this.list, config.current_config.buff_UI.filter.weapon_skills[weapon_type_name], this.get_weapon_skill_name,
weapon_skill_type_name, key,
value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints); value_owner, value_holder, timer_owner, timer_holder, is_infinite, minimal_value, level_breakpoints);
end end
function this.update_generic(key, level, timer) function this.update_generic(key, level, timer)
return buffs.update_generic(this.list, this.get_weapon_skill_name, key, level, timer); return buffs.update_generic(this.list, this.get_weapon_skill_name, weapon_skill_type_name, key, level, timer);
end end
function this.apply_filter(weapon_type_name, key) function this.apply_filter(weapon_type_name, key)
@@ -1042,6 +1044,12 @@ function this.update_bow_skills(player, player_data)
this.update_weapon_skill("arc_shot_brace", bow_type_name, nil, nil, player_data, super_armor_item_timer_field); this.update_weapon_skill("arc_shot_brace", bow_type_name, nil, nil, player_data, super_armor_item_timer_field);
end end
function this.init_all_UI()
for weapon_skill_key, weapon_skill in pairs(this.list) do
buffs.init_UI(weapon_skill);
end
end
function this.init_names() function this.init_names()
for weapon_skill_key, weapon_skill in pairs(this.list) do for weapon_skill_key, weapon_skill in pairs(this.list) do
weapon_skill.name = this.get_weapon_skill_name(weapon_skill_key); weapon_skill.name = this.get_weapon_skill_name(weapon_skill_key);

View File

@@ -231,33 +231,6 @@ function this.update_damage(enemy, enemy_calc_damage_info)
players.update_damage(players.total, damage_source_type, is_large_monster, damage_object); players.update_damage(players.total, damage_source_type, is_large_monster, damage_object);
players.update_damage(player, damage_source_type, is_large_monster, damage_object); players.update_damage(player, damage_source_type, is_large_monster, damage_object);
--[[xy = string.format(
PhysicalPartsVitalDamage(): %s
PhysicalPartsBreakVitalDamage(): %s
PhysicalPartsLossVitalDamage(): %s
PhysicalMultiPartsVitalDamage(): %s
ElementPartsVitalDamage(): %s
ElementPartsBreakVitalDamage(): %s
ElementPartsLossVitalDamage(): %s
ElementMultiPartsVitalDamage(): %s
IsBreakPartsDamage(): %s
,
tostring(enemy_calc_damage_info:get_PhysicalPartsVitalDamage()),
tostring(enemy_calc_damage_info:get_PhysicalPartsBreakVitalDamage()),
tostring(enemy_calc_damage_info:get_PhysicalPartsLossVitalDamage()),
tostring(enemy_calc_damage_info:get_PhysicalMultiPartsVitalDamage()),
tostring(enemy_calc_damage_info:get_ElementPartsVitalDamage()),
tostring(enemy_calc_damage_info:get_ElementPartsBreakVitalDamage()),
tostring(enemy_calc_damage_info:get_ElementPartsLossVitalDamage()),
tostring(enemy_calc_damage_info:get_ElementMultiPartsVitalDamage()),
tostring(enemy_calc_damage_info:get_IsBreakPartsDamage())
);]]
end end
function this.cart(dead_player_id, flag_cat_skill_insurance) function this.cart(dead_player_id, flag_cat_skill_insurance)

File diff suppressed because it is too large Load Diff

View File

@@ -780,6 +780,8 @@ this.default_language = {
update_buffs_delay = "Update Buffs (seconds)", update_buffs_delay = "Update Buffs (seconds)",
infinite_buffs_location = "Infinite Buffs Location", infinite_buffs_location = "Infinite Buffs Location",
skill_level = "Skill Level"
}, },
}; };

View File

@@ -74,7 +74,7 @@ function this.draw(buff, buff_UI, position_on_screen, opacity_scale)
end end
local buff_name = buff.name; local buff_name = buff.name;
if cached_config.name_label.include.skill_level and buff.level > 1 then if buff_UI.name_label.include.skill_level and buff.level > 1 then
buff_name = string.format("%s %s%d", buff_name, language.current_language.UI.lv, buff.level); buff_name = string.format("%s %s%d", buff_name, language.current_language.UI.lv, buff.level);
end end

View File

@@ -500,9 +500,7 @@ function this.draw()
end end
if buff_UI_changed or modifiers_changed or config_changed then if buff_UI_changed or modifiers_changed or config_changed then
-- for _, buff in pairs(buffs.list) do buffs.init_all_UI();
-- buffs.init_UI(buff);
-- end
end end
if stats_UI_changed or modifiers_changed or config_changed then if stats_UI_changed or modifiers_changed or config_changed then
@@ -2408,10 +2406,6 @@ function this.draw_buff_UI()
end end
if imgui.tree_node(language.current_language.customization_menu.filter) then if imgui.tree_node(language.current_language.customization_menu.filter) then
-- weapon_skills = "Weapon Skills",
-- otomo_moves = "Buddy Moves",
-- misc_buffs = "Misc Buffs",
if imgui.tree_node(language.current_language.customization_menu.abnormal_statuses) then if imgui.tree_node(language.current_language.customization_menu.abnormal_statuses) then
@@ -2587,18 +2581,148 @@ function this.draw_buff_UI()
imgui.tree_pop(); imgui.tree_pop();
end end
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.abnormal_statuses) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.abnormal_statuses.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.abnormal_statuses.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.abnormal_statuses.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.item_buffs) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.item_buffs.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.item_buffs.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.item_buffs.bar);
config_changed = config_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.name_label); if imgui.tree_node(language.current_language.customization_menu.endemic_life_buffs) then
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.endemic_life_buffs.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.timer_label); changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.endemic_life_buffs.timer_label);
config_changed = config_changed or changed; config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.bar); changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.endemic_life_buffs.bar);
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.melody_effects) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.melody_effects.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.melody_effects.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.melody_effects.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.dango_skills) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.dango_skills.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.dango_skills.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.dango_skills.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.rampage_skills) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.rampage_skills.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.rampage_skills.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.rampage_skills.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.skills) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.skills.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.skills.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.skills.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.weapon_skills) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.weapon_skills.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.weapon_skills.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.weapon_skills.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.otomo_moves) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.otomo_moves.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.otomo_moves.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.otomo_moves.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.misc_buffs) then
changed = label_customization.draw(language.current_language.customization_menu.name_label, cached_config.misc_buffs.name_label);
config_changed = config_changed or changed;
changed = label_customization.draw(language.current_language.customization_menu.timer_label, cached_config.misc_buffs.timer_label);
config_changed = config_changed or changed;
changed = bar_customization.draw(language.current_language.customization_menu.bar, cached_config.misc_buffs.bar);
config_changed = config_changed or changed;
imgui.tree_pop();
end
imgui.tree_pop(); imgui.tree_pop();
end end

View File

@@ -315,6 +315,7 @@
"show_other_player_otomos_separately": "Show Other Player Buddies separately", "show_other_player_otomos_separately": "Show Other Player Buddies separately",
"show_servant_otomos_separately": "Show Follower Buddies separately", "show_servant_otomos_separately": "Show Follower Buddies separately",
"size": "Size", "size": "Size",
"skill_level": "Skill Level",
"skills": "Skills", "skills": "Skills",
"small_monster_UI": "Small Monster UI", "small_monster_UI": "Small Monster UI",
"small_monsters": "Small Monsters", "small_monsters": "Small Monsters",

View File

@@ -330,6 +330,7 @@
"show_other_player_otomos_separately": "Show Other Player Buddies separately", "show_other_player_otomos_separately": "Show Other Player Buddies separately",
"show_servant_otomos_separately": "Show Follower Buddies separately", "show_servant_otomos_separately": "Show Follower Buddies separately",
"size": "サイズ", "size": "サイズ",
"skill_level": "Skill Level",
"skills": "Skills", "skills": "Skills",
"small_monster_UI": "小型モンスターUI", "small_monster_UI": "小型モンスターUI",
"small_monsters": "小型モンスター", "small_monsters": "小型モンスター",

View File

@@ -331,6 +331,7 @@
"show_other_player_otomos_separately": "다른 플레이어의 동반자를 따로", "show_other_player_otomos_separately": "다른 플레이어의 동반자를 따로",
"show_servant_otomos_separately": "맹우의 동반자를 따로", "show_servant_otomos_separately": "맹우의 동반자를 따로",
"size": "크기", "size": "크기",
"skill_level": "Skill Level",
"skills": "Skills", "skills": "Skills",
"small_monster_UI": "소형 몬스터 UI", "small_monster_UI": "소형 몬스터 UI",
"small_monsters": "소형 몬스터", "small_monsters": "소형 몬스터",

View File

@@ -331,6 +331,7 @@
"show_other_player_otomos_separately": "Показывать спутников других игроков отдельно", "show_other_player_otomos_separately": "Показывать спутников других игроков отдельно",
"show_servant_otomos_separately": "Показывать спутников последователей отдельно", "show_servant_otomos_separately": "Показывать спутников последователей отдельно",
"size": "Размер", "size": "Размер",
"skill_level": "Skill Level",
"skills": "Skills", "skills": "Skills",
"small_monster_UI": "Интерфейс малых монстров", "small_monster_UI": "Интерфейс малых монстров",
"small_monsters": "Малые монстры", "small_monsters": "Малые монстры",

View File

@@ -331,6 +331,7 @@
"show_other_player_otomos_separately": "分开显示其他玩家的随从", "show_other_player_otomos_separately": "分开显示其他玩家的随从",
"show_servant_otomos_separately": "分开显示盟友的随从", "show_servant_otomos_separately": "分开显示盟友的随从",
"size": "大小", "size": "大小",
"skill_level": "Skill Level",
"skills": "Skills", "skills": "Skills",
"small_monster_UI": "小型怪物UI", "small_monster_UI": "小型怪物UI",
"small_monsters": "小型怪物群", "small_monsters": "小型怪物群",

View File

@@ -331,6 +331,7 @@
"show_other_player_otomos_separately": "Show Other Player Buddies separately", "show_other_player_otomos_separately": "Show Other Player Buddies separately",
"show_servant_otomos_separately": "Show Follower Buddies separately", "show_servant_otomos_separately": "Show Follower Buddies separately",
"size": "大小", "size": "大小",
"skill_level": "Skill Level",
"skills": "Skills", "skills": "Skills",
"small_monster_UI": "小型魔物 UI", "small_monster_UI": "小型魔物 UI",
"small_monsters": "小型魔物群", "small_monsters": "小型魔物群",