LEVEL_VERSION(1)

SET_GENERATE_SPEED(600)

START_MONEY(PLAYER0, 15000)
START_MONEY(PLAYER1, 100000)
START_MONEY(PLAYER2, 100000)
START_MONEY(PLAYER3, 100000)

MAX_CREATURES(PLAYER0, 20)
MAX_CREATURES(PLAYER1, 25)
MAX_CREATURES(PLAYER2, 25)
MAX_CREATURES(PLAYER3, 25)

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

ALLY_PLAYERS(PLAYER1, PLAYER2,1)
ALLY_PLAYERS(PLAYER1, PLAYER3,1)
ALLY_PLAYERS(PLAYER2, PLAYER3,1)
ALLY_PLAYERS(PLAYER1, PLAYER_GOOD,1)
ALLY_PLAYERS(PLAYER2, PLAYER_GOOD,1)
ALLY_PLAYERS(PLAYER3, PLAYER_GOOD,1)

ADD_CREATURE_TO_POOL(DRAGON, 3)
ADD_CREATURE_TO_POOL(BILE_DEMON, 4)
ADD_CREATURE_TO_POOL(TROLL, 3)
ADD_CREATURE_TO_POOL(TENTACLE, 3)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 3)
ADD_CREATURE_TO_POOL(ORC, 5)
ADD_CREATURE_TO_POOL(SORCEROR, 2)
ADD_CREATURE_TO_POOL(HORNY, 1)

ADD_CREATURE_TO_POOL(FAIRY, 7)
ADD_CREATURE_TO_POOL(BARBARIAN, 8)
ADD_CREATURE_TO_POOL(DWARFA, 10)
ADD_CREATURE_TO_POOL(GIANT, 7)
ADD_CREATURE_TO_POOL(ARCHER, 10)
ADD_CREATURE_TO_POOL(MONK, 7)
ADD_CREATURE_TO_POOL(WIZARD, 5)
ADD_CREATURE_TO_POOL(WITCH, 6)
ADD_CREATURE_TO_POOL(SAMURAI, 6)

CREATURE_AVAILABLE(PLAYER0, DRAGON ,1,10)
CREATURE_AVAILABLE(PLAYER0, BILE_DEMON ,1,10)
CREATURE_AVAILABLE(PLAYER0, TROLL ,1,10)
CREATURE_AVAILABLE(PLAYER0, TENTACLE ,1,10)
CREATURE_AVAILABLE(PLAYER0, DARK_MISTRESS ,1,10)
CREATURE_AVAILABLE(PLAYER0, SORCEROR ,1,10)
CREATURE_AVAILABLE(PLAYER0, ORC ,1,10)

CREATURE_AVAILABLE(PLAYER1, FAIRY ,1,10)
CREATURE_AVAILABLE(PLAYER1, BARBARIAN ,1,10)
CREATURE_AVAILABLE(PLAYER1, DWARFA ,1,10)
CREATURE_AVAILABLE(PLAYER1, GIANT ,1,10)
CREATURE_AVAILABLE(PLAYER1, ARCHER ,1,10)
CREATURE_AVAILABLE(PLAYER1, MONK ,1,10)
CREATURE_AVAILABLE(PLAYER1, WIZARD ,1,10)
CREATURE_AVAILABLE(PLAYER1, WITCH ,1,10)

CREATURE_AVAILABLE(PLAYER2, FAIRY ,1,10)
CREATURE_AVAILABLE(PLAYER2, BARBARIAN ,1,10)
CREATURE_AVAILABLE(PLAYER2, DWARFA ,1,10)
CREATURE_AVAILABLE(PLAYER2, GIANT ,1,10)
CREATURE_AVAILABLE(PLAYER2, ARCHER ,1,10)
CREATURE_AVAILABLE(PLAYER2, MONK ,1,10)
CREATURE_AVAILABLE(PLAYER2, WIZARD ,1,10)
CREATURE_AVAILABLE(PLAYER2, WITCH ,1,10)

CREATURE_AVAILABLE(PLAYER3, FAIRY ,1,10)
CREATURE_AVAILABLE(PLAYER3, BARBARIAN ,1,10)
CREATURE_AVAILABLE(PLAYER3, DWARFA ,1,10)
CREATURE_AVAILABLE(PLAYER3, GIANT ,1,10)
CREATURE_AVAILABLE(PLAYER3, ARCHER ,1,10)
CREATURE_AVAILABLE(PLAYER3, MONK ,1,10)
CREATURE_AVAILABLE(PLAYER3, WIZARD ,1,10)
CREATURE_AVAILABLE(PLAYER3, WITCH ,1,10)

