REM ****************************************************************************
REM  Campaigns Consolidation Project for KeeperFX strategy game.
REM ****************************************************************************
REM  Script for Level Waterdream Warm
REM  Campaign: New game plus
REM  Authors:  based on Bullfrog script
REM            KeeperFX CCP Team
REM            Loobinex
REM  Date:     17 Dec 1996 - 14 Mar 2015
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   RESEARCH
REM New creatures for the player:
REM   SORCEROR
REM New powers for the player:
REM   POWER_SPEED

REM Flags used:
REM   PLAYER_GOOD,FLAG0 - Sending waves of heroes; 0-not ready; 1-ready to start sending.
REM Timers used:
REM   PLAYER0,TIMER0 - First attack timer
REM   PLAYER0,TIMER1 - Delay after first attack
REM   PLAYER0,TIMER2 - Second attack timer
REM   PLAYER0,TIMER3 - Final attack timer (also counts delay after 2nd attack)
REM   PLAYER0,TIMER4 - Delay after final attack

SET_GENERATE_SPEED(350)

START_MONEY(PLAYER0,2500)

MAX_CREATURES(PLAYER0,13)

ADD_CREATURE_TO_POOL(BUG,10)
ADD_CREATURE_TO_POOL(FLY,4)
ADD_CREATURE_TO_POOL(DEMONSPAWN,20)
ADD_CREATURE_TO_POOL(SORCEROR,10)

SET_CREATURE_MAX_LEVEL(PLAYER0,IMP,1)
SET_CREATURE_MAX_LEVEL(PLAYER0,BUG,1)
SET_CREATURE_MAX_LEVEL(PLAYER0,FLY,1)
SET_CREATURE_MAX_LEVEL(PLAYER0,DEMONSPAWN,1)
SET_CREATURE_MAX_LEVEL(PLAYER0,SORCEROR,1)
SET_CREATURE_MAX_LEVEL(PLAYER0,SKELETON,1)

CREATURE_AVAILABLE(PLAYER0,BUG,1,0)
CREATURE_AVAILABLE(PLAYER0,FLY,1,0)
CREATURE_AVAILABLE(PLAYER0,DEMONSPAWN,1,0)
CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,0)

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

MAGIC_AVAILABLE(PLAYER0,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_HAND,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)

CREATE_PARTY(THIEVES)
	ADD_TO_PARTY(THIEVES,THIEF,1,200,STEAL_GOLD,0)
	ADD_TO_PARTY(THIEVES,ARCHER,1,200,ATTACK_DUNGEON_HEART,0)

CREATE_PARTY(DWARVES)
	ADD_TO_PARTY(DWARVES,DWARFA,1,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(DWARVES,DWARFA,1,200,ATTACK_ENEMIES,0)

CREATE_PARTY(ELITE)
	ADD_TO_PARTY(ELITE,DWARFA,2,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ELITE,THIEF,2,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ELITE,DWARFA,1,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(ELITE,THIEF,1,200,ATTACK_ENEMIES,0)

CREATE_PARTY(LANDLORD)
	ADD_TO_PARTY(LANDLORD,ARCHER,2,200,DEFEND_PARTY,0)
	ADD_TO_PARTY(LANDLORD,KNIGHT,2,2000,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,ARCHER,2,200,DEFEND_PARTY,0)
	ADD_TO_PARTY(LANDLORD,DWARFA,2,200,DEFEND_PARTY,0)

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

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

IF(PLAYER0,BOX0_ACTIVATED > 0)
	IF(PLAYER0,FLAG7 == 0)
		NEXT_COMMAND_REUSABLE
		QUICK_INFORMATION(25,"Show you are strong enough already.",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,6)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM, 6, 0)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,FLAG7,0)
	ENDIF
ENDIF

SET_TIMER(PLAYER0,TIMER0)

QUICK_OBJECTIVE(1,"The heroes are on their way again. Soon you will be given the designs for the Dark Library, however our researchers won't be able to reconstruct a Training Room without a reference. Best go find one, unless you think you don't need it.",ALL_PLAYERS)

IF_CONTROLS(PLAYER0,TOTAL_CREATURES >= 4)
	ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
	QUICK_OBJECTIVE(2,"Here are the Library designs in that insect's maw. Wipe off the slime and get to building.",ALL_PLAYERS)
	TUTORIAL_FLASH_BUTTON(2,-1)
	TUTORIAL_FLASH_BUTTON(9,-1)
ENDIF

IF(PLAYER0,TRAINING>0)
	ROOM_AVAILABLE(PLAYER0,TRAINING,1,0)
	QUICK_OBJECTIVE(3,"Now we own this dilapidated Training Room, we should be able to reconstruct it.",ALL_PLAYERS)
	TUTORIAL_FLASH_BUTTON(2,-1)
	TUTORIAL_FLASH_BUTTON(10,-1)
	SET_CREATURE_MAX_LEVEL(PLAYER0,IMP,3)
	SET_CREATURE_MAX_LEVEL(PLAYER0,BUG,3)
	SET_CREATURE_MAX_LEVEL(PLAYER0,FLY,3)
	SET_CREATURE_MAX_LEVEL(PLAYER0,DEMONSPAWN,3)
	SET_CREATURE_MAX_LEVEL(PLAYER0,SORCEROR,3)
	SET_CREATURE_MAX_LEVEL(PLAYER0,SKELETON,3)
	CHANGE_SLAB_TYPE(26,70,WATER)
	CHANGE_SLAB_TYPE(25,71,WATER)
	CHANGE_SLAB_TYPE(26,71,WATER)
	CHANGE_SLAB_TYPE(27,71,WATER)
	CHANGE_SLAB_TYPE(26,72,WATER)
	CHANGE_SLAB_TYPE(26,73,WATER)
	CHANGE_SLAB_TYPE(26,74,WATER)
