REM PLAY Level 112


REM             *** Initializations ***
SET_GENERATE_SPEED(500)
MAX_CREATURES(PLAYER0, 10)
START_MONEY(PLAYER0, 20000)


REM             *** Creature Defines ***
ADD_CREATURE_TO_POOL(SORCEROR, 5)
ADD_CREATURE_TO_POOL(BILE_DEMON, 5)
ADD_CREATURE_TO_POOL(DRAGON, 5)
ADD_CREATURE_TO_POOL(DEMONSPAWN, 15)
ADD_CREATURE_TO_POOL(BUG, 15)
ADD_CREATURE_TO_POOL(SPIDER, 5)
ADD_CREATURE_TO_POOL(TROLL, 5)
ADD_CREATURE_TO_POOL(ORC, 5)

CREATURE_AVAILABLE(ALL_PLAYERS, SORCEROR, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, BILE_DEMON, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, DRAGON, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, DEMONSPAWN, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, BUG, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, SPIDER, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, TROLL, 1, 1)
CREATURE_AVAILABLE(ALL_PLAYERS, ORC, 1, 1)


REM             *** Room Defines ***
IF(PLAYER0, TREASURE > 0)
        ROOM_AVAILABLE(ALL_PLAYERS, TREASURE, 1, 1)
ENDIF
IF(PLAYER0, LAIR > 0)
        ROOM_AVAILABLE(ALL_PLAYERS, LAIR, 1, 1)
ENDIF
IF(PLAYER0, GARDEN > 0)
        ROOM_AVAILABLE(ALL_PLAYERS, GARDEN, 1, 1)
ENDIF
IF(PLAYER0, TRAINING > 0)
        ROOM_AVAILABLE(ALL_PLAYERS, TRAINING, 1, 1)
ENDIF
IF(PLAYER0, RESEARCH > 0)
        ROOM_AVAILABLE(ALL_PLAYERS, RESEARCH, 1, 1)
ENDIF
IF(PLAYER0, BARRACKS > 0)
        ROOM_AVAILABLE(ALL_PLAYERS, BARRACKS, 1, 1)
ENDIF
IF(PLAYER0, PRISON > 0)
        ROOM_AVAILABLE(ALL_PLAYERS, PRISON, 1, 1)
ENDIF
IF(PLAYER0, WORKSHOP > 0)
        ROOM_AVAILABLE(ALL_PLAYERS, WORKSHOP, 1, 1)
ENDIF
ROOM_AVAILABLE(ALL_PLAYERS, GUARD_POST, 1, 0)
ROOM_AVAILABLE(ALL_PLAYERS, BRIDGE, 1, 0)


REM             *** Magic Defines ***
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_HAND, 1, 1)
MAGIC_AVAILABLE(ALL_PLAYERS, POWER_SLAP, 1, 1)


REM             *** Doors ***
Door_available(all_players, Wood, 1, 0)
Door_available(all_players, Braced, 1, 0)
Door_available(all_players, Steel, 1, 0)


REM             *** Traps ***
Trap_available(all_players, Alarm, 1, 0)
Trap_available(all_players, Poison_Gas, 1, 0)
Trap_available(all_players, Lava, 1, 0)


