REM LEVEL 'VAROMORTIS'

LEVEL_VERSION(1)
SET_GENERATE_SPEED(400)
START_MONEY(PLAYER0,1000)
START_MONEY(PLAYER_NEUTRAL,9000000)
MAX_CREATURES(ALL_PLAYERS,0)
SET_MUSIC(3)

REM DISPLAY_VARIABLE(PLAYER1,FLAG1)

COMPUTER_PLAYER(PLAYER1,ROAMING)
COMPUTER_PLAYER(PLAYER2,ROAMING)
COMPUTER_PLAYER(PLAYER_GOOD,ROAMING)

SET_PLAYER_COLOR(PLAYER0,GREEN)
SET_PLAYER_COLOR(PLAYER1,RED)
SET_PLAYER_COLOR(PLAYER2,RED)
SET_PLAYER_COLOR(PLAYER6,RED) REM PLAYER IS USED JUST FOR 'INFECTION PROCES'

ALLY_PLAYERS(PLAYER1,PLAYER2,3)

SET_BOX_TOOLTIP(0,"Infect the victim! WARNING: Risk of death")
SET_BOX_TOOLTIP(1,"Infect the victim! WARNING: Risk of death")
SET_BOX_TOOLTIP(2,"Infect the victim! WARNING: Risk of death")

REM CUSTOM RULES
SET_DIGGER(PLAYER0,PHALANX)
SET_GAME_RULE(ImpWorkExperience,1500)
SET_GAME_RULE(DiseaseLosePercentageHealth,5)
SET_GAME_RULE(DiseaseLoseHealthTime,100)
SET_GAME_RULE(FoodHealthGain,30)
SET_GAME_RULE(PrisonSkeletonChance,50)
SET_GAME_RULE(GhostConvertChance,70)
SET_CREATURE_MAX_LEVEL(PLAYER0,DEMONSPAWN,10)
SET_CREATURE_PROPERTY(AVATAR,NO_IMPRISONMENT,1)

SET_CREATURE_INSTANCE(SORCEROR,3,RANGED_HEAL,3)
SET_CREATURE_INSTANCE(MONK,3,RANGED_ARMOUR,3)
SET_CREATURE_INSTANCE(TIME_MAGE,4,RANGED_HEAL,4)
SET_CREATURE_INSTANCE(TIME_MAGE,5,RANGED_SPEED,5)

