SET_GENERATE_SPEED(600)
MAX_CREATURES(PLAYER0,14)
MAX_CREATURES(PLAYER1,36)
START_MONEY(PLAYER0,25000)
START_MONEY(PLAYER1,150000)

COMPUTER_PLAYER(PLAYER1,0)

QUICK_OBJECTIVE(0,"In the shadow of the Yceglayze Mountain, the savage northern tribes are banding together under the leadership of a Keeper by the name of Uthen. Uthen intends to invade the south with an army of hardened barbarians. Though you may find their magical knowledge and workshop technology, rightfully, laughably primitive, do not underestimate their massive numbers.",PLAYER0)

ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,25)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,5)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(BUG,15)
ADD_CREATURE_TO_POOL(SPIDER,15)
ADD_CREATURE_TO_POOL(FLY,15)
ADD_CREATURE_TO_POOL(ORC,30)
ADD_CREATURE_TO_POOL(DRAGON,25)
ADD_CREATURE_TO_POOL(DEMONSPAWN,15)
ADD_CREATURE_TO_POOL(TENTACLE,20)

ADD_CREATURE_TO_POOL(WIZARD,10)
ADD_CREATURE_TO_POOL(BARBARIAN,60)
ADD_CREATURE_TO_POOL(ARCHER,15)
ADD_CREATURE_TO_POOL(MONK,10)
ADD_CREATURE_TO_POOL(DWARFA,15)
ADD_CREATURE_TO_POOL(GIANT,10)
ADD_CREATURE_TO_POOL(FAIRY,10)
ADD_CREATURE_TO_POOL(THIEF,15)
ADD_CREATURE_TO_POOL(SAMURAI,4)
ADD_CREATURE_TO_POOL(WITCH,4)

SET_CREATURE_MAX_LEVEL(PLAYER1,THIEF,10)
SET_CREATURE_HEALTH(BARBARIAN,815)

SET_TIMER(PLAYER1,TIMER0)

IF(PLAYER1,TIMER0 >= 3345)
    IF(PLAYER1,TOTAL_CREATURES < 32)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER1,BARBARIAN,1,1,1,0)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER1,TIMER0)
    ENDIF
ENDIF

REM Human

CREATURE_AVAILABLE(PLAYER0,DARK_MISTRESS,1,1)
CREATURE_AVAILABLE(PLAYER0,TROLL,1,1)
CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,1)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,1)
CREATURE_AVAILABLE(PLAYER0,ORC,1,1)
CREATURE_AVAILABLE(PLAYER0,DRAGON,1,1)
CREATURE_AVAILABLE(PLAYER0,SPIDER,1,1)
CREATURE_AVAILABLE(PLAYER0,FLY,1,1)
CREATURE_AVAILABLE(PLAYER0,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,1)
CREATURE_AVAILABLE(PLAYER0,BUG,1,1)

REM Blue Keeper

CREATURE_AVAILABLE(PLAYER1,WIZARD,1,1)
CREATURE_AVAILABLE(PLAYER1,BARBARIAN,1,1)
CREATURE_AVAILABLE(PLAYER1,ARCHER,1,1)
CREATURE_AVAILABLE(PLAYER1,DWARFA,1,1)
CREATURE_AVAILABLE(PLAYER1,MONK,1,1)
CREATURE_AVAILABLE(PLAYER1,GIANT,1,1)
CREATURE_AVAILABLE(PLAYER1,FAIRY,1,1)
CREATURE_AVAILABLE(PLAYER1,THIEF,1,1)
CREATURE_AVAILABLE(PLAYER1,SAMURAI,1,1)
CREATURE_AVAILABLE(PLAYER1,WITCH,1,1)

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(PLAYER1,BRIDGE,1,0)
ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0)

IF(PLAYER0,BRIDGE > 0)
    ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
    TUTORIAL_FLASH_BUTTON(18,1500)
ENDIF

IF(PLAYER0,BARRACKS > 0)
    ROOM_AVAILABLE(PLAYER0,BARRACKS,1,1)
    TUTORIAL_FLASH_BUTTON(16,1500)
ENDIF

IF(PLAYER0,TORTURE > 0)
    ROOM_AVAILABLE(PLAYER0,TORTURE,1,1)
    TUTORIAL_FLASH_BUTTON(17,1500)
ENDIF

IF(PLAYER0,TEMPLE > 0)
    ROOM_AVAILABLE(PLAYER0,TEMPLE,1,1)
    TUTORIAL_FLASH_BUTTON(12,1500)
ENDIF

IF(PLAYER0,GUARD_POST > 0)
    ROOM_AVAILABLE(PLAYER0,GUARD_POST,1,1)
    TUTORIAL_FLASH_BUTTON(19,1500)
ENDIF

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER1,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_PROTECT,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CONCEAL,1,0)
MAGIC_AVAILABLE(PLAYER1,POWER_SPEED,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)

TRAP_AVAILABLE(PLAYER0,ALARM,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0)
DOOR_AVAILABLE(PLAYER0,MAGIC,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,WORD_OF_POWER,1,0)