REM             *** Party 1 ***
CREATE_PARTY(PARTY1)
        ADD_to_PARTY(PARTY1, Wizard, 5, 100, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY1, Thief, 4, 500, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY1, Barbarian, 4, 100, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(1, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY1, 1, 1)
ENDIF


REM             *** Party 2 ***
CREATE_PARTY(PARTY2)
        ADD_to_PARTY(PARTY2, Fairy, 7, 100, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY2, Witch, 5, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY2, Giant, 4, 0, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(2, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY2, 2, 1)
ENDIF


REM             *** Party 3 ***
CREATE_PARTY(PARTY3)
        ADD_to_PARTY(PARTY3, Fairy, 10, 200, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY3, Archer, 8, 400, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY3, Barbarian, 7, 400, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY3, Fairy, 10, 200, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(3, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY3, 3, 1)
ENDIF


REM             *** Party 4 ***
CREATE_PARTY(PARTY4)
        ADD_to_PARTY(PARTY4, Witch, 10, 300, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY4, Samurai, 8, 400, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY4, Thief, 8, 1000, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY4, Witch, 10, 300, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(4, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY4, 4, 1)
ENDIF


REM             *** Party 5 ***
CREATE_PARTY(PARTY5)
        ADD_to_PARTY(PARTY5, Wizard, 10, 100, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY5, Giant, 8, 800, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY5, Giant, 8, 800, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY5, Wizard, 10, 100, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(5, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY5, 5, 1)
ENDIF


REM             *** Party 6 ***
CREATE_PARTY(PARTY6)
        ADD_to_PARTY(PARTY6, Barbarian, 8, 100, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY6, Barbarian, 7, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY6, Barbarian, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY6, Archer, 7, 0, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(6, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY6, 6, 1)
ENDIF


REM             *** Party 7 ***
CREATE_PARTY(PARTY7)
        ADD_to_PARTY(PARTY7, Barbarian, 10, 400, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY7, Barbarian, 10, 400, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY7, Giant, 9, 1000, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY7, Monk, 10, 200, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY7, Samurai, 10, 500, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY7, Archer, 10, 200, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(7, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY7, 7, 1)
ENDIF


REM             *** Party 8 ***
CREATE_PARTY(PARTY8)
        ADD_to_PARTY(PARTY8, Fairy, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY8, Fairy, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY8, Fairy, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY8, Witch, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY8, Witch, 10, 0, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(8, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY8, 8, 1)
ENDIF


REM             *** Party 9 ***
CREATE_PARTY(PARTY9)
        ADD_to_PARTY(PARTY9, Fairy, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY9, Fairy, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY9, Witch, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY9, Witch, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY9, Witch, 10, 0, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(9, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY9, 9, 1)
ENDIF


REM             *** Party 10 ***
CREATE_PARTY(PARTY10)
        ADD_to_PARTY(PARTY10, Samurai, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY10, Samurai, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY10, Samurai, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY10, Wizard, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY10. Wizard, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY10, Giant, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY10, Giant, 10, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY10, Knight, 10, 0, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(10, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY10, 10, 1)
	SET_FLAG(PLAYER0, FLAG0, 1)
ENDIF


REM             *** Party 11 ***
CREATE_PARTY(PARTY11)
        ADD_to_PARTY(PARTY11, Thief, 4, 500, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY11, Thief, 4, 500, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY11, Thief, 4, 500, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY11, Thief, 4, 500, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY11, Archer, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY11, Archer, 6, 0, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(11, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY11, 11, 1)
ENDIF


REM             *** Party 12 ***
CREATE_PARTY(PARTY12)
        ADD_to_PARTY(PARTY12, Fairy, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY12, Fairy, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY12, Fairy, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY12, Fairy, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY12, Fairy, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY12, Fairy, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY12, Fairy, 6, 0, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(12, PLAYER0)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY12, 12, 1)
ENDIF


REM             *** Boulder Traps Available ***
IF_ACTION_POINT(13, PLAYER0)
        Trap_available(ALL_PLAYERS, Boulder, 1, 1)
ENDIF


REM             *** Guard Gold ***
CREATE_PARTY(PARTY14)
        ADD_to_PARTY(PARTY14, Giant, 5, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY14, Samurai, 8, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY14, Archer, 7, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY14, Thief, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY14, Archer, 7, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY14, Samurai, 6, 0, ATTACK_ENEMIES, 0)
        ADD_to_PARTY(PARTY14, Giant, 5, 0, ATTACK_ENEMIES, 0)
IF_ACTION_POINT(14, PLAYER0)
        IF(PLAYER0, MONEY > 25000)
                ADD_PARTY_TO_LEVEL(PLAYER_GOOD, PARTY14, 14, 1)
        ENDIF
ENDIF


REM             *** Objectives ***
DISPLAY_OBJECTIVE(898, PLAYER0)


REM             *** Win Conditions ***
IF(PLAYER0, FLAG0 == 1)
        IF(PLAYER_GOOD, KNIGHT == 0)
                IF(PLAYER_GOOD, DUNGEON_DESTROYED == 1)
                        WIN_GAME
                ENDIF
        ENDIF
ENDIF


REM             *** End of File ***