SET_CREATURE_CONFIGURATION(PHALANX,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(WARLOCK,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(WIZARD,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(BARBARIAN,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(ARCHER,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(MONK,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(DWARFA,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(KNIGHT,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(AVATAR,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(TUNNELLER,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(WITCH,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(GIANT,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(FAIRY,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(THIEF,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(SAMURAI,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(TIME_MAGE,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(SKELETON,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(GHOST,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(SORCEROR,SpellImmunity,256)
SET_CREATURE_CONFIGURATION(HORNY,Recovery,15)
SET_CREATURE_CONFIGURATION(DEMONSPAWN,Recovery,3)
SET_CREATURE_CONFIGURATION(BILE_DEMON,Recovery,5)
SET_CREATURE_CONFIGURATION(MAIDEN,Recovery,7)

IF(PLAYER0,TREASURE>1)
    ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
ENDIF
IF(PLAYER0,LAIR>4)
    ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
ENDIF

MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HAND,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SLAP,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_POSSESS,1,1)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_DISEASE,1,1)

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

REM AP
REM AP1 - 3: Infection Booth Phalanx Drop Zone
REM AP4: Breaks out left from starting zone
REM AP5 - 7: Infection booth Victim Drop Zone
REM AP8: Breaks out right from starting zone
REM AP9: Spawning point temp creatures for the 'infection booths'
REM AP10: Zoom Location = Prison
REM AP11: Left corridor
REM AP12: Right corridor
REM AP13: Left top spawner
REM AP14: Right top spawner
REM AP15: Center spawner
REM AP16: Kill of point second prison after Avatar is killed
REM AP17: Gem
REM AP18: Workshop
REM AP19: Cauldron (=Dungeon Heart), when Phalanx dropped later on, it gets healed

REM TIMERS
REM PLAYER0,TIMER0: Make sure PLAYER0 creatures stays diseased
REM PLAYER0,TIMER1: Phalanx Spawn Delay + Phalanx death delay after destroyed heart PLAYER0
REM PLAYER0,TIMER2: Reset AP1 to prevent taking away the Phalanx for the ritual and getting 'free' creatures that way.
REM PLAYER1,TIMER0: Prevents for increasing PLAYER0,FLAG0 due to loop in PLAYER1,FLAG0
REM PLAYER1,TIMER1: Delays center spawner
REM PLAYER1,TIMER2: Delays upper left spawner
REM PLAYER1,TIMER3: Delays upper right spawner
REM PLAYER_GOOD,TIMER0: Used for waves
REM PLAYER_GOOD,TIMER1: Used for opening infection booth 2
REM PLAYER_GOOD,TIMER2: Used for opening infection booth 3

REM FLAGS
REM PLAYER0,FLAG0: Keeps track of progression
REM PLAYER0,FLAG1: Max amount of Varonite for Player0
REM PLAYER0,FLAG2: Gets a value after PLAYER0 heart is destroyed
REM PLAYER0,FLAG3: Max amount of Skeletons for Player0
REM PLAYER0,FLAG4: Max amount of Ghosts for Player0
REM PLAYER0,FLAG5: Max amount of Hatchery Tiles
REM PLAYER0,FLAG6: Max amount of Vampires for Player0
REM PLAYER1,FLAG0: Computes Total start units for Player1 as part of keeping track of the progression.
REM PLAYER1,FLAG1: Randomized for Infection Succes Rate (Booth1)
REM PLAYER1,FLAG2: Randomized for Infection Succes Rate (Booth2)
REM PLAYER1,FLAG3: Randomized for Infection Succes Rate (Booth3)

SET_FLAG(PLAYER0,FLAG0,0)
SET_FLAG(PLAYER0,FLAG1,3)
SET_FLAG(PLAYER0,FLAG2,0)
SET_FLAG(PLAYER0,FLAG3,5)
SET_FLAG(PLAYER0,FLAG4,10)
SET_FLAG(PLAYER0,FLAG5,0)
SET_FLAG(PLAYER0,FLAG6,5)
COMPUTE_FLAG(PLAYER1,FLAG0,SET,PLAYER1,TOTAL_CREATURES)
ADD_TO_FLAG(PLAYER1,FLAG0,-5) REM How many roaming creatures killed for first progression
SET_FLAG(PLAYER1,FLAG1,10)
SET_FLAG(PLAYER1,FLAG2,10)
SET_FLAG(PLAYER1,FLAG3,10)

REM HERO GATES
REM 1: (75,76)
HIDE_HERO_GATE(1,1)
REM 2: (34,80)
HIDE_HERO_GATE(2,1)
REM 3: (56,39)
REM 4: (40,13)
REM 5: (70,13)

REM PARTIES
CREATE_PARTY(SCOUT)
ADD_TO_PARTY(SCOUT,DWARFA,3,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(SCOUT,TUNNELLER,3,0,ATTACK_ENEMIES,0)

CREATE_PARTY(INVESTIGATION)
ADD_TO_PARTY(INVESTIGATION,WITCH,3,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(INVESTIGATION,BARBARIAN,3,0,ATTACK_ENEMIES,0)

CREATE_PARTY(SURPRISE)
ADD_TO_PARTY(SURPRISE,TIME_MAGE,5,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(SURPRISE,DWARFA,3,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(SURPRISE,MONK,3,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(SURPRISE,WITCH,3,0,ATTACK_ENEMIES,0)

CREATE_PARTY(LAVA)
ADD_TO_PARTY(LAVA,FAIRY,3,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(LAVA,FAIRY,3,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(LAVA,FAIRY,3,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(LAVA,FAIRY,4,0,ATTACK_ENEMIES,0)
ADD_TO_PARTY(LAVA,WITCH,4,0,DEFEND_PARTY,0)

CREATE_PARTY(STEAL)
ADD_TO_PARTY(STEAL,THIEF,5,0,STEAL_GOLD,0)
ADD_TO_PARTY(STEAL,THIEF,5,0,STEAL_GOLD,0)
ADD_TO_PARTY(STEAL,THIEF,5,0,STEAL_GOLD,0)
ADD_TO_PARTY(STEAL,THIEF,5,0,STEAL_GOLD,0)
ADD_TO_PARTY(STEAL,THIEF,5,0,STEAL_GOLD,0)

CREATE_PARTY(STEAL_GEM)
ADD_TO_PARTY(STEAL_GEM,THIEF,8,0,STEAL_GOLD,0)
ADD_TO_PARTY(STEAL_GEM,THIEF,8,0,STEAL_GOLD,0)
ADD_TO_PARTY(STEAL_GEM,THIEF,8,0,STEAL_GOLD,0)
ADD_TO_PARTY(STEAL_GEM,THIEF,8,0,STEAL_GOLD,0)
ADD_TO_PARTY(STEAL_GEM,THIEF,8,0,STEAL_GOLD,0)

CREATE_PARTY(SPIDERLAIR)
ADD_TO_PARTY(SPIDERLAIR,MAIDEN,7,0,DEFEND_LOCATION,10000)

CREATE_PARTY(ORCPIT)
ADD_TO_PARTY(ORCPIT,ORC,7,0,DEFEND_LOCATION,10000)

CREATE_PARTY(DRAGONLAIR)
ADD_TO_PARTY(DRAGONLAIR,DRAGON,5,0,DEFEND_LOCATION,10000)

CREATE_PARTY(PREBOSS1)
ADD_TO_PARTY(PREBOSS1,SAMURAI,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS1,SAMURAI,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS1,SAMURAI,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS1,SAMURAI,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS1,TIME_MAGE,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS1,MONK,10,0,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PREBOSS2)
ADD_TO_PARTY(PREBOSS2,BARBARIAN,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS2,BARBARIAN,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS2,MONK,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS2,GIANT,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS2,GIANT,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS2,TIME_MAGE,8,0,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(PREBOSS_LAVA)
ADD_TO_PARTY(PREBOSS_LAVA,FAIRY,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS_LAVA,FAIRY,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS_LAVA,FAIRY,8,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(PREBOSS_LAVA,WITCH,6,0,DEFEND_PARTY,0)
ADD_TO_PARTY(PREBOSS_LAVA,WITCH,6,0,DEFEND_PARTY,0)

CREATE_PARTY(BOSS)
ADD_TO_PARTY(BOSS,AVATAR,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BOSS,SAMURAI,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BOSS,TIME_MAGE,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BOSS,MONK,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BOSS,WIZARD,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BOSS,BARBARIAN,10,0,ATTACK_DUNGEON_HEART,0)
ADD_TO_PARTY(BOSS,KNIGHT,10,0,ATTACK_DUNGEON_HEART,0)

REM -----------------------------------------------------------------------

REM PROGRESSION TRACKING
SET_TIMER(PLAYER1,TIMER0)
IF(PLAYER1,TOTAL_CREATURES<=PLAYER1,FLAG0)
    IF(PLAYER0,FLAG0<4)
        IF(PLAYER1,TIMER0>=100) REM Prevents looping to fast before PLAYER1,FLAG0 is recomputed
            NEXT_COMMAND_REUSABLE
            ADD_TO_FLAG(PLAYER0,FLAG0,1)
            NEXT_COMMAND_REUSABLE
            COMPUTE_FLAG(PLAYER1,FLAG0,SET,PLAYER1,TOTAL_CREATURES)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER1,TIMER0)
        ENDIF
    ENDIF
ENDIF

REM VARONITE SPAWNER (= Creature: PHALANX)
SET_TIMER(PLAYER0,TIMER1)
IF(PLAYER0,PHALANX<PLAYER0,FLAG1)
    IF(PLAYER0,TIMER1>=400)
        IF_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE==0)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER0,PHALANX,PLAYER0,1,1,0,JUMP)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0,TIMER1)
        ENDIF
        IF_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE==1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER0,PHALANX,PLAYER0,1,4,0,JUMP)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER0,TIMER1)
        ENDIF
    ENDIF
ENDIF
IF(PLAYER0,PHALANX==0)
    IF(PLAYER0,TIMER1>=200)
        IF_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE==0)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER0,PHALANX,PLAYER0,1,1,0,JUMP)
        ENDIF
        IF_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE==1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER0,PHALANX,PLAYER0,1,4,0,JUMP)
        ENDIF
    ENDIF
ENDIF
IF(PLAYER0,PHALANX>=PLAYER0,FLAG1)
    NEXT_COMMAND_REUSABLE
    SET_TIMER(PLAYER0,TIMER1)
ENDIF

REM THE BEGINNING
QUICK_OBJECTIVE(29,"Banished from the kingdom, bored, and boiling with revenge, the sorcerer Varo tried to breed a plague-carrying insect. It exploded. His lab's gone, drowned in green slime, and all his spellbooks? Somewhere in a nearby lava cave. Typical. Still, there's a silver lining: He was still able to create the Varonites. Nasty little things, smart enough to dig and fight and dripping with the self-created virus 'Varomortis' that causes... discomfort. For now! What else waits in that ancient cave? Lost knowledge? Old traps? Forgotten evils? Varo doesn't know. But he's going in. Because when plans fall apart... you dig deeper.",PLAYER0)
IF(PLAYER0,GAME_TURN>=1000)
    QUICK_INFORMATION(20,"The brew remains... unstable. Varonites continue to crawl out of the slime, uninvited but oddly useful. This early strain lacks any means of healing. One wound to many, and they're done for. Disposable, you might say. Still, every failure has its purpose... eventually.",PLAYER0)
ENDIF
IF(PLAYER0,FLAG0==1)
    ADD_TO_FLAG(PLAYER1,FLAG0,-6) REM Creatures to kill for next progression.
    QUICK_MESSAGE(1,"I better figure something out to deal with them!",WARLOCK)
    QUICK_MESSAGE(0,"Demonic creatures took over this old cave...",WARLOCK)
ENDIF

IF(PLAYER0,FLAG0==2)
    SET_TIMER(PLAYER_GOOD,TIMER0)
    ADD_TO_FLAG(PLAYER1,FLAG0,-1)
    IF(PLAYER_GOOD,TIMER0>=200)
        QUICK_MESSAGE(3,"Send troops for further investigation!",TUNNELLER)
        QUICK_MESSAGE(2,"We've located the heavy tremble in the underground!",TUNNELLER)
        ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SCOUT,-1,DUNGEON_HEART,0,3,0)
        IF(PLAYER_GOOD,TOTAL_CREATURES==0)
            SET_TIMER(PLAYER_GOOD,TIMER0)
            IF(PLAYER_GOOD,TIMER0>=20)
                QUICK_MESSAGE(5,"Meh, now they won't dare to come back anyway..",WARLOCK)
                QUICK_MESSAGE(4,"Workers from the kingdom wandering around?",WARLOCK)
            ENDIF
            IF(PLAYER_GOOD,TIMER0>=600)
                QUICK_MESSAGE(7,"they reported the presence of some unknown pests!",TUNNELLER)
                QUICK_MESSAGE(6,"Our scouts were attacked! Just before dying",TUNNELLER)
            ENDIF
            IF(PLAYER_GOOD,TIMER0>=1200)
                IF(PLAYER0,TRAINING>=1)
                    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,INVESTIGATION,-1,DUNGEON_HEART,0,3,0)
                    QUICK_MESSAGE(8,"Investigate and control those pests! Send a guard along.",AVATAR)
                    IF(PLAYER_GOOD,TOTAL_CREATURES==0)
                        SET_TIMER(PLAYER_GOOD,TIMER0)
                        ADD_TO_FLAG(PLAYER0,FLAG0,1)
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
    IF_ACTION_POINT(8,PLAYER_GOOD)
        CHANGE_SLAB_TYPE(74,87,PRETTY_PATH)
    ENDIF
ENDIF

IF(PLAYER0,FLAG0==3)
    IF(PLAYER_GOOD,TIMER0>=20)
        QUICK_MESSAGE(9,"Those fools are to brave! I'll need more Varonites!",WARLOCK)
        SET_FLAG(PLAYER0,FLAG1,5)
    ENDIF
    IF(PLAYER_GOOD,TIMER0>=600)
        QUICK_MESSAGE(12,"We can't take any risks, they should be exterminated!",TUNNELLER)
        QUICK_MESSAGE(11,"They are created by the evil sorcerer 'Varo'.",TUNNELLER)
        QUICK_MESSAGE(10,"We discovered that those pests are an unknown species.",TUNNELLER)
    ENDIF
    IF(PLAYER_GOOD,TIMER0>=1150)
        QUICK_MESSAGE(31,"We must kill him! He and his pests are to dangerous!",AVATAR)
        QUICK_MESSAGE(13,"Send a new squad and make a surprise attack!",AVATAR)
        QUICK_MESSAGE(30,"WHAT!! Varo is still alive after all these years?!",AVATAR)
        ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SURPRISE,-2,DUNGEON_HEART,0,4,0)
        IF(PLAYER_GOOD,TOTAL_CREATURES==0)
            CHANGE_SLAB_TYPE(74,76,DIRT)
            CHANGE_SLAB_TYPE(75,75,DIRT)
            CHANGE_SLAB_TYPE(77,75,DIRT)
            CHANGE_SLAB_TYPE(34,79,PATH)
            CHANGE_SLAB_TYPE(35,79,PATH)
            CHANGE_SLAB_TYPE(36,79,PATH)
        ENDIF
    ENDIF
    IF_ACTION_POINT(4,PLAYER_GOOD)
        CHANGE_SLAB_TYPE(41,92,PRETTY_PATH)
    ENDIF
ENDIF

REM OPENS PRISON, REVEALS INFECTION BOOTH AND PROVIDES ACCES TO MORE GROUND
IF(PLAYER0,FLAG0==4)
    SET_CREATURE_TENDENCIES(PLAYER0,IMPRISON,1)
    QUICK_MESSAGE(16,"It should enable temporary control of the body!",WARLOCK)
    QUICK_MESSAGE(15,"What if I implant a Varonite in half-dead bodies?",WARLOCK)
    QUICK_MESSAGE(14,"I've got the cruelest plan ever seen!",WARLOCK)
    CHANGE_SLAB_TYPE(62,99,PRETTY_PATH)
    CHANGE_SLAB_OWNER(62,99,PLAYER0)
    CHANGE_SLAB_OWNER(62,100,PLAYER0)
    REVEAL_MAP_RECT(PLAYER0,187,306,9,9)
    SET_TIMER(PLAYER0,TIMER0)
    IF(PLAYER0,TIMER0>=250)
        ZOOM_TO_LOCATION(PLAYER0,10)
        QUICK_INFORMATION(17,"Varo has generously provided a prison to assist with his wicked plans. Why kill your enemies outright, when you can store them for later? The wounded are far more... flexible. GOOD TO KNOW: The chance of creating Skeletons is reduced and capped. Undead creatures, however, are delightfully immune to infections.",10)
    ENDIF
    IF(PLAYER0,TIMER0>=600)
        ZOOM_TO_LOCATION(PLAYER0,1)
        CHANGE_SLAB_OWNER(83,100,PLAYER0)
        REVEAL_MAP_LOCATION(PLAYER0,1,-1)
        REVEAL_MAP_LOCATION(PLAYER0,5,-1)
        QUICK_OBJECTIVE(18,"Varo, in his ever-growing brilliance -or madness- has discovered that by placing a nearly-dead victim on the upper Torture Table and sacrificing a Varonite on the lower one, a special vial is prepared. A simple left-click activates the implantation of the Varonite. The result? A sudden... transformation. Sadly for the Varonite, it never walks away from the procedure. Whether the host survives is uncertain, but something always stirs. And that's good enough. Just try it out and you'll see.",1)
        IF(PLAYER0,HELL_HOUND==1)
            QUICK_INFORMATION(19,"Well done! As you can see, the victim is far from comfortable and may not survive your generous hospitality. Choose your guests wisely as some bodies handle the side effects better than others. GOOD TO KNOW: Thanks to divine blessings and top-notch healthcare, heroes are immune to implantation! Their stubborn spirits can still haunt you as ghosts, though the chances are fewer and the amount limited else we would drive insane...",1)
            SET_FLAG(PLAYER0,FLAG0,100)
        ENDIF
        IF(PLAYER0,HELL_HOUND==0)
            IF(PLAYER1,FLAG0>PLAYER1,TOTAL_CREATURES)
                NEXT_COMMAND_REUSABLE
                ADD_CREATURE_TO_LEVEL(PLAYER1,HELL_HOUND,4,1,2,0,FALL)
            ENDIF
        ENDIF
    ENDIF
ENDIF

REM EACH CREATURE TURNED TO PLAYER0 GETS DISEASED (=infected)
REM For this map, the sound is by default canceled, but shortly activated for the 'infection proces'
IF_ACTION_POINT(5,PLAYER1) REM Activates Infection booth 1
    IF(PLAYER6,FLY==0)
        NEXT_COMMAND_REUSABLE
        ADD_CREATURE_TO_LEVEL(PLAYER6,FLY,9,1,1,0,NONE)
    ENDIF
ENDIF
IF_ACTION_POINT(1,PLAYER0) REM Infection booth 1
    NEXT_COMMAND_REUSABLE
    SET_POWER_CONFIGURATION(POWER_DISEASE,SoundPlayed,59)
    NEXT_COMMAND_REUSABLE
    SET_POWER_CONFIGURATION(POWER_DISEASE,SoundSamples,835)
    REM Makes the healing of the infected creature silent to stop annoying sounds from the multiple casts on creatures with high health. Is reactivated after the process.
    NEXT_COMMAND_REUSABLE
    SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundPlayed,0)
    NEXT_COMMAND_REUSABLE
    SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundSamples,0)
    IF(PLAYER6,FLY==1)
        IF(PLAYER1,FLAG1==10)
            NEXT_COMMAND_REUSABLE
            RANDOMISE_FLAG(PLAYER1,FLAG1,7) REM Random succes rate
            IF(PLAYER1,HELL_HOUND==1)
                SET_FLAG(PLAYER1,FLAG1,0) REM sets flag just for once to always succeed in the first demonstration with the hound.
            ENDIF
            NEXT_COMMAND_REUSABLE
            ADD_OBJECT_TO_LEVEL_AT_POS(SPECBOX_CUSTOM,250,310,0)
            NEXT_COMMAND_REUSABLE
            CHANGE_SLAB_TYPE(83,103,PRETTY_PATH)
            NEXT_COMMAND_REUSABLE
            CHANGE_SLAB_OWNER(83,103,PLAYER0)
        ENDIF
        IF(PLAYER1,FLAG1!=1)
            IF(PLAYER1,FLAG1<10)
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER0,PHALANX,AT_ACTION_POINT[1],1)
                NEXT_COMMAND_REUSABLE
                SET_FLAG(PLAYER1,FLAG1,15)
            ENDIF
        ENDIF
        IF(PLAYER1,FLAG1==1)
            NEXT_COMMAND_REUSABLE
            KILL_CREATURE(PLAYER0,PHALANX,AT_ACTION_POINT[1],1)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER1,FLAG1,20)
        ENDIF
        IF(PLAYER1,FLAG1==15)
            IF(PLAYER0,BOX0_ACTIVATED==1)
                NEXT_COMMAND_REUSABLE
                CHANGE_CREATURES_ANNOYANCE(PLAYER1,ANY_CREATURE,SET,0)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[5],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[5],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[5],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[5],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                NEXT_COMMAND_REUSABLE
                USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[5],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                NEXT_COMMAND_REUSABLE
                CHANGE_CREATURE_OWNER(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[5],PLAYER0)
                NEXT_COMMAND_REUSABLE
                RESET_ACTION_POINT(5,PLAYER1)
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER6,FLY,AT_ACTION_POINT[9],1)
            ENDIF
        ENDIF
        IF(PLAYER1,FLAG1==20)
            IF(PLAYER0,BOX0_ACTIVATED==1)
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[5],1)
                NEXT_COMMAND_REUSABLE
                RESET_ACTION_POINT(5,PLAYER1)
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER6,FLY,AT_ACTION_POINT[9],1)
            ENDIF
        ENDIF
    ENDIF
    IF(PLAYER6,FLY==0)
        NEXT_COMMAND_REUSABLE
        USE_POWER_ON_PLAYERS_CREATURES(PLAYER0,ANY_CREATURE,PLAYER1,POWER_DISEASE,9,FREE)
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_DISEASE,SoundPlayed,0)
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_DISEASE,SoundSamples,0)
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundPlayed,37)
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundSamples,829)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER1,FLAG1,10)
        NEXT_COMMAND_REUSABLE
        SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
        NEXT_COMMAND_REUSABLE
        CHANGE_SLAB_TYPE(83,103,HARD_FLOOR)
        NEXT_COMMAND_REUSABLE
        CHANGE_SLAB_OWNER(83,103,PLAYER_NEUTRAL)
        NEXT_COMMAND_REUSABLE
        RESET_ACTION_POINT(1,PLAYER0)
    ENDIF
ENDIF

REM PLAYER0 Creatures are always diseased (=infected)
IF(PLAYER0,FLAG0>=5)
    IF(PLAYER0,TIMER0>=65)
        NEXT_COMMAND_REUSABLE
        USE_POWER_ON_PLAYERS_CREATURES(PLAYER0,ANY_CREATURE,PLAYER1,POWER_DISEASE,9,FREE)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER0)
    ENDIF
ENDIF

REM LIMITS GHOSTS, VAMPIRES AND SKELETONS
IF(PLAYER0,SKELETON==PLAYER0,FLAG3)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(PrisonSkeletonChance,0)
ENDIF
IF(PLAYER0,SKELETON<PLAYER0,FLAG3)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(PrisonSkeletonChance,60)
ENDIF
IF(PLAYER0,GHOST==PLAYER0,FLAG4)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(GhostConvertChance,0)
ENDIF
IF(PLAYER0,GHOST<PLAYER0,FLAG4)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(GhostConvertChance,70)
ENDIF
IF(PLAYER0,VAMPIRE>=PLAYER0,FLAG6)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire,100)
ENDIF

