Spell Void

Caedin88

New Member
Reaction score
1
Spell made via request in general forum...

MPI

Creates a void, which begins small and grows over time, increasing the area of the spell, the damage delt and the size of the void animation. Drains 5 mana per second to keep the spell active, may be canceled via ESC.

Completely GUI.



Code

Code:
Cast void
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        Or - Any (Conditions) are true
            Conditions
                (Ability being cast) Equal to Void (Sucks enemies) 
                (Ability being cast) Equal to Void 
    Actions
        Wait 1.00 seconds
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Ability being cast) Equal to Void (Sucks enemies) 
            Then - Actions
                Set SucksUnit[(Player number of (Owner of (Casting unit)))] = True
            Else - Actions
                Set SucksUnit[(Player number of (Owner of (Casting unit)))] = False
        Trigger - Add to Cancel <gen> the event (Player - (Owner of (Triggering unit)) skips a cinematic sequence)
        Set VoidCaster[(Player number of (Owner of (Casting unit)))] = (Casting unit)
        Set VoidPosition[(Player number of (Owner of (Casting unit)))] = (Region centered at (Target point of ability being cast) with size (1.00, 1.00))
        Unit - Pause VoidCaster[(Player number of (Owner of (Casting unit)))]
        Animation - Play VoidCaster[(Player number of (Owner of (Casting unit)))]'s channel animation
        Unit - Create 1 dummy for (Owner of VoidCaster[(Player number of (Owner of (Casting unit)))]) at (Center of VoidPosition[(Player number of (Owner of (Casting unit)))]) facing Default building facing degrees
        Set VoidDummy[(Player number of (Owner of (Casting unit)))] = (Last created unit)
        Animation - Change VoidDummy[(Player number of (Owner of (Casting unit)))]'s size to (100.00%, 100.00%, 100.00%) of its original size
        Animation - Change VoidDummy[(Player number of (Owner of (Casting unit)))]'s vertex coloring to (0.00%, 0.00%, 0.00%) with 0.00% transparency
        Unit - Make VoidDummy[(Player number of (Owner of (Casting unit)))] Invulnerable
        Unit - Turn collision for VoidDummy[(Player number of (Owner of (Casting unit)))] Off
        Unit - Pause VoidDummy[(Player number of (Owner of (Casting unit)))]
        Set VoidRange[(Player number of (Owner of (Casting unit)))] = 150.00
        Set VoidDamage[(Player number of (Owner of (Casting unit)))] = (1.00 x (Real((Hero level of VoidCaster[(Integer A)]))))
        Set VoidSize[(Player number of (Owner of (Casting unit)))] = 100.00

