LEVEL_VERSION(1)

SET_GENERATE_SPEED(600)

START_MONEY(ALL_PLAYERS, 4000)

MAX_CREATURES(PLAYER0, 25)


ADD_CREATURE_TO_POOL(SKELETON, 7)
ADD_CREATURE_TO_POOL(ORC, 6)
ADD_CREATURE_TO_POOL(TROLL, 3)
ADD_CREATURE_TO_POOL(BILE_DEMON, 4)
ADD_CREATURE_TO_POOL(DARK_MISTRESS, 2)

CREATURE_AVAILABLE(PLAYER0, SKELETON,1,10)
CREATURE_AVAILABLE(PLAYER0, ORC ,1,10)
CREATURE_AVAILABLE(PLAYER0, TROLL,1,0)
CREATURE_AVAILABLE(PLAYER0, BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER0, DARK_MISTRESS,1,10)

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

MAGIC_AVAILABLE(ALL_PLAYERS, POWER_IMP, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_CALL_TO_ARMS, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HOLD_AUDIENCE, 1, 1)

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

CREATE_PARTY(WAVE1)
	ADD_TO_PARTY(WAVE1,ARCHER,5,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE1,ARCHER,5,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE1,DWARFA,5,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE1,DWARFA,5,100,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(WAVE1,FAIRY,5,100,ATTACK_ENEMIES,0)

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

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


CREATE_PARTY(LORD)
	ADD_TO_PARTY(LORD,KNIGHT,10,4000,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(FINALWAVE)
	ADD_TO_PARTY(FINALWAVE,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(FINALWAVE,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(FINALWAVE,GIANT,10,500,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(FINALWAVE,SAMURAI,10,500,ATTACK_DUNGEON_HEART,0)
	ADD_TO_PARTY(FINALWAVE,SAMURAI,10,500,ATTACK_DUNGEON_HEART,0)


QUICK_OBJECTIVE(1,"You have sneaked into the hero fortress. Explore this area, perhaps you can find something helpful. ",PLAYER0)

SET_FLAG(PLAYER0,FLAG1,0)

IF(PLAYER0,TRAINING>0)
	QUICK_INFORMATION(2,"At the start your creatures can only be trained to level 4. Claim more training rooms to increase this limit.",PLAYER0)
ENDIF

IF(PLAYER0,PRISON>0)
ROOM_AVAILABLE(ALL_PLAYERS, PRISON, 1, 0)
ENDIF

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

IF(PLAYER0,WORKSHOP>=25)
    QUICK_INFORMATION(3,"Your creatures can refine their armours in workshop. Each claimed workshop will improve their armour.",PLAYER0)
    SET_CREATURE_ARMOUR(SKELETON,50)
    SET_CREATURE_ARMOUR(ORC,90)
    SET_CREATURE_ARMOUR(TROLL,65)
    SET_CREATURE_ARMOUR(BILE_DEMON,90)
    SET_CREATURE_ARMOUR(DARK_MISTRESS,70)
    SET_CREATURE_ARMOUR(HORNY,100)
ENDIF

IF(PLAYER0,WORKSHOP>=50)
    SET_CREATURE_ARMOUR(SKELETON,80)
    SET_CREATURE_ARMOUR(ORC,120)
    SET_CREATURE_ARMOUR(TROLL,95)
    SET_CREATURE_ARMOUR(BILE_DEMON,120)
    SET_CREATURE_ARMOUR(DARK_MISTRESS,100)
    SET_CREATURE_ARMOUR(HORNY,130)
ENDIF

IF(PLAYER0,WORKSHOP>=75)
    SET_CREATURE_ARMOUR(SKELETON,110)
    SET_CREATURE_ARMOUR(ORC,150)
    SET_CREATURE_ARMOUR(TROLL,125)
    SET_CREATURE_ARMOUR(BILE_DEMON,150)
    SET_CREATURE_ARMOUR(DARK_MISTRESS,130)
    SET_CREATURE_ARMOUR(HORNY,160)
ENDIF

IF(PLAYER0,BARRACKS>=25)
 QUICK_INFORMATION(4,"Your creatures can refine their weapons in barracks. Each claimed barracks will improve their strength.",PLAYER0)
    SET_CREATURE_STRENGTH(SKELETON,85)
    SET_CREATURE_STRENGTH(ORC,95)
    SET_CREATURE_STRENGTH(TROLL,70)
    SET_CREATURE_STRENGTH(BILE_DEMON,110)
    SET_CREATURE_STRENGTH(DARK_MISTRESS,80)
    SET_CREATURE_STRENGTH(HORNY,130)
ENDIF

IF(PLAYER0,BARRACKS>=50)
    SET_CREATURE_STRENGTH(SKELETON,115)
    SET_CREATURE_STRENGTH(ORC,125)
    SET_CREATURE_STRENGTH(TROLL,100)
    SET_CREATURE_STRENGTH(BILE_DEMON,140)
    SET_CREATURE_STRENGTH(DARK_MISTRESS,110)
    SET_CREATURE_STRENGTH(HORNY,160)
ENDIF

IF(PLAYER0,BARRACKS>=75)
    SET_CREATURE_STRENGTH(SKELETON,145)
    SET_CREATURE_STRENGTH(ORC,155)
    SET_CREATURE_STRENGTH(TROLL,130)
    SET_CREATURE_STRENGTH(BILE_DEMON,170)
    SET_CREATURE_STRENGTH(DARK_MISTRESS,140)
    SET_CREATURE_STRENGTH(HORNY,190)
ENDIF

SET_CREATURE_MAX_LEVEL(PLAYER0,SKELETON,4)
SET_CREATURE_MAX_LEVEL(PLAYER0,ORC,4)
SET_CREATURE_MAX_LEVEL(PLAYER0,TROLL,4)
SET_CREATURE_MAX_LEVEL(PLAYER0,BILE_DEMON,4)
SET_CREATURE_MAX_LEVEL(PLAYER0,DARK_MISTRESS,4)
SET_CREATURE_MAX_LEVEL(PLAYER0,GHOST,4)
SET_CREATURE_MAX_LEVEL(PLAYER0,VAMPIRE,4)
SET_CREATURE_MAX_LEVEL(PLAYER0,HORNY,4)

IF(PLAYER0,TRAINING>=34)
SET_CREATURE_MAX_LEVEL(PLAYER0,SKELETON,6)
SET_CREATURE_MAX_LEVEL(PLAYER0,ORC,6)
SET_CREATURE_MAX_LEVEL(PLAYER0,TROLL,6)
SET_CREATURE_MAX_LEVEL(PLAYER0,BILE_DEMON,6)
SET_CREATURE_MAX_LEVEL(PLAYER0,DARK_MISTRESS,6)
SET_CREATURE_MAX_LEVEL(PLAYER0,GHOST,6)
SET_CREATURE_MAX_LEVEL(PLAYER0,VAMPIRE,6)
SET_CREATURE_MAX_LEVEL(PLAYER0,HORNY,6)
ENDIF

IF(PLAYER0,TRAINING>=41)
    SET_CREATURE_MAX_LEVEL(PLAYER0,SKELETON,8)
    SET_CREATURE_MAX_LEVEL(PLAYER0,ORC,8)
    SET_CREATURE_MAX_LEVEL(PLAYER0,TROLL,8)
    SET_CREATURE_MAX_LEVEL(PLAYER0,BILE_DEMON,8)
    SET_CREATURE_MAX_LEVEL(PLAYER0,DARK_MISTRESS,8)
    SET_CREATURE_MAX_LEVEL(PLAYER0,GHOST,8)
    SET_CREATURE_MAX_LEVEL(PLAYER0,VAMPIRE,8)
    SET_CREATURE_MAX_LEVEL(PLAYER0,HORNY,8)
ENDIF

IF(PLAYER0,TRAINING>=66)
    SET_CREATURE_MAX_LEVEL(PLAYER0,SKELETON,10)
    SET_CREATURE_MAX_LEVEL(PLAYER0,ORC,10)
    SET_CREATURE_MAX_LEVEL(PLAYER0,TROLL,10)
    SET_CREATURE_MAX_LEVEL(PLAYER0,BILE_DEMON,10)
    SET_CREATURE_MAX_LEVEL(PLAYER0,DARK_MISTRESS,10)
    SET_CREATURE_MAX_LEVEL(PLAYER0,GHOST,10)
    SET_CREATURE_MAX_LEVEL(PLAYER0,VAMPIRE,10)
    SET_CREATURE_MAX_LEVEL(PLAYER0,HORNY,10)
ENDIF

IF_ACTION_POINT(5,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,5,3,4,0)
ENDIF

IF_ACTION_POINT(7,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,7,13,10,0)
ENDIF

IF_ACTION_POINT(6,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GHOST,6,13,10,0)
ENDIF


IF(PLAYER0,GAME_TURN>=9000)
    SET_TIMER(PLAYER0,TIMER0)
ENDIF

IF(PLAYER0,TIMER0>=6000)

IF(PLAYER0,FLAG1==0)
 QUICK_INFORMATION(5,"The heroes are starting to attack. The more heroes you kill, the stronger party will come for revenge.",PLAYER0)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE1,4,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER0)
ENDIF

IF(PLAYER0,FLAG1==1)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE1,4,1)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE1,1,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER0)
ENDIF

IF(PLAYER0,FLAG1==2)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,2,1)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,3,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER0)
ENDIF