IF(PLAYER0,VAMPIRE<PLAYER0,FLAG6)
    NEXT_COMMAND_REUSABLE
    SET_GAME_RULE(BodiesForVampire,10)
ENDIF

IF_ACTION_POINT(11,PLAYER0)
    ADD_TO_FLAG(PLAYER0,FLAG1,3)
    SET_TIMER(PLAYER_GOOD,TIMER2)
    CHANGE_SLAB_OWNER(76,100,PLAYER0)
    REVEAL_MAP_LOCATION(PLAYER0,3,-1)
    REVEAL_MAP_LOCATION(PLAYER0,7,-1)
    QUICK_INFORMATION(33,"A new implantation booth is ready to use, now you can infect 2 creatures at once.",3)
    IF(PLAYER_GOOD,TIMER2>=250)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LAVA,-3,1)
        QUICK_MESSAGE(21,"We've dug a new entrance to the cave, get them!",TUNNELLER)
    ENDIF
    IF_ACTION_POINT(7,PLAYER1) REM Activates Infection booth 2
        IF(PLAYER6,FAIRY==0)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER6,FAIRY,9,1,1,0,NONE)
        ENDIF
    ENDIF
    IF_ACTION_POINT(3,PLAYER0) REM Infection booth 2
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_DISEASE,SoundPlayed,59)
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_DISEASE,SoundSamples,835)
        REM Makes the healing of the infected creature silent to stop annoying sounds from the multiple casts on creatures with high health. Is reactivated after the process.
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundPlayed,0)
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundSamples,0)
        IF(PLAYER6,FAIRY==1)
            IF(PLAYER1,FLAG2==10)
                NEXT_COMMAND_REUSABLE
                RANDOMISE_FLAG(PLAYER1,FLAG2,7) REM Random succes rate
                IF(PLAYER1,HELL_HOUND==1)
                    SET_FLAG(PLAYER1,FLAG2,0) REM sets flag just for once to always succeed in the first demonstration with the hound.
                ENDIF
                NEXT_COMMAND_REUSABLE
                ADD_OBJECT_TO_LEVEL_AT_POS(SPECBOX_CUSTOM,229,310,1)
                NEXT_COMMAND_REUSABLE
                CHANGE_SLAB_TYPE(76,103,PRETTY_PATH)
                NEXT_COMMAND_REUSABLE
                CHANGE_SLAB_OWNER(76,103,PLAYER0)
            ENDIF
            IF(PLAYER1,FLAG2!=1)
                IF(PLAYER1,FLAG2<10)
                    NEXT_COMMAND_REUSABLE
                    KILL_CREATURE(PLAYER0,PHALANX,AT_ACTION_POINT[3],1)
                    NEXT_COMMAND_REUSABLE
                    SET_FLAG(PLAYER1,FLAG2,15)
                ENDIF
            ENDIF
            IF(PLAYER1,FLAG2==1)
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER0,PHALANX,AT_ACTION_POINT[3],1)
                NEXT_COMMAND_REUSABLE
                SET_FLAG(PLAYER1,FLAG2,20)
            ENDIF
            IF(PLAYER1,FLAG2==15)
                IF(PLAYER0,BOX1_ACTIVATED==1)
                    NEXT_COMMAND_REUSABLE
                    CHANGE_CREATURES_ANNOYANCE(PLAYER1,ANY_CREATURE,SET,0)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[7],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[7],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[7],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[7],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[7],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    CHANGE_CREATURE_OWNER(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[7],PLAYER0)
                    NEXT_COMMAND_REUSABLE
                    RESET_ACTION_POINT(7,PLAYER1)
                    NEXT_COMMAND_REUSABLE
                    KILL_CREATURE(PLAYER6,FAIRY,AT_ACTION_POINT[9],1)
                ENDIF
            ENDIF
            IF(PLAYER1,FLAG2==20)
                IF(PLAYER0,BOX1_ACTIVATED==1)
                    NEXT_COMMAND_REUSABLE
                    KILL_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[7],1)
                    NEXT_COMMAND_REUSABLE
                    RESET_ACTION_POINT(7,PLAYER1)
                    NEXT_COMMAND_REUSABLE
                    KILL_CREATURE(PLAYER6,FAIRY,AT_ACTION_POINT[9],1)
                ENDIF
            ENDIF
        ENDIF
        IF(PLAYER6,FAIRY==0)
            NEXT_COMMAND_REUSABLE
            USE_POWER_ON_PLAYERS_CREATURES(PLAYER0,ANY_CREATURE,PLAYER1,POWER_DISEASE,9,FREE)
            NEXT_COMMAND_REUSABLE
            SET_POWER_CONFIGURATION(POWER_DISEASE,SoundPlayed,0)
            NEXT_COMMAND_REUSABLE
            SET_POWER_CONFIGURATION(POWER_DISEASE,SoundSamples,0)
            NEXT_COMMAND_REUSABLE
            SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundPlayed,37)
            NEXT_COMMAND_REUSABLE
            SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundSamples,829)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER1,FLAG2,10)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,BOX1_ACTIVATED,0)
            NEXT_COMMAND_REUSABLE
            CHANGE_SLAB_TYPE(76,103,HARD_FLOOR)
            NEXT_COMMAND_REUSABLE
            CHANGE_SLAB_OWNER(76,103,PLAYER_NEUTRAL)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(3,PLAYER0)
        ENDIF
    ENDIF
