REM level Converted!

REM ----- Initialise Creature Generation Speed
SET_GENERATE_SPEED(500)

REM ----- Initialise Players Maximum Number Of Creatures
MAX_CREATURES(PLAYER0,16)
MAX_CREATURES(PLAYER1,24)
MAX_CREATURES(PLAYER2,24)
MAX_CREATURES(PLAYER3,24)

REM ----- Define Players Initial Gold
START_MONEY(PLAYER0,15000)
START_MONEY(PLAYER1,500000)
START_MONEY(PLAYER2,25000)
START_MONEY(PLAYER3,25000)

REM ----- Initalise Computer AI
COMPUTER_PLAYER(PLAYER1,1)
COMPUTER_PLAYER(PLAYER2,1)
COMPUTER_PLAYER(PLAYER3,1)

REM ----- Ally Computer Players
ALLY_PLAYERS(PLAYER1,PLAYER2)
ALLY_PLAYERS(PLAYER2,PLAYER3)
ALLY_PLAYERS(PLAYER1,PLAYER3)

REM ----- Define Creature pool for Evil
ADD_CREATURE_TO_POOL(FLY,20)
ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,20)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)
ADD_CREATURE_TO_POOL(TENTACLE,20)
ADD_CREATURE_TO_POOL(ORC,20)

REM ----- Define Creature pool for Good
ADD_CREATURE_TO_POOL(WIZARD,20)
ADD_CREATURE_TO_POOL(BARBARIAN,20)
ADD_CREATURE_TO_POOL(ARCHER,20)
ADD_CREATURE_TO_POOL(MONK,20)
ADD_CREATURE_TO_POOL(DWARFA,20)
ADD_CREATURE_TO_POOL(WITCH,20)
ADD_CREATURE_TO_POOL(GIANT,20)
ADD_CREATURE_TO_POOL(FAIRY,20)
ADD_CREATURE_TO_POOL(THIEF,20)
ADD_CREATURE_TO_POOL(SAMURAI,20)

REM ----- Define Creatures available for Evil
CREATURE_AVAILABLE(PLAYER0,FLY,1,1)
CREATURE_AVAILABLE(PLAYER0,BUG,1,1)
CREATURE_AVAILABLE(PLAYER0,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER0,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER0,DRAGON,1,1)
CREATURE_AVAILABLE(PLAYER0,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(PLAYER0,DARK_MISTRESS,1,1)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,1)
CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER0,HELL_HOUND,1,1)
CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,1)
CREATURE_AVAILABLE(PLAYER0,ORC,1,1)

REM ----- Define Creatures available for Good
CREATURE_AVAILABLE(PLAYER1,WIZARD,1,1)
CREATURE_AVAILABLE(PLAYER2,WIZARD,1,1)
CREATURE_AVAILABLE(PLAYER3,WIZARD,1,1)
CREATURE_AVAILABLE(PLAYER1,BARBARIAN,1,1)
CREATURE_AVAILABLE(PLAYER2,BARBARIAN,1,1)
CREATURE_AVAILABLE(PLAYER3,BARBARIAN,1,1)
CREATURE_AVAILABLE(PLAYER1,ARCHER,1,1)
CREATURE_AVAILABLE(PLAYER2,ARCHER,1,1)
CREATURE_AVAILABLE(PLAYER3,ARCHER,1,1)
CREATURE_AVAILABLE(PLAYER1,MONK,1,1)
CREATURE_AVAILABLE(PLAYER2,MONK,1,1)
CREATURE_AVAILABLE(PLAYER3,MONK,1,1)
CREATURE_AVAILABLE(PLAYER1,DWARFA,1,1)
CREATURE_AVAILABLE(PLAYER2,DWARFA,1,1)
CREATURE_AVAILABLE(PLAYER3,DWARFA,1,1)
CREATURE_AVAILABLE(PLAYER1,WITCH,1,1)
CREATURE_AVAILABLE(PLAYER2,WITCH,1,1)
CREATURE_AVAILABLE(PLAYER3,WITCH,1,1)
CREATURE_AVAILABLE(PLAYER1,GIANT,1,1)
CREATURE_AVAILABLE(PLAYER2,GIANT,1,1)
CREATURE_AVAILABLE(PLAYER3,GIANT,1,1)
CREATURE_AVAILABLE(PLAYER1,FAIRY,1,1)
CREATURE_AVAILABLE(PLAYER2,FAIRY,1,1)
CREATURE_AVAILABLE(PLAYER3,FAIRY,1,1)
CREATURE_AVAILABLE(PLAYER1,THIEF,1,1)
CREATURE_AVAILABLE(PLAYER2,THIEF,1,1)
CREATURE_AVAILABLE(PLAYER3,THIEF,1,1)
CREATURE_AVAILABLE(PLAYER1,SAMURAI,1,1)
CREATURE_AVAILABLE(PLAYER2,SAMURAI,1,1)
CREATURE_AVAILABLE(PLAYER3,SAMURAI,1,1)

