LEVEL_VERSION(1)
RUN_AFTER_VICTORY(1)

SET_MUSIC(5)

SET_GENERATE_SPEED(400)

START_MONEY(PLAYER0,10000)

MAX_CREATURES(PLAYER0,30)

ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)
ADD_CREATURE_TO_POOL(SORCEROR,30)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,10)
ADD_CREATURE_TO_POOL(HELL_HOUND,30)
ADD_CREATURE_TO_POOL(DRAGON,15)
ADD_CREATURE_TO_POOL(ORC,15)
ADD_CREATURE_TO_POOL(DRUID,15)

REM	Creature availability
CREATURE_AVAILABLE(PLAYER0,TROLL,1,0)
CREATURE_AVAILABLE(PLAYER0,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(PLAYER0,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,0)
CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,0)
CREATURE_AVAILABLE(PLAYER0,HELL_HOUND,1,0)
CREATURE_AVAILABLE(PLAYER0,DRAGON,1,0)
CREATURE_AVAILABLE(PLAYER0,ORC,1,0)
CREATURE_AVAILABLE(PLAYER0,DRUID,1,0)
	
REM	Room availability
ROOM_AVAILABLE(PLAYER0,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER0,LAIR,1,1)
ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)
ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,1)
ROOM_AVAILABLE(PLAYER0,BARRACKS,1,1)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,1)
ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
ROOM_AVAILABLE(PLAYER0,PRISON,1,0)
ROOM_AVAILABLE(PLAYER0,SCAVENGER,1,0)
ROOM_AVAILABLE(PLAYER0,TORTURE,1,0)
ROOM_AVAILABLE(PLAYER0,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER0,GRAVEYARD,1,0)

REM	Spells availability
MAGIC_AVAILABLE(PLAYER0,POWER_HAND,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_TIME_BOMB,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SLOW,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_FREEZE,1,0)

REM	Doors and traps availability
DOOR_AVAILABLE(PLAYER0,BRACED,1,0)
DOOR_AVAILABLE(PLAYER0,STEEL,1,0)
DOOR_AVAILABLE(PLAYER0,MAGIC,1,0)
DOOR_AVAILABLE(PLAYER0,SECRET,1,0)
TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,0)
TRAP_AVAILABLE(PLAYER0,TNT,1,0)
TRAP_AVAILABLE(PLAYER0,BOULDER,1,0)
TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,0)
TRAP_AVAILABLE(PLAYER0,ALARM,1,0)
TRAP_AVAILABLE(PLAYER0,WORD_OF_POWER,1,0)
TRAP_AVAILABLE(PLAYER0,LAVA,1,0)

CREATE_PARTY(FIRST)
	ADD_TO_PARTY(FIRST,BARBARIAN,2,1500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FIRST,GIANT,2,1500,ATTACK_ENEMIES,0)

CREATE_PARTY(SECOND)
	ADD_TO_PARTY(SECOND,MONK,3,1500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SECOND,MONK,3,1500,ATTACK_ENEMIES,0)