IF(PLAYER0,FLAG1==3)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,1,1)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,2,1)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,3,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER0)
ENDIF

IF(PLAYER0,FLAG1==4)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,1,1)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,2,1)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE2,3,1)
NEXT_COMMAND_REUSABLE
ADD_PARTY_TO_LEVEL(PLAYER_GOOD,WAVE3,4,1)
NEXT_COMMAND_REUSABLE
SET_TIMER(PLAYER0,TIMER0)
ENDIF

ENDIF

IF(PLAYER0,GRAVEYARD==0)
    IF_CONTROLS(PLAYER0,VAMPIRE>0)
     QUICK_INFORMATION(8,"Do you know how to please these mad vampires?",PLAYER0)
    ENDIF
ENDIF

IF(PLAYER0, BATTLES_WON>=35)
    SET_FLAG(PLAYER0,FLAG1,1)
ENDIF

IF(PLAYER0, BATTLES_WON>=75)
    SET_FLAG(PLAYER0,FLAG1,2)
ENDIF

IF(PLAYER0, BATTLES_WON>=165)
    SET_FLAG(PLAYER0,FLAG1,3)
ENDIF

IF(PLAYER0, BATTLES_WON>=325)
    SET_FLAG(PLAYER0,FLAG1,4)
ENDIF

