1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. Seek unity between the elements in the 22nd Terraining Contest Poll.
    Dismiss Notice
  3. Seize the moment! The 18th Mini Mapping Contest has commenced.
    Dismiss Notice
  4. The heavens smile on the old faithful. The 16th Techtree Contest has begun.
    Dismiss Notice
  5. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

MortarRun028c.w3x
Variables
Data
Mortar Type Damage
Set player colours
Other Data
Set Heroes
Setup
SetupMultiboard
Start Game
Auto Start
Choose Hero
Change Options
Lock Camera
Confirm Modes
Randomhero
Game
Autobalance
RunGame
RunRound
Reach West
Reach East
Runner Death
Player Leaves
Endgame Scores
ScoreSpellsCast
AI
AI shooting
AI running
AI levelup
System
Missile Terrain Collision Region 1
Missile Terrain Collision Region 2
Missile Terrain Collision Region 3
Missile Terrain Collision Region 4
TakeDamage
Cleanup
Abilities - Mortars
ToggleZoom
Mortard
Vanilla Mortar
Vanilla Explosion
Grapeshot
Grapeshot Explosion
Marksman
Aimed Shot
Aimed Shot Explosion
Mark Target
Mark Target Explosion
Heavy
Carpet Bomb
Carpet Bomb Explosion
Big Bomba
Big Bomba Explosion
SwiftOfShell
Alchemist
Spikeball
Spikeball Explosion
Spikeball Movement
Acid Bomb
Acid Bomb Explosion
Rocketeer
Swarm Rockets
Swarm Rockets Explosion
Wild Rocket
Wild Rocket Movement
Wild Rocket Turning
Wild Rocket Explosion
Wild Rocket Death
Tinker
Abilities - Runners
CasterDeath
Tank
Taunt
RageGet
RageLose
Captain
ChargeCast
ChargeLoop
RoarCast
Scout
LeapCast
LeapLoop
SmokeCast
Spotting
SpottingLearn
SpottingCooldown
Doctor
DivineShieldCast
DivineShieldLoop
Aesthetic
Camera Shake
Create Decals
Remove Decals
Testing Triggers
levelup
Enter map-specific custom script code below. This text will be included in the map script after variables are declared and before any trigger code.

		
Name Type Is Array Initial Value
AI force No
aiNameGen integer No
aiNameMain string Yes
aiNamePre string Yes
aiNameSuf string Yes
allChosen boolean No
battleFX effect Yes
battleFXnum integer No
bestscorer player No
board multiboard No
boardId integer No
boardPosition integer Yes
bronzebeardsPlayerCount integer No
cameraShake real Yes
chargeCounter integer Yes
chargeDirection real Yes
chargeGroup group No
currentlyRunning group No
damage real No
divineShielded unit Yes
divineShielders group No
divineShieldFX effect Yes
divineShielding lightning Yes
divineShields integer Yes
floatMortar texttag Yes
floatRunner texttag Yes
greybeardsPlayerCount integer No
heroeschosen integer No
host player No
hp real No
i integer No
killText string Yes
killTextId integer No
l location Yes
leapDirection real Yes
leapFX effect Yes
leapGroup group No
leapHeightChange real Yes
levelUps integer No
manaCost real No
mapCameras camerasetup Yes
mapChosen boolean No
mapText string Yes
minusMana real No
mortar unit Yes
mortarsEast group No
mortarsWest group No
playerBase rect Yes
playerIcon string Yes
players force No
r real No
rageBuffCounter integer Yes
rageGroup group No
randomMortar unitcode Yes
randomMortarMain abilcode Yes
randomMortars integer No
randomRunner unitcode Yes
randomRunners integer No
round integer No
runHeroMortars group No
runHeroRunners group No
runner unit Yes
runners integer No
runnersEast group No
runnersWest group No
runPlayerMortars force No
runPlayerRunners force No
sameHero boolean No
scoreAccuracy real Yes
scoreDamage real Yes
scoreEast real No
scoreHits integer Yes
scoreHp real Yes
scoreKills integer Yes
scoreShotsFired integer Yes
scoreWest real No
shotArea real Yes
shotAreaUp real Yes
shotDamage real Yes
shotDamageUp real Yes
shotId integer No
shotSpeed real Yes
shotSpell abilcode Yes
slotsEast group No
slotsWest group No
spikedballs group No
spikeSpeed real Yes
spottingCooldown real Yes
spottingGroup group No
startingLevel integer No 1
teambalancer player No
teamEast force No
teamWest force No
tempint integer No
tempscore real No
tempStr string No
tick integer No
totalrounds integer No 4
u unit No
ug group No
upgrades unit Yes
vanillaVelocity real Yes
viewMap integer No
viewPicking boolean No
wildrocketGroup group No
x real No
y real No
zoom real Yes
Mortar Type Damage
  Events
    Map initialization
  Conditions
  Actions
    -------- note: since laziness, add 1 level of upgrade to base damage to get REAL base damage --------
    -------- ie: set base damage to noted base damage minus one upgrade --------
    -------- 0 Vanilla Mortar --------
    Set VariableSet shotSpell[i] = Vanilla Mortar
    Set VariableSet shotSpeed[i] = 1250.00
    Set VariableSet shotDamage[i] = 125.00
    Set VariableSet shotDamageUp[i] = 50.00
    Set VariableSet shotArea[i] = 250.00
    Set VariableSet shotAreaUp[i] = 25.00
    Set VariableSet i = (i + 1)
    -------- Grapeshot: change data in data editor --------
    -------- 1 Aimed Shot --------
    Set VariableSet shotSpell[i] = Aimed Shot
    Set VariableSet shotSpeed[i] = 2000.00
    Set VariableSet shotDamage[i] = 175.00
    Set VariableSet shotDamageUp[i] = 75.00
    Set VariableSet shotArea[i] = 130.00
    Set VariableSet shotAreaUp[i] = 0.00
    Set VariableSet i = (i + 1)
    -------- 2 Spikeball --------
    Set VariableSet shotSpell[i] = Spikeball
    Set VariableSet shotSpeed[i] = 900.00
    Set VariableSet shotDamage[i] = 75.00
    Set VariableSet shotDamageUp[i] = 75.00
    Set VariableSet shotArea[i] = 200.00
    Set VariableSet shotAreaUp[i] = 0.00
    Set VariableSet i = (i + 1)
    -------- 3 Acid Bomb --------
    -------- Acid Bomb DPS - change in data editor --------
    Set VariableSet shotSpell[i] = Acid Bomb
    Set VariableSet shotSpeed[i] = 1100.00
    Set VariableSet shotDamage[i] = 150.00
    Set VariableSet shotDamageUp[i] = 50.00
    Set VariableSet shotArea[i] = 250.00
    Set VariableSet shotAreaUp[i] = 0.00
    Set VariableSet i = (i + 1)
    -------- 4 Carpet Bomb --------
    Set VariableSet shotSpell[i] = Carpet Bomb
    Set VariableSet shotSpeed[i] = 1100.00
    Set VariableSet shotDamage[i] = 100.00
    Set VariableSet shotDamageUp[i] = 75.00
    Set VariableSet shotArea[i] = 180.00
    Set VariableSet shotAreaUp[i] = 0.00
    Set VariableSet i = (i + 1)
    -------- 5 Big Bomba --------
    Set VariableSet shotSpell[i] = Big Bomba
    Set VariableSet shotSpeed[i] = 800.00
    Set VariableSet shotDamage[i] = 300.00
    Set VariableSet shotDamageUp[i] = 100.00
    Set VariableSet shotArea[i] = 350.00
    Set VariableSet shotAreaUp[i] = 0.00
    Set VariableSet i = (i + 1)
    -------- 6 Swarm Rockets --------
    Set VariableSet shotSpell[i] = Swarm Rockets
    Set VariableSet shotSpeed[i] = 1600.00
    Set VariableSet shotDamage[i] = 140.00
    Set VariableSet shotDamageUp[i] = 60.00
    Set VariableSet shotArea[i] = 150.00
    Set VariableSet shotAreaUp[i] = 0.00
    Set VariableSet i = (i + 1)
    -------- 7 Wild Rocket --------
    Set VariableSet shotSpell[i] = Wild Rocket
    Set VariableSet shotSpeed[i] = 1000.00
    Set VariableSet shotDamage[i] = 200.00
    Set VariableSet shotDamageUp[i] = 150.00
    Set VariableSet shotArea[i] = 250.00
    Set VariableSet shotAreaUp[i] = 0.00
    Set VariableSet i = (i + 1)
    -------- ----- --------
    Set VariableSet shotId = i
function Trig_Set_player_colours_Actions takes nothing returns nothing
    call SetPlayerName( Player(0), ( "|cffff0202" + ( GetPlayerName(Player(0)) + "|r" ) ) )
    call SetPlayerName( Player(1), ( "|cff0041ff" + ( GetPlayerName(Player(1)) + "|r" ) ) )
    call SetPlayerName( Player(2), ( "|cff1be5b8" + ( GetPlayerName(Player(2)) + "|r" ) ) )
    call SetPlayerName( Player(3), ( "|cff530080" + ( GetPlayerName(Player(3)) + "|r" ) ) )
    call SetPlayerName( Player(4), ( "|cffffff00" + ( GetPlayerName(Player(4)) + "|r" ) ) )
    call SetPlayerName( Player(5), ( "|cfffe890d" + ( GetPlayerName(Player(5)) + "|r" ) ) )
    call SetPlayerName( Player(6), ( "|cff1fbf00" + ( GetPlayerName(Player(6)) + "|r" ) ) )
    call SetPlayerName( Player(7), ( "|cffe45aaa" + ( GetPlayerName(Player(7)) + "|r" ) ) )
    call SetPlayerName( Player(8), ( "|cff949596" + ( GetPlayerName(Player(8)) + "|r" ) ) )
    call SetPlayerName( Player(9), ( "|cff7dbef1" + ( GetPlayerName(Player(9)) + "|r" ) ) )
    call SetPlayerName( Player(10), ( "|cff0f6145" + ( GetPlayerName(Player(10)) + "|r" ) ) )
    call SetPlayerName( Player(11), ( "|cff4d2903" + ( GetPlayerName(Player(11)) + "|r" ) ) )

endfunction

//===========================================================================
function InitTrig_Set_player_colours takes nothing returns nothing
    set gg_trg_Set_player_colours = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Set_player_colours, function Trig_Set_player_colours_Actions )
endfunction

 
Other Data
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet mapCameras[1] = gg_cam_Map_1
    Set VariableSet mapCameras[2] = gg_cam_Map_2
    Set VariableSet mapCameras[3] = gg_cam_Map_3
    Set VariableSet mapCameras[4] = gg_cam_Map4
    Set VariableSet mapText[1] = |cffffcc00White Hall|r | Players: 2-4
    Set VariableSet mapText[2] = |cffffcc00Courtyard|r | Players: 5-8
    Set VariableSet mapText[3] = |cffffcc00Gardens|r | Players: 9-12
    Set VariableSet mapText[4] = |cffffcc00Track|r | Players: Any
    Set VariableSet aiNameGen = (aiNameGen + 1)
    Set VariableSet aiNamePre[aiNameGen] = Faki
    Set VariableSet aiNameMain[aiNameGen] = Troll
    Set VariableSet aiNameSuf[aiNameGen] = slayer
    Set VariableSet aiNameGen = (aiNameGen + 1)
    Set VariableSet aiNamePre[aiNameGen] = Rigu
    Set VariableSet aiNameMain[aiNameGen] = Orc
    Set VariableSet aiNameSuf[aiNameGen] = crusher
    Set VariableSet aiNameGen = (aiNameGen + 1)
    Set VariableSet aiNamePre[aiNameGen] = Dindi
    Set VariableSet aiNameMain[aiNameGen] = Goblin
    Set VariableSet aiNameSuf[aiNameGen] = killer
    Set VariableSet aiNameGen = (aiNameGen + 1)
    Set VariableSet aiNamePre[aiNameGen] = Duran
    Set VariableSet aiNameMain[aiNameGen] = Human
    Set VariableSet aiNameSuf[aiNameGen] = fists
    Set VariableSet aiNameGen = (aiNameGen + 1)
    Set VariableSet aiNamePre[aiNameGen] = Bondol
    Set VariableSet aiNameMain[aiNameGen] = Gnoll
    Set VariableSet aiNameSuf[aiNameGen] = hewer
    Set VariableSet aiNameGen = (aiNameGen + 1)
    Set VariableSet aiNamePre[aiNameGen] = Thandor
    Set VariableSet aiNameMain[aiNameGen] = Wolf
    Set VariableSet aiNameSuf[aiNameGen] = skinner
    Set VariableSet aiNameGen = (aiNameGen + 1)
    Set VariableSet aiNamePre[aiNameGen] = Boldirn
    Set VariableSet aiNameMain[aiNameGen] = Carp
    Set VariableSet aiNameSuf[aiNameGen] = smasher