ENDIF

IF(PLAYER0,TIMER0 >= 5000)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
ENDIF

REM If a player sticks his nose where he shouldn't, commence first attack faster
IF_ACTION_POINT(1,PLAYER0)
	SET_FLAG(PLAYER_GOOD,FLAG0,1)
ENDIF

REM If we're signalled for first attack - do it
IF(PLAYER_GOOD,FLAG0 >= 1)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES,-1,DUNGEON,0,1,300)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,DWARVES,-1,DUNGEON,0,1,2000)
	ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES,3,DUNGEON,0,1,300)
	SET_TIMER(PLAYER0,TIMER1)
ENDIF

IF(PLAYER0,TIMER1 > 100)
	IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
		QUICK_OBJECTIVE(4,"With this first wave hacked to bits, it won't be long until they launch another assault. Regroup and prepare.",ALL_PLAYERS)
		SET_TIMER(PLAYER0,TIMER2)
	ENDIF
ENDIF

REM Commence the 2nd attack some time after first wave is wiped out
IF(PLAYER0,TIMER2 > 1000)
	IF_CONTROLS(PLAYER0,TOTAL_CREATURES >= 6)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES,-1,2)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DWARVES,-1,2)
		SET_TIMER(PLAYER0,TIMER3)
	ENDIF
ENDIF

IF(PLAYER0,TIMER3 > 100)
	IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
		QUICK_OBJECTIVE(5,"Recover and regroup. They're bound to attack again.",ALL_PLAYERS)
	ENDIF
ENDIF

REM For final attack, count the delay without waiting for a previous wave to be killed
IF(PLAYER0,TIMER3 > 1000)
	IF_CONTROLS(PLAYER0,TOTAL_CREATURES >= 6)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ELITE,-1,DUNGEON,0,1,500)
	ENDIF
ENDIF

REM For final attack, count the delay without waiting for a previous wave to be killed
IF(PLAYER0,TIMER3 > 3000)
	IF_CONTROLS(PLAYER0,TOTAL_CREATURES >= 6)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,LANDLORD,-1,DUNGEON,0,1,500)
		SET_TIMER(PLAYER0,TIMER4)
	ENDIF
ENDIF

REM When all are dead, win the game
IF(PLAYER0,TIMER4 > 100)
	IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
		SET_FLAG(PLAYER_GOOD,FLAG0,2)
		WIN_GAME
	ENDIF
ENDIF

IF(PLAYER_GOOD,FLAG0 >= 2)
	IF_SLAB_OWNER(5,25,PLAYER_NEUTRAL)
		IF_SLAB_OWNER(4,26,PLAYER_NEUTRAL)
			QUICK_OBJECTIVE(6,"You showed the goodly heroes of this realm not to mess with you, and all without a Training Room. I am impressed, Keeper, and I may not be the only one...",ALL_PLAYERS)
			IF(PLAYER2,CAMPAIGN_FLAG0 == 0)
				SET_FLAG(PLAYER2,CAMPAIGN_FLAG0,4)
			ENDIF
			IF(PLAYER2,CAMPAIGN_FLAG0 == 1)
				SET_FLAG(PLAYER2,CAMPAIGN_FLAG0,5)
			ENDIF
			IF(PLAYER2,CAMPAIGN_FLAG0 == 2)
				SET_FLAG(PLAYER2,CAMPAIGN_FLAG0,6)
			ENDIF
			IF(PLAYER2,CAMPAIGN_FLAG0 == 3)
				SET_FLAG(PLAYER2,CAMPAIGN_FLAG0,7)
			ENDIF
			CHANGE_SLAB_TYPE(26,70,PATH)
			CHANGE_SLAB_TYPE(25,71,PATH)
			CHANGE_SLAB_TYPE(26,71,PATH)
			CHANGE_SLAB_TYPE(27,71,PATH)
			CHANGE_SLAB_TYPE(26,72,PATH)
			CHANGE_SLAB_TYPE(26,73,PATH)
			CHANGE_SLAB_TYPE(26,74,PATH)
			PLAY_MESSAGE(PLAYER0,SOUND,159)
			ADD_OBJECT_TO_LEVEL(SPECBOX_TRANSFR,5,0)
			QUICK_INFORMATION(11,"Looks like the gods favour you. Use this gift wisely.",1)
		ENDIF
		IF_SLAB_OWNER(4,26,PLAYER0)
			QUICK_OBJECTIVE(7,"The heroes of this land were stronger, yet you were stronger still. Well done, Keeper.",ALL_PLAYERS)
		ENDIF
	ENDIF
	IF_SLAB_OWNER(5,25,PLAYER0)
		QUICK_OBJECTIVE(7,"The heroes of this land were stronger, yet you were stronger still. Well done, Keeper.",ALL_PLAYERS)
	ENDIF
ENDIF


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