LEVEL_VERSION(1)

SET_GENERATE_SPEED(500)

COMPUTER_PLAYER(PLAYER0,0)

START_MONEY(PLAYER0,190000)
START_MONEY(PLAYER1,19000)

MAX_CREATURES(PLAYER0,45)
MAX_CREATURES(PLAYER1,32)

ADD_CREATURE_TO_POOL(TROLL,9)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,6)
ADD_CREATURE_TO_POOL(BILE_DEMON,10)
ADD_CREATURE_TO_POOL(TENTACLE,10)
ADD_CREATURE_TO_POOL(HORNY,4)
ADD_CREATURE_TO_POOL(SPIDER,9)
ADD_CREATURE_TO_POOL(SORCEROR,3)
ADD_CREATURE_TO_POOL(DRAGON,5)

REM Creature availability
CREATURE_AVAILABLE(PLAYER0,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER0,HORNY,1,0)
CREATURE_AVAILABLE(PLAYER0,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,0)
CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER1,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER0,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER1,SPIDER,1,0)

ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
ROOM_AVAILABLE(PLAYER0,GRAVEYARD,1,0)
ROOM_AVAILABLE(PLAYER0,PRISON,1,0)
ROOM_AVAILABLE(PLAYER0,TORTURE,1,0)
ROOM_AVAILABLE(PLAYER0,SCAVENGER,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BARRACKS,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,0)

REM Spells availability
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,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_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)

MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_LIGHTNING,1,0)

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

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

CREATE_PARTY(WIZZIES)
	ADD_TO_PARTY(WIZZIES,WIZARD,5,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WIZZIES,WIZARD,6,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WIZZIES,WIZARD,6,0,ATTACK_ENEMIES,0)