Set Heroes
  Events
    Map initialization
  Conditions
  Actions
    -------- set runner types for random picking --------
    Set VariableSet randomRunners = (randomRunners + 1)
    Set VariableSet randomRunner[randomRunners] = Scout (runner)
    Set VariableSet randomRunners = (randomRunners + 1)
    Set VariableSet randomRunner[randomRunners] = Tank (runner)
    Set VariableSet randomRunners = (randomRunners + 1)
    Set VariableSet randomRunner[randomRunners] = Captain (runner)
    Set VariableSet randomRunners = (randomRunners + 1)
    Set VariableSet randomRunner[randomRunners] = Doctor (runner)
    -------- set mortar types for random picking --------
    Set VariableSet randomMortars = (randomMortars + 1)
    Set VariableSet randomMortar[randomMortars] = Heavy (mortar)
    Set VariableSet randomMortarMain[randomMortars] = Carpet Bomb
    Set VariableSet randomMortars = (randomMortars + 1)
    Set VariableSet randomMortar[randomMortars] = Soldier (mortar)
    Set VariableSet randomMortarMain[randomMortars] = Vanilla Mortar
    Set VariableSet randomMortars = (randomMortars + 1)
    Set VariableSet randomMortar[randomMortars] = Rocketeer (mortar)
    Set VariableSet randomMortarMain[randomMortars] = Swarm Rockets
    Set VariableSet randomMortars = (randomMortars + 1)
    Set VariableSet randomMortar[randomMortars] = Alchemist (mortar)
    Set VariableSet randomMortarMain[randomMortars] = Spikeball
    Set VariableSet randomMortars = (randomMortars + 1)
    Set VariableSet randomMortar[randomMortars] = Marksman (mortar)
    Set VariableSet randomMortarMain[randomMortars] = Aimed Shot
SetupMultiboard
  Events
    Time - Elapsed game time is 0.00 seconds
  Conditions
  Actions
    Multiboard - Create a multiboard with 2 columns and 6 rows, titled Mortar Run.
    Set VariableSet board = (Last created multiboard)
    Multiboard - Set the width for board item in column 1, row 0 to 14.00% of the total screen width
    Multiboard - Set the width for board item in column 2, row 0 to 3.00% of the total screen width
    Multiboard - Set the display style for board item in column 0, row 0 to Show text and Hide icons
    Multiboard - Hide (Last created multiboard)
    Multiboard - Minimize (Last created multiboard)
    Multiboard - Maximize (Last created multiboard)
Start Game
  Events
    Map initialization
  Conditions
  Actions
    Quest - Create a Optional quest titled Credits with the description Map design, triggers by rulerofiron99Testing by UnholyAngel, Supy, KAOSinPOTENTIATarget Cursor by Fluff (wc3c.net)All Explosion, Rocket models (unless otherwise listed) by WILL THE ALMIGHTY (wc3c.net, hiveworkshop.com)Artillery Explosion model by Bon_Jovi (hiveworkshop.com)Dead dwarves models by Sellenisko (hiveworkshop.com)Dwarven Statue model by DarkChaplain (hiveworkshop.com)Explosive Barrel Missile model by sPy (hiveworkshop.com)Sprint buff model (HolyLow.mdx) by Pyritie (hiveworkshop.com)Regeneration buff model (BurningCore.mdx) by crill-myster (hiveworkshop.com) Zoom icon by Jacky the Turtle (hiveworkshop.com)Scout and Tank models by General Frank (wc3c.net)Chemical Embers model by shamanyouranus (hiveworkshop.com)Acid Bomb model by shamanyouranus (hiveworkshop.com)Doctor model by Radagast (hiveworkshop.com)Dwarf image on preview taken from http://www.poxpulse.com/rune/id/1037, and edited using Word and Paint., using icon path ReplaceableTextures\CommandButtons\BTNSelectHeroOff.blp
    Quest - Create a Optional quest titled localwar.co.za with the description The latest version of Mortar Run will always be available on |cffffcc00localwar.co.za|r.You can also find the changelogs., using icon path ReplaceableTextures\CommandButtons\BTNSpellBookBLS.blp
    Set VariableSet totalrounds = 0
    Visibility - Disable fog of war
    Visibility - Disable black mask
    For each (Integer A) from 1 to 12, do (Actions)
      Loop - Actions
        Set VariableSet zoom[(Integer A)] = 0.00
        Trigger - Add to Player_Leaves <gen> the event ((Player((Integer A))) leaves the game)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Player((Integer A))) controller) Equal to Computer
          Then - Actions
            Player - Set name of (Player((Integer A))) to (aiNamePre[(Random integer number between 1 and aiNameGen)] + (( + aiNameMain[(Random integer number between 1 and aiNameGen)]) + aiNameSuf[(Random integer number between 1 and aiNameGen)]))
            Player Group - Add (Player((Integer A))) to AI
          Else - Actions
    Set VariableSet boardId = 0
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Player((Integer A))) slot status) Equal to Is playing
          Then - Actions
            Player Group - Add (Player((Integer A))) to teamWest
            Player Group - Add (Player((Integer A))) to players
            Set VariableSet boardId = (boardId + 1)
            Set VariableSet boardPosition[(Integer A)] = boardId
          Else - Actions
    Set VariableSet boardId = 0
    For each (Integer A) from 7 to 12, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Player((Integer A))) slot status) Equal to Is playing
          Then - Actions
            Player Group - Add (Player((Integer A))) to teamEast
            Player Group - Add (Player((Integer A))) to players
            Set VariableSet boardId = (boardId + 1)
            Set VariableSet boardPosition[(Integer A)] = boardId
          Else - Actions
    Set VariableSet bronzebeardsPlayerCount = (Number of players in teamWest)
    Set VariableSet greybeardsPlayerCount = (Number of players in teamEast)
    Set VariableSet host = Neutral Passive
    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
            ((Player((Integer A))) slot status) Equal to Is playing
            host Equal to Neutral Passive
          Then - Actions
            Set VariableSet host = (Player((Integer A)))
          Else - Actions
    Wait 0.01 seconds
    Unit - Create 1.Game Setup for host at (Center of (Playable map area)) facing Default building facing degrees
    Selection - Select (Last created unit) for host
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of players in (All players)) Less than or equal to 4
      Then - Actions
        Set VariableSet viewMap = 1
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Number of players in (All players)) Greater than or equal to 9
          Then - Actions
            Set VariableSet viewMap = 3
          Else - Actions
            Set VariableSet viewMap = 2
    Set VariableSet viewPicking = True
    Set VariableSet levelUps = 1
    Set VariableSet totalrounds = 4
    Game - Display to (All players) for 15.00 seconds the text: (|cffffcc00Map:|r + mapText[viewMap])
    Game - Display to (All players) for 15.00 seconds the text: (|cffffcc00Rounds:|r + (String(totalrounds)))
    Game - Display to (All players) for 15.00 seconds the text: Players |cff00ff00may choose|r their heroes.
    Game - Display to (All players) for 15.00 seconds the text: (|cffffcc00Experience Gain:|r + (String(levelUps)))
    Game - Display to (All players) for 15.00 seconds the text: (|cffffcc00Starting Level:|r + (String(startingLevel)))
    Set VariableSet tempStr = |cffffcc00Other:|r
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        sameHero Equal to True
      Then - Actions
        Set VariableSet tempStr = (tempStr + Same Hero, )
      Else - Actions
    Game - Display to (All players) for 15.00 seconds the text: tempStr
    Wait until (mapChosen Equal to True), checking every 1 seconds
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Player((Integer A))) slot status) Equal to Is playing
          Then - Actions
          Else - Actions
            Unit - Create 1.Auto balance slot for Neutral Passive at (Center of playerBase[(Integer A)]) facing Default building facing degrees
            Unit Group - Add (Last created unit) to slotsWest
    For each (Integer A) from 7 to 12, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Player((Integer A))) slot status) Equal to Is playing
          Then - Actions
          Else - Actions
            Unit - Create 1.Auto balance slot for Neutral Passive at (Center of playerBase[(Integer A)]) facing Default building facing degrees
            Unit Group - Add (Last created unit) to slotsEast
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        sameHero Equal to False
      Then - Actions
        Player Group - Pick every player in (All players) and do (Actions)
          Loop - Actions
            Player - Set (Picked player).Current lumber to 2
      Else - Actions
        Player - Set Player 1 (Red).Current lumber to 2
    Player Group - Pick every player in teamWest and do (Actions)
      Loop - Actions
        Unit - Create 1.Select your mortar for (Picked player) at ((Center of playerBase[(Player number of (Picked player))]) offset by (-128.00, 0)) facing 0.00 degrees
        Animation - Change (Last created unit)'s vertex coloring to (20.00%, 20.00%, 100%) with 50.00% transparency
        Floating Text - Create floating text that reads Select your mortar above (Last created unit) with Z offset 64.00, using font size 10, color (100%, 100%, 100%), and 0% transparency
        Set VariableSet floatMortar[(Player number of (Picked player))] = (Last created floating text)
        Selection - Select (Last created unit) for (Picked player)
        Unit - Create 1.Select your runner for (Picked player) at ((Center of playerBase[(Player number of (Picked player))]) offset by (0.00, 0)) facing 0.00 degrees
        Animation - Change (Last created unit)'s vertex coloring to (20.00%, 20.00%, 100%) with 50.00% transparency
        Animation - Play (Last created unit)'s walk (animationname) animation
        Floating Text - Create floating text that reads Select your runner above (Last created unit) with Z offset 0.00, using font size 10, color (100%, 100%, 100%), and 0% transparency
        Set VariableSet floatRunner[(Player number of (Picked player))] = (Last created floating text)
    Player Group - Pick every player in teamEast and do (Actions)
      Loop - Actions
        Unit - Create 1.Select your mortar for (Picked player) at ((Center of playerBase[(Player number of (Picked player))]) offset by (128.00, 0)) facing 180.00 degrees
        Animation - Change (Last created unit)'s vertex coloring to (20.00%, 20.00%, 100%) with 50.00% transparency
        Floating Text - Create floating text that reads Select your mortar above (Last created unit) with Z offset 0.00, using font size 10, color (100%, 100%, 100%), and 0% transparency
        Set VariableSet floatMortar[(Player number of (Picked player))] = (Last created floating text)
        Selection - Select (Last created unit) for (Picked player)
        Unit - Create 1.Select your runner for (Picked player) at ((Center of playerBase[(Player number of (Picked player))]) offset by (0.00, 0)) facing 180.00 degrees
        Animation - Change (Last created unit)'s vertex coloring to (20.00%, 20.00%, 100%) with 50.00% transparency
        Animation - Play (Last created unit)'s walk (animationname) animation
        Floating Text - Create floating text that reads Select your runner above (Last created unit) with Z offset 64.00, using font size 10, color (100%, 100%, 100%), and 0% transparency
        Set VariableSet floatRunner[(Player number of (Picked player))] = (Last created floating text)
    Player Group - Pick every player in AI and do (Actions)
      Loop - Actions
        Unit Group - Pick every unit in (Units owned by (Picked player) of type Select your mortar) and do (Actions)
          Loop - Actions
            Unit - Order (Picked unit) to train/upgrade to a randomMortar[(Random integer number between 1 and randomMortars)]
            Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
        Unit Group - Pick every unit in (Units owned by (Picked player) of type Select your runner) and do (Actions)
          Loop - Actions
            Unit - Order (Picked unit) to train/upgrade to a randomRunner[(Random integer number between 1 and randomRunners)]
            Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        viewPicking Equal to True
      Then - Actions
        Game - Display to (All players) the text: Game mode selected. Choose your heroes.
        Trigger - Run Auto_Start <gen> (checking conditions)
      Else - Actions
        Unit Group - Pick every unit in (Units of type Select your mortar) and do (Actions)
          Loop - Actions
            Unit - Order (Picked unit) to train/upgrade to a randomMortar[(Random integer number between 1 and randomMortars)]
            Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
        Unit Group - Pick every unit in (Units of type Select your runner) and do (Actions)
          Loop - Actions
            Unit - Order (Picked unit) to train/upgrade to a randomRunner[(Random integer number between 1 and randomRunners)]
            Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
    Wait until ((totalrounds Not equal to 0) and (heroeschosen Equal to (((Number of players in teamEast) + (Number of players in teamWest)) x 2))), checking every 1 seconds
    Set VariableSet allChosen = True
    Multiboard - Show board
    Cinematic - Clear the screen of text messages for (Player group(host)).
    Game - Display to (All players) the text: (Rounds: + (String(totalrounds)))
    Wait 1.00 seconds
    Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) is Mechanical) Equal to True)) and do (Actions)
      Loop - Actions
        Set VariableSet l[0] = (Position of (Picked unit))
        Unit - Create 1.Silence Caster for (Owner of (Picked unit)) at l[0] facing Default building facing degrees
        Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn.(Picked unit)
        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        Custom script: call RemoveLocation(udg_l[0])
    Trigger - Run RunGame <gen> (ignoring conditions)