ENDIF

IF_ACTION_POINT(12,PLAYER0)
    ADD_TO_FLAG(PLAYER0,FLAG1,3)
    CHANGE_SLAB_OWNER(90,100,PLAYER0)
    REVEAL_MAP_LOCATION(PLAYER0,2,-1)
    REVEAL_MAP_LOCATION(PLAYER0,6,-1)
    QUICK_INFORMATION(32,"Three implantation booths, three times the fun!",2)
    SET_TIMER(PLAYER_GOOD,TIMER1)
    IF(PLAYER_GOOD,TIMER1>=250)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,STEAL,-1,1)
        QUICK_MESSAGE(22,"We must sabotage their supplies, it will weaken Varo!",AVATAR)
    ENDIF
    IF_ACTION_POINT(6,PLAYER1) REM Activates Infection booth 3
        IF(PLAYER6,BIRD==0)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER6,BIRD,9,1,1,0,NONE)
        ENDIF
    ENDIF
    IF_ACTION_POINT(2,PLAYER0) REM Infection booth 3
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_DISEASE,SoundPlayed,59)
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_DISEASE,SoundSamples,835)
        REM Makes the healing of the infected creature silent to stop annoying sounds from the multiple casts on creatures with high health. Is reactivated after the process.
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundPlayed,0)
        NEXT_COMMAND_REUSABLE
        SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundSamples,0)
        IF(PLAYER6,BIRD==1)
            IF(PLAYER1,FLAG3==10)
                NEXT_COMMAND_REUSABLE
                RANDOMISE_FLAG(PLAYER1,FLAG3,7) REM Random succes rate
                IF(PLAYER1,HELL_HOUND==1)
                    SET_FLAG(PLAYER1,FLAG3,0) REM sets flag just for once to always succeed in the first demonstration with the hound.
                ENDIF
                NEXT_COMMAND_REUSABLE
                ADD_OBJECT_TO_LEVEL_AT_POS(SPECBOX_CUSTOM,271,310,2)
                NEXT_COMMAND_REUSABLE
                CHANGE_SLAB_TYPE(90,103,PRETTY_PATH)
                NEXT_COMMAND_REUSABLE
                CHANGE_SLAB_OWNER(90,103,PLAYER0)
            ENDIF
            IF(PLAYER1,FLAG3!=1)
                IF(PLAYER1,FLAG3<10)
                    NEXT_COMMAND_REUSABLE
                    KILL_CREATURE(PLAYER0,PHALANX,AT_ACTION_POINT[2],1)
                    NEXT_COMMAND_REUSABLE
                    SET_FLAG(PLAYER1,FLAG3,15)
                ENDIF
            ENDIF
            IF(PLAYER1,FLAG3==1)
                NEXT_COMMAND_REUSABLE
                KILL_CREATURE(PLAYER0,PHALANX,AT_ACTION_POINT[2],1)
                NEXT_COMMAND_REUSABLE
                SET_FLAG(PLAYER1,FLAG3,20)
            ENDIF
            IF(PLAYER1,FLAG3==15)
                IF(PLAYER0,BOX2_ACTIVATED==1)
                    NEXT_COMMAND_REUSABLE
                    CHANGE_CREATURES_ANNOYANCE(PLAYER1,ANY_CREATURE,SET,0)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[6],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[6],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[6],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[6],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    USE_POWER_ON_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[6],PLAYER1,POWER_HEAL_CREATURE,9,FREE)
                    NEXT_COMMAND_REUSABLE
                    CHANGE_CREATURE_OWNER(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[6],PLAYER0)
                    NEXT_COMMAND_REUSABLE
                    RESET_ACTION_POINT(6,PLAYER1)
                    NEXT_COMMAND_REUSABLE
                    KILL_CREATURE(PLAYER6,BIRD,AT_ACTION_POINT[9],1)
                ENDIF
            ENDIF
            IF(PLAYER1,FLAG3==20)
                IF(PLAYER0,BOX2_ACTIVATED==1)
                    NEXT_COMMAND_REUSABLE
                    KILL_CREATURE(PLAYER1,ANY_CREATURE,AT_ACTION_POINT[6],1)
                    NEXT_COMMAND_REUSABLE
                    RESET_ACTION_POINT(6,PLAYER1)
                    NEXT_COMMAND_REUSABLE
                    KILL_CREATURE(PLAYER6,BIRD,AT_ACTION_POINT[9],1)
                ENDIF
            ENDIF
        ENDIF
        IF(PLAYER6,BIRD==0)
            NEXT_COMMAND_REUSABLE
            USE_POWER_ON_PLAYERS_CREATURES(PLAYER0,ANY_CREATURE,PLAYER1,POWER_DISEASE,9,FREE)
            NEXT_COMMAND_REUSABLE
            SET_POWER_CONFIGURATION(POWER_DISEASE,SoundPlayed,0)
            NEXT_COMMAND_REUSABLE
            SET_POWER_CONFIGURATION(POWER_DISEASE,SoundSamples,0)
            NEXT_COMMAND_REUSABLE
            SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundPlayed,37)
            NEXT_COMMAND_REUSABLE
            SET_POWER_CONFIGURATION(POWER_HEAL_CREATURE,SoundSamples,829)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER1,FLAG3,10)
            NEXT_COMMAND_REUSABLE
            SET_FLAG(PLAYER0,BOX2_ACTIVATED,0)
            NEXT_COMMAND_REUSABLE
            CHANGE_SLAB_TYPE(90,103,HARD_FLOOR)
            NEXT_COMMAND_REUSABLE
            CHANGE_SLAB_OWNER(90,103,PLAYER_NEUTRAL)
            NEXT_COMMAND_REUSABLE
            RESET_ACTION_POINT(2,PLAYER0)
        ENDIF
    ENDIF
