Jump to content

Creating a Wizard ability that makes AOE spells target foes only


Recommended Posts

How do I create a wizard ability that make allies immune to aoe spells cast by the wizard?

I have done the following:

  1. Created an aura ability with Ally as ValidTargetTypes
  2. Created a status effect with 999 AOEDefense
  3. Added Class Wizard, Source Spell, Target Type AOE as AttackFilter in the status effect (not sure if correct)?

I think I need to use ApplicationPrerequisites instead of AttackFilter but I do not know which condition to use.

Anyone can point out the correct setup?

Edited by Cmushi
Link to comment
Share on other sites

Tried different setups with no luck:

  1. Replaced AOEDefense with Immunity
  2. Set TriggerAdjustment on OnApply and ValidateWithAttackFilter True
  3. Removed Aura and set StatusEffect with AllAccuracy -999 

None of them are preventing hitting allies and I still do not how to limit to allies only.

Link to comment
Share on other sites

It's not the most elegant solution as far as comparability with other mods but one thing you try is to change all the desired spells' attacks to have an AffectedTargetCondtional that checks for a specific status effect that caster has applied with the ability.
Something like:

not HasStatusEffectFromSource(Target, ignore_friendly_damage, Owner)

This should apply the effect of the spell but only on condition that the Target hasn't been given the status effect from the Caster (owner). I think... I haven't really tested this beyond a single ability.

Edited by Kvellen
Link to comment
Share on other sites

On 7/31/2024 at 2:37 PM, Kvellen said:

It's not the most elegant solution as far as comparability with other mods but one thing you try is to change all the desired spells' attacks to have an AffectedTargetCondtional that checks for a specific status effect that caster has applied with the ability.
Something like:

not HasStatusEffectFromSource(Target, ignore_friendly_damage, Owner)

This should apply the effect of the spell but only on condition that the Target hasn't been given the status effect from the Caster (owner). I think... I haven't really tested this beyond a single ability.

Thank you for the suggestion. I am currently in the process of creating copies of the spells and adjusting them to be foe-only, which requires a similar amount of time as tweaking the spell attacks.

Link to comment
Share on other sites

I noticed that the Paladin ability, Aegis of Loyalty, grants intellect immunity to an ally which is similar to what I am trying to achieve.

I copied the implementation, as it triggers an effect when hitting allies but it still did not work.

Ability:

image.thumb.png.539b22155ffd8ebef9f0e5977f20630a.png

ApplyOnEvent SE:

image.thumb.png.0063a8c0d9184c4390f98040c0eec187.png

Immunity SE:

image.thumb.png.c138d180864f8bde932e607d11aa4958.png

I tested Immunity SE by calling it directly via the ability (and skipping ApplyOnEvent SE). "Immunity" appeared in the log after casting Chill Fog on self. This never happened when Chill Fog hit allies while the ability was active.

I then tested ApplyOnEvent SE by replacing the Immunity SE with Restore_SE_Heal. Heal only appeared on one ally and not the rest.

What I can conclude is the ApplyOnEvent SE is being triggered once and combined with the Immunity SE is preventing from not triggering at all.

Are there any changes that can resolve this issue?

 

Link to comment
Share on other sites

I think your conclusions here are correct. The "ApplyStatusEffectToEnemyOnEvent" only ever applied to a single target with each AoE attack. Though from what I am seeing when does apply it, it's done after the attacks damage is done. ie. enemy is Grazed/Hit/Crit -> Damage -> Status Effect applied to enemy. I'd assume this works for Aegis of Loyalty since it is a Single-Target attack that's applying a brief Immunity to the Intellect Afflictions.

Going back to your earlier posts, Aura Abilities seem to be a bit finicky when used as activated spells. On my end it only seemed to activate briefly and effect just the caster. Switching over to applying the Status Effect with an AoE ability had more reliable results. Maybe something like a self targeted AoE or Pulsing AoE could be used to mimic the behaviour of an aura instead?
For the Status Effect itself, an "AttackResistance" (set to a Value of "1") or "Immunity" Status Effect with Attack Filters of "Class" = "Wizard" and "TargetType" = "AoE" seemed to work. Though the main caveat there was there is nothing in the AttackFilter that's filtering out only the attacks made by the specific Wizard.

Something I was thinking, though couldn't really see anyway to do, was maybe it's possible to attach a temporary Keyword to the character's attacks somehow? If that's possible it at least gives the Resistance/Immunity an additional layer of specificity to apply to filtering out attacks.

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...