Auto Start
  Events
  Conditions
  Actions
    Wait 55.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        allChosen Equal to False
      Then - Actions
        Game - Display to (All players) the text: You have |cffff00005 seconds|r remaining to pick your heroes.
      Else - Actions
    Wait 5.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        allChosen Equal to False
      Then - Actions
        Unit Group - Pick every unit in (Units of type Select your mortar) and do (Actions)
          Loop - Actions
            Unit - Order (Picked unit) to train/upgrade to a randomMortar[(Random integer number between 1 and randomMortars)]
            Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
        Unit Group - Pick every unit in (Units of type Select your runner) and do (Actions)
          Loop - Actions
            Unit - Order (Picked unit) to train/upgrade to a randomRunner[(Random integer number between 1 and randomRunners)]
            Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
      Else - Actions
Choose Hero
  Events
    Unit - A unit Finishes an upgrade
  Conditions
  Actions
    Animation - Change (Triggering unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        sameHero Equal to True
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                (Unit-type of (Triggering unit)) Equal to Alchemist (mortar)
                (Unit-type of (Triggering unit)) Equal to Heavy (mortar)
                (Unit-type of (Triggering unit)) Equal to Marksman (mortar)
                (Unit-type of (Triggering unit)) Equal to Rocketeer (mortar)
                (Unit-type of (Triggering unit)) Equal to Soldier (mortar)
          Then - Actions
            Unit Group - Pick every unit in (Units of type Select your mortar) and do (Actions)
              Loop - Actions
                Set VariableSet heroeschosen = (heroeschosen + 1)
                Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
                Unit - Replace (Picked unit) with a (Unit-type of (Triggering unit)) using The new unit's max life and mana
                For each (Integer A) from 2 to startingLevel, do (Actions)
                  Loop - Actions
                    Hero - Set (Last replaced unit) Hero-level to ((Hero level of (Last replaced unit)) + 1), Hide level-up graphics
                Floating Text - Destroy floatMortar[(Player number of (Owner of (Picked unit)))]
                Set VariableSet mortar[(Player number of (Owner of (Last replaced unit)))] = (Last replaced unit)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ((Owner of (Last replaced unit)) is in teamWest.) Equal to True
                  Then - Actions
                    Unit Group - Add (Last replaced unit) to mortarsWest
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ((Owner of (Last replaced unit)) is in teamEast.) Equal to True
                  Then - Actions
                    Unit Group - Add (Last replaced unit) to mortarsEast
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Unit-type of (Last replaced unit)) Equal to Alchemist (mortar)
                  Then - Actions
                    Hero - Learn skill for (Last replaced unit): Spikeball
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Unit-type of (Last replaced unit)) Equal to Heavy (mortar)
                  Then - Actions
                    Hero - Learn skill for (Last replaced unit): Carpet Bomb
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Unit-type of (Last replaced unit)) Equal to Soldier (mortar)
                  Then - Actions
                    Hero - Learn skill for (Last replaced unit): Vanilla Mortar
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Unit-type of (Last replaced unit)) Equal to Rocketeer (mortar)
                  Then - Actions
                    Hero - Learn skill for (Last replaced unit): Swarm Rockets
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Unit-type of (Last replaced unit)) Equal to Marksman (mortar)
                  Then - Actions
                    Hero - Learn skill for (Last replaced unit): Aimed Shot
                  Else - Actions
          Else - Actions
            Unit Group - Pick every unit in (Units of type Select your runner) and do (Actions)
              Loop - Actions
                Set VariableSet heroeschosen = (heroeschosen + 1)
                Animation - Change (Picked unit)'s vertex coloring to (100%, 100%, 100%) with 0% transparency
                Unit - Replace (Picked unit) with a (Unit-type of (Triggering unit)) using The new unit's max life and mana
                Unit - Add Crow Form to (Last replaced unit)
                Unit - Remove Crow Form from (Last replaced unit)
                For each (Integer A) from 2 to startingLevel, do (Actions)
                  Loop - Actions
                    Hero - Set (Last replaced unit) Hero-level to ((Hero level of (Last replaced unit)) + 1), Hide level-up graphics
                Unit - Make (Last replaced unit) Invulnerable
                Floating Text - Destroy floatRunner[(Player number of (Owner of (Picked unit)))]
                Set VariableSet runner[(Player number of (Owner of (Last replaced unit)))] = (Last replaced unit)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ((Owner of (Last replaced unit)) is in teamWest.) Equal to True
                  Then - Actions
                    Unit Group - Add (Last replaced unit) to runnersWest
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ((Owner of (Last replaced unit)) is in teamEast.) Equal to True
                  Then - Actions
                    Unit Group - Add (Last replaced unit) to runnersEast
                  Else - Actions
                Trigger - Add to Spikeball_Explosion <gen> the event ((Last replaced unit) Takes damage)
                Trigger - Add to Wild_Rocket_Explosion <gen> the event ((Last replaced unit) Takes damage)
                Trigger - Add to TakeDamage <gen> the event ((Last replaced unit) Takes damage)
                Trigger - Add to RageGet <gen> the event ((Last replaced unit) Takes damage)
      Else - Actions
    For each (Integer A) from 2 to startingLevel, do (Actions)
      Loop - Actions
        Hero - Set (Triggering unit) Hero-level to ((Hero level of (Triggering unit)) + 1), Hide level-up graphics
    Set VariableSet heroeschosen = (heroeschosen + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is Mechanical) Equal to True
        ((Owner of (Triggering unit)) is in teamWest.) Equal to True
      Then - Actions
        Unit Group - Add (Triggering unit) to mortarsWest
        Set VariableSet mortar[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
        Floating Text - Destroy floatMortar[(Player number of (Owner of (Triggering unit)))]
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is Mechanical) Equal to True
        ((Owner of (Triggering unit)) is in teamEast.) Equal to True
      Then - Actions
        Unit Group - Add (Triggering unit) to mortarsEast
        Set VariableSet mortar[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
        Floating Text - Destroy floatMortar[(Player number of (Owner of (Triggering unit)))]
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is Mechanical) Equal to False
        ((Owner of (Triggering unit)) is in teamWest.) Equal to True
      Then - Actions
        Trigger - Add to Spikeball_Explosion <gen> the event ((Triggering unit) Takes damage)
        Trigger - Add to Wild_Rocket_Explosion <gen> the event ((Triggering unit) Takes damage)
        Trigger - Add to TakeDamage <gen> the event ((Triggering unit) Takes damage)
        Trigger - Add to RageGet <gen> the event ((Triggering unit) Takes damage)
        Unit Group - Add (Triggering unit) to runnersWest
        Unit - Add Crow Form to (Triggering unit)
        Unit - Remove Crow Form from (Triggering unit)
        Set VariableSet runner[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
        Unit - Make (Triggering unit) Invulnerable
        Floating Text - Destroy floatRunner[(Player number of (Owner of (Triggering unit)))]
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is Mechanical) Equal to False
        ((Owner of (Triggering unit)) is in teamEast.) Equal to True
      Then - Actions
        Trigger - Add to Spikeball_Explosion <gen> the event ((Triggering unit) Takes damage)
        Trigger - Add to Wild_Rocket_Explosion <gen> the event ((Triggering unit) Takes damage)
        Trigger - Add to TakeDamage <gen> the event ((Triggering unit) Takes damage)
        Trigger - Add to RageGet <gen> the event ((Triggering unit) Takes damage)
        Unit Group - Add (Triggering unit) to runnersEast
        Unit - Add Crow Form to (Triggering unit)
        Unit - Remove Crow Form from (Triggering unit)
        Set VariableSet runner[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
        Unit - Make (Triggering unit) Invulnerable
        Floating Text - Destroy floatRunner[(Player number of (Owner of (Triggering unit)))]
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Triggering unit)) Equal to Alchemist (mortar)
      Then - Actions
        Hero - Learn skill for (Triggering unit): Spikeball
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Triggering unit)) Equal to Heavy (mortar)
      Then - Actions
        Hero - Learn skill for (Triggering unit): Carpet Bomb
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Triggering unit)) Equal to Soldier (mortar)
      Then - Actions
        Hero - Learn skill for (Triggering unit): Vanilla Mortar
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Triggering unit)) Equal to Rocketeer (mortar)
      Then - Actions
        Hero - Learn skill for (Triggering unit): Swarm Rockets
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Triggering unit)) Equal to Marksman (mortar)
      Then - Actions
        Hero - Learn skill for (Triggering unit): Aimed Shot
      Else - Actions
Change Options
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Unit-type of (Triggering unit)) Equal to Game Setup
  Actions
    Cinematic - Clear the screen of text messages for (All players).
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Map
      Then - Actions
        Set VariableSet viewMap = (viewMap + 1)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            viewMap Greater than 4
          Then - Actions
            Set VariableSet viewMap = 1
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Picking
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            viewPicking Equal to True
          Then - Actions
            Set VariableSet viewPicking = False
          Else - Actions
            Set VariableSet viewPicking = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Rounds
      Then - Actions
        Set VariableSet totalrounds = (totalrounds + 1)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            totalrounds Greater than 10
          Then - Actions
            Set VariableSet totalrounds = 1
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Experience
      Then - Actions
        Set VariableSet levelUps = (levelUps + 1)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            levelUps Greater than 2
          Then - Actions
            Set VariableSet levelUps = 0
          Else - Actions
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Level
      Then - Actions
        Set VariableSet startingLevel = (startingLevel + 1)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            startingLevel Greater than 10
          Then - Actions
            Set VariableSet startingLevel = 1
          Else - Actions
      Else - Actions
    Game - Display to (All players) for 15.00 seconds the text: (|cffffcc00Map:|r + mapText[viewMap])
    Game - Display to (All players) for 15.00 seconds the text: (|cffffcc00Rounds:|r + (String(totalrounds)))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        viewPicking Equal to True
      Then - Actions
        Game - Display to (All players) for 15.00 seconds the text: Players |cff00ff00may choose|r their heroes.
      Else - Actions
        Game - Display to (All players) for 15.00 seconds the text: All players |cffff0000random|r their heroes.
    Game - Display to (All players) for 15.00 seconds the text: (|cffffcc00Experience Gain:|r + (String(levelUps)))
    Game - Display to (All players) for 15.00 seconds the text: (|cffffcc00Starting Level:|r + (String(startingLevel)))
    Set VariableSet tempStr = |cffffcc00Other:|r
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Same Hero
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            sameHero Equal to True
          Then - Actions
            Set VariableSet sameHero = False
          Else - Actions
            Set VariableSet sameHero = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        sameHero Equal to True
      Then - Actions
        Set VariableSet tempStr = (tempStr + Same Hero, )
      Else - Actions
    Game - Display to (All players) for 15.00 seconds the text: tempStr
Lock Camera
  Events
    Time - Every 0.25 seconds of game time
  Conditions
  Actions
    Player Group - Pick every player in (All players) and do (.Apply. mapCameras[viewMap] for (Picked player) over 0 seconds)