IF(PLAYER0,TOTAL_CREATURES>=37)
    QUICK_INFORMATION(6,"You've got so many creatures! Now the function of prison, torture room and graveyard have disappeared!",PLAYER0)
    NEXT_COMMAND_REUSABLE
	SET_CREATURE_TENDENCIES(PLAYER0,IMPRISON,0)
   SET_GAME_RULE(PrisonSkeletonChance,0)
    SET_GAME_RULE(GhostConvertChance,0)
    SET_GAME_RULE(TortureConvertChance,0)
    CHANGE_SLAB_TYPE(76,34,PATH)
    CHANGE_SLAB_TYPE(77,34,PATH)
    CHANGE_SLAB_TYPE(78,34,PATH)
        CHANGE_SLAB_TYPE(76,35,PATH)
    CHANGE_SLAB_TYPE(77,35,PATH)
    CHANGE_SLAB_TYPE(78,35,PATH)
        CHANGE_SLAB_TYPE(76,36,PATH)
    CHANGE_SLAB_TYPE(77,36,PATH)
    CHANGE_SLAB_TYPE(78,36,PATH)
        CHANGE_SLAB_TYPE(76,37,PATH)
    CHANGE_SLAB_TYPE(77,37,PATH)
    CHANGE_SLAB_TYPE(78,37,PATH)
        CHANGE_SLAB_TYPE(76,38,PATH)
    CHANGE_SLAB_TYPE(77,38,PATH)
    CHANGE_SLAB_TYPE(78,38,PATH)
ENDIF

  IF(PLAYER_GOOD,DUNGEON_DESTROYED==1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LORD,8,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FINALWAVE,8,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FINALWAVE,1,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FINALWAVE,3,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FINALWAVE,2,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FINALWAVE,4,1)
        QUICK_INFORMATION(7,"I assume you're very well-prepared for the lord of the land, aren't you?",PLAYER0)
    SET_FLAG(PLAYER0,FLAG1,5)
ENDIF

IF(PLAYER0,FLAG1==5)
    IF(PLAYER_GOOD,TOTAL_CREATURES==0)
        WIN_GAME
    ENDIF
ENDIF
