// -----------------------------------------------------------------
// JASS scripting Demo
// -----------------------------------------------------------------
globals
player user = PlayerEx(1)
constant integer Marshal = 'h00I'
constant integer Civilian_Centre = 'h000'
constant integer City_Centre = 'h002'
constant integer Armory = 'h003'
constant integer Tavern = 'n00V'
constant integer Worker = 'h004'
constant integer Militia = 'h001'
constant integer Reservist = 'n00R'
constant integer Spearman = 'n00W'
constant integer Veteran = 'n00T'
endglobals
// -----------------------------------------------------------------
// This will call when the AI script runs for the first time.
// -----------------------------------------------------------------
function main takes nothing returns nothing
call CampaignAI (HOUSE,null)
call SetReplacements (5,5,5)
call SetPeonsRepair (true)
call SetBuildUnitEx (1,1,1, Worker)
call SetBuildUnitEx (1,1,1, Civilian_Centre)
call SetBuildUnitEx (4,4,4, Armory)
call SetBuildUnitEx (12,12,12, HOUSE)
call SetBuildUnitEx (1,1,1, LUMBER_MILL)
call SetBuildUnitEx (1,1,1, BLACKSMITH)
call SetBuildUnitEx (1,1,1, HUMAN_ALTAR)
call SetBuildUnitEx (1,1,1, City_Centre)
call SetBuildUnitEx (3,3,3, Tavern)
call SetBuildUnitEx (12,12,12, Worker)
call CampaignDefenderEx (1,1,1, Marshal)
call CampaignDefenderEx (2,2,2, Veteran)
call CampaignDefenderEx (3,3,3, Spearman)
call CampaignDefenderEx (3,3,3, Reservist)
call CampaignDefenderEx (10,10,10, Militia)
call WaitForSignal ()
//***Wave 1 ***
call InitAssaultGroup()
call CampaignAttackerEx (12,12,12, Militia)
call SuicideOnPlayerEx (M6,M6,M6,user)
//***Wave 2 ***
call InitAssaultGroup()
call CampaignAttackerEx (1,1,1, Marshal)
call CampaignAttackerEx (2,2,2, Veteran)
call CampaignAttackerEx (3,3,3, Reservist)
call CampaignAttackerEx (4,4,4, Spearman)
call SuicideOnPlayerEx (M6,M6,M6,user)
//***Wave 3 ***
loop
call InitAssaultGroup()
call CampaignAttackerEx (12,12,12, Militia)
call SuicideOnPlayerEx (M6,M6,M6,user)
call InitAssaultGroup()
call CampaignAttackerEx (1,1,1, Marshal)
call CampaignAttackerEx (2,2,2, Veteran)
call CampaignAttackerEx (3,3,3, Reservist)
call CampaignAttackerEx (4,4,4, Spearman)
call SuicideOnPlayerEx (M6,M6,M6,user)
endloop
endfunction