Confirm Modes
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Confirm
  Actions
    Trigger - Turn off Lock_Camera <gen>
    Trigger - Turn off Change_Options <gen>
    Unit - Remove (Triggering unit) from the game
    Set VariableSet mapChosen = True
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        viewMap Equal to 1
      Then - Actions
        Set VariableSet playerBase[1] = one01 <gen>
        Set VariableSet playerBase[2] = one02 <gen>
        Set VariableSet playerBase[3] = one03 <gen>
        Set VariableSet playerBase[4] = one04 <gen>
        Set VariableSet playerBase[5] = one05 <gen>
        Set VariableSet playerBase[6] = one06 <gen>
        Set VariableSet playerBase[7] = one07 <gen>
        Set VariableSet playerBase[8] = one08 <gen>
        Set VariableSet playerBase[9] = one09 <gen>
        Set VariableSet playerBase[10] = one10 <gen>
        Set VariableSet playerBase[11] = one11 <gen>
        Set VariableSet playerBase[12] = one12 <gen>
        Trigger - Turn on Missile_Terrain_Collision_Region_1 <gen>
        Player Group - Pick every player in (All players) and do (Actions)
          Loop - Actions
            Camera - Reset camera for (Picked player) to standard game-view over 0 seconds
            Camera - Pan camera for (Picked player) to (Center of playerBase[(Player number of (Picked player))]) over 0 seconds
            Camera - Set the camera bounds for (Picked player) to Region_1 <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        viewMap Equal to 2
      Then - Actions
        Set VariableSet playerBase[1] = two01 <gen>
        Set VariableSet playerBase[2] = two02 <gen>
        Set VariableSet playerBase[3] = two03 <gen>
        Set VariableSet playerBase[4] = two04 <gen>
        Set VariableSet playerBase[5] = two05 <gen>
        Set VariableSet playerBase[6] = two06 <gen>
        Set VariableSet playerBase[7] = two07 <gen>
        Set VariableSet playerBase[8] = two08 <gen>
        Set VariableSet playerBase[9] = two09 <gen>
        Set VariableSet playerBase[10] = two10 <gen>
        Set VariableSet playerBase[11] = two11 <gen>
        Set VariableSet playerBase[12] = two12 <gen>
        Trigger - Turn on Missile_Terrain_Collision_Region_2 <gen>
        Player Group - Pick every player in (All players) and do (Actions)
          Loop - Actions
            Camera - Reset camera for (Picked player) to standard game-view over 0 seconds
            Camera - Pan camera for (Picked player) to (Center of playerBase[(Player number of (Picked player))]) over 0 seconds
            Camera - Set the camera bounds for (Picked player) to Region_2 <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        viewMap Equal to 3
      Then - Actions
        Set VariableSet playerBase[1] = dre01 <gen>
        Set VariableSet playerBase[2] = dre02 <gen>
        Set VariableSet playerBase[3] = dre03 <gen>
        Set VariableSet playerBase[4] = dre04 <gen>
        Set VariableSet playerBase[5] = dre05 <gen>
        Set VariableSet playerBase[6] = dre06 <gen>
        Set VariableSet playerBase[7] = dre07 <gen>
        Set VariableSet playerBase[8] = dre08 <gen>
        Set VariableSet playerBase[9] = dre09 <gen>
        Set VariableSet playerBase[10] = dre10 <gen>
        Set VariableSet playerBase[11] = dre11 <gen>
        Set VariableSet playerBase[12] = dre12 <gen>
        Trigger - Turn on Missile_Terrain_Collision_Region_3 <gen>
        Player Group - Pick every player in (All players) and do (Actions)
          Loop - Actions
            Camera - Reset camera for (Picked player) to standard game-view over 0 seconds
            Camera - Pan camera for (Picked player) to (Center of playerBase[(Player number of (Picked player))]) over 0 seconds
            Camera - Set the camera bounds for (Picked player) to Region_3 <gen>
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        viewMap Equal to 4
      Then - Actions
        Set VariableSet playerBase[1] = f01 <gen>
        Set VariableSet playerBase[2] = f02 <gen>
        Set VariableSet playerBase[3] = f03 <gen>
        Set VariableSet playerBase[4] = f04 <gen>
        Set VariableSet playerBase[5] = f05 <gen>
        Set VariableSet playerBase[6] = f06 <gen>
        Set VariableSet playerBase[7] = f07 <gen>
        Set VariableSet playerBase[8] = f08 <gen>
        Set VariableSet playerBase[9] = f09 <gen>
        Set VariableSet playerBase[10] = f10 <gen>
        Set VariableSet playerBase[11] = f11 <gen>
        Set VariableSet playerBase[12] = f12 <gen>
        Trigger - Turn on Missile_Terrain_Collision_Region_4 <gen>
        Player Group - Pick every player in (All players) and do (Actions)
          Loop - Actions
            Camera - Reset camera for (Picked player) to standard game-view over 0 seconds
            Camera - Pan camera for (Picked player) to (Center of playerBase[(Player number of (Picked player))]) over 0 seconds
            Camera - Set the camera bounds for (Picked player) to Region_4 <gen>
      Else - Actions
Randomhero
  Events
    Player - Player 1 (Red) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 7 (Green) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 8 (Pink) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -random (stringnoformat) as An exact match
  Conditions
  Actions
    Unit - Order (Random unit from (Units currently selected by (Triggering player))) to train/upgrade to a randomMortar[(Random integer number between 1 and randomMortars)]
    Unit - Order (Random unit from (Units currently selected by (Triggering player))) to train/upgrade to a randomRunner[(Random integer number between 1 and randomRunners)]
Autobalance
  Events
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        bronzebeardsPlayerCount Greater than or equal to (greybeardsPlayerCount + 2)
      Then - Actions
        Set VariableSet teambalancer = (Random player from teamWest)
        Player Group - Remove teambalancer from teamWest.
        Player Group - Pick every player in teamWest and do (Actions)
          Loop - Actions
            Player - Make (Picked player) treat teambalancer as an Enemy
            Player - Make teambalancer treat (Picked player) as an Enemy
        Player Group - Pick every player in teamEast and do (Actions)
          Loop - Actions
            Player - Make (Picked player) treat teambalancer as an Ally
            Player - Make teambalancer treat (Picked player) as an Ally
        Player Group - Add teambalancer to teamEast
        Set VariableSet u = (Random unit from slotsEast)
        Unit Group - Remove u from slotsEast.
        Region - Center playerBase[(Player number of teambalancer)] on (Position of u)
        Unit - Remove u from the game
        Unit - Move mortar[(Player number of teambalancer)] instantly to ((Center of playerBase[(Player number of teambalancer)]) offset by (128.00, 0)), facing 180.00 degrees
        Unit - Move runner[(Player number of teambalancer)] instantly to ((Center of playerBase[(Player number of teambalancer)]) offset by (0.00, 0)), facing 180.00 degrees
        Unit Group - Add mortar[(Player number of teambalancer)] to mortarsEast
        Unit Group - Add runner[(Player number of teambalancer)] to runnersEast
        Unit Group - Remove mortar[(Player number of teambalancer)] from mortarsWest.
        Unit Group - Remove runner[(Player number of teambalancer)] from runnersWest.
        Game - Display to (All players) the text: ((|cffffcc00Player imbalance detected - + (Name of teambalancer)) + has been moved to the Greybeards.|r)
        Set VariableSet bronzebeardsPlayerCount = (Number of players in teamWest)
        Set VariableSet greybeardsPlayerCount = (Number of players in teamEast)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        greybeardsPlayerCount Greater than or equal to (bronzebeardsPlayerCount + 2)
      Then - Actions
        Set VariableSet teambalancer = (Random player from teamEast)
        Player Group - Remove teambalancer from teamEast.
        Player Group - Pick every player in teamEast and do (Actions)
          Loop - Actions
            Player - Make (Picked player) treat teambalancer as an Enemy
            Player - Make teambalancer treat (Picked player) as an Enemy
        Player Group - Pick every player in teamWest and do (Actions)
          Loop - Actions
            Player - Make (Picked player) treat teambalancer as an Ally
            Player - Make teambalancer treat (Picked player) as an Ally
        Player Group - Add teambalancer to teamWest
        Set VariableSet u = (Random unit from slotsWest)
        Unit Group - Remove u from slotsWest.
        Region - Center playerBase[(Player number of teambalancer)] on (Position of u)
        Cinematic - Ping minimap for (All players) at (Position of u) for 1 seconds
        Unit - Remove u from the game
        Unit - Move mortar[(Player number of teambalancer)] instantly to ((Center of playerBase[(Player number of teambalancer)]) offset by (-128.00, 0)), facing 0.00 degrees
        Unit - Move runner[(Player number of teambalancer)] instantly to ((Center of playerBase[(Player number of teambalancer)]) offset by (0.00, 0)), facing 0.00 degrees
        Unit Group - Add mortar[(Player number of teambalancer)] to mortarsWest
        Unit Group - Add runner[(Player number of teambalancer)] to runnersWest
        Unit Group - Remove mortar[(Player number of teambalancer)] from mortarsEast.
        Unit Group - Remove runner[(Player number of teambalancer)] from runnersEast.
        Game - Display to (All players) the text: ((|cffffcc00Player imbalance detected - + (Name of teambalancer)) + has been moved to the Bronzebeards.|r)
        Set VariableSet bronzebeardsPlayerCount = (Number of players in teamWest)
        Set VariableSet greybeardsPlayerCount = (Number of players in teamEast)
      Else - Actions
    Set VariableSet boardId = 0
    Player Group - Pick every player in teamWest and do (Actions)
      Loop - Actions
        Set VariableSet boardId = (boardId + 1)
        Set VariableSet boardPosition[(Player number of (Picked player))] = boardId
    Set VariableSet boardId = 0
    Player Group - Pick every player in teamEast and do (Actions)
      Loop - Actions
        Set VariableSet boardId = (boardId + 1)
        Set VariableSet boardPosition[(Player number of (Picked player))] = boardId
RunGame
  Events
  Conditions
  Actions
    Set VariableSet round = (round + 1)
    Multiboard - Change the title of board to ((((Round |cffffffff + ((String(round)) + (|r/ + (String(totalrounds))))) + |cffff0000) + (String((Integer(scoreWest))))) + (|r / |cff00ff00 + ((String((Integer(scoreEast)))) + |r)))
    Game - Display to (All players) the text: ((|cffffcc00Round + (String(round))) + (/ + ((String(totalrounds)) + |r)))
    -------- Greybeareds running --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        round Equal to 1
      Then - Actions
        Player Group - Pick every player in (All players) and do (Actions)
          Loop - Actions
            Camera - Pan camera for (Picked player) to ((Center of (Current camera bounds)) offset by (1500.00, 0)) over 1.00 seconds
      Else - Actions
    Trigger - Run Autobalance <gen> (ignoring conditions)
    Set VariableSet runHeroMortars = mortarsWest
    Set VariableSet runHeroRunners = runnersEast
    Set VariableSet runPlayerMortars = teamWest
    Set VariableSet runPlayerRunners = teamEast
    Animation - Play the death (animationname) animation for all doodads of type XOmr (doodadcode) within East <gen>.
    Animation - Play the stand (animationname) animation for all doodads of type XOmr (doodadcode) within West <gen>.
    Trigger - Run RunRound <gen> (ignoring conditions)
    Region - Center BLOCKERS <gen> on (Center of BlockersEast <gen>)
    Wait until (runners Equal to 0), checking every 1 seconds
    Unit Group - Pick every unit in runHeroMortars and do (Actions)
      Loop - Actions
        Set VariableSet l[0] = (Position of (Picked unit))
        Unit - Create 1.Silence Caster for (Owner of (Picked unit)) at l[0] facing Default building facing degrees
        Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn.(Picked unit)
        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        Custom script: call RemoveLocation(udg_l[0])
    Destructible - Pick every destructible in BLOCKERS <gen> and do (Actions)
      Loop - Actions
        Destructible - Resurrect (Picked destructible) with 1000000000.00 life and Hide birth animation
    Unit Group - Pick every unit in runHeroRunners and do (Actions)
      Loop - Actions
        Unit - Unpause (Picked unit)
    Trigger - Turn off AI_running <gen>
    Trigger - Turn off AI_shooting <gen>
    Trigger - Run Remove_Decals <gen> (ignoring conditions)
    Wait 2.00 seconds
    Set VariableSet scoreEast = (scoreEast + hp)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        hp Greater than 0.00
      Then - Actions
        Sound - Play and_thats_how_its_done <gen>
        Game - Display to (All players) the text: ((Round over. |cff00ff00Greybeards|r scored + (String((Integer(hp))))) + remaining hit points this round.)
      Else - Actions
        Sound - Play owned <gen>
        Game - Display to (All players) the text: Round over. |cff00ff00Greybeards|r failed miserably.
    -------- --------- --------
    -------- Bronzebeards running --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        round Equal to 1
      Then - Actions
        Player Group - Pick every player in (All players) and do (Actions)
          Loop - Actions
            Camera - Pan camera for (Picked player) to ((Center of (Current camera bounds)) offset by (-1500.00, 0)) over 1.00 seconds
      Else - Actions
    Trigger - Run Autobalance <gen> (ignoring conditions)
    Set VariableSet runHeroMortars = mortarsEast
    Set VariableSet runHeroRunners = runnersWest
    Set VariableSet runPlayerMortars = teamEast
    Set VariableSet runPlayerRunners = teamWest
    Animation - Play the death (animationname) animation for all doodads of type XOmr (doodadcode) within West <gen>.
    Animation - Play the stand (animationname) animation for all doodads of type XOmr (doodadcode) within East <gen>.
    Trigger - Run RunRound <gen> (ignoring conditions)
    Region - Center BLOCKERS <gen> on (Center of BlockersWest <gen>)
    Wait until (runners Equal to 0), checking every 1 seconds
    Unit Group - Pick every unit in runHeroMortars and do (Actions)
      Loop - Actions
        Set VariableSet l[0] = (Position of (Picked unit))
        Unit - Create 1.Silence Caster for (Owner of (Picked unit)) at l[0] facing Default building facing degrees
        Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn.(Picked unit)
        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        Custom script: call RemoveLocation(udg_l[0])
    Destructible - Pick every destructible in BLOCKERS <gen> and do (Actions)
      Loop - Actions
        Destructible - Resurrect (Picked destructible) with 1000000000.00 life and Hide birth animation
    Unit Group - Pick every unit in runHeroRunners and do (Actions)
      Loop - Actions
        Unit - Unpause (Picked unit)
    Trigger - Turn off AI_running <gen>
    Trigger - Turn off AI_shooting <gen>
    Trigger - Run Remove_Decals <gen> (ignoring conditions)
    Wait 2.00 seconds
    Set VariableSet scoreWest = (scoreWest + hp)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        hp Greater than 0.00
      Then - Actions
        Sound - Play and_thats_how_its_done <gen>
        Game - Display to (All players) the text: ((Round over. |cffff0000Bronzebeards|r scored + (String((Integer(hp))))) + remaining hit points this round.)
      Else - Actions
        Game - Display to (All players) the text: Round over. |cffff0000Bronzebeards|r failed miserably.
        Sound - Play owned <gen>
    -------- End-of-round stats --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        scoreEast Greater than scoreWest
      Then - Actions
        Game - Display to (All players) the text: ((|cff00ff00Greybeards|r are leading by + (String((Integer((scoreEast - scoreWest)))))) + hit points.)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            scoreWest Greater than scoreEast
          Then - Actions
            Game - Display to (All players) the text: ((|cffff0000Bronzebeards|r are leading by + (String((Integer((scoreWest - scoreEast)))))) + hit points.)
          Else - Actions
            Game - Display to (All players) the text: Teams are tied!
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        round Equal to 1
      Then - Actions
        Quest - Display to (All players) the Quest Update message: |cff32cd32HINT|r - You have gained experience! Choose new abilities.
      Else - Actions
    Unit Group - Pick every unit in mortarsEast and do (Actions)
      Loop - Actions
        Hero - Set (Picked unit) Hero-level to ((Hero level of (Picked unit)) + levelUps), Hide level-up graphics
    Unit Group - Pick every unit in mortarsWest and do (Actions)
      Loop - Actions
        Hero - Set (Picked unit) Hero-level to ((Hero level of (Picked unit)) + levelUps), Hide level-up graphics
    Unit Group - Pick every unit in runnersEast and do (Actions)
      Loop - Actions
        Hero - Set (Picked unit) Hero-level to ((Hero level of (Picked unit)) + levelUps), Hide level-up graphics
    Unit Group - Pick every unit in runnersWest and do (Actions)
      Loop - Actions
        Hero - Set (Picked unit) Hero-level to ((Hero level of (Picked unit)) + levelUps), Hide level-up graphics
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        round Not equal to totalrounds
      Then - Actions
        Wait 2.00 seconds
        Trigger - Run (This trigger) (ignoring conditions)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            scoreEast Greater than scoreWest
          Then - Actions
            Game - Display to (All players) the text: ((|cff00ff00Greybeards|r have won the game by + (String((scoreEast - scoreWest)))) + hit points!)
            Trigger - Run Endgame_Scores <gen> (ignoring conditions)
          Else - Actions
            Game - Display to (All players) the text: ((|cffff0000Bronzebeards|r have won the game by + (String((scoreWest - scoreEast)))) + hit points!)
            Trigger - Run Endgame_Scores <gen> (ignoring conditions)