CREATE_PARTY(HEROES)
	ADD_TO_PARTY(HEROES,FAIRY,9,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(HEROES,WIZARD,9,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(HEROES,WITCH,9,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(HEROES,MONK,9,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(HEROES,ARCHER,9,0,ATTACK_ENEMIES,0)

CREATE_PARTY(THIEVES2)
	ADD_TO_PARTY(THIEVES2,THIEF,10,500,STEAL_GOLD,0)
	ADD_TO_PARTY(THIEVES2,THIEF,10,500,STEAL_GOLD,0)
	ADD_TO_PARTY(THIEVES2,DWARFA,8,500,STEAL_GOLD,0)
	ADD_TO_PARTY(THIEVES2,DWARFA,8,500,STEAL_GOLD,0)

CREATE_PARTY(LORDGUARD)
	ADD_TO_PARTY(LORDGUARD,SAMURAI,7,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORDGUARD,SAMURAI,7,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORDGUARD,SAMURAI,7,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORDGUARD,SAMURAI,7,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORDGUARD,GIANT,10,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORDGUARD,GIANT,10,0,ATTACK_ENEMIES,0)

CREATE_PARTY(LANDLORD)
	ADD_TO_PARTY(LANDLORD,KNIGHT,10,191919,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,SAMURAI,8,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,SAMURAI,8,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,SAMURAI,8,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,SAMURAI,8,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,GIANT,10,0,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,GIANT,10,0,ATTACK_ENEMIES,0)

REM ****************************************************************************

QUICK_OBJECTIVE(1,"You are the successor of the well-known Dungeon Keeper Wisel, who was destroyed by Red many years ago. Now you need to take up his fearful skeleton and spider army to tear your opponent apart and claim back this land.",PLAYER1)

IF(PLAYER1,REWARDED[HORNY] >= 1)
  QUICK_INFORMATION(2,"You can only summon one horned reaper from your temple.", PLAYER1)
  REMOVE_SACRIFICE_RECIPE(TROLL,BILE_DEMON,DARK_MISTRESS)
ENDIF

REM Player is supposed to use spiders, not supposed to trade them for bile demons
IF(PLAYER1,REWARDED[BILE_DEMON] >= 1)
IF(PLAYER1,SKELETON >= 1)
  QUICK_INFORMATION(7,"No. Bile demons hate skeletons very much, and they are very unhappy to live in your dungeon together with skeletons.", PLAYER1)
  NEXT_COMMAND_REUSABLE
  CHANGE_CREATURES_ANNOYANCE(PLAYER1,BILE_DEMON,INCREASE,100)
ENDIF
ENDIF

REM Computer keeper gets free lv10 imps
SET_TIMER(PLAYER0,TIMER7)

IF(PLAYER0,TIMER7>=400)
IF(PLAYER0,IMP<=5)
	NEXT_COMMAND_REUSABLE
	ADD_CREATURE_TO_LEVEL(PLAYER0,IMP,PLAYER0,1,10,0)
	NEXT_COMMAND_REUSABLE
	SET_TIMER(PLAYER0,TIMER7)
ENDIF
ENDIF

IF(PLAYER1,DRAGON>0)
	ADD_CREATURE_TO_POOL(DRAGON,3)
ENDIF

IF(PLAYER1,SKELETONS_RAISED >= 10)
	SET_GAME_RULE(PrisonSkeletonChance,70)
ENDIF

IF(PLAYER1,SKELETONS_RAISED >= 20)
	SET_GAME_RULE(PrisonSkeletonChance,35)
ENDIF

IF(PLAYER1,SKELETON>= 20)
	NEXT_COMMAND_REUSABLE
	SET_GAME_RULE(PrisonSkeletonChance,0)
	QUICK_INFORMATION(11, "You can't get more skeletons from prison while you already have 20 of them.", PLAYER1)
	SET_FLAG(PLAYER1,FLAG2,1)
ENDIF

IF(PLAYER1,FLAG2==1)
IF(PLAYER1,SKELETON < 20)
	NEXT_COMMAND_REUSABLE
	SET_GAME_RULE(PrisonSkeletonChance,35)
ENDIF
ENDIF

IF(PLAYER1,GHOSTS_RAISED >= 10)
	SET_GAME_RULE(GhostConvertChance,0)
	QUICK_INFORMATION(12, "You can't get more ghosts from torture room.", PLAYER1)
ENDIF

IF(PLAYER1,CREATURES_CONVERTED >= 10)
    SET_GAME_RULE(TortureConvertChance,0)
	SET_GAME_RULE(TortureDeathChance,100)
	QUICK_INFORMATION(13, "You can't convert more creatures from torture room.", PLAYER1)
ENDIF

IF(PLAYER1,VAMPIRES_RAISED >= 3)
    SET_GAME_RULE(BodiesForVampire,255)
	QUICK_INFORMATION(14, "You can't get more vampires from graveyard.", PLAYER1)
ENDIF

IF(PLAYER1,TRAINING >= 1)
	QUICK_INFORMATION(3,"You don't have the plan of training rooms in here. Steal enemy ones instead.",PLAYER1)
ENDIF

IF(PLAYER1,TRAINING >= 60)
	ROOM_AVAILABLE(PLAYER1,TRAINING,1,1)
	QUICK_INFORMATION(6,"Eventually you learned how to build a training room.",PLAYER1)
ENDIF

IF(PLAYER1,PRISON > 0)
	ROOM_AVAILABLE(PLAYER1,PRISON,1,1)
ENDIF

IF(PLAYER1,GRAVEYARD > 0)
	ROOM_AVAILABLE(PLAYER1,GRAVEYARD,1,1)
ENDIF

IF(PLAYER1,TORTURE > 0)
	ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,1)
ENDIF

IF(PLAYER0,PRISON >= 1)
	SET_CREATURE_TENDENCIES(PLAYER0,IMPRISON,1)
ENDIF

IF_ACTION_POINT(1,PLAYER1)
	SET_TIMER(PLAYER1,TIMER0)
ENDIF

IF(PLAYER1,TIMER0>=1000)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES2,-1,2)
	QUICK_INFORMATION(4,"Some thieves were attracted by your gems and they just came!",PLAYER1)
ENDIF

IF_ACTION_POINT(2,PLAYER1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WIZZIES,2,1)
ENDIF

IF_ACTION_POINT(3,PLAYER1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LORDGUARD,8,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LORDGUARD,9,1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LANDLORD,3,1)
ENDIF

IF_ACTION_POINT(4,PLAYER1)
	QUICK_INFORMATION(10,"It is rumoured that two Dragons are held captive somewhere west of here. Were you to find them and free them, they would make powerful servants.",PLAYER1)
ENDIF

IF_ACTION_POINT(5,PLAYER1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HEROES,5,1)
ENDIF

IF_ACTION_POINT(6,PLAYER1)
	ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LORDGUARD,6,1)
ENDIF
	
IF_AVAILABLE(PLAYER1,POWER_DESTROY_WALLS>=1)
	QUICK_INFORMATION(5,"You have found a spellbook which will be useful for you to expand your territory to north.",PLAYER1)
ENDIF

IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
		QUICK_OBJECTIVE(8,"Now only the Red Keeper is left on this land, who has already prepared his army very well and doesn't even care your presence. What an arrogant behaviour! Why don't you teach him a lesson?",PLAYER1)
		SET_TIMER(PLAYER0,TIMER2)
ENDIF

IF(PLAYER0,TIMER2>=3000)
IF(PLAYER0,DUNGEON_DESTROYED == 0)
	IF_SLAB_OWNER(5,52,PLAYER0)
		ADD_CREATURE_TO_LEVEL(PLAYER0,IMP,7,2,9,0)
	ENDIF
ENDIF
ENDIF

IF(PLAYER0,TIMER2>=3300)
	IF_SLAB_OWNER(5,52,PLAYER0)
		SET_DOOR(UNLOCKED,5,52)
	ENDIF
ENDIF

IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
IF(PLAYER0,DUNGEON_DESTROYED == 1)
	QUICK_OBJECTIVE(9,"You got the claimed realm back and the world is almost yours, Wisel must be very proud of you.",PLAYER1)
	WIN_GAME
ENDIF
ENDIF
