Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

2P Sentinel 08 v1.01.w3x
Variables
Spells CusNaga
Frost Barrage
Tides INIT
Tides CAST
Tides EXPIRE
Preface and Systems
Shadow Orb INIT
Shadow Orb CUMULATIVE
AMBUSH
Ambush INIT
Ambush REGISTER
Ambush EXPIRE
SAVE & LOAD
SaveLoad Initialization
SaveLoad Load
SaveLoad Save A
SaveLoad Save B
TWO PLAYER INITIALIZATION
Two Player Initialization
START OF GAME TRIGGERS
Start SCREEN INIT
Start SCREEN TEXT
Start TOOGLE DIFFICULTY
Start FINISH
Start APPLY CHANGES
END OF GAME TRIGGERS
End Game SCREEN TEXT
End Game SCREEN INIT
POWERUPS
Powerups ACQUIRE
Powerups COMMON
SHARE
Share INIT
Share Research BEGIN
Share Research CANCEL
Share Research FINISH
Share COMMON
Share Techtree BEGIN CONSTRUCTION
Share Techtree CANCEL CONSTRUCTION
Share Techtree FINISH CONSTRUCTION
Share Techtree BEGIN AN UPGRADE
Share Techtree CANCEL AN UPGRADE
Share Techtree FINISH AN UPGRADE
Share DEATH
ITEM
CINEMATIC
Enable or Disable Experience
Prepare for Cinematic
Restore after Cinematic
Skip Cinematic
MISC
Insane Mana for Heroes
Insane Mana for Units
Insane Mana Shield Helper for Lich
Tribute
Player Leaves
Bounty INIT
Bounty WORK
Hero Stats INITIATE
Hero Stats SINGLE HERO
Upkeep Level
Init Upkeep
RealPlayer
MU Gen
MU Update
---
Initialization
Initialization
Init 01 Players
Init 02 Units
Init 03 Music
Init 04 Environment
Init 05 Quests
Init 06a Hard
Init 06b Normal
Init 06c Easy
Init 07 Regions to Points
Load Heroes
Load Heroes
Load Tyrande
Load Furion
Load Illidan
Load Magroth
Load Maiev
Cinematic Revival
xxxxxxxxxxxxxxxxxxxx
Intro Cinematic
Intro Setup
Intro Cinematic Q
Intro Cleanup
IntroUndeadStrikeForce1
IntroUndeadStrikeForce2
IntroUndeadStrikeForce3
Gameplay
Midgame Dam Cinematic
Dam Setup
Dam Cinematic Q
Dam Cleanup
Dam MiniCinematic
Dam MiniSetup
Dam MiniCinematic Q
Dam MiniCleanup
Victory Cinematic
Victory Setup
Victory Cinematic Q
Victory Cleanup
xxxxxxxxxxxxxxxxxxxx
Level Data
Next Level Prep
Next Level Run
Victory Cheat
Defeat Cheat
Quests
Quest Tyrande Create
Quest Tyrande Discover
Quest Tyrande Completed
Quest Dam Create
Quest Dam Discover
Quest Dam Completed
Mission Failed Furion Base Dead
Mission Failed Illidan Base Dead
Mission Failed Tyrande Base Dead
Hints
Hint Parasite Q
Hint Parasite
Notice Furions Base Q
Notice Tyrandes Base Q
FurionsBaseAlreadyNoticed
TyrandesBaseAlreadyNoticed
MyNotice
AI
Start AI
AI Resources
Dam SideQuest
Dam Trigger
Dam Trigger2
Dam Complete
Tyrande
Tyrande Line Trigger
Tyrande Cant Die
Voice Overs
VO TyrandeAttacked1 Que
VO TyrandeAttacked2 Que
VO TyrandeAttacked3 Que
VO TyrandeAttacked4 Que
VO TyrandeAttacked5 Que
VO TyrandeAttacked6 Que
VO TyrandeAttacked7 Que
Invulnerable Barges
New Barges Invulnerable
Barges Vulnerable WO BlackCitadel
xxxxxxxxxxxxxxxxxxxx
Victory Defeat
Victory Illidan Reaches Tyrande
Defeat Units Dead
Defeat Tyrande Died
Combat Check
Combat Detected
Combat Resolved
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
AP2_BluePlayer player No Player01
APG2_BluePlayer force No Force01
Bonus_Agility integer No
Bonus_Intelligence integer No
Bonus_Strength integer No
Bounty_NEUTRAL_BASE integer Yes
Bounty_NEUTRAL_DICE integer Yes
Bounty_NEUTRAL_SIDES integer Yes
Bounty_RACE_BASE integer Yes
Bounty_RACE_DICE integer Yes
Bounty_RACE_SIDES integer Yes
CameraReturnPoint location No
Cinematic_NAME string No
Cinematic_Preparation_Finished boolean No
Code string No
Code_Is_Active boolean No
CombatCheckTimer timer No
CreateAmbush_Angle real No
CreateAmbush_GoToRegion rect No
CreateAmbush_Group group No
CreateAmbush_Region rect No
CreateAmbush_Type unitcode No
CusNaga unit No
CusNagaReturnSpot location No
DamCinSkipped boolean No
DamVisVar01 fogmodifier No
DamVisVar02 fogmodifier No
DamVisVar03 fogmodifier No
Difficulty string No
EMPTY itemcode No
EntangledGoldMine unit No UnitNull
ExpDisabledForFurion boolean No false
ExpDisabledForIllidan boolean No false
ExpDisabledForTyrande boolean No false
Furion unit No UnitNull
FurionReturnSpot location No
GameHasStarted boolean No
GameOver boolean No false
Gives_Bounty force No
GreenX real No
HiddenUnits group No
Illidan unit No UnitNull
IllidanReturnSpot location No
InCinematic boolean No false
InCombat boolean No false
InFlashback boolean No
InterludeSkipped boolean No
IntroSkipped boolean No false
ITEM_DESC destructable Yes
ITEM_DESC_Item_Type itemcode Yes
ITEM_DESC_Item_Type_INSANE itemcode Yes
ITEM_DESC_Total integer No
ITEM_UNIT unit Yes
ITEM_UNIT_Item_Type itemcode Yes
ITEM_UNIT_Item_Type_INSANE itemcode Yes
ITEM_UNIT_Total integer No
Kael unit No
Magroth unit No
Maiev unit No
MaievReturnSpot location No
Malfurion unit No
MoonWells group No
Multiboard_Current_Column integer No
Multiboard_Current_Row integer No
Multiboard_Hero_Icon string No
Multiboard_Item_Used boolean Yes
Multiboard_Name_Used boolean No
Multiboard_Skill abilcode Yes
Multiboard_Skill_Icon string Yes
Multiboard_Skill_Name string Yes
Multiboard_Skill_Used boolean Yes
Multiboard_Unit unit No
Mutliboard_Hero_Statistics multiboard No
MyNoticeDone boolean No
NewWarden unit No
NewWardenReturnSpot location No
NoticedFurion boolean No
NoticedTyrande boolean No
P03_TealPlayer player No Player02
P04_PurplePlayer player No Player03
P05_YellowUndead player No Player04
P06_OrangeUndead player No Player05
P07_GreenUndead player No Player06
P09_GreyUndead player No Player08
P11_DarkGreenUndead player No Player10
P12_BrownUndead player No Player11
Player_Color playercolor Yes
Player_Color_String string Yes
Player_One player No
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
PointDamInSight1 location No
PointDamInSight2 location No
PointDamInSight3 location No
PointDamInSight4 location No
PointDamInSight5 location No
portal destructable No
Powerups_Gold integer No
Powerups_Lumber integer No
QuestDam quest No
QuestDamReq1 questitem No
QuestSilk quest No
QuestSilkReqFindCave questitem No
QuestSilkReqKill questitem No
QuestTyrande quest No
QuestTyrandeReqFurBase questitem No
QuestTyrandeReqSlayUndead questitem No
Research_Name_1 string Yes
Research_Name_2 string Yes
Research_Name_3 string Yes
Research_Type techcode Yes
RevivalAltar unit No UnitNull
RevivalHero unit No UnitNull
RevivalReturnSpot location No
RevivalSpot location No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No
SaveLoad_Integer integer No
SaveLoad_Item_String string Yes
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Security_Number integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
SelectedUnits group No
Shadow_Orb_TYPE itemcode Yes
Share_DISPLAY boolean Yes
Share_FAKE unitcode Yes
Share_REAL unitcode Yes
Stash unit Yes
TempBoo boolean No
TempGroup group Yes
TempInteger integer Yes
TempItem item No
TempItemType itemcode No
TempPoint location Yes
Tides_EXPIRE timer Yes
Tides_OWNER unit Yes
Tides_TIMER timer Yes
Tides_UNIT unit Yes
TrollVillage group No
Tyrande unit No UnitNull
TyrandeFirstLine boolean No
TyrandeLineRandomNumber integer No
TyrandeLineWaitBoo boolean No
TyrandeReturnSpot location No
UMB_Board multiboard No
UMB_Update timer No
UMB_UpString string Yes
UndeadStrikeForce1 group No
UndeadStrikeForce2 group No
UndeadStrikeForce3 group No
Under_Construction group No
Validate boolean No
VictorySkipped boolean No false
VisibilityRiver01 fogmodifier No
VisibilityRiver02 fogmodifier No
VisibilityRiver03 fogmodifier No
VisibilityRiver04 fogmodifier No
VisibilityRiver05 fogmodifier No
zz_Tides_ABILITY abilcode No
zz_Tides_DUR real Yes
zz_Tides_MAX integer No
Frost Barrage
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to Frost Barrage
  Actions
    Set VariableSet TempPoint[1] = (Position of (Target unit of ability being cast))
    Set VariableSet TempGroup[1] = (Units within 600.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
            Or - Any (Conditions) are true
              Conditions
                ((Picked unit) is A structure) Equal to True
                (Picked unit) Equal to (Target unit of ability being cast)
                ((Picked unit) is alive) Equal to False
                ((Picked unit) belongs to an ally of (Owner of (Casting unit)).) Equal to True
                ((Picked unit) is Magic Immune) Equal to True
                ((Picked unit) is Mechanical) Equal to True
                ((Picked unit) is An Ancient) Equal to True
          Then - Actions
            Unit Group - Remove (Picked unit) from TempGroup[1].
          Else - Actions
    Set VariableSet TempGroup[2] = (Random (Level of Frost Barrage for (Casting unit)) units from TempGroup[1])
    Unit Group - Pick every unit in TempGroup[2] and do (Actions)
      Loop - Actions
        Special Effect - Create a special effect attached to the overhead (attachpoint) of (Picked unit) using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
        Special Effect - Destroy (Last created special effect)
        Set VariableSet TempPoint[2] = (Position of (Casting unit))
        Set VariableSet TempPoint[3] = (Position of (Picked unit))
        Unit - Create 1.Dummy Caster for (Owner of (Casting unit)) at TempPoint[2] facing (Angle from TempPoint[2] to TempPoint[3]) degrees
        Custom script: call RemoveLocation(udg_TempPoint[2])
        Custom script: call RemoveLocation(udg_TempPoint[3])
        Unit - Add Frost Barrage (Dummy Ability) to (Last created unit)
        Unit - Set level of Frost Barrage (Dummy Ability) for (Last created unit) to (Level of Frost Barrage for (Casting unit))
        Unit - Order (Last created unit) to Human Mountain King - Storm Bolt.(Picked unit)
        Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
    Custom script: call RemoveLocation(udg_TempPoint[1])
    Custom script: call DestroyGroup(udg_TempGroup[1])
    Custom script: call DestroyGroup(udg_TempGroup[2])
Tides INIT
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet zz_Tides_ABILITY = Ebb & Flow
    Set VariableSet zz_Tides_MAX = 10
    -------- r --------
    For each (Integer A) from 1 to zz_Tides_MAX, do (Actions)
      Loop - Actions
        Trigger - Add to Tides_EXPIRE <gen> the event (Tides_TIMER[(Integer A)] expires)
Tides CAST
  Events
    Unit - A unit Starts the effect of an ability
  Conditions
    (Ability being cast) Equal to zz_Tides_ABILITY
  Actions
    Set VariableSet TempBoo = False
    For each (Integer A) from 1 to zz_Tides_MAX, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Tides_UNIT[(Integer A)] Equal to (Target unit of ability being cast)
          Then - Actions
            Set VariableSet TempBoo = True
          Else - Actions
    For each (Integer A) from 1 to zz_Tides_MAX, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Tides_UNIT[(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
        TempBoo Equal to False
      Then - Actions
        Set VariableSet Tides_UNIT[TempInteger[1]] = (Target unit of ability being cast)
        Set VariableSet Tides_OWNER[TempInteger[1]] = (Casting unit)
        Countdown Timer - Start Tides_TIMER[TempInteger[1]] as a One-shot timer that will expire in 0.25 seconds
        Unit - Add Ebb & Flow - Armor to (Target unit of ability being cast)
      Else - Actions
Tides EXPIRE
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to zz_Tides_MAX, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Tides_UNIT[(Integer A)] Not equal to No unit
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Tides_UNIT[(Integer A)] has buff Lightning Shield) Equal to True
              Then - Actions
                Countdown Timer - Start Tides_TIMER[(Integer A)] as a One-shot timer that will expire in 0.25 seconds
                Set VariableSet TempPoint[1] = (Position of Tides_UNIT[(Integer A)])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Terrain pathing at TempPoint[1] of type Floatability is off) Equal to False
                  Then - Actions
                    Unit - Add Ebb & Flow - Armor to (Target unit of ability being cast)
                    Unit - Set life of Tides_UNIT[(Integer A)] to ((Life of Tides_UNIT[(Integer A)]) + (0.50 x (5.00 x (Real((Level of zz_Tides_ABILITY for Tides_OWNER[(Integer A)]))))))
                    Unit - Set level of Ebb & Flow - Armor for Tides_UNIT[(Integer A)] to ((Level of zz_Tides_ABILITY for Tides_OWNER[(Integer A)]) + 3)
                  Else - Actions
                    Unit - Add Ebb & Flow - Armor to (Target unit of ability being cast)
                    Unit - Set life of Tides_UNIT[(Integer A)] to ((Life of Tides_UNIT[(Integer A)]) + (0.25 x (5.00 x (Real((Level of zz_Tides_ABILITY for Tides_OWNER[(Integer A)]))))))
                    Unit - Set level of Ebb & Flow - Armor for Tides_UNIT[(Integer A)] to (Level of zz_Tides_ABILITY for Tides_OWNER[(Integer A)])
                Custom script: call RemoveLocation(udg_TempPoint[1])
              Else - Actions
                Unit - Remove Ebb & Flow - Armor from Tides_UNIT[(Integer A)]
                Set VariableSet Tides_UNIT[(Integer A)] = No unit
                Set VariableSet Tides_OWNER[(Integer A)] = No unit
          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
Ambush INIT
  Events
    Map initialization
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        Trigger - Add to Ambush_EXPIRE <gen> the event (AmbushTimer[(Integer A)] expires)
Ambush REGISTER
  Events
  Conditions
  Actions
    Set VariableSet TempPoint[1] = (Center of CreateAmbush_Region)
    Unit - Create 1.CreateAmbush_Type for Neutral Hostile at TempPoint[1] facing CreateAmbush_Angle degrees
    Custom script: call RemoveLocation(udg_TempPoint[1])
    Unit Group - Add (Last created unit) to CreateAmbush_Group
    Set 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
            AmbushUnit[(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
        Or - Any (Conditions) are true
          Conditions
            TempInteger[1] Equal to 0
            And - All (Conditions) are true
              Conditions
                (Unit-type of (Last created unit)) Not equal to Skeleton Archer
                (Unit-type of (Last created unit)) Not equal to Skeleton Warrior
                (Unit-type of (Last created unit)) Not equal to Skeletal Mage
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc Grunt
                (Unit-type of (Last created unit)) Not equal to Skeletal Orc Champion
                (Unit-type of (Last created unit)) Not equal to Reef Elemental
                (Unit-type of (Last created unit)) Not equal to Sea Elemental
                (Unit-type of (Last created unit)) Not equal to Berserk Elemental
                (Unit-type of (Last created unit)) Not equal to Revenant of the Tides
                (Unit-type of (Last created unit)) Not equal to Revenant of the Seas
                (Unit-type of (Last created unit)) Not equal to Revenant of the Depths
                (Unit-type of (Last created unit)) Not equal to Deeplord Revenant
      Then - Actions
        Skip remaining actions
      Else - Actions
    Set VariableSet AmbushUnit[TempInteger[1]] = (Last created unit)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Unit-type of (Last created unit)) Equal to Skeleton Archer
        (Unit-type of (Last created unit)) Equal to Skeleton Warrior
        (Unit-type of (Last created unit)) Equal to Skeletal Mage
      Then - Actions
        Set VariableSet TempPoint[1] = (Center of CreateAmbush_GoToRegion)
        Unit - Order AmbushUnit[TempInteger[1]] to Attack-Move To.TempPoint[1]
        Custom script: call RemoveLocation(udg_TempPoint[1])
      Else - Actions
    Unit - Make AmbushUnit[TempInteger[1]] Invulnerable
    Unit - Pause AmbushUnit[TempInteger[1]]
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Last created unit)) Equal to Skeletal Orc
            (Unit-type of (Last created unit)) Equal to Skeletal Orc Grunt
            (Unit-type of (Last created unit)) Equal to Skeletal Orc Champion
            (Unit-type of (Last created unit)) Equal to Skeleton Archer
            (Unit-type of (Last created unit)) Equal to Skeleton Warrior
            (Unit-type of (Last created unit)) Equal to Skeletal Mage
      Then - Actions
        Animation - Play AmbushUnit[TempInteger[1]]'s birth (animationname) animation
        Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 2.33 seconds
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                (Unit-type of (Last created unit)) Equal to Reef Elemental
                (Unit-type of (Last created unit)) Equal to Sea Elemental
                (Unit-type of (Last created unit)) Equal to Berserk Elemental
          Then - Actions
            Animation - Play AmbushUnit[TempInteger[1]]'s birth swim (animationname) animation
            Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 0.90 seconds
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Or - Any (Conditions) are true
                  Conditions
                    (Unit-type of (Last created unit)) Equal to Revenant of the Tides
                    (Unit-type of (Last created unit)) Equal to Revenant of the Seas
                    (Unit-type of (Last created unit)) Equal to Revenant of the Depths
                    (Unit-type of (Last created unit)) Equal to Deeplord Revenant
              Then - Actions
                Animation - Play AmbushUnit[TempInteger[1]]'s spell (animationname) animation
                Set VariableSet Ambush_VISIBILITY[TempInteger[1]] = 100
                Animation - Change AmbushUnit[TempInteger[1]]'s vertex coloring to (100%, 100%, 100%) with (Real(Ambush_VISIBILITY[TempInteger[1]]))% transparency
                Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 0.01 seconds
              Else - Actions
                Countdown Timer - Start AmbushTimer[TempInteger[1]] as a One-shot timer that will expire in 1.00 seconds
