DEAD_CREATURES_RETURN_TO_POOL(1)

ALLY_PLAYERS(PLAYER0,PLAYER_GOOD)

SET_GENERATE_SPEED(400)

COMPUTER_PLAYER(PLAYER1,1)
COMPUTER_PLAYER(PLAYER2,1)
COMPUTER_PLAYER(PLAYER3,1)

START_MONEY(PLAYER0,9999999)
START_MONEY(PLAYER1,15000)
START_MONEY(PLAYER2,9000)
START_MONEY(PLAYER3,9000)

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

ADD_CREATURE_TO_POOL(BUG,25)
ADD_CREATURE_TO_POOL(FLY,50)
ADD_CREATURE_TO_POOL(TROLL,100)
ADD_CREATURE_TO_POOL(SPIDER,15)
ADD_CREATURE_TO_POOL(BILE_DEMON,40)
ADD_CREATURE_TO_POOL(DEMONSPAWN,100)
ADD_CREATURE_TO_POOL(SKELETON,200)
ADD_CREATURE_TO_POOL(SORCEROR,100)

CREATURE_AVAILABLE(PLAYER1,BUG,1,1)
CREATURE_AVAILABLE(PLAYER1,FLY,1,1)
CREATURE_AVAILABLE(PLAYER1,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER1,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER1,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(PLAYER1,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER2,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER3,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER1,SORCEROR,1,1)
CREATURE_AVAILABLE(PLAYER2,BUG,1,1)
CREATURE_AVAILABLE(PLAYER2,FLY,1,1)
CREATURE_AVAILABLE(PLAYER2,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER2,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER2,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(PLAYER2,SORCEROR,1,1)
CREATURE_AVAILABLE(PLAYER3,BUG,1,1)
CREATURE_AVAILABLE(PLAYER3,FLY,1,1)
CREATURE_AVAILABLE(PLAYER3,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER3,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER3,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(PLAYER3,SORCEROR,1,1)
CREATURE_AVAILABLE(PLAYER1,SKELETON,1,1)
CREATURE_AVAILABLE(PLAYER2,SKELETON,1,1)
CREATURE_AVAILABLE(PLAYER3,SKELETON,1,1)

ROOM_AVAILABLE(PLAYER1,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER1,LAIR,1,1)
ROOM_AVAILABLE(PLAYER1,GARDEN,1,1)
ROOM_AVAILABLE(PLAYER1,TRAINING,1,1)
ROOM_AVAILABLE(PLAYER1,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER2,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER2,LAIR,1,1)
ROOM_AVAILABLE(PLAYER2,GARDEN,1,1)
ROOM_AVAILABLE(PLAYER2,TRAINING,1,1)
ROOM_AVAILABLE(PLAYER2,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER3,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER3,LAIR,1,1)
ROOM_AVAILABLE(PLAYER3,GARDEN,1,1)
ROOM_AVAILABLE(PLAYER3,TRAINING,1,1)
ROOM_AVAILABLE(PLAYER3,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER1,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER2,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER3,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER1,PRISON,1,0)
ROOM_AVAILABLE(PLAYER2,PRISON,1,0)
ROOM_AVAILABLE(PLAYER3,PRISON,1,0)

MAGIC_AVAILABLE(PLAYER1,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_DESTROY_WALLS,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER2,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER3,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,1,1)
MAGIC_AVAILABLE(PLAYER3,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_CAVE_IN,1,0)

DOOR_AVAILABLE(PLAYER1,WOOD,1,0)
TRAP_AVAILABLE(PLAYER1,POISON_GAS,1,0)
DOOR_AVAILABLE(PLAYER2,WOOD,1,0)
TRAP_AVAILABLE(PLAYER2,POISON_GAS,1,0)
DOOR_AVAILABLE(PLAYER3,WOOD,1,0)
TRAP_AVAILABLE(PLAYER3,POISON_GAS,1,0)
TRAP_AVAILABLE(PLAYER1,LIGHTNING,1,0)
TRAP_AVAILABLE(PLAYER2,LIGHTNING,1,0)
TRAP_AVAILABLE(PLAYER3,LIGHTNING,1,0)
TRAP_AVAILABLE(PLAYER1,ALARM,1,0)
TRAP_AVAILABLE(PLAYER2,ALARM,1,0)
TRAP_AVAILABLE(PLAYER3,ALARM,1,0)
TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,0)
DOOR_AVAILABLE(PLAYER0,WOOD,1,0)

IF(PLAYER1,DUNGEON_DESTROYED==1)
	IF(PLAYER2,DUNGEON_DESTROYED==1)
		IF(PLAYER3,DUNGEON_DESTROYED==1)
			WIN_GAME
		ENDIF
	ENDIF
ENDIF

CREATE_PARTY(TUNNELLER)
CREATE_PARTY(THIEF)
CREATE_PARTY(ARCHER)
CREATE_PARTY(DWARF)
CREATE_PARTY(BARBARIAN)
CREATE_PARTY(GIANT)
CREATE_PARTY(KNIGHT)

ADD_TO_PARTY(TUNNELLER,TUNNELLER,7,700,DEFEND_PARTY,0)
ADD_TO_PARTY(TUNNELLER,TUNNELLER,5,500,DEFEND_PARTY,0)
ADD_TO_PARTY(TUNNELLER,TUNNELLER,5,500,DEFEND_PARTY,0)

ADD_TO_PARTY(THIEF,THIEF,7,700,DEFEND_PARTY,0)
ADD_TO_PARTY(THIEF,THIEF,4,400,DEFEND_PARTY,0)
ADD_TO_PARTY(THIEF,THIEF,4,400,DEFEND_PARTY,0)
ADD_TO_PARTY(THIEF,THIEF,4,400,DEFEND_PARTY,0)
ADD_TO_PARTY(THIEF,THIEF,4,400,DEFEND_PARTY,0)

ADD_TO_PARTY(ARCHER,ARCHER,8,800,DEFEND_PARTY,0)
ADD_TO_PARTY(ARCHER,ARCHER,6,600,DEFEND_PARTY,0)
ADD_TO_PARTY(ARCHER,ARCHER,6,600,DEFEND_PARTY,0)
ADD_TO_PARTY(ARCHER,ARCHER,6,600,DEFEND_PARTY,0)
ADD_TO_PARTY(ARCHER,ARCHER,6,600,DEFEND_PARTY,0)

ADD_TO_PARTY(DWARF,DWARFA,7,700,DEFEND_PARTY,0)
ADD_TO_PARTY(DWARF,DWARFA,6,600,DEFEND_PARTY,0)
ADD_TO_PARTY(DWARF,DWARFA,5,500,DEFEND_PARTY,0)
ADD_TO_PARTY(DWARF,DWARFA,4,400,DEFEND_PARTY,0)

ADD_TO_PARTY(BARBARIAN,BARBARIAN,9,900,DEFEND_PARTY,0)
ADD_TO_PARTY(BARBARIAN,BARBARIAN,6,600,DEFEND_PARTY,0)
ADD_TO_PARTY(BARBARIAN,BARBARIAN,6,600,DEFEND_PARTY,0)

ADD_TO_PARTY(GIANT,GIANT,10,1000,DEFEND_PARTY,0)
ADD_TO_PARTY(GIANT,GIANT,1,100,DEFEND_PARTY,0)
ADD_TO_PARTY(GIANT,GIANT,1,100,DEFEND_PARTY,0)
ADD_TO_PARTY(GIANT,GIANT,1,100,DEFEND_PARTY,0)
ADD_TO_PARTY(GIANT,GIANT,1,100,DEFEND_PARTY,0)
ADD_TO_PARTY(GIANT,GIANT,1,100,DEFEND_PARTY,0)
ADD_TO_PARTY(GIANT,GIANT,1,100,DEFEND_PARTY,0)

ADD_TO_PARTY(KNIGHT,KNIGHT,10,10000,DEFEND_PARTY,0)
ADD_TO_PARTY(KNIGHT,BARBARIAN,9,900,DEFEND_PARTY,0)
ADD_TO_PARTY(KNIGHT,ARCHER,9,900,DEFEND_PARTY,0)
ADD_TO_PARTY(KNIGHT,ARCHER,9,900,DEFEND_PARTY,0)
ADD_TO_PARTY(KNIGHT,GIANT,10,1000,DEFEND_PARTY,0)
ADD_TO_PARTY(KNIGHT,DWARFA,10,1000,DEFEND_PARTY,0)
ADD_TO_PARTY(KNIGHT,DWARFA,10,1000,DEFEND_PARTY,0)

IF(PLAYER0,TOTAL_CREATURES==0)
	ADD_PARTY_TO_LEVEL(PLAYER0,TUNNELLER,-1,1)
	IF(PLAYER0,TOTAL_CREATURES==0)
		ADD_PARTY_TO_LEVEL(PLAYER0,THIEF,-1,1)
		IF(PLAYER0,TOTAL_CREATURES==0)
			ADD_PARTY_TO_LEVEL(PLAYER0,ARCHER,-1,1)
			IF(PLAYER0,TOTAL_CREATURES==0)
				ADD_PARTY_TO_LEVEL(PLAYER0,DWARF,-1,1)
				IF(PLAYER0,TOTAL_CREATURES==0)
					ADD_PARTY_TO_LEVEL(PLAYER0,BARBARIAN,-1,1)
					IF(PLAYER0,TOTAL_CREATURES==0)
						ADD_PARTY_TO_LEVEL(PLAYER0,GIANT,-1,1)
						IF(PLAYER0,TOTAL_CREATURES==0)
							ADD_PARTY_TO_LEVEL(PLAYER0,KNIGHT,-1,1)
							IF(PLAYER0,KNIGHT==0)
								LOSE_GAME
							ENDIF
						ENDIF
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF
