Spell Spiritual Pinball

Cloak_Master

Active Member
Reaction score
41
Spiritual Pinball
I honestly felt that the screenshot completely failed to do the ability justice. Before judging, I'd recommend trying it out in game, as I'm quite aware that my fail art sense makes it's function look ambiguous.

Description: The ability is a fairly accurate repersentation of it's name. The caster will transform into an ephemeral pinball that bounces from nearby enemy to nearby enemy, damaging them as it goes. The amount of enemies it bounces to is entirely customizable.

This spell is entirely GUI and MPI. It is now also fully MUI.

Trigger 1:
Code:
Spiritual Pinball
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Spiritual Pinball 
    Actions
        Set MultiValue = (MultiValue + 1)
        Set Heroes[MultiValue] = (Casting unit)
        Set Point[1] = (Position of (Casting unit))
        Set TrashGroup = (Units within 800.00 of Point[1] matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Matching unit) is in PinballTargetGroup[MultiValue]) Not equal to True) and (
        -------- The + 4 is used to set the default amount of hits + the level of pinball for the casting unit. You can change this to anything to increase or decrease targets. --------
        For each (Integer A) from 1 to ((Level of Spiritual Pinball  for Heroes[MultiValue]) + 4), do (Actions)
            Loop - Actions
                Unit Group - Add (Random unit from TrashGroup) to PinballTargetGroup[MultiValue]
                Set TrashGroup = (Units within 800.00 of Point[1] matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and ((((Matching unit) is in PinballTargetGroup[MultiValue]) Not equal to True) and (
        Unit - Order (Casting unit) to Stop
        Unit - Hide (Casting unit)
        Unit - Create 1 Pinball for (Owner of (Casting unit)) at Point[1] facing Default building facing degrees
        Unit - Set the custom value of (Last created unit) to MultiValue
        Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
        Special Effect - Create a special effect at Point[1] using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
        Special Effect - Destroy (Last created special effect)
        Set PinballTarget[MultiValue] = (Random unit from PinballTargetGroup[MultiValue])
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Number of units in PinballTargetGroup[MultiValue]) Equal to 0
            Then - Actions
                Set PinballTarget[MultiValue] = Heroes[MultiValue]
            Else - Actions
        Custom script:   call RemoveLocation (udg_Point[1])
        Custom script:   call DestroyGroup (udg_TrashGroup)
Trigger 2:
Code:
Pinball Slide
    Events
        Time - Every 0.03 seconds of game time
    Conditions
        (Number of units in (Units of type Pinball)) Greater than 0
    Actions
        Set TrashGroup = (Units of type Pinball)
        Unit Group - Pick every unit in TrashGroup and do (Actions)
            Loop - Actions
                Set Point[1] = (Position of (Picked unit))
                Set Point[2] = (Position of PinballTarget[(Custom value of (Picked unit))])
                Set Point[3] = (Point[1] offset by 35.00 towards (Angle from Point[1] to Point[2]) degrees)
                Unit - Move (Picked unit) instantly to Point[3]
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Distance between Point[1] and Point[2]) Less than or equal to 90.00
                    Then - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                PinballTarget[(Custom value of (Picked unit))] Equal to Heroes[(Custom value of (Picked unit))]
                            Then - Actions
                                Special Effect - Create a special effect at Point[2] using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
                                Special Effect - Destroy (Last created special effect)
                                Unit - Unhide Heroes[(Custom value of (Picked unit))]
                                Selection - Add Heroes[(Custom value of (Picked unit))] to selection for (Owner of (Picked unit))
                                Unit - Remove (Picked unit) from the game
                                Skip remaining actions
                            Else - Actions
                        Special Effect - Create a special effect at Point[2] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
                        Special Effect - Destroy (Last created special effect)
                        Special Effect - Create a special effect at Point[2] using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                        Special Effect - Destroy (Last created special effect)
                        -------- 500 is an arbitrary value, set that to the damage you want the spell to cause. You could also make it incremental, and deal Level of Pinball for Heroes[custom value of picked unit] times X. --------
                        Unit - Cause (Picked unit) to damage PinballTarget[(Custom value of (Picked unit))], dealing 500.00 damage of attack type Spells and damage type Normal
                        Unit Group - Remove PinballTarget[(Custom value of (Picked unit))] from PinballTargetGroup[(Custom value of (Picked unit))]
                        Set PinballTarget[(Custom value of (Picked unit))] = (Random unit from PinballTargetGroup[(Custom value of (Picked unit))])
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Number of units in PinballTargetGroup[(Custom value of (Picked unit))]) Equal to 0
                            Then - Actions
                                Set PinballTarget[(Custom value of (Picked unit))] = Heroes[(Custom value of (Picked unit))]
                            Else - Actions
                                Do nothing
                    Else - Actions
                Custom script:   call RemoveLocation (udg_Point[1])
                Custom script:   call RemoveLocation (udg_Point[2])
                Custom script:   call RemoveLocation (udg_Point[3])
        Custom script:   call DestroyGroup (udg_TrashGroup)
 

Attachments

  • SpiritualPinballv2.w3x
    30.4 KB · Views: 237

XeNiM666

I lurk for pizza
Reaction score
138
Nice spell,
but change all the (Casting unit) to (Triggering Unit), its more MUI.
also dont use the ( Set TrashGroup = (Units of Type Pinball) )
do this instead:
Code:
       Unit - Create 1 Pinball for (Owner of (Casting unit)) at Point[1] facing Default building facing degrees
        Unit Group - Add (Last created unit) to TrashGroup2
also, use 2 different unit group variables, it may crash your spell
 

Cloak_Master

Active Member
Reaction score
41
Thanks for the input, glad you liked it.

I will take your advice into consideration, but so far I've yet to see any problems with crashing or the use of casting unit. Perhaps I haven't done enough testing. I'll check it out later today and see what happens.

Thanks again :>

Getting tons of views here but few downloads, I think the screenshot is just terrible. It's impossible to capture this spell in a screenshot, though, really - so judgment there is inaccurate :(
 

lindenkron

You can change this now in User CP
Reaction score
102
Cool idea :D. Little note: When the spell is over, order the owner of the unit to select the hero again. Just for easyer use in maps :)
 

trb92

Throwing science at the wall to see what sticks
Reaction score
142
Just quickly looking through the code, saw this.
Code:
Unit - Move (Picked unit) instantly to [B](Point[1] offset by 35.00 towards (Angle from Point[1] to Point[2])[/B]
That leaks, need to store the polar offset into another point and remove it.

Other then that, code looks good. Unable to view in game at the moment as the comp I'm on doesn't have wc3.
 

Cloak_Master

Active Member
Reaction score
41
Thanks for the input, people. Didn't notice that leak >.<

Anyways, I've changed the way the code works a bit. It's now completely MUI, multiple heroes per player can use it at the same time.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top