Skip to content

Commit 703a702

Browse files
LocalIdentityLocalIdentity
andauthored
Add initial support for Guardian Minions (#6445)
Adds support for the new Guardian minions to show in the sidebar. The level is manually set to 85 right now as we don't support the `minion_actor_level_is_user_level_up_to_maximum` stat yet Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 8d2f3ee commit 703a702

File tree

7 files changed

+201
-0
lines changed

7 files changed

+201
-0
lines changed

src/Data/Minions.lua

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,3 +823,90 @@ minions["SummonedArbalists"] = {
823823
-- MonsterCannotBeDamaged [cannot_be_damaged = 1]
824824
},
825825
}
826+
827+
minions["GuardianSentinel"] = {
828+
name = "Sentinel of Radiance",
829+
life = 12,
830+
armour = 0.5,
831+
fireResist = 40,
832+
coldResist = 40,
833+
lightningResist = 40,
834+
chaosResist = 20,
835+
damage = 20,
836+
damageSpread = 0.2,
837+
attackTime = 0.83,
838+
attackRange = 17,
839+
accuracy = 3.4,
840+
skillList = {
841+
"TeleportVaalDomination",
842+
"VaalDominationMelee",
843+
},
844+
modList = {
845+
},
846+
}
847+
848+
minions["GuardianRelicFire"] = {
849+
name = "Fire Relic",
850+
life = 4,
851+
energyShield = 0.6,
852+
fireResist = 40,
853+
coldResist = 40,
854+
lightningResist = 40,
855+
chaosResist = 20,
856+
damage = 1,
857+
damageSpread = 0,
858+
attackTime = 1,
859+
attackRange = 6,
860+
accuracy = 1,
861+
skillList = {
862+
"RelicTeleport",
863+
"Anger",
864+
},
865+
modList = {
866+
-- EmergeSpeedHigh [emerge_speed_+% = 0]
867+
},
868+
}
869+
870+
minions["GuardianRelicCold"] = {
871+
name = "Cold Relic",
872+
life = 4,
873+
energyShield = 0.6,
874+
fireResist = 40,
875+
coldResist = 40,
876+
lightningResist = 40,
877+
chaosResist = 20,
878+
damage = 1,
879+
damageSpread = 0,
880+
attackTime = 1,
881+
attackRange = 6,
882+
accuracy = 1,
883+
skillList = {
884+
"RelicTeleport",
885+
"Hatred",
886+
},
887+
modList = {
888+
-- EmergeSpeedHigh [emerge_speed_+% = 0]
889+
},
890+
}
891+
892+
minions["GuardianRelicLightning"] = {
893+
name = "Lightning Relic",
894+
life = 4,
895+
energyShield = 0.6,
896+
fireResist = 40,
897+
coldResist = 40,
898+
lightningResist = 40,
899+
chaosResist = 20,
900+
damage = 1,
901+
damageSpread = 0,
902+
attackTime = 1,
903+
attackRange = 6,
904+
accuracy = 1,
905+
skillList = {
906+
"RelicTeleport",
907+
"Wrath",
908+
},
909+
modList = {
910+
-- EmergeSpeedHigh [emerge_speed_+% = 0]
911+
},
912+
}

src/Data/Skills/other.lua

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2628,6 +2628,39 @@ skills["SupportCursePillarTriggerCurses"] = {
26282628
[20] = { levelRequirement = 70, },
26292629
},
26302630
}
2631+
skills["SummonGuardianRelic"] = {
2632+
name = "Summon Elemental Relic",
2633+
hidden = true,
2634+
color = 4,
2635+
description = "Summons a Relic of a random element that stays near you. Depending on the element chosen, the relic minion will have an Anger, Hatred, or Wrath aura. These relics explode when they die, dealing elemental damage to enemies around them. If you already have a relic of the chosen element, its duration will be refreshed instead of summoning a new one.",
2636+
skillTypes = { [SkillType.Spell] = true, [SkillType.RandomElement] = true, [SkillType.CreatesMinion] = true, [SkillType.Minion] = true, [SkillType.MinionsCanExplode] = true, [SkillType.Duration] = true, [SkillType.Cooldown] = true, [SkillType.Triggerable] = true, [SkillType.Triggered] = true, [SkillType.InbuiltTrigger] = true, },
2637+
minionSkillTypes = { [SkillType.Damage] = true, [SkillType.Area] = true, [SkillType.Fire] = true, [SkillType.Cold] = true, [SkillType.Lightning] = true, [SkillType.Aura] = true, },
2638+
statDescriptionScope = "minion_spell_skill_stat_descriptions",
2639+
castTime = 1,
2640+
fromTree = true,
2641+
minionList = {
2642+
"GuardianRelicFire",
2643+
"GuardianRelicCold",
2644+
"GuardianRelicLightning",
2645+
},
2646+
baseFlags = {
2647+
spell = true,
2648+
minion = true,
2649+
duration = true,
2650+
},
2651+
constantStats = {
2652+
{ "display_minion_monster_type", 24 },
2653+
{ "guardian_relic_explode_on_death_for_%_life_as_element_damage", 100 },
2654+
{ "minion_actor_level_is_user_level_up_to_maximum", 85 },
2655+
{ "skill_triggered_by_nearby_allies_kill_or_hit_rare_unique_%_chance", 25 },
2656+
},
2657+
stats = {
2658+
"base_skill_effect_duration",
2659+
},
2660+
levels = {
2661+
[20] = { 5000, storedUses = 1, levelRequirement = 85, cooldown = 0.3, statInterpolation = { 1, }, },
2662+
},
2663+
}
26312664
skills["SummonHarbingerOfTheArcaneUber"] = {
26322665
name = "Summon Greater Harbinger of the Arcane",
26332666
hidden = true,
@@ -2960,6 +2993,39 @@ skills["TriggeredSummonGhostOnKill"] = {
29602993
[20] = { manaMultiplier = 20, levelRequirement = 70, },
29612994
},
29622995
}
2996+
skills["SummonRadiantSentinel"] = {
2997+
name = "Summon Sentinel of Radiance",
2998+
hidden = true,
2999+
color = 4,
3000+
baseEffectiveness = 2.0517001152039,
3001+
incrementalEffectiveness = 0.043200001120567,
3002+
description = "Summons a Sentinel of Radiance which follows you and attacks enemies in melee, while burning enemies around it and taking a portion of damage from hits for you. You can only have one Sentinel of Radiance.",
3003+
skillTypes = { [SkillType.Spell] = true, [SkillType.Minion] = true, [SkillType.MinionsCanExplode] = true, [SkillType.CreatesMinion] = true, [SkillType.Multicastable] = true, [SkillType.Cascadable] = true, [SkillType.Triggerable] = true, [SkillType.Totemable] = true, [SkillType.Trappable] = true, [SkillType.Mineable] = true, [SkillType.CanRapidFire] = true, },
3004+
minionSkillTypes = { [SkillType.DamageOverTime] = true, [SkillType.Attack] = true, [SkillType.Melee] = true, [SkillType.MeleeSingleTarget] = true, },
3005+
statDescriptionScope = "single_minion_spell_skill_stat_descriptions",
3006+
castTime = 0.75,
3007+
fromTree = true,
3008+
minionList = {
3009+
"GuardianSentinel",
3010+
},
3011+
baseFlags = {
3012+
spell = true,
3013+
minion = true,
3014+
duration = true,
3015+
},
3016+
constantStats = {
3017+
{ "display_minion_monster_type", 23 },
3018+
{ "base_skill_effect_duration", 20000 },
3019+
{ "minion_actor_level_is_user_level_up_to_maximum", 85 },
3020+
},
3021+
stats = {
3022+
"radiant_sentinel_minion_burning_effect_radius",
3023+
"radiant_sentinel_minion_fire_%_of_life_to_deal_nearby_per_minute",
3024+
},
3025+
levels = {
3026+
[20] = { 45, 1800, damageEffectiveness = 2, critChance = 6, levelRequirement = 85, statInterpolation = { 1, 1, }, cost = { Mana = 40, }, },
3027+
},
3028+
}
29633029
skills["SummonRigwaldsPack"] = {
29643030
name = "Summon Spectral Wolf",
29653031
hidden = true,

src/Export/Classes/GGPKData.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ function GGPKClass:GetNeededFiles()
211211
"Data/passiveskilloverridetypes.dat",
212212
"Data/passiveskilltattoos.dat",
213213
"Data/passiveskilltattootargetsets.dat",
214+
"Data/displayminionmonstertype.dat",
214215
}
215216
local txtFiles = {
216217
"Metadata/StatDescriptions/passive_skill_aura_stat_descriptions.txt",

src/Export/Minions/Minions.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,16 @@ local minions, mod = ...
135135

136136
#monster Metadata/Monsters/LeagueExpedition/Arbalest/SummonedArbalest SummonedArbalists
137137
#limit ActiveArbalistLimit
138+
#emit
139+
140+
#monster Metadata/Monsters/Axis/AxisEliteSoldierRadiance GuardianSentinel
141+
#emit
142+
143+
#monster Metadata/Monsters/AnimatedItem/ElementalLivingRelicFire GuardianRelicFire
144+
#emit
145+
146+
#monster Metadata/Monsters/AnimatedItem/ElementalLivingRelicCold GuardianRelicCold
147+
#emit
148+
149+
#monster Metadata/Monsters/AnimatedItem/ElementalLivingRelicLightning GuardianRelicLightning
138150
#emit

src/Export/Skills/other.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,16 @@ local skills, mod, flag, skill = ...
727727
#baseMod skill("manaReservationPercent", 0)
728728
#mods
729729

730+
#skill SummonGuardianRelic
731+
#flags spell minion duration
732+
fromTree = true,
733+
minionList = {
734+
"GuardianRelicFire",
735+
"GuardianRelicCold",
736+
"GuardianRelicLightning",
737+
},
738+
#mods
739+
730740
#skill SummonHarbingerOfTheArcaneUber
731741
#flags spell minion
732742
fromItem = true,
@@ -804,6 +814,14 @@ local skills, mod, flag, skill = ...
804814
},
805815
#mods
806816

