REM ****************************************************************************
REM  Campaigns Consolidation Project for KeeperFX strategy game.
REM ****************************************************************************
REM  Script for Level Wishvale
REM  Campaign: DK Original
REM  Authors:  based on Bullfrog script
REM            KeeperFX CCP Team
REM  Date:     17 Dec 1996 - 21 aug 2016
REM  Copying and copyrights:
REM    This program is free software; you can redistribute it and/or modify
REM    it under the terms of the GNU General Public License as published by
REM    the Free Software Foundation; either version 2 of the License, or
REM    (at your option) any later version.
REM ****************************************************************************

LEVEL_VERSION(1)
RUN_AFTER_VICTORY(1)

REM New rooms for the player:
REM   BARRACKS - Becomes available when Orc comes in
REM New creatures for the player:
REM   ORC - One given and more available after gaining 5th creature

REM My new stuff - GIANT, WIZARD, FREEZE TRAP

REM Timers used:
REM   PLAYER_GOOD,TIMER0 - Controls spawning ICHI party
REM   PLAYER_GOOD,TIMER1 - Controls spawning NI party
REM   PLAYER_GOOD,TIMER2 - Controls spawning SAN party
REM   PLAYER_GOOD,TIMER3 - Controls spawning YON party
REM   PLAYER_GOOD,TIMER4 - Controls spawning GO party
REM   PLAYER_GOOD,TIMER6 - Used for delay before Lord of the Land appearance
REM   PLAYER0,TIMER7 - Hint crate
REM   PLAYER0,TIMER0 - 

REM	  FLAGS
REM   FLAG0 - Hero wave flag, set to 1 after 30000 turns after waves start, or when enemy Keeper destroyed
REM   FLAG1 - Set to 1 when LOTL arrives.
REM   FLAG2 - Set to 1 when you are in contact with main hero fortress.
REM   FLAG3 - Have seen ice traps.
REM   FLAG4 - Secret party spawn
REM   FLAG7 - Skeleton chance

SET_GENERATE_SPEED(300)

REM Computer Player stuff
COMPUTER_PLAYER(PLAYER3,5)

REM Reconfiguring computer processes to make him less aggressive while digging around
REM Original values were:
REM       Name            Priority MoneyMinimum TurnScale GoldDugAtOnce MaxDistance
REM  "DIG TO CLOSE GOLD",       0,       30999,      500,             5,        71
SET_COMPUTER_PROCESS(PLAYER3,"DIG TO CLOSE GOLD",0,500,500,8,5)
REM SET_COMPUTER_CHECKS(PLAYER3,"CHECK FOR NEUTRAL PLACES",15000,0,0,0,65000)
REM SET_COMPUTER_PROCESS(PLAYER3,"ATTACK SAFE ATTACK",-1,100,22,100,0)

START_MONEY(PLAYER0,2500)
START_MONEY(PLAYER3,5000)

MAX_CREATURES(PLAYER0,20)
MAX_CREATURES(PLAYER3,25)

ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(FLY,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(DARK_MISTRESS,10)
ADD_CREATURE_TO_POOL(SORCEROR,30)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(SPIDER,20)
ADD_CREATURE_TO_POOL(BILE_DEMON,7)
ADD_CREATURE_TO_POOL(ORC,10)

REM	Creature availability
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,FLY,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BUG,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,SPIDER,1,0)
CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,0)

SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,IMP,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,BUG,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,FLY,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,SPIDER,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,TROLL,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,DEMONSPAWN,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,SORCEROR,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,BILE_DEMON,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,SKELETON,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,GHOST,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,DARK_MISTRESS,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,ORC,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,THIEF,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,ARCHER,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,DWARFA,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,FAIRY,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,BARBARIAN,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,GIANT,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,WIZARD,6)
SET_CREATURE_MAX_LEVEL(ALL_PLAYERS,KNIGHT,6)

REM	Room availability
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(ALL_PLAYERS,WORKSHOP,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0)
ROOM_AVAILABLE(PLAYER0,BRIDGE,1,0)
ROOM_AVAILABLE(ALL_PLAYERS,PRISON,1,0)
ROOM_AVAILABLE(PLAYER3,TORTURE,1,0)

