• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!
  • ✅ The POLL for Hive's Texturing Contest #34 is OPEN! Vote for the TOP 3 SKINS! 🔗Click here to cast your vote!
  • ✅ The POLL for Hive's Techtree Contest #20 is OPEN! Vote for the TOP 3 FACTIONS! 🔗Click here to cast your vote!

Can you make immolation slow nearby enemy?

Status
Not open for further replies.
I triggered it for you.

Note that the AoE/Damage/Slow are always the same regardless of ability level, but that can easily be changed in the Immolation Loop trigger. You can reference the Level of the Immolation ability for the ImmoCaster and use that as part of your calculations.

  • Immolation Cast
    • Events
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Level of Immolation for (Triggering unit)) Greater than 0
    • Actions
      • -------- Immolation On / Immolation Off --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Issued order) Equal to (Order(immolation))
        • Then - Actions
          • Unit Group - Add (Triggering unit) to ImmoCasters
          • Trigger - Turn on Immolation Loop <gen>
          • -------- --------
          • -------- Create the Dummy unit that will cast Slow on damaged enemy units: --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ImmoDummy Equal to No unit
            • Then - Actions
              • Set VariableSet ImmoPoint = (Center of (Playable map area))
              • Unit - Create 1 Immolation Dummy for Neutral Hostile at ImmoPoint facing Default building facing degrees
              • Set VariableSet ImmoDummy = (Last created unit)
              • Custom script: call RemoveLocation(udg_ImmoPoint)
            • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Issued order) Equal to (Order(unimmolation))
            • Then - Actions
              • Unit Group - Remove (Triggering unit) from ImmoCasters.
            • Else - Actions
  • Immolation Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in ImmoCasters and do (Actions)
        • Loop - Actions
          • Set VariableSet ImmoCaster = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (ImmoCaster has buff Immolation) Equal to True
            • Then - Actions
              • Set VariableSet ImmoPlayer = (Owner of ImmoCaster)
              • Set VariableSet ImmoPoint = (Position of ImmoCaster)
              • Set VariableSet ImmoTargets = (Units within 250.00 of ImmoPoint.)
              • Custom script: call RemoveLocation(udg_ImmoPoint)
              • -------- --------
              • -------- Damage / Slow nearby enemy units: --------
              • Unit Group - Pick every unit in ImmoTargets and do (Actions)
                • Loop - Actions
                  • Set VariableSet ImmoTarget = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (ImmoTarget is alive) Equal to True
                      • (ImmoTarget is A ground unit) Equal to True
                      • (ImmoTarget belongs to an enemy of ImmoPlayer.) Equal to True
                      • (ImmoTarget is A structure) Equal to False
                      • (ImmoTarget is Mechanical) Equal to False
                      • (ImmoTarget is Magic Immune) Equal to False
                      • (ImmoTarget is invulnerable) Equal to False
                    • Then - Actions
                      • Unit - Order ImmoDummy to Human Sorceress - Slow ImmoTarget
                      • Unit - Cause ImmoCaster to damage ImmoTarget, dealing 10.00 damage of attack type Spells and damage type Normal
                    • Else - Actions
              • -------- --------
              • Custom script: call DestroyGroup(udg_ImmoTargets)
            • Else - Actions
              • -------- The Caster no longer has the buff so they must've deactivated the ability: --------
              • Unit Group - Remove ImmoCaster from ImmoCasters.
      • -------- --------
      • -------- If no Immolations are active we can turn off the Loop trigger: --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in ImmoCasters) Equal to 0
        • Then - Actions
          • Trigger - Turn off Immolation Loop <gen>
        • Else - Actions
 

Attachments

Last edited:
I triggered it for you.

Note that the AoE/Damage/Slow are always the same regardless of ability level, but that can easily be changed in the Immolation Loop trigger. You can reference the Level of the Immolation ability for the ImmoCaster and use that as part of your calculations.

  • Immolation Cast
    • Events
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Level of Immolation for (Triggering unit)) Greater than 0
    • Actions
      • -------- Immolation On / Immolation Off --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Issued order) Equal to (Order(immolation))
        • Then - Actions
          • Unit Group - Add (Triggering unit) to ImmoCasters
          • Trigger - Turn on Immolation Loop <gen>
          • -------- --------
          • -------- Create the Dummy unit that will cast Slow on damaged enemy units: --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ImmoDummy Equal to No unit
            • Then - Actions
              • Set VariableSet ImmoPoint = (Center of (Playable map area))
              • Unit - Create 1 Immolation Dummy for Neutral Hostile at ImmoPoint facing Default building facing degrees
              • Set VariableSet ImmoDummy = (Last created unit)
              • Custom script: call RemoveLocation(udg_ImmoPoint)
            • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Issued order) Equal to (Order(unimmolation))
            • Then - Actions
              • Unit Group - Remove (Triggering unit) from ImmoCasters.
            • Else - Actions
  • Immolation Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in ImmoCasters and do (Actions)
        • Loop - Actions
          • Set VariableSet ImmoCaster = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (ImmoCaster has buff Immolation) Equal to True
            • Then - Actions
              • Set VariableSet ImmoPlayer = (Owner of ImmoCaster)
              • Set VariableSet ImmoPoint = (Position of ImmoCaster)
              • Set VariableSet ImmoTargets = (Units within 250.00 of ImmoPoint.)
              • Custom script: call RemoveLocation(udg_ImmoPoint)
              • -------- --------
              • -------- Damage / Slow nearby enemy units: --------
              • Unit Group - Pick every unit in ImmoTargets and do (Actions)
                • Loop - Actions
                  • Set VariableSet ImmoTarget = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (ImmoTarget is alive) Equal to True
                      • (ImmoTarget is A ground unit) Equal to True
                      • (ImmoTarget belongs to an enemy of ImmoPlayer.) Equal to True
                      • (ImmoTarget is A structure) Equal to False
                      • (ImmoTarget is Mechanical) Equal to False
                      • (ImmoTarget is Magic Immune) Equal to False
                      • (ImmoTarget is invulnerable) Equal to False
                    • Then - Actions
                      • Unit - Order ImmoDummy to Human Sorceress - Slow ImmoTarget
                      • Unit - Cause ImmoCaster to damage ImmoTarget, dealing 10.00 damage of attack type Spells and damage type Normal
                    • Else - Actions
              • -------- --------
              • Custom script: call DestroyGroup(udg_ImmoTargets)
            • Else - Actions
              • -------- The Caster no longer has the buff so they must've deactivated the ability: --------
              • Unit Group - Remove ImmoCaster from ImmoCasters.
      • -------- --------
      • -------- If no Immolations are active we can turn off the Loop trigger: --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in ImmoCasters) Equal to 0
        • Then - Actions
          • Trigger - Turn off Immolation Loop <gen>
        • Else - Actions