817+
#skill SummonRadiantSentinel
818+
#flags spell minion duration
819+
fromTree = true,
820+
minionList = {
821+
"GuardianSentinel",
822+
},
823+
#mods
824+
807825
#skill SummonRigwaldsPack
808826
#flags spell minion duration
809827
fromItem = true,

src/Export/spec.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10497,6 +10497,22 @@ return {
1049710497
},
1049810498
ZanaQuests={
1049910499
},
10500+
displayminionmonstertype={
10501+
[1]={
10502+
list=false,
10503+
name="Id",
10504+
refTo="",
10505+
type="Int",
10506+
width=50
10507+
},
10508+
[2]={
10509+
list=false,
10510+
name="MonsterVarieties",
10511+
refTo="MonsterVarieties",
10512+
type="Key",
10513+
width=400
10514+
}
10515+
},
1050010516
passiveoverridelimits={
1050110517
[1]={
1050210518
list=false,

src/Modules/ModParser.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2771,6 +2771,7 @@ local specialModList = {
27712771
["%d+%% chance to trigger level (%d+) (.+) when you use a socketed skill"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
27722772
["%d+%% chance to trigger level (%d+) (.+) when you gain avian's might or avian's flight"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
27732773
["%d+%% chance to trigger level (%d+) (.+) on critical strike with this weapon"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
2774+
["%d+%% chance to trigger level (%d+) (.+) when you or a nearby ally kill an enemy, or hit a rare or unique enemy"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
27742775
["%d+%% chance to [ct][ar][si][tg]g?e?r? level (%d+) (.+) on %a+"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
27752776
["attack with level (%d+) (.+) when you kill a bleeding enemy"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,
27762777
["triggers? level (%d+) (.+) when you kill a bleeding enemy"] = function(num, _, skill) return triggerExtraSkill(skill, num) end,

0 commit comments

Comments
 (0)