Ambush EXPIRE
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to 10, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            AmbushUnit[(Integer A)] Not equal to No unit
            (Remaining time for AmbushTimer[(Integer A)]) Equal to 0.00
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Ambush_VISIBILITY[(Integer A)] Not equal to 0
              Then - Actions
                Set VariableSet Ambush_VISIBILITY[(Integer A)] = (Ambush_VISIBILITY[(Integer A)] - 10)
                Animation - Change AmbushUnit[(Integer A)]'s vertex coloring to (100%, 100%, 100%) with (Real(Ambush_VISIBILITY[(Integer A)]))% transparency
                Countdown Timer - Start AmbushTimer[(Integer A)] as a One-shot timer that will expire in 0.15 seconds
              Else - Actions
                Unit - Unpause AmbushUnit[(Integer A)]
                Unit - Make AmbushUnit[(Integer A)] Vulnerable
                Animation - Reset AmbushUnit[(Integer A)]'s animation
                Animation - Change AmbushUnit[(Integer A)]'s animation speed to 100.00% of its original speed
                Set VariableSet AmbushUnit[(Integer A)] = No unit
          Else - Actions
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 1071
        Save[1] Not equal to 1072
      Then - Actions
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[SaveCount])), 1, 2)) Not equal to 10
          Then - Actions
            Game - Display to (All players) for 600.00 seconds the text: This code is from an older release.
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[SaveCount])), 3, 3)) Not equal to 6
              Then - Actions
                Game - Display to (All players) for 600.00 seconds the text: This code is not from the previous map of the campaign.
              Else - Actions
                Game - Display to (All players) for 600.00 seconds the text: Unknown loading error.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Code_Is_Active Equal to True
          Then - Actions
            Game - Display to (All players) the text: However, a valid code has already been entered. You may proceed to play the map using that one.
          Else - Actions
        Skip remaining actions
      Else - Actions
        Sound - Play GoodJob <gen>
        Set VariableSet Code_Is_Active = True
    -------- --- --------
    -------- Code A --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[1])), 4, 4)) Equal to 1
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            SaveLoad_Security_Number Equal to 0
          Then - Actions
            Set VariableSet SaveLoad_Security_Number = Save[2]
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                SaveLoad_Security_Number Not equal to Save[2]
              Then - Actions
                Game - Display to (All players) the text: These codes do not belong together.
                Skip remaining actions
              Else - Actions
                Do nothing
        Set VariableSet Bonus_Strength = 0
        Set VariableSet Bonus_Intelligence = 0
        Set VariableSet Bonus_Agility = 0
        Set VariableSet Bonus_Strength = Save[3]
        Set VariableSet Bonus_Agility = Save[4]
        Set VariableSet Bonus_Intelligence = Save[5]
        Set VariableSet SaveCount = 6
        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
      Else - Actions
    -------- Code B --------
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[1])), 4, 4)) Equal to 2
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            SaveLoad_Security_Number Equal to 0
          Then - Actions
            Set VariableSet SaveLoad_Security_Number = Save[2]
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                SaveLoad_Security_Number Not equal to Save[2]
              Then - Actions
                Game - Display to (All players) the text: These codes do not belong together.
                Skip remaining actions
              Else - Actions
                Do nothing
        For each (Integer A) from 1 to 6, do (Actions)
          Loop - Actions
            Hero - Drop the item from slot (Integer A) of Furion.
            Item - Remove (Last dropped item)
            Hero - Drop the item from slot (Integer A) of Tyrande.
            Item - Remove (Last dropped item)
        Set VariableSet SaveCount = 3
        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 Furion
            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 Tyrande
            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
      Else - Actions
    Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
