1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  5. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  6. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  7. The results are out! Check them out.
    Dismiss Notice
  8. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  9. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  10. 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

2P Sentinel 07 v1.02.w3x
Variables
Spells
Portal Scroll CAST
HERO
Blade Shield INIT
Blade Shield BEGIN
Blade Shield LOOP
Blade Shield EXPIRE
Blade Shield DEATH
Blade Shield LOADS INTO TRANSPORT
Shift
Shift WORK
Eclipse INIT
Eclipse LEARN
Eclipse BEGIN
Eclipse EXPIRE
Twilight Guardian BEGIN
Twilight Guardian DEATH
ITEM
Shadow Orb INIT
Shadow Orb CUMULATIVE
ILLIDAN SPECIAL
Burn INIT
Burn BEGIN
Burn LOOP
Burn BURN LOOP
Burn KNOCKBACK LOOP
Preface and Systems
AMBUSH
Ambush INIT
Ambush REGISTER
Ambush EXPIRE
SAVE & LOAD
SaveLoad Initialization
SaveLoad Load
SaveLoad Save A
SaveLoad Save B
TWO PLAYER INITIALIZATION
Two Player Initialization
START OF GAME TRIGGERS
Start SCREEN INIT
Start SCREEN TEXT
Start TOOGLE DIFFICULTY
Start FINISH
Start APPLY CHANGES
Insane Mana Regain
END OF GAME TRIGGERS
End Game SCREEN TEXT
End Game SCREEN INIT
POWERUPS
Powerups ACQUIRE
Powerups COMMON
SHARE
Share INIT
Share Research BEGIN
Share Research CANCEL
Share Research FINISH
Share COMMON
Share Techtree BEGIN CONSTRUCTION
Share Techtree CANCEL CONSTRUCTION
Share Techtree FINISH CONSTRUCTION
Share Techtree BEGIN AN UPGRADE
Share Techtree CANCEL AN UPGRADE
Share Techtree FINISH AN UPGRADE
Share DEATH
ITEM
ITEM Initialization
ITEM Unit Drops
ITEM Desc Drops
CINEMATIC
Enable or Disable Experience
Prepare for Cinematic
Restore after Cinematic
Skip Cinematic
MISC
Tribute
Player Leaves
Bounty INIT
Bounty WORK
Hero Stats INITIATE
Hero Stats SINGLE HERO
Initialization
Initialization
Init 01 Players
Init 02 Units
Init 04 Environment
Init 05 Quests
xxxxxxxxxxxxxxxxxxxx
Interlude Cinematic
Interlude Setup
Interlude Cinematic Q
Interlude Cleanup
Intro Cinematic
Intro Setup
Intro Cinematic Q
Intro Cleanup
Gameplay
Victory Cinematic
Victory Setup
Victory Cinematic Q
Victory Cleanup
xxxxxxxxxxxxxxxxxxxx
Quests
Quest Summoning Create
Quest Summoning Discover
Quest Summoning Completed
Quest Paladins Create
Quest Paladins Discover
Quest Paladins Completed
Mission Failed Base Dead
Mission Failed Out of Time
Hints
Hint Faerie Dragons Q
Hint Mana Flare
Hint Mana Flare Q
Hint Mana Flare 2
Hint Mana Flare 2 Q
Hint Magic Only 02
Hint Magic Only 02 Q
AI
Start AI
AI Resources
xxxxxxxxxxxxxxxxxxxx
Combat Check
Combat Detected
Combat Resolved
Victory Defeat
Defeat Units Dead
Defeat Timer Hits 0
Summoning Quest
Summoning Found Q
Summonors are Dead
Paladin Quest
Paladin Found
Paladin Found Q
Player Kills Paladin Guards
Player Kills Paladin Guards Q
xxxxxxxxxxxxxxxxxxxx
Creep Stuff
Roaming Kobolds 01
Roaming Kobolds 02
Quakes
Quake Event
Quake Shake
Quake Lines
Quake Line 1 Q
Quake Line 2 Q
Quake Line 3 Q
Naga Sea Witch Casting
Play Animation
Random Kael Lines
Kael Line Event
Kael Lines
Line 1 Q
Line 2 Q
Line 3 Q
Random Illidan Lines
Illidan Line Event
Illidan Lines
Line 1 Q2
Line 2 Q2
Line 3 Q2
Line 4 Q2
First Naga Base Falls
Maiev Line
Maiev Line Q
Second Naga Base Falls
Maiev Second Line
Maiev Second Line Q
Getting Close the EYE
Maiev Destory Eye Line
Maiev Destory Eye Line Q
Suicide Green Undead
Suicide
WARNINGS
Two Minutes
One Minutes
Red Regions are used for Initialazation and Intro Stuff
Green Regions are used for Quest Stuff
Yellow Regions are used for Victory Stuff
Magenta Regions are used for Naga Roaming Stuff
Teal Regions are used as tripwires to set off trigger
function SaveLoad_InitialSetup takes nothing returns nothing
    local integer i = 0
    local integer j = 0

    loop
        set udg_SaveLoad_Compress[i + 48] = j
        set udg_SaveLoad_Uncompress[i] = i + 48
        set j = j + 1
        set i = i + 1
        exitwhen i >= 10
    endloop
    set i = 0
    loop
        set udg_SaveLoad_Compress[i + 97] = j
        set udg_SaveLoad_Compress[i + 65] = j + 26
        set udg_SaveLoad_Uncompress[i + 10] = i + 97
        set udg_SaveLoad_Uncompress[i + 26 + 10] = i + 65
        set j = j + 1
        set i = i + 1
        exitwhen i >= 26
    endloop
endfunction

function SaveLoad_Id2CId takes integer n returns integer
    local integer i = n / (256 * 256 * 256)
    local integer r
    set n = n - i * (256 * 256 * 256)
    set r = udg_SaveLoad_Compress[i]
    set i = n / (256 * 256)
    set n = n - i * (256 * 256)
    set r = r * 64 + udg_SaveLoad_Compress[i]
    set i = n / 256
    set r = r * 64 + udg_SaveLoad_Compress[i]
    return r * 64 + udg_SaveLoad_Compress[n - i * 256]
endfunction

function SaveLoad_CId2Id takes integer n returns integer
    local integer i = n / (64 * 64 * 64)
    local integer r
    set n = n - i * (64 * 64 * 64)
    set r = udg_SaveLoad_Uncompress[i]
    set i = n / (64 * 64)
    set n = n - i * (64 * 64)
    set r = r * 256 + udg_SaveLoad_Uncompress[i]
    set i = n / 64
    set r = r * 256 + udg_SaveLoad_Uncompress[i]
    return r * 256 + udg_SaveLoad_Uncompress[n - i * 64]
endfunction

