Damage over time and unit groups

tommerbob

Minecraft. :D
Reaction score
110
So I've got this DOT spell (we will call it Plague). What I need help with is this:

Unit A has Plague (buff). He comes within 100 of Unit B. Unit B then also gains Plague.

Because the spell is MUI, how can I detect when a unit comes close to a unit that has the Plague spell on it? Is it possible to do a unit group loop inside another unit group loop?

Here is the trigger:

Code:
Plague DOT
    Events
        Time - Every 1.00 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in Plague_Group and do (Actions)
            Loop - Actions
                Set Plague_Duration = (Load 0 of (Key (Picked unit)) from Plague_Table)
                Hashtable - Save (Plague_Duration - 1.00) as 0 of (Key (Picked unit)) in Plague_Table
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Plague_Duration Less than or equal to 0.00
                    Then - Actions
                        Unit - Remove Plague of Affliction (dummy) buff from (Picked unit)
                        Unit Group - Remove (Picked unit) from Plague_Group
                        Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Plague_Table
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                ((Picked unit) has buff Plague of Affliction (dummy)) Equal to True
                            Then - Actions
                                Unit - Cause Spell_Caster to damage (Picked unit), dealing Plague_Damage damage of attack type Spells and damage type Magic
                            Else - Actions
                                Unit Group - Remove (Picked unit) from Plague_Group
                                Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Plague_Table
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Number of units in Plague_Group) Equal to 0
            Then - Actions
                Trigger - Turn off (This trigger)
            Else - Actions

Any advice is welcome.
 

Sajin

User title under construction.
Reaction score
56
From what I under stand your saying yes. but by your trigger I dont know(dont know hashtables ;) ) but you can do something like
Code:
Unitgroup - Pick all units in Plauge_Group 
     Loop Actions:
          Unitgroup - Pick all units in within 100 of picked unit
               Loop Actions:
                    Unit - Add picked unit to Plague_Group
 

Dr.Jack

That's Cap'n to you!
Reaction score
109
It has been a while since I dealt we WE, especially with GUI, so forgive me if I'm wrong.
But what you could do is a run a trigger every 0.1 seconds that will add the plague_group all units that are within 100 of units that has plague buff.

Event: Unit starts the effect of an ability
condition: Ability = Plague
actions: Add triggering unit to Plague_casters

event: every 0.1 seconds of the game
conditions: number of units in plague_caster > 0
actions: pick every unit in plague_casters and do:
-- pick every unit in radius of 100 from picked unit
---- add picked unit to plague_group/do actions that deal damage
-- clear leaks
clear leaks

You understand what I mean? Anyway the serious downside is that you'll probably see tons of lagging if you use this trigger. Perhaps raise the time from 0.1 to 0.5~, you will lose accuracy but it will probably help the lags.
 

Necrach

You can change this now in User CP.
Reaction score
62
Couldn't you give a disease cloud ability to the unit affecting allies? :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top