SaveLoad Save A
  Events
  Conditions
  Actions
    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] = 1081
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Number of items carried by Illidan)
    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 Illidan in slot (Integer A)) Not equal to No item
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by Illidan 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 Illidan in slot (Integer A))) Equal to Healing Wards
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Sentry Wards
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Talisman of the Wild
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Wand of Illusion
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Wand of Lightning Shield
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Wand of Mana Stealing
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Wand of Shadowsight
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Wand of the Wind
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Dust of Appearance
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Goblin Land Mines
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Scepter of Mastery
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Rod of Necromancy
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Spider Silk Broach
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Healing Salve
                    (Item-type of (Item carried by Illidan in slot (Integer A))) Equal to Wand of Negation
                    (Item-type of (Item carried by Illidan 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 Illidan in slot (Integer A)))
              Else - Actions
          Else - Actions
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Number of items carried by CusNaga)
    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 CusNaga in slot (Integer A)) Not equal to No item
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by CusNaga 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 CusNaga in slot (Integer A))) Equal to Healing Wards
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Sentry Wards
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Talisman of the Wild
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Wand of Illusion
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Wand of Lightning Shield
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Wand of Mana Stealing
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Wand of Shadowsight
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Wand of the Wind
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Dust of Appearance
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Goblin Land Mines
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Scepter of Mastery
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Rod of Necromancy
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Spider Silk Broach
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Healing Salve
                    (Item-type of (Item carried by CusNaga in slot (Integer A))) Equal to Wand of Negation
                    (Item-type of (Item carried by CusNaga 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 CusNaga in slot (Integer A)))
              Else - Actions
          Else - Actions
    -------- Show code to player --------
    Custom script: set udg_Code = SaveLoad_Encode()
    Game - Display to (All players) for 600.00 seconds the text: (Code: + Code)