IF(PLAYER0,GAME_TURN>=20000)
CREATURE_AVAILABLE(PLAYER0, HORNY ,1,10)
CREATURE_AVAILABLE(PLAYER1, SAMURAI ,1,10)
CREATURE_AVAILABLE(PLAYER2, SAMURAI ,1,10)
CREATURE_AVAILABLE(PLAYER3, SAMURAI ,1,10)
ENDIF

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(ALL_PLAYERS, BRIDGE, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, WORKSHOP, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, BARRACKS, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, TEMPLE, 1, 0)

MAGIC_AVAILABLE(PLAYER0, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(PLAYER1, POWER_SIGHT, 1, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_SIGHT, 1, 0)
MAGIC_AVAILABLE(PLAYER3, POWER_SIGHT, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SPEED, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_OBEY, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CONCEAL, 1, 0)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CALL_TO_ARMS, 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(PLAYER1, POWER_LIGHTNING, 1, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_LIGHTNING, 1, 0)
MAGIC_AVAILABLE(PLAYER3, POWER_LIGHTNING, 1, 0)
MAGIC_AVAILABLE(PLAYER1, POWER_CHICKEN, 1, 0)
MAGIC_AVAILABLE(PLAYER2, POWER_CHICKEN, 1, 0)
MAGIC_AVAILABLE(PLAYER3, POWER_CHICKEN, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_DISEASE, 1, 0)
MAGIC_AVAILABLE(PLAYER0, POWER_ARMAGEDDON, 1, 0)

DOOR_AVAILABLE(ALL_PLAYERS,STEEL, 1, 0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING, 1, 0)

CREATE_PARTY(WAVE1)
	ADD_TO_PARTY(WAVE1,ARCHER,3,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE1,ARCHER,3,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE1,DWARFA,4,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE1,DWARFA,4,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE1,MONK,4,100,ATTACK_ENEMIES,0)

CREATE_PARTY(WAVE2)
	ADD_TO_PARTY(WAVE2,WIZARD,6,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE2,GIANT,6,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE2,BARBARIAN,6,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE2,SAMURAI,6,100,ATTACK_ENEMIES,0)


CREATE_PARTY(WAVE3)
	ADD_TO_PARTY(WAVE3,SAMURAI,7,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE3,GIANT,8,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE3,WITCH,9,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE3,SAMURAI,7,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE2,BARBARIAN,8,100,ATTACK_ENEMIES,0)

CREATE_PARTY(DEFENSE)
	ADD_TO_PARTY(DEFENSE,SAMURAI,7,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(DEFENSE,GIANT,7,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(DEFENSE,WIZARD,7,100,ATTACK_ENEMIES,0)

QUICK_OBJECTIVE(1,"This realm is ruled by four knights. Knowing how the previous realms got destroyed and how strong you are, they have allied against you. How unfair it is! Try to get some strength before they crush you, Keeper! ",PLAYER0)

IF(PLAYER0,GAME_TURN>=1500)
SET_TIMER(PLAYER1,TIMER1)
SET_TIMER(PLAYER2,TIMER1)
SET_TIMER(PLAYER3,TIMER1)
CHANGE_SLAB_OWNER(81,75,PLAYER_GOOD)
ENDIF

IF(PLAYER0,TOTAL_CREATURES>0)
	QUICK_INFORMATION(6,"In this realm, creatures will be attracted ignoring their requirement rooms.",PLAYER0)
ENDIF

IF(PLAYER1, DUNGEON_DESTROYED==0)
IF(PLAYER1, TUNNELLER<6)
	IF(PLAYER1, TIMER1>=600)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER1,TUNNELLER,PLAYER1,1,3,0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER1,TIMER1)
	ENDIF
ENDIF
ENDIF


IF(PLAYER2, DUNGEON_DESTROYED==0)
IF(PLAYER2, TUNNELLER<6)
	IF(PLAYER2, TIMER1>=600)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER2,TUNNELLER,PLAYER2,1,3,0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER2,TIMER1)
	ENDIF
ENDIF
ENDIF


IF(PLAYER3, DUNGEON_DESTROYED==0)
IF(PLAYER3, TUNNELLER<6)
	IF(PLAYER3, TIMER1>=600)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER3,TUNNELLER,PLAYER3,1,3,0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER3,TIMER1)
	ENDIF
