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. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  5. Dismiss Notice
  6. The Highway to Hell has been laid open. Come along and participate in the 5th Special Effect Contest.
    Dismiss Notice
  7. 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 05 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
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 INIT
End Game SCREEN TEXT
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
AMBUSH
Ambush INIT
Ambush REGISTER
Ambush EXPIRE
XXXXXXXXXXXXXXXXXXXX
Initialization
Initialization
XXXXXXXXXXXXXXXXXXXX
Interlude Cinematic
Interlude Setup
Interlude Cinematic Q
Interlude Cleanup
Intro Cinematic
Intro Setup
Intro Cinematic Q
Intro Cleanup
Gameplay
Midgame Cinematics
Maiev Setup
Maiev Cinematic Q
Maiev Cleanup
--------Destroyed Boat--------
Player Find Boat
Boat Setup
Boat Cinematic Q
Boat Cleanup
Victory Cinematic
Victory Setup
Victory Cinematic Q
Victory Cleanup
XXXXXXXXXXXXXXXXXXXX
Quests
Quest Save Maiev Create
Quest Save Maiev Discover
Quest Save Maiev Completed
---------------------------
Quest Night Elf Fleet Create
Quest Night Elf Fleet Discover
Quest Night Elf Fleet Update 01
Quest Night Elf Fleet Update 02
Quest Night Elf Fleet Completed
---------------------------
Quest Illidan Create
Quest Illidan Discover
Quest Illidan Completed
---------------------------
Mission Failed Maievs BaseDead
Mission Failed BaseDead
Mission Failed TyrandeDead
Mission Failed FurionDead
Save Maiev Quest
Player Meets Maiev
Player Saves Maiev
Quest Save Maiev Discover Q
Quest Save Maiev Completed Q
Night Elf Fleet Quest
--------Fleet Reinforcement--------
Fleet Reinforcement Check
Fleet Reinforcement 01
Fleet Reinforcement 02
Fleet Reinforcement 03
--------Quest Update Q--------
Fleet Quest Update Check
Fleet Quest Update 01 Q
Fleet Quest Update 02 Q
Fleet Quest Update 03 Q
--------Night Elf Ships Docks--------
Ship 1 Murgel Reached
Ship 1 Murgel Dead
Ship 1 Continual Move Order
----
Ship 2 Skeletons Reached
Ship 2 Skeletons Dead
Ship 2 Continual Move Order
----
Ship 3 Sea Elemental Reached
Ship 3 Sea Elemental Dead
Ship 3 Continual Move Order
----
Ship 1 Docks
Ship 2 Docks
Ship 3 Docks
--------Creep Guarding Beach--------
Ship 1 Murgel Attack 01
Ship 1 Murgel Attack 02
Ship 2 Skeleton Create
Ship 3 Sea Elemental Create
--------Pathing Blockers--------
Ship 01 Blockers
Ship 02 Blockers
Ship 03 Blockers
--------Ships Sail Away--------
Ship 01 Sail Away
Ship 02 Sail Away
Ship 03 Sail Away
-------Birth Animations-----
Ping Night Elf Fleet Quest
Create Night Elf Fleet Ping Timer
Ping Timer Expires
XXXXXXXXXXXXXXXXXXXX
Storm
The Storm
Occasional Lightning
Scripted Events
Raise Dead Special
--------Revenant--------
Revenant Chamber A
Revenant Chamber B
--------Naga--------
Naga Group A
Naga Group A Intro
Naga Group A Intro Q
Naga Group B
Naga Group C
--------Sea Giants--------
Sea Giants Attack Move
Sea Giants Discovered
Sea Giants Dead
Sea Giants Roam Group 01
Sea Giants Roam 01
Sea Giants Roam Group 02
Sea Giants Roam 02
Sea Giants Roam 03
Sea Giant Swim 01
Sea Giant Swim 02
Sea Giant Swim 03
--------Murgel-------
Murgel Roam 01
Murgel Roam 02
--------Goldmine-------
Entangled Goldmine
Entangled Goldmine Q
Entangled Goldmine True
-------Naga Base-------
Naga Base Discover
Naga Base Discover Q
--------Turtle-------
--------Sea Elemental Secret-------
Create Sea Elemental
--------Golem--------
Golem Wake Up
Voice Overs
--------Maieve Base Warnings-------
Maiev Attacked
Maiev Attacked 1 Q
Maiev Attacked 2 Q
Maiev Attacked 3 Q
Maiev Attacked 4 Q
--------Illidian Confrontation-------
Tyrande Discovers Illidian
Tyrande Discovers Illidian Q
Maiev Discovers Illidian
Maiev Discovers Illidian Q
XXXXXXXXXXXXXXXXXXXX
Naga Buildings
Illidans Base
Gray Base
Hints
MyHint Q
-------Item Picked Up-------
Gold Coin
Gold Coin Q
Hint Goldmine Q
Rescue Fleet Units
New Unit Mountain Giants
Level 10 Heroes Q
AI
Send AI Command
Start AI
AI Resources
XXXXXXXXXXXXXXXXXXXX
Victory Defeat
Tyrande Dies
Furion Dies
Defeat Units Dead
Victory Illidans Base Destroyed
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
AP1_Player player No
APG1_Player force No Force01
ArriveSkipped boolean No
BeachLandingParty group No
BoatSkipped boolean No
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
CameraMoved boolean No
CameraPoint location No
CameraReturnPoint location No
Cin_DeathReturnSpot location No
Cin_DeathUnit unit No
Cinematic_NAME string No
Cinematic_Preparation_Finished boolean 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
COP01 unit No
COP02 unit No
COP03 unit No
CreateAmbush_Angle real No
CreateAmbush_GoToRegion rect No
CreateAmbush_Group group No
CreateAmbush_Region rect No
CreateAmbush_Type unitcode No
DeathGroup group No
DeathHint integer No
DeathSkipped boolean No
DeathTimer timer No
Difficulty string No
DruidCin unit No
EMPTY itemcode No
EndNagaUnit01 unit No
EndNagaUnit02 unit No
EndNagaUnit03 unit No
EndNagaUnit04 unit No
EndNightElfGroup group No
ExpDisabledForMaiev boolean No false
FleetQuestDiscovered boolean No
Furion unit No UnitNull
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
GoldmineEntangled boolean No
GolemGroupA group No
HiddenUnits group No
Illidian unit No
InCinematic boolean No false
InCombat boolean No false
InFlashback boolean No
InterludeSkipped boolean No
IntroNagaGroupA group No
IntroNagaGroupB group 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
LadySerpentra unit No
LightningTimer timer No
Maiden_OWNER unit Yes
Maiden_TIMER timer Yes
Maiden_UPDATE timer Yes
Maiev unit No UnitNull
MaievAttackedMessage integer No
MaievMeetsIllidian boolean No
MaievReturnSpot location No
MaievSkipped boolean No false
MalfurionCin unit No
MidLevelComplete 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
MurgelGroup group No
MurgelRandomUnit unit No
MurgelRoamTemp group No
Mutliboard_Hero_Statistics multiboard No
NagaBuildings group No
NagaGroupA group No
NagalGroupB group No
NagalGroupC group No
NagaShip unit No
NewWarden unit No
NewWardenReturnSpot location No
NightElfFleet integer No
NightElfFleetTimer timer No
Owl_TREE destructable Yes
P4_Naga_Purple player No Player03
P6_Naga_Orange player No Player05
P9_Naga_Gray player No Player08
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
QuestHeroesDie questitem No
QuestIllidian quest No
QuestIllidianReq questitem No
QuestNightElfFleet quest No
QuestNightElfFleetReq01 questitem No
QuestNightElfFleetReq02 questitem No
QuestNightElfFleetReq03 questitem No
QuestSaveMaiev quest No
QuestSaveWarderReq questitem No
RandomSound integer No
Research_Name_1 string Yes
Research_Name_2 string Yes
Research_Name_3 string Yes
Research_Type techcode Yes
RevenantGroupA group No
RevenantGroupB group No
RevivalAltar unit No UnitNull
RevivalHero unit No UnitNull
RevivalReturnSpot location No
RevivalSpot location No
Runner unit No
RunnerCin unit 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
ScoutOwl unit No
SeaElementalGroupA group No
SeaElementalGroupB group No
SeaGiantGroupA group No
SeaGiantGroupB group No
SeaGiantRandomUnit01 unit No
SeaGiantRandomUnit02 unit No
SeaGiantRandomUnit03 unit No
SeaGiantRoam01 group No
SeaGiantRoam02 group No
SeaGiantRoamTemp01 group No
SeaGiantRoamTemp02 group No
SeaGiantRoamTemp03 group No
SelectedUnits group No
Shadow_Orb_OWNER unit Yes
Shadow_Orb_OWNER_INTEGER integer Yes
Shadow_Orb_OWNER_ORB item Yes
Shadow_Orb_TIMER timer Yes
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
Ship01Check boolean No
Ship02Check boolean No
Ship03Check boolean No
Ship1Move boolean No
Ship2Move boolean No
Ship3Move boolean No
ShipAmbushDone boolean Yes
SkeletonGroupA group No
TempGroup group Yes
TempIcon string Yes
TempInteger integer Yes
TempItem item No
TempItemType itemcode No
TempPoint location Yes
TempText string Yes
TempUnit unit Yes
TempVisModifier fogmodifier Yes
Timer_MaievAttacked timer No
TreesMaievBase group No
Twilight_FOLK group Yes
Twilight_TIMER timer Yes
Twilight_UNIT unit Yes
Tyrande unit No UnitNull
TyrandeCin unit No
TyrandeMeetsIllidian boolean No
TyrandeReturnSpot location No
Under_Construction group No
Validate boolean No
VictoryBear unit No
VictoryGiant unit No
VictorySkipped boolean No false
VisCOP01 fogmodifier No
VisCOP02 fogmodifier No
VisCOP03 fogmodifier No
Visibility01 fogmodifier No
VisibilityNagaBase fogmodifier No
Weather weathereffect 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 VariableSet TempPoint[1] = (Position of (Casting unit))
    Set VariableSet 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 VariableSet 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 VariableSet TempPoint[2] = (Target point of ability being cast)
            Unit - Move (Picked unit) instantly to TempPoint[2]
            Custom script: call RemoveLocation(udg_TempPoint[2])
            Set VariableSet 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 VariableSet CONSTANT_Glaive_LIMIT = 10
    Set VariableSet CONSTANT_Glaive_COUNT_MIN[1] = 3
    Set VariableSet CONSTANT_Glaive_COUNT_MIN[2] = 4
    Set VariableSet CONSTANT_Glaive_COUNT_MIN[3] = 5
    Set VariableSet CONSTANT_Glaive_COUNT_MAX[1] = 3
    Set VariableSet CONSTANT_Glaive_COUNT_MAX[2] = 4
    Set VariableSet CONSTANT_Glaive_COUNT_MAX[3] = 5
    Set VariableSet CONSTANT_Glaive_SPEED_PER_SEC[1] = 500.00
    Set VariableSet CONSTANT_Glaive_SPEED_PER_SEC[2] = 600.00
    Set VariableSet CONSTANT_Glaive_SPEED_PER_SEC[3] = 700.00
    Set VariableSet CONSTANT_Glaive_ORBITRANGE[1] = 150.00
    Set VariableSet CONSTANT_Glaive_ORBITRANGE[2] = 150.00
    Set VariableSet CONSTANT_Glaive_ORBITRANGE[3] = 150.00
    Set VariableSet CONSTANT_Glaive_INTERVAL[1] = 0.04
    Set VariableSet CONSTANT_Glaive_INTERVAL[2] = 0.04
    Set VariableSet CONSTANT_Glaive_INTERVAL[3] = 0.04
    Set VariableSet CONSTANT_Glaive_DURATION[1] = 10.00
    Set VariableSet CONSTANT_Glaive_DURATION[2] = 10.00
    Set VariableSet CONSTANT_Glaive_DURATION[3] = 10.00
    Set VariableSet CONSTANT_Glaive_DAMAGE_RANGE[1] = 100.00
    Set VariableSet CONSTANT_Glaive_DAMAGE_RANGE[2] = 100.00
    Set VariableSet CONSTANT_Glaive_DAMAGE_RANGE[3] = 100.00
    Set VariableSet CONSTANT_Glaive_DAMAGE[1] = 15.00
    Set VariableSet CONSTANT_Glaive_DAMAGE[2] = 15.00
    Set VariableSet CONSTANT_Glaive_DAMAGE[3] = 15.00
    Set VariableSet CONSTANT_Glaive_EFFECT_01[1] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_01[2] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_01[3] = Abilities\Weapons\SentinelMissile\SentinelMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[2] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[3] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_EFFECT_02[1] = Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
    Set VariableSet CONSTANT_Glaive_HIT_EFFECT_01[1] = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
    Set VariableSet CONSTANT_Glaive_HIT_EFFECT_01[2] = Abilities\Weapons\HydraliskImpact\HydraliskImpact.mdl
    Set VariableSet 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 VariableSet 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 VariableSet 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 VariableSet 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 VariableSet 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 VariableSet 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 VariableSet Glaive_UNIT[TempInteger[2]] = (Last created unit)
        Set VariableSet Glaive_LEVEL[TempInteger[2]] = (Level of Blade Shield for (Casting unit))
        Set VariableSet Glaive_TARGET[TempInteger[2]] = (Target unit of ability being cast)
        Set VariableSet Glaive_OWNER[TempInteger[2]] = (Casting unit)
        Set VariableSet Glaive_ANGLE[TempInteger[2]] = ((Real((Integer A))) x (360.00 / (Real(TempInteger[1]))))
        Set VariableSet 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 (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_01[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet 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 (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_02[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet 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 (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_03[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet 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 (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_04[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet 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 (attachpoint) of Glaive_UNIT[TempInteger[2]] using CONSTANT_Glaive_EFFECT_05[Glaive_LEVEL[TempInteger[2]]]
            Set VariableSet 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 VariableSet 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 VariableSet 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 VariableSet Glaive_TARGET[(Integer A)] = Glaive_TARGET_HIDDEN[(Integer A)]
                Set VariableSet 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 VariableSet Glaive_OWNER[(Integer A)] = Glaive_OWNER_HIDDEN[(Integer A)]
                Set VariableSet 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 VariableSet TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set VariableSet 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 VariableSet TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
            Set VariableSet 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 (attachpoint) 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 (attachpoint) 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 (attachpoint) 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 (attachpoint) 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 (attachpoint) 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 VariableSet TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set VariableSet TempPoint[2] = (Position of Glaive_TARGET[(Integer A)])
                Set VariableSet TempPoint[3] = (TempPoint[2] offset by CONSTANT_Glaive_ORBITRANGE[Glaive_LEVEL[(Integer A)]] towards Glaive_ANGLE[(Integer A)] degrees.)
                Set VariableSet 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 VariableSet 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 VariableSet TempPoint[1] = (Position of Glaive_TARGET[(Integer A)])
                Set VariableSet 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 VariableSet Glaive_STATE[(Integer A)] = AWAY
                      Else - Actions
                  Else - Actions
                    Set VariableSet 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 VariableSet TempPoint[1] = (Position of Glaive_UNIT[(Integer A)])
                Set VariableSet 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 VariableSet Glaive_UNIT[(Integer A)] = No unit
                    Set VariableSet Glaive_TARGET[(Integer A)] = No unit
                    Set VariableSet Glaive_OWNER[(Integer A)] = No unit
                    Set VariableSet Glaive_ANGLE[(Integer A)] = 0.00
                    Set VariableSet Glaive_STATE[(Integer A)] =
                    Set VariableSet Glaive_LEVEL[(Integer A)] = 0
                  Else - Actions
                    Set VariableSet 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 VariableSet Glaive_UNIT[(Integer A)] = No unit
                Set VariableSet Glaive_TARGET[(Integer A)] = No unit
                Set VariableSet Glaive_OWNER[(Integer A)] = No unit
                Set VariableSet Glaive_ANGLE[(Integer A)] = 0.00
                Set VariableSet Glaive_STATE[(Integer A)] =
                Set VariableSet 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 VariableSet 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 VariableSet Glaive_UNIT[(Integer A)] = No unit
                Set VariableSet Glaive_TARGET[(Integer A)] = No unit
                Set VariableSet Glaive_OWNER[(Integer A)] = No unit
                Set VariableSet Glaive_ANGLE[(Integer A)] = 0.00
                Set VariableSet Glaive_STATE[(Integer A)] =
                Set VariableSet Glaive_LEVEL[(Integer A)] = 0
              Else - Actions
                Set VariableSet 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 VariableSet Glaive_TARGET[(Integer A)] = (Transporting unit)
            Set VariableSet 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 VariableSet Glaive_OWNER[(Integer A)] = (Transporting unit)
            Set VariableSet 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 VariableSet 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 VariableSet 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 VariableSet Shift_OWNER[TempInteger[1]] = (Casting unit)
        Set VariableSet 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 VariableSet 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 VariableSet 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 VariableSet 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 VariableSet Shift_OWNER[(Integer A)] = No unit
            Set VariableSet 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 VariableSet 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 VariableSet TempInteger[1] = (Integer A)
          Else - Actions
    Set VariableSet Maiden_OWNER[TempInteger[1]] = (Casting unit)
    Special Effect - Create a special effect attached to the origin (attachpoint) 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 VariableSet 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 VariableSet 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 VariableSet 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 (attachpoint) 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 VariableSet 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 VariableSet TempInteger[1] = (Integer A)
          Else - Actions
    Set VariableSet 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 VariableSet TempInteger[1] = (Integer A)
              Else - Actions
        Set VariableSet Maiden_OWNER[TempInteger[1]] = (Summoning unit)
        Special Effect - Create a special effect attached to the origin (attachpoint) 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 VariableSet 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
                ((Dying unit) is Summoned) Equal to False
                ((Killing unit) belongs to an ally of (Owner of (Dying unit)).) Equal to False
          Then - Actions
            Set VariableSet 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 Animate Dead (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 (Neutral Hostile) 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 VariableSet 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 VariableSet Twilight_UNIT[(Integer A)] = No unit
            Set VariableSet 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 VariableSet 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 VariableSet Shadow_Orb_TYPE[1] = Shadow Orb +1
    Set VariableSet Shadow_Orb_TYPE[2] = Shadow Orb +2
    Set VariableSet Shadow_Orb_TYPE[3] = Shadow Orb +3
    Set VariableSet Shadow_Orb_TYPE[4] = Shadow Orb +4
    Set VariableSet Shadow_Orb_TYPE[5] = Shadow Orb +5
    Set VariableSet Shadow_Orb_TYPE[6] = Shadow Orb +6
    Set VariableSet Shadow_Orb_TYPE[7] = Shadow Orb +7
    Set VariableSet Shadow_Orb_TYPE[8] = Shadow Orb +8
    Set VariableSet Shadow_Orb_TYPE[9] = Shadow Orb +9
    Set VariableSet 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 VariableSet 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 VariableSet TempInteger[(Integer A)] = (Integer B)
                Set VariableSet TempInteger[7] = (TempInteger[7] + 1)
                Set VariableSet 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 VariableSet 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 VariableSet CONSTANT_Burn_LOOP = 0.06
    Set VariableSet CONSTANT_Burn_DAMAGE = 300.00
    Set VariableSet CONSTANT_Burn_AREA_OF_EFFECT = 200.00
    Set VariableSet CONSTANT_Burn_RANGE = 1200.00
    Set VariableSet CONSTANT_Burn_VELOCITY = 60.00
    Set VariableSet CONSTANT_Burn_LIMIT = 10
    -------- r --------
    Set VariableSet CONSTANT_Burn_BURN_DAMAGE = 300.00
    Set VariableSet CONSTANT_Burn_BURN_TIME = 15.00
    Set VariableSet CONSTANT_Burn_BURN_LOOP = 0.25
    Set VariableSet CONSTANT_Burn_BURN_EFFECT = Abilities\Spells\Other\BreathOfFire\BreathOfFireDamage.mdl
    Set VariableSet CONSTANT_Burn_BURN_LIMIT = 20
    -------- r --------
    Set VariableSet CONSTANT_Burn_KNOCKBACK = 300.00
    Set VariableSet CONSTANT_Burn_KNOCKBACK_TIME = 0.80
    Set VariableSet CONSTANT_Burn_KNOCKBACK_LOOP = 0.04
    Set VariableSet 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 Implode
  Actions
    Set VariableSet 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 VariableSet TempInteger[1] = (Integer A)
          Else - Actions
    Set VariableSet Burn_OWNER[TempInteger[1]] = (Casting unit)
    Set VariableSet TempPoint[1] = (Position of (Casting unit))
    Set VariableSet 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 VariableSet 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 VariableSet Burn_DISTANCE[TempInteger[1]] = 0.00
    Set VariableSet 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 VariableSet 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 VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
            Set VariableSet 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 VariableSet 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 VariableSet 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 VariableSet Burn_BURN_UNIT[TempInteger[1]] = (Picked unit)
                        Set VariableSet Burn_BURN_DAMAGE_SOUCE[TempInteger[1]] = Burn_OWNER[(Integer A)]
                        Special Effect - Create a special effect attached to the chest (attachpoint) of Burn_BURN_UNIT[TempInteger[1]] using CONSTANT_Burn_BURN_EFFECT
                        Set VariableSet 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 VariableSet 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 VariableSet 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 VariableSet 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 VariableSet Burn_KNOCKBACK_UNIT[TempInteger[1]] = (Picked unit)
                        Set VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                        Set VariableSet TempPoint[2] = (Position of (Picked unit))
                        Set VariableSet 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 VariableSet 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 VariableSet Burn_DISTANCE[(Integer A)] = CONSTANT_Burn_RANGE
                    Set VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                    Set VariableSet 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 VariableSet Burn_UNIT[(Integer A)] = No unit
                    Set VariableSet Burn_OWNER[(Integer A)] = No unit
                    Set VariableSet 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 VariableSet TempPoint[1] = (Position of Burn_UNIT[(Integer A)])
                Set VariableSet 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 VariableSet 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 VariableSet Burn_BURN_DAMAGE_SOUCE[(Integer A)] = No unit
            Set VariableSet 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 VariableSet TempPoint[1] = (Position of Burn_KNOCKBACK_UNIT[(Integer A)])
            Set VariableSet 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 VariableSet Burn_KNOCKBACK_UNIT[(Integer A)] = No unit
            Set VariableSet Burn_KNOCKBACK_ANGLE[(Integer A)] = 0.00
            Unit Group - Remove Burn_KNOCKBACK_UNIT[(Integer A)] from Burn_KNOCKBACK_GROUP.
SaveLoad Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet SaveLoad_Items[1] = Claws of Attack +15
    Set VariableSet SaveLoad_Item_String[1] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[2] = Crown of Kings +5
    Set VariableSet SaveLoad_Item_String[2] = ReplaceableTextures\CommandButtons\BTNHelmutPurple.blp
    Set VariableSet SaveLoad_Items[3] = Kelen's Dagger of Escape
    Set VariableSet SaveLoad_Item_String[3] = ReplaceableTextures\CommandButtons\BTNDaggerOfEscape.blp
    Set VariableSet SaveLoad_Items[4] = Mask of Death
    Set VariableSet SaveLoad_Item_String[4] = ReplaceableTextures\CommandButtons\BTNMaskOfDeath.blp
    Set VariableSet SaveLoad_Items[5] = Orb of Frost
    Set VariableSet SaveLoad_Item_String[5] = ReplaceableTextures\CommandButtons\BTNOrbOfFrost.blp
    Set VariableSet SaveLoad_Items[6] = Ring of Protection +5
    Set VariableSet SaveLoad_Item_String[6] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[7] = Amulet of the Wild
    Set VariableSet SaveLoad_Item_String[7] = ReplaceableTextures\CommandButtons\BTNAmuletOftheWild.blp
    Set VariableSet SaveLoad_Items[8] = Book of the Dead
    Set VariableSet SaveLoad_Item_String[8] = ReplaceableTextures\CommandButtons\BTNBookOfTheDead.blp
    Set VariableSet SaveLoad_Items[9] = Demonic Figurine
    Set VariableSet SaveLoad_Item_String[9] = ReplaceableTextures\CommandButtons\BTNDoomGuard.blp
    Set VariableSet SaveLoad_Items[10] = Healing Wards
    Set VariableSet SaveLoad_Item_String[10] = ReplaceableTextures\CommandButtons\BTNHealingWard.blp
    Set VariableSet SaveLoad_Items[11] = Health Stone
    Set VariableSet SaveLoad_Item_String[11] = ReplaceableTextures\CommandButtons\BTNHealthStone.blp
    Set VariableSet SaveLoad_Items[12] = Ice Shard
    Set VariableSet SaveLoad_Item_String[12] = ReplaceableTextures\CommandButtons\BTNIceShard.blp
    Set VariableSet SaveLoad_Items[13] = Inferno Stone
    Set VariableSet SaveLoad_Item_String[13] = ReplaceableTextures\CommandButtons\BTNInfernalStone.blp
    Set VariableSet SaveLoad_Items[14] = Mana Stone
    Set VariableSet SaveLoad_Item_String[14] = ReplaceableTextures\CommandButtons\BTNManaStone.blp
    Set VariableSet SaveLoad_Items[15] = Potion of Divinity
    Set VariableSet SaveLoad_Item_String[15] = ReplaceableTextures\CommandButtons\BTNPotionOfDivinity.blp
    Set VariableSet SaveLoad_Items[16] = Potion of Greater Healing
    Set VariableSet SaveLoad_Item_String[16] = ReplaceableTextures\CommandButtons\BTNPotionGreen.blp
    Set VariableSet SaveLoad_Items[17] = Potion of Greater Mana
    Set VariableSet SaveLoad_Item_String[17] = ReplaceableTextures\CommandButtons\BTNPotionBlueBig.blp
    Set VariableSet SaveLoad_Items[18] = Potion of Invulnerability
    Set VariableSet SaveLoad_Item_String[18] = ReplaceableTextures\CommandButtons\BTNGreaterInvulneralbility.blp
    Set VariableSet SaveLoad_Items[19] = Potion of Omniscience
    Set VariableSet SaveLoad_Item_String[19] = ReplaceableTextures\CommandButtons\BTNPotionOfOmniscience.blp
    Set VariableSet SaveLoad_Items[20] = Potion of Restoration
    Set VariableSet SaveLoad_Item_String[20] = ReplaceableTextures\CommandButtons\BTNPotionOfRestoration.blp
    Set VariableSet SaveLoad_Items[21] = Red Drake Egg
    Set VariableSet SaveLoad_Item_String[21] = ReplaceableTextures\CommandButtons\BTNRedDragon.blp
    Set VariableSet SaveLoad_Items[22] = Replenishment Potion
    Set VariableSet SaveLoad_Item_String[22] = ReplaceableTextures\CommandButtons\BTNRejuvPotion.blp
    Set VariableSet SaveLoad_Items[23] = Scroll of Animate Dead
    Set VariableSet SaveLoad_Item_String[23] = ReplaceableTextures\CommandButtons\BTNSnazzyScrollPurple.blp
    Set VariableSet SaveLoad_Items[24] = Scroll of Restoration
    Set VariableSet SaveLoad_Item_String[24] = ReplaceableTextures\CommandButtons\BTNScrollOfHealing.blp
    Set VariableSet SaveLoad_Items[25] = Scroll of Resurrection
    Set VariableSet SaveLoad_Item_String[25] = ReplaceableTextures\CommandButtons\BTNSnazzyScroll.blp
    Set VariableSet SaveLoad_Items[26] = Scroll of the Beast
    Set VariableSet SaveLoad_Item_String[26] = ReplaceableTextures\CommandButtons\BTNSnazzyScrollGreen.blp
    Set VariableSet SaveLoad_Items[27] = Sentry Wards
    Set VariableSet SaveLoad_Item_String[27] = ReplaceableTextures\CommandButtons\BTNSentryWard.blp
    Set VariableSet SaveLoad_Items[28] = Spiked Collar
    Set VariableSet SaveLoad_Item_String[28] = ReplaceableTextures\CommandButtons\BTNFelHound.blp
    Set VariableSet SaveLoad_Items[29] = Stone Token
    Set VariableSet SaveLoad_Item_String[29] = ReplaceableTextures\CommandButtons\BTNRockGolem.blp
    Set VariableSet SaveLoad_Items[30] = Talisman of the Wild
    Set VariableSet SaveLoad_Item_String[30] = ReplaceableTextures\CommandButtons\BTNStone.blp
    Set VariableSet SaveLoad_Items[31] = Wand of Illusion
    Set VariableSet SaveLoad_Item_String[31] = ReplaceableTextures\CommandButtons\BTNWand.blp
    Set VariableSet SaveLoad_Items[32] = Wand of Lightning Shield
    Set VariableSet SaveLoad_Item_String[32] = ReplaceableTextures\CommandButtons\BTNStarWand.blp
    Set VariableSet SaveLoad_Items[33] = Wand of Mana Stealing
    Set VariableSet SaveLoad_Item_String[33] = ReplaceableTextures\CommandButtons\BTNWandOfManaSteal.blp
    Set VariableSet SaveLoad_Items[34] = Wand of Shadowsight
    Set VariableSet SaveLoad_Item_String[34] = ReplaceableTextures\CommandButtons\BTNWandOfShadowSight.blp
    Set VariableSet SaveLoad_Items[35] = Wand of the Wind
    Set VariableSet SaveLoad_Item_String[35] = ReplaceableTextures\CommandButtons\BTNWandOfCyclone.blp
    Set VariableSet SaveLoad_Items[36] = Amulet of Recall
    Set VariableSet SaveLoad_Item_String[36] = ReplaceableTextures\CommandButtons\BTNAmulet.blp
    Set VariableSet SaveLoad_Items[37] = Ancient Figurine
    Set VariableSet SaveLoad_Item_String[37] = ReplaceableTextures\CommandButtons\BTNClayFigurine.blp
    Set VariableSet SaveLoad_Items[38] = Anti-magic Potion
    Set VariableSet SaveLoad_Item_String[38] = ReplaceableTextures\CommandButtons\BTNSnazzyPotion.blp
    Set VariableSet SaveLoad_Items[39] = Arcane Scroll
    Set VariableSet SaveLoad_Item_String[39] = ReplaceableTextures\CommandButtons\BTNBansheeAdept.blp
    Set VariableSet SaveLoad_Items[40] = Bracer of Agility
    Set VariableSet SaveLoad_Item_String[40] = ReplaceableTextures\CommandButtons\BTNRingPurple.blp
    Set VariableSet SaveLoad_Items[41] = Claws of Attack +3
    Set VariableSet SaveLoad_Item_String[41] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[42] = Druid Pouch
    Set VariableSet SaveLoad_Item_String[42] = ReplaceableTextures\CommandButtons\BTNDust.blp
    Set VariableSet SaveLoad_Items[43] = Dust of Appearance
    Set VariableSet SaveLoad_Item_String[43] = ReplaceableTextures\CommandButtons\BTNDustOfAppearance.blp
    Set VariableSet SaveLoad_Items[44] = Essence of Aszune
    Set VariableSet SaveLoad_Item_String[44] = ReplaceableTextures\CommandButtons\BTNHeartOfAszune.blp
    Set VariableSet SaveLoad_Items[45] = Frost Wyrm Skull Shield
    Set VariableSet SaveLoad_Item_String[45] = ReplaceableTextures\CommandButtons\BTNGrimWard.blp
    Set VariableSet SaveLoad_Items[46] = Gem of True Seeing
    Set VariableSet SaveLoad_Item_String[46] = ReplaceableTextures\CommandButtons\BTNGem.blp
    Set VariableSet SaveLoad_Items[47] = Goblin Land Mines
    Set VariableSet SaveLoad_Item_String[47] = ReplaceableTextures\CommandButtons\BTNGoblinLandMine.blp
    Set VariableSet SaveLoad_Items[48] = Goblin Night Scope
    Set VariableSet SaveLoad_Item_String[48] = ReplaceableTextures\CommandButtons\BTNTelescope.blp
    Set VariableSet SaveLoad_Items[49] = Greater Replenishment Potion
    Set VariableSet SaveLoad_Item_String[49] = ReplaceableTextures\CommandButtons\BTNGreaterRejuvPotion.blp
    Set VariableSet SaveLoad_Items[50] = Greater Scroll of Replenishment
    Set VariableSet SaveLoad_Item_String[50] = ReplaceableTextures\CommandButtons\BTNGreaterRejuvScroll.blp
    Set VariableSet SaveLoad_Items[51] = Horn of the Clouds
    Set VariableSet SaveLoad_Item_String[51] = ReplaceableTextures\CommandButtons\BTNHornOfFog.blp
    Set VariableSet SaveLoad_Items[52] = Ironwood Branch
    Set VariableSet SaveLoad_Item_String[52] = ReplaceableTextures\CommandButtons\BTNNatureTouchGrow.blp
    Set VariableSet SaveLoad_Items[53] = Jade Ring
    Set VariableSet SaveLoad_Item_String[53] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[54] = Keg of Ale
    Set VariableSet SaveLoad_Item_String[54] = ReplaceableTextures\CommandButtons\BTNBarrel.blp
    Set VariableSet SaveLoad_Items[55] = Lesser Replenishment Potion
    Set VariableSet SaveLoad_Item_String[55] = ReplaceableTextures\CommandButtons\BTNLesserRejuvPotion.blp
    Set VariableSet SaveLoad_Items[56] = Lesser Scroll of Replenishment
    Set VariableSet SaveLoad_Item_String[56] = ReplaceableTextures\CommandButtons\BTNLesserRejuvScroll.blp
    Set VariableSet SaveLoad_Items[57] = Lion's Ring
    Set VariableSet SaveLoad_Item_String[57] = ReplaceableTextures\CommandButtons\BTNRingLionHead.blp
    Set VariableSet SaveLoad_Items[58] = Maul of Strength
    Set VariableSet SaveLoad_Item_String[58] = ReplaceableTextures\CommandButtons\BTNHammer.blp
    Set VariableSet SaveLoad_Items[59] = Minor Replenishment Potion
    Set VariableSet SaveLoad_Item_String[59] = ReplaceableTextures\CommandButtons\BTNMinorRejuvPotion.blp
    Set VariableSet SaveLoad_Items[60] = Necklace of Spell Immunity
    Set VariableSet SaveLoad_Item_String[60] = ReplaceableTextures\CommandButtons\BTNNecklace.blp
    Set VariableSet SaveLoad_Items[61] = Orb of Corruption
    Set VariableSet SaveLoad_Item_String[61] = ReplaceableTextures\CommandButtons\BTNOrbOfCorruption.blp
    Set VariableSet SaveLoad_Items[62] = Orb of Fire
    Set VariableSet SaveLoad_Item_String[62] = ReplaceableTextures\CommandButtons\BTNOrbOfFire.blp
    Set VariableSet SaveLoad_Items[63] = Orb of Kil'jaeden
    Set VariableSet SaveLoad_Item_String[63] = ReplaceableTextures\CommandButtons\BTNUsedSoulGem.blp
    Set VariableSet SaveLoad_Items[64] = Orb of Lightning
    Set VariableSet SaveLoad_Item_String[64] = ReplaceableTextures\CommandButtons\BTNOrbOfLightning.blp
    Set VariableSet SaveLoad_Items[65] = Orb of Lightning
    Set VariableSet SaveLoad_Item_String[65] = ReplaceableTextures\CommandButtons\BTNOrbOfLightning.blp
    Set VariableSet SaveLoad_Items[66] = Orb of Slow
    Set VariableSet SaveLoad_Item_String[66] = ReplaceableTextures\CommandButtons\BTNOrbofSlowness.blp
    Set VariableSet SaveLoad_Items[67] = Orb of Venom
    Set VariableSet SaveLoad_Item_String[67] = ReplaceableTextures\CommandButtons\BTNOrbOfVenom.blp
    Set VariableSet SaveLoad_Items[68] = Potion of Greater Invisibility
    Set VariableSet SaveLoad_Item_String[68] = ReplaceableTextures\CommandButtons\BTNGreaterInvisibility.blp
    Set VariableSet SaveLoad_Items[69] = Potion of Speed
    Set VariableSet SaveLoad_Item_String[69] = ReplaceableTextures\CommandButtons\BTNPotionRed.blp
    Set VariableSet SaveLoad_Items[70] = Ring of Protection +1
    Set VariableSet SaveLoad_Item_String[70] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[71] = Ring of Superiority
    Set VariableSet SaveLoad_Item_String[71] = ReplaceableTextures\CommandButtons\BTNGoldRing.blp
    Set VariableSet SaveLoad_Items[72] = Ring of the Archmagi (version 2)
    Set VariableSet SaveLoad_Item_String[72] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[73] = Ring of the Archmagi (version 4)
    Set VariableSet SaveLoad_Item_String[73] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[74] = Ring of the Archmagi (version 1)
    Set VariableSet SaveLoad_Item_String[74] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[75] = Ring of the Archmagi (version 3)
    Set VariableSet SaveLoad_Item_String[75] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[76] = Scepter of Mastery
    Set VariableSet SaveLoad_Item_String[76] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[77] = Shadow Orb +1
    Set VariableSet SaveLoad_Item_String[77] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[78] = Shadow Orb +10
    Set VariableSet SaveLoad_Item_String[78] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[79] = Shadow Orb +2
    Set VariableSet SaveLoad_Item_String[79] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[80] = Shadow Orb +3
    Set VariableSet SaveLoad_Item_String[80] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[81] = Shadow Orb +4
    Set VariableSet SaveLoad_Item_String[81] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[82] = Shadow Orb +5
    Set VariableSet SaveLoad_Item_String[82] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[83] = Shadow Orb +6
    Set VariableSet SaveLoad_Item_String[83] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[84] = Shadow Orb +7
    Set VariableSet SaveLoad_Item_String[84] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[85] = Shadow Orb +8
    Set VariableSet SaveLoad_Item_String[85] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[86] = Shadow Orb +9
    Set VariableSet SaveLoad_Item_String[86] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[87] = Shamanic Totem
    Set VariableSet SaveLoad_Item_String[87] = ReplaceableTextures\CommandButtons\BTNEntrapmentWard.blp
    Set VariableSet SaveLoad_Items[88] = Skull Shield
    Set VariableSet SaveLoad_Item_String[88] = ReplaceableTextures\CommandButtons\BTNGrimWard.blp
    Set VariableSet SaveLoad_Items[89] = Spider Ring
    Set VariableSet SaveLoad_Item_String[89] = ReplaceableTextures\CommandButtons\BTNRingVioletSpider.blp
    Set VariableSet SaveLoad_Items[90] = Staff of Preservation
    Set VariableSet SaveLoad_Item_String[90] = ReplaceableTextures\CommandButtons\BTNStaffOfPreservation.blp
    Set VariableSet SaveLoad_Items[91] = Staff of Reanimation
    Set VariableSet SaveLoad_Item_String[91] = ReplaceableTextures\CommandButtons\BTNWandSkull.blp
    Set VariableSet SaveLoad_Items[92] = Tiny Altar of Kings
    Set VariableSet SaveLoad_Item_String[92] = ReplaceableTextures\CommandButtons\BTNAltarOfKings.blp
    Set VariableSet SaveLoad_Items[93] = Tiny Barracks
    Set VariableSet SaveLoad_Item_String[93] = ReplaceableTextures\CommandButtons\BTNHumanBarracks.blp
    Set VariableSet SaveLoad_Items[94] = Tiny Blacksmith
    Set VariableSet SaveLoad_Item_String[93] = ReplaceableTextures\CommandButtons\BTNBlacksmith.blp
    Set VariableSet SaveLoad_Items[95] = Tiny Farm
    Set VariableSet SaveLoad_Item_String[95] = ReplaceableTextures\CommandButtons\BTNFarm.blp
    Set VariableSet SaveLoad_Items[96] = Tiny Lumber Mill
    Set VariableSet SaveLoad_Item_String[96] = ReplaceableTextures\CommandButtons\BTNHumanLumberMill.blp
    Set VariableSet SaveLoad_Items[97] = Totem of Might
    Set VariableSet SaveLoad_Item_String[97] = ReplaceableTextures\CommandButtons\BTNEntrapmentWard.blp
    Set VariableSet SaveLoad_Items[98] = Voodoo Doll
    Set VariableSet SaveLoad_Item_String[98] = ReplaceableTextures\CommandButtons\BTNShadowPact.blp
    Set VariableSet SaveLoad_Items[99] = Alleria's Flute of Accuracy
    Set VariableSet SaveLoad_Item_String[99] = ReplaceableTextures\CommandButtons\BTNAlleriaFlute.blp
    Set VariableSet SaveLoad_Items[100] = Amulet of Spell Shield
    Set VariableSet SaveLoad_Item_String[100] = ReplaceableTextures\CommandButtons\BTNSpellShieldAmulet.blp
    Set VariableSet SaveLoad_Items[101] = Ancient Janggo of Endurance
    Set VariableSet SaveLoad_Item_String[101] = ReplaceableTextures\CommandButtons\BTNJanggo.blp
    Set VariableSet SaveLoad_Items[102] = Belt of Giant Strength +6
    Set VariableSet SaveLoad_Item_String[102] = ReplaceableTextures\CommandButtons\BTNBelt.blp
    Set VariableSet SaveLoad_Items[103] = Boots of Quel'Thalas +6
    Set VariableSet SaveLoad_Item_String[103] = ReplaceableTextures\CommandButtons\BTNBoots.blp
    Set VariableSet SaveLoad_Items[104] = Boots of Speed
    Set VariableSet SaveLoad_Item_String[104] = ReplaceableTextures\CommandButtons\BTNBootsOfSpeed.blp
    Set VariableSet SaveLoad_Items[105] = Circlet of Nobility
    Set VariableSet SaveLoad_Item_String[105] = ReplaceableTextures\CommandButtons\BTNCirclet.blp
    Set VariableSet SaveLoad_Items[106] = Claws of Attack +12
    Set VariableSet SaveLoad_Item_String[106] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[107] = Claws of Attack +6
    Set VariableSet SaveLoad_Item_String[107] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[108] = Claws of Attack +9
    Set VariableSet SaveLoad_Item_String[108] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[109] = Cloak of Flames
    Set VariableSet SaveLoad_Item_String[109] = ReplaceableTextures\CommandButtons\BTNCloakOfFlames.blp
    Set VariableSet SaveLoad_Items[110] = Cloak of Shadows
    Set VariableSet SaveLoad_Item_String[110] = ReplaceableTextures\CommandButtons\BTNCloak.blp
    Set VariableSet SaveLoad_Items[111] = Crystal Ball
    Set VariableSet SaveLoad_Item_String[111] = ReplaceableTextures\CommandButtons\BTNCrystalBall.blp
    Set VariableSet SaveLoad_Items[112] = Diamond of Summoning
    Set VariableSet SaveLoad_Item_String[112] = ReplaceableTextures\CommandButtons\BTNDarkSummoning.blp
    Set VariableSet SaveLoad_Items[113] = Gauntlets of Ogre Strength +3
    Set VariableSet SaveLoad_Item_String[113] = ReplaceableTextures\CommandButtons\BTNGauntletsOfOgrePower.blp
    Set VariableSet SaveLoad_Items[114] = Gloves of Haste
    Set VariableSet SaveLoad_Item_String[114] = ReplaceableTextures\CommandButtons\BTNGlove.blp
    Set VariableSet SaveLoad_Items[115] = Helm of Valor
    Set VariableSet SaveLoad_Item_String[115] = ReplaceableTextures\CommandButtons\BTNHelmOfValor.blp
    Set VariableSet SaveLoad_Items[116] = Hood of Cunning
    Set VariableSet SaveLoad_Item_String[116] = ReplaceableTextures\CommandButtons\BTNHoodOfCunning.blp
    Set VariableSet SaveLoad_Items[117] = Khadgar's Gem of Health
    Set VariableSet SaveLoad_Item_String[117] = ReplaceableTextures\CommandButtons\BTNPeriapt1.blp
    Set VariableSet SaveLoad_Items[118] = Khadgar's Pipe of Insight
    Set VariableSet SaveLoad_Item_String[118] = ReplaceableTextures\CommandButtons\BTNPipeOfInsight.blp
    Set VariableSet SaveLoad_Items[119] = Legion Doom-Horn
    Set VariableSet SaveLoad_Item_String[119] = ReplaceableTextures\CommandButtons\BTNHornOfDoom.blp
    Set VariableSet SaveLoad_Items[120] = Mantle of Intelligence +3
    Set VariableSet SaveLoad_Item_String[120] = ReplaceableTextures\CommandButtons\BTNMantleOfIntelligence.blp
    Set VariableSet SaveLoad_Items[121] = Medallion of Courage
    Set VariableSet SaveLoad_Item_String[121] = ReplaceableTextures\CommandButtons\BTNMedalionOfCourage.blp
    Set VariableSet SaveLoad_Items[122] = Orb of Darkness
    Set VariableSet SaveLoad_Item_String[122] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[123] = Pendant of Energy
    Set VariableSet SaveLoad_Item_String[123] = ReplaceableTextures\CommandButtons\BTNPendantOfEnergy.blp
    Set VariableSet SaveLoad_Items[124] = Pendant of Mana
    Set VariableSet SaveLoad_Item_String[124] = ReplaceableTextures\CommandButtons\BTNPendantOfMana.blp
    Set VariableSet SaveLoad_Items[125] = Periapt of Vitality
    Set VariableSet SaveLoad_Item_String[125] = ReplaceableTextures\CommandButtons\BTNPeriapt.blp
    Set VariableSet SaveLoad_Items[126] = Ring of Protection +2
    Set VariableSet SaveLoad_Item_String[126] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[127] = Ring of Protection +3
    Set VariableSet SaveLoad_Item_String[127] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[128] = Ring of Protection +4
    Set VariableSet SaveLoad_Item_String[128] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[129] = Ring of Regeneration
    Set VariableSet SaveLoad_Item_String[129] = ReplaceableTextures\CommandButtons\BTNRingSkull.blp
    Set VariableSet SaveLoad_Items[130] = Robe of the Magi +6
    Set VariableSet SaveLoad_Item_String[130] = ReplaceableTextures\CommandButtons\BTNRobeOfTheMagi.blp
    Set VariableSet SaveLoad_Items[131] = Runed Bracers
    Set VariableSet SaveLoad_Item_String[131] = ReplaceableTextures\CommandButtons\BTNRunedBracers.blp
    Set VariableSet SaveLoad_Items[132] = Scourge Bone Chimes
    Set VariableSet SaveLoad_Item_String[132] = ReplaceableTextures\CommandButtons\BTNBoneChimes.blp
    Set VariableSet SaveLoad_Items[133] = Slippers of Agility +3
    Set VariableSet SaveLoad_Item_String[133] = ReplaceableTextures\CommandButtons\BTNSlippersOfAgility.blp
    Set VariableSet SaveLoad_Items[134] = Sobi Mask
    Set VariableSet SaveLoad_Item_String[134] = ReplaceableTextures\CommandButtons\BTNSobiMask.blp
    Set VariableSet SaveLoad_Items[135] = Staff of Silence
    Set VariableSet SaveLoad_Item_String[135] = ReplaceableTextures\CommandButtons\BTNStaffOfSilence.blp
    Set VariableSet SaveLoad_Items[136] = Staff of Teleportation
    Set VariableSet SaveLoad_Item_String[136] = ReplaceableTextures\CommandButtons\BTNStaffOfTeleportation.blp
    Set VariableSet SaveLoad_Items[137] = Talisman of Evasion
    Set VariableSet SaveLoad_Item_String[137] = ReplaceableTextures\CommandButtons\BTNTalisman.blp
    Set VariableSet SaveLoad_Items[138] = The Lion Horn of Stormwind
    Set VariableSet SaveLoad_Item_String[138] = ReplaceableTextures\CommandButtons\BTNLionHorn.blp
    Set VariableSet SaveLoad_Items[139] = Warsong Battle Drums
    Set VariableSet SaveLoad_Item_String[139] = ReplaceableTextures\CommandButtons\BTNDrum.blp
    Set VariableSet SaveLoad_Items[140] = Clarity Potion
    Set VariableSet SaveLoad_Item_String[140] = ReplaceableTextures\CommandButtons\BTNPotionOfClarity.blp
    Set VariableSet SaveLoad_Items[141] = Healing Salve
    Set VariableSet SaveLoad_Item_String[141] = ReplaceableTextures\CommandButtons\BTNHealingSalve.blp
    Set VariableSet SaveLoad_Items[142] = Ivory Tower
    Set VariableSet SaveLoad_Item_String[142] = ReplaceableTextures\CommandButtons\BTNHumanWatchTower.blp
    Set VariableSet SaveLoad_Items[142] = Lesser Clarity Potion
    Set VariableSet SaveLoad_Item_String[142] = ReplaceableTextures\CommandButtons\BTNLesserClarityPotion.blp
    Set VariableSet SaveLoad_Items[143] = Mechanical Critter
    Set VariableSet SaveLoad_Item_String[143] = ReplaceableTextures\CommandButtons\BTNMechanicalCritter.blp
    Set VariableSet SaveLoad_Items[144] = Moonstone
    Set VariableSet SaveLoad_Item_String[144] = ReplaceableTextures\CommandButtons\BTNMoonStone.blp
    Set VariableSet SaveLoad_Items[145] = Potion of Healing
    Set VariableSet SaveLoad_Item_String[145] = ReplaceableTextures\CommandButtons\BTNPotionGreenSmall.blp
    Set VariableSet SaveLoad_Items[146] = Potion of Invisibility
    Set VariableSet SaveLoad_Item_String[146] = ReplaceableTextures\CommandButtons\BTNPotionGreenSmall.blp
    Set VariableSet SaveLoad_Items[147] = Potion of Lesser Invulnerability
    Set VariableSet SaveLoad_Item_String[147] = ReplaceableTextures\CommandButtons\BTNLesserInvulneralbility.blp
    Set VariableSet SaveLoad_Items[148] = Potion of Mana
    Set VariableSet SaveLoad_Item_String[148] = ReplaceableTextures\CommandButtons\BTNPotionBlueSmall.blp
    Set VariableSet SaveLoad_Items[149] = Rod of Necromancy
    Set VariableSet SaveLoad_Item_String[149] = ReplaceableTextures\CommandButtons\BTNRodOfNecromancy.blp
    Set VariableSet SaveLoad_Items[150] = Sacrificial Skull
    Set VariableSet SaveLoad_Item_String[150] = ReplaceableTextures\CommandButtons\BTNSacrificialSkull.blp
    Set VariableSet SaveLoad_Items[151] = Scroll of Healing
    Set VariableSet SaveLoad_Item_String[151] = ReplaceableTextures\CommandButtons\BTNScrollOfTownPortal.blp
    Set VariableSet SaveLoad_Items[152] = Scroll of Mana
    Set VariableSet SaveLoad_Item_String[152] = ReplaceableTextures\CommandButtons\BTNScrollOfProtection.blp
    Set VariableSet SaveLoad_Items[153] = Scroll of Protection
    Set VariableSet SaveLoad_Item_String[153] = ReplaceableTextures\CommandButtons\BTNScroll.blp
    Set VariableSet SaveLoad_Items[154] = Scroll of Regeneration
    Set VariableSet SaveLoad_Item_String[154] = ReplaceableTextures\CommandButtons\BTNScrollOfRegenerationGreen.blp
    Set VariableSet SaveLoad_Items[155] = Scroll of Speed
    Set VariableSet SaveLoad_Item_String[155] = ReplaceableTextures\CommandButtons\BTNScrollOfHaste.blp
    Set VariableSet SaveLoad_Items[156] = Scroll of Town Portal
    Set VariableSet SaveLoad_Item_String[156] = ReplaceableTextures\CommandButtons\BTNScrollUber.blp
    Set VariableSet SaveLoad_Items[157] = Spider Silk Broach
    Set VariableSet SaveLoad_Item_String[157] = ReplaceableTextures\CommandButtons\BTNSpiderSilkBroach.blp
    Set VariableSet SaveLoad_Items[158] = Staff of Negation
    Set VariableSet SaveLoad_Item_String[158] = ReplaceableTextures\CommandButtons\BTNStaffOfNegation.blp
    Set VariableSet SaveLoad_Items[159] = Staff of Sanctuary
    Set VariableSet SaveLoad_Item_String[159] = ReplaceableTextures\CommandButtons\BTNStaffOfSanctuary.blp
    Set VariableSet SaveLoad_Items[160] = Tiny Castle
    Set VariableSet SaveLoad_Item_String[160] = ReplaceableTextures\CommandButtons\BTNTinyCastle.blp
    Set VariableSet SaveLoad_Items[161] = Tiny Great Hall
    Set VariableSet SaveLoad_Item_String[161] = ReplaceableTextures\CommandButtons\BTNGreathall.blp
    Set VariableSet SaveLoad_Items[162] = Tome of Retraining
    Set VariableSet SaveLoad_Item_String[162] = ReplaceableTextures\CommandButtons\BTNTomeOfRetraining.blp
    Set VariableSet SaveLoad_Items[163] = Vampiric Potion
    Set VariableSet SaveLoad_Item_String[163] = ReplaceableTextures\CommandButtons\BTNPotionOfVampirism.blp
    Set VariableSet SaveLoad_Items[164] = Wand of Negation
    Set VariableSet SaveLoad_Item_String[164] = ReplaceableTextures\CommandButtons\BTNWandSkull.blp
    Set VariableSet SaveLoad_Items[165] = Wand of Neutralization
    Set VariableSet SaveLoad_Item_String[165] = ReplaceableTextures\CommandButtons\BTNWandOfNeutralization.blp
    Set VariableSet SaveLoad_Items_LastIndex = 165
    Set VariableSet SaveLoad_Alphabet = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz
    Set VariableSet SaveLoad_CaseSensitive = True
    Set VariableSet SaveLoad_UsePlayername = False
    Set VariableSet SaveLoad_Initialized = False
    Set VariableSet Code = AceHart
    Set VariableSet Save[1] = 0
    Set VariableSet SaveCount = 1
    Set VariableSet Validate = False
    Set VariableSet SaveLoad_Compress[1] = 0
    Set VariableSet SaveLoad_Uncompress[1] = 0
    -------- List of Heroes --------
    Set VariableSet SaveLoad_Heroes[1] = Paladin
    Set VariableSet SaveLoad_Heroes[2] = Archmage
    Set VariableSet SaveLoad_Heroes[3] = Mountain King
    Set VariableSet SaveLoad_Heroes[4] = Blood Mage
    -------- Number of Heroes --------
    Set VariableSet SaveLoad_Heroes_LastIndex = 4
    -------- List of Abilities --------
    Set VariableSet SaveLoad_Abilities[1] = Banish
    Set VariableSet SaveLoad_Abilities[2] = Flame Strike
    Set VariableSet SaveLoad_Abilities[3] = Phoenix
    Set VariableSet SaveLoad_Abilities[4] = Siphon Mana
    -------- Number of Abilities --------
    Set VariableSet 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 VariableSet 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 VariableSet SaveCount = 1
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Save[1] Not equal to 104
      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 4
              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 VariableSet Code_Is_Active = True
    Set VariableSet Bonus_Strength = 0
    Set VariableSet Bonus_Intelligence = 0
    Set VariableSet 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 VariableSet Bonus_Strength = Save[2]
    Set VariableSet Bonus_Agility = Save[3]
    Set VariableSet Bonus_Intelligence = Save[4]
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[5])), 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[5])), 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[5])), 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[5])), 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[5])), 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[5])), 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[5])), 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[5])), 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[5])), 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[5])), 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[6])), 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[6])), 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[6])), 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[6])), 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[6])), 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[6])), 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[6])), 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[6])), 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[6])), 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[6])), 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 VariableSet SaveCount = 7
    Set VariableSet SaveLoad_Integer = Save[SaveCount]
    For each (Integer A) from 1 to SaveLoad_Integer, do (Actions)
      Loop - Actions
        Set VariableSet 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
                TempItemType Equal to Sentry Wards
                TempItemType Equal to Talisman of the Wild
                TempItemType Equal to Wand of Illusion
                TempItemType Equal to Wand of Lightning Shield
                TempItemType Equal to Wand of Mana Stealing
                TempItemType Equal to Wand of Shadowsight
                TempItemType Equal to Wand of the Wind
                TempItemType Equal to Dust of Appearance
                TempItemType Equal to Goblin Land Mines
                TempItemType Equal to Scepter of Mastery
                TempItemType Equal to Rod of Necromancy
                TempItemType Equal to Spider Silk Broach
                TempItemType Equal to Healing Salve
                TempItemType Equal to Wand of Negation
                TempItemType Equal to Wand of Neutralization
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Item - Set charges remaining in (Last created item) to Save[SaveCount]
          Else - Actions
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet SaveLoad_Integer = Save[SaveCount]
    For each (Integer A) from 1 to SaveLoad_Integer, do (Actions)
      Loop - Actions
        Set VariableSet SaveCount = (SaveCount + 1)
        Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
        Hero - Create TempItemType and give it to NewWarden
        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
                TempItemType Equal to Sentry Wards
                TempItemType Equal to Talisman of the Wild
                TempItemType Equal to Wand of Illusion
                TempItemType Equal to Wand of Lightning Shield
                TempItemType Equal to Wand of Mana Stealing
                TempItemType Equal to Wand of Shadowsight
                TempItemType Equal to Wand of the Wind
                TempItemType Equal to Dust of Appearance
                TempItemType Equal to Goblin Land Mines
                TempItemType Equal to Scepter of Mastery
                TempItemType Equal to Rod of Necromancy
                TempItemType Equal to Spider Silk Broach
                TempItemType Equal to Healing Salve
                TempItemType Equal to Wand of Negation
                TempItemType Equal to Wand of Neutralization
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Item - Set charges remaining in (Last created item) to Save[SaveCount]
          Else - Actions
    Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
