REM ********************************************
REM
REM Script for Level Swedish spirit (_S<Z')
REM
REM ********************************************

START_MONEY(PLAYER0,10000)

SET_GENERATE_SPEED(100)

SET_FLAG(PLAYER0,FLAG0,0)

SET_TIMER(PLAYER0,TIMER0)

MAX_CREATURES(PLAYER0,0)

ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(DRAGON,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(SORCEROR,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(ORC,20)
ADD_CREATURE_TO_POOL(TENTACLE,20)
ADD_CREATURE_TO_POOL(HELL_HOUND,20)

ROOM_AVAILABLE(PLAYER0,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER0,LAIR,1,1)
ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)

CREATE_PARTY(PARTY1)
    ADD_TO_PARTY(PARTY1,AVATAR,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY1,KNIGHT,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY1,KNIGHT,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY1,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY1,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY2)
    ADD_TO_PARTY(PARTY2,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY2,SAMURAI,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY2,ARCHER,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY2,WITCH,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY3)
    ADD_TO_PARTY(PARTY3,KNIGHT,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY3,KNIGHT,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY3,KNIGHT,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY3,KNIGHT,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY4)
    ADD_TO_PARTY(PARTY4,GIANT,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY4,GIANT,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY4,MONK,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY5)
    ADD_TO_PARTY(PARTY5,DWARFA,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY5,DWARFA,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY5,WITCH,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY6)
    ADD_TO_PARTY(PARTY6,BARBARIAN,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY6,BARBARIAN,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY6,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY7)
    ADD_TO_PARTY(PARTY7,SAMURAI,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY7,SAMURAI,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY7,FAIRY,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY8)
    ADD_TO_PARTY(PARTY8,THIEF,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,THIEF,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY8,ARCHER,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY9)
    ADD_TO_PARTY(PARTY9,BARBARIAN,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,SAMURAI,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY9,MONK,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY10)
    ADD_TO_PARTY(PARTY10,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY10,MONK,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY10,ARCHER,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY11)
    ADD_TO_PARTY(PARTY11,THIEF,1,1000,STEAL_SPELLS,0)
    ADD_TO_PARTY(PARTY11,THIEF,1,1000,STEAL_SPELLS,0)

CREATE_PARTY(PARTY12)
    ADD_TO_PARTY(PARTY12,AVATAR,2,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY12,SAMURAI,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY12,DWARFA,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY12,WIZARD,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY12,ARCHER,10,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY12,ARCHER,10,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY13)
    ADD_TO_PARTY(PARTY13,THIEF,10,500,STEAL_GOLD,0)
    ADD_TO_PARTY(PARTY13,THIEF,10,500,STEAL_GOLD,0)
    ADD_TO_PARTY(PARTY13,THIEF,10,500,STEAL_GOLD,0)
    ADD_TO_PARTY(PARTY13,THIEF,10,500,STEAL_GOLD,0)

CREATE_PARTY(PARTY14)
    ADD_TO_PARTY(PARTY14,AVATAR,1,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY14,WITCH,6,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY14,ARCHER,6,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY14,GIANT,7,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY15)
    ADD_TO_PARTY(PARTY15,WIZARD,8,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY15,MONK,8,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY15,ARCHER,6,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY15,ARCHER,6,500,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PARTY16)
    ADD_TO_PARTY(PARTY16,DWARFA,4,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY16,BARBARIAN,5,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY16,GIANT,4,500,ATTACK_DUNGEON_HEART,0)
    ADD_TO_PARTY(PARTY16,SAMURAI,5,500,ATTACK_DUNGEON_HEART,0)

IF(PLAYER0,ENTRANCE >= 1)
    SET_TIMER(PLAYER_GOOD,TIMER0)
    SET_TIMER(PLAYER_GOOD,TIMER1)
    IF(PLAYER0,ORC >= 1)
        MAX_CREATURES(PLAYER0,30)
        
        CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,1)
        CREATURE_AVAILABLE(PLAYER0,ORC,1,1)
        CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,1)
        CREATURE_AVAILABLE(PLAYER0,DEMONSPAWN,1,1)
        CREATURE_AVAILABLE(PLAYER0,SPIDER,1,1)
        CREATURE_AVAILABLE(PLAYER0,BUG,1,1)
        CREATURE_AVAILABLE(PLAYER0,DRAGON,1,1)
        CREATURE_AVAILABLE(PLAYER0,HELL_HOUND,1,1)
        
        ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
        ROOM_AVAILABLE(PLAYER0,BARRACKS,1,1)
        ROOM_AVAILABLE(PLAYER0,PRISON,1,1)
        ROOM_AVAILABLE(PLAYER0,TEMPLE,1,1)
        ROOM_AVAILABLE(PLAYER0,GRAVEYARD,1,1)
        ROOM_AVAILABLE(PLAYER0,SCAVENGER,1,1)
        
        MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,1)
        
        
    ENDIF
    
    IF(PLAYER0,SORCEROR >= 1)
        
        MAX_CREATURES(PLAYER0,10)
        
        CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,1)
        
        SET_TIMER(PLAYER_GOOD,TIMER2)
        
        ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
        ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
        
        MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_HOLD_AUDIENCE,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_CONCEAL,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_CHICKEN,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_LIGHTNING,1,0)
        MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,1,0)
        
    ENDIF
    
    IF(PLAYER0,TROLL >= 1)
        MAX_CREATURES(PLAYER0,10)
        
        CREATURE_AVAILABLE(PLAYER0,TROLL,1,1)
        
        ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
        ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,1)
        
        DOOR_AVAILABLE(PLAYER0,WOOD,1,0)
        DOOR_AVAILABLE(PLAYER0,BRACED,1,0)
        DOOR_AVAILABLE(PLAYER0,STEEL,1,0)
        DOOR_AVAILABLE(PLAYER0,MAGIC,1,0)
        TRAP_AVAILABLE(PLAYER0,ALARM,1,0)
        TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,0)
        TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,0)
        TRAP_AVAILABLE(PLAYER0,WORD_OF_POWER,1,0)
        TRAP_AVAILABLE(PLAYER0,BOULDER,1,0)
        
    ENDIF