function SaveLoad_Unit2Integer takes unit u returns integer
    local integer i = 0
    local integer n = GetUnitTypeId(u)
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Heroes_LastIndex
        if udg_SaveLoad_Heroes[i] == n then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Unit takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Heroes_LastIndex then
        return udg_SaveLoad_Heroes[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Item2Integer takes item t returns integer
    local integer i = 0
    local integer n = GetItemTypeId(t)
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Items_LastIndex
        if udg_SaveLoad_Items[i] == n then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Item takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Items_LastIndex then
        return udg_SaveLoad_Items[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Ability2Integer takes integer a returns integer
    local integer i = 0
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Abilities_LastIndex
        if udg_SaveLoad_Abilities[i] == a then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(a)
endfunction
function SaveLoad_Integer2Ability takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Abilities_LastIndex then
        return udg_SaveLoad_Abilities[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Color takes string s returns string
    local integer i = StringLength(s)
    local string c
    local string r = ""

    loop
        set i = i - 1
        set c = SubString(s,i,i + 1)
        if c == "0" or c == "1" or c == "2" or c == "3" or c == "4" or c == "5" or c == "6" or c == "7" or c == "8" or c == "9" then
            set r = "|cffffcc00" + c + "|r" + r
        elseif c == "a" or c == "b" or c == "c" or c == "d" or c == "e" or c == "f" or c == "g" or c == "h" or c == "i" or c == "j" or c == "k" or c == "l" or c == "m" or c == "n" or c == "o" or c == "p" or c == "q" or c == "r" or c == "s" or c == "t" or c == "u" or c == "v" or c == "w" or c == "x" or c == "y" or c == "z" then
            set r = "|cffff6060" + c + "|r" + r
        elseif c == "A" or c == "B" or c == "C" or c == "D" or c == "E" or c == "F" or c == "G" or c == "H" or c == "I" or c == "J" or c == "K" or c == "L" or c == "M" or c == "N" or c == "O" or c == "P" or c == "Q" or c == "R" or c == "S" or c == "T" or c == "U" or c == "V" or c == "W" or c == "X" or c == "Y" or c == "Z" then
            set r = "|cff6060ff" + c + "|r" + r
        elseif c == "-" then
            set r = "|cffdddddd-|r" + r
        else
            set r = c + r
        endif
        exitwhen i <= 0
    endloop
    return r
endfunction

function SaveLoad_EncodeChar takes string n returns integer
    local integer i = 0
    local string s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    local string s2 = "abcdefghijklmnopqrstuvwxyz"
    local string s3 = "0123456789"

    loop
        if SubString(s1,i,i + 1) == n then
            return i
        endif
        if SubString(s2,i,i + 1) == n then
            return i
        endif
        set i = i + 1
        exitwhen i >= 26
    endloop
    set i = 0
    loop
        if SubString(s3,i,i + 1) == n then
            return i
        endif
        set i = i + 1
        exitwhen i >= 10
    endloop
    return 0
endfunction

function SaveLoad_EncodeVerify takes string buffer returns integer
    local integer i = 0
    local integer j = 0
    local string name = GetPlayerName(GetTriggerPlayer())
    if udg_SaveLoad_UsePlayername == true then
        loop
            set j = j + SaveLoad_EncodeChar(SubString(name,i,i + 1))
            set i = i + 1
            exitwhen i >= StringLength(name)
        endloop
    endif
    set i = 0
    loop
        set j = j + SaveLoad_EncodeChar(SubString(buffer,i,i + 1))
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop
    return j
endfunction

function SaveLoad_EncodeValues takes nothing returns string
    local integer i
    local integer j
    local integer k
    local integer l
    local integer m
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer array a
    local string buffer = ""
    local string c = ""
    local integer skip = 0
    local integer CONST = 1000000
    local string abc = "0123456789"

    set i = 0
    loop
        set i = i + 1
        exitwhen i > udg_SaveCount
        set buffer = buffer + I2S(udg_Save[i]) + "-"
    endloop
    set buffer = buffer + I2S(SaveLoad_EncodeVerify(buffer))
    if udg_Save[1] == 0 then
        set buffer = "-" + buffer
    endif

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0
    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * 11
            set j = j + 1
            exitwhen j > m
        endloop

        set l = 0
        set c = SubString(buffer,i,i + 1)
        loop
            exitwhen SubString(abc,l,l + 1) == c
            set l = l + 1
            exitwhen l > 9
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set buffer = ""
    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / CodeLength
            set a[j - 1] = a[j - 1] + (a[j] - k * CodeLength) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / CodeLength
        set i = a[j] - k * CodeLength
        set buffer = buffer + SubString(udg_SaveLoad_Alphabet,i,i + 1)
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = StringLength(buffer)
    set skip = 0
    set c = ""
    loop
        set i = i - 1
        set c = c + SubString(buffer,i,i + 1)
        set skip = skip + 1
        if skip == 4 and i > 0 then
            set c = c + "-"
            set skip = 0
        endif
        exitwhen i <= 0
    endloop
    return c
endfunction

function SaveLoad_DecodeValues takes string s returns boolean
    local integer i
    local integer j
    local integer k
    local integer l
    local integer SaveCode = 0
    local integer m
    local integer array a
    local string buffer = ""
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer skip = -1
    local integer CONST = 1000000
    local string abc = "0123456789-"
    local string c

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0

    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * CodeLength
            set j = j + 1
            exitwhen j > m
        endloop

        set skip = skip + 1
        if skip == 4 then
            set skip = 0
            set i = i + 1
        endif

        set l = CodeLength
        set c = SubString(s,i,i + 1)
        loop
            set l = l - 1
            exitwhen l < 1
            exitwhen SubString(udg_SaveLoad_Alphabet,l,l + 1) == c
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(s)
    endloop

    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / 11
            set a[j - 1] = a[j - 1] + (a[j] - k * 11) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / 11
        set i = a[j] - k * 11
        set buffer = SubString(abc,i,i + 1) + buffer
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = 0
    set j = 0
    loop
        loop
            exitwhen i >= StringLength(buffer)
            exitwhen i > 0 and SubString(buffer,i,i + 1) == "-" and SubString(buffer,i - 1,i) != "-"
            set i = i + 1
        endloop
        if i < StringLength(buffer) then
            set k = i
        endif
        set SaveCode = SaveCode + 1
        set udg_Save[SaveCode] = S2I(SubString(buffer,j,i))
        set j = i + 1
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set j = SaveLoad_EncodeVerify(SubString(buffer,0,k))
    set udg_SaveCount = SaveCode - 1
    if j == udg_Save[SaveCode] then
        return true
    endif
    return false
endfunction

function SaveLoad_Encode takes nothing returns string
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
    endif
    return SaveLoad_Color(SaveLoad_EncodeValues())
endfunction

function SaveLoad_Decode takes string s returns boolean
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
        set s = StringCase(s,true)
    endif
    if SaveLoad_DecodeValues(s) then
        call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding sucessful")
        return true
    endif
    call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding failed")
    return false
endfunction
Name Type Is Array Initial Value
Ambush_VISIBILITY integer Yes
AmbushTimer timer Yes
AmbushUnit unit Yes
AncientofLore01 unit No
AncientofWar01 unit No
AncientofWar02 unit No
AncientofWind01 unit No
AncientofWonders01 unit No
AncientProtector01 unit No
AncientProtector02 unit No
AncientProtector03 unit No
AncientProtector04 unit No
AncientProtector05 unit No
AP1_Player player No
APG2_Player force No Force01
Bonus_Agility integer No
Bonus_Intelligence integer No
Bonus_Strength integer No
Bounty_NEUTRAL_BASE integer Yes
Bounty_NEUTRAL_DICE integer Yes
Bounty_NEUTRAL_SIDES integer Yes
Bounty_RACE_BASE integer Yes
Bounty_RACE_DICE integer Yes
Bounty_RACE_SIDES integer Yes
Burn_BURN_DAMAGE_SOUCE unit Yes
Burn_BURN_EFFECT effect Yes
Burn_BURN_EXPIRE_TIMER timer Yes
Burn_BURN_GROUP group No
Burn_BURN_LOOP_TIMER timer Yes
Burn_BURN_UNIT unit Yes
Burn_DISTANCE real Yes
Burn_GROUP group Yes
Burn_KNOCKBACK_ANGLE real Yes
Burn_KNOCKBACK_EXPIRE_TIMER timer Yes
Burn_KNOCKBACK_GROUP group No
Burn_KNOCKBACK_LOOP_TIMER timer Yes
Burn_KNOCKBACK_UNIT unit Yes
Burn_LOOP timer Yes
Burn_OWNER unit Yes
Burn_UNIT unit Yes
CameraReturnPoint location No
Cinematic_NAME string No
Cinematic_Preparation_Finished boolean No
CinematicKeal unit No
Code string No
Code_Is_Active boolean No
CombatCheckTimer timer No
CONSTANT_Burn_AREA_OF_EFFECT real No
CONSTANT_Burn_BURN_DAMAGE real No
CONSTANT_Burn_BURN_EFFECT string No
CONSTANT_Burn_BURN_LIMIT integer No
CONSTANT_Burn_BURN_LOOP real No
CONSTANT_Burn_BURN_TIME real No
CONSTANT_Burn_DAMAGE real No
CONSTANT_Burn_KNOCKBACK real No
CONSTANT_Burn_KNOCKBACK_LIMIT integer No
CONSTANT_Burn_KNOCKBACK_LOOP real No
CONSTANT_Burn_KNOCKBACK_TIME real No
CONSTANT_Burn_LIMIT integer No
CONSTANT_Burn_LOOP real No
CONSTANT_Burn_RANGE real No
CONSTANT_Burn_VELOCITY real No
CONSTANT_Glaive_COUNT_MAX integer Yes
CONSTANT_Glaive_COUNT_MIN integer Yes
CONSTANT_Glaive_DAMAGE real Yes
CONSTANT_Glaive_DAMAGE_RANGE real Yes
CONSTANT_Glaive_DURATION real Yes
CONSTANT_Glaive_EFFECT_01 string Yes
CONSTANT_Glaive_EFFECT_02 string Yes
CONSTANT_Glaive_EFFECT_03 modelfile Yes
CONSTANT_Glaive_EFFECT_04 modelfile Yes
CONSTANT_Glaive_EFFECT_05 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_01 string Yes
CONSTANT_Glaive_HIT_EFFECT_02 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_03 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_04 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_05 modelfile Yes
CONSTANT_Glaive_INTERVAL real Yes
CONSTANT_Glaive_LIMIT integer No
CONSTANT_Glaive_ORBITRANGE real Yes
CONSTANT_Glaive_SPEED_PER_SEC real Yes
CreateAmbush_Angle real No
CreateAmbush_GoToRegion rect No
CreateAmbush_Group group No
CreateAmbush_Region rect No
CreateAmbush_Type unitcode No
Difficulty string No
Dreadlord_UNIT unit No
EMPTY itemcode No
ExpDisabledForFurion boolean No false
ExpDisabledForMaiev boolean No false
Furion unit No UnitNull
FurionCin unit No
FurionReturnSpot location No
GameHasStarted boolean No
GameOver boolean No false
Gives_Bounty force No
Glaive_ANGLE real Yes
Glaive_EFFECT_01 effect Yes
Glaive_EFFECT_02 effect Yes
Glaive_EFFECT_03 effect Yes
Glaive_EFFECT_04 effect Yes
Glaive_EFFECT_05 effect Yes
Glaive_EXPIRE timer Yes
Glaive_GROUP group Yes
Glaive_LEVEL integer Yes
Glaive_LOOP timer Yes
Glaive_OWNER unit Yes
Glaive_OWNER_HIDDEN unit Yes
Glaive_STATE string Yes
Glaive_TARGET unit Yes
Glaive_TARGET_HIDDEN unit Yes
Glaive_UNIT unit Yes
GuardA unit No
GuardB unit No
GuardC unit No
GuardD unit No
GuardE unit No
GuardReplacedMax integer No
HiddenUnits group No
Huntress01 unit No
IcecrownWeather01 weathereffect No
IcecrownWeather02 weathereffect No
Illidan unit No
Illidan02 unit No
IllidanLines integer No
IllidanRootsSFX effect No
InCinematic boolean No false
InCombat boolean No false
InFlashback boolean No
InterludeSkipped boolean No
IntroSkipped boolean No false
ITEM_DESC destructable Yes
ITEM_DESC_Item_Type itemcode Yes
ITEM_DESC_Item_Type_INSANE itemcode Yes
ITEM_DESC_Total integer No
ITEM_UNIT unit Yes
ITEM_UNIT_Item_Type itemcode Yes
ITEM_UNIT_Item_Type_INSANE itemcode Yes
ITEM_UNIT_Total integer No
Kael unit No
KaelPriest01 unit No
KaelPriest02 unit No
KaelReturnSpot location No
KoboldGroup01 group No
KoboldGroup02 group No
LordaeronFog1 weathereffect No
LordaeronFog2 weathereffect No
Magroth unit No
MagrothSaved boolean No
Maiden_OWNER unit Yes
Maiden_TIMER timer Yes
Maiev unit No UnitNull
MaievReturnSpot location No
MaievRootsSFX effect No
Mid2Skipped boolean No
MidSkipped boolean No
Multiboard_Current_Column integer No
Multiboard_Current_Row integer No
Multiboard_Hero_Icon string No
Multiboard_Item_Used boolean Yes
Multiboard_Name_Used boolean No
Multiboard_Skill abilcode Yes
Multiboard_Skill_Icon string Yes
Multiboard_Skill_Name string Yes
Multiboard_Skill_Used boolean Yes
Multiboard_Unit unit No
Mutliboard_Hero_Statistics multiboard No
NagaAttackKael integer No
NagaDead unit No
NagaDead2 unit No
NagaDead3 unit No
NagaDead4 unit No
NagaGroup01 group No
NagaGroup02 group No
NagaGroup03 group No
NagaGroup04 group No
NagaGroup12 group No
NagaP4Buildings group No
NewWarden unit No
NewWardenReturnSpot location No
P1_Kael player No Player00
P3_Naga player No Player02
P4_Naga player No Player03
P5_Naga player No Player04
P6_Undead player No Player05
P7_Undead player No Player06
PaladinGuards group No
Player_Color playercolor Yes
Player_Color_String string Yes
Player_One player No Player01
Player_One_Agreed boolean No
Player_One_Color integer No
Player_One_Skipped boolean No
Player_Two player No
Player_Two_Agreed boolean No
Player_Two_Color integer No
Player_Two_Skipped boolean No
Powerups_Gold integer No
Powerups_Lumber integer No
QuakeHits integer No
QuakeTimer timer No
QuestPaladins quest No
QuestPaladinsReqFree questitem No
QuestSummoning quest No
QuestSummoningReqEXP questitem No
QuestSummoningReqKill questitem No
QuestSummoningReqMAGIC questitem No
QuestSummoningReqStop questitem No
RandomNumber integer No
RandomSpawnTimerInterval real No
Research_Name_1 string Yes
Research_Name_2 string Yes
Research_Name_3 string Yes
Research_Type techcode Yes
RevivalAltar unit No UnitNull
RevivalHero unit No UnitNull
RevivalReturnSpot location No
RevivalSpot location No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No
SaveLoad_Integer integer No
SaveLoad_Item_String string Yes
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Security_Number integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
SelectedUnits group No
Shadow_Orb_TYPE itemcode Yes
Share_DISPLAY boolean Yes
Share_FAKE unitcode Yes
Share_REAL unitcode Yes
Shift_OWNER unit Yes
Shift_TARGET unit Yes
Shift_TIMER timer Yes
Stash unit Yes
Summoner01 unit No
Summoner02 unit No
Summoner03 unit No
Summoner04 unit No
TempGroup group Yes
TempInteger integer Yes
TempItem item No
TempItemType itemcode No
TempPoint location Yes
TempReal real Yes
TempUnitGroup group No
TempUnitGroup2 group No
TimeLeft timer No
TimeLeft1Min timer No
TimeLeft2Min timer No
TreeofLife01 unit No
Twilight_FOLK group Yes
Twilight_TIMER timer Yes
Twilight_UNIT unit Yes
Tyrande unit No
TyrandeReturnSpot location No
Under_Construction group No
Validate boolean No
Victory2Skipped boolean No false
VictorySkipped boolean No false
VictorySummoner01 unit No
VictorySummoner02 unit No
VictorySummoner03 unit No
VictorySummoner04 unit No
Weather weathereffect No
Wisp01 unit No
Wisp02 unit No
Wisp03 unit No
Wisp04 unit No
Portal Scroll CAST
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Item Town Portal
  Actions
    Set TempPoint[1] = (Position of (Casting unit))
    Set TempGroup[1] = (Units within 1100.00 of TempPoint[1])
    Unit Group - Pick every unit in TempGroup[1] and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Picked unit) is A structure) Equal to False
            ((Picked unit) is A peon-type unit) Equal to False
            ((Picked unit) is alive) Equal to True
            (Owner of (Picked unit)) Not equal to (Owner of (Casting unit))
            ((Picked unit) belongs to an ally of (Owner of (Casting unit))) Equal to True
            (Unit-type of (Picked unit)) Not equal to Night Elf Transport Ship
            (Unit-type of (Picked unit)) Not equal to Night Elf Frigate
          Then - Actions
            Set TempPoint[2] = (Position of (Picked unit))
            Special Effect - Create a special effect at TempPoint[2] using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
            Custom script: call RemoveLocation(udg_TempPoint[2])
            Set TempPoint[2] = (Target point of ability being cast)
            Unit - Move (Picked unit) instantly to TempPoint[2]
            Custom script: call RemoveLocation(udg_TempPoint[2])
            Set TempPoint[2] = (Position of (Picked unit))
            Special Effect - Create a special effect at TempPoint[2] using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
            Custom script: call RemoveLocation(udg_TempPoint[2])
          Else - Actions
    Custom script: call RemoveLocation(udg_TempPoint[1])
    Custom script: call DestroyGroup(udg_TempGroup[1])
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield INIT
  Events
    Map initialization
  Conditions
  Actions
    -------- DECLEAR CONSTANTS --------
    Set CONSTANT_Glaive_LIMIT = 10
    Set CONSTANT_Glaive_COUNT_MIN[1] = 3
    Set CONSTANT_Glaive_COUNT_MIN[2] = 4
    Set CONSTANT_Glaive_COUNT_MIN[3] = 5
    Set CONSTANT_Glaive_COUNT_MAX[1] = 3
    Set CONSTANT_Glaive_COUNT_MAX[2] = 4
    Set CONSTANT_Glaive_COUNT_MAX[3] = 5
    Set CONSTANT_Glaive_SPEED_PER_SEC[1] = 500.00
    Set CONSTANT_Glaive_SPEED_PER_SEC[2] = 600.00
    Set CONSTANT_Glaive_SPEED_PER_SEC[3] = 700.00
    Set CONSTANT_Glaive_ORBITRANGE[1] = 150.00
    Set CONSTANT_Glaive_ORBITRANGE[2] = 150.00
    Set CONSTANT_Glaive_ORBITRANGE[3] = 150.00
    Set CONSTANT_Glaive_INTERVAL[1] = 0.04
    Set CONSTANT_Glaive_INTERVAL[2] = 0.04
    Set CONSTANT_Glaive_INTERVAL[3] = 0.04
    Set CONSTANT_Glaive_DURATION[1] = 10.00
    Set CONSTANT_Glaive_DURATION[2] = 10.00
    Set CONSTANT_Glaive_DURATION[3] = 10.00
    Set CONSTANT_Glaive_DAMAGE_RANGE[1] = 100.00
    Set CONSTANT_Glaive_DAMAGE_RANGE[2] = 100.00
    Set CONSTANT_Glaive_DAMAGE_RANGE[3] = 100.00
    Set CONSTANT_Glaive_DAMAGE[1] = 15.00
    Set CONSTANT_Glaive_DAMAGE[2] = 15.00
    Set CONSTANT_Glaive_DAMAGE[3] = 15.00
    Set CONSTANT_Glaive_EFFECT_01[1] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set CONSTANT_Glaive_EFFECT_01[2] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set CONSTANT_Glaive_EFFECT_01[3] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set CONSTANT_Glaive_EFFECT_02[2] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set CONSTANT_Glaive_EFFECT_02[3] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set CONSTANT_Glaive_HIT_EFFECT_01[1] = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
    Set CONSTANT_Glaive_HIT_EFFECT_01[2] = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
    Set CONSTANT_Glaive_HIT_EFFECT_01[3] = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
    -------- END --------
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        Trigger - Add to Blade_Shield_LOOP <gen> the event (Glaive_LOOP[(Integer A)] expires)
        Trigger - Add to Blade_Shield_EXPIRE <gen> the event (Glaive_EXPIRE[(Integer A)] expires)
        Set Glaive_GROUP[(Integer A)] = (Units of type Footman)
        Unit Group - Pick every unit in Glaive_GROUP[(Integer A)] and do (Actions)
          Loop - Actions
            Unit Group - Remove (Picked unit) from Glaive_GROUP[(Integer A)]
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield BEGIN
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Blade Shield
  Actions
    Set TempInteger[1] = (Random integer number between CONSTANT_Glaive_COUNT_MIN[(Level of Blade Shield for (Casting unit))] and CONSTANT_Glaive_COUNT_MAX[(Level of Blade Shield for (Casting unit))])
    For each (Integer A) from 1 to TempInteger[1], do (Actions)
      Loop - Actions
        Set TempPoint[1] = (Position of (Casting unit))
        Unit - Create 1 Dummy Caster for (Owner of (Casting unit)) at TempPoint[1] facing Default building facing degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set TempInteger[2] = 0
        For each (Integer B) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger[2] Equal to 0
                Glaive_UNIT[(Integer B)] Equal to No unit
              Then - Actions
                Set TempInteger[2] = (Integer B)
              Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[2] Equal to 0
          Then - Actions
            Unit - Remove (Last created unit) from the game
            Skip remaining actions
          Else - Actions
        Set Glaive_UNIT[TempInteger[2]] = (Last created unit)
        Set Glaive_LEVEL[TempInteger[2]] = (Level of Blade Shield for (Casting unit))
        Set Glaive_TARGET[TempInteger[2]] = (Target unit of ability being cast)
        Set Glaive_OWNER[TempInteger[2]] = (Casting unit)
        Set Glaive_ANGLE[TempInteger[2]] = ((Real((Integer A))) x (360.00 / (Real(TempInteger[1]))))
        Set Glaive_STATE[TempInteger[2]] = AWAY
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_01[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_01[Glaive_LEVEL[TempInteger[2]]]
            Set Glaive_EFFECT_01[TempInteger[2]] = (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_02[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_02[Glaive_LEVEL[TempInteger[2]]]
            Set Glaive_EFFECT_02[TempInteger[2]] = (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_03[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_03[Glaive_LEVEL[TempInteger[2]]]
            Set Glaive_EFFECT_03[Glaive_LEVEL[TempInteger[2]]] = (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_04[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_04[Glaive_LEVEL[TempInteger[2]]]
            Set Glaive_EFFECT_04[TempInteger[2]] = (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            CONSTANT_Glaive_EFFECT_05[Glaive_LEVEL[TempInteger[2]]] Not equal to
          Then - Actions
            Special Effect - Create a special effect attached to the chest of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_05[Glaive_LEVEL[TempInteger[2]]]
            Set Glaive_EFFECT_05[TempInteger[2]] = (Last created special effect)
          Else - Actions
        Countdown Timer - Start Glaive_LOOP[TempInteger[2]] as a One-shot timer that will expire in CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[TempInteger[2]]] seconds
        Countdown Timer - Start Glaive_EXPIRE[TempInteger[2]] as a One-shot timer that will expire in CONSTANT_Glaive_DURATION[Glaive_LEVEL[TempInteger[2]]] seconds
    Set TempInteger[1] = 0
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield LOOP
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Glaive_UNIT[(Integer A)] Not equal to No unit
            (Remaining time for Glaive_LOOP[(Integer A)]) Equal to 0.00
          Then - Actions
            -------- COMMON --------
            Countdown Timer - Start Glaive_LOOP[(Integer A)] as a One-shot timer that will expire in CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]] seconds
            Set Glaive_ANGLE[(Integer A)] = (Glaive_ANGLE[(Integer A)] + (360.00 x ((CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) / ((2.00 x 3.14) x CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]]))))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_TARGET_HIDDEN[(Integer A)] Not equal to No unit
                (Glaive_TARGET_HIDDEN[(Integer A)] is loaded into Glaive_TARGET[(Integer A)]) Equal to False
              Then - Actions
                Set Glaive_TARGET[(Integer A)] = Glaive_TARGET_HIDDEN[(Integer A)]
                Set Glaive_TARGET_HIDDEN[(Integer A)] = No unit
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_OWNER_HIDDEN[(Integer A)] Not equal to No unit
                (Glaive_OWNER_HIDDEN[(Integer A)] is loaded into Glaive_OWNER[(Integer A)]) Equal to False
              Then - Actions
                Set Glaive_OWNER[(Integer A)] = Glaive_OWNER_HIDDEN[(Integer A)]
                Set Glaive_OWNER_HIDDEN[(Integer A)] = No unit
              Else - Actions
            -------- COMMON: DAMAGE RECYCLE --------
            Unit Group - Pick every unit in Glaive_GROUP[(Integer A)] and do (Actions)
              Loop - Actions
                Set TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set TempPoint[2] = (Position of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Distance between TempPoint[1] and TempPoint[2]) Greater than CONSTANT_Glaive_DAMAGE_RANGE[Glaive_LEVEL[(Integer A)]]
                  Then - Actions
                    Unit Group - Remove (Picked unit) from Glaive_GROUP[(Integer A)]
                  Else - Actions
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
            -------- COMMON: DAMAGE --------
            Set TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
            Set TempGroup[1] = (Units within CONSTANT_Glaive_DAMAGE_RANGE[Glaive_LEVEL[(Integer A)]] of TempPoint[1] matching (((((Matching unit) is alive) Equal to True) and (((Unit-type of (Matching unit)) is A flying unit) Equal to False)) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of Glaive_UNIT[(Integer A)])) Equal to True) and (((Matching unit) is in Glaive_GROUP[(Integer A)]) Equal to False)))))
            Unit Group - Pick every unit in TempGroup[1] and do (Actions)
              Loop - Actions
                Unit Group - Add (Picked unit) to Glaive_GROUP[(Integer A)]
                Unit - Cause Glaive_OWNER[(Integer A)] to damage (Picked unit), dealing CONSTANT_Glaive_DAMAGE[Glaive_LEVEL[(Integer A)]] damage of attack type Spells and damage type Normal
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_01[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_01[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_01[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_02[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_03[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_03[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_04[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_04[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    CONSTANT_Glaive_HIT_EFFECT_05[Glaive_LEVEL[(Integer A)]] Not equal to
                  Then - Actions
                    Special Effect - Create a special effect attached to the chest of (Picked unit) using CONSTANT_Glaive_HIT_EFFECT_05[Glaive_LEVEL[(Integer A)]]
                    Special Effect - Destroy (Last created special effect)
                  Else - Actions
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Custom script: call DestroyGroup(udg_TempGroup[1])
            -------- STATE: AWAY --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_STATE[(Integer A)] Equal to AWAY
              Then - Actions
                Set TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set TempPoint[2] = (Position of Glaive_TARGET[(Integer A)])
                Set TempPoint[3] = (TempPoint[2] offset by CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]] towards Glaive_ANGLE[(Integer A)] degrees)
                Set TempPoint[4] = (TempPoint[1] offset by (CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1.00 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) towards (Angle from TempPoint[1] to TempPoint[3]) degrees)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Distance between TempPoint[3] and TempPoint[4]) Less than or equal to ((CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1.00 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) x 2.00)
                  Then - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        Glaive_STATE[(Integer A)] Not equal to BACK
                      Then - Actions
                        Set Glaive_STATE[(Integer A)] = ORBIT
                      Else - Actions
                    Unit - Move Glaive_UNIT[(Integer A)] instantly to TempPoint[3]
                  Else - Actions
                    Unit - Move Glaive_UNIT[(Integer A)] instantly to TempPoint[4]
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
                Custom script: call RemoveLocation(udg_TempPoint[3])
                Custom script: call RemoveLocation(udg_TempPoint[4])
              Else - Actions
            -------- STATE: ORBIT --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_STATE[(Integer A)] Equal to ORBIT
              Then - Actions
                Set TempPoint[1] = (Position of Glaive_TARGET[(Integer A)])
                Set TempPoint[2] = (Position of Glaive_UNIT[(Integer A)])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Distance between TempPoint[1] and TempPoint[2]) Greater than (2.00 x CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]])
                  Then - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        Glaive_STATE[(Integer A)] Not equal to BACK
                      Then - Actions
                        Set Glaive_STATE[(Integer A)] = AWAY
                      Else - Actions
                  Else - Actions
                    Set TempPoint[3] = (TempPoint[1] offset by CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]] towards Glaive_ANGLE[(Integer A)] degrees)
                    Unit - Move Glaive_UNIT[(Integer A)] instantly to TempPoint[3]
                    Custom script: call RemoveLocation(udg_TempPoint[3])
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
              Else - Actions
            -------- STATE: BACK --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Glaive_STATE[(Integer A)] Equal to BACK
              Then - Actions
                Set TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set TempPoint[2] = (Position of Glaive_OWNER[(Integer A)])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Distance between TempPoint[1] and TempPoint[2]) Less than or equal to ((CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1.00 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) / 2.00)
                  Then - Actions
                    Special Effect - Destroy Glaive_EFFECT_01[(Integer A)]
                    Special Effect - Destroy Glaive_EFFECT_02[(Integer A)]
                    Special Effect - Destroy Glaive_EFFECT_03[(Integer A)]
                    Special Effect - Destroy Glaive_EFFECT_04[(Integer A)]
                    Special Effect - Destroy Glaive_EFFECT_05[(Integer A)]
                    Unit - Remove Glaive_UNIT[(Integer A)] from the game
                    Set Glaive_UNIT[(Integer A)] = No unit
                    Set Glaive_TARGET[(Integer A)] = No unit
                    Set Glaive_OWNER[(Integer A)] = No unit
                    Set Glaive_ANGLE[(Integer A)] = 0.00
                    Set Glaive_STATE[(Integer A)] =
                    Set Glaive_LEVEL[(Integer A)] = 0
                  Else - Actions
                    Set TempPoint[3] = (TempPoint[1] offset by (CONSTANT_Glaive_SPEED_PER_SEC[Glaive_LEVEL[(Integer A)]] / (1 / CONSTANT_Glaive_INTERVAL[Glaive_LEVEL[(Integer A)]])) towards (Angle from TempPoint[1] to TempPoint[2]) degrees)
                    Unit - Move Glaive_UNIT[(Integer A)] instantly to TempPoint[3]
                    Custom script: call RemoveLocation(udg_TempPoint[3])
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
              Else - Actions
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield EXPIRE
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Glaive_UNIT[(Integer A)] Not equal to No unit
            (Remaining time for Glaive_EXPIRE[(Integer A)]) Equal to 0.00
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Glaive_OWNER[(Integer A)] is alive) Equal to False
              Then - Actions
                Unit - Remove Glaive_UNIT[(Integer A)] from the game
                Set Glaive_UNIT[(Integer A)] = No unit
                Set Glaive_TARGET[(Integer A)] = No unit
                Set Glaive_OWNER[(Integer A)] = No unit
                Set Glaive_ANGLE[(Integer A)] = 0.00
                Set Glaive_STATE[(Integer A)] =
                Set Glaive_LEVEL[(Integer A)] = 0
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    Glaive_STATE[(Integer A)] Not equal to BACK
                  Then - Actions
                    Set Glaive_STATE[(Integer A)] = BACK
                  Else - Actions
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield DEATH
  Events
    Unit - A unit Dies
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Glaive_TARGET[(Integer A)] Equal to (Dying unit)
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Glaive_OWNER[(Integer A)] is alive) Equal to False
              Then - Actions
                Special Effect - Destroy Glaive_EFFECT_01[(Integer A)]
                Special Effect - Destroy Glaive_EFFECT_02[(Integer A)]
                Special Effect - Destroy Glaive_EFFECT_03[(Integer A)]
                Special Effect - Destroy Glaive_EFFECT_04[(Integer A)]
                Special Effect - Destroy Glaive_EFFECT_05[(Integer A)]
                Unit - Remove Glaive_UNIT[(Integer A)] from the game
                Set Glaive_UNIT[(Integer A)] = No unit
                Set Glaive_TARGET[(Integer A)] = No unit
                Set Glaive_OWNER[(Integer A)] = No unit
                Set Glaive_ANGLE[(Integer A)] = 0.00
                Set Glaive_STATE[(Integer A)] =
                Set Glaive_LEVEL[(Integer A)] = 0
              Else - Actions
                Set Glaive_STATE[(Integer A)] = BACK
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Blade Shield LOADS INTO TRANSPORT
  Events
    Unit - A unit Is loaded into a transport
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Glaive_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Triggering unit) Equal to Glaive_TARGET[(Integer A)]
          Then - Actions
            Set Glaive_TARGET[(Integer A)] = (Transporting unit)
            Set Glaive_TARGET_HIDDEN[(Integer A)] = (Triggering unit)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Triggering unit) Equal to Glaive_OWNER[(Integer A)]
          Then - Actions
            Set Glaive_OWNER[(Integer A)] = (Transporting unit)
            Set Glaive_OWNER_HIDDEN[(Integer A)] = (Triggering unit)
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Shift
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Shift
  Actions
    Set TempInteger[1] = 0
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[1] Equal to 0
            Shift_OWNER[(Integer A)] Equal to No unit
          Then - Actions
            Set TempInteger[1] = (Integer A)
          Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger[1] Not equal to 0
      Then - Actions
        Set Shift_OWNER[TempInteger[1]] = (Casting unit)
        Set Shift_TARGET[TempInteger[1]] = (Target unit of ability being cast)
        Countdown Timer - Start Shift_TIMER[TempInteger[1]] as a One-shot timer that will expire in 0.00 seconds
      Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Shift WORK
  Events
    Time - Shift_TIMER[1] expires
    Time - Shift_TIMER[2] expires
    Time - Shift_TIMER[3] expires
    Time - Shift_TIMER[4] expires
    Time - Shift_TIMER[5] expires
    Time - Shift_TIMER[6] expires
    Time - Shift_TIMER[7] expires
    Time - Shift_TIMER[8] expires
    Time - Shift_TIMER[9] expires
    Time - Shift_TIMER[10] expires
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for Shift_TIMER[(Integer A)]) Equal to 0.00
            Shift_OWNER[(Integer A)] Not equal to No unit
            Shift_TARGET[(Integer A)] Not equal to No unit
          Then - Actions
            Set TempPoint[1] = (Position of Shift_OWNER[(Integer A)])
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIil\AIilTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Set TempPoint[1] = (Position of Shift_TARGET[(Integer A)])
            Unit - Move Shift_OWNER[(Integer A)] instantly to TempPoint[1], facing (Facing of Shift_OWNER[(Integer A)]) degrees
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Set TempPoint[1] = (Position of Shift_OWNER[(Integer A)])
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIil\AIilTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Set Shift_OWNER[(Integer A)] = No unit
            Set Shift_TARGET[(Integer A)] = No unit
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Eclipse INIT
  Events
    Map initialization
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        Trigger - Add to Eclipse_EXPIRE <gen> the event (Maiden_TIMER[(Integer A)] expires)
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Eclipse LEARN
  Events
    Unit - A unit Learns a skill
  Conditions
    (Learned Hero Skill) Equal to Eclipse
  Actions
    Unit - Add Eclipse (Passive) to (Learning Hero)
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Eclipse BEGIN
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Level of Eclipse for (Casting unit)) Equal to 1
    Or - Any (Conditions) are true
      Conditions
        (Ability being cast) Equal to Blade Shield
        And - All (Conditions) are true
          Conditions
            (Ability being cast) Equal to Shift
            (Level of Shift for (Casting unit)) Not equal to 3
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Maiden_OWNER[(Integer A)] Equal to (Casting unit)
          Then - Actions
            Skip remaining actions
          Else - Actions
    Set TempInteger[1] = 0
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[1] Equal to 0
            Maiden_OWNER[(Integer A)] Equal to No unit
          Then - Actions
            Set TempInteger[1] = (Integer A)
          Else - Actions
    Set Maiden_OWNER[TempInteger[1]] = (Casting unit)
    Special Effect - Create a special effect attached to the origin of Maiden_OWNER[TempInteger[1]] using Abilities\Spells\Other\Charm\CharmTarget.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Remove Eclipse (Passive) from Maiden_OWNER[TempInteger[1]]
    Unit - Add Eclipse (Cooldown) to Maiden_OWNER[TempInteger[1]]
    Unit - Order Maiden_OWNER[TempInteger[1]] to Orc Troll Berserker - Berserk
    Countdown Timer - Start Maiden_TIMER[TempInteger[1]] as a One-shot timer that will expire in 24.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Shift
      Then - Actions
        Set TempInteger[2] = (Level of Shift for Maiden_OWNER[TempInteger[1]])
        Unit - Remove Shift from Maiden_OWNER[TempInteger[1]]
        For each (Integer A) from 1 to TempInteger[2], do (Actions)
          Loop - Actions
            Hero - Modify unspent skill points of Maiden_OWNER[TempInteger[1]]: Add 1 points
            Hero - Learn skill for Maiden_OWNER[TempInteger[1]]: Shift
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Ability being cast) Equal to Blade Shield
      Then - Actions
        Set TempInteger[2] = (Level of Blade Shield for Maiden_OWNER[TempInteger[1]])
        Unit - Remove Blade Shield from Maiden_OWNER[TempInteger[1]]
        For each (Integer A) from 1 to TempInteger[2], do (Actions)
          Loop - Actions
            Hero - Modify unspent skill points of Maiden_OWNER[TempInteger[1]]: Add 1 points
            Hero - Learn skill for Maiden_OWNER[TempInteger[1]]: Blade Shield
      Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Eclipse EXPIRE
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Maiden_OWNER[(Integer A)] Not equal to No unit
            (Remaining time for Maiden_TIMER[(Integer A)]) Equal to 0.00
          Then - Actions
            Unit - Remove Eclipse (Cooldown) from Maiden_OWNER[(Integer A)]
            Unit - Add Eclipse (Passive) to Maiden_OWNER[(Integer A)]
            Set Maiden_OWNER[(Integer A)] = No unit
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Twilight Guardian BEGIN
  Events
    Unit - A unit Spawns a summoned unit
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Summoned unit)) Equal to Twilight Guardian (Level 1)
        (Unit-type of (Summoned unit)) Equal to Twilight Guardian (Level 2)
        (Unit-type of (Summoned unit)) Equal to Twilight Guardian (Level 3)
  Actions
    Animation - Change (Summoned unit)'s vertex coloring to ((15.00 / 255.00)%, (15.00 / 255.00)%, (15.00 / 255.00)%) with 15.00% transparency
    Special Effect - Create a special effect attached to the chest of (Summoned unit) using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
    Special Effect - Destroy (Last created special effect)
    Unit - Add Twilight Guardian (Effect) to (Summoned unit)
    Unit - Add Kiss of Death to (Summoned unit)
    Set TempInteger[1] = 0
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Twilight_UNIT[(Integer A)] Equal to No unit
            TempInteger[1] Equal to 0
          Then - Actions
            Set TempInteger[1] = (Integer A)
          Else - Actions
    Set Twilight_UNIT[TempInteger[1]] = (Summoned unit)
    Countdown Timer - Start Twilight_TIMER[TempInteger[1]] as a One-shot timer that will expire in 60.00 seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Level of Eclipse for (Summoning unit)) Equal to 1
      Then - Actions
        For each (Integer A) from 1 to 10, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Maiden_OWNER[(Integer A)] Equal to (Summoning unit)
              Then - Actions
                Skip remaining actions
              Else - Actions
        For each (Integer A) from 1 to 10, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                TempInteger[1] Equal to 0
                Maiden_OWNER[(Integer A)] Equal to No unit
              Then - Actions
                Set TempInteger[1] = (Integer A)
              Else - Actions
        Set Maiden_OWNER[TempInteger[1]] = (Summoning unit)
        Special Effect - Create a special effect attached to the origin of Maiden_OWNER[TempInteger[1]] using Abilities\Spells\Other\Charm\CharmTarget.mdl
        Special Effect - Destroy (Last created special effect)
        Unit - Remove Eclipse (Passive) from Maiden_OWNER[TempInteger[1]]
        Unit - Add Eclipse (Cooldown) to Maiden_OWNER[TempInteger[1]]
        Unit - Order Maiden_OWNER[TempInteger[1]] to Orc Troll Berserker - Berserk
        Countdown Timer - Start Maiden_TIMER[TempInteger[1]] as a One-shot timer that will expire in 24.00 seconds
        Set TempInteger[2] = (Level of Summon Twilight Guardian for Maiden_OWNER[TempInteger[1]])
        Unit - Remove Summon Twilight Guardian from Maiden_OWNER[TempInteger[1]]
        For each (Integer A) from 1 to TempInteger[2], do (Actions)
          Loop - Actions
            Hero - Modify unspent skill points of Maiden_OWNER[TempInteger[1]]: Add 1 points
            Hero - Learn skill for Maiden_OWNER[TempInteger[1]]: Summon Twilight Guardian
      Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Twilight Guardian DEATH
  Events
    Unit - A unit Dies
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Killing unit) Equal to Twilight_UNIT[(Integer A)]
            And - All (Conditions) are true
              Conditions
                (Level of (Dying unit)) Less than or equal to 5
                ((Dying unit) is A structure) Equal to False
                ((Dying unit) is A Hero) Equal to False
                ((Dying unit) is A flying unit) Equal to False
                ((Dying unit) is Magic Immune) Equal to False
                ((Dying unit) is A peon-type unit) Equal to False
                ((Dying unit) is Mechanical) Equal to False
                ((Killing unit) belongs to an ally of (Owner of (Dying unit))) Equal to False
          Then - Actions
            Set TempPoint[1] = (Position of (Dying unit))
            Unit - Create 1 (Unit-type of (Dying unit)) for (Owner of Twilight_UNIT[(Integer A)]) at TempPoint[1] facing (Facing of (Dying unit)) degrees
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Special Effect - Destroy (Last created special effect)
            Animation - Change (Last created unit)'s vertex coloring to ((15.00 / 255.00)%, (15.00 / 255.00)%, (15.00 / 255.00)%) with 15.00% transparency
            Unit - Add Twilight Guardian (Effect) to (Last created unit)
            Unit - Add a (Remaining time for Twilight_TIMER[(Integer A)]) second Generic expiration timer to (Last created unit)
            Unit Group - Add (Last created unit) to Twilight_FOLK[(Integer A)]
            Unit - Disable supply usage for (Last created unit)
            Unit - Remove Elune's Grace from (Last created unit)
            Unit - Remove Endurance Aura (Neutral Hostile) from (Last created unit)
            Unit - Remove Ensnare from (Last created unit)
            Unit - Remove Ensnare from (Last created unit)
            Unit - Remove Ensnare (Neutral Hostile) from (Last created unit)
            Unit - Remove Entangling Roots (Neutral Hostile 1) from (Last created unit)
            Unit - Remove Entangling Roots (Neutral Hostile 2) from (Last created unit)
            Unit - Remove Parasite from (Last created unit)
            Unit - Remove Parasite from (Last created unit)
            Unit - Remove Frost Armor (Autocast) (Neutral Hostile) from (Last created unit)
            Unit - Remove Frost Armor (Autocast) (Neutral Hostile) from (Last created unit)
            Unit - Remove Frost Armor (Neutral Hostile) from (Last created unit)
            Unit - Remove Abolish Magic from (Last created unit)
            Unit - Remove Abolish Magic from (Last created unit)
            Unit - Remove Abolish Magic (Neutral Hostile) from (Last created unit)
            Unit - Remove Abolish Magic (Neutral Hostile, second position) from (Last created unit)
            Unit - Remove ACad (Neutral Hostile) from (Last created unit)
            Unit - Remove Anti-magic Shell from (Last created unit)
            Unit - Remove Anti-magic Shell (Magic Resistance) from (Last created unit)
            Unit - Remove Anti-magic Shell (Neutral Hostile) from (Last created unit)
            Unit - Remove Devour from (Last created unit)
            Unit - Remove Devour (Neutral Hostile) from (Last created unit)
            Unit - Remove Spiked Shell (2,2 Button Pos) from (Last created unit)
            Unit - Remove Spiked Shell from (Last created unit)
            Unit - Remove Submerge (Myrmidon) from (Last created unit)
            Unit - Remove Submerge (Royal Guard) from (Last created unit)
            Unit - Remove Submerge (Snap Dragon) from (Last created unit)
            Unit - Remove Summon Sea Elemental from (Last created unit)
            Unit - Remove Frost Bolt from (Last created unit)
            Unit - Remove Slow Poison from (Last created unit)
            Unit - Remove Crushing Wave from (Last created unit)
            Unit - Remove Crushing Wave (Lesser) from (Last created unit)
            Unit - Remove Crushing Wave (Lesser) from (Last created unit)
            Unit - Remove Resistant Skin (Neutral Hostile 1) from (Last created unit)
            Unit - Remove Resistant Skin (Neutral Hostile 2) from (Last created unit)
            Unit - Remove Resistant Skin from (Last created unit)
            Unit - Remove Hardened Skin from (Last created unit)
            Unit - Remove Hardened Skin from (Last created unit)
            Unit - Remove Shadow Meld from (Last created unit)
            Unit - Remove ACss (Neutral Hostile) from (Last created unit)
            Unit - Remove Envenomed Weapons (Neutral Hostile) from (Last created unit)
            Unit - Remove Envenomed Spears from (Last created unit)
            Unit - Remove Evasion (Neutral Hostile) from (Last created unit)
            Unit - Remove Devotion Aura (Neutral Hostile) from (Last created unit)
            Unit - Remove Divine Shield (Neutral Hostile) from (Last created unit)
            Unit - Remove Frost Nova (Neutral Hostile) from (Last created unit)
            Unit - Remove Bash (Neutral Hostile 1) from (Last created unit)
            Unit - Remove Bash (Neutral Hostile 2) from (Last created unit)
            Unit - Remove Critical Strike (Neutral Hostile) from (Last created unit)
            Unit - Remove Heal from (Last created unit)
            Unit - Remove Heal (Neutral Hostile 1) from (Last created unit)
            Unit - Remove Heal (Neutral Hostile 2) from (Last created unit)
            Unit - Remove Heal (Neutral Hostile 3) from (Last created unit)
            Unit - Remove Inner Fire from (Last created unit)
            Unit - Remove Inner Fire (Neutral Hostile) from (Last created unit)
            Unit - Remove Thorns Aura (Neutral Hostile) from (Last created unit)
            Unit - Remove Trueshot Aura (Neutral Hostile) from (Last created unit)
            Unit - Remove Rejuvenation from (Last created unit)
            Unit - Remove Rejuvenation (Neutral Hostile) from (Last created unit)
            Unit - Remove Rejuvenation (Furbolg) from (Last created unit)
            Unit - Remove Faerie Fire from (Last created unit)
            Unit - Remove Faerie Fire (Morph) from (Last created unit)
            Unit - Remove Faerie Fire (Neutral Hostile) from (Last created unit)
            Unit - Remove Lightning Shield from (Last created unit)
            Unit - Remove Lightning Shield (Neutral Hostile) from (Last created unit)
            Unit - Remove War Stomp (Neutral Hostile) from (Last created unit)
            Unit - Remove War Stomp (Neutral Hostile) from (Last created unit)
            Unit - Remove War Stomp (Neutral Hostile) from (Last created unit)
            Unit - Remove Command Aura from (Last created unit)
            Unit - Remove Pulverize from (Last created unit)
            Unit - Remove Pulverize from (Last created unit)
            Unit - Remove Hurl Boulder from (Last created unit)
            Unit - Remove Hex (Neutral Hostile) from (Last created unit)
            Unit - Remove Slam (Neutral Hostile) from (Last created unit)
            Unit - Remove Slam (Thunder Lizard) from (Last created unit)
            Unit - Remove Sleep (Neutral Hostile) from (Last created unit)
            Unit - Remove Summon Prawns from (Last created unit)
            Unit - Remove Cleaving Attack from (Last created unit)
            Unit - Remove Curse from (Last created unit)
            Unit - Remove Curse (Neutral Hostile) from (Last created unit)
            Unit - Remove Immolation (Neutral Hostile) from (Last created unit)
            Unit - Remove Blizzard (Neutral Hostile) from (Last created unit)
            Unit - Remove Disease Cloud (Abomination) from (Last created unit)
            Unit - Remove Disease Cloud (Meat Wagon) from (Last created unit)
            Unit - Remove Disease Cloud (Neutral Hostile no damage) from (Last created unit)
            Unit - Remove Disease Cloud (Neutral Hostile) from (Last created unit)
            Unit - Remove Disease Cloud (Plague Ward) from (Last created unit)
            Unit - Remove Purge from (Last created unit)
            Unit - Remove Purge from (Last created unit)
            Unit - Remove Purge (Neutral Hostile) from (Last created unit)
            Unit - Remove Cyclone (Neutral Hostile) from (Last created unit)
            Unit - Remove Cyclone from (Last created unit)
            Unit - Remove Cyclone from (Last created unit)
            Unit - Remove Cyclone (Cenarius) from (Last created unit)
          Else - Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Twilight_UNIT[(Integer A)] Equal to (Dying unit)
          Then - Actions
            Unit - Remove Twilight Guardian (Effect) from (Dying unit)
            Unit - Remove Twilight_UNIT[(Integer A)] from the game
            Unit Group - Pick every unit in Twilight_FOLK[(Integer A)] and do (Actions)
              Loop - Actions
                Unit Group - Remove (Picked unit) from Twilight_FOLK[(Integer A)]
                Unit - Remove Twilight Guardian (Effect) from (Picked unit)
                Unit - Remove (Picked unit) from the game
                Set TempPoint[1] = (Position of (Picked unit))
                Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Special Effect - Destroy (Last created special effect)
            Set Twilight_UNIT[(Integer A)] = No unit
            Set TempPoint[1] = (Position of (Dying unit))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Special Effect - Destroy (Last created special effect)
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Dying unit) is in Twilight_FOLK[(Integer A)]) Equal to True
          Then - Actions
            Unit Group - Remove (Picked unit) from Twilight_FOLK[(Integer A)]
            Unit - Remove Twilight Guardian (Effect) from (Dying unit)
            Unit Group - Remove (Dying unit) from Twilight_FOLK[(Integer A)]
            Unit - Remove (Dying unit) from the game
            Set TempPoint[1] = (Position of (Dying unit))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Special Effect - Destroy (Last created special effect)
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Shadow Orb INIT
  Events
    Map initialization
  Conditions
  Actions
    Set Shadow_Orb_TYPE[1] = Shadow Orb +1
    Set Shadow_Orb_TYPE[2] = Shadow Orb +2
    Set Shadow_Orb_TYPE[3] = Shadow Orb +3
    Set Shadow_Orb_TYPE[4] = Shadow Orb +4
    Set Shadow_Orb_TYPE[5] = Shadow Orb +5
    Set Shadow_Orb_TYPE[6] = Shadow Orb +6
    Set Shadow_Orb_TYPE[7] = Shadow Orb +7
    Set Shadow_Orb_TYPE[8] = Shadow Orb +8
    Set Shadow_Orb_TYPE[9] = Shadow Orb +9
    Set Shadow_Orb_TYPE[10] = Shadow Orb +10
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Shadow Orb CUMULATIVE
  Events
    Unit - A unit Acquires an item
  Conditions
    GameHasStarted Equal to True
    Or - Any (Conditions) are true
      Conditions
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[1]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[2]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[3]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[4]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[5]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[6]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[7]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[8]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[9]
        (Item-type of (Item being manipulated)) Equal to Shadow_Orb_TYPE[10]
  Actions
    For each (Integer A) from 1 to 8, do (Actions)
      Loop - Actions
        Set TempInteger[(Integer A)] = 0
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        For each (Integer B) from 1 to 10, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Item-type of (Item carried by (Hero manipulating item) in slot (Integer A))) Equal to Shadow_Orb_TYPE[(Integer B)]
              Then - Actions
                Set TempInteger[(Integer A)] = (Integer B)
                Set TempInteger[7] = (TempInteger[7] + 1)
                Set TempInteger[8] = (TempInteger[8] + (Integer B))
              Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger[7] Greater than or equal to 2
      Then - Actions
        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
                TempInteger[(Integer A)] Not equal to 0
              Then - Actions
                Hero - Drop the item from slot (Integer A) of (Hero manipulating item)
                Item - Remove (Last dropped item)
              Else - Actions
        Hero - Create Shadow_Orb_TYPE[TempInteger[8]] and give it to (Hero manipulating item)
      Else - Actions
    For each (Integer A) from 1 to 8, do (Actions)
      Loop - Actions
        Set TempInteger[(Integer A)] = 0
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
This is a chart that shows the statistics of Illidan's Catastrophic Wave ultimate.
Burn INIT
  Events
    Map initialization
  Conditions
  Actions
    Set CONSTANT_Burn_LOOP = 0.06
    Set CONSTANT_Burn_DAMAGE = 300.00
    Set CONSTANT_Burn_AREA_OF_EFFECT = 200.00
    Set CONSTANT_Burn_RANGE = 1200.00
    Set CONSTANT_Burn_VELOCITY = 60.00
    Set CONSTANT_Burn_LIMIT = 10
    -------- r --------
    Set CONSTANT_Burn_BURN_DAMAGE = 300.00
    Set CONSTANT_Burn_BURN_TIME = 15.00
    Set CONSTANT_Burn_BURN_LOOP = 0.25
    Set CONSTANT_Burn_BURN_EFFECT = Abilities\Spells\Other\BreathOfFire\BreathOfFireDamage.mdl
    Set CONSTANT_Burn_BURN_LIMIT = 20
    -------- r --------
    Set CONSTANT_Burn_KNOCKBACK = 300.00
    Set CONSTANT_Burn_KNOCKBACK_TIME = 0.80
    Set CONSTANT_Burn_KNOCKBACK_LOOP = 0.04
    Set CONSTANT_Burn_KNOCKBACK_LIMIT = 20
    -------- r --------
    For each (Integer A) from 1 to CONSTANT_Burn_LIMIT, do (Actions)
      Loop - Actions
        Trigger - Add to Burn_LOOP <gen> the event (Burn_LOOP[(Integer A)] expires)
    For each (Integer A) from 1 to CONSTANT_Burn_BURN_LIMIT, do (Actions)
      Loop - Actions
        Trigger - Add to Burn_BURN_LOOP <gen> the event (Burn_BURN_LOOP_TIMER[(Integer A)] expires)
    For each (Integer A) from 1 to CONSTANT_Burn_KNOCKBACK_LIMIT, do (Actions)
      Loop - Actions
        Trigger - Add to Burn_KNOCKBACK_LOOP <gen> the event (Burn_KNOCKBACK_LOOP_TIMER[(Integer A)] expires)
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Burn BEGIN
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Shockwave
  Actions
    Set TempInteger[1] = 0
    For each (Integer A) from 1 to CONSTANT_Burn_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[1] Equal to 0
            Burn_OWNER[(Integer A)] Equal to No unit
          Then - Actions
            Set TempInteger[1] = (Integer A)
          Else - Actions
    Set Burn_OWNER[TempInteger[1]] = (Casting unit)
    Set TempPoint[1] = (Position of (Casting unit))
    Set TempPoint[2] = (Target point of ability being cast)
    Unit - Create 1 Dummy Caster for (Owner of (Casting unit)) at TempPoint[1] facing TempPoint[2]
    Unit - Hide (Last created unit)
    Custom script: call RemoveLocation(udg_TempPoint[1])
    Custom script: call RemoveLocation(udg_TempPoint[2])
    Set Burn_UNIT[TempInteger[1]] = (Last created unit)
    Countdown Timer - Start Burn_LOOP[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_LOOP seconds
    Set Burn_DISTANCE[TempInteger[1]] = 0.00
    Set TempInteger[1] = 0
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Burn LOOP
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Burn_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for Burn_LOOP[(Integer A)]) Equal to 0.00
          Then - Actions
            -------- Effect --------
            Set TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
            Special Effect - Create a special effect at TempPoint[1] using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
            -------- Damage --------
            Set TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
            Set TempGroup[1] = (Units within CONSTANT_Burn_AREA_OF_EFFECT of TempPoint[1] matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of Burn_OWNER[(Integer A)])) Equal to True) and (((Matching unit) is in Burn_GROUP[(Integer A)]) Equal to False)))))
            Unit Group - Pick every unit in TempGroup[1] and do (Actions)
              Loop - Actions
                Unit - Cause Burn_OWNER[(Integer A)] to damage (Picked unit), dealing CONSTANT_Burn_DAMAGE damage of attack type Spells and damage type Normal
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ((Picked unit) is in Burn_BURN_GROUP) Equal to False
                  Then - Actions
                    Set TempInteger[1] = 0
                    For each (Integer B) from 1 to CONSTANT_Burn_BURN_LIMIT, do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            Burn_BURN_UNIT[(Integer B)] Equal to No unit
                            TempInteger[1] Equal to 0
                          Then - Actions
                            Set TempInteger[1] = (Integer B)
                          Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        TempInteger[1] Not equal to 0
                      Then - Actions
                        Set Burn_BURN_UNIT[TempInteger[1]] = (Picked unit)
                        Set Burn_BURN_DAMAGE_SOUCE[TempInteger[1]] = Burn_OWNER[(Integer A)]
                        Special Effect - Create a special effect attached to the chest of Burn_BURN_UNIT[TempInteger[1]] using CONSTANT_Burn_BURN_EFFECT
                        Set Burn_BURN_EFFECT[TempInteger[1]] = (Last created special effect)
                        Countdown Timer - Start Burn_BURN_LOOP_TIMER[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_BURN_LOOP seconds
                        Countdown Timer - Start Burn_BURN_EXPIRE_TIMER[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_BURN_TIME seconds
                        Unit Group - Add Burn_BURN_UNIT[TempInteger[1]] to Burn_BURN_GROUP
                      Else - Actions
                    Set TempInteger[1] = 0
                  Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ((Picked unit) is in Burn_KNOCKBACK_GROUP) Equal to False
                    ((Picked unit) is A structure) Equal to False
                  Then - Actions
                    Set TempInteger[1] = 0
                    For each (Integer B) from 1 to CONSTANT_Burn_KNOCKBACK_LIMIT, do (Actions)
                      Loop - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            Burn_KNOCKBACK_UNIT[(Integer B)] Equal to No unit
                            TempInteger[1] Equal to 0
                          Then - Actions
                            Set TempInteger[1] = (Integer B)
                          Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        TempInteger[1] Not equal to 0
                      Then - Actions
                        Set Burn_KNOCKBACK_UNIT[TempInteger[1]] = (Picked unit)
                        Set TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                        Set TempPoint[2] = (Position of (Picked unit))
                        Set Burn_KNOCKBACK_ANGLE[TempInteger[1]] = (Angle from TempPoint[1] to TempPoint[2])
                        Custom script: call RemoveLocation(udg_TempPoint[1])
                        Custom script: call RemoveLocation(udg_TempPoint[2])
                        Countdown Timer - Start Burn_KNOCKBACK_LOOP_TIMER[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_KNOCKBACK_LOOP seconds
                        Countdown Timer - Start Burn_KNOCKBACK_EXPIRE_TIMER[TempInteger[1]] as a One-shot timer that will expire in CONSTANT_Burn_KNOCKBACK_TIME seconds
                        Unit Group - Add Burn_KNOCKBACK_UNIT[TempInteger[1]] to Burn_KNOCKBACK_GROUP
                      Else - Actions
                    Set TempInteger[1] = 0
                  Else - Actions
                Unit Group - Add (Picked unit) to Burn_GROUP[(Integer A)]
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Custom script: call DestroyGroup(udg_TempGroup[1])
            -------- Move --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (CONSTANT_Burn_RANGE - Burn_DISTANCE[(Integer A)]) Less than or equal to CONSTANT_Burn_VELOCITY
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (CONSTANT_Burn_RANGE - Burn_DISTANCE[(Integer A)]) Not equal to 0.00
                  Then - Actions
                    Set Burn_DISTANCE[(Integer A)] = CONSTANT_Burn_RANGE
                    Set TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                    Set TempPoint[2] = (TempPoint[1] offset by (CONSTANT_Burn_RANGE - Burn_DISTANCE[(Integer A)]) towards (Facing of Burn_UNIT[(Integer A)]) degrees)
                    Unit - Move Burn_UNIT[(Integer A)] instantly to TempPoint[2], facing (Facing of Burn_UNIT[(Integer A)]) degrees
                    Custom script: call RemoveLocation(udg_TempPoint[1])
                    Custom script: call RemoveLocation(udg_TempPoint[2])
                    Countdown Timer - Start Burn_LOOP[(Integer A)] as a One-shot timer that will expire in CONSTANT_Burn_LOOP seconds
                  Else - Actions
                    Set Burn_UNIT[(Integer A)] = No unit
                    Set Burn_OWNER[(Integer A)] = No unit
                    Set Burn_DISTANCE[(Integer A)] = 0.00
                    Unit Group - Pick every unit in Burn_GROUP[(Integer A)] and do (Actions)
                      Loop - Actions
                        Unit Group - Remove (Picked unit) from Burn_GROUP[(Integer A)]
              Else - Actions
                Set TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                Set TempPoint[2] = (TempPoint[1] offset by CONSTANT_Burn_VELOCITY towards (Facing of Burn_UNIT[(Integer A)]) degrees)
                Unit - Move Burn_UNIT[(Integer A)] instantly to TempPoint[2], facing (Facing of Burn_UNIT[(Integer A)]) degrees
                Custom script: call RemoveLocation(udg_TempPoint[1])
                Custom script: call RemoveLocation(udg_TempPoint[2])
                Set Burn_DISTANCE[(Integer A)] = (Burn_DISTANCE[(Integer A)] + CONSTANT_Burn_VELOCITY)
                Countdown Timer - Start Burn_LOOP[(Integer A)] as a One-shot timer that will expire in CONSTANT_Burn_LOOP seconds
          Else - Actions
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Burn BURN LOOP
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Burn_BURN_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for Burn_BURN_EXPIRE_TIMER[(Integer A)]) Not equal to 0.00
            (Burn_BURN_UNIT[(Integer A)] is alive) Equal to True
          Then - Actions
            Unit - Cause Burn_BURN_DAMAGE_SOUCE[(Integer A)] to damage Burn_BURN_UNIT[(Integer A)], dealing (CONSTANT_Burn_BURN_DAMAGE / (CONSTANT_Burn_BURN_TIME / CONSTANT_Burn_BURN_LOOP)) damage of attack type Spells and damage type Normal
            Countdown Timer - Start Burn_BURN_LOOP_TIMER[(Integer A)] as a One-shot timer that will expire in CONSTANT_Burn_BURN_LOOP seconds
          Else - Actions
            Set Burn_BURN_DAMAGE_SOUCE[(Integer A)] = No unit
            Set Burn_BURN_UNIT[(Integer A)] = No unit
            Special Effect - Destroy Burn_BURN_EFFECT[(Integer A)]
            Unit Group - Remove Burn_BURN_UNIT[(Integer A)] from Burn_BURN_GROUP
This trigger was made for the two player Sentinel campaign: Terror of the Tides by McQvaBlood.
Burn KNOCKBACK LOOP
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to CONSTANT_Burn_KNOCKBACK_LIMIT, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for Burn_KNOCKBACK_EXPIRE_TIMER[(Integer A)]) Not equal to 0.00
            (Burn_KNOCKBACK_UNIT[(Integer A)] is alive) Equal to True
          Then - Actions
            Set TempPoint[1] = (Position of Burn_KNOCKBACK_UNIT[(Integer A)])
            Set TempPoint[2] = (TempPoint[1] offset by (CONSTANT_Burn_KNOCKBACK / (CONSTANT_Burn_KNOCKBACK_TIME / CONSTANT_Burn_KNOCKBACK_LOOP)) towards Burn_KNOCKBACK_ANGLE[(Integer A)] degrees)
            Unit - Move Burn_KNOCKBACK_UNIT[(Integer A)] instantly to TempPoint[2], facing (Facing of Burn_KNOCKBACK_UNIT[(Integer A)]) degrees
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Custom script: call RemoveLocation(udg_TempPoint[2])
            Countdown Timer - Start Burn_KNOCKBACK_LOOP_TIMER[(Integer A)] as a One-shot timer that will expire in CONSTANT_Burn_KNOCKBACK_LOOP seconds
          Else - Actions
            Set Burn_KNOCKBACK_UNIT[(Integer A)] = No unit
            Set Burn_KNOCKBACK_ANGLE[(Integer A)] = 0.00
            Unit Group - Remove Burn_KNOCKBACK_UNIT[(Integer A)] from Burn_KNOCKBACK_GROUP
Ambush INIT
  Events
    Map initialization
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        Trigger - Add to Ambush_EXPIRE <gen> the event (AmbushTimer[(Integer A)] expires)
Ambush REGISTER
  Events
  Conditions
  Actions
    Set TempPoint[1] = (Center of CreateAmbush_Region)
    Unit - Create 1 CreateAmbush_Type for Neutral Hostile at TempPoint[1] facing CreateAmbush_Angle degrees
    Custom script: call RemoveLocation(udg_TempPoint[1])
    Unit Group - Add (Last created unit) to CreateAmbush_Group
    Set TempInteger[1] = 0
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            TempInteger[1] Equal to 0
            AmbushUnit[(Integer A)] Equal to No unit
          Then - Actions
            Set TempInteger[1] = (Integer A)
          Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            TempInteger[1] Equal to 0
            And - All (Conditions) are true
              Conditions
                (Unit-type of (Last created unit)) Not equal to Skeleton Archer
                (Unit-type of (Last created unit)) Not equal to Skeleton Warrior
                (Unit-type of (Last created unit)) Not equal to Skeletal Mage
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc Grunt
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc Champion
                (Unit-type of (Last created unit)) Not equal to Reef Elemental
                (Unit-type of (Last created unit)) Not equal to Sea Elemental
                (Unit-type of (Last created unit)) Not equal to Berserk Elemental
                (Unit-type of (Last created unit)) Not equal to Revenant of the Tides
                (Unit-type of (Last created unit)) Not equal to Revenant of the Seas
                (Unit-type of (Last created unit)) Not equal to Revenant of the Depths
                (Unit-type of (Last created unit)) Not equal to Deeplord Revenant
      Then - Actions
        Skip remaining actions
      Else - Actions
    Set AmbushUnit[TempInteger[1]] = (Last created unit)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Last created unit)) Equal to Skeleton Archer
        (Unit-type of (Last created unit)) Equal to Skeleton Warrior
        (Unit-type of (Last created unit)) Equal to Skeletal Mage
      Then - Actions
        Set TempPoint[1] = (Center of CreateAmbush_GoToRegion)
        Unit - Order AmbushUnit[TempInteger[1]] to Attack-Move To TempPoint[1]
        Custom script: call RemoveLocation(udg_TempPoint[1])
      Else - Actions
    Unit - Make AmbushUnit[TempInteger[1]] Invulnerable
    Unit - Pause AmbushUnit[TempInteger[1]]
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Last created unit)) Equal to Skeletal Orc
            (Unit-type of (Last created unit)) Equal to Skeletal Orc Grunt
            (Unit-type of (Last created unit)) Equal to Skeletal Orc Champion
            (Unit-type of (Last created unit)) Equal to Skeleton Archer
            (Unit-type of (Last created unit)) Equal to Skeleton Warrior
            (Unit-type of (Last created unit)) Equal to Skeletal Mage
      Then - Actions
        Animation - Play AmbushUnit[TempInteger[1]]'s birth animation
        Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 2.33 seconds
      Else - 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 (Last created unit)) Equal to Reef Elemental
                (Unit-type of (Last created unit)) Equal to Sea Elemental
                (Unit-type of (Last created unit)) Equal to Berserk Elemental
          Then - Actions
            Animation - Play AmbushUnit[TempInteger[1]]'s birth swim animation
            Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 0.90 seconds
          Else - 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 (Last created unit)) Equal to Revenant of the Tides
                    (Unit-type of (Last created unit)) Equal to Revenant of the Seas
                    (Unit-type of (Last created unit)) Equal to Revenant of the Depths
                    (Unit-type of (Last created unit)) Equal to Deeplord Revenant
              Then - Actions
                Animation - Play AmbushUnit[TempInteger[1]]'s spell animation
                Set Ambush_VISIBILITY[TempInteger[1]] = 100
                Animation - Change AmbushUnit[TempInteger[1]]'s vertex coloring to (100%, 100%, 100%) with (Real(Ambush_VISIBILITY[TempInteger[1]]))% transparency
                Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 0.01 seconds
              Else - Actions
                Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 1.00 seconds