RunRound
  Events
  Conditions
  Actions
    Unit Group - Pick every unit in runHeroRunners and do (Actions)
      Loop - Actions
        Set VariableSet runners = (runners + 1)
    Game - Display to runPlayerMortars the text: You are |cffffcc00defending|r.
    Game - Display to runPlayerRunners the text: You are |cffffcc00running|r.
    Wait 1.00 seconds
    Game - Display to (All players) the text: Round starts in...
    Multiboard - Change the number of rows for board to (Number of players in runPlayerRunners)
    Multiboard - Set the width for board item in column 1, row 0 to 14.00% of the total screen width
    Multiboard - Set the width for board item in column 2, row 0 to 3.00% of the total screen width
    Multiboard - Set the display style for board item in column 0, row 0 to Show text and Hide icons
    Player Group - Pick every player in runPlayerMortars and do (Actions)
      Loop - Actions
        Camera - Set (Picked player)'s camera Height Offset to zoom[(Player number of (Picked player))] over 0.50 seconds
    Player Group - Pick every player in runPlayerRunners and do (Actions)
      Loop - Actions
        Camera - Set (Picked player)'s camera Height Offset to 0.00 over 0.50 seconds
    Player Group - Pick every player in runPlayerRunners and do (Actions)
      Loop - Actions
        Hero - Instantly revive runner[(Player number of (Picked player))] at (Center of playerBase[(Player number of (Picked player))]), Show revival graphics
        Selection - Select runner[(Player number of (Picked player))] for (Picked player)
        Unit - Reset ability cooldowns for runner[(Player number of (Picked player))].
        Unit - Set life of runner[(Player number of (Picked player))] to 100%
        Unit - Set mana of runner[(Player number of (Picked player))] to 100%
        Multiboard - Set the text for board item in column 1, row boardPosition[(Player number of (Picked player))] to (Name of (Picked player))
        Multiboard - Set the text for board item in column 2, row boardPosition[(Player number of (Picked player))] to (String((Integer((Life of runner[(Player number of (Picked player))])))))
        Multiboard - Set the color for board item in column 2, row boardPosition[(Player number of (Picked player))] to (0.00%, 100.00%, 0.00%) with 0.00% transparency
    Wait 1.00 seconds
    Set VariableSet tick = 3
    For each (Integer A) from 1 to 3, do (Actions)
      Loop - Actions
        Game - Display to (All players) the text: ((String(tick)) + ...)
        Sound - Play BattleNetTick <gen>
        Set VariableSet tick = (tick - 1)
        Wait 1.00 seconds
    Game - Display to (All players) the text: |cffffcc00Go go go!|r
    Destructible - Pick every destructible in BLOCKERS <gen> and do (Actions)
      Loop - Actions
        Destructible - Kill (Picked destructible)
    Sound - Play com_go <gen>
    Set VariableSet hp = 0.00
    Set VariableSet runners = 0
    Unit Group - Pick every unit in runHeroMortars and do (Actions)
      Loop - Actions
        Selection - Select (Picked unit) for (Owner of (Picked unit))
        Unit - Remove Soul Burn dsjhfosd buff from (Picked unit)
        Unit - Reset ability cooldowns for (Picked unit).
        Unit - Set life of (Picked unit) to 100%
        Unit - Set mana of (Picked unit) to 100%
    Unit Group - Pick every unit in runHeroRunners and do (Actions)
      Loop - Actions
        Set VariableSet runners = (runners + 1)
        Unit - Make (Picked unit) Vulnerable
        Unit - Order (Picked unit) to Move To.(Center of (Current camera bounds))
        Unit Group - Add (Picked unit) to currentlyRunning
    Trigger - Turn on AI_shooting <gen>
    Trigger - Turn on AI_running <gen>
    Wait 3.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        round Equal to 1
      Then - Actions
        Quest - Display to runPlayerMortars the Quest Update message: |cff32cd32HINT|r - Shoot at the runners!
        Quest - Display to runPlayerRunners the Quest Update message: |cff32cd32HINT|r - Reach the other side of the map alive!
      Else - Actions
    Wait 6.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        round Equal to 1
      Then - Actions
        Quest - Display to runPlayerMortars the Quest Update message: |cff32cd32HINT|r - Your shots don't hit instantly, so remember to lead your targets.
        Quest - Display to runPlayerRunners the Quest Update message: |cff32cd32HINT|r - Don't run in a straight line, as this will make you an easy target.
      Else - Actions
Reach West
  Events
    Unit - A unit enters West <gen>
  Conditions
    ((Triggering unit) is in runnersEast.) Equal to True
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Special Effect - Create a special effect at l[0] using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_l[0])
    Set VariableSet runners = (runners - 1)
    Game - Display to (All players) the text: ((Name of (Owner of (Triggering unit))) + made it!)
    Set VariableSet hp = (hp + (Life of (Triggering unit)))
    Set VariableSet hp = (hp + 100.00)
    Set VariableSet scoreHp[(Player number of (Owner of (Triggering unit)))] = (scoreHp[(Player number of (Owner of (Triggering unit)))] + (Life of (Triggering unit)))
    Set VariableSet scoreHp[(Player number of (Owner of (Triggering unit)))] = (scoreHp[(Player number of (Owner of (Triggering unit)))] + 100.00)
    Unit - Move (Triggering unit) instantly to (Center of playerBase[(Player number of (Owner of (Triggering unit)))])
    Unit - Set life of (Triggering unit) to 100%
    Unit - Set mana of (Triggering unit) to 100%
    Unit - Make (Triggering unit) Invulnerable
    Unit - Pause (Triggering unit)
    Unit Group - Remove (Triggering unit) from currentlyRunning.
    Multiboard - Set the text for board item in column 2, row boardPosition[(Player number of (Owner of (Triggering unit)))] to FIN
    Multiboard - Set the color for board item in column 2, row boardPosition[(Player number of (Owner of (Triggering unit)))] to (0.00%, 0.00%, 100.00%) with 0% transparency
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is in chargeGroup.) Equal to True
      Then - Actions
        Unit Group - Remove (Triggering unit) from chargeGroup.
        Set VariableSet chargeCounter[(Player number of (Owner of (Triggering unit)))] = 0
        Unit - Set (Triggering unit) movement speed to (Default movement speed of (Triggering unit))
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is in leapGroup.) Equal to True
      Then - Actions
        Animation - Change (Triggering unit) flying height to 0.00 at 99999.00
        Unit Group - Remove (Triggering unit) from leapGroup.
        Special Effect - Destroy leapFX[(Player number of (Owner of (Triggering unit)))]
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is in divineShielders.) Equal to True
      Then - Actions
        Lightning - Destroy divineShielding[(Player number of (Owner of (Triggering unit)))]
        Unit - Make divineShielded[(Player number of (Owner of (Triggering unit)))] Vulnerable
        Unit Group - Remove (Triggering unit) from divineShielders.
        Special Effect - Destroy divineShieldFX[(Player number of (Owner of (Triggering unit)))]
      Else - Actions
Reach East
  Events
    Unit - A unit enters East <gen>
  Conditions
    ((Triggering unit) is in runnersWest.) Equal to True
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Special Effect - Create a special effect at l[0] using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_l[0])
    Set VariableSet runners = (runners - 1)
    Game - Display to (All players) the text: ((Name of (Owner of (Triggering unit))) + made it!)
    Set VariableSet hp = (hp + (Life of (Triggering unit)))
    Set VariableSet hp = (hp + 100.00)
    Set VariableSet scoreHp[(Player number of (Owner of (Triggering unit)))] = (scoreHp[(Player number of (Owner of (Triggering unit)))] + (Life of (Triggering unit)))
    Set VariableSet scoreHp[(Player number of (Owner of (Triggering unit)))] = (scoreHp[(Player number of (Owner of (Triggering unit)))] + 100.00)
    Unit - Move (Triggering unit) instantly to (Center of playerBase[(Player number of (Owner of (Triggering unit)))])
    Unit - Set life of (Triggering unit) to 100%
    Unit - Set mana of (Triggering unit) to 100%
    Unit - Make (Triggering unit) Invulnerable
    Unit - Pause (Triggering unit)
    Unit Group - Remove (Triggering unit) from currentlyRunning.
    Multiboard - Set the text for board item in column 2, row boardPosition[(Player number of (Owner of (Triggering unit)))] to FIN
    Multiboard - Set the color for board item in column 2, row boardPosition[(Player number of (Owner of (Triggering unit)))] to (0.00%, 0.00%, 100.00%) with 0% transparency
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is in chargeGroup.) Equal to True
      Then - Actions
        Unit Group - Remove (Triggering unit) from chargeGroup.
        Set VariableSet chargeCounter[(Player number of (Owner of (Triggering unit)))] = 0
        Unit - Set (Triggering unit) movement speed to (Default movement speed of (Triggering unit))
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is in leapGroup.) Equal to True
      Then - Actions
        Animation - Change (Triggering unit) flying height to 0.00 at 99999.00
        Unit Group - Remove (Triggering unit) from leapGroup.
        Special Effect - Destroy leapFX[(Player number of (Owner of (Triggering unit)))]
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is in divineShielders.) Equal to True
      Then - Actions
        Lightning - Destroy divineShielding[(Player number of (Owner of (Triggering unit)))]
        Unit - Make divineShielded[(Player number of (Owner of (Triggering unit)))] Vulnerable
        Unit Group - Remove (Triggering unit) from divineShielders.
        Special Effect - Destroy divineShieldFX[(Player number of (Owner of (Triggering unit)))]
      Else - Actions
Runner Death
  Events
    Unit - A unit Dies
  Conditions
    Or - Any (Conditions) are true
      Conditions
        ((Triggering unit) is in runnersEast.) Equal to True
        ((Triggering unit) is in runnersWest.) Equal to True
  Actions
    Unit Group - Remove (Triggering unit) from currentlyRunning.
    Game - Display to (All players) the text: ((Name of (Owner of (Killing unit))) + ((Name of (Killing unit)) + ((Name of (Owner of (Triggering unit))) + !)))
    Set VariableSet runners = (runners - 1)
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet scoreKills[(Player number of (Owner of (Killing unit)))] = (scoreKills[(Player number of (Owner of (Killing unit)))] + 1)
    Special Effect - Create a special effect at l[0] using war3mapImported\HumanSmallDeathExplodeDust.mdx
    Special Effect - Destroy (Last created special effect)
    Custom script: call RemoveLocation(udg_l[0])
    Multiboard - Set the text for board item in column 2, row boardPosition[(Player number of (Owner of (Triggering unit)))] to dead
    Multiboard - Set the color for board item in column 2, row boardPosition[(Player number of (Owner of (Triggering unit)))] to (40.00%, 40.00%, 40.00%) with 20.00% transparency
