- 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.