ENDIF

IF(PLAYER0,TOTAL_CREATURES > 0)
    IF(PLAYER0,TIMER0 <= 10)
        LOSE_GAME
    ENDIF
    MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
ENDIF

IF_ACTION_POINT(1,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY16,1,2)
ENDIF

IF_ACTION_POINT(4,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY16,4,6)
ENDIF

IF_ACTION_POINT(28,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY10,5,3)
ENDIF

IF_ACTION_POINT(29,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,ARCHER,6,4,3,500)
ENDIF

IF_ACTION_POINT(7,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,7,4,4,500)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,WIZARD,8,6,6,500)
ENDIF

IF_ACTION_POINT(9,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY16,9,2)
ENDIF

IF_ACTION_POINT(10,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY14,10,1)
    SET_TIMER(PLAYER_GOOD,TIMER2)
    IF(PLAYER0,TROLL >= 1)
        ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY13,-1,DUNGEON_HEART,0,9,500)
    ENDIF
ENDIF

IF_ACTION_POINT(11,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,BARBARIAN,11,4,6,500)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY15,12,2)
ENDIF

IF_ACTION_POINT(13,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,MONK,14,6,10,500)
ENDIF

IF_ACTION_POINT(15,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,GIANT,15,8,7,500)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY10,16,3)
ENDIF

IF(PLAYER0,GUARD_POST >= 1)
    SET_FLAG(PLAYER0,FLAG0,1)
ENDIF

IF(PLAYER0,ENTRANCE >= 10)
    SET_TIMER(PLAYER_GOOD,TIMER0)
    SET_TIMER(PLAYER_GOOD,TIMER1)
    SET_TIMER(PLAYER_GOOD,TIMER3)
    SET_FLAG(PLAYER0,FLAG0,2)
ENDIF

IF(PLAYER0,FLAG0 == 0)
    IF(PLAYER_GOOD,TIMER0 >= 5000)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,2,4,4,500)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER_GOOD,TIMER0)
    ENDIF
    IF(PLAYER_GOOD,TIMER1 >= 1000)
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-3,4,2,500)
    ENDIF
    IF(PLAYER_GOOD,TIMER1 >= 3000)
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,ARCHER,-3,4,4,500)
    ENDIF
    IF(PLAYER_GOOD,TIMER1 >= 6000)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY16,-3,1)
    ENDIF
    IF(PLAYER_GOOD,TIMER1 >= 10000)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY16,-3,2)
    ENDIF
    IF(PLAYER_GOOD,TIMER1 >= 15000)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY14,-3,1)
        SET_FLAG(PLAYER0,FLAG1,1)
        SET_TIMER(PLAYER_GOOD,TIMER1)
    ENDIF
    IF(PLAYER0,FLAG1 == 1)
        IF(PLAYER_GOOD,TIMER1 >= 5000)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY14,-3,1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER_GOOD,TIMER1)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER0,FLAG0 == 2)
    IF(PLAYER_GOOD,TIMER0 >= 10000)
        NEXT_COMMAND_REUSABLE
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY12,-4,1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER_GOOD,TIMER0)
    ENDIF
    IF(PLAYER_GOOD,TIMER1 >= 500)
        ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY16,17,DUNGEON_HEART,0,8,500)
    ENDIF
ENDIF

IF_ACTION_POINT(18,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY5,18,2)
ENDIF

IF_ACTION_POINT(19,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY6,19,3)
    SET_TIMER(PLAYER_GOOD,TIMER1)
ENDIF

IF(PLAYER0,BRIDGE >= 1)
    ROOM_AVAILABLE(PLAYER0,BRIDGE,1,1)
    IF(PLAYER_GOOD,TIMER1 >= 7500)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER_GOOD,TIMER1)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,FAIRY,3,10,10,500)
    ENDIF
ENDIF

IF_ACTION_POINT(20,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY9,20,4)
ENDIF

IF_ACTION_POINT(21,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY7,21,3)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY10,22,4)
ENDIF

IF_ACTION_POINT(23,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY12,23,2)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY2,30,DUNGEON_HEART,0,9,500)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY2,31,DUNGEON_HEART,0,9,500)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY16,25,DUNGEON_HEART,0,9,500)
ENDIF

IF_ACTION_POINT(26,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY4,26,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY2,24,2)
ENDIF

IF_ACTION_POINT(27,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY3,27,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY8,-1,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY7,2,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY6,-3,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY5,-4,2)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY4,-5,DUNGEON_HEART,0,9,500)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY4,-5,1)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY10,-6,DUNGEON_HEART,0,9,500)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY10,-6,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY9,-7,2)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY1,-8,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY2,-8,2)
ENDIF

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

IF(PLAYER_GOOD,TIMER2 >= 5000)
    IF(PLAYER0,SORCEROR == 0)
        NEXT_COMMAND_REUSABLE
        ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY13,-1,DUNGEON_HEART,0,10,500)
    ENDIF
    IF(PLAYER0,SORCEROR >= 1)
        ADD_TUNNELLER_TO_LEVEL(PLAYER_GOOD,-1,DUNGEON_HEART,0,1,1000)
        NEXT_COMMAND_REUSABLE
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PARTY11,-1,5)
    ENDIF
    NEXT_COMMAND_REUSABLE
    SET_TIMER(PLAYER_GOOD,TIMER2)
ENDIF