ENDIF

REM INCREASES VARONITE COUNT AFTER CLAIMING WORKSHOP
IF(PLAYER0,WORKSHOP>=1)
    ADD_TO_FLAG(PLAYER0,FLAG1,4)
ENDIF

REM APROACH TO CLIMAX
IF_ACTION_POINT(15,PLAYER0)
    IF(PLAYER1,SPIDER==0)
        IF(PLAYER1,MAIDEN==0)
            QUICK_INFORMATION(36,"You've found an Spider nest, a Maiden will be available here regulary. (MAX 1 at a time)",15)
            SET_TIMER(PLAYER1,TIMER1)
            IF(PLAYER1,TIMER1>2000)
                NEXT_COMMAND_REUSABLE
                ADD_PARTY_TO_LEVEL(PLAYER1,SPIDERLAIR,15,1)
                NEXT_COMMAND_REUSABLE
                SET_TIMER(PLAYER1,TIMER1)
            ENDIF
        ENDIF
    ENDIF
    IF(PLAYER1,MAIDEN>=1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER1,TIMER1)
    ENDIF
ENDIF

IF(PLAYER0,SORCEROR>=1)
    QUICK_INFORMATION(23,"You've found a fellow sorcerer with an expertise in blood science. Although he cannot cure the infection, as we would lose control of the body, he can magically filter their blood. It should help keep infected bodies alive for longer.")
    ADD_TO_FLAG(PLAYER0,FLAG0,1)