REM ----- Define Rooms available for each player
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,TRAINING,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,0)
ROOM_AVAILABLE(PLAYER1,GUARD_POST,1,1)
ROOM_AVAILABLE(PLAYER2,GUARD_POST,1,0)
ROOM_AVAILABLE(PLAYER3,GUARD_POST,1,0)
ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0)
ROOM_AVAILABLE(PLAYER1,WORKSHOP,1,1)
ROOM_AVAILABLE(PLAYER2,WORKSHOP,1,1)
ROOM_AVAILABLE(PLAYER3,WORKSHOP,1,1)
ROOM_AVAILABLE(PLAYER0,BARRACKS,1,0)
ROOM_AVAILABLE(PLAYER1,BARRACKS,1,1)
ROOM_AVAILABLE(PLAYER2,BARRACKS,1,1)
ROOM_AVAILABLE(PLAYER3,BARRACKS,1,1)
ROOM_AVAILABLE(PLAYER0,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER1,TEMPLE,1,1)
ROOM_AVAILABLE(PLAYER2,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER3,TEMPLE,1,0)
ROOM_AVAILABLE(PLAYER2,BRIDGE,1,0)
ROOM_AVAILABLE(PLAYER3,BRIDGE,1,0)
ROOM_AVAILABLE(PLAYER1,PRISON,1,1)
ROOM_AVAILABLE(PLAYER2,PRISON,1,1)
ROOM_AVAILABLE(PLAYER3,PRISON,1,1)
ROOM_AVAILABLE(PLAYER1,TORTURE,1,1)
ROOM_AVAILABLE(PLAYER2,TORTURE,1,1)
ROOM_AVAILABLE(PLAYER3,TORTURE,1,1)
ROOM_AVAILABLE(PLAYER1,GRAVEYARD,1,1)
ROOM_AVAILABLE(PLAYER2,GRAVEYARD,1,1)
ROOM_AVAILABLE(PLAYER3,GRAVEYARD,1,1)
ROOM_AVAILABLE(PLAYER1,SCAVENGER,1,1)
ROOM_AVAILABLE(PLAYER2,SCAVENGER,1,1)
ROOM_AVAILABLE(PLAYER3,SCAVENGER,1,1)

REM ----- Define Magic available for each player
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CAVE_IN,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER2,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER3,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_OBEY,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_OBEY,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_OBEY,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(PLAYER2,POWER_CHICKEN,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_LIGHTNING,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_DISEASE,1,0)

REM ----- Define Traps available for each player
TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,0)
TRAP_AVAILABLE(PLAYER1,POISON_GAS,1,4)
TRAP_AVAILABLE(PLAYER2,POISON_GAS,1,4)
TRAP_AVAILABLE(PLAYER3,POISON_GAS,1,4)
TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,0)
TRAP_AVAILABLE(PLAYER1,LIGHTNING,1,4)
TRAP_AVAILABLE(PLAYER2,LIGHTNING,1,4)
TRAP_AVAILABLE(PLAYER3,LIGHTNING,1,4)
TRAP_AVAILABLE(PLAYER0,WORD_OF_POWER,1,0)
TRAP_AVAILABLE(PLAYER1,WORD_OF_POWER,1,4)
TRAP_AVAILABLE(PLAYER2,WORD_OF_POWER,1,4)
TRAP_AVAILABLE(PLAYER3,WORD_OF_POWER,1,4)
TRAP_AVAILABLE(PLAYER0,BOULDER,1,0)
TRAP_AVAILABLE(PLAYER1,BOULDER,1,0)
TRAP_AVAILABLE(PLAYER2,BOULDER,1,0)
TRAP_AVAILABLE(PLAYER3,BOULDER,1,0)
TRAP_AVAILABLE(PLAYER1,LAVA,1,4)
TRAP_AVAILABLE(PLAYER2,LAVA,1,4)
TRAP_AVAILABLE(PLAYER3,LAVA,1,4)
DOOR_AVAILABLE(PLAYER0,STEEL,1,0)
DOOR_AVAILABLE(PLAYER1,STEEL,1,8)
DOOR_AVAILABLE(PLAYER2,STEEL,1,8)
DOOR_AVAILABLE(PLAYER3,STEEL,1,8)
DOOR_AVAILABLE(PLAYER0,MAGIC,1,0)
DOOR_AVAILABLE(PLAYER1,MAGIC,1,16)
DOOR_AVAILABLE(PLAYER2,MAGIC,1,16)
DOOR_AVAILABLE(PLAYER3,MAGIC,1,16)

REM ----- Create Party (Resurrect Creature)
CREATE_PARTY(RESURRECT_CREATURE)
    ADD_TO_PARTY(RESURRECT_CREATURE,WITCH,10,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RESURRECT_CREATURE,WITCH,10,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RESURRECT_CREATURE,WITCH,10,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RESURRECT_CREATURE,FAIRY,10,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RESURRECT_CREATURE,FAIRY,10,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RESURRECT_CREATURE,FAIRY,10,500,ATTACK_ENEMIES,0)