Code:
Void Grow
    Events
        Time - Every 0.20 seconds of game time
    Conditions
    Actions
        For each (Integer A) from 1 to 12, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        VoidCaster[(Integer A)] Not equal to No unit
                        (Mana of VoidCaster[(Integer A)]) Greater than or equal to 5.00
                    Then - Actions
                        Set VoidRange[(Integer A)] = (VoidRange[(Integer A)] + 5.00)
                        Set VoidDamage[(Integer A)] = (VoidDamage[(Integer A)] + 0.50)
                        Set VoidSize[(Integer A)] = (VoidSize[(Integer A)] + 3.00)
                        Unit - Set mana of VoidCaster[(Integer A)] to ((Mana of VoidCaster[(Integer A)]) - 1.00)
                        Animation - Change VoidDummy[(Integer A)]'s size to (VoidSize[(Integer A)]%, VoidSize[(Integer A)]%, VoidSize[(Integer A)]%) of its original size
                        Unit Group - Pick every unit in (Units within VoidRange[(Integer A)] of (Position of VoidDummy[(Integer A)])) and do (Actions)
                            Loop - Actions
                                Player Group - Pick every player in (All enemies of (Owner of VoidCaster[(Integer A)])) and do (Actions)
                                    Loop - Actions
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                (Owner of (Picked unit)) Equal to (Picked player)
                                            Then - Actions
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    If - Conditions
                                                        SucksUnit[(Integer A)] Equal to True
                                                    Then - Actions
                                                        Unit - Cause VoidDummy[(Integer A)] to damage (Picked unit), dealing VoidDamage[(Integer A)] damage of attack type Chaos and damage type Normal
                                                        Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by ((Distance between (Position of (Picked unit)) and (Position of VoidDummy[(Integer A)])) / (500.00 - (40.00 x (Real((Hero level of VoidCaster[(Integer A)])))))) towards (Angle from (Position of (Picked unit)) to (Positio
                                                    Else - Actions
                                                        Unit - Cause VoidDummy[(Integer A)] to damage (Picked unit), dealing VoidDamage[(Integer A)] damage of attack type Chaos and damage type Normal
                                            Else - Actions
                    Else - Actions
                        Set VoidRange[(Integer A)] = 0.00
                        Set VoidDamage[(Integer A)] = 0.00
                        Set VoidSize[(Integer A)] = 0.00
                        Unit - Unpause VoidCaster[(Integer A)]
                        Animation - Reset VoidCaster[(Integer A)]'s animation
                        Set VoidCaster[(Integer A)] = No unit
                        Unit - Remove VoidDummy[(Integer A)] from the game
                        Set VoidDummy[(Integer A)] = No unit
                        Set VoidPosition[(Integer A)] = No region

Code:
Cancel
    Events
    Conditions
    Actions
        Unit - Unpause VoidCaster[(Player number of (Owner of (Triggering unit)))]
        Animation - Reset VoidCaster[(Player number of (Owner of (Triggering unit)))]'s animation
        Set VoidCaster[(Player number of (Owner of (Triggering unit)))] = No unit



I don't know how to make dummy units not selectable so I used this trigger, didn't work very well... if any one knows a better way feel free to tell me :)

Code:
Cant Select Dummies
    Events
        Player - Player 1 (Red) Selects a unit
        Player - Player 2 (Blue) Selects a unit
        Player - Player 3 (Teal) Selects a unit
        Player - Player 4 (Purple) Selects a unit
        Player - Player 5 (Yellow) Selects a unit
        Player - Player 6 (Orange) Selects a unit
        Player - Player 7 (Green) Selects a unit
        Player - Player 8 (Pink) Selects a unit
        Player - Player 9 (Gray) Selects a unit
        Player - Player 10 (Light Blue) Selects a unit
        Player - Player 11 (Dark Green) Selects a unit
        Player - Player 12 (Brown) Selects a unit
    Conditions
        (Unit-type of (Triggering unit)) Equal to dummy
    Actions
        Selection - Remove (Triggering unit) from selection
 

black.sheep

Active Member
Reaction score
24
Use locust so they cant select them, also couldnt you base this off some channeling spell, so you dont have press esc?
 

Caedin88

New Member
Reaction score
1
Use locust so they cant select them, also couldnt you base this off some channeling spell, so you dont have press esc?

Not really, because the spells duration is dependant on your mana, .... I mean its probably doable but I'd have to figure it out.

Thanks about the locust, i knew there was a simple fix for that.
 

quraji

zap
Reaction score
144
Base it off of immolation or something, and pause the unit while it's on and unpause when it deactivates (player turns it off or mana runs out). That's the idea that comes to mind.
 

Caedin88

New Member
Reaction score
1
Base it off of immolation or something, and pause the unit while it's on and unpause when it deactivates (player turns it off or mana runs out). That's the idea that comes to mind.

A paused unit wouldn't be able to turn off immolation.

You could just not pause the unit, making the spell not channeled, and you cast it again to cancel... but that wasn't really what i was going for. BTW you can alter it however you want if you want to use it for a map or somthing, just made this as a response to some one who wanted this spell made.
 
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