ENDIF
IF(PLAYER0,HORNY==1)
    QUICK_INFORMATION(24,"You've found a creature who's only willing to join the most malicious looking being. Although he isn't immune to the infection you're spreading, he is willing to endure it as long you can keep him happy")
    ADD_TO_FLAG(PLAYER0,FLAG0,1)
ENDIF

IF_ACTION_POINT(13,PLAYER0)
    IF(PLAYER1,ORC==0)
        QUICK_INFORMATION(34,"You've found an Orc lair, an Orc will be available here regulary. (MAX 1 at a time)",13)
        SET_TIMER(PLAYER1,TIMER2)
        ADD_TO_FLAG(PLAYER0,FLAG0,1)
        IF(PLAYER1,TIMER2>1250)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER1,ORCPIT,13,1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER1,TIMER2)
        ENDIF
    ENDIF
    IF(PLAYER1,ORC>=1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER1,TIMER2)
    ENDIF
ENDIF

IF_ACTION_POINT(14,PLAYER0)
    IF(PLAYER1,DRAGON==0)
        QUICK_INFORMATION(35,"You've found a Dragon cave, a young Dragon will be available here regulary. (MAX 1 at a time)",14)
        SET_TIMER(PLAYER1,TIMER3)
        ADD_TO_FLAG(PLAYER0,FLAG0,1)
        IF(PLAYER1,TIMER3>2000)
            NEXT_COMMAND_REUSABLE
            ADD_PARTY_TO_LEVEL(PLAYER1,DRAGONLAIR,14,1)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER1,TIMER3)
        ENDIF
    ENDIF
    IF(PLAYER1,DRAGON>=1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER1,TIMER3)
    ENDIF
