- Joined
- Jan 9, 2016
- Messages
- 1,487
Preview uploaded. Enjoy the spell guys!
Last edited:
(Passive) Happy Hour![]()
INNATE: Gragas heals 6% maximum health upon using an ability.
P Happy Hour Dummy
Events
Game - UnitIndexEvent becomes Equal to 1.00
Conditions
(Unit-type of UDexUnits[UDex]) Equal to G_R_A_G_A_S
Actions
Set HappyHour_TriggeringUnit = UDexUnits[UDex]
Set AbilityIndexer = (Custom value of HappyHour_TriggeringUnit)
Set HappyHour_Point = (Position of HappyHour_TriggeringUnit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
HappyHour_Bool[AbilityIndexer] Equal to False
Then - Actions
Set HappyHour_Bool[AbilityIndexer] = True
Unit - Create 1 HappyHour_TimerDummyType for (Owner of HappyHour_TriggeringUnit) at HappyHour_Point facing Default building facing degrees
Set HappyHour_CasterDummyTimer[AbilityIndexer] = (Last created unit)
Else - Actions
Custom script: call RemoveLocation(udg_HappyHour_Point)
P Happy Hour Detect
Events
Unit - A unit Starts the effect of an ability
Conditions
And - All (Conditions) are true
Conditions
(Ability Cooldown Remaining of (Triggering unit) for ability HappyHour_Ability) Equal to 0.00
Or - Any (Conditions) are true
Conditions
(Ability being cast) Equal to BarrelRoll_Ability
(Ability being cast) Equal to DrunkenRage_Ability
(Ability being cast) Equal to BodySlam_Ability
(Ability being cast) Equal to ExplosiveCask_Ability
Actions
Set HappyHour_TriggeringUnit = (Triggering unit)
Set AbilityIndexer = (Custom value of HappyHour_TriggeringUnit)
Set HappyHour_HealAmount = ((Max life of HappyHour_TriggeringUnit) x 0.06)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Life of HappyHour_TriggeringUnit) Less than (Max life of HappyHour_TriggeringUnit)
And - All (Conditions) are true
Conditions
(HappyHour_CasterDummyTimer[AbilityIndexer] is alive) Equal to True
Then - Actions
Unit - Add Cargo Hold (Meat Wagon) to HappyHour_TriggeringUnit
Else - Actions
P Happy Hour Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to HappyHour_Ability
Actions
Set HappyHour_TriggeringUnit = (Triggering unit)
Set AbilityIndexer = (Custom value of HappyHour_TriggeringUnit)
Set HappyHour_HealAmount = ((Max life of HappyHour_TriggeringUnit) x 0.06)
Unit - Remove Cargo Hold (Meat Wagon) from HappyHour_TriggeringUnit
Unit - Kill HappyHour_CasterDummyTimer[AbilityIndexer]
Unit - Set life of HappyHour_TriggeringUnit to ((Life of HappyHour_TriggeringUnit) + HappyHour_HealAmount)
Special Effect - Create a special effect attached to the origin of HappyHour_TriggeringUnit using LifeBloom.mdx
Special Effect - Set Scale of (Last created special effect) to 3.00
Special Effect - Destroy (Last created special effect)
Floating Text - Create floating text that reads (+ + (String((Integer(HappyHour_HealAmount))))) above HappyHour_TriggeringUnit with Z offset 0.00, using font size 10.00, color (40.00%, 100.00%, 40.00%), and 0.00% transparency
Floating Text - Change (Last created floating text): Disable permanence
Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
(Q-Active) Barrel Roll
![]()
![]()
ACTIVE:
Gragas rolls his cask to a location. When reactivated, or after 4 seconds, the cask will explode, dealing 80/120/160/200/240 (+70% Ability Power) magic damage to nearby enemies and slowing their movement speed by 40/45/50/55/60% for 2 seconds.
The damage and slow amount increase as the cask ferments, up to 150% after 4 seconds. Deals 70% damage to minions (non-Heroes).
Q Barrel Roll Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to BarrelRoll_Ability
Actions
-------- ======= Setting the Variables ======= --------
Set BarrelRoll_TriggeringUnit = (Triggering unit)
Set BarrelRoll_AbilityLevel = (Level of BarrelRoll_Ability for BarrelRoll_TriggeringUnit)
Set BarrelRoll_Points[1] = (Position of BarrelRoll_TriggeringUnit)
Set BarrelRoll_Points[2] = (Target point of ability being cast)
-------- ======= Creating dummy unit ======= --------
Unit - Create 1 BarrelRoll_DummyCasterType for (Owner of BarrelRoll_TriggeringUnit) at BarrelRoll_Points[1] facing BarrelRoll_Points[2]
Set AbilityIndexer = (Custom value of (Last created unit))
Set BarrelRoll_GetDummyCaster[AbilityIndexer] = BarrelRoll_TriggeringUnit
Set BarrelRoll_DummyTargetPoint[AbilityIndexer] = (Target point of ability being cast)
Unit - Add BarrelRoll_DummyAbility to (Last created unit)
Unit - Set level of BarrelRoll_DummyAbility for (Last created unit) to BarrelRoll_AbilityLevel
Unit - Order (Last created unit) to Neutral Tinker - Pocket Factory BarrelRoll_Points[2]
-------- ======= Set dummy's expiration timer and variables . When it dies, create cask dummy ======= --------
Set Math = ((Distance between BarrelRoll_Points[1] and BarrelRoll_Points[2]) / BarrelRoll_CaskSpeed)
Unit - Add a Math second Generic expiration timer to (Last created unit)
-------- ======= Remove leaks ======= --------
Custom script: call RemoveLocation(udg_BarrelRoll_Points[1])
Custom script: call RemoveLocation(udg_BarrelRoll_Points[2])
Q Barrel Roll Start Damage
Events
Unit - A unit Dies
Conditions
Or - Any (Conditions) are true
Conditions
(Unit-type of (Dying unit)) Equal to BarrelRoll_DummyCasterType
(Unit-type of (Dying unit)) Equal to BarrelRoll_CaskDummy
Actions
Set BarrelRoll_TriggeringUnit = (Dying unit)
Set AbilityIndexer = (Custom value of BarrelRoll_TriggeringUnit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Dying unit)) Equal to BarrelRoll_DummyCasterType
Then - Actions
Set BarrelRoll_AbilityLevel = (Level of BarrelRoll_DummyAbility for BarrelRoll_TriggeringUnit)
Unit - Create 1 BarrelRoll_CaskDummy for (Owner of BarrelRoll_TriggeringUnit) at BarrelRoll_DummyTargetPoint[AbilityIndexer] facing Default building facing degrees
Set BarrelRoll_DamagePicked = (Last created unit)
Set BarrelRoll_CaskLevel[(Custom value of BarrelRoll_DamagePicked)] = BarrelRoll_AbilityLevel
Set BarrelRoll_GetCaskCaster[(Custom value of BarrelRoll_DamagePicked)] = BarrelRoll_GetDummyCaster[AbilityIndexer]
Unit Group - Add (Last created unit) to BarrelRoll_GlobalCaskGroup
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Q Barrel Roll Cosmetics <gen> is on) Equal to False
Then - Actions
Trigger - Turn on Q Barrel Roll Cosmetics <gen>
Else - Actions
Unit - For BarrelRoll_GetDummyCaster[AbilityIndexer], Ability BarrelRoll_Ability, Hide ability: True
Unit - Add BarrelRoll_ReactivateAbility to BarrelRoll_GetDummyCaster[AbilityIndexer]
Unit - Add a BarrelRoll_CaskDuration second Generic expiration timer to BarrelRoll_DamagePicked
Set AbilityIndexer2 = (Custom value of BarrelRoll_GetDummyCaster[AbilityIndexer])
Set BarrelRoll_GetCasterCask[AbilityIndexer2] = (Last created unit)
Unit - Create 1 BarrelRoll_RangeIndicatorType for (Owner of BarrelRoll_TriggeringUnit) at BarrelRoll_DummyTargetPoint[AbilityIndexer] facing Default building facing degrees
Set BarrelRoll_RangeIndicator[(Custom value of BarrelRoll_DamagePicked)] = (Last created unit)
Else - Actions
Set BarrelRoll_GetCaskAbilityLevel = BarrelRoll_CaskLevel[AbilityIndexer]
Set CalculateDamage = (BarrelRoll_BaseDamage[BarrelRoll_GetCaskAbilityLevel] + ((Real((Intelligence of BarrelRoll_GetCaskCaster[AbilityIndexer] (Include bonuses)))) x 0.70))
Set BarrelRoll_TotalDamage = (CalculateDamage + ((CalculateDamage x (Mana of BarrelRoll_TriggeringUnit)) x 0.01))
Set BarrelRoll_DamagePoint = (Position of BarrelRoll_TriggeringUnit)
Set BarrelRoll_DamageGroup = (Units within 260.00 of BarrelRoll_DamagePoint)
Unit Group - Pick every unit in BarrelRoll_DamageGroup and do (Actions)
Loop - Actions
Set BarrelRoll_DamagePicked = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(BarrelRoll_DamagePicked is alive) Equal to True
(BarrelRoll_DamagePicked is A structure) Equal to False
(BarrelRoll_DamagePicked is A flying unit) Equal to False
(BarrelRoll_DamagePicked is Magic Immune) Equal to False
(BarrelRoll_DamagePicked belongs to an enemy of (Owner of BarrelRoll_TriggeringUnit)) Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(BarrelRoll_DamagePicked is A Hero) Equal to True
Then - Actions
Unit - Cause BarrelRoll_GetCaskCaster[AbilityIndexer] to damage BarrelRoll_DamagePicked, dealing BarrelRoll_TotalDamage damage of attack type Magic and damage type Normal
Else - Actions
Unit - Cause BarrelRoll_GetCaskCaster[AbilityIndexer] to damage BarrelRoll_DamagePicked, dealing (BarrelRoll_TotalDamage x 0.70) damage of attack type Magic and damage type Normal
Unit - Create 1 Dummy Caster for (Owner of BarrelRoll_TriggeringUnit) at BarrelRoll_DamagePoint facing BarrelRoll_DamagePoint
Unit - Add BarrelRoll_SlowAbility to (Last created unit)
Unit - Set level of BarrelRoll_SlowAbility for (Last created unit) to BarrelRoll_GetCaskAbilityLevel
Unit - Order (Last created unit) to Human Sorceress - Slow BarrelRoll_DamagePicked
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Else - Actions
Sound - Play BarrelRoll_BoomSound[1] at 90.00% volume, attached to BarrelRoll_TriggeringUnit
Sound - Play BarrelRoll_BoomSound[2] at 90.00% volume, attached to BarrelRoll_TriggeringUnit
Special Effect - Create a special effect at BarrelRoll_DamagePoint using BarrelRoll_BoomSFX
Special Effect - Set Scale of (Last created special effect) to 1.20
Special Effect - Destroy (Last created special effect)
Unit - Remove BarrelRoll_RangeIndicator[AbilityIndexer] from the game
Unit - For BarrelRoll_GetCaskCaster[AbilityIndexer], Ability Q - Barrel Roll , Hide ability: False
Unit - Remove BarrelRoll_ReactivateAbility from BarrelRoll_GetCaskCaster[AbilityIndexer]
Custom script: call RemoveLocation(udg_BarrelRoll_DamagePoint)
Custom script: call DestroyGroup(udg_BarrelRoll_DamageGroup)
Q Barrel Roll Damage Recast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to BarrelRoll_ReactivateAbility
Actions
Set BarrelRoll_TriggeringUnit = (Triggering unit)
Set AbilityIndexer = (Custom value of BarrelRoll_TriggeringUnit)
Unit - Kill BarrelRoll_GetCasterCask[AbilityIndexer]
Q Barrel Roll Cosmetics
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in BarrelRoll_GlobalCaskGroup and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) is alive) Equal to True
Then - Actions
Animation - Change (Picked unit)'s vertex coloring to (90.00%, (Life of (Picked unit))%, (Life of (Picked unit))%) with 0.00% transparency
Animation - Change (Picked unit)'s size to ((100.00 + (Mana of (Picked unit)))%, (100.00 + (Mana of (Picked unit)))%, (100.00 + (Mana of (Picked unit)))%) of its original size
Else - Actions
Unit Group - Remove (Picked unit) from BarrelRoll_GlobalCaskGroup
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in BarrelRoll_GlobalCaskGroup) Equal to 0
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
![]()
(W-Active) Drunken Rage![]()
![]()
ACTIVE: Gragas guzzles down his brew, taking 10/12/14/16/18% (+1%) reduced damage for 2.5 seconds.After finishing his drink, his next basic attack deals magic damage to nearby enemies equal to 20/50/80/110/140 (+50% Ability Power) plus 7% of their max Health (max 300 vs monsters[Neutral Hostile]).
W Drunken Rage Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to DrunkenRage_Ability
Actions
Set DrunkenRage_TriggeringUnit = (Triggering unit)
Set AbilityIndexer = (Custom value of DrunkenRage_TriggeringUnit)
Set DrunkenRage_Point = (Position of DrunkenRage_TriggeringUnit)
-------- ===== Disable Spellcasts and Attacks while drinking ===== --------
Unit - Interrupt DrunkenRage_TriggeringUnit's Attack
Unit - For DrunkenRage_TriggeringUnit, Ability DrunkenRage_Ability, Disable ability: True, Hide UI: False
Animation - Change DrunkenRage_TriggeringUnit's vertex coloring to (100.00%, 75.00%, 11.00%) with 0.00% transparency
Animation - Play DrunkenRage_TriggeringUnit's alternate animation
Animation - Add the alternate animation tag to DrunkenRage_TriggeringUnit
Sound - Play DrunkenRage_DrinkSound at 100.00% volume, attached to DrunkenRage_TriggeringUnit
Unit - Create 1 DrunkenRage_TimerDummyType for (Owner of DrunkenRage_TriggeringUnit) at DrunkenRage_Point facing DrunkenRage_Point
Set AbilityIndexer = (Custom value of (Last created unit))
Set DrunkenRage_GetTimerCaster[AbilityIndexer] = DrunkenRage_TriggeringUnit
Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Drunken Haze DrunkenRage_TriggeringUnit
Unit - Add a 1.25 second Generic expiration timer to (Last created unit)
Unit - For DrunkenRage_TriggeringUnit, Ability Passive - Happy Hour , Disable ability: False, Hide UI: False
Custom script: call RemoveLocation(udg_DrunkenRage_Point)
W Drunken Rage Buff
Events
Unit - A unit Dies
Conditions
(Unit-type of (Dying unit)) Equal to DrunkenRage_TimerDummyType
Actions
Set DrunkenRage_TriggeringUnit = (Dying unit)
Set AbilityIndexer = (Custom value of DrunkenRage_TriggeringUnit)
Set DrunkenRage_AbilityLevel = (Level of DrunkenRage_Ability for DrunkenRage_GetTimerCaster[AbilityIndexer])
Set DrunkenRage_Point = (Position of DrunkenRage_GetTimerCaster[AbilityIndexer])
Animation - Change DrunkenRage_GetTimerCaster[AbilityIndexer]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Unit - Create 1 DrunkenRage_AAEmpDummyType for (Owner of DrunkenRage_TriggeringUnit) at DrunkenRage_Point facing DrunkenRage_Point
Set DrunkenRage_AAEmpGetDummy[(Custom value of DrunkenRage_GetTimerCaster[AbilityIndexer])] = (Last created unit)
Set DrunkenRage_AAEmpGetCaster[(Custom value of (Last created unit))] = DrunkenRage_GetTimerCaster[AbilityIndexer]
Unit - Order (Last created unit) to Orc Shaman - Bloodlust DrunkenRage_GetTimerCaster[AbilityIndexer]
Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
Animation - Remove the alternate animation tag to DrunkenRage_GetTimerCaster[AbilityIndexer]
Custom script: call RemoveLocation(udg_DrunkenRage_Point)
W Drunken Rage Anim
Events
Unit - A unit Is attacked
Conditions
((Attacking unit) has buff Drunken Rage ( AAEmpower )) Equal to True
Actions
Animation - Play (Attacking unit)'s attack slam animation
W Drunken Rage Damage
Events
Game - DamageModifierEvent becomes Equal to 1.00
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(DamageEventTarget has buff Drunken Rage ( DmgReduction )) Equal to True
Then - Actions
Set DrunkenRage_TriggeringUnit = DamageEventTarget
Set DrunkenRage_AbilityLevel = (Level of DrunkenRage_Ability for DrunkenRage_TriggeringUnit)
Set CalculateDamage = (DrunkenRage_BaseDmgRdc[DrunkenRage_AbilityLevel] + ((Real((Intelligence of DrunkenRage_TriggeringUnit (Include bonuses)))) x DrunkenRage_APScale[2]))
Set Math = (DamageEventAmount - (DamageEventAmount x CalculateDamage))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Math Greater than 5.00
Then - Actions
Set DamageEventAmount = Math
Else - Actions
Set DamageEventAmount = 5.00
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(DamageEventSource has buff Drunken Rage ( AAEmpower )) Equal to True
(DamageEventTarget has buff Basic Attack ) Equal to True
Then - Actions
Set DrunkenRage_TriggeringUnit = DamageEventSource
Set AbilityIndexer = (Custom value of DrunkenRage_TriggeringUnit)
Set DrunkenRage_AbilityLevel = (Level of DrunkenRage_Ability for DrunkenRage_TriggeringUnit)
Set CalculateDamage = (DrunkenRage_BaseDamage[DrunkenRage_AbilityLevel] + ((Real((Intelligence of DrunkenRage_TriggeringUnit (Include bonuses)))) x DrunkenRage_APScale[1]))
Set DrunkenRage_Point = (Position of DamageEventTarget)
Set DrunkenRage_DamageGroup = (Units within 190.00 of DrunkenRage_Point)
Unit - Remove Drunken Rage ( AAEmpower ) buff from DrunkenRage_TriggeringUnit
Unit - Kill DrunkenRage_AAEmpGetDummy[AbilityIndexer]
Unit Group - Pick every unit in DrunkenRage_DamageGroup and do (Actions)
Loop - Actions
Set DrunkenRage_DamagePicked = (Picked unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(DrunkenRage_DamagePicked is alive) Equal to True
(DrunkenRage_DamagePicked is A structure) Equal to False
(DrunkenRage_DamagePicked is A flying unit) Equal to False
(DrunkenRage_DamagePicked is Magic Immune) Equal to False
(DrunkenRage_DamagePicked belongs to an enemy of (Owner of DrunkenRage_TriggeringUnit)) Equal to True
Then - Actions
Set DrunkenRage_TotalDamage = (CalculateDamage + ((Max life of DrunkenRage_DamagePicked) x 0.07))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(Owner of DrunkenRage_DamagePicked) Equal to Neutral Hostile
DrunkenRage_TotalDamage Greater than 300.00
Then - Actions
Set DrunkenRage_TotalDamage = 300.00
Else - Actions
Unit - Cause DrunkenRage_TriggeringUnit to damage DrunkenRage_DamagePicked, dealing DrunkenRage_TotalDamage damage of attack type Magic and damage type Normal
Special Effect - Create a special effect attached to the origin of DrunkenRage_DamagePicked using DrunkenRage_AttackSFX
Special Effect - Destroy (Last created special effect)
Else - Actions
Custom script: call RemoveLocation(udg_DrunkenRage_Point)
Custom script: call DestroyGroup(udg_DrunkenRage_DamageGroup)
Else - Actions
![]()
(E-Active) Body Slam![]()
ACTIVE: Gragas charges forward, colliding with the first enemy unit. He deals 80/130/180/230/280 (+60% Ability Power) magic damage to enemies in the area and bumps them back, stunning them for 1 second.
E Body Slam Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to BodySlam_Ability
Actions
Set BodySlam_TriggeringUnit = (Triggering unit)
Set AbilityIndexer = (Custom value of BodySlam_TriggeringUnit)
Set BodySlam_Points[1] = (Position of BodySlam_TriggeringUnit)
Set BodySlam_Points[2] = (Target point of ability being cast)
Set BodySlam_DashBool[AbilityIndexer] = True
Set BdSlmExpCask_KBTotalDistance[AbilityIndexer] = 600.00
Set BdSlmExpCask_KBSpeed[AbilityIndexer] = 25.00
Set BdSlmExpCask_KBAngle[AbilityIndexer] = (Angle from BodySlam_Points[1] to BodySlam_Points[2])
Animation - Change BodySlam_TriggeringUnit's animation speed to 8.00% of its original speed
Unit - Turn collision for BodySlam_TriggeringUnit Off
Unit Group - Add BodySlam_TriggeringUnit to BdSlmExpCask_KBGroup
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in BdSlmExpCask_KBGroup) Greater than or equal to 1
Then - Actions
Trigger - Turn on BodySlam ExplosiveCask Move <gen>
Else - Actions
Custom script: call RemoveLocation(udg_BodySlam_Points[1])
Custom script: call RemoveLocation(udg_BodySlam_Points[2])
![]()
(R-Active) Explosive Cask
![]()
Gragas hurls his cask, causing it to explode when it lands. Enemies hit take 200/300/400 (+70% Ability Power) magic damage and are knocked away from the explosion.
R Explosive Cask Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to ExplosiveCask_Ability
Actions
-------- ======= Setting the Variables ======= --------
Set ExplosiveCask_TriggeringUnit = (Triggering unit)
Set ExplosiveCask_AbilityLevel = (Level of ExplosiveCask_Ability for BarrelRoll_TriggeringUnit)
Set ExplosiveCask_Points[1] = (Position of ExplosiveCask_TriggeringUnit)
Set ExplosiveCask_Points[2] = (Target point of ability being cast)
-------- ======= Creating dummy unit ======= --------
Unit - Create 1 ExplosiveCask_DummyCaster for (Owner of ExplosiveCask_TriggeringUnit) at ExplosiveCask_Points[1] facing ExplosiveCask_Points[2]
Set AbilityIndexer = (Custom value of (Last created unit))
Set ExplosiveCask_GetDummyCaster[AbilityIndexer] = ExplosiveCask_TriggeringUnit
Set ExplosiveCask_DummyTargetPoint[AbilityIndexer] = (Target point of ability being cast)
Unit - Add ExplosiveCask_DummyAbility to (Last created unit)
Unit - Set level of ExplosiveCask_DummyAbility for (Last created unit) to ExplosiveCask_AbilityLevel
Unit - Order (Last created unit) to Neutral Tinker - Pocket Factory ExplosiveCask_Points[2]
-------- ======= Set dummy's expiration timer and variables . When it dies, create cask dummy ======= --------
Set Math = ((Distance between ExplosiveCask_Points[1] and ExplosiveCask_Points[2]) / ExplosiveCask_CaskSpeed)
Unit - Add a Math second Generic expiration timer to (Last created unit)
-------- ======= Remove leaks ======= --------
Custom script: call RemoveLocation(udg_ExplosiveCask_Points[1])
Custom script: call RemoveLocation(udg_ExplosiveCask_Points[2])
R Explosive Cask Impact
Events
Unit - A unit Dies
Conditions
(Unit-type of (Dying unit)) Equal to ExplosiveCask_DummyCaster
Actions
Set ExplosiveCask_TriggeringUnit = (Dying unit)
Set AbilityIndexer = (Custom value of ExplosiveCask_TriggeringUnit)
Set ExplosiveCask_AbilityLevel = (Level of ExplosiveCask_DummyAbilty for ExplosiveCask_TriggeringUnit)
Set CalculateDamage = (ExplosiveCask_BaseDamage[ExplosiveCask_AbilityLevel] + ((Real((Intelligence of ExplosiveCask_GetDummyCaster[AbilityIndexer] (Include bonuses)))) x 0.70))
Set ExplosiveCask_GetTargetPoint = ExplosiveCask_DummyTargetPoint[AbilityIndexer]
Set ExplosiveCask_DamageGroup = (Units within 430.00 of ExplosiveCask_GetTargetPoint)
Unit Group - Pick every unit in ExplosiveCask_DamageGroup and do (Actions)
Loop - Actions
Set ExplosiveCask_DamagePicked = (Picked unit)
Set ExplosiveCask_DamagePoint = (Position of ExplosiveCask_DamagePicked)
Set AbilityIndexer2 = (Custom value of ExplosiveCask_DamagePicked)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(ExplosiveCask_DamagePicked is alive) Equal to True
(ExplosiveCask_DamagePicked is A structure) Equal to False
(ExplosiveCask_DamagePicked is A flying unit) Equal to False
(ExplosiveCask_DamagePicked is Magic Immune) Equal to False
(ExplosiveCask_DamagePicked belongs to an enemy of (Owner of HappyHour_TriggeringUnit)) Equal to True
Then - Actions
Unit - Cause ExplosiveCask_TriggeringUnit to damage ExplosiveCask_DamagePicked, dealing CalculateDamage damage of attack type Magic and damage type Normal
Set BdSlmExpCask_KBTotalDistance[AbilityIndexer2] = 900.00
Set BdSlmExpCask_KBSpeed[AbilityIndexer2] = 30.00
Set BdSlmExpCask_KBAngle[AbilityIndexer2] = (Angle from ExplosiveCask_GetTargetPoint to ExplosiveCask_DamagePoint)
Unit Group - Add ExplosiveCask_DamagePicked to BdSlmExpCask_KBGroup
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in BdSlmExpCask_KBGroup) Greater than or equal to 1
Then - Actions
Trigger - Turn on BodySlam ExplosiveCask Move <gen>
Else - Actions
Else - Actions
Custom script: call RemoveLocation(udg_ExplosiveCask_DamagePoint)
Special Effect - Create a special effect at ExplosiveCask_DummyTargetPoint[AbilityIndexer] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
Special Effect - Set Scale of (Last created special effect) to 1.80
Special Effect - Destroy (Last created special effect)
Custom script: call DestroyGroup(udg_ExplosiveCask_DamageGroup)
Custom script: call RemoveLocation(udg_ExplosiveCask_GetTargetPoint)
Custom script: call RemoveLocation(udg_ExplosiveCask_DummyTargetPoint[udg_AbilityIndexer])
BodySlam ExplosiveCask Move
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in BdSlmExpCask_KBGroup and do (Actions)
Loop - Actions
Set BdysSlmExpCask_PickedUnit = (Picked unit)
Set AbilityIndexer2 = (Custom value of BdysSlmExpCask_PickedUnit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(BdysSlmExpCask_PickedUnit is alive) Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BdSlmExpCask_KBTotalDistance[AbilityIndexer2] Greater than 0.00
Then - Actions
Set BdSlmExpCask_KBLocI = (Position of BdysSlmExpCask_PickedUnit)
Set BdSlmExpCask_KBLocII = (BdSlmExpCask_KBLocI offset by BdSlmExpCask_KBSpeed[AbilityIndexer2] towards BdSlmExpCask_KBAngle[AbilityIndexer2] degrees)
Set BdSlmExpCask_KBTotalDistance[AbilityIndexer2] = (BdSlmExpCask_KBTotalDistance[AbilityIndexer2] - BdSlmExpCask_KBSpeed[AbilityIndexer2])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BodySlam_DashBool[AbilityIndexer2] Equal to True
Then - Actions
Unit - Move BdysSlmExpCask_PickedUnit instantly to BdSlmExpCask_KBLocII
Set BodySlam_Points[1] = (BdSlmExpCask_KBLocI offset by 120.00 towards BdSlmExpCask_KBAngle[AbilityIndexer2] degrees)
Set BodySlam_DashDmgGroup = (Units within 120.00 of BodySlam_Points[1])
Unit Group - Pick every unit in BodySlam_DashDmgGroup and do (Actions)
Loop - Actions
Set BodySlam_DashDmgPicked = (Picked unit)
Set AbilityIndexer2 = (Custom value of BodySlam_DashDmgPicked)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(BodySlam_DashDmgPicked is alive) Equal to True
(BodySlam_DashDmgPicked is A structure) Equal to False
(BodySlam_DashDmgPicked is A flying unit) Equal to False
(BodySlam_DashDmgPicked is Magic Immune) Equal to False
(BodySlam_DashDmgPicked belongs to an enemy of (Owner of BdysSlmExpCask_PickedUnit)) Equal to True
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BodySlam_Flag Equal to False
Then - Actions
Special Effect - Create a special effect attached to the origin of BodySlam_TriggeringUnit using BodySlam_SFX[1]
Special Effect - Set Scale of (Last created special effect) to 2.00
Special Effect - Destroy (Last created special effect)
Unit - Order BdysSlmExpCask_PickedUnit to Attack (Random unit from BodySlam_DashDmgGroup)
Animation - Change BdysSlmExpCask_PickedUnit's animation speed to 100.00% of its original speed
Unit - Turn collision for BdysSlmExpCask_PickedUnit On
Unit Group - Remove BdysSlmExpCask_PickedUnit from BdSlmExpCask_KBGroup
Set BodySlam_Flag = True
Else - Actions
Set BodySlam_DashBool[AbilityIndexer] = False
Set BodySlam_AbilityLevel = (Level of BodySlam_Ability for BdysSlmExpCask_PickedUnit)
Set CalculateDamage = (BodySlam_BaseDamage[BodySlam_AbilityLevel] + ((Real((Intelligence of BdysSlmExpCask_PickedUnit (Include bonuses)))) x BodySlam_APScale))
Set BodySlam_Points[2] = (Position of BodySlam_DashDmgPicked)
Set BdSlmExpCask_KBTotalDistance[AbilityIndexer2] = 90.00
Set BdSlmExpCask_KBSpeed[AbilityIndexer2] = 3.50
Set BdSlmExpCask_KBAngle[AbilityIndexer2] = (Angle from BdSlmExpCask_KBLocI to BodySlam_Points[2])
Unit - Cause BdysSlmExpCask_PickedUnit to damage BodySlam_DashDmgPicked, dealing CalculateDamage damage of attack type Magic and damage type Normal
Unit Group - Add BodySlam_DashDmgPicked to BdSlmExpCask_KBGroup
Special Effect - Create a special effect attached to the chest of BodySlam_DashDmgPicked using BodySlam_SFX[1]
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation(udg_BodySlam_Points[2])
Else - Actions
Set BodySlam_Flag = False
Custom script: call RemoveLocation(udg_BodySlam_Points[1])
Custom script: call DestroyGroup(udg_BodySlam_DashDmgGroup)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Terrain pathing at BdSlmExpCask_KBLocII of type Walkability is off) Equal to True
Then - Actions
Unit - Turn collision for BdysSlmExpCask_PickedUnit On
Unit Group - Remove BdysSlmExpCask_PickedUnit from BdSlmExpCask_KBGroup
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in BdSlmExpCask_KBGroup) Equal to 0
Then - Actions
Trigger - Turn off BodySlam ExplosiveCask Move <gen>
Else - Actions
Else - Actions
Unit - Move BdysSlmExpCask_PickedUnit instantly to BdSlmExpCask_KBLocII
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
BodySlam_DashBool[AbilityIndexer2] Equal to True
Then - Actions
Special Effect - Create a special effect attached to the origin of BdysSlmExpCask_PickedUnit using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
Else - Actions
Special Effect - Create a special effect attached to the origin of BdysSlmExpCask_PickedUnit using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation(udg_BdSlmExpCask_KBLocI)
Custom script: call RemoveLocation(udg_BdSlmExpCask_KBLocII)
Else - Actions
Animation - Change BdysSlmExpCask_PickedUnit's animation speed to 100.00% of its original speed
Unit - Turn collision for BdysSlmExpCask_PickedUnit On
Unit Group - Remove BdysSlmExpCask_PickedUnit from BdSlmExpCask_KBGroup
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in BdSlmExpCask_KBGroup) Equal to 0
Then - Actions
Trigger - Turn off BodySlam ExplosiveCask Move <gen>
Else - Actions
Else - Actions
Animation - Change BdysSlmExpCask_PickedUnit's animation speed to 100.00% of its original speed
Unit - Turn collision for BdysSlmExpCask_PickedUnit On
Unit Group - Remove BdysSlmExpCask_PickedUnit from BdSlmExpCask_KBGroup
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in BdSlmExpCask_KBGroup) Equal to 0
Then - Actions
Trigger - Turn off BodySlam ExplosiveCask Move <gen>
Else - Actions
![]()
CHANGELOGS
CHANGELOGS
• v1.0 - Release
• v1.5 - Changes made to all abilities.
--------- Happy Hour:
--------- >> Heal amount now configurable.
--------- >> Changed event from "Begins casting" to "Starts casting".
--------- >> Minor condition tweaks and removed a Do Nothing trigger.
--------- >> Fixed a bug where the heal will cast twice.
--------- >> Cooldown dummy now spawns with Unit Indexer event.
--------- Barrel Roll:
--------- >> Cask travel speed now configurable.
--------- >> Cask duration now configurable.
--------- >> Assigned proper variables to the cask dummy.
--------- >> Merged [Q Barrel Roll Start] and [Q Barrel Roll Damage Auto]
--------- Drunken Rage:
--------- >> Merged [W Drunken Rage Damage] and [W Drunken Rage DmgReduc]
--------- >> Fixed damage reduction math ( It used to reduce all damage to 5 )
--------- Body Slam:
--------- >> Dash speed increased from 23.00 to 25.00
--------- >> Gragas now stops when he dies mid-dash.
--------- Explosive Cask:
--------- >> Cask travel speed now configurable.
--------- >> Dead enemies are no longer knocked away from the impact.
• v1.8 - Ability ratios are now configurable. A few changes to Barrel Roll, Drunken Rage and Body Slam.
--------- Barrel Roll:
--------- >> Detonation effect size increased. (Just the sfx, not the range)
--------- Drunken Rage:
--------- >> Fixed damage reduction calculation.
--------- Body Slam:
--------- >> Unit Group detection now filters unit inside the group, making it easier to modify targets.