I have tested and it works as intended. Sorry for the late reply but thanks very much!
 
I triggered it for you.

Note that the AoE/Damage/Slow are always the same regardless of ability level, but that can easily be changed in the Immolation Loop trigger. You can reference the Level of the Immolation ability for the ImmoCaster and use that as part of your calculations.

  • Immolation Cast
    • Events
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Level of Immolation for (Triggering unit)) Greater than 0
    • Actions
      • -------- Immolation On / Immolation Off --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Issued order) Equal to (Order(immolation))
        • Then - Actions
          • Unit Group - Add (Triggering unit) to ImmoCasters
          • Trigger - Turn on Immolation Loop <gen>
          • -------- --------
          • -------- Create the Dummy unit that will cast Slow on damaged enemy units: --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ImmoDummy Equal to No unit
            • Then - Actions
              • Set VariableSet ImmoPoint = (Center of (Playable map area))
              • Unit - Create 1 Immolation Dummy for Neutral Hostile at ImmoPoint facing Default building facing degrees
              • Set VariableSet ImmoDummy = (Last created unit)
              • Custom script: call RemoveLocation(udg_ImmoPoint)
            • Else - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Issued order) Equal to (Order(unimmolation))
            • Then - Actions
              • Unit Group - Remove (Triggering unit) from ImmoCasters.
            • Else - Actions
  • Immolation Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in ImmoCasters and do (Actions)
        • Loop - Actions
          • Set VariableSet ImmoCaster = (Picked unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (ImmoCaster has buff Immolation) Equal to True
            • Then - Actions
              • Set VariableSet ImmoPlayer = (Owner of ImmoCaster)
              • Set VariableSet ImmoPoint = (Position of ImmoCaster)
              • Set VariableSet ImmoTargets = (Units within 250.00 of ImmoPoint.)
              • Custom script: call RemoveLocation(udg_ImmoPoint)
              • -------- --------
              • -------- Damage / Slow nearby enemy units: --------
              • Unit Group - Pick every unit in ImmoTargets and do (Actions)
                • Loop - Actions
                  • Set VariableSet ImmoTarget = (Picked unit)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (ImmoTarget is alive) Equal to True
                      • (ImmoTarget is A ground unit) Equal to True
                      • (ImmoTarget belongs to an enemy of ImmoPlayer.) Equal to True
                      • (ImmoTarget is A structure) Equal to False
                      • (ImmoTarget is Mechanical) Equal to False
                      • (ImmoTarget is Magic Immune) Equal to False
                      • (ImmoTarget is invulnerable) Equal to False
                    • Then - Actions
                      • Unit - Order ImmoDummy to Human Sorceress - Slow ImmoTarget
                      • Unit - Cause ImmoCaster to damage ImmoTarget, dealing 10.00 damage of attack type Spells and damage type Normal
                    • Else - Actions
              • -------- --------
              • Custom script: call DestroyGroup(udg_ImmoTargets)
            • Else - Actions
              • -------- The Caster no longer has the buff so they must've deactivated the ability: --------
              • Unit Group - Remove ImmoCaster from ImmoCasters.
      • -------- --------
      • -------- If no Immolations are active we can turn off the Loop trigger: --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in ImmoCasters) Equal to 0
        • Then - Actions
          • Trigger - Turn off Immolation Loop <gen>
        • Else - Actions
another way to get a similar effect could be to slap on and off of the casting unit a negative speed aura.. I think that would probably be a simpler way to go about the same thing...
 
another way to get a similar effect could be to slap on and off of the casting unit a negative speed aura.. I think that would probably be a simpler way to go about the same thing...
I always hated that approach though, now you're stuck with the mechanics of an aura which have a 2 second lingering effect, a buff that can't be dispelled, and the slow doesn't sync up with the damage. I agree it's nice for newcomers but from a designer standpoint it's the lazy way of doing it. Plus now if the user wants to add additional effects they can by modifying the trigger.
 
Last edited:
Status
Not open for further replies.
Back
Top