ENDIF

IF_ACTION_POINT(17,PLAYER0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,STEAL_GEM,-2,1)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,STEAL,-1,1)
ENDIF

IF_SLAB_OWNER(43,22,PLAYER0)
    COMPUTE_FLAG(PLAYER0,FLAG5,SET,PLAYER0,GARDEN)
    ADD_TO_FLAG(PLAYER0,FLAG5,1)
    IF(PLAYER0,GARDEN<PLAYER0,FLAG5)
        NEXT_COMMAND_REUSABLE
        ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)
        TUTORIAL_FLASH_BUTTON(7,200)
    ENDIF
    IF(PLAYER0,GARDEN==PLAYER0,FLAG5)
        NEXT_COMMAND_REUSABLE
        ROOM_AVAILABLE(PLAYER0,GARDEN,0,0)
    ENDIF
ENDIF

IF(PLAYER0,FLAG0==102)
    SET_TIMER(PLAYER_GOOD,TIMER0)
    IF(PLAYER_GOOD,TIMER0>=250)
        QUICK_MESSAGE(28,"Who you're gonna call? PESTBUSTERS",AVATAR)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PREBOSS_LAVA,-3,1)
    ENDIF
ENDIF

IF(PLAYER0,FLAG0==104)
    SET_TIMER(PLAYER_GOOD,TIMER0)
    IF(PLAYER_GOOD,TIMER0>=250)
        QUICK_MESSAGE(25,"I've had enough of this.. prepare our best forces!",AVATAR)
        DISPLAY_COUNTDOWN(PLAYER_GOOD,TIMER0,600,1)
        SET_TIMER(PLAYER_GOOD,TIMER0)
    ENDIF
    IF(PLAYER_GOOD,TIMER0>=600)
        SET_CREATURE_TENDENCIES(PLAYER0,IMPRISON,0)
        QUICK_MESSAGE(37,"ATTACK!!!!",AVATAR)
        ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PREBOSS1,-4,DUNGEON_HEART,0,10,0)
    ENDIF
    IF(PLAYER_GOOD,TIMER0>=750)
        ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,PREBOSS2,-5,DUNGEON_HEART,0,10,0)
    ENDIF
    IF(PLAYER_GOOD,TIMER0>=900)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,PREBOSS_LAVA,-3,1)
        IF(PLAYER_GOOD,TOTAL_CREATURES==0)
            ADD_TO_FLAG(PLAYER0,FLAG0,1)
            SET_TIMER(PLAYER_GOOD,TIMER0)
        ENDIF
        IF(PLAYER_GOOD,TOTAL_CREATURES==PLAYER_GOOD,FAIRY)
            ADD_TO_FLAG(PLAYER0,FLAG0,1)
            SET_TIMER(PLAYER_GOOD,TIMER0)
        ENDIF
    ENDIF