REM ----- Create Party (Steal Hero)
CREATE_PARTY(STEAL_HERO)
    ADD_TO_PARTY(STEAL_HERO,DWARFA,10,100,ATTACK_ROOMS,0)
    ADD_TO_PARTY(STEAL_HERO,DWARFA,10,100,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(STEAL_HERO,DWARFA,10,100,ATTACK_ROOMS,0)
    ADD_TO_PARTY(STEAL_HERO,DWARFA,10,100,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(STEAL_HERO,DWARFA,10,100,ATTACK_ROOMS,0)
    ADD_TO_PARTY(STEAL_HERO,DWARFA,10,100,ATTACK_DUNGEON_HEART,0)

REM ----- Create Party (Increase Level)
CREATE_PARTY(INCREASE_LEVEL)
    ADD_TO_PARTY(INCREASE_LEVEL,ARCHER,7,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,BARBARIAN,5,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,DWARFA,8,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,FAIRY,9,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,GIANT,5,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,MONK,7,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,SAMURAI,5,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,THIEF,7,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,WITCH,9,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,WIZARD,6,250,ATTACK_ENEMIES,0)

REM ----- Create Party (Outer Chamber)
CREATE_PARTY(OUTER_CHAMBER)
    ADD_TO_PARTY(OUTER_CHAMBER,GIANT,10,250,DEFEND_PARTY,0)
    ADD_TO_PARTY(OUTER_CHAMBER,GIANT,10,250,DEFEND_PARTY,0)
    ADD_TO_PARTY(OUTER_CHAMBER,GIANT,10,250,DEFEND_PARTY,0)
    ADD_TO_PARTY(OUTER_CHAMBER,GIANT,10,250,DEFEND_PARTY,0)

REM ----- Create Party (Dungeon Heart Door)
CREATE_PARTY(DUNGEON_HEART_DOOR)
    ADD_TO_PARTY(INCREASE_LEVEL,ARCHER,8,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,BARBARIAN,6,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,DWARFA,9,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,FAIRY,9,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,GIANT,6,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,MONK,8,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,SAMURAI,6,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,THIEF,8,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,WITCH,9,250,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(INCREASE_LEVEL,WIZARD,9,250,ATTACK_ENEMIES,0)

REM ----- Create Party (Lord Of The Land)
CREATE_PARTY(LORD_OF_THE_LAND)
    ADD_TO_PARTY(LORD_OF_THE_LAND,AVATAR,10,3000,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(LORD_OF_THE_LAND,KNIGHT,10,1000,DEFEND_PARTY,0)
    ADD_TO_PARTY(LORD_OF_THE_LAND,KNIGHT,10,1000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(LORD_OF_THE_LAND,KNIGHT,10,1000,DEFEND_PARTY,0)
    ADD_TO_PARTY(LORD_OF_THE_LAND,KNIGHT,10,1000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(LORD_OF_THE_LAND,KNIGHT,10,1000,DEFEND_PARTY,0)
    ADD_TO_PARTY(LORD_OF_THE_LAND,KNIGHT,10,1000,ATTACK_ENEMIES,0)

REM ----- Check if Player has been defeated
IF(PLAYER0,DUNGEON_DESTROYED == 1)
    LOSE_GAME
ENDIF

REM ----- Check if Player has been victorious
IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
    IF(PLAYER1,DUNGEON_DESTROYED == 1)
        IF(PLAYER2,DUNGEON_DESTROYED == 1)
            IF(PLAYER3,DUNGEON_DESTROYED == 1)
                IF(PLAYER_GOOD,DUNGEON_DESTROYED == 1)
                    IF(PLAYER_GOOD,AVATAR == 0)
                        WIN_GAME
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM ----- Check if Player has captured a Bridge
IF(PLAYER0,BRIDGE >= 1)
    ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
ENDIF

REM ----- Check Action Point 1 (Steal Hero)
IF_ACTION_POINT(1,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,STEAL_HERO,-1,1)
ENDIF

REM ----- Check Action Point 2 (Resurrect Creature)
IF_ACTION_POINT(2,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RESURRECT_CREATURE,-2,1)
ENDIF

REM ----- Check Action Point 3 (Increase Level)
IF_ACTION_POINT(3,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,INCREASE_LEVEL,-3,1)
ENDIF

REM ----- Check Action Point 4 (Outer Chamber)
IF_ACTION_POINT(4,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,OUTER_CHAMBER,-4,1)
ENDIF

REM ----- Check Action Point 5 (Dungeon Heart Door)
IF_ACTION_POINT(5,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DUNGEON_HEART_DOOR,5,1)
ENDIF

REM ----- Check Action Point 6 (Lord Of The Land)
IF_ACTION_POINT(6,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LORD_OF_THE_LAND,6,1)
ENDIF