CREATE_PARTY(RAIDERS)
    ADD_TO_PARTY(RAIDERS,THIEF,4,400,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(RAIDERS,ARCHER,5,300,STEAL_SPELLS,0)
    ADD_TO_PARTY(RAIDERS,DWARFA,4,200,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RAIDERS,THIEF,4,200,ATTACK_ENEMIES,0)

CREATE_PARTY(HOLY)
    ADD_TO_PARTY(HOLY,MONK,8,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HOLY,WIZARD,9,400,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HOLY,SAMURAI,9,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HOLY,SAMURAI,9,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HOLY,MONK,8,200,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HOLY,MONK,8,200,ATTACK_ENEMIES,0)

CREATE_PARTY(HOLY_TWO)
    ADD_TO_PARTY(HOLY_TWO,MONK,5,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(HOLY_TWO,MONK,6,600,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(HOLY_TWO,WITCH,5,400,DEFEND_PARTY,0)
    ADD_TO_PARTY(HOLY_TWO,WITCH,5,400,DEFEND_PARTY,0)
    ADD_TO_PARTY(HOLY_TWO,SAMURAI,6,800,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(RPG)
    ADD_TO_PARTY(RPG,DWARFA,8,1000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RPG,WIZARD,9,500,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RPG,MONK,8,400,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(RPG,ARCHER,8,350,ATTACK_ENEMIES,0)

CREATE_PARTY(DEFENDERS)
    ADD_TO_PARTY(DEFENDERS,ARCHER,8,300,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(DEFENDERS,ARCHER,8,300,DEFEND_PARTY,0)
    ADD_TO_PARTY(DEFENDERS,DWARFA,7,200,STEAL_GOLD,0)
    ADD_TO_PARTY(DEFENDERS,THIEF,8,200,DEFEND_PARTY,0)
    ADD_TO_PARTY(DEFENDERS,DWARFA,8,200,DEFEND_PARTY,0)

CREATE_PARTY(BRUTES)
    ADD_TO_PARTY(BRUTES,GIANT,6,700,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BRUTES,GIANT,6,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BRUTES,GIANT,6,700,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(BRUTES,GIANT,6,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(ELITE)
    ADD_TO_PARTY(ELITE,SAMURAI,9,1000,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ELITE,KNIGHT,10,1500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(ELITE,GIANT,8,1000,STEAL_SPELLS,0)
    ADD_TO_PARTY(ELITE,SAMURAI,8,1000,DEFEND_PARTY,0)
    ADD_TO_PARTY(ELITE,WIZARD,9,1000,STEAL_SPELLS,0)

IF_ACTION_POINT(3,PLAYER0)
    SET_TIMER(PLAYER0,TIMER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RAIDERS,-3,1)
ENDIF

IF(PLAYER0,TIMER0 >= 3850)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RAIDERS,-3,1)
ENDIF

IF_ACTION_POINT(2,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RAIDERS,-3,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HOLY_TWO,-2,1)
ENDIF

IF_ACTION_POINT(6,PLAYER0)
    SET_TIMER(PLAYER0,TIMER1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HOLY_TWO,-4,1)
ENDIF

IF(PLAYER0,TIMER1 >= 1950)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HOLY_TWO,-5,1)
ENDIF

IF_ACTION_POINT(4,PLAYER0)
    SET_TIMER(PLAYER0,TIMER2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BRUTES,-2,1)
ENDIF

IF(PLAYER0,TIMER2 >= 1450)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BRUTES,-6,1)
ENDIF

IF(PLAYER0,TIMER2 >= 3750)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RPG,-7,1)
ENDIF

IF_ACTION_POINT(5,PLAYER0)
    SET_TIMER(PLAYER0,TIMER3)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DEFENDERS,-1,1)
    SET_FLAG(PLAYER_GOOD,FLAG1,1)
ENDIF

IF(PLAYER_GOOD,FLAG1 == 1)
    MAX_CREATURES(PLAYER1,60)
ENDIF

IF(PLAYER0,TIMER3 >= 300)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,HOLY,-1,1)
ENDIF

IF(PLAYER0,TIMER3 >= 500)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,RPG,-1,1)
ENDIF

IF(PLAYER0,TIMER3 >= 750)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ELITE,-1,1)
    SET_FLAG(PLAYER_GOOD,FLAG1,2)
ENDIF

IF(PLAYER_GOOD,FLAG1 == 2)
    IF(PLAYER1,DUNGEON_DESTROYED == 0)
        ADD_CREATURE_TO_LEVEL(PLAYER1,BARBARIAN,1,6,8,0)
        ADD_CREATURE_TO_LEVEL(PLAYER1,BARBARIAN,1,4,10,0)
        ADD_CREATURE_TO_LEVEL(PLAYER1,IMP,1,4,10,0)
    ENDIF
ENDIF

IF(PLAYER0,ENTRANCE > 9)
    MAX_CREATURES(PLAYER0,25)
QUICK_OBJECTIVE(1,"You have found an additional portal, now we can attract more Creatures!",PLAYER0)
ENDIF

IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
    IF(PLAYER_GOOD,TOTAL_CREATURES == 0)
        IF(PLAYER_GOOD,FLAG1 == 2)
            WIN_GAME
        ENDIF
    ENDIF
ENDIF