ENDIF
ENDIF

IF(PLAYER0,ENTRANCE>9)
QUICK_INFORMATION(3,"The additional portal you claim can expand your creature limit.",PLAYER0)
MAX_CREATURES(PLAYER0, 25)
ADD_CREATURE_TO_POOL(DRAGON, 1)
ADD_CREATURE_TO_POOL(BILE_DEMON, 2)
ADD_CREATURE_TO_POOL(ORC, 2)
ENDIF

IF(PLAYER0,ENTRANCE>18)
MAX_CREATURES(PLAYER0, 30)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 1)
ADD_CREATURE_TO_POOL(SORCEROR, 2)
ADD_CREATURE_TO_POOL(TROLL, 2)
ENDIF

IF(PLAYER0,ENTRANCE>27)
MAX_CREATURES(PLAYER0, 35)
ADD_CREATURE_TO_POOL(DRAGON, 1)
ADD_CREATURE_TO_POOL(BILE_DEMON, 2)
ADD_CREATURE_TO_POOL(ORC, 2)
ENDIF


IF(PLAYER_GOOD,DUNGEON_DESTROYED==0)

IF_ACTION_POINT(1,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DEFENSE,1,2)
ENDIF

IF_ACTION_POINT(2,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,2,1)
	QUICK_INFORMATION(4,"Who will leave a gem alone with no guards, you know?",PLAYER0)
ENDIF

IF_ACTION_POINT(3,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,3,1)
ENDIF

IF_ACTION_POINT(4,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,4,1)
ENDIF

IF(PLAYER0,GAME_TURN>=12000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE1,-3,1)
	LEVEL_UP_CREATURE(PLAYER_GOOD,KNIGHT,LEAST_EXPERIENCED,1)

ENDIF

IF(PLAYER0,GAME_TURN>=20000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE1,-2,1)
	LEVEL_UP_CREATURE(PLAYER_GOOD,KNIGHT,LEAST_EXPERIENCED,1)
	ADD_TO_PARTY(DEFENSE,WITCH,8,100,ATTACK_ENEMIES,0)
ENDIF

IF(PLAYER0,GAME_TURN>=28000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE1,-1,1)
	LEVEL_UP_CREATURE(PLAYER_GOOD,KNIGHT,LEAST_EXPERIENCED,1)
ENDIF

IF(PLAYER0,GAME_TURN>=36000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,-3,1)
	LEVEL_UP_CREATURE(PLAYER_GOOD,KNIGHT,LEAST_EXPERIENCED,1)
	ADD_TO_PARTY(DEFENSE,SAMURAI,8,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE2,FAIRY,7,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE2,WITCH,8,100,ATTACK_ENEMIES,0)
ENDIF

IF(PLAYER0,GAME_TURN>=44000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,-2,1)
	LEVEL_UP_CREATURE(PLAYER_GOOD,KNIGHT,LEAST_EXPERIENCED,1)
	ADD_TO_PARTY(DEFENSE,BARBARIAN,9,100,ATTACK_ENEMIES,0)
ENDIF

IF(PLAYER0,GAME_TURN>=52000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-1,1)
	LEVEL_UP_CREATURE(PLAYER_GOOD,KNIGHT,LEAST_EXPERIENCED,1)
		ADD_TO_PARTY(DEFENSE,GIANT,10,100,ATTACK_ENEMIES,0)
ENDIF

IF(PLAYER0,GAME_TURN>=60000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-2,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-3,1)
	LEVEL_UP_CREATURE(PLAYER_GOOD,KNIGHT,LEAST_EXPERIENCED,1)
	ADD_TO_PARTY(WAVE3,GIANT,10,100,ATTACK_ENEMIES,0)
ENDIF

IF(PLAYER0,GAME_TURN>=68000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-1,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-2,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-3,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=50000)
 QUICK_INFORMATION(2,"Be careful, Keeper. Hero spies are hidden near the gold seam. They may notice you and start an attack if you dig too much gold.",PLAYER0)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=80000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE1,-1,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=120000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE1,-2,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=160000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,-2,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=200000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,-1,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=250000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-2,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=300000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-3,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=350000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-2,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=400000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-2,1)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-3,1)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED>=500000)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-1,1)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-2,1)
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,-3,1)
ENDIF

ENDIF

IF(PLAYER0,ALL_DUNGEONS_DESTROYED==1)
	QUICK_OBJECTIVE(5,"An unbelieveable achievement, Keeper!",PLAYER0)
    WIN_GAME
ENDIF