CREATE_PARTY(THIRD)
	ADD_TO_PARTY(THIRD,ARCHER,4,1500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(THIRD,BARBARIAN,4,1500,ATTACK_ENEMIES,0)

CREATE_PARTY(FOURTH)
	ADD_TO_PARTY(FOURTH,WIZARD,4,1500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FOURTH,GIANT,4,1500,ATTACK_ENEMIES,0)

CREATE_PARTY(FIFTH)
	ADD_TO_PARTY(FIFTH,WIZARD,5,1500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FIFTH,WIZARD,5,1750,ATTACK_ENEMIES,0)

CREATE_PARTY(SIXTH)
	ADD_TO_PARTY(SIXTH,MONK,6,1500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SIXTH,MONK,6,1500,ATTACK_ENEMIES,0)

CREATE_PARTY(SEVENTH)
	ADD_TO_PARTY(SEVENTH,FAIRY,6,1500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SEVENTH,FAIRY,6,1500,ATTACK_ENEMIES,0)

CREATE_PARTY(EIGHTH)
	ADD_TO_PARTY(EIGHTH,WITCH,8,1500,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(EIGHTH,WITCH,8,1500,ATTACK_ENEMIES,0)

CREATE_PARTY(NINTH)
	ADD_TO_PARTY(NINTH,SAMURAI,6,1000,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(NINTH,ARCHER,6,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(NINTH,BARBARIAN,6,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(NINTH,MONK,6,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(NINTH,FAIRY,8,900,ATTACK_ENEMIES,0)
    
CREATE_PARTY(TENTH)
	ADD_TO_PARTY(TENTH,SAMURAI,7,1000,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(TENTH,TIME_MAGE,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(TENTH,WIZARD,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(TENTH,MONK,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(TENTH,FAIRY,8,900,ATTACK_ENEMIES,0)
    
CREATE_PARTY(ELEVENTH)
	ADD_TO_PARTY(ELEVENTH,TIME_MAGE,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ELEVENTH,TIME_MAGE,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ELEVENTH,WIZARD,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ELEVENTH,WIZARD,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ELEVENTH,WIZARD,8,900,ATTACK_ENEMIES,0)
    
CREATE_PARTY(TWELFTH)
	ADD_TO_PARTY(TWELFTH,THIEF,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(TWELFTH,THIEF,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(TWELFTH,THIEF,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(TWELFTH,SAMURAI,9,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(TWELFTH,SAMURAI,9,900,ATTACK_ENEMIES,0)
    
CREATE_PARTY(THIRTEENTH)
	ADD_TO_PARTY(THIRTEENTH,WIZARD,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(THIRTEENTH,TIME_MAGE,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(THIRTEENTH,GIANT,9,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(THIRTEENTH,GIANT,9,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(THIRTEENTH,GIANT,9,900,ATTACK_ENEMIES,0)
    
CREATE_PARTY(FOURTEENTH)
	ADD_TO_PARTY(FOURTEENTH,MONK,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FOURTEENTH,MONK,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FOURTEENTH,THIEF,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FOURTEENTH,THIEF,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FOURTEENTH,THIEF,10,900,ATTACK_ENEMIES,0)
    
CREATE_PARTY(FIFTEENTH)
	ADD_TO_PARTY(FIFTEENTH,DWARFA,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FIFTEENTH,DWARFA,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FIFTEENTH,DWARFA,8,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FIFTEENTH,THIEF,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(FIFTEENTH,THIEF,10,900,ATTACK_ENEMIES,0)
    
CREATE_PARTY(LORD)
	ADD_TO_PARTY(LORD,KNIGHT,10,10000,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORD,GIANT,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORD,GIANT,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORD,SAMURAI,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORD,SAMURAI,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORD,WIZARD,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORD,TIME_MAGE,10,900,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LORD,FAIRY,10,900,ATTACK_ENEMIES,0)
    
SET_FLAG(PLAYER0,FLAG0,0)
SET_FLAG(PLAYER0,FLAG1,0)
SET_FLAG(PLAYER0,FLAG2,0)
SET_FLAG(PLAYER0,FLAG3,0)
SET_FLAG(PLAYER0,FLAG4,0)
SET_FLAG(PLAYER_GOOD,FLAG0,0)

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

REM "If lands had legs this one would be on its knees. Its desperate inhabitants are preparing a full scale attack on your dungeon..."
DISPLAY_OBJECTIVE(105,PLAYER0)

IF_AVAILABLE(PLAYER0,POWER_CHICKEN >= 1)
	REM "You have discovered a devastating magical power. Target it against a creature to transform a fearsome monster into a clucking chicken. Marvellous."
   	DISPLAY_INFORMATION(97,ALL_PLAYERS)
ENDIF

IF_AVAILABLE(PLAYER0,ALARM >= 1)
	REM "Your manufacturers have built an Alarm Trap. It will warn you of your enemies' approach and summon nearby creatures to deal with the intruders."
	DISPLAY_INFORMATION(98,ALL_PLAYERS)
ENDIF

IF_AVAILABLE(PLAYER0,WORD_OF_POWER >= 1)
	DISPLAY_INFORMATION(106,ALL_PLAYERS)
ENDIF

IF_AVAILABLE(PLAYER0,MAGIC >= 1)
	DISPLAY_INFORMATION(99,ALL_PLAYERS)
ENDIF

IF(PLAYER0,TOTAL_GOLD_MINED >= 296000)
    CHANGE_SLAB_TYPE(25,34,GEMS)
    CHANGE_SLAB_TYPE(27,35,GEMS)
ENDIF

IF_ACTION_POINT(5,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GIANT,5,6,2,100)
ENDIF

IF_ACTION_POINT(6,PLAYER0)
    IF(PLAYER0,FLAG2 == 0)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER0,FLAG2,1)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER0,FLAG3,0)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(7)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(8)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(9)
        NEXT_COMMAND_REUSABLE
        PLAY_MESSAGE(PLAYER0,SOUND,935)
    ENDIF
    IF(PLAYER0,FLAG2 == 1)
        IF(PLAYER0,FLAG3 >= 5)
            CREATE_EFFECT_AT_POS(DRAWFROM(EFFECT_COLFOUNTN_1,EFFECT_COLFOUNTN_2,EFFECT_COLFOUNTN_3),29,21)
            ADD_OBJECT_TO_LEVEL_AT_POS(SPECBOX_MULTPLY,29,21,0,PLAYER_NEUTRAL)
            SET_FLAG(PLAYER0,FLAG2,2)
        ENDIF
        IF(PLAYER0,FLAG3 > 0)
            IF(PLAYER0,FLAG3 < 5)
                NEXT_COMMAND_REUSABLE
                SET_FLAG(PLAYER0,FLAG4,2)
            ENDIF
        ENDIF
    ENDIF
ENDIF

IF_ACTION_POINT(7,PLAYER0)
    IF(PLAYER0,FLAG2 == 1)
        IF(PLAYER0,FLAG3 == 0)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG3,1)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG4,1)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(6)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(8)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(9)
        ENDIF
        IF(PLAYER0,FLAG3 == 4)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG3,5)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG4,1)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(6)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(8)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(9)
        ENDIF
        IF(PLAYER0,FLAG3 != 0)
            IF(PLAYER0,FLAG3 != 4)
                IF(PLAYER0,FLAG3 != 1)
                    IF(PLAYER0,FLAG3 != 5)
                        NEXT_COMMAND_REUSABLE
                        SET_FLAG(PLAYER0,FLAG4,3)
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF

IF_ACTION_POINT(8,PLAYER0)
    IF(PLAYER0,FLAG2 == 1)
        IF(PLAYER0,FLAG3 == 1)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG3,2)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG4,1)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(6)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(7)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(9)
        ENDIF
        IF(PLAYER0,FLAG3 == 3)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG3,4)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG4,1)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(6)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(7)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(9)
        ENDIF
        IF(PLAYER0,FLAG3 != 1)
            IF(PLAYER0,FLAG3 != 3)
                IF(PLAYER0,FLAG3 != 2)
                    IF(PLAYER0,FLAG3 != 4)
                        NEXT_COMMAND_REUSABLE
                        SET_FLAG(PLAYER0,FLAG4,3)
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF

IF_ACTION_POINT(9,PLAYER0)
    IF(PLAYER0,FLAG2 == 1)
        IF(PLAYER0,FLAG3 == 2)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG3,3)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,FLAG4,1)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(6)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(8)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(7)
        ENDIF
        IF(PLAYER0,FLAG3 != 2)
            IF(PLAYER0,FLAG3 != 3)
                NEXT_COMMAND_REUSABLE
                SET_FLAG(PLAYER0,FLAG4,3)
            ENDIF
        ENDIF
    ENDIF
ENDIF

IF(PLAYER0,FLAG4 == 1)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER0,FLAG4,0)
    NEXT_COMMAND_REUSABLE
    PLAY_MESSAGE(PLAYER0,SOUND,936)
ENDIF

IF(PLAYER0,FLAG4 >= 2)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER0,FLAG4,0)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER0,FLAG2,0)
    NEXT_COMMAND_REUSABLE
    SET_FLAG(PLAYER0,FLAG3,0)
    NEXT_COMMAND_REUSABLE
    RESET_ACTION_POINT(6)
    NEXT_COMMAND_REUSABLE
    RESET_ACTION_POINT(7)
    NEXT_COMMAND_REUSABLE
    RESET_ACTION_POINT(8)
    NEXT_COMMAND_REUSABLE
    RESET_ACTION_POINT(9)
    IF(PLAYER0,FLAG4 > 2)
        NEXT_COMMAND_REUSABLE
        PLAY_MESSAGE(PLAYER0,SOUND,934)
    ENDIF
ENDIF

REM IF(PLAYER0,GAME_TURN >= 600)
    REM DISPLAY_INFORMATION(3,ALL_PLAYERS)
REM ENDIF

IF(PLAYER_GOOD,FLAG0 == 0)
    REM Spawn continuously the FIRST party
    IF(PLAYER_GOOD,GAME_TURN >= 1000)
        SET_TIMER(PLAYER_GOOD,TIMER1)
    ENDIF
    REM Spawn continuously the SECOND party
    IF(PLAYER_GOOD,GAME_TURN >= 1750)
        SET_TIMER(PLAYER_GOOD,TIMER2)
    ENDIF
    REM Spawn continuously the THIRD party
    IF(PLAYER_GOOD,GAME_TURN >= 2500)
        SET_TIMER(PLAYER_GOOD,TIMER3)
    ENDIF
    REM Spawn continuously the FOURTH party
    IF(PLAYER_GOOD,GAME_TURN >= 3250)
        SET_TIMER(PLAYER_GOOD,TIMER4)
    ENDIF
	IF(PLAYER_GOOD,TIMER1 > 1750)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FIRST,3,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER_GOOD,TIMER1)
	ENDIF
    IF(PLAYER_GOOD,TIMER2 > 2250)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SECOND,1,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER_GOOD,TIMER2)
	ENDIF
    IF(PLAYER_GOOD,TIMER3 > 2750)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THIRD,2,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER_GOOD,TIMER3)
	ENDIF
    IF(PLAYER_GOOD,TIMER4 > 3500)
		NEXT_COMMAND_REUSABLE
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FOURTH,4,1)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER_GOOD,TIMER4)
	ENDIF