Player Leaves
  Events
  Conditions
  Actions
    Sound - Play UpkeepRing <gen>
    Game - Display to (All players) the text: ((Name of (Triggering player)) + has left the game.)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        mortar[(Player number of (Triggering player))] Equal to No unit
      Then - Actions
        Set VariableSet heroeschosen = (heroeschosen + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        runner[(Player number of (Triggering player))] Equal to No unit
      Then - Actions
        Set VariableSet heroeschosen = (heroeschosen + 1)
      Else - Actions
    Unit - Change ownership of mortar[(Player number of (Triggering player))] to Neutral Passive and Change color
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering player) is in teamEast.) Equal to True
      Then - Actions
        Unit Group - Add mortar[(Player number of (Triggering player))] to slotsEast
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering player) is in teamWest.) Equal to True
      Then - Actions
        Unit Group - Add mortar[(Player number of (Triggering player))] to slotsWest
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering player) is in teamWest.) Equal to True
      Then - Actions
        Player Group - Remove (Triggering player) from teamWest.
        Set VariableSet bronzebeardsPlayerCount = (bronzebeardsPlayerCount - 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering player) is in teamEast.) Equal to True
      Then - Actions
        Player Group - Remove (Triggering player) from teamEast.
        Set VariableSet greybeardsPlayerCount = (greybeardsPlayerCount - 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (runner[(Player number of (Triggering player))] is in currentlyRunning.) Equal to True
      Then - Actions
        Unit - Kill runner[(Player number of (Triggering player))]
      Else - Actions
    Unit Group - Remove mortar[(Player number of (Triggering player))] from mortarsEast.
    Unit Group - Remove mortar[(Player number of (Triggering player))] from mortarsWest.
    Unit Group - Remove runner[(Player number of (Triggering player))] from runnersEast.
    Unit Group - Remove runner[(Player number of (Triggering player))] from runnersWest.
    Unit Group - Pick every unit in (Units owned by (Triggering player).) and do (Actions)
      Loop - Actions
        Unit - Remove (Picked unit) from the game
    Set VariableSet boardId = 0
    Player Group - Pick every player in teamWest and do (Actions)
      Loop - Actions
        Set VariableSet boardId = (boardId + 1)
        Set VariableSet boardPosition[(Player number of (Picked player))] = boardId
        Multiboard - Set the text for board item in column 1, row boardPosition[(Player number of (Picked player))] to (Name of (Picked player))
        Multiboard - Set the text for board item in column 2, row boardPosition[(Player number of (Picked player))] to (String((Integer((Life of runner[(Player number of (Picked player))])))))
    Set VariableSet boardId = 0
    Player Group - Pick every player in teamEast and do (Actions)
      Loop - Actions
        Set VariableSet boardId = (boardId + 1)
        Set VariableSet boardPosition[(Player number of (Picked player))] = boardId
        Multiboard - Set the text for board item in column 1, row boardPosition[(Player number of (Picked player))] to (Name of (Picked player))
        Multiboard - Set the text for board item in column 2, row boardPosition[(Player number of (Picked player))] to (String((Integer((Life of runner[(Player number of (Picked player))])))))
Endgame Scores
  Events
  Conditions
  Actions
    Set VariableSet tempscore = 0.00
    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
            scoreHp[(Integer A)] Greater than tempscore
          Then - Actions
            Set VariableSet tempscore = scoreHp[(Integer A)]
            Set VariableSet bestscorer = (Player((Integer A)))
          Else - Actions
    Custom script: call DisplayTimedTextToForce( GetPlayersAll(), 60, ( "|cffffcc00Most hit points scored: |r" + ( ( GetPlayerName(udg_bestscorer) + " (" ) + ( I2S(R2I(udg_scoreHp[GetConvertedPlayerId(udg_bestscorer)])) + ")" ) ) ) )
    Sound - Play BigButtonClick <gen>
    Wait 3.00 seconds
    Set VariableSet tempint = 0
    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
            scoreKills[(Integer A)] Greater than tempint
          Then - Actions
            Set VariableSet tempint = scoreKills[(Integer A)]
            Set VariableSet bestscorer = (Player((Integer A)))
          Else - Actions
    Custom script: call DisplayTimedTextToForce( GetPlayersAll(), 60, ( "|cffffcc00Most kills: |r" + ( ( GetPlayerName(udg_bestscorer) + " (" ) + ( I2S(udg_scoreKills[GetConvertedPlayerId(udg_bestscorer)]) + ")" ) ) ) )
    Sound - Play BigButtonClick <gen>
    Wait 3.00 seconds
    Set VariableSet tempscore = 0.00
    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
            scoreShotsFired[(Integer A)] Greater than 0
          Then - Actions
            Set VariableSet scoreAccuracy[(Integer A)] = ((Real(scoreHits[(Integer A)])) / (Real(scoreShotsFired[(Integer A)])))
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            scoreAccuracy[(Integer A)] Greater than tempscore
          Then - Actions
            Set VariableSet tempscore = scoreHp[(Integer A)]
            Set VariableSet bestscorer = (Player((Integer A)))
          Else - Actions
    Custom script: call DisplayTimedTextToForce( GetPlayersAll(), 60, ( "|cffffcc00Best accuracy: |r" + ( ( GetPlayerName(udg_bestscorer) + " (" ) + ( I2S(R2I(( udg_scoreAccuracy[GetConvertedPlayerId(udg_bestscorer)] * 100.00 ))) + "%)" ) ) ) )
    Sound - Play BigButtonClick <gen>
    Wait 3.00 seconds
    Set VariableSet tempscore = 0.00
    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
            scoreDamage[(Integer A)] Greater than tempscore
          Then - Actions
            Set VariableSet tempscore = scoreHp[(Integer A)]
            Set VariableSet bestscorer = (Player((Integer A)))
          Else - Actions
    Custom script: call DisplayTimedTextToForce( GetPlayersAll(), 60, ( "|cffffcc00Most damage: |r" + ( ( GetPlayerName(udg_bestscorer) + " (" ) + ( I2S(R2I(udg_scoreDamage[GetConvertedPlayerId(udg_bestscorer)])) + ")" ) ) ) )
    Sound - Play BigButtonClick <gen>
    Wait 3.00 seconds
    Game - Display to (All players) the text: |cffffcc00Still to come:|r- More mortars and runners!- Please send feedback and suggestions to |cffffcc00ruler@localwar.co.za|rFind the latest version at |cffffcc00localwar.co.za|r
ScoreSpellsCast
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Triggering unit) Equal to mortar[(Player number of (Owner of (Triggering unit)))]
  Actions
    Set VariableSet scoreShotsFired[(Player number of (Owner of (Triggering unit)))] = (scoreShotsFired[(Player number of (Owner of (Triggering unit)))] + 1)
AI shooting
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Player Group - Pick every player in AI and do (Actions)
      Loop - Actions
        Set VariableSet r = (Random percentage)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            r Greater than or equal to 20.00
          Then - Actions
            Set VariableSet l[0] = (Position of (Random unit from currentlyRunning))
            Set VariableSet l[1] = (Position of mortar[(Player number of (Picked player))])
            Set VariableSet r = ((Distance between l[0] and l[1]) x 0.04)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                ((Picked player) is in teamEast.) Equal to True
              Then - Actions
                Set VariableSet r = (r x (Random real number between -6.00 and 2.00))
                Set VariableSet l[2] = (l[0] offset by r towards (Random real number between 75.00 and 295.00) degrees.)
              Else - Actions
                Set VariableSet r = (r x (Random real number between -2.00 and 6.00))
                Set VariableSet l[2] = (l[0] offset by r towards (Random real number between 75.00 and 295.00) degrees.)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Unit-type of mortar[(Player number of (Picked player))]) Equal to Alchemist (mortar)
              Then - Actions
                Unit - Order mortar[(Player number of (Picked player))] to Neutral Brewmaster - Breath Of Fire.l[2]
              Else - Actions
                Unit - Order mortar[(Player number of (Picked player))] to Human Archmage - Blizzard.l[2]
            Custom script: call RemoveLocation(udg_l[0])
            Custom script: call RemoveLocation(udg_l[1])
            Custom script: call RemoveLocation(udg_l[2])
          Else - Actions
AI running
  Events
    Time - Every 0.70 seconds of game time
  Conditions
  Actions
    Player Group - Pick every player in AI and do (Actions)
      Loop - Actions
        Set VariableSet i = (Random integer number between 1 and 7)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            i Less than or equal to 4
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                ((Picked player) is in teamEast.) Equal to True
              Then - Actions
                Set VariableSet l[0] = (Position of runner[(Player number of (Picked player))])
                Set VariableSet l[1] = (l[0] offset by (Random real number between 200.00 and 300.00) towards (Random real number between 150.00 and 210.00) degrees.)
                Unit - Order runner[(Player number of (Picked player))] to Move To.l[1]
                Custom script: call RemoveLocation(udg_l[0])
                Custom script: call RemoveLocation(udg_l[1])
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                ((Picked player) is in teamWest.) Equal to True
              Then - Actions
                Set VariableSet l[0] = (Position of runner[(Player number of (Picked player))])
                Set VariableSet l[1] = (l[0] offset by (Random real number between -300.00 and -200.00) towards (Random real number between 150.00 and 210.00) degrees.)
                Unit - Order runner[(Player number of (Picked player))] to Move To.l[1]
                Custom script: call RemoveLocation(udg_l[0])
                Custom script: call RemoveLocation(udg_l[1])
              Else - Actions
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                ((Picked player) is in teamEast.) Equal to True
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Final_Stretch_West <gen> contains runner[(Player number of (Picked player))]) Equal to True
                  Then - Actions
                    Set VariableSet l[1] = (Center of playerBase[(Random integer number between 1 and 6)])
                    Unit - Order runner[(Player number of (Picked player))] to Move To.l[1]
                    Custom script: call RemoveLocation(udg_l[1])
                  Else - Actions
                    Set VariableSet l[0] = (Position of runner[(Player number of (Picked player))])
                    Set VariableSet l[1] = (l[0] offset by (Random real number between 200.00 and 300.00) towards (Random real number between 75.00 and 285.00) degrees.)
                    Unit - Order runner[(Player number of (Picked player))] to Move To.l[1]
                    Custom script: call RemoveLocation(udg_l[0])
                    Custom script: call RemoveLocation(udg_l[1])
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                ((Picked player) is in teamWest.) Equal to True
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Final_Stretch_East <gen> contains runner[(Player number of (Picked player))]) Equal to True
                  Then - Actions
                    Set VariableSet l[1] = (Center of playerBase[(Random integer number between 7 and 12)])
                    Unit - Order runner[(Player number of (Picked player))] to Move To.l[1]
                    Custom script: call RemoveLocation(udg_l[1])
                  Else - Actions
                    Set VariableSet l[0] = (Position of runner[(Player number of (Picked player))])
                    Set VariableSet l[1] = (l[0] offset by (Random real number between -300.00 and -200.00) towards (Random real number between 75.00 and 285.00) degrees.)
                    Unit - Order runner[(Player number of (Picked player))] to Move To.l[1]
                    Custom script: call RemoveLocation(udg_l[0])
                    Custom script: call RemoveLocation(udg_l[1])
              Else - Actions
        Set VariableSet i = (Random integer number between 1 and 18)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            i Greater than or equal to 16
          Then - Actions
            Unit - Order runner[(Player number of (Picked player))] to Night Elf Druid Of The Claw - Roar.
            Unit - Order runner[(Player number of (Picked player))] to Night Elf Mountain Giant - Taunt.
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            i Greater than or equal to 15
          Then - Actions
            Unit - Order runner[(Player number of (Picked player))] to Night Elf Mountain Giant - Taunt.
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            i Greater than or equal to 14
          Then - Actions
            Set VariableSet l[0] = (Position of runner[(Player number of (Picked player))])
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                ((Picked player) is in teamWest.) Equal to True
              Then - Actions
                Set VariableSet l[1] = (l[0] offset by (Random real number between -300.00 and -200.00) towards (Random real number between 75.00 and 285.00) degrees.)
              Else - Actions
                Set VariableSet l[1] = (l[0] offset by (Random real number between 200.00 and 300.00) towards (Random real number between 75.00 and 285.00) degrees.)
            Unit - Order runner[(Player number of (Picked player))] to Orc Tauren Chieftain - Shockwave.l[1]
            Custom script: call RemoveLocation(udg_l[0])
            Custom script: call RemoveLocation(udg_l[1])
          Else - Actions