SaveLoad Save B
  Events
  Conditions
  Actions
    -------- Generate Code B --------
    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] = 1072
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = SaveLoad_Security_Number
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Number of items carried by Furion)
    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 Furion in slot (Integer A)) Not equal to No item
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by Furion 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 Furion in slot (Integer A))) Equal to Healing Wards
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Sentry Wards
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Talisman of the Wild
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Wand of Illusion
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Wand of Lightning Shield
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Wand of Mana Stealing
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Wand of Shadowsight
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Wand of the Wind
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Dust of Appearance
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Goblin Land Mines
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Scepter of Mastery
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Rod of Necromancy
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Spider Silk Broach
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Healing Salve
                    (Item-type of (Item carried by Furion in slot (Integer A))) Equal to Wand of Negation
                    (Item-type of (Item carried by Furion 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 Furion in slot (Integer A)))
              Else - Actions
          Else - Actions
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Number of items carried by Tyrande)
    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 Tyrande in slot (Integer A)) Not equal to No item
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by Tyrande 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 Tyrande in slot (Integer A))) Equal to Healing Wards
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Sentry Wards
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Talisman of the Wild
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Wand of Illusion
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Wand of Lightning Shield
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Wand of Mana Stealing
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Wand of Shadowsight
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Wand of the Wind
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Dust of Appearance
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Goblin Land Mines
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Scepter of Mastery
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Rod of Necromancy
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Spider Silk Broach
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Healing Salve
                    (Item-type of (Item carried by Tyrande in slot (Integer A))) Equal to Wand of Negation
                    (Item-type of (Item carried by Tyrande 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 Tyrande in slot (Integer A)))
              Else - Actions
          Else - Actions
    -------- Show code to player --------
    Custom script: set udg_Code = SaveLoad_Encode()
    Game - Display to (All players) for 600.00 seconds the text: (Code |cff60cc60B|r: + Code)
Two Player Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Player_One = Player 2 (Blue)
    Set VariableSet Player_One_Color = 4
    Set VariableSet Player_Two = Player 3 (Teal)
    Set VariableSet Player_Two_Color = 10
    Game - Disable ally color button and Disable creep camp button
    Trigger - Add to Tribute <gen> the event (Player_One types a chat message containing -gold (stringnoformat) as A substring)
    Trigger - Add to Tribute <gen> the event (Player_Two types a chat message containing -gold (stringnoformat) as A substring)
    Trigger - Add to Tribute <gen> the event (Player_One types a chat message containing -lumber (stringnoformat) as A substring)
    Trigger - Add to Tribute <gen> the event (Player_Two types a chat message containing -lumber (stringnoformat) as A substring)
    Trigger - Add to Player_Leaves <gen> the event (Player_One leaves the game)
    Trigger - Add to Player_Leaves <gen> the event (Player_Two leaves the game)
    Trigger - Add to Start_FINISH <gen> the event (Player_One types a chat message containing -ok (stringnoformat) as A substring)
    Trigger - Add to Start_FINISH <gen> the event (Player_Two types a chat message containing -ok (stringnoformat) as A substring)
    Trigger - Add to Start_TOOGLE_DIFFICULTY <gen> the event (Player_One types a chat message containing -normal (stringnoformat) as A substring)
    Trigger - Add to Start_TOOGLE_DIFFICULTY <gen> the event (Player_Two types a chat message containing -normal (stringnoformat) as A substring)
    Trigger - Add to Start_TOOGLE_DIFFICULTY <gen> the event (Player_One types a chat message containing -insane (stringnoformat) as A substring)
    Trigger - Add to Start_TOOGLE_DIFFICULTY <gen> the event (Player_Two types a chat message containing -insane (stringnoformat) as A substring)
    Trigger - Add to Enable_or_Disable_Experience <gen> the event (A unit owned by Player_One.Gains a level)
    Trigger - Add to Enable_or_Disable_Experience <gen> the event (A unit owned by Player_Two.Gains a level)
    Trigger - Add to Skip_Cinematic <gen> the event (Player_One skips a cinematic sequence)
    Trigger - Add to Skip_Cinematic <gen> the event (Player_Two skips a cinematic sequence)
    Trigger - Add to SaveLoad_Load <gen> the event (Player_One types a chat message containing -load (stringnoformat) as A substring)
    Trigger - Add to SaveLoad_Load <gen> the event (Player_Two types a chat message containing -load (stringnoformat) as A substring)
    Set VariableSet Powerups_Gold = 250
    Set VariableSet Powerups_Lumber = 250
    Player - Set Player_One.Food max to 60
    Player - Set Player_Two.Food max to 60
    -------- xxxxx --------
    Set VariableSet Player_Color_String[1] = |cffFF0202
    Set VariableSet Player_Color[1] = Red
    Set VariableSet Player_Color_String[2] = |cff0041FF
    Set VariableSet Player_Color[2] = Blue
    Set VariableSet Player_Color_String[3] = |cff1BE5B8
    Set VariableSet Player_Color[3] = Teal
    Set VariableSet Player_Color_String[4] = |cff530080
    Set VariableSet Player_Color[4] = Purple
    Set VariableSet Player_Color_String[5] = |cffFFFF00
    Set VariableSet Player_Color[5] = Yellow
    Set VariableSet Player_Color_String[6] = |cffFE890D
    Set VariableSet Player_Color[6] = Orange
    Set VariableSet Player_Color_String[7] = |cff1FBF00
    Set VariableSet Player_Color[7] = Green
    Set VariableSet Player_Color_String[8] = |cffE45AAA
    Set VariableSet Player_Color[8] = Pink
    Set VariableSet Player_Color_String[9] = |cff949596
    Set VariableSet Player_Color[9] = Gray
    Set VariableSet Player_Color_String[10] = |cff7DBEF1
    Set VariableSet Player_Color[10] = Light Blue
    Set VariableSet Player_Color_String[11] = |cff0F6145
    Set VariableSet Player_Color[11] = Dark Green
    Set VariableSet Player_Color_String[12] = |cff4D2903
    Set VariableSet Player_Color[12] = Brown
    Set VariableSet Share_REAL[1] = Tree of Life
    Set VariableSet Share_FAKE[1] = Tree of Life (Requirement)
    Set VariableSet Share_DISPLAY[1] = False
    Set VariableSet Share_REAL[2] = Tree of Ages
    Set VariableSet Share_FAKE[2] = Tree of Ages (Requirement)
    Set VariableSet Share_DISPLAY[2] = False
    Set VariableSet Share_REAL[3] = Tree of Eternity
    Set VariableSet Share_FAKE[3] = Tree of Eternity (Requirement)
    Set VariableSet Share_DISPLAY[3] = False
    Set VariableSet Share_REAL[4] = Altar of Elders
    Set VariableSet Share_FAKE[4] = Altar of Elders (Requirement)
    Set VariableSet Share_DISPLAY[4] = False
    Set VariableSet Share_REAL[5] = Hunter's Hall
    Set VariableSet Share_FAKE[5] = Hunter's Hall (Requirement)
    Set VariableSet Share_DISPLAY[5] = False
    Set VariableSet Share_REAL[6] = Ancient of Wind
    Set VariableSet Share_FAKE[6] = Ancient of Wind (Requirement)
    Set VariableSet Share_DISPLAY[6] = False
    Set VariableSet Share_REAL[7] = Ancient of Wonders
    Set VariableSet Share_FAKE[7] = Ancient of Wonders (Requirement)
    Set VariableSet Share_DISPLAY[7] = False
    For each (Integer A) from 1 to 7, do (Actions)
      Loop - Actions
        Set VariableSet TempGroup[1] = (Units owned by Player_One of type Share_REAL[(Integer A)])
        Set VariableSet TempGroup[2] = (Units owned by Player_Two of type Share_REAL[(Integer A)])
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Number of units in TempGroup[1]) + (Number of units in TempGroup[2])) Not equal to 0
          Then - Actions
            Set VariableSet Share_DISPLAY[(Integer A)] = True
          Else - Actions
        Custom script: call DestroyGroup(udg_TempGroup[1])
        Custom script: call DestroyGroup(udg_TempGroup[2])