ENDIF

IF_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE==1)
    IF(PLAYER0,FLAG1!=0)
        SET_CREATURE_CONFIGURATION(PHALANX,Armour,65)
        SET_CREATURE_CONFIGURATION(PHALANX,Health,325)
        QUICK_INFORMATION(38,"At last! My Varonites grow tougher! This new recipe gives them thicker skin and dropping them in the cauldron now mends their wounds! (Health, Armour and Spawn level increased)",PLAYER0)
        NEXT_COMMAND_REUSABLE
        USE_POWER_ON_CREATURE(PLAYER0,PHALANX,AT_ACTION_POINT[19],PLAYER0,POWER_HEAL_CREATURE,9,FREE)
    ENDIF
    IF_ACTION_POINT(17,PLAYER0)
        ADD_TO_PARTY(BOSS,GIANT,10,0,ATTACK_DUNGEON_HEART,0)
        ADD_TO_PARTY(BOSS,GIANT,10,0,ATTACK_DUNGEON_HEART,0)
        ADD_TO_PARTY(BOSS,WIZARD,10,0,ATTACK_DUNGEON_HEART,0)
    ENDIF
ENDIF

REM THE END
IF(PLAYER0,FLAG0==105)
    QUICK_MESSAGE(26,"I have to do everything myself...",AVATAR)
    DISPLAY_COUNTDOWN(PLAYER_GOOD,TIMER0,600,1)
    IF(PLAYER_GOOD,TIMER0>=600)
        ADD_PARTY_TO_LEVEL(PLAYER_GOOD,BOSS,-2,1)
        ADD_TO_FLAG(PLAYER0,FLAG0,1)
    ENDIF
ENDIF

IF_ACTION_POINT(18,PLAYER0)
    ADD_CREATURE_TO_LEVEL(PLAYER1,ORC,18,2,4,0,NONE)
ENDIF

REM Kill Player2 creatures (= creature not mandatory to kill for progression), mostly it won't confuse the player because without this, the booths just don't work on these creatures.
IF_ACTION_POINT(5,PLAYER2)
    NEXT_COMMAND_REUSABLE
    KILL_CREATURE(PLAYER2,ANY_CREATURE,AT_ACTION_POINT[5],1)
ENDIF

IF_ACTION_POINT(6,PLAYER2)
    NEXT_COMMAND_REUSABLE
    KILL_CREATURE(PLAYER2,ANY_CREATURE,AT_ACTION_POINT[6],1)
ENDIF

IF_ACTION_POINT(7,PLAYER2)
    NEXT_COMMAND_REUSABLE
    KILL_CREATURE(PLAYER2,ANY_CREATURE,AT_ACTION_POINT[7],1)
ENDIF

REM LOSE CONDITION
IF_SLAB_TYPE(55,104,PATH)
    SET_FLAG(PLAYER0,FLAG2,1)
ENDIF
IF(PLAYER0,HEART_HEALTH<500)
    NEXT_COMMAND_REUSABLE
    SET_OBJECT_CONFIGURATION(POTION_PURPLE,Properties,64)
ENDIF
IF(PLAYER0,HEART_HEALTH>=500)
    IF(PLAYER0,FLAG2==0)
        NEXT_COMMAND_REUSABLE
        SET_OBJECT_CONFIGURATION(POTION_PURPLE,Properties,4)
    ENDIF
ENDIF
IF(PLAYER0,FLAG2==1)
    SET_FLAG(PLAYER0,FLAG1,0) REM Stops Phalanx from spawning
    SET_TIMER(PLAYER0,TIMER1)
    IF(PLAYER0,TIMER1==200)
        NEXT_COMMAND_REUSABLE
        KILL_CREATURE(PLAYER0,PHALANX,MOST_EXPERIENCED,1)
        NEXT_COMMAND_REUSABLE
        SET_TIMER(PLAYER0,TIMER1)
    ENDIF
ENDIF
IF(PLAYER0,WARLOCK==0)
    LOSE_GAME
ENDIF

REM WIN CONDITION
IF(PLAYER0,FLAG0==106)
    IF(PLAYER_GOOD,AVATAR==0)
        QUICK_MESSAGE(27,"NO!!! It can't b..b..be!",AVATAR)
        KILL_CREATURE(PLAYER_GOOD,ANY_CREATURE,AT_ACTION_POINT[10],25)
        KILL_CREATURE(PLAYER_GOOD,ANY_CREATURE,AT_ACTION_POINT[16],25)
        ADD_TO_FLAG(PLAYER0,FLAG0,1)
    ENDIF
ENDIF

IF(PLAYER0,FLAG0==107)
    IF(PLAYER_GOOD,TOTAL_CREATURES==0)
        WIN_GAME
    ENDIF
ENDIF