SaveLoad Save A
  Events
  Conditions
  Actions
    Set VariableSet SaveLoad_Security_Number = (Random integer number between 1 and 2000)
    For each (Integer A) from 1 to 30, do (Actions)
      Loop - Actions
        Set VariableSet Save[(Integer A)] = 0
    Set VariableSet SaveCount = 0
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = 1051
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = SaveLoad_Security_Number
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = Bonus_Strength
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = Bonus_Agility
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = Bonus_Intelligence
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = ((1000 x (Level of Fan of Knives for Maiev)) + (((Level of Blink for Maiev) x 100) + (((Level of Shadow Strike for Maiev) x 10) + ((Level of Vengeance for Maiev) + 1111))))
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = ((1000 x (Level of Blade Shield for NewWarden)) + (((Level of Shift for NewWarden) x 100) + (((Level of Summon Twilight Guardian for NewWarden) x 10) + ((Level of Eclipse for NewWarden) + 1111))))
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Number of items carried by Maiev)
    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
            (Item carried by Maiev in slot (Integer A)) Not equal to No item
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by Maiev in slot (Integer A))
            Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
            -------- The number of charges it has --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Or - Any (Conditions) are true
                  Conditions
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Healing Wards
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Sentry Wards
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Talisman of the Wild
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Illusion
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Lightning Shield
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Mana Stealing
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Shadowsight
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of the Wind
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Dust of Appearance
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Goblin Land Mines
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Scepter of Mastery
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Rod of Necromancy
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Spider Silk Broach
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Healing Salve
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Negation
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Neutralization
              Then - Actions
                Set VariableSet SaveCount = (SaveCount + 1)
                Set VariableSet Save[SaveCount] = (Charges remaining in (Item carried by Maiev in slot (Integer A)))
              Else - Actions