Start SCREEN INIT
  Events
  Conditions
  Actions
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Set VariableSet Cinematic_Preparation_Finished = False
    Trigger - Run Prepare_for_Cinematic <gen> (checking conditions)
    Wait until (Cinematic_Preparation_Finished Equal to True), checking every 0.10 seconds
    Environment - Reset fog to default values
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Main Screen.
    Sound - Set the music list to Music, starting with song 0
    Visibility - Create an initially Enabled visibility modifier for Player_One emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player_Two emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    Set VariableSet Difficulty = Normal
    Set VariableSet Code_Is_Active = False
    Trigger - Run Start_SCREEN_TEXT <gen> (ignoring conditions)
Start SCREEN TEXT
  Events
  Conditions
    GameHasStarted Equal to False
  Actions
    Cinematic - Clear the screen of text messages for (All players).
    Trigger - Run Hero_Stats_INITIATE <gen> (ignoring conditions)
    Game - Display to (All players) for 600.00 seconds the text: |cff60cc60CHAPTER EIGHT|rThe Brothers Stormrage
    Game - Display to (All players) for 600.00 seconds the text: (|cff60cc60Difficulty:|r |cffffcc00 + (Difficulty + |r))
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: |cff727272You can adjust the difficulty by typing |cffffffff-Normal|r |cff727272or|r |cffffffff-Insane|r|cff727272.|r
    Game - Display to (All players) for 600.00 seconds the text: |cff727272You can use the codes received at the end of the previous map to|r |cffffffff-load|r |cff727272your heroes' stats, items and skills.|r
    Game - Display to (All players) for 600.00 seconds the text: |cff727272If you're done, you can start the level by both players typing|r |cffffffff-ok|r|cff727272.|r
Start TOOGLE DIFFICULTY
  Events
  Conditions
    GameHasStarted Equal to False
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Difficulty Equal to Normal
        (Matched chat string) Equal to -insane
      Then - Actions
        Set VariableSet Difficulty = Insane
        Sound - Play QuestLog <gen>
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Difficulty Equal to Insane
        (Matched chat string) Equal to -normal
      Then - Actions
        Set VariableSet Difficulty = Normal
        Sound - Play QuestLog <gen>
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
      Else - Actions
Start FINISH
  Events
  Conditions
    GameHasStarted Equal to False
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Name of (Triggering player)) Equal to WorldEdit
      Then - Actions
        Set VariableSet Player_One_Agreed = True
        Set VariableSet Player_Two_Agreed = True
        Player - For Player_One, turn Shared units On toward Player_Two
        Player - For Player_One, turn Full shared units On toward Player_Two
        Player - For Player_Two, turn Shared units On toward Player_One
        Player - For Player_Two, turn Full shared units On toward Player_One
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player_One
      Then - Actions
        Set VariableSet Player_One_Agreed = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player_Two
      Then - Actions
        Set VariableSet Player_Two_Agreed = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Player_One_Agreed Equal to True
        Player_Two_Agreed Equal to True
      Then - Actions
        Sound - Play GoodJob <gen>
        Cinematic - Clear the screen of text messages for (All players).
        Multiboard - Hide Mutliboard_Hero_Statistics
        Multiboard - Destroy Mutliboard_Hero_Statistics
        Unit Group - Pick every unit in HiddenUnits and do (Actions)
          Loop - Actions
            Unit - Unhide (Picked unit)
            Unit Group - Remove (Picked unit) from HiddenUnits.
        Unit - Hide Maiev
        Unit - Hide NewWarden
        Unit - Change ownership of Illidan to Player 2 (Blue) and Change color
        Unit - Change ownership of Furion to Player 4 (Purple) and Change color
        Unit - Change ownership of CusNaga to Player 3 (Teal) and Change color
        Unit - Change ownership of Tyrande to Player 10 (Light Blue) and Change color
        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-type of (Item carried by Maiev in slot (Integer A))) Not equal to EMPTY
              Then - Actions
                Hero - Drop the item from slot (Integer A) of Maiev.
                Hero - Give (Last dropped item) to Stash 0111 <gen>
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Item-type of (Item carried by NewWarden in slot (Integer A))) Not equal to EMPTY
              Then - Actions
                Hero - Drop the item from slot (Integer A) of NewWarden.
                Hero - Give (Last dropped item) to Stash 0112 <gen>
              Else - Actions
        Trigger - Run Start_APPLY_CHANGES <gen> (ignoring conditions)
        Trigger - Run Powerups_COMMON <gen> (ignoring conditions)
        Set VariableSet GameHasStarted = True
        Player - Make Player 10 (Light Blue) treat Player 2 (Blue) as an Ally with shared vision and full shared units
        Player - Make Player 4 (Purple) treat Player 3 (Teal) as an Ally with shared vision and full shared units
        Trigger - Run MU_Gen <gen> (ignoring conditions)
        Trigger - Add Intro_Cinematic_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