Ambush EXPIRE
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            AmbushUnit[(Integer A)] Not equal to No unit
            (Remaining time for AmbushTimer[(Integer A)]) Equal to 0.00
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Ambush_VISIBILITY[(Integer A)] Not equal to 0
              Then - Actions
                Set Ambush_VISIBILITY[(Integer A)] = (Ambush_VISIBILITY[(Integer A)] - 10)
                Animation - Change AmbushUnit[(Integer A)]'s vertex coloring to (100%, 100%, 100%) with (Real(Ambush_VISIBILITY[(Integer A)]))% transparency
                Countdown Timer - Start AmbushTimer[(Integer A)] as a One-shot timer that will expire in 0.15 seconds
              Else - Actions
                Unit - Unpause AmbushUnit[(Integer A)]
                Unit - Make AmbushUnit[(Integer A)] Vulnerable
                Animation - Reset AmbushUnit[(Integer A)]'s animation
                Animation - Change AmbushUnit[(Integer A)]'s animation speed to 100.00% of its original speed
                Set AmbushUnit[(Integer A)] = No unit
          Else - Actions
SaveLoad Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set SaveLoad_Items[1] = Claws of Attack +15
    Set SaveLoad_Item_String[1] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set SaveLoad_Items[2] = Crown of Kings +5
    Set SaveLoad_Item_String[2] = ReplaceableTextures\CommandButtons\BTNHelmutPurple.blp
    Set SaveLoad_Items[3] = Kelen's Dagger of Escape
    Set SaveLoad_Item_String[3] = ReplaceableTextures\CommandButtons\BTNDaggerOfEscape.blp
    Set SaveLoad_Items[4] = Mask of Death
    Set SaveLoad_Item_String[4] = ReplaceableTextures\CommandButtons\BTNMaskOfDeath.blp
    Set SaveLoad_Items[5] = Orb of Frost
    Set SaveLoad_Item_String[5] = ReplaceableTextures\CommandButtons\BTNOrbOfFrost.blp
    Set SaveLoad_Items[6] = Ring of Protection +5
    Set SaveLoad_Item_String[6] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set SaveLoad_Items[7] = Amulet of the Wild
    Set SaveLoad_Item_String[7] = ReplaceableTextures\CommandButtons\BTNAmuletOftheWild.blp
    Set SaveLoad_Items[8] = Book of the Dead
    Set SaveLoad_Item_String[8] = ReplaceableTextures\CommandButtons\BTNBookOfTheDead.blp
    Set SaveLoad_Items[9] = Demonic Figurine
    Set SaveLoad_Item_String[9] = ReplaceableTextures\CommandButtons\BTNDoomGuard.blp
    Set SaveLoad_Items[10] = Healing Wards
    Set SaveLoad_Item_String[10] = ReplaceableTextures\CommandButtons\BTNHealingWard.blp
    Set SaveLoad_Items[11] = Health Stone
    Set SaveLoad_Item_String[11] = ReplaceableTextures\CommandButtons\BTNHealthStone.blp
    Set SaveLoad_Items[12] = Ice Shard
    Set SaveLoad_Item_String[12] = ReplaceableTextures\CommandButtons\BTNIceShard.blp
    Set SaveLoad_Items[13] = Inferno Stone
    Set SaveLoad_Item_String[13] = ReplaceableTextures\CommandButtons\BTNInfernalStone.blp
    Set SaveLoad_Items[14] = Mana Stone
    Set SaveLoad_Item_String[14] = ReplaceableTextures\CommandButtons\BTNManaStone.blp
    Set SaveLoad_Items[15] = Potion of Divinity
    Set SaveLoad_Item_String[15] = ReplaceableTextures\CommandButtons\BTNPotionOfDivinity.blp
    Set SaveLoad_Items[16] = Potion of Greater Healing
    Set SaveLoad_Item_String[16] = ReplaceableTextures\CommandButtons\BTNPotionGreen.blp
    Set SaveLoad_Items[17] = Potion of Greater Mana
    Set SaveLoad_Item_String[17] = ReplaceableTextures\CommandButtons\BTNPotionBlueBig.blp
    Set SaveLoad_Items[18] = Potion of Invulnerability
    Set SaveLoad_Item_String[18] = ReplaceableTextures\CommandButtons\BTNGreaterInvulneralbility.blp
    Set SaveLoad_Items[19] = Potion of Omniscience
    Set SaveLoad_Item_String[19] = ReplaceableTextures\CommandButtons\BTNPotionOfOmniscience.blp
    Set SaveLoad_Items[20] = Potion of Restoration
    Set SaveLoad_Item_String[20] = ReplaceableTextures\CommandButtons\BTNPotionOfRestoration.blp
    Set SaveLoad_Items[21] = Red Drake Egg
    Set SaveLoad_Item_String[21] = ReplaceableTextures\CommandButtons\BTNRedDragon.blp
    Set SaveLoad_Items[22] = Replenishment Potion
    Set SaveLoad_Item_String[22] = ReplaceableTextures\CommandButtons\BTNRejuvPotion.blp
    Set SaveLoad_Items[23] = Scroll of Animate Dead
    Set SaveLoad_Item_String[23] = ReplaceableTextures\CommandButtons\BTNSnazzyScrollPurple.blp
    Set SaveLoad_Items[24] = Scroll of Restoration
    Set SaveLoad_Item_String[24] = ReplaceableTextures\CommandButtons\BTNScrollOfHealing.blp
    Set SaveLoad_Items[25] = Scroll of Resurrection
    Set SaveLoad_Item_String[25] = ReplaceableTextures\CommandButtons\BTNSnazzyScroll.blp
    Set SaveLoad_Items[26] = Scroll of the Beast
    Set SaveLoad_Item_String[26] = ReplaceableTextures\CommandButtons\BTNSnazzyScrollGreen.blp
    Set SaveLoad_Items[27] = Sentry Wards
    Set SaveLoad_Item_String[27] = ReplaceableTextures\CommandButtons\BTNSentryWard.blp
    Set SaveLoad_Items[28] = Spiked Collar
    Set SaveLoad_Item_String[28] = ReplaceableTextures\CommandButtons\BTNFelHound.blp
    Set SaveLoad_Items[29] = Stone Token
    Set SaveLoad_Item_String[29] = ReplaceableTextures\CommandButtons\BTNRockGolem.blp
    Set SaveLoad_Items[30] = Talisman of the Wild
    Set SaveLoad_Item_String[30] = ReplaceableTextures\CommandButtons\BTNStone.blp
    Set SaveLoad_Items[31] = Wand of Illusion
    Set SaveLoad_Item_String[31] = ReplaceableTextures\CommandButtons\BTNWand.blp
    Set SaveLoad_Items[32] = Wand of Lightning Shield
    Set SaveLoad_Item_String[32] = ReplaceableTextures\CommandButtons\BTNStarWand.blp
    Set SaveLoad_Items[33] = Wand of Mana Stealing
    Set SaveLoad_Item_String[33] = ReplaceableTextures\CommandButtons\BTNWandOfManaSteal.blp
    Set SaveLoad_Items[34] = Wand of Shadowsight
    Set SaveLoad_Item_String[34] = ReplaceableTextures\CommandButtons\BTNWandOfShadowSight.blp
    Set SaveLoad_Items[35] = Wand of the Wind
    Set SaveLoad_Item_String[35] = ReplaceableTextures\CommandButtons\BTNWandOfCyclone.blp
    Set SaveLoad_Items[36] = Amulet of Recall
    Set SaveLoad_Item_String[36] = ReplaceableTextures\CommandButtons\BTNAmulet.blp
    Set SaveLoad_Items[37] = Ancient Figurine
    Set SaveLoad_Item_String[37] = ReplaceableTextures\CommandButtons\BTNClayFigurine.blp
    Set SaveLoad_Items[38] = Anti-magic Potion
    Set SaveLoad_Item_String[38] = ReplaceableTextures\CommandButtons\BTNSnazzyPotion.blp
    Set SaveLoad_Items[39] = Arcane Scroll
    Set SaveLoad_Item_String[39] = ReplaceableTextures\CommandButtons\BTNBansheeAdept.blp
    Set SaveLoad_Items[40] = Bracer of Agility
    Set SaveLoad_Item_String[40] = ReplaceableTextures\CommandButtons\BTNRingPurple.blp
    Set SaveLoad_Items[41] = Claws of Attack +3
    Set SaveLoad_Item_String[41] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set SaveLoad_Items[42] = Druid Pouch
    Set SaveLoad_Item_String[42] = ReplaceableTextures\CommandButtons\BTNDust.blp
    Set SaveLoad_Items[43] = Dust of Appearance
    Set SaveLoad_Item_String[43] = ReplaceableTextures\CommandButtons\BTNDustOfAppearance.blp
    Set SaveLoad_Items[44] = Essence of Aszune
    Set SaveLoad_Item_String[44] = ReplaceableTextures\CommandButtons\BTNHeartOfAszune.blp
    Set SaveLoad_Items[45] = Frost Wyrm Skull Shield
    Set SaveLoad_Item_String[45] = ReplaceableTextures\CommandButtons\BTNGrimWard.blp
    Set SaveLoad_Items[46] = Gem of True Seeing
    Set SaveLoad_Item_String[46] = ReplaceableTextures\CommandButtons\BTNGem.blp
    Set SaveLoad_Items[47] = Goblin Land Mines
    Set SaveLoad_Item_String[47] = ReplaceableTextures\CommandButtons\BTNGoblinLandMine.blp
    Set SaveLoad_Items[48] = Goblin Night Scope
    Set SaveLoad_Item_String[48] = ReplaceableTextures\CommandButtons\BTNTelescope.blp
    Set SaveLoad_Items[49] = Greater Replenishment Potion
    Set SaveLoad_Item_String[49] = ReplaceableTextures\CommandButtons\BTNGreaterRejuvPotion.blp
    Set SaveLoad_Items[50] = Greater Scroll of Replenishment
    Set SaveLoad_Item_String[50] = ReplaceableTextures\CommandButtons\BTNGreaterRejuvScroll.blp
    Set SaveLoad_Items[51] = Horn of the Clouds
    Set SaveLoad_Item_String[51] = ReplaceableTextures\CommandButtons\BTNHornOfFog.blp
    Set SaveLoad_Items[52] = Ironwood Branch
    Set SaveLoad_Item_String[52] = ReplaceableTextures\CommandButtons\BTNNatureTouchGrow.blp
    Set SaveLoad_Items[53] = Jade Ring
    Set SaveLoad_Item_String[53] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set SaveLoad_Items[54] = Keg of Ale
    Set SaveLoad_Item_String[54] = ReplaceableTextures\CommandButtons\BTNBarrel.blp
    Set SaveLoad_Items[55] = Lesser Replenishment Potion
    Set SaveLoad_Item_String[55] = ReplaceableTextures\CommandButtons\BTNLesserRejuvPotion.blp
    Set SaveLoad_Items[56] = Lesser Scroll of Replenishment
    Set SaveLoad_Item_String[56] = ReplaceableTextures\CommandButtons\BTNLesserRejuvScroll.blp
    Set SaveLoad_Items[57] = Lion's Ring
    Set SaveLoad_Item_String[57] = ReplaceableTextures\CommandButtons\BTNRingLionHead.blp
    Set SaveLoad_Items[58] = Maul of Strength
    Set SaveLoad_Item_String[58] = ReplaceableTextures\CommandButtons\BTNHammer.blp
    Set SaveLoad_Items[59] = Minor Replenishment Potion
    Set SaveLoad_Item_String[59] = ReplaceableTextures\CommandButtons\BTNMinorRejuvPotion.blp
    Set SaveLoad_Items[60] = Necklace of Spell Immunity
    Set SaveLoad_Item_String[60] = ReplaceableTextures\CommandButtons\BTNNecklace.blp
    Set SaveLoad_Items[61] = Orb of Corruption
    Set SaveLoad_Item_String[61] = ReplaceableTextures\CommandButtons\BTNOrbOfCorruption.blp
    Set SaveLoad_Items[62] = Orb of Fire
    Set SaveLoad_Item_String[62] = ReplaceableTextures\CommandButtons\BTNOrbOfFire.blp
    Set SaveLoad_Items[63] = Orb of Kil'jaeden
    Set SaveLoad_Item_String[63] = ReplaceableTextures\CommandButtons\BTNUsedSoulGem.blp
    Set SaveLoad_Items[64] = Orb of Lightning
    Set SaveLoad_Item_String[64] = ReplaceableTextures\CommandButtons\BTNOrbOfLightning.blp
    Set SaveLoad_Items[65] = Orb of Lightning
    Set SaveLoad_Item_String[65] = ReplaceableTextures\CommandButtons\BTNOrbOfLightning.blp
    Set SaveLoad_Items[66] = Orb of Slow
    Set SaveLoad_Item_String[66] = ReplaceableTextures\CommandButtons\BTNOrbofSlowness.blp
    Set SaveLoad_Items[67] = Orb of Venom
    Set SaveLoad_Item_String[67] = ReplaceableTextures\CommandButtons\BTNOrbOfVenom.blp
    Set SaveLoad_Items[68] = Potion of Greater Invisibility
    Set SaveLoad_Item_String[68] = ReplaceableTextures\CommandButtons\BTNGreaterInvisibility.blp
    Set SaveLoad_Items[69] = Potion of Speed
    Set SaveLoad_Item_String[69] = ReplaceableTextures\CommandButtons\BTNPotionRed.blp
    Set SaveLoad_Items[70] = Ring of Protection +1
    Set SaveLoad_Item_String[70] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set SaveLoad_Items[71] = Ring of Superiority
    Set SaveLoad_Item_String[71] = ReplaceableTextures\CommandButtons\BTNGoldRing.blp
    Set SaveLoad_Items[72] = Ring of the Archmagi (version 2)
    Set SaveLoad_Item_String[72] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set SaveLoad_Items[73] = Ring of the Archmagi (version 4)
    Set SaveLoad_Item_String[73] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set SaveLoad_Items[74] = Ring of the Archmagi (version 1)
    Set SaveLoad_Item_String[74] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set SaveLoad_Items[75] = Ring of the Archmagi (version 3)
    Set SaveLoad_Item_String[75] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set SaveLoad_Items[76] = Scepter of Mastery
    Set SaveLoad_Item_String[76] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set SaveLoad_Items[77] = Shadow Orb +1
    Set SaveLoad_Item_String[77] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[78] = Shadow Orb +10
    Set SaveLoad_Item_String[78] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[79] = Shadow Orb +2
    Set SaveLoad_Item_String[79] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[80] = Shadow Orb +3
    Set SaveLoad_Item_String[80] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[81] = Shadow Orb +4
    Set SaveLoad_Item_String[81] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[82] = Shadow Orb +5
    Set SaveLoad_Item_String[82] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[83] = Shadow Orb +6
    Set SaveLoad_Item_String[83] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[84] = Shadow Orb +7
    Set SaveLoad_Item_String[84] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[85] = Shadow Orb +8
    Set SaveLoad_Item_String[85] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[86] = Shadow Orb +9
    Set SaveLoad_Item_String[86] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[87] = Shamanic Totem
    Set SaveLoad_Item_String[87] = ReplaceableTextures\CommandButtons\BTNEntrapmentWard.blp
    Set SaveLoad_Items[88] = Skull Shield
    Set SaveLoad_Item_String[88] = ReplaceableTextures\CommandButtons\BTNGrimWard.blp
    Set SaveLoad_Items[89] = Spider Ring
    Set SaveLoad_Item_String[89] = ReplaceableTextures\CommandButtons\BTNRingVioletSpider.blp
    Set SaveLoad_Items[90] = Staff of Preservation
    Set SaveLoad_Item_String[90] = ReplaceableTextures\CommandButtons\BTNStaffOfPreservation.blp
    Set SaveLoad_Items[91] = Staff of Reanimation
    Set SaveLoad_Item_String[91] = ReplaceableTextures\CommandButtons\BTNWandSkull.blp
    Set SaveLoad_Items[92] = Tiny Altar of Kings
    Set SaveLoad_Item_String[92] = ReplaceableTextures\CommandButtons\BTNAltarOfKings.blp
    Set SaveLoad_Items[93] = Tiny Barracks
    Set SaveLoad_Item_String[93] = ReplaceableTextures\CommandButtons\BTNHumanBarracks.blp
    Set SaveLoad_Items[94] = Tiny Blacksmith
    Set SaveLoad_Item_String[93] = ReplaceableTextures\CommandButtons\BTNBlacksmith.blp
    Set SaveLoad_Items[95] = Tiny Farm
    Set SaveLoad_Item_String[95] = ReplaceableTextures\CommandButtons\BTNFarm.blp
    Set SaveLoad_Items[96] = Tiny Lumber Mill
    Set SaveLoad_Item_String[96] = ReplaceableTextures\CommandButtons\BTNHumanLumberMill.blp
    Set SaveLoad_Items[97] = Totem of Might
    Set SaveLoad_Item_String[97] = ReplaceableTextures\CommandButtons\BTNEntrapmentWard.blp
    Set SaveLoad_Items[98] = Voodoo Doll
    Set SaveLoad_Item_String[98] = ReplaceableTextures\CommandButtons\BTNShadowPact.blp
    Set SaveLoad_Items[99] = Alleria's Flute of Accuracy
    Set SaveLoad_Item_String[99] = ReplaceableTextures\CommandButtons\BTNAlleriaFlute.blp
    Set SaveLoad_Items[100] = Amulet of Spell Shield
    Set SaveLoad_Item_String[100] = ReplaceableTextures\CommandButtons\BTNSpellShieldAmulet.blp
    Set SaveLoad_Items[101] = Ancient Janggo of Endurance
    Set SaveLoad_Item_String[101] = ReplaceableTextures\CommandButtons\BTNJanggo.blp
    Set SaveLoad_Items[102] = Belt of Giant Strength +6
    Set SaveLoad_Item_String[102] = ReplaceableTextures\CommandButtons\BTNBelt.blp
    Set SaveLoad_Items[103] = Boots of Quel'Thalas +6
    Set SaveLoad_Item_String[103] = ReplaceableTextures\CommandButtons\BTNBoots.blp
    Set SaveLoad_Items[104] = Boots of Speed
    Set SaveLoad_Item_String[104] = ReplaceableTextures\CommandButtons\BTNBootsOfSpeed.blp
    Set SaveLoad_Items[105] = Circlet of Nobility
    Set SaveLoad_Item_String[105] = ReplaceableTextures\CommandButtons\BTNCirclet.blp
    Set SaveLoad_Items[106] = Claws of Attack +12
    Set SaveLoad_Item_String[106] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set SaveLoad_Items[107] = Claws of Attack +6
    Set SaveLoad_Item_String[107] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set SaveLoad_Items[108] = Claws of Attack +9
    Set SaveLoad_Item_String[108] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set SaveLoad_Items[109] = Cloak of Flames
    Set SaveLoad_Item_String[109] = ReplaceableTextures\CommandButtons\BTNCloakOfFlames.blp
    Set SaveLoad_Items[110] = Cloak of Shadows
    Set SaveLoad_Item_String[110] = ReplaceableTextures\CommandButtons\BTNCloak.blp
    Set SaveLoad_Items[111] = Crystal Ball
    Set SaveLoad_Item_String[111] = ReplaceableTextures\CommandButtons\BTNCrystalBall.blp
    Set SaveLoad_Items[112] = Diamond of Summoning
    Set SaveLoad_Item_String[112] = ReplaceableTextures\CommandButtons\BTNDarkSummoning.blp
    Set SaveLoad_Items[113] = Gauntlets of Ogre Strength +3
    Set SaveLoad_Item_String[113] = ReplaceableTextures\CommandButtons\BTNGauntletsOfOgrePower.blp
    Set SaveLoad_Items[114] = Gloves of Haste
    Set SaveLoad_Item_String[114] = ReplaceableTextures\CommandButtons\BTNGlove.blp
    Set SaveLoad_Items[115] = Helm of Valor
    Set SaveLoad_Item_String[115] = ReplaceableTextures\CommandButtons\BTNHelmOfValor.blp
    Set SaveLoad_Items[116] = Hood of Cunning
    Set SaveLoad_Item_String[116] = ReplaceableTextures\CommandButtons\BTNHoodOfCunning.blp
    Set SaveLoad_Items[117] = Khadgar's Gem of Health
    Set SaveLoad_Item_String[117] = ReplaceableTextures\CommandButtons\BTNPeriapt1.blp
    Set SaveLoad_Items[118] = Khadgar's Pipe of Insight
    Set SaveLoad_Item_String[118] = ReplaceableTextures\CommandButtons\BTNPipeOfInsight.blp
    Set SaveLoad_Items[119] = Legion Doom-Horn
    Set SaveLoad_Item_String[119] = ReplaceableTextures\CommandButtons\BTNHornOfDoom.blp
    Set SaveLoad_Items[120] = Mantle of Intelligence +3
    Set SaveLoad_Item_String[120] = ReplaceableTextures\CommandButtons\BTNMantleOfIntelligence.blp
    Set SaveLoad_Items[121] = Medallion of Courage
    Set SaveLoad_Item_String[121] = ReplaceableTextures\CommandButtons\BTNMedalionOfCourage.blp
    Set SaveLoad_Items[122] = Orb of Darkness
    Set SaveLoad_Item_String[122] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set SaveLoad_Items[123] = Pendant of Energy
    Set SaveLoad_Item_String[123] = ReplaceableTextures\CommandButtons\BTNPendantOfEnergy.blp
    Set SaveLoad_Items[124] = Pendant of Mana
    Set SaveLoad_Item_String[124] = ReplaceableTextures\CommandButtons\BTNPendantOfMana.blp
    Set SaveLoad_Items[125] = Periapt of Vitality
    Set SaveLoad_Item_String[125] = ReplaceableTextures\CommandButtons\BTNPeriapt.blp
    Set SaveLoad_Items[126] = Ring of Protection +2
    Set SaveLoad_Item_String[126] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set SaveLoad_Items[127] = Ring of Protection +3
    Set SaveLoad_Item_String[127] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set SaveLoad_Items[128] = Ring of Protection +4
    Set SaveLoad_Item_String[128] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set SaveLoad_Items[129] = Ring of Regeneration
    Set SaveLoad_Item_String[129] = ReplaceableTextures\CommandButtons\BTNRingSkull.blp
    Set SaveLoad_Items[130] = Robe of the Magi +6
    Set SaveLoad_Item_String[130] = ReplaceableTextures\CommandButtons\BTNRobeOfTheMagi.blp
    Set SaveLoad_Items[131] = Runed Bracers
    Set SaveLoad_Item_String[131] = ReplaceableTextures\CommandButtons\BTNRunedBracers.blp
    Set SaveLoad_Items[132] = Scourge Bone Chimes
    Set SaveLoad_Item_String[132] = ReplaceableTextures\CommandButtons\BTNBoneChimes.blp
    Set SaveLoad_Items[133] = Slippers of Agility +3
    Set SaveLoad_Item_String[133] = ReplaceableTextures\CommandButtons\BTNSlippersOfAgility.blp
    Set SaveLoad_Items[134] = Sobi Mask
    Set SaveLoad_Item_String[134] = ReplaceableTextures\CommandButtons\BTNSobiMask.blp
    Set SaveLoad_Items[135] = Staff of Silence
    Set SaveLoad_Item_String[135] = ReplaceableTextures\CommandButtons\BTNStaffOfSilence.blp
    Set SaveLoad_Items[136] = Staff of Teleportation
    Set SaveLoad_Item_String[136] = ReplaceableTextures\CommandButtons\BTNStaffOfTeleportation.blp
    Set SaveLoad_Items[137] = Talisman of Evasion
    Set SaveLoad_Item_String[137] = ReplaceableTextures\CommandButtons\BTNTalisman.blp
    Set SaveLoad_Items[138] = The Lion Horn of Stormwind
    Set SaveLoad_Item_String[138] = ReplaceableTextures\CommandButtons\BTNLionHorn.blp
    Set SaveLoad_Items[139] = Warsong Battle Drums
    Set SaveLoad_Item_String[139] = ReplaceableTextures\CommandButtons\BTNDrum.blp
    Set SaveLoad_Items[140] = Clarity Potion
    Set SaveLoad_Item_String[140] = ReplaceableTextures\CommandButtons\BTNPotionOfClarity.blp
    Set SaveLoad_Items[141] = Healing Salve
    Set SaveLoad_Item_String[141] = ReplaceableTextures\CommandButtons\BTNHealingSalve.blp
    Set SaveLoad_Items[142] = Ivory Tower
    Set SaveLoad_Item_String[142] = ReplaceableTextures\CommandButtons\BTNHumanWatchTower.blp
    Set SaveLoad_Items[142] = Lesser Clarity Potion
    Set SaveLoad_Item_String[142] = ReplaceableTextures\CommandButtons\BTNLesserClarityPotion.blp
    Set SaveLoad_Items[143] = Mechanical Critter
    Set SaveLoad_Item_String[143] = ReplaceableTextures\CommandButtons\BTNMechanicalCritter.blp
    Set SaveLoad_Items[144] = Moonstone
    Set SaveLoad_Item_String[144] = ReplaceableTextures\CommandButtons\BTNMoonStone.blp
    Set SaveLoad_Items[145] = Potion of Healing
    Set SaveLoad_Item_String[145] = ReplaceableTextures\CommandButtons\BTNPotionGreenSmall.blp
    Set SaveLoad_Items[146] = Potion of Invisibility
    Set SaveLoad_Item_String[146] = ReplaceableTextures\CommandButtons\BTNPotionGreenSmall.blp
    Set SaveLoad_Items[147] = Potion of Lesser Invulnerability
    Set SaveLoad_Item_String[147] = ReplaceableTextures\CommandButtons\BTNLesserInvulneralbility.blp
    Set SaveLoad_Items[148] = Potion of Mana
    Set SaveLoad_Item_String[148] = ReplaceableTextures\CommandButtons\BTNPotionBlueSmall.blp
    Set SaveLoad_Items[149] = Rod of Necromancy
    Set SaveLoad_Item_String[149] = ReplaceableTextures\CommandButtons\BTNRodOfNecromancy.blp
    Set SaveLoad_Items[150] = Sacrificial Skull
    Set SaveLoad_Item_String[150] = ReplaceableTextures\CommandButtons\BTNSacrificialSkull.blp
    Set SaveLoad_Items[151] = Scroll of Healing
    Set SaveLoad_Item_String[151] = ReplaceableTextures\CommandButtons\BTNScrollOfTownPortal.blp
    Set SaveLoad_Items[152] = Scroll of Mana
    Set SaveLoad_Item_String[152] = ReplaceableTextures\CommandButtons\BTNScrollOfProtection.blp
    Set SaveLoad_Items[153] = Scroll of Protection
    Set SaveLoad_Item_String[153] = ReplaceableTextures\CommandButtons\BTNScroll.blp
    Set SaveLoad_Items[154] = Scroll of Regeneration
    Set SaveLoad_Item_String[154] = ReplaceableTextures\CommandButtons\BTNScrollOfRegenerationGreen.blp
    Set SaveLoad_Items[155] = Scroll of Speed
    Set SaveLoad_Item_String[155] = ReplaceableTextures\CommandButtons\BTNScrollOfHaste.blp
    Set SaveLoad_Items[156] = Scroll of Town Portal
    Set SaveLoad_Item_String[156] = ReplaceableTextures\CommandButtons\BTNScrollUber.blp
    Set SaveLoad_Items[157] = Spider Silk Broach
    Set SaveLoad_Item_String[157] = ReplaceableTextures\CommandButtons\BTNSpiderSilkBroach.blp
    Set SaveLoad_Items[158] = Staff of Negation
    Set SaveLoad_Item_String[158] = ReplaceableTextures\CommandButtons\BTNStaffOfNegation.blp
    Set SaveLoad_Items[159] = Staff of Sanctuary
    Set SaveLoad_Item_String[159] = ReplaceableTextures\CommandButtons\BTNStaffOfSanctuary.blp
    Set SaveLoad_Items[160] = Tiny Castle
    Set SaveLoad_Item_String[160] = ReplaceableTextures\CommandButtons\BTNTinyCastle.blp
    Set SaveLoad_Items[161] = Tiny Great Hall
    Set SaveLoad_Item_String[161] = ReplaceableTextures\CommandButtons\BTNGreathall.blp
    Set SaveLoad_Items[162] = Tome of Retraining
    Set SaveLoad_Item_String[162] = ReplaceableTextures\CommandButtons\BTNTomeOfRetraining.blp
    Set SaveLoad_Items[163] = Vampiric Potion
    Set SaveLoad_Item_String[163] = ReplaceableTextures\CommandButtons\BTNPotionOfVampirism.blp
    Set SaveLoad_Items[164] = Wand of Negation
    Set SaveLoad_Item_String[164] = ReplaceableTextures\CommandButtons\BTNWandSkull.blp
    Set SaveLoad_Items[165] = Wand of Neutralization
    Set SaveLoad_Item_String[165] = ReplaceableTextures\CommandButtons\BTNWandOfNeutralization.blp
    Set SaveLoad_Items_LastIndex = 165
    Set SaveLoad_Alphabet = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz
    Set SaveLoad_CaseSensitive = True
    Set SaveLoad_UsePlayername = False
    Set SaveLoad_Initialized = False
    Set Code = AceHart
    Set Save[1] = 0
    Set SaveCount = 1
    Set Validate = False
    Set SaveLoad_Compress[1] = 0
    Set SaveLoad_Uncompress[1] = 0
    -------- List of Heroes --------
    Set SaveLoad_Heroes[1] = Paladin
    Set SaveLoad_Heroes[2] = Archmage
    Set SaveLoad_Heroes[3] = Mountain King
    Set SaveLoad_Heroes[4] = Blood Mage
    -------- Number of Heroes --------
    Set SaveLoad_Heroes_LastIndex = 4
    -------- List of Abilities --------
    Set SaveLoad_Abilities[1] = Banish
    Set SaveLoad_Abilities[2] = Flame Strike
    Set SaveLoad_Abilities[3] = Phoenix
    Set SaveLoad_Abilities[4] = Siphon Mana
    -------- Number of Abilities --------
    Set SaveLoad_Abilities_LastIndex = 4
