diff --git a/src/Classes/ConfigTab.lua b/src/Classes/ConfigTab.lua index e3cc9ec6cf..cad8e65fc3 100644 --- a/src/Classes/ConfigTab.lua +++ b/src/Classes/ConfigTab.lua @@ -443,11 +443,18 @@ local ConfigTabClass = newClass("ConfigTab", "UndoHandler", "ControlHost", "Cont end if varData.ifFlag then t_insert(shownFuncs, listOrSingleIfOption(varData.ifFlag, function(ifOption) - local skillModList = self.build.calcsTab.mainEnv.player.mainSkill.skillModList - -- only checking flags of skill in main env. rework may be required - local skillFlags = self.build.calcsTab.mainEnv.player.mainSkill.activeEffect.statSet.skillFlags + local mainEnv = self.build.calcsTab.mainEnv + local skillModList = mainEnv.player.mainSkill.skillModList + local skillFlags = mainEnv.player.mainSkill.activeEffect.statSet.skillFlags -- Check both the skill mods for flags and flags that are set via calcPerform - return skillFlags[ifOption] or skillModList:Flag(nil, ifOption) + if skillFlags[ifOption] or skillModList:Flag(nil, ifOption) then + return true + end + if mainEnv.minion then + skillModList = mainEnv.minion.mainSkill.skillModList + skillFlags = mainEnv.minion.mainSkill.activeEffect.statSet.skillFlags + return skillFlags[ifOption] or skillModList:Flag(nil, ifOption) + end end)) end if varData.ifMod then diff --git a/src/Data/Minions.lua b/src/Data/Minions.lua index ff7c0d3d99..4fad297ba8 100644 --- a/src/Data/Minions.lua +++ b/src/Data/Minions.lua @@ -1063,3 +1063,174 @@ minions["MistRaven"] = { -- set_skill_can_be_active_blocked_from_all_directions [set_skill_can_be_active_blocked_from_all_directions = 1] }, } + +minions["AzmerianSwarm"] = { + name = "[DNT] Azmerian Wisp Swarm", + monsterTags = { "beast", "Unarmed_onhit_audio", "very_fast_movement", }, + life = 0.7, + baseDamageIgnoresAttackSpeed = true, + fireResist = 0, + coldResist = 0, + lightningResist = 0, + chaosResist = 0, + damage = 0.84, + damageSpread = 0.3, + attackTime = 1, + attackRange = 1, + accuracy = 1, + weaponType1 = "None", + weaponType2 = "None", + limit = "AzmerianSwarmLimit", + baseMovementSpeed = 60, + spectreReservation = 50, + companionReservation = 30, + monsterCategory = "Beast", + spawnLocation = { + }, + skillList = { + "AzmerianSwarmAttack", + }, + modList = { + -- set_item_drop_slots [set_item_drop_slots = 0] + -- set_action_attack_or_cast_time_uses_animation_length [set_action_attack_or_cast_time_uses_animation_length = 0] + mod("CurseImmune", "FLAG", 1, 0, 0), -- immune_to_curses [immune_to_curses = 1] + -- immune_to_auras_from_other_entities [immune_to_auras_from_other_entities = 1] + -- set_item_drop_slots [set_item_drop_slots = 0] + -- mana_regeneration_rate_per_minute_% [mana_regeneration_rate_per_minute_% = 100] + -- base_maximum_mana [base_maximum_mana = 100000] + -- set_monster_no_drops_or_experience [set_monster_no_drops_or_experience = 1] + -- set_monster_do_not_fracture [set_monster_do_not_fracture = 1] + mod("FrenzyChargesMax", "OVERRIDE", 0, 0, 0), -- set_max_frenzy_charges [set_max_frenzy_charges = 0] + mod("EnduranceChargesMax", "OVERRIDE", 0, 0, 0), -- set_max_endurance_charges [set_max_endurance_charges = 0] + mod("PowerChargesMax", "OVERRIDE", 0, 0, 0), -- set_max_power_charges [set_max_power_charges = 0] + mod("HiddenMonster", "FLAG", 1, 0, 0), -- is_hidden_monster [is_hidden_monster = 1] + mod("Condition:CannotBeDamaged", "FLAG", 1, 0, 0), -- base_cannot_be_damaged [base_cannot_be_damaged = 1] + mod("StunImmune", "FLAG", 1, 0, 0), -- base_cannot_be_stunned [base_cannot_be_stunned = 1] + mod("KnockbackImmune", "FLAG", 1, 0, 0), -- cannot_be_knocked_back [cannot_be_knocked_back = 1] + mod("FreezeImmune", "FLAG", 1, 0, 0), -- base_cannot_be_frozen [base_cannot_be_frozen = 1] + mod("Life", "OVERRIDE", 1, 0, 0), -- base_maximum_life_is_one [base_maximum_life_is_one = 1] + }, +} + +minions["AzmerianWolf"] = { + name = "Azmerian Wolf", + monsterTags = { "1HSword_onhit_audio", "beast", "mammal_beast", "medium_movement", "not_int", "not_str", "red_blood", }, + life = 2.7, + baseDamageIgnoresAttackSpeed = true, + evasion = 0.3, + fireResist = 0, + coldResist = 0, + lightningResist = 0, + chaosResist = 0, + damage = 2.43, + damageSpread = 0.2, + attackTime = 1, + attackRange = 18, + accuracy = 1, + weaponType1 = "None", + weaponType2 = "None", + baseMovementSpeed = 36, + spectreReservation = 105, + companionReservation = 49.2, + monsterCategory = "Beast", + spawnLocation = { + }, + skillList = { + "MeleeAtAnimationSpeedWolfPackleader", + "WolfPackleaderDashAttack", + "WolfPackleaderLungeBite", + "GTPackleaderGreatHuntDash", + "TBPackleaderGreatHuntDash", + "GAPackleaderGreatHuntDash", + "GreatHuntPackleaderMinion", + "EGPackleaderPrimalInspiration", + }, + modList = { + -- MonsterNoDropsOrExperience [monster_no_drops_or_experience = 1] + -- set_item_drop_slots [set_item_drop_slots = 0] + -- set_action_attack_or_cast_time_uses_animation_length [set_action_attack_or_cast_time_uses_animation_length = 0] + mod("StunDuration", "OVERRIDE", 2, 0, 0), -- set_base_heavy_stun_duration_ms [set_base_heavy_stun_duration_ms = 2000] + -- has_quadruped_head_control_while_turning [has_quadruped_head_control_while_turning = 1] + -- quadruped_head_turn_duration_ms [quadruped_head_turn_duration_ms = 200] + }, +} + +minions["BearCompanion"] = { + name = "Wild Bear Spirit", + monsterTags = { "beast", "Claw_onhit_audio", "mammal_beast", "medium_movement", "not_dex", "not_int", "red_blood", }, + life = 1.5, + baseDamageIgnoresAttackSpeed = true, + armour = 1, + fireResist = 0, + coldResist = 0, + lightningResist = 0, + chaosResist = 0, + damage = 4.5, + damageSpread = 0.2, + attackTime = 0.8, + attackRange = 20, + accuracy = 1, + baseMovementSpeed = 37, + spectreReservation = 67, + companionReservation = 36.6, + monsterCategory = "Beast", + spawnLocation = { + }, + skillList = { + "CompanionBearMaul", + "CompanionBearSlam", + "CompanionBearWarcry", + "CompanionBearLeap", + "CompanionBearLeapImpact", + "CompanionBearLeapImpact2", + }, + modList = { + -- MonsterNoDropsOrExperience [monster_no_drops_or_experience = 1] + -- MonsterIgnoreActorScaleFromStats [ignore_actor_scale_from_stats = 1] + -- set_item_drop_slots [set_item_drop_slots = 0] + -- set_action_attack_or_cast_time_uses_animation_length [set_action_attack_or_cast_time_uses_animation_length = 0] + -- is_bear_companion [is_bear_companion = 1] + -- no_blood_on_death [no_blood_on_death = 1] + -- override_turn_duration_ms [override_turn_duration_ms = 600] + -- has_quadruped_head_control_while_turning [has_quadruped_head_control_while_turning = 1] + -- quadruped_head_turn_duration_ms [quadruped_head_turn_duration_ms = 200] + -- base_presence_radius [base_presence_radius = 40] + mod("DamageTaken", "INC", -50, 0, 0), -- set_base_damage_taken_+% [set_base_damage_taken_+% = -50] + }, +} + +minions["Wardbound"] = { + name = "Wardbound Caster", + monsterTags = { "fast_movement", "humanoid", "not_str", "red_blood", "Unarmed_onhit_audio", }, + life = 1, + baseDamageIgnoresAttackSpeed = true, + energyShield = 0.15, + evasion = 0.25, + fireResist = 0, + coldResist = 0, + lightningResist = 0, + chaosResist = 0, + damage = 1, + damageSpread = 0.2, + attackTime = 1, + attackRange = 14, + accuracy = 1, + limit = "WardboundLimit", + baseMovementSpeed = 41, + spectreReservation = 50, + companionReservation = 30, + monsterCategory = "Humanoid", + spawnLocation = { + }, + skillList = { + "GSWardboundMinionBlast", + }, + modList = { + -- set_item_drop_slots [set_item_drop_slots = 0] + -- set_action_attack_or_cast_time_uses_animation_length [set_action_attack_or_cast_time_uses_animation_length = 0] + -- set_item_drop_slots [set_item_drop_slots = 0] + -- set_monster_no_drops_or_experience [set_monster_no_drops_or_experience = 1] + -- set_monster_do_not_fracture [set_monster_do_not_fracture = 1] + -- set_minion_cannot_be_directed [set_minion_cannot_be_directed = 1] + }, +} diff --git a/src/Data/SkillStatMap.lua b/src/Data/SkillStatMap.lua index 169ee1acbd..7b92552673 100644 --- a/src/Data/SkillStatMap.lua +++ b/src/Data/SkillStatMap.lua @@ -2509,6 +2509,13 @@ return { ["companions_are_gigantic"] = { mod("MinionModifier", "LIST", { mod = flag("Gigantic") }), }, +["minion_damage_+%_final_per_different_elemental_ailment_on_target"] = { + mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Electrocuted" }) }), + mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Frozen" }) }), + mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Chilled" }) }), + mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Ignited" }) }), + mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "Shocked" }) }), +}, ["base_number_of_zombies_allowed"] = { mod("ActiveZombieLimit", "BASE", nil), }, @@ -2557,6 +2564,12 @@ return { ["maximum_corpse_beetles_allowed"] = { mod("BeetleLimit", "BASE", nil), }, +["max_azmerian_swarms"] = { + mod("AzmerianSwarmLimit", "BASE", nil), +}, +["base_number_of_wardbound_minions_allowed"] = { + mod("WardboundLimit", "BASE", nil), +}, ["active_skill_minion_damage_+%_final"] = { mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", nil) }), }, @@ -2882,6 +2895,9 @@ return { ["apply_X_incision_on_hit"] = { flag("Condition:CanInflictIncision", { type = "GlobalEffect", effectType = "Buff", effectName = "Incision" }), }, +["%_chance_to_apply_hounded_by_wisps_on_hit"] = { + flag("Condition:CanInflictFaerieFire", { type = "GlobalEffect", effectType = "Buff", effectName = "FaerieFire" }), +}, ["armour_break_physical_damage_%_dealt_as_armour_break"] = { flag("Condition:CanArmourBreak", { type = "GlobalEffect", effectType = "Buff", effectName = "ArmourBreak" }), }, @@ -2972,6 +2988,9 @@ return { mod("DamageTaken", "MORE", nil), value = -100, }, +["set_base_damage_taken_+%"] = { + mod("DamageTaken", "INC", nil), +}, -- -- Gem Levels / quality -- diff --git a/src/Data/Skills/minion.lua b/src/Data/Skills/minion.lua index 22818aa0ea..b4ab168cc4 100644 --- a/src/Data/Skills/minion.lua +++ b/src/Data/Skills/minion.lua @@ -2482,4 +2482,334 @@ skills["TangmazuMadFlightMinion"] = { }, }, } +} +skills["AzmerianSwarmAttack"] = { + name = "Basic Attack", + hidden = true, + icon = "Art/2DArt/SkillIcons/iconbasicattack.dds", + skillTypes = { [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.MirageArcherCanUse] = true, [SkillType.Projectile] = true, [SkillType.MeleeSingleTarget] = true, [SkillType.Melee] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.AttackInPlace] = true, }, + castTime = 1, + qualityStats = { + }, + levels = { + [1] = { baseMultiplier = 0.75, levelRequirement = 0, }, + }, + statSets = { + [1] = { + label = "Basic Attack", + incrementalEffectiveness = 0.054999999701977, + statDescriptionScope = "skill_stat_descriptions", + baseFlags = { + attack = true, + melee = true, + }, + constantStats = { + { "attack_maximum_action_distance_+", 4 }, + }, + stats = { + "action_attack_or_cast_time_uses_animation_length", + }, + levels = { + [1] = { actorLevel = 1, }, + }, + }, + } +} +skills["MeleeAtAnimationSpeedWolfPackleader"] = { + name = "Basic Attack", + hidden = true, + icon = "Art/2DArt/SkillIcons/iconbasicattack.dds", + skillTypes = { [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.MirageArcherCanUse] = true, [SkillType.Projectile] = true, [SkillType.MeleeSingleTarget] = true, [SkillType.Melee] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.AttackInPlace] = true, }, + castTime = 1, + qualityStats = { + }, + levels = { + [1] = { baseMultiplier = 2.5, levelRequirement = 0, }, + }, + statSets = { + [1] = { + label = "Melee", + baseEffectiveness = 0, + incrementalEffectiveness = 0.054999999701977, + statDescriptionScope = "skill_stat_descriptions", + baseFlags = { + attack = true, + melee = true, + }, + constantStats = { + { "maim_on_hit_%", 100 }, + { "attack_maximum_action_distance_+", 15 }, + }, + stats = { + "action_attack_or_cast_time_uses_animation_length", + }, + levels = { + [1] = { actorLevel = 1, }, + }, + }, + } +} +skills["WolfPackleaderDashAttack"] = { + name = "Dash", + hidden = true, + icon = "Art/2DArt/SkillIcons/iconbasicattack.dds", + skillTypes = { [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.MirageArcherCanUse] = true, [SkillType.Projectile] = true, [SkillType.MeleeSingleTarget] = true, [SkillType.Melee] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.AttackInPlace] = true, }, + castTime = 1, + qualityStats = { + }, + levels = { + [1] = { baseMultiplier = 7, cooldown = 7.5, levelRequirement = 0, storedUses = 1, }, + }, + statSets = { + [1] = { + label = "Dash", + incrementalEffectiveness = 0.054999999701977, + statDescriptionScope = "skill_stat_descriptions", + baseFlags = { + attack = true, + melee = true, + area = true, + }, + constantStats = { + { "attack_maximum_action_distance_+", 35 }, + }, + stats = { + "is_area_damage", + "action_attack_or_cast_time_uses_animation_length", + }, + levels = { + [1] = { actorLevel = 1, }, + }, + }, + } +} +skills["WolfPackleaderLungeBite"] = { + name = "Bite", + hidden = true, + icon = "Art/2DArt/SkillIcons/iconbasicattack.dds", + skillTypes = { [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.MirageArcherCanUse] = true, [SkillType.Projectile] = true, [SkillType.MeleeSingleTarget] = true, [SkillType.Melee] = true, [SkillType.ProjectilesFromUser] = true, [SkillType.AttackInPlace] = true, }, + castTime = 1, + qualityStats = { + }, + levels = { + [1] = { baseMultiplier = 3.5, cooldown = 3.5, levelRequirement = 0, storedUses = 1, }, + }, + statSets = { + [1] = { + label = "Lunge", + incrementalEffectiveness = 0.054999999701977, + statDescriptionScope = "skill_stat_descriptions", + baseFlags = { + attack = true, + melee = true, + area = true, + }, + constantStats = { + { "attack_maximum_action_distance_+", 30 }, + { "bleed_on_hit_with_attacks_%", 100 }, + }, + stats = { + "is_area_damage", + "action_attack_or_cast_time_uses_animation_length", + }, + levels = { + [1] = { actorLevel = 1, }, + }, + }, + } +} +skills["GreatHuntPackleaderMinion"] = { + name = "Eternal Hunt", + hidden = true, + icon = "Art/2DArt/SkillIcons/ThePackleaderCommandSkill.dds", + description = "The Azmerian Wolf howls, reaching out to the spirits to begin an Eternal Hunt. While the Eternal Hunt persists, spirits manifest as spectral wolves to ambush foes, damaging and Maiming enemies they Hit before disappearing.", + skillTypes = { [SkillType.Attack] = true, [SkillType.Area] = true, [SkillType.Damage] = true, [SkillType.Cooldown] = true, [SkillType.Duration] = true, [SkillType.Physical] = true, }, + castTime = 4, + qualityStats = { + }, + levels = { + [1] = { attackSpeedMultiplier = 50, baseMultiplier = 10, cooldown = 15, levelRequirement = 0, storedUses = 1, }, + }, + statSets = { + [1] = { + label = "Eternal Hunt", + incrementalEffectiveness = 0.054999999701977, + statDescriptionScope = "packleader_great_hunt", + baseFlags = { + attack = true, + melee = true, + }, + constantStats = { + { "active_skill_base_area_of_effect_radius", 14 }, + { "active_skill_base_secondary_area_of_effect_radius", 20 }, + { "skill_specific_stat_description_mode", 7 }, + }, + stats = { + "is_commandable_skill", + "skill_cannot_be_frozen", + "skill_cannot_be_electrocuted", + "skill_cannot_be_knocked_back", + "skill_cannot_be_stunned", + "action_attack_or_cast_time_uses_animation_length", + }, + levels = { + [1] = { actorLevel = 1, }, + }, + }, + } +} +skills["CompanionBearMaul"] = { + name = "Maul", + hidden = true, + icon = "Art/2DArt/SkillIcons/DruidBearMaul.dds", + skillTypes = { [SkillType.Attack] = true, [SkillType.Melee] = true, [SkillType.MeleeSingleTarget] = true, [SkillType.AttackInPlace] = true, }, + castTime = 1, + qualityStats = { + }, + levels = { + [1] = { attackSpeedMultiplier = 20, levelRequirement = 0, }, + }, + statSets = { + [1] = { + label = "Maul", + incrementalEffectiveness = 0.054999999701977, + statDescriptionScope = "skill_stat_descriptions", + baseFlags = { + attack = true, + melee = true, + }, + constantStats = { + { "melee_conditional_step_distance", 5 }, + { "moving_melee_conditional_step_distance", 15 }, + { "armour_break_damage_%_dealt_as_armour_break", 5 }, + { "attack_maximum_action_distance_+", -6 }, + { "melee_range_+", 6 }, + }, + stats = { + "use_scaled_contact_offset", + }, + levels = { + [1] = { actorLevel = 1, }, + }, + }, + } +} +skills["CompanionBearSlam"] = { + name = "Slam", + hidden = true, + icon = "Art/2DArt/SkillIcons/iconbasicattack.dds", + skillTypes = { [SkillType.Area] = true, [SkillType.Attack] = true, [SkillType.Slam] = true, [SkillType.Melee] = true, [SkillType.Cooldown] = true, [SkillType.AttackInPlace] = true, }, + castTime = 1, + qualityStats = { + }, + levels = { + [1] = { cooldown = 5, levelRequirement = 0, storedUses = 1, }, + }, + statSets = { + [1] = { + label = "Slam", + incrementalEffectiveness = 0.054999999701977, + statDescriptionScope = "skill_stat_descriptions", + baseFlags = { + attack = true, + melee = true, + area = true, + }, + constantStats = { + { "active_skill_base_area_of_effect_radius", 25 }, + { "bear_skills_additional_base_attack_time_when_performing_from_standing_stance", -500 }, + { "base_life_leech_from_any_attack_damage_permyriad", 5000 }, + }, + stats = { + "is_area_damage", + "action_attack_or_cast_time_uses_animation_length", + "base_skill_show_average_damage_instead_of_dps", + "global_knockback", + }, + levels = { + [1] = { actorLevel = 1, }, + }, + }, + } +} +skills["CompanionBearLeapImpact"] = { + name = "Leap Slam", + hidden = true, + icon = "", + skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, [SkillType.AttackInPlace] = true, }, + castTime = 1, + qualityStats = { + }, + levels = { + [1] = { levelRequirement = 0, }, + }, + statSets = { + [1] = { + label = "Leap Slam", + incrementalEffectiveness = 0.054999999701977, + statDescriptionScope = "skill_stat_descriptions", + baseFlags = { + attack = true, + melee = true, + area = true, + }, + constantStats = { + { "generic_knockback_+%_final_at_min_distance", 200 }, + { "generic_knockback_+%_final_at_max_distance", -90 }, + { "generic_knockback_distance_limit", 25 }, + }, + stats = { + "is_area_damage", + "action_attack_or_cast_time_uses_animation_length", + "base_skill_show_average_damage_instead_of_dps", + "display_statset_hide_usage_stats", + "global_knockback", + "global_maim_on_hit", + }, + levels = { + [1] = { actorLevel = 1, }, + }, + }, + } +} +skills["GSWardboundMinionBlast"] = { + name = "Cold Spell", + hidden = true, + icon = "", + skillTypes = { [SkillType.Triggerable] = true, [SkillType.Spell] = true, [SkillType.Damage] = true, [SkillType.AttackInPlace] = true, }, + castTime = 1, + qualityStats = { + }, + levels = { + [1] = { critChance = 7, levelRequirement = 0, }, + }, + statSets = { + [1] = { + label = "Cold Spell", + baseEffectiveness = 2, + incrementalEffectiveness = 0.25, + damageIncrementalEffectiveness = 0.041499998420477, + statDescriptionScope = "geometry_spell", + baseFlags = { + spell = true, + area = true, + }, + constantStats = { + { "spell_maximum_action_distance_+%", -65 }, + }, + stats = { + "spell_minimum_base_cold_damage", + "spell_maximum_base_cold_damage", + "is_area_damage", + "action_attack_or_cast_time_uses_animation_length", + }, + notMinionStat = { + "spell_minimum_base_cold_damage", + "spell_maximum_base_cold_damage", + }, + levels = { + [1] = { 0.80000001192093, 1.2000000476837, statInterpolation = { 3, 3, }, actorLevel = 1, }, + }, + }, + } } \ No newline at end of file diff --git a/src/Data/Skills/other.lua b/src/Data/Skills/other.lua index 46496bbd08..1d85a61a70 100644 --- a/src/Data/Skills/other.lua +++ b/src/Data/Skills/other.lua @@ -1761,6 +1761,9 @@ skills["AzmerianSwarmPlayer"] = { baseTypeName = "Azmerian Swarms", icon = "Art/2DArt/SkillIcons/FluttermothSkillIcon.dds", fromItem = true, + minionList = { + "AzmerianSwarm", + }, color = 4, description = "While active, summons short-lived Azmerian Swarms when you kill enemies affected by Elemental Ailments or hit Rare or Unique enemies affected by Elemental Ailments. The swarms are untargetable Minions that pursue nearby enemies to Attack them and infict Faerie Fire on Hit.", skillTypes = { [SkillType.Buff] = true, [SkillType.HasReservation] = true, [SkillType.OngoingSkill] = true, [SkillType.Persistent] = true, [SkillType.Limit] = true, [SkillType.Duration] = true, [SkillType.Minion] = true, [SkillType.CreatesMinion] = true, [SkillType.Fire] = true, [SkillType.Cold] = true, [SkillType.Lightning] = true, [SkillType.Physical] = true, [SkillType.AttackInPlace] = true, }, @@ -1816,7 +1819,18 @@ skills["AzmerianSwarmPlayer"] = { label = "Azmerian Swarms", incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "azmerian_swarm_statset_0", + statMap = { + ["active_skill_minion_1%_attack_speed_+%_per_X_player_dexterity"] = { + mod("MinionModifier", "LIST", { mod = mod("Speed", "INC", nil, ModFlag.Attack, 0, { type = "PerStat", stat = "Dex", actor = "parent", div = 5 }) }), + div = 5, + }, + ["non_skill_base_physical_damage_%_to_convert_to_random_element"] = { + mod("MinionModifier", "LIST", { mod = mod("PhysicalDamageConvertToRandom", "BASE", nil) }), + }, + }, baseFlags = { + minion = true, + duration = true, }, constantStats = { { "max_azmerian_swarms", 8 }, @@ -1883,6 +1897,9 @@ skills["SummonAzmerianWolfPlayer"] = { baseTypeName = "Azmerian Wolf", icon = "Art/2DArt/SkillIcons/ThePackLeaderBaseMinionSkill.dds", fromItem = true, + minionList = { + "AzmerianWolf", + }, color = 4, description = "Summons an ancient Reviving Azmerian Wolf that can howl, calling to spirits convening an Eternal Hunt on Command. It Maims when attacking foes, and can lunge to bite and inflict Bleeding, or howl to inspire nearby allies.", skillTypes = { [SkillType.Minion] = true, [SkillType.CreatesMinion] = true, [SkillType.HasReservation] = true, [SkillType.Persistent] = true, [SkillType.Physical] = true, [SkillType.Companion] = true, [SkillType.CreatesCompanion] = true, [SkillType.CommandableMinion] = true, }, @@ -1939,6 +1956,7 @@ skills["SummonAzmerianWolfPlayer"] = { incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "skill_stat_descriptions", baseFlags = { + minion = true, }, constantStats = { { "display_minion_monster_type", 2 }, @@ -20372,6 +20390,9 @@ skills["WardboundMinionsPlayer"] = { name = "Wardbound Minions", baseTypeName = "Wardbound Minions", icon = "Art/2DArt/SkillIcons/ExpeditionWardboundMinions.dds", + minionList = { + "Wardbound", + }, color = 4, description = "Spend all your Runic Ward to summon Temporary Wardbound Casters. These Minions target nearby enemies with damaging Cold Spells.", skillTypes = { [SkillType.Spell] = true, [SkillType.CreatesMinion] = true, [SkillType.Duration] = true, [SkillType.MinionsCanExplode] = true, [SkillType.Trappable] = true, [SkillType.Mineable] = true, [SkillType.Multicastable] = true, [SkillType.Triggerable] = true, [SkillType.Unleashable] = true, [SkillType.UsableWhileMoving] = true, [SkillType.Minion] = true, }, @@ -20428,6 +20449,8 @@ skills["WardboundMinionsPlayer"] = { incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "wardbound_minions", baseFlags = { + minion = true, + duration = true, }, constantStats = { { "base_skill_effect_duration", 15000 }, @@ -20491,6 +20514,9 @@ skills["WildProtectorPlayer"] = { baseTypeName = "Wild Protector", icon = "Art/2DArt/SkillIcons/WildspeakerBearSkill.dds", fromTree = true, + minionList = { + "BearCompanion", + }, color = 4, description = "Call upon a Bear Spirit Companion to maul your foes. The Bear Spirit leaps at enemies to Maim them, Leeches Life with its slam, and periodically roars to Intimidate enemies. The Bear Spirit does not count toward your Companion limit.", skillTypes = { [SkillType.Companion] = true, [SkillType.Minion] = true, [SkillType.CreatesMinion] = true, [SkillType.HasReservation] = true, [SkillType.Persistent] = true, [SkillType.CreatesCompanion] = true, [SkillType.AttackInPlace] = true, [SkillType.Physical] = true, }, @@ -20548,6 +20574,7 @@ skills["WildProtectorPlayer"] = { incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "skill_stat_descriptions", baseFlags = { + minion = true, }, constantStats = { { "skill_desired_amount_override", 1 }, diff --git a/src/Export/Minions/Minions.txt b/src/Export/Minions/Minions.txt index e4fdbd99b5..415612a709 100644 --- a/src/Export/Minions/Minions.txt +++ b/src/Export/Minions/Minions.txt @@ -102,4 +102,18 @@ local minions, mod = ... #emit #monster Metadata/Monsters/Daemon/TangmazuRavensDaemon/TangmazuRavensDaemon MistRaven +#emit + +#monster Metadata/Monsters/UniqueItemMonsters/AzmerianSwarmMinion/AzmerianSwarmMinion AzmerianSwarm +#limit AzmerianSwarmLimit +#emit + +#monster Metadata/Monsters/UniqueItemMonsters/AzmerianPackleader/PackleaderWolfMinion AzmerianWolf +#emit + +#monster Metadata/Monsters/CompanionBear/CompanionBearPlayerSummoned BearCompanion +#emit + +#monster Metadata/Monsters/LeagueExpeditionNew/PlayerSummoned/WardboundMinionPlayerSummoned Wardbound +#limit WardboundLimit #emit \ No newline at end of file diff --git a/src/Export/Skills/minion.txt b/src/Export/Skills/minion.txt index f6f42f2751..19988ad829 100644 --- a/src/Export/Skills/minion.txt +++ b/src/Export/Skills/minion.txt @@ -353,4 +353,58 @@ statMap = { #set TangmazuMadFlightMinion #flags attack area duration #mods +#skillEnd + +#skill AzmerianSwarmAttack +#set AzmerianSwarmAttack +#flags attack melee +#mods +#skillEnd + +#skill MeleeAtAnimationSpeedWolfPackleader +#set WolfPackleaderMeleeAtAnimationSpeed +#flags attack melee +#mods +#skillEnd + +#skill WolfPackleaderDashAttack Dash +#set WolfPackleaderDashAttack +#flags attack melee area +#mods +#skillEnd + +#skill WolfPackleaderLungeBite Bite +#set WolfPackleaderLungeBite +#flags attack melee area +#mods +#skillEnd + +#skill GreatHuntPackleaderMinion +#set GreatHuntPackleaderMinion +#flags attack melee +#mods +#skillEnd + +#skill CompanionBearMaul +#set CompanionBearMaul +#flags attack melee +#mods +#skillEnd + +#skill CompanionBearSlam +#set CompanionBearSlam +#flags attack melee area +#mods +#skillEnd + +#skill CompanionBearLeapImpact Leap Slam +#set CompanionBearLeapImpact +#flags attack melee area +#mods +#skillEnd + +#skill GSWardboundMinionBlast Cold Spell +#set GSWardboundMinionBlast +#flags spell area +#mods #skillEnd \ No newline at end of file diff --git a/src/Export/Skills/other.txt b/src/Export/Skills/other.txt index 327c9b5d87..c7c8ec7573 100644 --- a/src/Export/Skills/other.txt +++ b/src/Export/Skills/other.txt @@ -120,16 +120,27 @@ statMap = { #skillEnd #from item +#minionList AzmerianSwarm #skill AzmerianSwarmPlayer #set AzmerianSwarmPlayer -#flags +#flags minion duration +statMap = { + ["active_skill_minion_1%_attack_speed_+%_per_X_player_dexterity"] = { + mod("MinionModifier", "LIST", { mod = mod("Speed", "INC", nil, ModFlag.Attack, 0, { type = "PerStat", stat = "Dex", actor = "parent", div = 5 }) }), + div = 5, + }, + ["non_skill_base_physical_damage_%_to_convert_to_random_element"] = { + mod("MinionModifier", "LIST", { mod = mod("PhysicalDamageConvertToRandom", "BASE", nil) }), + }, +}, #mods #skillEnd #from item +#minionList AzmerianWolf #skill SummonAzmerianWolfPlayer #set SummonAzmerianWolfPlayer -#flags +#flags minion #mods #skillEnd @@ -1411,16 +1422,18 @@ statMap = { #mods #skillEnd +#minionList Wardbound #skill WardboundMinionsPlayer #set WardboundMinionsPlayer -#flags +#flags minion duration #mods #skillEnd #from tree +#minionList BearCompanion #skill WildProtectorPlayer #set WildProtectorPlayer -#flags +#flags minion #mods #skillEnd diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index 8518c0af85..13472085ea 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -70,6 +70,7 @@ function calcs.initModDB(env, modDB) modDB:NewMod("DamageTaken", "INC", 10, "Base", ModFlag.Spell, { type = "Condition", var = "Unnerved"}) modDB:NewMod("DamageTaken", "INC", 10, "Base", ModFlag.Spell, { type = "Condition", var = "Unnerved", neg = true}, { type = "Condition", var = "Party:Unnerved"}) modDB:NewMod("Damage", "MORE", -10, "Base", { type = "Condition", var = "Debilitated"}) + modDB:NewMod("DamageGainAsRandom", "BASE", 2, "Faerie Fire", { type = "Multiplier", var = "FaerieFireStack", limit = 10, actor = "enemy" }) modDB:NewMod("Condition:Burning", "FLAG", true, "Base", { type = "IgnoreCond" }, { type = "Condition", var = "Ignited" }) modDB:NewMod("Condition:Poisoned", "FLAG", true, "Base", { type = "IgnoreCond" }, { type = "MultiplierThreshold", var = "PoisonStack", threshold = 1 }) modDB:NewMod("ShockBase", "BASE", data.gameConstants["BaseShockMagnitude"], "Base", { type = "ActorCondition", actor = "enemy", var = "Shocked" }) diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index e4d5a336bc..88bab9b6ac 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1703,6 +1703,9 @@ Huge sets the radius to 11. { var = "multiplierIncisionStackCount", type = "count", label = "# of Incision Stacks:", ifFlag = "Condition:CanInflictIncision", tooltip = "Incision applies 10% chance to Bleed the enemy, up to 10 stacks.", apply = function(val, modList, enemyModList) enemyModList:NewMod("Multiplier:IncisionStack", "BASE", m_min(val, 10), "Config", { type = "Condition", var = "Effective" }) end }, + { var = "multiplierFaerieFireStackCount", type = "count", label = "# of Faerie Fire Stacks:", ifFlag = "Condition:CanInflictFaerieFire", tooltip = "Each Faerie Fire Debuff causes Hits against the affected target to Gain 2% of damage as Extra Damage of a random Element.\nThe Debuff lasts 8 seconds, and up to 10 can be applied to each target.", apply = function(val, modList, enemyModList) + enemyModList:NewMod("Multiplier:FaerieFireStack", "BASE", m_min(val, 10), "Config", { type = "Condition", var = "Effective" }) + end }, { var = "conditionEnemyPoisoned", type = "check", label = "Is the enemy Poisoned?", ifEnemyCond = "Poisoned", apply = function(val, modList, enemyModList) enemyModList:NewMod("Condition:Poisoned", "FLAG", true, "Config", { type = "Condition", var = "Effective" }) end },