ENDIF

REM Stop spawning continous parties after a given amount of turns
IF(PLAYER_GOOD,GAME_TURN >= 13000)
    SET_FLAG(PLAYER_GOOD,FLAG0,1)
    IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
        REM "Your annihilation of the first wave has met with the approval of a pack of demons from the fifth plane of hell..."
        DISPLAY_OBJECTIVE(102,PLAYER0)
        SET_TIMER(PLAYER0,TIMER1)
        DISPLAY_COUNTDOWN(PLAYER0,TIMER1,3000,1)        
    ENDIF
ENDIF

IF(PLAYER_GOOD,FLAG0 == 1)
    REM Start a second wave
    IF(PLAYER0,TIMER1 >= 3000)
        REM "The enemy are upon us. I'm just telling you in case you were having a doze."
        DISPLAY_OBJECTIVE(103,PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FIFTH,1,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SIXTH,2,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SEVENTH,3,1)
    ENDIF
    IF(PLAYER0,TIMER1 >= 5000)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EIGHTH,4,1)
    ENDIF	
    IF(PLAYER0,TIMER1 >= 5500)
        IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES < 3)
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NINTH,1,1)
        ENDIF
        IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
            SET_FLAG(PLAYER_GOOD,FLAG0,2)
            SET_TIMER(PLAYER0,TIMER2)
            DISPLAY_COUNTDOWN(PLAYER0,TIMER2,3600,1)
            DISPLAY_OBJECTIVE(1,PLAYER0)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER_GOOD,FLAG0 == 2)
    IF(PLAYER0,TIMER2 >= 3600)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TENTH,3,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EIGHTH,2,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ELEVENTH,1,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EIGHTH,4,1)
        IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
            SET_FLAG(PLAYER0,FLAG1,1)
        ENDIF
        IF(PLAYER0,FLAG1 > 0)
            REM SET_TIMER(PLAYER0,TIMER3)
            SET_TIMER(PLAYER_GOOD,TIMER4)
            SET_TIMER(PLAYER_GOOD,TIMER5)
            SET_TIMER(PLAYER_GOOD,TIMER6)
            SET_TIMER(PLAYER_GOOD,TIMER7)
            IF(PLAYER0,FLAG0 < 3)
                IF(PLAYER_GOOD,TIMER4 > 1250)
                    NEXT_COMMAND_REUSABLE
                    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,1,3,7,500)
                    NEXT_COMMAND_REUSABLE
                    SET_TIMER(PLAYER_GOOD,TIMER4)
                ENDIF
                IF(PLAYER_GOOD,TIMER5 > 1750)
                    NEXT_COMMAND_REUSABLE
                    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,2,3,7,500)
                    NEXT_COMMAND_REUSABLE
                    SET_TIMER(PLAYER_GOOD,TIMER5)
                ENDIF
                IF(PLAYER_GOOD,TIMER6 > 2250)
                    NEXT_COMMAND_REUSABLE
                    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,3,3,7,500)
                    NEXT_COMMAND_REUSABLE
                    SET_TIMER(PLAYER_GOOD,TIMER6)
                ENDIF
                IF(PLAYER_GOOD,TIMER7 > 2700)
                    NEXT_COMMAND_REUSABLE
                    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,SAMURAI,4,3,7,500)
                    NEXT_COMMAND_REUSABLE
                    ADD_TO_FLAG(PLAYER0,FLAG0,1)
                    NEXT_COMMAND_REUSABLE
                    SET_TIMER(PLAYER_GOOD,TIMER7)
                ENDIF
            ENDIF
        ENDIF
        IF(PLAYER0,FLAG0 >= 3)
            IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
                SET_FLAG(PLAYER_GOOD,FLAG0,3)
                DISPLAY_OBJECTIVE(2,PLAYER0)
                SET_FLAG(PLAYER0,FLAG1,0)
            ENDIF
        ENDIF
    ENDIF