REM	Spells availability
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(PLAYER3,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_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER3,POWER_LIGHTNING,1,0)

REM	Doors and traps availability
DOOR_AVAILABLE(ALL_PLAYERS,WOOD,1,0)
DOOR_AVAILABLE(ALL_PLAYERS,BRACED,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,POISON_GAS,1,0)
TRAP_AVAILABLE(ALL_PLAYERS,LIGHTNING,1,0)

CREATE_PARTY(ICHI)
	ADD_TO_PARTY(ICHI,DWARFA,4,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ICHI,DWARFA,4,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ICHI,THIEF,4,300,STEAL_GOLD,0)
	ADD_TO_PARTY(ICHI,THIEF,4,300,STEAL_GOLD,0)

CREATE_PARTY(NI)
	ADD_TO_PARTY(NI,ARCHER,4,250,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(NI,ARCHER,4,250,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(NI,BARBARIAN,4,300,ATTACK_ENEMIES,0)

CREATE_PARTY(SAN)
	ADD_TO_PARTY(SAN,ARCHER,4,250,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SAN,BARBARIAN,4,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SAN,WIZARD,4,400,STEAL_SPELLS,0)

CREATE_PARTY(YON)
	ADD_TO_PARTY(YON,BARBARIAN,4,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(YON,BARBARIAN,4,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(YON,WIZARD,4,400,STEAL_SPELLS,0)

CREATE_PARTY(GO)
	ADD_TO_PARTY(GO,BARBARIAN,4,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(GO,BARBARIAN,4,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(GO,GIANT,4,500,ATTACK_ENEMIES,0)

CREATE_PARTY(LANDLORD)
	ADD_TO_PARTY(LANDLORD,ARCHER,5,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,ARCHER,5,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,GIANT,5,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,GIANT,5,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,WIZARD,5,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,WIZARD,5,300,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,KNIGHT,6,800,ATTACK_ENEMIES,0)

CREATE_PARTY(SURPRISE)
	ADD_TO_PARTY(SURPRISE,TUNNELLER,5,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SURPRISE,TUNNELLER,5,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SURPRISE,TUNNELLER,5,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SURPRISE,TUNNELLER,5,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SURPRISE,TUNNELLER,5,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(SURPRISE,TUNNELLER,5,200,ATTACK_ENEMIES,0)

REM ****************************************************************************

IF_AVAILABLE(PLAYER0,ARROW >= 1)
	IF(PLAYER0,ARCHER > 0)
		TRAP_AVAILABLE(PLAYER0,ARROW,1,0)
	ENDIF
ENDIF

IF_AVAILABLE(PLAYER0,FREEZE >= 1)
	IF(PLAYER0,WIZARD > 0)
		TRAP_AVAILABLE(PLAYER0, FREEZE,1,0)
	ENDIF
ENDIF

IF(PLAYER_GOOD,FLAG7 == 1)
    SET_GAME_RULE( PrisonSkeletonChance, 80 )
ENDIF
IF(PLAYER_GOOD,FLAG7 == 2)
    SET_GAME_RULE( PrisonSkeletonChance, 60 )
ENDIF
IF(PLAYER_GOOD,FLAG7 == 3)
    SET_GAME_RULE( PrisonSkeletonChance, 40 )
ENDIF
IF(PLAYER_GOOD,FLAG7 == 4)
    SET_GAME_RULE( PrisonSkeletonChance, 20 )
ENDIF

IF(PLAYER_GOOD,FLAG7 == 0)
    IF( PLAYER0, SKELETON > 3 )
        SET_FLAG(PLAYER_GOOD,FLAG7,1)
    ENDIF
    IF( PLAYER3, SKELETON > 3 )
        SET_FLAG(PLAYER_GOOD,FLAG7,1)
    ENDIF
ENDIF
IF(PLAYER_GOOD,FLAG7 == 1)
    IF( PLAYER0, SKELETON > 6 )
        SET_FLAG(PLAYER_GOOD,FLAG7,2)
    ENDIF
    IF( PLAYER3, SKELETON > 6 )
        SET_FLAG(PLAYER_GOOD,FLAG7,2)
    ENDIF
ENDIF
IF(PLAYER_GOOD,FLAG7 == 2)
    IF( PLAYER0, SKELETON > 9 )
        SET_FLAG(PLAYER_GOOD,FLAG7,3)
    ENDIF
    IF( PLAYER3, SKELETON > 9 )
        SET_FLAG(PLAYER_GOOD,FLAG7,3)
    ENDIF
ENDIF
IF(PLAYER_GOOD,FLAG7 == 3)
    IF( PLAYER0, SKELETON > 12 )
        SET_FLAG(PLAYER_GOOD,FLAG7,4)
    ENDIF
    IF( PLAYER3, SKELETON > 12 )
        SET_FLAG(PLAYER_GOOD,FLAG7,4)
    ENDIF
ENDIF


IF( PLAYER0,GHOST > 3 )
    SET_GAME_RULE( GhostConvertChance, 70 )
ENDIF
IF( PLAYER0,GHOST > 6 )
    SET_GAME_RULE( GhostConvertChance, 40 )
ENDIF
IF( PLAYER0,GHOST > 9 )
    SET_GAME_RULE( GhostConvertChance, 10 )
ENDIF


IF( PLAYER0, GOOD_CREATURES_CONVERTED > 3 )
	QUICK_INFORMATION(6,"The Heroes have heard of their allies being corrupted to your side and have made a vow to die before joining you. We'll see how many of them really keep their word...")
    SET_GAME_RULE( TortureDeathChance, 70 )
ENDIF
IF( PLAYER0, GOOD_CREATURES_CONVERTED > 6 )
    SET_GAME_RULE( TortureDeathChance, 50 )
ENDIF
IF( PLAYER0, GOOD_CREATURES_CONVERTED > 9 )
    SET_GAME_RULE( TortureDeathChance, 30 )
ENDIF


REM "It appears you have arrived in the middle of a raging battle. Perhaps it would be wise to stay out of the way until you are strong enough to eliminate both sides."
QUICK_OBJECTIVE(1,"The battle between Keeper and Heroes rages. Build up and start subverting unwitting Heroes before your rival does the same and becomes too powerful.",ALL_PLAYERS)

REM If player hits one of these action points, start the wave timer and unlock the corresponding door
IF_ACTION_POINT(3,PLAYER0)
	IF_SLAB_OWNER(63,68,PLAYER_GOOD)
		SET_DOOR(UNLOCKED,63,68)
	ENDIF
	SET_FLAG(PLAYER_GOOD,FLAG2,1)
ENDIF
IF_ACTION_POINT(8,PLAYER0)
	IF_SLAB_OWNER(63,15,PLAYER_GOOD)
		SET_DOOR(UNLOCKED,63,15)
	ENDIF
	SET_FLAG(PLAYER_GOOD,FLAG2,1)
ENDIF
IF_ACTION_POINT(9,PLAYER0)
	IF_SLAB_OWNER(64,35,PLAYER_GOOD)
		SET_DOOR(UNLOCKED,64,35)
	ENDIF
	SET_FLAG(PLAYER_GOOD,FLAG2,1)
ENDIF
IF_ACTION_POINT(10,PLAYER0)
	IF_SLAB_OWNER(66,47,PLAYER_GOOD)
		SET_DOOR(UNLOCKED,66,47)
	ENDIF
	SET_FLAG(PLAYER_GOOD,FLAG2,1)
ENDIF
IF_ACTION_POINT(11,PLAYER0)
	IF_SLAB_OWNER(63,15,PLAYER_GOOD)
		SET_DOOR(UNLOCKED,63,15)
	ENDIF
	SET_FLAG(PLAYER_GOOD,FLAG2,1)
ENDIF

REM When player encounters freeze trap, give lore dump.
IF(PLAYER_GOOD,FLAG3 == 0)
	IF_ACTION_POINT(12,PLAYER0)
		QUICK_INFORMATION(2,"The Wizards of this realm have shared their mastery of ice with the other Heroes, who have imbued it into cunning traps. Be careful.")
		SET_FLAG(PLAYER_GOOD,FLAG3,1)
	ENDIF
	IF_ACTION_POINT(13,PLAYER0)
		QUICK_INFORMATION(3,"The Wizards of this realm have shared their mastery of ice with the other Heroes, who have imbued it into cunning traps. Be careful.")
		SET_FLAG(PLAYER_GOOD,FLAG3,1)
	ENDIF
ENDIF


IF(PLAYER0,TOTAL_CREATURES > 5)
	QUICK_INFORMATION(4,"The Orc warlord with the plans for the Barracks seems to have been intercepted. Release him and I'm sure his underlings will follow.")
ENDIF


IF(PLAYER0,ORC > 0)
	QUICK_INFORMATION(5,"The freed warlord has shared his designs for the Barracks. His underlings have also joined as backup.")
	CREATURE_AVAILABLE(ALL_PLAYERS,ORC,1,0)
	ADD_CREATURE_TO_LEVEL(PLAYER0,ORC,4,2,1,0)
	ROOM_AVAILABLE(PLAYER0,BARRACKS,1,0)
	SET_FLAG(PLAYER1,CAMPAIGN_FLAG2,1)
ENDIF

IF(PLAYER0,TROLL > 0)
	QUICK_INFORMATION(7,"Your trolls have decided to share that they can disarm traps with enough training. Could be useful, Keeper.")
ENDIF

REM Hero waves. Each one unlocks the corresponding door just in case, first one unlocks connecting doors.

SET_TIMER(PLAYER_GOOD,TIMER0)

IF(PLAYER_GOOD,FLAG0 == 0)
	IF(PLAYER_GOOD,TIMER0 > 2000)
		IF(PLAYER_GOOD,FLAG2 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,ICHI,-1,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER0)
			IF_SLAB_OWNER(63,15,PLAYER_GOOD)
				SET_DOOR(UNLOCKED,63,15)
			ENDIF
			IF_SLAB_OWNER(66,47,PLAYER_GOOD)
				SET_DOOR(UNLOCKED,66,47)
			ENDIF
			IF_SLAB_OWNER(61,40,PLAYER_GOOD)
				SET_DOOR(UNLOCKED,61,40)
			ENDIF
		ENDIF
	ENDIF
ENDIF

SET_TIMER(PLAYER_GOOD,TIMER1)

IF(PLAYER_GOOD,FLAG0 == 0)
	IF(PLAYER_GOOD,TIMER1 > 4000)
		IF(PLAYER_GOOD,FLAG2 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,NI,-2,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER1)
			IF_SLAB_OWNER(64,35,PLAYER_GOOD)
				SET_DOOR(UNLOCKED,64,35)
			ENDIF
			IF_SLAB_OWNER(66,47,PLAYER_GOOD)
				SET_DOOR(UNLOCKED,66,47)
			ENDIF
		ENDIF
	ENDIF
ENDIF

SET_TIMER(PLAYER_GOOD,TIMER2)

IF(PLAYER_GOOD,FLAG0 == 0)
	IF(PLAYER_GOOD,TIMER2 > 7500)
		IF(PLAYER_GOOD,FLAG2 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,SAN,-3,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER2)
			IF_SLAB_OWNER(63,68,PLAYER_GOOD)
				SET_DOOR(UNLOCKED,63,68)
			ENDIF
		ENDIF
	ENDIF
ENDIF

SET_TIMER(PLAYER_GOOD,TIMER3)

IF(PLAYER_GOOD,FLAG0 == 0)
	IF(PLAYER_GOOD,TIMER3 > 10000)
		IF(PLAYER_GOOD,FLAG2 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,YON,-2,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER3)
		ENDIF
	ENDIF
ENDIF

SET_TIMER(PLAYER_GOOD,TIMER4)

IF(PLAYER_GOOD,FLAG0 == 0)
	IF(PLAYER_GOOD,TIMER4 > 15000)
		IF(PLAYER_GOOD,FLAG2 == 1)
			NEXT_COMMAND_REUSABLE
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GO,-1,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER_GOOD,TIMER4)
		ENDIF
	ENDIF
ENDIF

REM The continuous hero parties can be stopped either by waiting enough time, or killing PLAYER3 
IF(PLAYER3,DUNGEON_DESTROYED >= 1)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
	SET_TIMER(PLAYER_GOOD,TIMER6)
ENDIF

IF(PLAYER_GOOD,GAME_TURN >= 30000)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
	SET_TIMER(PLAYER_GOOD,TIMER6)
ENDIF

IF(PLAYER3,PRISON >= 9)
	SET_CREATURE_TENDENCIES(PLAYER3,IMPRISON,1)
ENDIF

REM When the parties are stopped and there are no more heroes on level, make the lord enter (with some delay)
IF(PLAYER_GOOD,TIMER6 >= 1000)
	IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 30)
		QUICK_OBJECTIVE(8,"After sending countless parties in and hearing nothing back, the Lord of the Land has arrived to check on his men. Show him the same hospitality you showed them.",ALL_PLAYERS)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LANDLORD,-2,1)
		SET_FLAG(PLAYER_GOOD,FLAG1,1)
	ENDIF
ENDIF

REM When lord is killed, direct the player to kill PLAYER3, unless it's not destroyed already; and when he is - victory
IF(PLAYER_GOOD,FLAG1 == 1)
	IF_CONTROLS(PLAYER_GOOD,KNIGHT == 0)
		IF_CONTROLS(PLAYER_GOOD,GIANT == 0)
			IF_CONTROLS(PLAYER_GOOD,WIZARD == 0)
				IF(PLAYER3,DUNGEON_DESTROYED == 0)
					QUICK_OBJECTIVE(9,"With the Lord taken care of, the remaining heroes won't be much of a threat. Time to wipe out the other Keeper.",ALL_PLAYERS)
					DISPLAY_VARIABLE(PLAYER_GOOD, TOTAL_CREATURES, 0, 1)
					REM Blue digs out when the heroes are defeated
					COMPUTER_DIG_TO_LOCATION(PLAYER3,1,2)
				ENDIF
				IF(PLAYER3,DUNGEON_DESTROYED >= 1)
					QUICK_OBJECTIVE(10,"The enemy Keeper is defeated and the Lord is out of the picture. I think we're done here.",ALL_PLAYERS)
					DISPLAY_VARIABLE(PLAYER_GOOD, TOTAL_CREATURES, 0, 1)
					WIN_GAME
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES == 0)
	QUICK_INFORMATION(26,"Knock knock, Keeper.",-4)
	SET_FLAG(PLAYER0,FLAG4,1)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,SURPRISE,-4,ACTION_POINT,1,5,200)
	REM Action point where the special is
ENDIF

IF(PLAYER0,FLAG4 == 1)
	IF_CONTROLS(PLAYER_GOOD,TUNNELLER == 0)
		QUICK_INFORMATION(11,"Now that all the forces are wiped out, you can claim your prize.",-4)
		PLAY_MESSAGE(PLAYER0,SOUND,159)
		IF(PLAYER2,CAMPAIGN_FLAG2 == 0)
			SET_FLAG(PLAYER2,CAMPAIGN_FLAG2,1)
		ENDIF
		IF(PLAYER2,CAMPAIGN_FLAG2 == 2)
			SET_FLAG(PLAYER2,CAMPAIGN_FLAG2,3)
		ENDIF
		IF(PLAYER2,CAMPAIGN_FLAG2 == 4)
			SET_FLAG(PLAYER2,CAMPAIGN_FLAG2,5)
		ENDIF
		IF(PLAYER2,CAMPAIGN_FLAG2 == 6)
			SET_FLAG(PLAYER2,CAMPAIGN_FLAG2,7)
		ENDIF
	ENDIF
ENDIF

REM ****************************************************************************

SET_BOX_TOOLTIP(0, "Hint Crate")
ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM, 14, 0)
SET_FLAG(PLAYER0,FLAG7,0)

IF(PLAYER0,BOX0_ACTIVATED > 0)
	IF(PLAYER0,FLAG7 == 0)
		NEXT_COMMAND_REUSABLE
		QUICK_INFORMATION(25,"Scour the land and snuff out all resistance.",ALL_PLAYERS,897)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER7)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,FLAG7,1)
	ENDIF
ENDIF

IF(PLAYER0,TIMER7 >= 100)
	IF(PLAYER0,FLAG7 == 1)
		NEXT_COMMAND_REUSABLE
		CREATE_EFFECT(54,14)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM, 14, 0)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,FLAG7,0)
	ENDIF
ENDIF

IF_ACTION_POINT(15,PLAYER3)
	USE_POWER_AT_POS(PLAYER3,121,28,POWER_DESTROY_WALLS,1,1)
ENDIF