Start APPLY CHANGES
  Events
  Conditions
    GameHasStarted Equal to False
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Difficulty Not equal to Insane
      Then - Actions
        Player - Set Player 2 (Blue).Current gold to 250
        Player - Set Player 2 (Blue).Current lumber to 250
        Player - Set Player 3 (Teal).Current gold to 250
        Player - Set Player 3 (Teal).Current lumber to 250
        Player - Set Player 10 (Light Blue).Current gold to 500
        Player - Set Player 10 (Light Blue).Current lumber to 500
        Player - Set Player 4 (Purple).Current gold to 500
        Player - Set Player 4 (Purple).Current lumber to 500
        -------- r --------
        Set VariableSet TempGroup[1] = (Units of type Death Knight)
        Unit Group - Pick every unit in TempGroup[1] and do (Actions)
          Loop - Actions
            Hero - Disable experience gain for (Picked unit).
            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 (Picked unit) in slot (Integer A)) Equal to No item
                  Then - Actions
                    Hero - Create Phat Lewt and give it to (Picked unit)
                  Else - Actions
        Custom script: call DestroyGroup(udg_TempGroup[1])
        Set VariableSet TempGroup[1] = (Units of type Lich)
        Unit Group - Pick every unit in TempGroup[1] and do (Actions)
          Loop - Actions
            Hero - Disable experience gain for (Picked unit).
            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 (Picked unit) in slot (Integer A)) Equal to No item
                  Then - Actions
                    Hero - Create Phat Lewt and give it to (Picked unit)
                  Else - Actions
        Custom script: call DestroyGroup(udg_TempGroup[1])
        Set VariableSet TempGroup[1] = (Units of type Dreadlord)
        Unit Group - Pick every unit in TempGroup[1] and do (Actions)
          Loop - Actions
            Hero - Disable experience gain for (Picked unit).
            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 (Picked unit) in slot (Integer A)) Equal to No item
                  Then - Actions
                    Hero - Create Phat Lewt and give it to (Picked unit)
                  Else - Actions
        Custom script: call DestroyGroup(udg_TempGroup[1])
      Else - Actions
        For each (Integer A) from 1 to 12, do (Actions)
          Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Or - Any (Conditions) are true
                  Conditions
                    (Integer A) Equal to 1
                    (Integer A) Equal to 5
                    (Integer A) Equal to 6
                    (Integer A) Equal to 7
                    (Integer A) Equal to 9
                    (Integer A) Equal to 11
                    (Integer A) Equal to 12
              Then - Actions
                Player - Set the current research level of Rume (techcode) to 3 for (Player((Integer A)))
                Player - Set the current research level of Rura (techcode) to 3 for (Player((Integer A)))
                Player - Set the current research level of Ruar (techcode) to 3 for (Player((Integer A)))
                Player - Set the current research level of Rucr (techcode) to 3 for (Player((Integer A)))
                Player - Set the current research level of Rune (techcode) to 2 for (Player((Integer A)))
                Player - Set the current research level of Ruba (techcode) to 2 for (Player((Integer A)))
                Player - Set the current research level of Ruac (techcode) to 1 for (Player((Integer A)))
                Player - Set the current research level of Rugf (techcode) to 1 for (Player((Integer A)))
                Player - Set the current research level of Rufb (techcode) to 1 for (Player((Integer A)))
                Player - Set the current research level of Rusl (techcode) to 1 for (Player((Integer A)))
                Player - Set the current research level of Rupc (techcode) to 1 for (Player((Integer A)))
                Player - Set the current research level of Rusm (techcode) to 1 for (Player((Integer A)))
                Player - Set the current research level of Rusp (techcode) to 1 for (Player((Integer A)))
                Player - Set the current research level of Ruex (techcode) to 1 for (Player((Integer A)))
              Else - Actions
        -------- r --------
        Player - Set Player 2 (Blue).Current gold to 100
        Player - Set Player 2 (Blue).Current lumber to 0
        Player - Set Player 3 (Teal).Current gold to 100
        Player - Set Player 3 (Teal).Current lumber to 0
        Player - Set Player 10 (Light Blue).Current gold to 400
        Player - Set Player 10 (Light Blue).Current lumber to 400
        Player - Set Player 4 (Purple).Current gold to 400
        Player - Set Player 4 (Purple).Current lumber to 400
        -------- r --------
        Set VariableSet TempGroup[1] = (Units owned by Player 8 (Pink).)
        Unit Group - Pick every unit in TempGroup[1] and do (Actions)
          Loop - Actions
            Unit - Add Resistant Skin (Neutral Hostile 2) to (Picked unit)
        Custom script: call DestroyGroup(udg_TempGroup[1])
        Set VariableSet TempGroup[1] = (Units of type Death Knight)
        Unit Group - Pick every unit in TempGroup[1] and do (Actions)
          Loop - Actions
            Hero - Set (Picked unit) Hero-level to 10, Hide level-up graphics
            Hero - Learn skill for (Picked unit): Undead Death Knight - Death Coil
            Hero - Learn skill for (Picked unit): Undead Death Knight - Death Coil
            Hero - Learn skill for (Picked unit): Undead Death Knight - Death Coil
            Hero - Learn skill for (Picked unit): Undead Death Knight - Death Pact
            Hero - Learn skill for (Picked unit): Undead Death Knight - Death Pact
            Hero - Learn skill for (Picked unit): Undead Death Knight - Death Pact
            Hero - Learn skill for (Picked unit): Undead Death Knight - Unholy Aura
            Hero - Learn skill for (Picked unit): Undead Death Knight - Unholy Aura
            Hero - Learn skill for (Picked unit): Undead Death Knight - Unholy Aura
            -------- - --------
            Unit - Remove Animate Dead from (Picked unit)
            Hero - Modify unspent skill points of (Picked unit): Set to 0 points
            Unit - Add Doom (Knight) to (Picked unit)
            Unit - Add Summon Stuff (Knight) to (Picked unit)
            -------- - --------
            Hero - Create Staff of Silence and give it to (Picked unit)
            Hero - Create Staff of Negation and give it to (Picked unit)
            -------- - --------
            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 (Picked unit) in slot (Integer A)) Equal to No item
                  Then - Actions
                    Hero - Create Phat Lewt and give it to (Picked unit)
                  Else - Actions
            -------- - --------
            Hero - Modify Strength of (Picked unit): Add 14.
            Hero - Modify Agility of (Picked unit): Add 8.
            Hero - Modify Intelligence of (Picked unit): Add 9.
        Custom script: call DestroyGroup(udg_TempGroup[1])
        Set VariableSet TempGroup[1] = (Units of type Lich)
        Unit Group - Pick every unit in TempGroup[1] and do (Actions)
          Loop - Actions
            Hero - Set (Picked unit) Hero-level to 10, Hide level-up graphics
            Hero - Learn skill for (Picked unit): Undead Lich - Frost Nova
            Hero - Learn skill for (Picked unit): Undead Lich - Frost Nova
            Hero - Learn skill for (Picked unit): Undead Lich - Frost Nova
            Hero - Learn skill for (Picked unit): Undead Lich - Frost Armor
            Hero - Learn skill for (Picked unit): Undead Lich - Frost Armor
            Hero - Learn skill for (Picked unit): Undead Lich - Frost Armor
            Hero - Learn skill for (Picked unit): Undead Lich - Dark Ritual
            Hero - Learn skill for (Picked unit): Undead Lich - Dark Ritual
            Hero - Learn skill for (Picked unit): Undead Lich - Dark Ritual
            Hero - Learn skill for (Picked unit): Undead Lich - Death And Decay
            -------- - --------
            Hero - Modify unspent skill points of (Picked unit): Set to 0 points
            Unit - Add Mana Shield (Lich) to (Picked unit)
            -------- - --------
            Hero - Create Staff of Silence and give it to (Picked unit)
            Hero - Create Staff of Negation and give it to (Picked unit)
            -------- - --------
            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 (Picked unit) in slot (Integer A)) Equal to No item
                  Then - Actions
                    Hero - Create Phat Lewt and give it to (Picked unit)
                  Else - Actions
            -------- - --------
            Hero - Modify Strength of (Picked unit): Add 10.
            Hero - Modify Agility of (Picked unit): Add 5.
            Hero - Modify Intelligence of (Picked unit): Add 17.
        Custom script: call DestroyGroup(udg_TempGroup[1])
        Set VariableSet TempGroup[1] = (Units of type Dreadlord)
        Unit Group - Pick every unit in TempGroup[1] and do (Actions)
          Loop - Actions
            Hero - Set (Picked unit) Hero-level to 10, Hide level-up graphics
            Hero - Learn skill for (Picked unit): Undead Dreadlord - Carrion Swarm
            Hero - Learn skill for (Picked unit): Undead Dreadlord - Carrion Swarm
            Hero - Learn skill for (Picked unit): Undead Dreadlord - Carrion Swarm
            Hero - Learn skill for (Picked unit): Undead Dreadlord - Vampiric Aura
            Hero - Learn skill for (Picked unit): Undead Dreadlord - Vampiric Aura
            Hero - Learn skill for (Picked unit): Undead Dreadlord - Vampiric Aura
            Hero - Learn skill for (Picked unit): Undead Dreadlord - Inferno
            -------- - --------
            Unit - Remove Sleep from (Picked unit)
            Hero - Modify unspent skill points of (Picked unit): Set to 0 points
            Unit - Add Soul Burn (Dreadlord) to (Picked unit)
            Unit - Add Army of Darkness (Dreadlord) to (Picked unit)
            -------- - --------
            Hero - Create Staff of Silence and give it to (Picked unit)
            Hero - Create Staff of Negation and give it to (Picked unit)
            -------- - --------
            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 (Picked unit) in slot (Integer A)) Equal to No item
                  Then - Actions
                    Hero - Create Phat Lewt and give it to (Picked unit)
                  Else - Actions
            -------- - --------
            Hero - Modify Strength of (Picked unit): Add 13.
            Hero - Modify Agility of (Picked unit): Add 5.
            Hero - Modify Intelligence of (Picked unit): Add 13.
        Custom script: call DestroyGroup(udg_TempGroup[1])
        -------- r --------
        Player - Set the current research level of R001 (techcode) to 1 for Player 8 (Pink)
    Trigger - Run Share_COMMON <gen> (checking conditions)
End Game SCREEN TEXT
  Events
  Conditions
  Actions
    Trigger - Run Hero_Stats_INITIATE <gen> (ignoring conditions)
    Game - Display to (All players) for 600.00 seconds the text: |cff60cc60MISSION COMPLETED|rThe Brothers Stormrage
    Game - Display to (All players) for 600.00 seconds the text:
    Trigger - Run SaveLoad_Save_A <gen> (ignoring conditions)
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: |cff727272You can use this code on |cffffffffGates of the Abyss|r |cff727272 to load Illidan's and Naj'entus' items.|r
End Game SCREEN INIT
  Events
  Conditions
  Actions
    Trigger - Clear the trigger queue
    Cinematic - Turn cinematic mode Off for (All players)
    Cinematic - Clear the screen of text messages for (All players).
    Sound - Play QuestCompleted <gen>
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Main Screen.
    Unit - Change ownership of Maiev to Neutral Passive and Change color
    Unit - Change ownership of Furion to Neutral Passive and Change color
    Unit - Change ownership of Illidan to Neutral Passive and Change color
    Unit - Change ownership of NewWarden to Neutral Passive and Change color
    Unit - Change ownership of Tyrande to Neutral Passive and Change color
    Unit - Change ownership of CusNaga to Neutral Passive and Change color
    Set VariableSet Maiev = No unit
    Set VariableSet NewWarden = No unit
    Set VariableSet Tyrande = No unit
    Set VariableSet Malfurion = No unit
    Set VariableSet Furion = No unit
    Visibility - Create an initially Enabled visibility modifier for Player_One emitting Black mask across (Playable map area)
    Visibility - Create an initially Enabled visibility modifier for Player_Two emitting Black mask across (Playable map area)
    Trigger - Run Prepare_for_Cinematic <gen> (checking conditions)
    Trigger - Run End_Game_SCREEN_TEXT <gen> (checking conditions)