ENDIF

IF(PLAYER_GOOD,FLAG0 == 3)
    SET_TIMER(PLAYER0,TIMER3)
    DISPLAY_COUNTDOWN(PLAYER0,TIMER3,3600,1)
    SET_FLAG(PLAYER0,FLAG0,0)
    IF(PLAYER0,TIMER3 >= 3600)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EIGHTH,1,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EIGHTH,2,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EIGHTH,3,1)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,EIGHTH,4,1)
        SET_TIMER(PLAYER_GOOD,TIMER4)
        SET_TIMER(PLAYER_GOOD,TIMER5)
        SET_TIMER(PLAYER_GOOD,TIMER6)
        SET_TIMER(PLAYER_GOOD,TIMER7)
        IF(PLAYER0,FLAG0 < 3)
            IF(PLAYER_GOOD,TIMER4 > 1250)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FIFTEENTH,3,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER_GOOD,TIMER4)
            ENDIF
            IF(PLAYER_GOOD,TIMER5 > 1750)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THIRTEENTH,1,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER_GOOD,TIMER5)
            ENDIF
            IF(PLAYER_GOOD,TIMER6 > 2250)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,FOURTEENTH,2,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER_GOOD,TIMER6)
            ENDIF
            IF(PLAYER_GOOD,TIMER7 > 2700)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWELFTH,4,1)
                NEXT_COMMAND_REUSABLE
                ADD_TO_FLAG(PLAYER0,FLAG0,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER_GOOD,TIMER7)
            ENDIF
        ENDIF
        IF(PLAYER0,FLAG0 >= 3)
            IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
                SET_FLAG(PLAYER_GOOD,FLAG0,4)
            ENDIF
        ENDIF
    ENDIF
ENDIF

IF(PLAYER_GOOD,FLAG0 == 4)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LORD,3,1)
	IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
		REM "All the heroes are dead, which is as it should be. This land and all its spoils are yours. May I suggest that you waste everything?"
		DISPLAY_OBJECTIVE(104,PLAYER0)
		WIN_GAME
	ENDIF
ENDIF

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