AI levelup
  Events
    Unit - A unit Gains a level
  Conditions
    And - All (Conditions) are true
      Conditions
        ((Owner of (Triggering unit)) is in AI.) Equal to True
        ((Triggering unit) is dead) Equal to False
  Actions
    For each (Integer A) from 1 to (Unspent skill points of (Triggering unit)), do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Triggering unit)) Equal to Alchemist (mortar)
          Then - Actions
            Set VariableSet r = (Random percentage)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                r Less than or equal to 60.00
              Then - Actions
                Hero - Learn skill for (Triggering unit): Foul Chemistry
              Else - Actions
                Hero - Learn skill for (Triggering unit): Spikeball
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Triggering unit)) Equal to Heavy (mortar)
          Then - Actions
            Set VariableSet r = (Random percentage)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                r Less than or equal to 50.00
              Then - Actions
                Hero - Learn skill for (Triggering unit): Carpet Bomb
              Else - Actions
                Hero - Learn skill for (Triggering unit): Swift of Shell
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Triggering unit)) Equal to Soldier (mortar)
          Then - Actions
            Set VariableSet r = (Random percentage)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                r Less than or equal to 70.00
              Then - Actions
                Hero - Learn skill for (Triggering unit): Vanilla Mortar
              Else - Actions
                Hero - Learn skill for (Triggering unit): Shrapnel
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Triggering unit)) Equal to Rocketeer (mortar)
          Then - Actions
            Set VariableSet r = (Random percentage)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                r Less than or equal to 85.00
              Then - Actions
                Hero - Learn skill for (Triggering unit): Swarm Rockets
              Else - Actions
                Hero - Learn skill for (Triggering unit): Loading
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Triggering unit)) Equal to Captain (runner)
          Then - Actions
            Set VariableSet r = (Random percentage)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                r Less than or equal to 20.00
              Then - Actions
                Hero - Learn skill for (Triggering unit): Devotion Aura
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    r Less than or equal to 50.00
                  Then - Actions
                    Hero - Learn skill for (Triggering unit): Charge
                  Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        r Less than or equal to 80.00
                      Then - Actions
                        Hero - Learn skill for (Triggering unit): Roar
                      Else - Actions
                        Hero - Learn skill for (Triggering unit): Attribute Bonus
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Triggering unit)) Equal to Doctor (runner)
          Then - Actions
            Set VariableSet r = (Random percentage)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                r Less than or equal to 20.00
              Then - Actions
                Hero - Learn skill for (Triggering unit): Brilliance Aura
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    r Less than or equal to 50.00
                  Then - Actions
                    Hero - Learn skill for (Triggering unit): Holy Light
                  Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        r Less than or equal to 80.00
                      Then - Actions
                        Hero - Learn skill for (Triggering unit): Divine Shield
                      Else - Actions
                        Hero - Learn skill for (Triggering unit): Attribute Bonus
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Triggering unit)) Equal to Scout (runner)
          Then - Actions
            Set VariableSet r = (Random percentage)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                r Less than or equal to 20.00
              Then - Actions
                Hero - Learn skill for (Triggering unit): Spotting
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    r Less than or equal to 50.00
                  Then - Actions
                    Hero - Learn skill for (Triggering unit): Leap
                  Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        r Less than or equal to 80.00
                      Then - Actions
                        Hero - Learn skill for (Triggering unit): Smoke
                      Else - Actions
                        Hero - Learn skill for (Triggering unit): Attribute Bonus
          Else - Actions
Missile Terrain Collision Region 1
  Events
    Unit - A unit leaves Region_1 <gen>
    Unit - A unit enters r43 <gen>
    Unit - A unit enters r44 <gen>
    Unit - A unit enters r49 <gen>
    Unit - A unit enters r50 <gen>
    Unit - A unit enters r51 <gen>
    Unit - A unit enters r52 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to [Wild Rocket]
        (Unit-type of (Triggering unit)) Equal to [Spikeball]
  Actions
    Unit - Kill (Triggering unit)
    Unit Group - Remove (Triggering unit) from spikedballs.
    Unit Group - Remove (Triggering unit) from wildrocketGroup.
Missile Terrain Collision Region 2
  Events
    Unit - A unit enters Rocket_1 <gen>
    Unit - A unit enters Rocket_2 <gen>
    Unit - A unit enters Rocket_3 <gen>
    Unit - A unit enters Rocket_4 <gen>
    Unit - A unit enters Rocket_5 <gen>
    Unit - A unit enters Rocket_6 <gen>
    Unit - A unit enters Rocket_7 <gen>
    Unit - A unit enters Rocket_8 <gen>
    Unit - A unit enters Rocket_10 <gen>
    Unit - A unit enters Rocket_11 <gen>
    Unit - A unit enters Rocket_12 <gen>
    Unit - A unit enters Rocket_13 <gen>
    Unit - A unit enters Rocket_14 <gen>
    Unit - A unit leaves Region_2 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to [Wild Rocket]
        (Unit-type of (Triggering unit)) Equal to [Spikeball]
  Actions
    Unit - Kill (Triggering unit)
    Unit Group - Remove (Triggering unit) from spikedballs.
    Unit Group - Remove (Triggering unit) from wildrocketGroup.
Missile Terrain Collision Region 3
  Events
    Unit - A unit enters r21 <gen>
    Unit - A unit enters r22 <gen>
    Unit - A unit enters r23 <gen>
    Unit - A unit enters r24 <gen>
    Unit - A unit enters r25 <gen>
    Unit - A unit enters r26 <gen>
    Unit - A unit enters r31 <gen>
    Unit - A unit enters r32 <gen>
    Unit - A unit enters r33 <gen>
    Unit - A unit enters r34 <gen>
    Unit - A unit enters r35 <gen>
    Unit - A unit enters r36 <gen>
    Unit - A unit enters r37 <gen>
    Unit - A unit enters r38 <gen>
    Unit - A unit leaves Region_3 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to [Wild Rocket]
        (Unit-type of (Triggering unit)) Equal to [Spikeball]
  Actions
    Unit - Kill (Triggering unit)
    Unit Group - Remove (Triggering unit) from spikedballs.
    Unit Group - Remove (Triggering unit) from wildrocketGroup.
Missile Terrain Collision Region 4
  Events
    Unit - A unit leaves Region_4 <gen>
    Unit - A unit enters r63 <gen>
    Unit - A unit enters r64 <gen>
    Unit - A unit enters r65 <gen>
    Unit - A unit enters r66 <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to [Wild Rocket]
        (Unit-type of (Triggering unit)) Equal to [Spikeball]
  Actions
    Unit - Kill (Triggering unit)
    Unit Group - Remove (Triggering unit) from spikedballs.
    Unit Group - Remove (Triggering unit) from wildrocketGroup.
TakeDamage
  Events
  Conditions
  Actions
    Set VariableSet scoreDamage[(Player number of (Owner of (Damage source)))] = (scoreDamage[(Player number of (Owner of (Damage source)))] + (Damage taken))
    Multiboard - Set the text for board item in column 2, row boardPosition[(Player number of (Owner of (Triggering unit)))] to (String((Integer((Life of (Triggering unit))))))
    Multiboard - Set the color for board item in column 2, row boardPosition[(Player number of (Owner of (Triggering unit)))] to ((100.00 - (Percentage life of (Triggering unit)))%, (Percentage life of (Triggering unit))%, 0.00%) with 0.00% transparency
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Damage taken) Greater than or equal to 60.00
      Then - Actions
        Set VariableSet scoreHits[(Player number of (Owner of (Damage source)))] = (scoreHits[(Player number of (Owner of (Damage source)))] + 1)
      Else - Actions
Cleanup
  Events
    Unit - A unit Dies
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Triggering unit)) Equal to [Acid Bomb]
        (Unit-type of (Triggering unit)) Equal to Aimed Shot
        (Unit-type of (Triggering unit)) Equal to Big Bomba
        (Unit-type of (Triggering unit)) Equal to Carpet Bomb
        (Unit-type of (Triggering unit)) Equal to Foul Chemistry
        (Unit-type of (Triggering unit)) Equal to [Grapeshot]
        (Unit-type of (Triggering unit)) Equal to [Shrapnel]
        (Unit-type of (Triggering unit)) Equal to [Spikeball]
        (Unit-type of (Triggering unit)) Equal to Swarm Rockets
        (Unit-type of (Triggering unit)) Equal to Vanilla Mortar
        (Unit-type of (Triggering unit)) Equal to [Wild Rocket]
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Triggering unit)) Equal to [Spikeball]
      Then - Actions
        Set VariableSet l[0] = (Position of (Triggering unit))
        Special Effect - Create a special effect at l[0] using abilities\weapons\DemolisherMissile\DemolisherMissile.mdl
        Special Effect - Destroy (Last created special effect)
        Custom script: call RemoveLocation(udg_l[0])
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Triggering unit)) Equal to [Wild Rocket]
      Then - Actions
        Set VariableSet l[0] = (Position of (Triggering unit))
        Special Effect - Create a special effect at l[0] using Abilities\Weapons\BoatMissile\BoatMissile.mdl
        Special Effect - Destroy (Last created special effect)
        Custom script: call RemoveLocation(udg_l[0])
      Else - Actions
    Unit - Remove (Triggering unit) from the game
ToggleZoom
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Zoom
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        zoom[(Player number of (Owner of (Triggering unit)))] Equal to 0.00
      Then - Actions
        Set VariableSet zoom[(Player number of (Owner of (Triggering unit)))] = 300.00
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            zoom[(Player number of (Owner of (Triggering unit)))] Equal to 300.00
          Then - Actions
            Set VariableSet zoom[(Player number of (Owner of (Triggering unit)))] = 600.00
          Else - Actions
            Set VariableSet zoom[(Player number of (Owner of (Triggering unit)))] = 0.00
    Camera - Set (Owner of (Triggering unit))'s camera Height Offset to zoom[(Player number of (Owner of (Triggering unit)))] over 0.50 seconds
Notes:
- Grapeshot damage is set in the dummy unit.
- Grapeshot # of shots is set in the trigger, but noted in the ability.
- Shrapnel is triggered in both of the other 2 spells
Vanilla Mortar
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Vanilla Mortar
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet l[1] = (Target point of ability being cast)
    Unit - Create 1.Vanilla Mortar for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
    Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
    Unit - Order (Last created unit) to Attack Ground.l[1]
    Unit - Create 1.[Vanilla Mortar] for (Owner of (Triggering unit)) at l[1] facing Default building facing degrees
    Unit - Set the custom value of (Last created unit) to (Level of (Ability being cast) for (Triggering unit))
    Unit - Add a (((Distance between l[0] and l[1]) / 1250.00) + 0.25) second Generic expiration timer to (Last created unit)
    Custom script: call RemoveLocation(udg_l[0])
    Custom script: call RemoveLocation(udg_l[1])
Vanilla Explosion
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to [Vanilla Mortar]
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of Shrapnel for mortar[(Player number of (Owner of (Triggering unit)))]) Greater than or equal to 1
      Then - Actions
        Unit - Create 1.[Shrapnel] for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
        Unit - Set level of Shrapnel (Neutral Hostile) for (Last created unit) to (Level of Shrapnel for mortar[(Player number of (Owner of (Triggering unit)))])
        Unit - Order (Last created unit) to Human Archmage - Blizzard.l[0]
        Unit - Add a 1.25 second Generic expiration timer to (Last created unit)
      Else - Actions
    Set VariableSet i = 0
    Set VariableSet damage = (shotDamage[i] + (shotDamageUp[i] x (Real((Custom value of (Triggering unit))))))
    Set VariableSet damage = (damage x (Random real number between 0.75 and 1))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00C) Equal to True
      Then - Actions
        Set VariableSet damage = (damage x 1.05)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00D) Equal to True
          Then - Actions
            Set VariableSet damage = (damage x 1.10)
          Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00E) Equal to True
      Then - Actions
        Set VariableSet r = (Random percentage)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            r Less than or equal to 15.00
          Then - Actions
            Unit - Create 1.Bash Caster for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
          Else - Actions
            Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
            Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00F) Equal to True
      Then - Actions
        Set VariableSet r = (Random percentage)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            r Less than or equal to 20.00
          Then - Actions
            Unit - Create 1.Bash Caster for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
            Unit - Increase level of Bash (Neutral Hostile) for (Last created unit)
            Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
            Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
          Else - Actions
      Else - Actions
    Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius ((shotArea[i] + (shotAreaUp[i] x (Real((Custom value of (Triggering unit)))))) x 0.75) at l[0], dealing (damage x 0.75) damage of attack type Spells and damage type Normal
    Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius ((shotArea[i] + (shotAreaUp[i] x (Real((Custom value of (Triggering unit)))))) x 1.00) at l[0], dealing (damage x 0.25) damage of attack type Spells and damage type Normal
    Special Effect - Create a special effect at l[0] using war3mapImported\NewGroundEX.mdx
    Special Effect - Destroy (Last created special effect)
    Set VariableSet ug = (Units within 300.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 6.00)
    Custom script: call DestroyGroup(udg_ug)
    Set VariableSet ug = (Units within 600.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 6.00)
    Custom script: call DestroyGroup(udg_ug)
    Set VariableSet ug = (Units within 900.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 4.00)
    Custom script: call DestroyGroup(udg_ug)
    Trigger - Run Create_Decals <gen> (ignoring conditions)
    Custom script: call RemoveLocation(udg_l[0])
    Unit - Remove (Triggering unit) from the game