Powerups ACQUIRE
  Events
    Unit - A unit Acquires an item
  Conditions
  Actions
    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 being manipulated)) Equal to Gold Coins
            (Item-type of (Item being manipulated)) Equal to Bundle of Lumber
            (Item-type of (Item being manipulated)) Equal to Tome of Agility
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Agility
            (Item-type of (Item being manipulated)) Equal to Tome of Intelligence
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Intelligence
            (Item-type of (Item being manipulated)) Equal to Tome of Strength
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Strength
            (Item-type of (Item being manipulated)) Equal to Manual of Health
            (Item-type of (Item being manipulated)) Equal to Tome of Knowledge
            (Item-type of (Item being manipulated)) Equal to Glyph of Fortification
        Or - Any (Conditions) are true
          Conditions
            (Owner of (Hero manipulating item)) Equal to Player_One
            (Owner of (Hero manipulating item)) Equal to Player_Two
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Owner of (Hero manipulating item)) Equal to Player_One
          Then - Actions
            Game - Display to (Player group(Player_One)) the text: (((Player_Color_String[Player_One_Color] + (Name of Player_One)) + |r has acquired a |cffffcc00) + ((Name of (Item being manipulated)) + |r.))
            Game - Display to (Player group(Player_Two)) the text: (((Player_Color_String[Player_One_Color] + (Name of Player_One)) + |r has acquired a |cffffcc00) + ((Name of (Item being manipulated)) + |r.))
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Owner of (Hero manipulating item)) Equal to Player_Two
          Then - Actions
            Game - Display to (Player group(Player_One)) the text: (((Player_Color_String[Player_Two_Color] + (Name of Player_Two)) + |r has acquired a |cffffcc00) + ((Name of (Item being manipulated)) + |r.))
            Game - Display to (Player group(Player_Two)) the text: (((Player_Color_String[Player_Two_Color] + (Name of Player_Two)) + |r has acquired a |cffffcc00) + ((Name of (Item being manipulated)) + |r.))
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Gold Coins
          Then - Actions
            Player - Add (Powerups_Gold / 2) to Player_One.Current gold
            Player - Add (Powerups_Gold / 2) to Player_Two.Current gold
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\ResourceItems\ResourceEffectTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Floating Text - Create floating text that reads (|cffffcc00+ + (String((Powerups_Gold / 2)))) at TempPoint[1] with Z offset 0, using font size 10, color (100%, 100%, 100%), and 0% transparency
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
            Floating Text - Change (Last created floating text): Disable permanence
            Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            Floating Text - Change the fading age of (Last created floating text) to 2.40 seconds
            Floating Text - Change the fading age of (Last created floating text) to 2.40 seconds
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Bundle of Lumber
          Then - Actions
            Player - Add (Powerups_Lumber / 2) to Player_One.Current lumber
            Player - Add (Powerups_Lumber / 2) to Player_Two.Current lumber
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Floating Text - Create floating text that reads (|cff60cc60+ + (String((Powerups_Lumber / 2)))) at TempPoint[1] with Z offset 0, using font size 10, color (100%, 100%, 100%), and 0% transparency
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
            Floating Text - Change (Last created floating text): Disable permanence
            Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            Floating Text - Change the fading age of (Last created floating text) to 2.40 seconds
            Floating Text - Change the fading age of (Last created floating text) to 2.40 seconds
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Intelligence
          Then - Actions
            Set VariableSet Bonus_Intelligence = (Bonus_Intelligence + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIim\AIimTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Intelligence
          Then - Actions
            Set VariableSet Bonus_Intelligence = (Bonus_Intelligence + 2)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIim\AIimTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Agility
          Then - Actions
            Set VariableSet Bonus_Agility = (Bonus_Agility + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIam\AIamTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Agility
          Then - Actions
            Set VariableSet Bonus_Agility = (Bonus_Agility + 2)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIam\AIamTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Strength
          Then - Actions
            Set VariableSet Bonus_Strength = (Bonus_Strength + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIsm\AIsmTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Strength
          Then - Actions
            Set VariableSet Bonus_Strength = (Bonus_Strength + 2)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIsm\AIsmTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Manual of Health
          Then - Actions
            Set VariableSet Bonus_Strength = (Bonus_Strength + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIsm\AIsmTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Knowledge
          Then - Actions
            Set VariableSet Bonus_Strength = (Bonus_Strength + 1)
            Set VariableSet Bonus_Intelligence = (Bonus_Intelligence + 1)
            Set VariableSet Bonus_Agility = (Bonus_Agility + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIem\AIemTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Glyph of Fortification
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Hero manipulating item)) Equal to Player_One
              Then - Actions
                Player - Set the current research level of Rgfo (techcode) to (Current research level of Rgfo (techcode) for Player_One) for Player_Two
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Hero manipulating item)) Equal to Player_Two
              Then - Actions
                Player - Set the current research level of Rgfo (techcode) to (Current research level of Rgfo (techcode) for Player_Two) for Player_One
              Else - Actions
          Else - Actions
      Else - Actions
Powerups COMMON
  Events
  Conditions
  Actions
    Set VariableSet TempGroup[1] = (Units owned by Player 4 (Purple) matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in TempGroup[1] and do (Actions)
      Loop - Actions
        Unit - Add Agility Bonus (Powerups) to (Picked unit)
        Unit - Set level of Agility Bonus (Powerups) for (Picked unit) to (Bonus_Agility + 1)
        Unit - Add Strength Bonus (Powerups) to (Picked unit)
        Unit - Set level of Strength Bonus (Powerups) for (Picked unit) to (Bonus_Strength + 1)
        Unit - Add Intelligence Bonus (Powerups) to (Picked unit)
        Unit - Set level of Intelligence Bonus (Powerups) for (Picked unit) to (Bonus_Intelligence + 1)
    Custom script: call DestroyGroup(udg_TempGroup[1])
    Set VariableSet TempGroup[1] = (Units owned by Player 10 (Light Blue) matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in TempGroup[1] and do (Actions)
      Loop - Actions
        Unit - Add Agility Bonus (Powerups) to (Picked unit)
        Unit - Set level of Agility Bonus (Powerups) for (Picked unit) to (Bonus_Agility + 1)
        Unit - Add Strength Bonus (Powerups) to (Picked unit)
        Unit - Set level of Strength Bonus (Powerups) for (Picked unit) to (Bonus_Strength + 1)
        Unit - Add Intelligence Bonus (Powerups) to (Picked unit)
        Unit - Set level of Intelligence Bonus (Powerups) for (Picked unit) to (Bonus_Intelligence + 1)
    Custom script: call DestroyGroup(udg_TempGroup[1])
Share INIT
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Research_Type[1] = Resm (techcode)
    Set VariableSet Research_Name_1[1] = Strength of the Moon
    Set VariableSet Research_Name_2[1] = Improved Strength of the Moon
    Set VariableSet Research_Name_3[1] = Advanced Strength of the Moon
    Set VariableSet Research_Type[2] = Resw (techcode)
    Set VariableSet Research_Name_1[2] = Strength of the Wild
    Set VariableSet Research_Name_2[2] = Improved Strength of the Wild
    Set VariableSet Research_Name_3[2] = Advanced Strength of the Wild
    Set VariableSet Research_Type[3] = Rema (techcode)
    Set VariableSet Research_Name_1[3] = Moon Armor
    Set VariableSet Research_Name_2[3] = Improved Moon Armor
    Set VariableSet Research_Name_3[3] = Advanced Moon Armor
    Set VariableSet Research_Type[4] = Rerh (techcode)
    Set VariableSet Research_Name_1[4] = Reinforced Hides
    Set VariableSet Research_Name_2[4] = Improved Reinforced Hides
    Set VariableSet Research_Name_3[4] = Advanced Reinforced Hides
    Set VariableSet Research_Type[5] = Reuv (techcode)
    Set VariableSet Research_Name_1[5] = Ultravision
    Set VariableSet Research_Type[6] = Renb (techcode)
    Set VariableSet Research_Name_1[6] = Nature's Blessing
    Set VariableSet Research_Type[7] = Resc (techcode)
    Set VariableSet Research_Name_1[7] = Sentinel
    Set VariableSet Research_Type[8] = Remg (techcode)
    Set VariableSet Research_Name_1[8] = Upgrade Moon Glaive
    Set VariableSet Research_Type[9] = Reib (techcode)
    Set VariableSet Research_Name_1[9] = Improved Bows
    Set VariableSet Research_Type[10] = Remk (techcode)
    Set VariableSet Research_Name_1[10] = Marksmanship
    Set VariableSet Research_Type[11] = Redt (techcode)
    Set VariableSet Research_Name_1[11] = Druid of the Talon Adept Training
    Set VariableSet Research_Name_2[11] = Druid of the Talon Master Training
    Set VariableSet Research_Type[12] = Redc (techcode)
    Set VariableSet Research_Name_1[12] = Druid of the Claw Adept Training
    Set VariableSet Research_Name_2[12] = Druid of the Claw Master Training
    Set VariableSet Research_Type[13] = Resi (techcode)
    Set VariableSet Research_Name_1[13] = Abolish Magic
    Set VariableSet Research_Type[14] = Recb (techcode)
    Set VariableSet Research_Name_1[14] = Corrosive Breath
    Set VariableSet Research_Type[15] = Reht (techcode)
    Set VariableSet Research_Name_1[15] = Hyppogryph Taming
    Set VariableSet Research_Type[16] = Repb (techcode)
    Set VariableSet Research_Name_1[16] = Vorpal Blades
    Set VariableSet Research_Type[17] = Rers (techcode)
    Set VariableSet Research_Name_1[17] = Resistant Skin
    Set VariableSet Research_Type[18] = Rehs (techcode)
    Set VariableSet Research_Name_1[18] = Hardened Skin
    Set VariableSet Research_Type[19] = Reeb (techcode)
    Set VariableSet Research_Name_1[19] = Mark of the Claw
    Set VariableSet Research_Type[20] = Reec (techcode)
    Set VariableSet Research_Name_1[20] = Mark of the Talon
    Set VariableSet Research_Type[21] = Rews (techcode)
    Set VariableSet Research_Name_1[21] = Well Spring
Share Research BEGIN
  Events
    Unit - A unit Begins research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Researched tech-type) Equal to Resm (techcode)
        (Researched tech-type) Equal to Resw (techcode)
        (Researched tech-type) Equal to Rema (techcode)
        (Researched tech-type) Equal to Rerh (techcode)
        (Researched tech-type) Equal to Reuv (techcode)
        (Researched tech-type) Equal to Renb (techcode)
        (Researched tech-type) Equal to Resc (techcode)
        (Researched tech-type) Equal to Remg (techcode)
        (Researched tech-type) Equal to Reib (techcode)
        (Researched tech-type) Equal to Remk (techcode)
        (Researched tech-type) Equal to Redt (techcode)
        (Researched tech-type) Equal to Redc (techcode)
        (Researched tech-type) Equal to Resi (techcode)
        (Researched tech-type) Equal to Recb (techcode)
        (Researched tech-type) Equal to Reht (techcode)
        (Researched tech-type) Equal to Repb (techcode)
        (Researched tech-type) Equal to Rers (techcode)
        (Researched tech-type) Equal to Rehs (techcode)
        (Researched tech-type) Equal to Reeb (techcode)
        (Researched tech-type) Equal to Reec (techcode)
        (Researched tech-type) Equal to Rews (techcode)
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player 4 (Purple)
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Current research level of (Researched tech-type) for Player 10 (Light Blue)) for Player 10 (Light Blue)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player 10 (Light Blue)
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Current research level of (Researched tech-type) for Player 4 (Purple)) for Player 4 (Purple)
      Else - Actions
    Trigger - Run Share_COMMON <gen> (checking conditions)
