From e1f0cefe5fb48589b13a0f9bffa47315f3f80730 Mon Sep 17 00:00:00 2001 From: Blitz54 Date: Fri, 3 Oct 2025 02:11:50 -0500 Subject: [PATCH] Add support for Bleed IV --- src/Data/Global.lua | 1 + src/Data/Skills/act_dex.lua | 2 +- src/Data/Skills/act_int.lua | 84 +++++++++++++++++------------------ src/Data/Skills/act_str.lua | 5 ++- src/Data/Skills/other.lua | 6 ++- src/Data/Skills/sup_dex.lua | 2 +- src/Data/Skills/sup_int.lua | 12 ++--- src/Data/Skills/sup_str.lua | 5 +++ src/Export/Skills/sup_str.txt | 5 +++ 9 files changed, 68 insertions(+), 54 deletions(-) diff --git a/src/Data/Global.lua b/src/Data/Global.lua index 2a3880a763..442e24f501 100644 --- a/src/Data/Global.lua +++ b/src/Data/Global.lua @@ -555,6 +555,7 @@ SkillType = { SupportedByFlamePillar = 245, CanCreateStoneElementals = 246, RemnantCannotBeShared = 247, + GamepadDoNotForceSkillAtLocation = 248, } GlobalCache = { diff --git a/src/Data/Skills/act_dex.lua b/src/Data/Skills/act_dex.lua index e83967719d..21b14a60ea 100644 --- a/src/Data/Skills/act_dex.lua +++ b/src/Data/Skills/act_dex.lua @@ -2631,7 +2631,7 @@ skills["FreezingSalvoPlayer"] = { baseTypeName = "Freezing Salvo", color = 2, description = "Passively coalesces icy missiles from the air over time. Using the skill fires a missile, firing an additional missile for each that has been accumulated. Fires an additional missile, up to its current missile count, targeting each Ice Fragment in its Area of effect, causing the Fragments to Detonate immediately.", - skillTypes = { [SkillType.Damage] = true, [SkillType.Area] = true, [SkillType.Cold] = true, [SkillType.Projectile] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.CannotChain] = true, [SkillType.ProjectileNoCollision] = true, [SkillType.Bow] = true, [SkillType.HasSeals] = true, [SkillType.GroundTargetedProjectile] = true, [SkillType.NoAttackInPlace] = true, }, + skillTypes = { [SkillType.Damage] = true, [SkillType.Area] = true, [SkillType.Cold] = true, [SkillType.Projectile] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.CannotChain] = true, [SkillType.ProjectileNoCollision] = true, [SkillType.Bow] = true, [SkillType.HasSeals] = true, [SkillType.GroundTargetedProjectile] = true, [SkillType.NoAttackInPlace] = true, [SkillType.UsableWhileMoving] = true, }, weaponTypes = { ["Bow"] = true, }, diff --git a/src/Data/Skills/act_int.lua b/src/Data/Skills/act_int.lua index bb10c9bc58..dfaf839699 100644 --- a/src/Data/Skills/act_int.lua +++ b/src/Data/Skills/act_int.lua @@ -1204,6 +1204,7 @@ skills["BlinkReservationPlayer"] = { }, stats = { "base_deal_no_damage", + "display_skill_reserves_in_all_weapon_sets", }, levels = { [1] = { actorLevel = 1, }, @@ -3911,6 +3912,7 @@ skills["ConvalescencePlayer"] = { }, stats = { "base_deal_no_damage", + "display_skill_reserves_in_all_weapon_sets", }, levels = { [1] = { actorLevel = 1, }, @@ -7603,7 +7605,6 @@ skills["FirestormPlayer"] = { "base_skill_show_average_damage_instead_of_dps", "is_area_damage", "can_perform_skill_while_moving", - "never_ignite", "quality_display_active_skill_base_area_of_effect_radius_is_gem", "active_skill_consumes_a_cold_infusion", "active_skill_consumes_a_fire_infusion", @@ -7689,7 +7690,6 @@ skills["FirestormPlayer"] = { "base_skill_show_average_damage_instead_of_dps", "is_area_damage", "can_perform_skill_while_moving", - "never_ignite", "quality_display_active_skill_base_area_of_effect_radius_is_gem", "active_skill_consumes_a_cold_infusion", "active_skill_consumes_a_fire_infusion", @@ -7778,7 +7778,6 @@ skills["FirestormPlayer"] = { "base_skill_show_average_damage_instead_of_dps", "is_area_damage", "can_perform_skill_while_moving", - "never_ignite", "quality_display_active_skill_base_area_of_effect_radius_is_gem", "active_skill_consumes_a_cold_infusion", "active_skill_consumes_a_fire_infusion", @@ -14122,7 +14121,7 @@ skills["LightningWarpPlayer"] = { baseTypeName = "Lightning Warp", color = 3, description = "Teleport inside the target's body, causing it to violently explode. Highlights enemies that can be Culled, and can only be used on these enemies or Ball Lightning Projectiles. The target is destroyed, and the explosion deals Lightning damage to surrounding enemies. If targeting an enemy, the explosion also creates Shocked Ground. Creates a Lightning Infusion on successful use.", - skillTypes = { [SkillType.Spell] = true, [SkillType.Damage] = true, [SkillType.Area] = true, [SkillType.Duration] = true, [SkillType.Trappable] = true, [SkillType.Totemable] = true, [SkillType.Mineable] = true, [SkillType.Triggerable] = true, [SkillType.Lightning] = true, [SkillType.AreaSpell] = true, [SkillType.Multicastable] = true, [SkillType.Unleashable] = true, [SkillType.UsableWhileMoving] = true, [SkillType.CreatesGroundEffect] = true, [SkillType.NoAttackInPlace] = true, [SkillType.GeneratesInfusion] = true, [SkillType.Movement] = true, [SkillType.GeneratesRemnants] = true, }, + skillTypes = { [SkillType.Spell] = true, [SkillType.Damage] = true, [SkillType.Area] = true, [SkillType.Duration] = true, [SkillType.Trappable] = true, [SkillType.Totemable] = true, [SkillType.Mineable] = true, [SkillType.Triggerable] = true, [SkillType.Lightning] = true, [SkillType.AreaSpell] = true, [SkillType.Multicastable] = true, [SkillType.Unleashable] = true, [SkillType.UsableWhileMoving] = true, [SkillType.CreatesGroundEffect] = true, [SkillType.NoAttackInPlace] = true, [SkillType.GeneratesInfusion] = true, [SkillType.Movement] = true, [SkillType.GeneratesRemnants] = true, [SkillType.GamepadDoNotForceSkillAtLocation] = true, }, castTime = 0.5, qualityStats = { { "shock_effect_+%", 0.5 }, @@ -16859,6 +16858,7 @@ skills["SacrificePlayer"] = { stats = { "harvester_minion_resummon_speed_+%_final", "base_deal_no_damage", + "display_skill_reserves_in_all_weapon_sets", }, levels = { [1] = { -79, statInterpolation = { 1, }, actorLevel = 1, }, @@ -17358,44 +17358,44 @@ skills["SiphonElementsPlayer"] = { levels = { [1] = { 0, statInterpolation = { 1, }, actorLevel = 1, }, [2] = { 2, statInterpolation = { 1, }, actorLevel = 3.4519999027252, }, - [3] = { 5, statInterpolation = { 1, }, actorLevel = 6.7670001983643, }, - [4] = { 7, statInterpolation = { 1, }, actorLevel = 10.307999610901, }, - [5] = { 10, statInterpolation = { 1, }, actorLevel = 14.074999809265, }, - [6] = { 12, statInterpolation = { 1, }, actorLevel = 18.068000793457, }, - [7] = { 15, statInterpolation = { 1, }, actorLevel = 22.287000656128, }, - [8] = { 17, statInterpolation = { 1, }, actorLevel = 26.732000350952, }, - [9] = { 20, statInterpolation = { 1, }, actorLevel = 31.40299987793, }, - [10] = { 22, statInterpolation = { 1, }, actorLevel = 36.299999237061, }, - [11] = { 25, statInterpolation = { 1, }, actorLevel = 41.423000335693, }, - [12] = { 27, statInterpolation = { 1, }, actorLevel = 46.771999359131, }, - [13] = { 30, statInterpolation = { 1, }, actorLevel = 52.34700012207, }, - [14] = { 32, statInterpolation = { 1, }, actorLevel = 58.147998809814, }, - [15] = { 35, statInterpolation = { 1, }, actorLevel = 64.175003051758, }, - [16] = { 37, statInterpolation = { 1, }, actorLevel = 70.428001403809, }, - [17] = { 40, statInterpolation = { 1, }, actorLevel = 76.906997680664, }, - [18] = { 42, statInterpolation = { 1, }, actorLevel = 83.611999511719, }, - [19] = { 45, statInterpolation = { 1, }, actorLevel = 90.542999267578, }, - [20] = { 47, statInterpolation = { 1, }, actorLevel = 97.699996948242, }, - [21] = { 50, statInterpolation = { 1, }, actorLevel = 105.08300018311, }, - [22] = { 52, statInterpolation = { 1, }, actorLevel = 112.69200134277, }, - [23] = { 55, statInterpolation = { 1, }, actorLevel = 120.52700042725, }, - [24] = { 57, statInterpolation = { 1, }, actorLevel = 128.58799743652, }, - [25] = { 60, statInterpolation = { 1, }, actorLevel = 136.875, }, - [26] = { 62, statInterpolation = { 1, }, actorLevel = 145.38800048828, }, - [27] = { 65, statInterpolation = { 1, }, actorLevel = 154.12699890137, }, - [28] = { 67, statInterpolation = { 1, }, actorLevel = 163.09199523926, }, - [29] = { 70, statInterpolation = { 1, }, actorLevel = 172.28300476074, }, - [30] = { 72, statInterpolation = { 1, }, actorLevel = 181.69999694824, }, - [31] = { 75, statInterpolation = { 1, }, actorLevel = 191.34300231934, }, - [32] = { 77, statInterpolation = { 1, }, actorLevel = 201.21200561523, }, - [33] = { 80, statInterpolation = { 1, }, actorLevel = 211.30700683594, }, - [34] = { 82, statInterpolation = { 1, }, actorLevel = 221.62800598145, }, - [35] = { 85, statInterpolation = { 1, }, actorLevel = 232.17500305176, }, - [36] = { 87, statInterpolation = { 1, }, actorLevel = 242.94799804688, }, - [37] = { 90, statInterpolation = { 1, }, actorLevel = 253.94700622559, }, - [38] = { 92, statInterpolation = { 1, }, actorLevel = 265.17199707031, }, - [39] = { 95, statInterpolation = { 1, }, actorLevel = 276.62298583984, }, - [40] = { 97, statInterpolation = { 1, }, actorLevel = 288.29998779297, }, + [3] = { 4, statInterpolation = { 1, }, actorLevel = 6.7670001983643, }, + [4] = { 6, statInterpolation = { 1, }, actorLevel = 10.307999610901, }, + [5] = { 8, statInterpolation = { 1, }, actorLevel = 14.074999809265, }, + [6] = { 10, statInterpolation = { 1, }, actorLevel = 18.068000793457, }, + [7] = { 12, statInterpolation = { 1, }, actorLevel = 22.287000656128, }, + [8] = { 14, statInterpolation = { 1, }, actorLevel = 26.732000350952, }, + [9] = { 16, statInterpolation = { 1, }, actorLevel = 31.40299987793, }, + [10] = { 18, statInterpolation = { 1, }, actorLevel = 36.299999237061, }, + [11] = { 20, statInterpolation = { 1, }, actorLevel = 41.423000335693, }, + [12] = { 22, statInterpolation = { 1, }, actorLevel = 46.771999359131, }, + [13] = { 24, statInterpolation = { 1, }, actorLevel = 52.34700012207, }, + [14] = { 26, statInterpolation = { 1, }, actorLevel = 58.147998809814, }, + [15] = { 28, statInterpolation = { 1, }, actorLevel = 64.175003051758, }, + [16] = { 30, statInterpolation = { 1, }, actorLevel = 70.428001403809, }, + [17] = { 32, statInterpolation = { 1, }, actorLevel = 76.906997680664, }, + [18] = { 34, statInterpolation = { 1, }, actorLevel = 83.611999511719, }, + [19] = { 36, statInterpolation = { 1, }, actorLevel = 90.542999267578, }, + [20] = { 38, statInterpolation = { 1, }, actorLevel = 97.699996948242, }, + [21] = { 40, statInterpolation = { 1, }, actorLevel = 105.08300018311, }, + [22] = { 42, statInterpolation = { 1, }, actorLevel = 112.69200134277, }, + [23] = { 44, statInterpolation = { 1, }, actorLevel = 120.52700042725, }, + [24] = { 46, statInterpolation = { 1, }, actorLevel = 128.58799743652, }, + [25] = { 48, statInterpolation = { 1, }, actorLevel = 136.875, }, + [26] = { 50, statInterpolation = { 1, }, actorLevel = 145.38800048828, }, + [27] = { 52, statInterpolation = { 1, }, actorLevel = 154.12699890137, }, + [28] = { 54, statInterpolation = { 1, }, actorLevel = 163.09199523926, }, + [29] = { 56, statInterpolation = { 1, }, actorLevel = 172.28300476074, }, + [30] = { 58, statInterpolation = { 1, }, actorLevel = 181.69999694824, }, + [31] = { 60, statInterpolation = { 1, }, actorLevel = 191.34300231934, }, + [32] = { 62, statInterpolation = { 1, }, actorLevel = 201.21200561523, }, + [33] = { 64, statInterpolation = { 1, }, actorLevel = 211.30700683594, }, + [34] = { 66, statInterpolation = { 1, }, actorLevel = 221.62800598145, }, + [35] = { 68, statInterpolation = { 1, }, actorLevel = 232.17500305176, }, + [36] = { 70, statInterpolation = { 1, }, actorLevel = 242.94799804688, }, + [37] = { 72, statInterpolation = { 1, }, actorLevel = 253.94700622559, }, + [38] = { 74, statInterpolation = { 1, }, actorLevel = 265.17199707031, }, + [39] = { 76, statInterpolation = { 1, }, actorLevel = 276.62298583984, }, + [40] = { 78, statInterpolation = { 1, }, actorLevel = 288.29998779297, }, }, }, } diff --git a/src/Data/Skills/act_str.lua b/src/Data/Skills/act_str.lua index b24b097f44..2a79c059e2 100644 --- a/src/Data/Skills/act_str.lua +++ b/src/Data/Skills/act_str.lua @@ -382,8 +382,8 @@ skills["AncestralWarriorTotemPlayer"] = { name = "Ancestral Warrior Totem", baseTypeName = "Ancestral Warrior Totem", color = 1, - description = "Consume 3 Endurance Charges to Raise a Totem that uses socketed Mace Skills. This Totem has no Limit. Cannot use Channelling Skills or Skills with Cooldowns.", - skillTypes = { [SkillType.SummonsTotem] = true, [SkillType.SummonsAttackTotem] = true, [SkillType.Duration] = true, [SkillType.Melee] = true, [SkillType.Trappable] = true, [SkillType.Mineable] = true, [SkillType.Meta] = true, [SkillType.Area] = true, [SkillType.NoAttackInPlace] = true, [SkillType.HasUsageCondition] = true, [SkillType.RequiresCharges] = true, [SkillType.ConsumesCharges] = true, [SkillType.SkillConsumesEnduranceChargesOnUse] = true, [SkillType.UnlimitedTotems] = true, }, + description = "Consume 3 Endurance Charges to Raise a Totem that uses socketed Mace Skills. Cannot use Channelling Skills or Skills with Cooldowns.", + skillTypes = { [SkillType.SummonsTotem] = true, [SkillType.SummonsAttackTotem] = true, [SkillType.Duration] = true, [SkillType.Melee] = true, [SkillType.Trappable] = true, [SkillType.Mineable] = true, [SkillType.Meta] = true, [SkillType.Area] = true, [SkillType.NoAttackInPlace] = true, [SkillType.HasUsageCondition] = true, [SkillType.RequiresCharges] = true, [SkillType.ConsumesCharges] = true, [SkillType.SkillConsumesEnduranceChargesOnUse] = true, }, weaponTypes = { ["One Handed Mace"] = true, ["Two Handed Mace"] = true, @@ -449,6 +449,7 @@ skills["AncestralWarriorTotemPlayer"] = { { "base_totem_range", 60 }, { "ancestral_spirit_base_lockout_time_ms", 600 }, { "active_skill_requires_X_endurance_charges", 3 }, + { "non_modifiable_totem_limit", 10 }, }, stats = { "totem_elemental_resistance_%", diff --git a/src/Data/Skills/other.lua b/src/Data/Skills/other.lua index 28e595c148..f4a6cb4001 100644 --- a/src/Data/Skills/other.lua +++ b/src/Data/Skills/other.lua @@ -4352,12 +4352,13 @@ skills["ParryPlayer"] = { { "movement_speed_+%_final_while_performing_action", -50 }, { "movement_speed_acceleration_+%_per_second_while_performing_action", 160 }, { "movement_speed_while_performing_action_locked_duration_%", 50 }, - { "base_maximum_active_block_distance", 10 }, + { "base_maximum_active_block_distance_for_non_projectiles", 10 }, + { "base_maximum_active_block_distance_for_projectiles", 15 }, { "base_parry_buff_damage_taken_+%_final_to_apply", 50 }, { "base_skill_effect_duration", 2000 }, { "active_skill_hit_damage_stun_multiplier_+%_final", 400 }, { "active_skill_heavy_stun_decay_after_action_delay_ms", 2000 }, - { "stun_threshold_+%_final_while_performing_action", -60 }, + { "stun_threshold_+%_final_while_performing_action", -40 }, { "active_skill_override_turn_duration_ms", 100 }, }, stats = { @@ -6668,6 +6669,7 @@ skills["VoidIllusionSpawnPlayer"] = { "hide_minion_frame", "triggered_by_void_illusion", "quality_display_active_skill_base_area_of_effect_radius_is_gem", + "base_skill_sources_hollow_palm_physical_damage", }, levels = { [1] = { actorLevel = 1, }, diff --git a/src/Data/Skills/sup_dex.lua b/src/Data/Skills/sup_dex.lua index 11b21583db..e9547ad2d0 100644 --- a/src/Data/Skills/sup_dex.lua +++ b/src/Data/Skills/sup_dex.lua @@ -2611,7 +2611,7 @@ skills["SupportChargeInhibitionPlayer"] = { } skills["SupportInnervatePlayer"] = { name = "Innervate", - description = "Supports Attacks you use yourself. Killing a Shocked enemy with supported skills infuses all of your Attacks with Lightning damage for a short time.", + description = "Supports Attacks you use yourself. Killing a Shocked enemy with supported skills imbues all of your Attacks with Lightning damage for a short time.", color = 2, support = true, requireSkillTypes = { SkillType.Attack, SkillType.CrossbowAmmoSkill, }, diff --git a/src/Data/Skills/sup_int.lua b/src/Data/Skills/sup_int.lua index c1b1baf72b..4d6583d5a6 100644 --- a/src/Data/Skills/sup_int.lua +++ b/src/Data/Skills/sup_int.lua @@ -2933,7 +2933,7 @@ skills["SupportFleetingRemnantsPlayer"] = { baseFlags = { }, constantStats = { - { "remnant_pickup_range_+%", 100 }, + { "remnant_pickup_range_+%", 35 }, }, stats = { }, @@ -2963,7 +2963,7 @@ skills["SupportFleetingRemnantsPlayerTwo"] = { baseFlags = { }, constantStats = { - { "remnant_pickup_range_+%", 100 }, + { "remnant_pickup_range_+%", 35 }, { "chance_%_to_create_additional_remnant", 20 }, }, stats = { @@ -3591,7 +3591,7 @@ skills["TriggeredLivingLightningPlayer"] = { minionList = { "LivingLightning", }, - skillTypes = { [SkillType.Triggered] = true, [SkillType.Triggerable] = true, [SkillType.Minion] = true, [SkillType.Lightning] = true, [SkillType.SkillGrantedBySupport] = true, [SkillType.Limit] = true, [SkillType.Duration] = true, [SkillType.SingleLevelSkill] = true, [SkillType.MinionsAreUndamagable] = true, [SkillType.CreatesMinion] = true, }, + skillTypes = { [SkillType.Triggered] = true, [SkillType.Triggerable] = true, [SkillType.Minion] = true, [SkillType.Lightning] = true, [SkillType.SkillGrantedBySupport] = true, [SkillType.Limit] = true, [SkillType.Duration] = true, [SkillType.SingleLevelSkill] = true, [SkillType.MinionsAreUndamagable] = true, [SkillType.CreatesMinion] = true, [SkillType.Cooldown] = true, }, castTime = 1, qualityStats = { }, @@ -3666,7 +3666,7 @@ skills["TriggeredLivingLightningPlayerTwo"] = { minionList = { "LivingLightning", }, - skillTypes = { [SkillType.Triggered] = true, [SkillType.Triggerable] = true, [SkillType.Minion] = true, [SkillType.Lightning] = true, [SkillType.SkillGrantedBySupport] = true, [SkillType.Limit] = true, [SkillType.Duration] = true, [SkillType.SingleLevelSkill] = true, [SkillType.MinionsAreUndamagable] = true, [SkillType.CreatesMinion] = true, }, + skillTypes = { [SkillType.Triggered] = true, [SkillType.Triggerable] = true, [SkillType.Minion] = true, [SkillType.Lightning] = true, [SkillType.SkillGrantedBySupport] = true, [SkillType.Limit] = true, [SkillType.Duration] = true, [SkillType.SingleLevelSkill] = true, [SkillType.MinionsAreUndamagable] = true, [SkillType.CreatesMinion] = true, [SkillType.Cooldown] = true, }, castTime = 1, qualityStats = { }, @@ -3772,7 +3772,7 @@ skills["SupportMagneticRemnantsPlayer"] = { baseFlags = { }, constantStats = { - { "remnant_pickup_range_+%", 100 }, + { "remnant_pickup_range_+%", 35 }, }, stats = { }, @@ -5571,7 +5571,7 @@ skills["SupportZenithPlayer"] = { } skills["SupportZenithPlayerTwo"] = { name = "Zenith II", - description = "Supports Spell Skills. Supported Skills deal more damage while you are above 90% of your Maximum Mana, and Recoup a portion of Skill costs as Mana. Does not modify Skills used by Minions.", + description = "Supports Spell Skills. Supported Skills deal more damage while you are above 90% of your Maximum Mana, and Recoup a portion of their Mana cost. Does not modify Skills used by Minions.", color = 3, support = true, requireSkillTypes = { SkillType.Spell, SkillType.Damage, SkillType.AND, SkillType.DegenOnlySpellDamage, }, diff --git a/src/Data/Skills/sup_str.lua b/src/Data/Skills/sup_str.lua index e7529d41c4..fc465f8eac 100644 --- a/src/Data/Skills/sup_str.lua +++ b/src/Data/Skills/sup_str.lua @@ -913,6 +913,11 @@ skills["SupportBleedPlayerFour"] = { label = "Bleed IV", incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "gem_stat_descriptions", + statMap = { + ["support_bloodlust_melee_physical_damage_+%_final_vs_bleeding_enemies"] = { + mod("PhysicalDamage", "MORE", nil, ModFlag.Melee, 0, { type = "ActorCondition", actor = "enemy", var = "Bleeding" }), + }, + }, baseFlags = { }, constantStats = { diff --git a/src/Export/Skills/sup_str.txt b/src/Export/Skills/sup_str.txt index 7434c70d02..af7d2df6be 100644 --- a/src/Export/Skills/sup_str.txt +++ b/src/Export/Skills/sup_str.txt @@ -167,6 +167,11 @@ statMap = { #skill SupportBleedPlayerFour #set SupportBleedPlayerFour +statMap = { + ["support_bloodlust_melee_physical_damage_+%_final_vs_bleeding_enemies"] = { + mod("PhysicalDamage", "MORE", nil, ModFlag.Melee, 0, { type = "ActorCondition", actor = "enemy", var = "Bleeding" }), + }, +}, #mods #skillEnd