Grapeshot
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Grapeshot
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet l[1] = (Target point of ability being cast)
    Unit - Create 1.GrapeshotTimer for (Owner of (Triggering unit)) at l[1] facing Default building facing degrees
    Unit - Add a ((Distance between l[0] and l[1]) / 1600.00) second Generic expiration timer to (Last created unit)
    For each (Integer A) from 1 to (9 + (((Level of Grapeshot for (Triggering unit)) x 3) + 0)), do (Actions)
      Loop - Actions
        Set VariableSet l[2] = (l[1] offset by (Random real number between 0 and ((250.00 + (50.00 x (Real((Level of Grapeshot for (Triggering unit)))))) + ((Real((Current research level of R004 (techcode) for (Owner of (Triggering unit))))) x 75.00))) towards (Random angle) degrees.)
        Unit - Create 1.[Grapeshot] for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
        Unit - Set level of Grapeshot Damage upgrade for (Last created unit) to (Level of (Ability being cast) for (Triggering unit))
        Unit - Add a 6.00 second Generic expiration timer to (Last created unit)
        Unit - Order (Last created unit) to Attack Ground.l[2]
        Custom script: call RemoveLocation(udg_l[2])
    Custom script: call RemoveLocation(udg_l[0])
    Custom script: call RemoveLocation(udg_l[1])
Grapeshot Explosion
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to GrapeshotTimer
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet ug = (Units within 600.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 3.00)
    Custom script: call DestroyGroup(udg_ug)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of Shrapnel for mortar[(Player number of (Owner of (Triggering unit)))]) Greater than or equal to 1
      Then - Actions
        Unit - Create 1.[Shrapnel] for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
        Unit - Set level of Shrapnel (Neutral Hostile) for (Last created unit) to (Level of Shrapnel for mortar[(Player number of (Owner of (Triggering unit)))])
        Unit - Order (Last created unit) to Human Archmage - Blizzard.l[0]
        Unit - Add a 1.25 second Generic expiration timer to (Last created unit)
      Else - Actions
    Custom script: call RemoveLocation(udg_l[0])
    Unit - Remove (Triggering unit) from the game
Critical Strike is under Aimed Shot
Aimed Shot
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Aimed Shot
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet l[1] = (Target point of ability being cast)
    Unit - Create 1.Aimed Shot for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
    Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
    Unit - Order (Last created unit) to Attack Ground.l[1]
    Unit - Create 1.[Aimed Shot] for (Owner of (Triggering unit)) at l[1] facing Default building facing degrees
    Unit - Set the custom value of (Last created unit) to (Level of (Ability being cast) for (Triggering unit))
    Unit - Add a (((Distance between l[0] and l[1]) / 2500.00) + 0.05) second Generic expiration timer to (Last created unit)
    Custom script: call RemoveLocation(udg_l[0])
    Custom script: call RemoveLocation(udg_l[1])
Aimed Shot Explosion
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to [Aimed Shot]
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00E) Equal to True
      Then - Actions
        Set VariableSet r = (Random percentage)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            r Less than or equal to 15.00
          Then - Actions
            Unit - Create 1.Bash Caster for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
          Else - Actions
            Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
            Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00F) Equal to True
      Then - Actions
        Set VariableSet r = (Random percentage)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            r Less than or equal to 20.00
          Then - Actions
            Unit - Create 1.Bash Caster for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
            Unit - Increase level of Bash (Neutral Hostile) for (Last created unit)
            Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
            Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
          Else - Actions
      Else - Actions
    Set VariableSet i = 1
    Set VariableSet damage = (shotDamage[i] + (shotDamageUp[i] x (Real((Custom value of (Triggering unit))))))
    Set VariableSet damage = (damage x (Random real number between 0.75 and 1))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00C) Equal to True
      Then - Actions
        Set VariableSet damage = (damage x 1.05)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00D) Equal to True
          Then - Actions
            Set VariableSet damage = (damage x 1.10)
          Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of Critical Strike for mortar[(Player number of (Owner of (Triggering unit)))]) Greater than or equal to 1
      Then - Actions
        Set VariableSet r = (Random percentage)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            r Less than or equal to 15.00
          Then - Actions
            Set VariableSet damage = (damage x (1.50 + (0.25 x (Real((Level of Critical Strike for mortar[(Player number of (Owner of (Triggering unit)))]))))))
            Set VariableSet ug = (Units within 130.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (ug is empty) Equal to False
              Then - Actions
                Floating Text - Create floating text that reads ((String((Integer(damage)))) + !) at l[0] with Z offset 0, using font size 10, color (100%, 0.00%, 0.00%), and 0% transparency
                Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
                Floating Text - Change (Last created floating text): Disable permanence
                Floating Text - Change the lifespan of (Last created floating text) to 2.75 seconds
                Floating Text - Change the fading age of (Last created floating text) to 2.00 seconds
              Else - Actions
            Custom script: call DestroyGroup(udg_ug)
          Else - Actions
      Else - Actions
    Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius ((shotArea[i] + (shotAreaUp[i] x (Real((Custom value of (Triggering unit)))))) x 0.85) at l[0], dealing (damage x 0.75) damage of attack type Spells and damage type Normal
    Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius ((shotArea[i] + (shotAreaUp[i] x (Real((Custom value of (Triggering unit)))))) x 1.00) at l[0], dealing (damage x 0.25) damage of attack type Spells and damage type Normal
    Special Effect - Create a special effect at l[0] using war3mapImported\NewDirtEXNofire.mdx
    Special Effect - Destroy (Last created special effect)
    Set VariableSet ug = (Units within 300.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 9.00)
    Custom script: call DestroyGroup(udg_ug)
    Set VariableSet ug = (Units within 600.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 4.00)
    Custom script: call DestroyGroup(udg_ug)
    Set VariableSet ug = (Units within 900.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 2.00)
    Custom script: call DestroyGroup(udg_ug)
    Trigger - Run Create_Decals <gen> (ignoring conditions)
    Custom script: call RemoveLocation(udg_l[0])
    Unit - Remove (Triggering unit) from the game
Mark Target
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Mark Target
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet l[1] = (Target point of ability being cast)
    Unit - Create 1.Mark Target Timer for (Owner of (Triggering unit)) at l[1] facing Default building facing degrees
    Unit - Set level of Mark Target (Neutral Hostile) for (Last created unit) to (Level of (Ability being cast) for (Triggering unit))
    Unit - Add a ((Distance between l[0] and l[1]) / 1400.00) second Generic expiration timer to (Last created unit)
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        Set VariableSet l[2] = (l[1] offset by (Random real number between 0 and 300.00) towards (Random angle) degrees.)
        Unit - Create 1.Mark Target for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
        Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
        Unit - Order (Last created unit) to Attack Ground.l[2]
        Custom script: call RemoveLocation(udg_l[2])
    Custom script: call RemoveLocation(udg_l[0])
    Custom script: call RemoveLocation(udg_l[1])
Mark Target Explosion
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to Mark Target Timer
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Unit - Create 1.Mark Target Caster for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
    Unit - Set level of Mark Target (Neutral Hostile) for (Last created unit) to (Level of Mark Target for mortar[(Player number of (Owner of (Triggering unit)))])
    Unit - Order (Last created unit) to Night Elf Druid Of The Claw - Roar.
    Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
    Trigger - Run Create_Decals <gen> (ignoring conditions)
    Custom script: call RemoveLocation(udg_l[0])
    Unit - Remove (Triggering unit) from the game
Carpet Bomb
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Carpet Bomb
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet l[1] = (Target point of ability being cast)
    For each (Integer A) from 0 to 3, do (Actions)
      Loop - Actions
        Set VariableSet l[2] = (l[1] offset by (150.00 x (Real((Integer A)))) towards (Angle from l[0] to l[1]) degrees.)
        Unit - Create 1.Carpet Bomb for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
        Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
        Unit - Order (Last created unit) to Attack Ground.l[2]
        Unit - Create 1.[Carpet Bomb] for (Owner of (Triggering unit)) at l[2] facing Default building facing degrees
        Unit - Set the custom value of (Last created unit) to (Level of (Ability being cast) for (Triggering unit))
        Unit - Add a (((Distance between l[0] and l[2]) / 1100.00) + 0.10) second Generic expiration timer to (Last created unit)
        Custom script: call RemoveLocation(udg_l[2])
    Custom script: call RemoveLocation(udg_l[0])
    Custom script: call RemoveLocation(udg_l[1])
Carpet Bomb Explosion
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to [Carpet Bomb]
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00E) Equal to True
      Then - Actions
        Set VariableSet r = (Random percentage)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            r Less than or equal to 15.00
          Then - Actions
            Unit - Create 1.Bash Caster for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
          Else - Actions
            Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
            Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00F) Equal to True
      Then - Actions
        Set VariableSet r = (Random percentage)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            r Less than or equal to 20.00
          Then - Actions
            Unit - Create 1.Bash Caster for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
            Unit - Increase level of Bash (Neutral Hostile) for (Last created unit)
            Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp.
            Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
          Else - Actions
      Else - Actions
    Set VariableSet i = 4
    Set VariableSet damage = (shotDamage[i] + (shotDamageUp[i] x (Real((Custom value of (Triggering unit))))))
    Set VariableSet damage = (damage x (Random real number between 0.75 and 1))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00C) Equal to True
      Then - Actions
        Set VariableSet damage = (damage x 1.05)
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00D) Equal to True
          Then - Actions
            Set VariableSet damage = (damage x 1.10)
          Else - Actions
    Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius ((shotArea[i] + (shotAreaUp[i] x (Real((Custom value of (Triggering unit)))))) x 0.75) at l[0], dealing (damage x 0.75) damage of attack type Spells and damage type Normal
    Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius ((shotArea[i] + (shotAreaUp[i] x (Real((Custom value of (Triggering unit)))))) x 1.00) at l[0], dealing (damage x 0.25) damage of attack type Spells and damage type Normal
    Special Effect - Create a special effect at l[0] using war3mapImported\Artillery Shell.mdx
    Special Effect - Destroy (Last created special effect)
    Set VariableSet ug = (Units within 300.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 5.00)
    Custom script: call DestroyGroup(udg_ug)
    Set VariableSet ug = (Units within 600.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 4.00)
    Custom script: call DestroyGroup(udg_ug)
    Set VariableSet ug = (Units within 900.00 of l[0] matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in ug and do (Actions)
      Loop - Actions
        Set VariableSet cameraShake[(Player number of (Owner of (Picked unit)))] = (cameraShake[(Player number of (Owner of (Picked unit)))] + 2.00)
    Custom script: call DestroyGroup(udg_ug)
    Trigger - Run Create_Decals <gen> (ignoring conditions)
    Custom script: call RemoveLocation(udg_l[0])
    Unit - Remove (Triggering unit) from the game
Big Bomba
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Big Bomba
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet l[1] = (Target point of ability being cast)
    Unit - Create 1.Big Bomba for (Owner of (Triggering unit)) at l[0] facing Default building facing degrees
    Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
    Unit - Order (Last created unit) to Attack Ground.l[1]
    Unit - Create 1.[Big Bomba] for (Owner of (Triggering unit)) at l[1] facing Default building facing degrees
    Unit - Set the custom value of (Last created unit) to (Level of (Ability being cast) for (Triggering unit))
    Unit - Add a (((Distance between l[0] and l[1]) / 900.00) + 0.25) second Generic expiration timer to (Last created unit)
    Custom script: call RemoveLocation(udg_l[0])
    Custom script: call RemoveLocation(udg_l[1])
Big Bomba Explosion
  Events
    Unit - A unit Dies
  Conditions
    (Unit-type of (Triggering unit)) Equal to [Big Bomba]
  Actions
    Set VariableSet l[0] = (Position of (Triggering unit))
    Set VariableSet i = 5
    Set VariableSet damage = (shotDamage[i] + (shotDamageUp[i] x (Real((Custom value of (Triggering unit))))))
    Set VariableSet damage = (damage x (Random real number between 0.75 and 1))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (mortar[(Player number of (Owner of (Triggering unit)))] has an item of type I00C) Equal to True
      Then - Actions
        Set VariableSet damage = (damage x 1.05)
      Else - Actions