SaveLoad Load
  Events
  Conditions
    (Substring((Entered chat string), 1, 6)) Equal to (Matched chat string)
    (Length of (Entered chat string)) Greater than 6
    GameHasStarted Equal to False
  Actions
    Set Code = (Substring((Entered chat string), 7, (Length of (Entered chat string))))
    Custom script: set udg_Validate = SaveLoad_Decode( udg_Code )
    For each (Integer A) from 1 to 20, do (Actions)
      Loop - Actions
        Game - Display to (All players) the text: (String(Save[(Integer A)]))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Validate Equal to False
      Then - Actions
        -------- Invalid code --------
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
        Game - Display to (Player group((Triggering player))) the text: There's some error in this code, sorry.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Code_Is_Active Equal to True
          Then - Actions
            Game - Display to (All players) the text: However, a valid code has already been entered. You may proceed to play the map using that one.
          Else - Actions
        Skip remaining actions
      Else - Actions
    Set SaveCount = 1
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Save[1] Not equal to 1061
        Save[1] Not equal to 1062
      Then - Actions
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[SaveCount])), 1, 2)) Not equal to 10
          Then - Actions
            Game - Display to (All players) for 600.00 seconds the text: This code is from an older release.
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[SaveCount])), 3, 3)) Not equal to 6
              Then - Actions
                Game - Display to (All players) for 600.00 seconds the text: This code is not from the previous map of the campaign.
              Else - Actions
                Game - Display to (All players) for 600.00 seconds the text: Unknown loading error.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Code_Is_Active Equal to True
          Then - Actions
            Game - Display to (All players) the text: However, a valid code has already been entered. You may proceed to play the map using that one.
          Else - Actions
        Skip remaining actions
      Else - Actions
        Sound - Play GoodJob <gen>
        Set Code_Is_Active = True
    -------- --- --------
    -------- Code A --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[1])), 4, 4)) Equal to 1
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            SaveLoad_Security_Number Equal to 0
          Then - Actions
            Set SaveLoad_Security_Number = Save[2]
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                SaveLoad_Security_Number Not equal to Save[2]
              Then - Actions
                Game - Display to (All players) the text: These codes do not belong together.
                Skip remaining actions
              Else - Actions
                Do nothing
        Set Bonus_Strength = 0
        Set Bonus_Intelligence = 0
        Set Bonus_Agility = 0
        Unit - Remove Fan of Knives from Maiev
        Unit - Remove Blink from Maiev
        Unit - Remove Shadow Strike from Maiev
        Unit - Remove Vengeance from Maiev
        Hero - Modify unspent skill points of Maiev: Set to (Hero level of Maiev) points
        Unit - Remove Blade Shield from NewWarden
        Unit - Remove Shift from NewWarden
        Unit - Remove Summon Twilight Guardian from NewWarden
        Unit - Remove Eclipse from NewWarden
        Hero - Modify unspent skill points of NewWarden: Set to (Hero level of NewWarden) points
        For each (Integer A) from 1 to 6, do (Actions)
          Loop - Actions
            Hero - Drop the item from slot (Integer A) of Maiev
            Item - Remove (Last dropped item)
            Hero - Drop the item from slot (Integer A) of NewWarden
            Item - Remove (Last dropped item)
        Set Bonus_Strength = Save[3]
        Set Bonus_Agility = Save[4]
        Set Bonus_Intelligence = Save[5]
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 1, 1)) Equal to 4
          Then - Actions
            Hero - Learn skill for Maiev: Fan of Knives
            Hero - Learn skill for Maiev: Fan of Knives
            Hero - Learn skill for Maiev: Fan of Knives
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[6])), 1, 1)) Equal to 3
              Then - Actions
                Hero - Learn skill for Maiev: Fan of Knives
                Hero - Learn skill for Maiev: Fan of Knives
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Substring((String(Save[6])), 1, 1)) Equal to 2
                  Then - Actions
                    Hero - Learn skill for Maiev: Fan of Knives
                  Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 2, 2)) Equal to 4
          Then - Actions
            Hero - Learn skill for Maiev: Blink
            Hero - Learn skill for Maiev: Blink
            Hero - Learn skill for Maiev: Blink
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[6])), 2, 2)) Equal to 3
              Then - Actions
                Hero - Learn skill for Maiev: Blink
                Hero - Learn skill for Maiev: Blink
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Substring((String(Save[6])), 2, 2)) Equal to 2
                  Then - Actions
                    Hero - Learn skill for Maiev: Blink
                  Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 3, 3)) Equal to 4
          Then - Actions
            Hero - Learn skill for Maiev: Shadow Strike
            Hero - Learn skill for Maiev: Shadow Strike
            Hero - Learn skill for Maiev: Shadow Strike
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[6])), 3, 3)) Equal to 3
              Then - Actions
                Hero - Learn skill for Maiev: Shadow Strike
                Hero - Learn skill for Maiev: Shadow Strike
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Substring((String(Save[6])), 3, 3)) Equal to 2
                  Then - Actions
                    Hero - Learn skill for Maiev: Shadow Strike
                  Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 4, 4)) Equal to 2
          Then - Actions
            Hero - Learn skill for Maiev: Vengeance
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[7])), 1, 1)) Equal to 4
          Then - Actions
            Hero - Learn skill for NewWarden: Blade Shield
            Hero - Learn skill for NewWarden: Blade Shield
            Hero - Learn skill for NewWarden: Blade Shield
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[7])), 1, 1)) Equal to 3
              Then - Actions
                Hero - Learn skill for NewWarden: Blade Shield
                Hero - Learn skill for NewWarden: Blade Shield
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Substring((String(Save[7])), 1, 1)) Equal to 2
                  Then - Actions
                    Hero - Learn skill for NewWarden: Blade Shield
                  Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[7])), 2, 2)) Equal to 4
          Then - Actions
            Hero - Learn skill for NewWarden: Shift
            Hero - Learn skill for NewWarden: Shift
            Hero - Learn skill for NewWarden: Shift
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[7])), 2, 2)) Equal to 3
              Then - Actions
                Hero - Learn skill for NewWarden: Shift
                Hero - Learn skill for NewWarden: Shift
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Substring((String(Save[7])), 2, 2)) Equal to 2
                  Then - Actions
                    Hero - Learn skill for NewWarden: Shift
                  Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[7])), 3, 3)) Equal to 4
          Then - Actions
            Hero - Learn skill for NewWarden: Summon Twilight Guardian
            Hero - Learn skill for NewWarden: Summon Twilight Guardian
            Hero - Learn skill for NewWarden: Summon Twilight Guardian
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[7])), 3, 3)) Equal to 3
              Then - Actions
                Hero - Learn skill for NewWarden: Summon Twilight Guardian
                Hero - Learn skill for NewWarden: Summon Twilight Guardian
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Substring((String(Save[7])), 3, 3)) Equal to 2
                  Then - Actions
                    Hero - Learn skill for NewWarden: Summon Twilight Guardian
                  Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[7])), 4, 4)) Equal to 2
          Then - Actions
            Hero - Learn skill for NewWarden: Eclipse
            Unit - Add Eclipse (Passive) to NewWarden
          Else - Actions
            Unit - Remove Eclipse (Passive) from NewWarden
        Set SaveCount = 8
        Set SaveLoad_Integer = Save[SaveCount]
        For each (Integer A) from 1 to SaveLoad_Integer, do (Actions)
          Loop - Actions
            Set SaveCount = (SaveCount + 1)
            Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
            Hero - Create TempItemType and give it to Maiev
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Or - Any (Conditions) are true
                  Conditions
                    TempItemType Equal to Healing Wards