Share Research CANCEL
  Events
    Unit - A unit Cancels research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Researched tech-type) Equal to Resm (techcode)
        (Researched tech-type) Equal to Resw (techcode)
        (Researched tech-type) Equal to Rema (techcode)
        (Researched tech-type) Equal to Rerh (techcode)
        (Researched tech-type) Equal to Reuv (techcode)
        (Researched tech-type) Equal to Renb (techcode)
        (Researched tech-type) Equal to Resc (techcode)
        (Researched tech-type) Equal to Remg (techcode)
        (Researched tech-type) Equal to Reib (techcode)
        (Researched tech-type) Equal to Remk (techcode)
        (Researched tech-type) Equal to Redt (techcode)
        (Researched tech-type) Equal to Redc (techcode)
        (Researched tech-type) Equal to Resi (techcode)
        (Researched tech-type) Equal to Recb (techcode)
        (Researched tech-type) Equal to Reht (techcode)
        (Researched tech-type) Equal to Repb (techcode)
        (Researched tech-type) Equal to Rers (techcode)
        (Researched tech-type) Equal to Rehs (techcode)
        (Researched tech-type) Equal to Reeb (techcode)
        (Researched tech-type) Equal to Reec (techcode)
        (Researched tech-type) Equal to Rews (techcode)
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player 4 (Purple)
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Max research level of (Researched tech-type) for Player 4 (Purple)) for Player 10 (Light Blue)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player 10 (Light Blue)
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Max research level of (Researched tech-type) for Player 10 (Light Blue)) for Player 4 (Purple)
      Else - Actions
    Trigger - Run Share_COMMON <gen> (checking conditions)
|cff6060ffRESEARCH:|r
Share Research FINISH
  Events
    Unit - A unit Finishes research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Researched tech-type) Equal to Resm (techcode)
        (Researched tech-type) Equal to Resw (techcode)
        (Researched tech-type) Equal to Rema (techcode)
        (Researched tech-type) Equal to Rerh (techcode)
        (Researched tech-type) Equal to Reuv (techcode)
        (Researched tech-type) Equal to Renb (techcode)
        (Researched tech-type) Equal to Resc (techcode)
        (Researched tech-type) Equal to Remg (techcode)
        (Researched tech-type) Equal to Reib (techcode)
        (Researched tech-type) Equal to Remk (techcode)
        (Researched tech-type) Equal to Redt (techcode)
        (Researched tech-type) Equal to Redc (techcode)
        (Researched tech-type) Equal to Resi (techcode)
        (Researched tech-type) Equal to Recb (techcode)
        (Researched tech-type) Equal to Reht (techcode)
        (Researched tech-type) Equal to Repb (techcode)
        (Researched tech-type) Equal to Rers (techcode)
        (Researched tech-type) Equal to Rehs (techcode)
        (Researched tech-type) Equal to Reeb (techcode)
        (Researched tech-type) Equal to Reec (techcode)
        (Researched tech-type) Equal to Rews (techcode)
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player 4 (Purple)
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Max research level of (Researched tech-type) for Player 4 (Purple)) for Player 10 (Light Blue)
        Player - Set the current research level of (Researched tech-type) to (Current research level of (Researched tech-type) for Player 4 (Purple)) for Player 10 (Light Blue)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player 10 (Light Blue)
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Max research level of (Researched tech-type) for Player 10 (Light Blue)) for Player 4 (Purple)
        Player - Set the current research level of (Researched tech-type) to (Current research level of (Researched tech-type) for Player 10 (Light Blue)) for Player 4 (Purple)
      Else - Actions
    For each (Integer A) from 1 to 21, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Researched tech-type) Equal to Research_Type[(Integer A)]
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Researching unit)) Equal to Player 4 (Purple)
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Current research level of (Researched tech-type) for Player 4 (Purple)) Equal to 1
                  Then - Actions
                    Game - Display to (All players) the text: ((Player_Color_String[2] + (Name of Player 4 (Purple))) + (|r has researched |cffffcc00 + (Research_Name_1[(Integer A)] + |r.)))
                  Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        (Current research level of (Researched tech-type) for Player 4 (Purple)) Equal to 2
                      Then - Actions
                        Game - Display to (All players) the text: ((Player_Color_String[2] + (Name of Player 4 (Purple))) + (|r has researched |cffffcc00 + (Research_Name_2[(Integer A)] + |r.)))