Damn it, "rolling stone" is a way better name than rock & roll.
I set the knock back so it really looks like it just bumps units out of the way, rather than a big slam back. I also added war stomp for when it drops from above.
Bolder Drop Loop
Events
Time - Every 0.02 seconds of game time
Conditions
Actions
Set Bolder_Drop_Int = (Bolder_Drop_Int - 100)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Bolder_Drop_Int Greater than 60
Then - Actions
Animation - Change Bolder_Dummy flying height to (Real(Bolder_Drop_Int)) at 0.00
Else - Actions
Special Effect - Create a special effect at Bolder_Point using Abilities\Weapons\Mortar\MortarMissile.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at Bolder_Point using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
Special Effect - Destroy (Last created special effect)
Unit - Remove Bolder_Dummy from the game
Unit - Create 1 DummyCaster (fire wheel ground) for (Owner of Bolder_Caster) at Bolder_Point facing Bolder_Angle degrees
Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
Set Bolder_Dummy = (Last created unit)
Sound - Play RainOfFireLoop1 <gen> at 100.00% volume, attached to Bolder_Dummy
Unit - Turn collision for Bolder_Dummy Off
Trigger - Turn on Bolder Loop <gen>
Trigger - Turn off (This trigger)
Bolder Loop
Events
Time - Every 0.02 seconds of game time
Conditions
Actions
Set Bolder_Int = (Bolder_Int + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Bolder_Int Greater than 160
Then - Actions
Set Bolder_Int = 0
Custom script: call RemoveLocation (udg_Bolder_TargetLoc)
Custom script: call RemoveLocation (udg_Bolder_Point)
Trigger - Turn off (This trigger)
Unit - Kill Bolder_Dummy
Sound - Stop RainOfFireLoop1 <gen> Immediately
Animation - Reset Bolder_Caster's animation
Wait 1.00 seconds
Unit - Remove Bolder_Dummy from the game
Else - Actions
Set Bolder_Point = (Bolder_Point offset by 7.00 towards Bolder_Angle degrees)
Unit - Move Bolder_Dummy instantly to Bolder_Point
Set KB_Point[0] = Bolder_Point
Set All_Units = (Units within 80.00 of Bolder_Point)
Unit Group - Pick every unit in All_Units and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Owner of (Picked unit)) is an enemy of (Owner of Bolder_Dummy)) Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
KB_Skip Equal to 0
Then - Actions
Trigger - Turn on Knockback System <gen>
Else - Actions
Set KB_Skip = (KB_Skip + 1)
Set KB_Times = (KB_Times + 1)
Set KB_Off[KB_Times] = True
Set KB_Target[KB_Times] = (Picked unit)
Set KB_Point[1] = (Position of (Picked unit))
Set KB_Angle[KB_Times] = (Angle from KB_Point[0] to KB_Point[1])
Set KB_Speed[KB_Times] = 12.00
Set KB_Spam[KB_Times] = 5
Set KB_Distance[KB_Times] = 120.00
Unit - Cause Bolder_Caster to damage (Picked unit), dealing ((Real(Bolder_LvL)) x 70.00) damage of attack type Siege and damage type Normal
Custom script: call RemoveLocation(udg_KB_Point[1])
Else - Actions
Custom script: call DestroyGroup(udg_All_Units)