SET_GENERATE_SPEED(400)

START_MONEY(ALL_PLAYERS,18000)

COMPUTER_PLAYER(PLAYER1,10)
COMPUTER_PLAYER(PLAYER2,10)

ALLY_PLAYERS(PLAYER1,PLAYER2)
ALLY_PLAYERS(PLAYER2,PLAYER1)

MAX_CREATURES(PLAYER0,20)
MAX_CREATURES(PLAYER1,15)
MAX_CREATURES(PLAYER2,15)

ADD_CREATURE_TO_POOL(BUG,1)
ADD_CREATURE_TO_POOL(SPIDER,1)
ADD_CREATURE_TO_POOL(SORCEROR,3)
ADD_CREATURE_TO_POOL(BILE_DEMON,5)
ADD_CREATURE_TO_POOL(ORC,6)
ADD_CREATURE_TO_POOL(TROLL,2)
ADD_CREATURE_TO_POOL(HELL_HOUND,3)
ADD_CREATURE_TO_POOL(WIZARD,5)
ADD_CREATURE_TO_POOL(MONK,5)
ADD_CREATURE_TO_POOL(FAIRY,5)
ADD_CREATURE_TO_POOL(GIANT,5)
ADD_CREATURE_TO_POOL(BARBARIAN,5)
ADD_CREATURE_TO_POOL(ARCHER,5)

CREATURE_AVAILABLE(PLAYER0,BUG,1,1)
CREATURE_AVAILABLE(PLAYER0,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,1)
CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER0,ORC,1,1)
CREATURE_AVAILABLE(PLAYER0,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,1)
CREATURE_AVAILABLE(PLAYER0,HELL_HOUND,1,1)
CREATURE_AVAILABLE(PLAYER1,WIZARD,1,1)
CREATURE_AVAILABLE(PLAYER1,MONK,1,1)
CREATURE_AVAILABLE(PLAYER1,FAIRY,1,1)
CREATURE_AVAILABLE(PLAYER2,GIANT,1,1)
CREATURE_AVAILABLE(PLAYER2,BARBARIAN,1,1)
CREATURE_AVAILABLE(PLAYER2,ARCHER,1,1)

ROOM_AVAILABLE(	ALL_PLAYERS,TREASURE,1,1)
ROOM_AVAILABLE(	ALL_PLAYERS,LAIR,1,1)
ROOM_AVAILABLE(	ALL_PLAYERS,GARDEN,1,1)
ROOM_AVAILABLE(	ALL_PLAYERS,TRAINING,1,1)
ROOM_AVAILABLE(	ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER0,BRIDGE,1,0)
ROOM_AVAILABLE(PLAYER2,WORKSHOP,1,1)
ROOM_AVAILABLE(PLAYER1,PRISON,1,0)
ROOM_AVAILABLE(PLAYER2,TORTURE,1,0)
ROOM_AVAILABLE(PLAYER1,TEMPLE,1,0)

DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)

TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)

MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_SPEED,1,0)
MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(	ALL_PLAYERS,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(	PLAYER1,POWER_LIGHTNING,1,0)

CREATE_PARTY(A)
CREATE_PARTY(B)
CREATE_PARTY(C)
CREATE_PARTY(D)

ADD_TO_PARTY(A,ARCHER,4,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(A,ARCHER,4,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(A,DWARFA,5,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(A,BARBARIAN,3,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(A,FAIRY,5,100,ATTACK_ENEMIES,0)

ADD_TO_PARTY(B,ARCHER,7,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(B,ARCHER,7,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(B,DWARFA,8,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(B,BARBARIAN,6,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(B,FAIRY,8,100,ATTACK_ENEMIES,0)

ADD_TO_PARTY(C,BARBARIAN,9,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,BARBARIAN,9,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,SAMURAI,7,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,WIZARD,9,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,GIANT,10,100,ATTACK_ENEMIES,0)
ADD_TO_PARTY(C,GIANT,10,100,ATTACK_ENEMIES,0)

ADD_TO_PARTY(D,GIANT,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,SAMURAI,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,SAMURAI,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,WIZARD,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,WIZARD,10,200,ATTACK_ENEMIES,0)
ADD_TO_PARTY(D,AVATAR,10,3000,ATTACK_ENEMIES,0)

QUICK_OBJECTIVE(1,"You think there are only 20 levels in Dungeon Keeper? Let me tell you NO, as this is the 21st level! In this strange realm, the hero force is stronger than ever and they even have formed 3 parties! What's more, they also shamelessly kept many kinds of rooms and treasures as theirs! If you need to get them back, you have to steal them from heroes! Of course don't forget to kill them, they deserve it! Good luck!",PLAYER0)

SET_FLAG(PLAYER1,FLAG0,0)

IF(PLAYER0,GRAVEYARD>0)
	QUICK_INFORMATION(7,"There is only a small graveyard here, and the vampires generated from it are also weaker(can only train up to level 6.)",PLAYER0)
	SET_CREATURE_MAX_LEVEL(PLAYER0,VAMPIRE,6)
ENDIF

SET_TIMER(PLAYER0,TIMER0)

IF(PLAYER0,TIMER0>=7500)
	QUICK_INFORMATION(2,"Oh, the hero scout just noticed you and they start an attack.",PLAYER0)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,A,-1,DUNGEON,1,4,100)
ENDIF

IF(PLAYER0,TIMER0>=15000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,A,-1,DUNGEON,1,4,100)
ENDIF

IF(PLAYER0,TIMER0>=22500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,B,-2,DUNGEON,1,6,100)
ENDIF

IF(PLAYER0,TIMER0>=30000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,B,-2,DUNGEON,1,6,100)
ENDIF

IF(PLAYER0,TIMER0>=37500)
	QUICK_INFORMATION(3,"Seeing how strong you are, these heroes are calling for more troops to attack!",PLAYER0)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,A,-1,DUNGEON,1,4,100)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,B,-2,DUNGEON,1,6,100)
ENDIF

IF(PLAYER0,TIMER0>=45000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,B,-1,DUNGEON,1,6,100)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,B,-2,DUNGEON,1,6,100)
ENDIF

IF(PLAYER0,TIMER0>=52500)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,B,-1,DUNGEON,1,6,100)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,C,-2,DUNGEON,1,8,100)
ENDIF

IF(PLAYER0,TIMER0>=60000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,C,-1,DUNGEON,1,8,100)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,C,-2,DUNGEON,1,8,100)
ENDIF

IF(PLAYER0,TIMER0>=75000)
IF(PLAYER1,FLAG0==0)
	SET_FLAG(PLAYER1,FLAG0,1)
	SET_TIMER(PLAYER0,TIMER1)
	BONUS_LEVEL_TIME(500)
	QUICK_INFORMATION(4,"The Lord of the Land in this realm finally notices your presence. Beware of the final wave of hero attack!",PLAYER0)
ENDIF
ENDIF

IF_ACTION_POINT(1,PLAYER0)
IF(PLAYER1,FLAG0==0)
	SET_FLAG(PLAYER1,FLAG0,1)
	SET_TIMER(PLAYER0,TIMER1)
	BONUS_LEVEL_TIME(500)
	QUICK_INFORMATION(5,"The enemy alarm has been triggered.Beware of the final wave of hero attack!",PLAYER0)
ENDIF
ENDIF

IF_ACTION_POINT(2,PLAYER0)
IF(PLAYER1,FLAG0==0)
	SET_FLAG(PLAYER1,FLAG0,1)
	SET_TIMER(PLAYER0,TIMER1)
	BONUS_LEVEL_TIME(500)
	QUICK_INFORMATION(5,"The enemy alarm has been triggered.Beware of the final wave of hero attack!",PLAYER0)
ENDIF
ENDIF

IF(PLAYER0,TIMER1>=500)
	SET_FLAG(PLAYER0,FLAG0,1)
ENDIF

IF(PLAYER0,FLAG0==1)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,B,-2,DUNGEON,1,6,100)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,C,PLAYER_GOOD,DUNGEON,1,8,100)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,D,PLAYER_GOOD,DUNGEON,1,10,100)
ENDIF

IF(PLAYER0,FLAG0==1)
IF(PLAYER_GOOD,AVATAR==0)
IF(PLAYER0, ALL_DUNGEONS_DESTROYED==1)
	QUICK_OBJECTIVE(6,"The three hero parties and the Lord are all killed! You have conquered this realm! This will be the 21st victory of you! ",PLAYER0)
	WIN_GAME
ENDIF
ENDIF
ENDIF



