REM ****************************************************************************
REM  Campaigns Consolidation Project for KeeperFX strategy game.
REM ****************************************************************************
REM  Script for Level Cosyton
REM  Campaign: DK Original
REM  Campaign: New game plus
REM  Authors:  based on Bullfrog script
REM            KeeperFX CCP Team
REM            Loobinex
REM  Date:     17 Aug 1997 - 10 Aug 2019
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)

REM New rooms for the player:
REM   TRAINING
REM New creatures for the player:
REM   DEMON_SPAWN

REM Flags used:
REM   PLAYER0,FLAG3 - State of TRAINING building; 0-not built yet; 1-built.

REM Timers used:
REM   PLAYER0,TIMER0
REM   PLAYER0,TIMER1
REM   PLAYER0,TIMER2

SET_GENERATE_SPEED(350)

START_MONEY(PLAYER0,2000)

MAX_CREATURES(PLAYER0,12)

ADD_CREATURE_TO_POOL(BUG,5)
ADD_CREATURE_TO_POOL(FLY,5)
ADD_CREATURE_TO_POOL(DEMONSPAWN,24)

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

SET_CREATURE_MAX_LEVEL(PLAYER0,IMP,2)
SET_CREATURE_MAX_LEVEL(PLAYER0,FLY,2)
SET_CREATURE_MAX_LEVEL(PLAYER0,BUG,2)
SET_CREATURE_MAX_LEVEL(PLAYER0,DEMONSPAWN,2)
SET_CREATURE_MAX_LEVEL(PLAYER_GOOD,KNIGHT,2)
SET_CREATURE_MAX_LEVEL(PLAYER_GOOD,THIEF,2)
SET_CREATURE_MAX_LEVEL(PLAYER_GOOD,DWARFA,2)
SET_CREATURE_MAX_LEVEL(PLAYER_GOOD,TUNNELLER,2)

ROOM_AVAILABLE(PLAYER0,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER0,LAIR,1,1)
ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)
REM ROOM_AVAILABLE(PLAYER0,TRAINING,1,0)

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

CREATE_PARTY(THIEVES)
	ADD_TO_PARTY(THIEVES,THIEF,1,200,STEAL_GOLD,0)
	ADD_TO_PARTY(THIEVES,THIEF,1,200,STEAL_GOLD,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,KNIGHT,2,2000,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,DWARFA,2,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,DWARFA,1,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,THIEF,2,200,ATTACK_ENEMIES,0)
	ADD_TO_PARTY(LANDLORD,THIEF,1,200,ATTACK_ENEMIES,0)

SET_CREATURE_STRENGTH(KNIGHT,50)
SET_CREATURE_ARMOUR(KNIGHT,70)
SET_CREATURE_STRENGTH(TUNNELLER,35)
SET_CREATURE_STRENGTH(DWARFA,45)

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

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

IF(PLAYER0,BOX0_ACTIVATED > 0)
	IF(PLAYER0,FLAG7 == 0)
		NEXT_COMMAND_REUSABLE
		QUICK_INFORMATION(25,"Make the first move.",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,5)
		NEXT_COMMAND_REUSABLE
		ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM, 5, 0)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,FLAG7,0)
	ENDIF
ENDIF


REM "The heroes are on their way. Make sure your creatures are well trained and ready for the attack."
QUICK_OBJECTIVE(1,"The heroes are already on their way, and we seem to be missing a training room. Try not to die.",ALL_PLAYERS)

REM SET_TIMER(PLAYER0,TIMER0)
REM IF(PLAYER0,TIMER0 >= 2000)
REM 	ROOM_AVAILABLE(PLAYER0,TRAINING,1,1)
REM 	TUTORIAL_FLASH_BUTTON(2,-1)
REM 	TUTORIAL_FLASH_BUTTON(10,-1)
REM 	QUICK_OBJECTIVE(2,"The Training Room is now available for you to build. Best get on that, Keeper.",ALL_PLAYERS)
REM ENDIF

IF_ACTION_POINT(3,PLAYER0)
	IF(PLAYER2,FLAG0 <= 2)
		IF(PLAYER2,FLAG1 <= 2)
			ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES,3,2)
		ENDIF
	ENDIF
ENDIF

IF(PLAYER0,TIMER1 >= 4000)
	QUICK_INFORMATION(2,"They're getting close now. Be ready.",ALL_PLAYERS)
ENDIF

SET_TIMER(PLAYER0,TIMER1)
SET_FLAG(PLAYER2,FLAG0,1)
IF(PLAYER0,TIMER1 >= 5000)
	IF(PLAYER2,FLAG0==1)
		SET_FLAG(PLAYER2,FLAG1,3)
		PLAY_MESSAGE(PLAYER0,SOUND,69)
		QUICK_INFORMATION(3,"Ready or not, here they come.",ALL_PLAYERS)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES,1,DUNGEON,0,1,500)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DWARVES,1,1)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,DWARVES,4,DUNGEON,0,1,500)
		IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
			SET_TIMER(PLAYER0,TIMER2)
			QUICK_OBJECTIVE(4,"Stronger reinforcements are already on their way. Try to scrape together what you can to repel them.",ALL_PLAYERS)
			IF(PLAYER0,TIMER2 >= 1000)
				ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ELITE,-1,DUNGEON,0,1,500)
				ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES,1,1)
				ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DWARVES,4,1)
				IF(PLAYER_GOOD,TOTAL_CREATURES <= 0)
					SET_TIMER(PLAYER0,TIMER3)
					QUICK_OBJECTIVE(5,"I can already hear the clanking of plate mail. Not long until the lord arrives too.",ALL_PLAYERS)
					IF(PLAYER0,TIMER3 >= 1000)
						SET_FLAG(PLAYER2,FLAG0,2)
						ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LANDLORD,-1,1)
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF_ACTION_POINT(2,PLAYER0)
	IF(PLAYER2,FLAG1 == 0)
		REM SET_FLAG(PLAYER2,FLAG1,1)
		SET_FLAG(PLAYER2,FLAG0,3)
		QUICK_OBJECTIVE(6,"Attacking them directly? Bold move.",ALL_PLAYERS)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES,1,DUNGEON,0,1,500)
		ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,DWARVES,4,DUNGEON,0,1,500)
		ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DWARVES,-1,1)
		IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
			SET_TIMER(PLAYER0,TIMER4)
			QUICK_OBJECTIVE(7,"Breaching their base has already alerted reinforcements. I hope you're prepared.",ALL_PLAYERS)
			IF(PLAYER0,TIMER4 >= 1000)
				ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ELITE,-1,DUNGEON,0,1,500)
				ADD_PARTY_TO_LEVEL(PLAYER_GOOD,THIEVES,1,1)
				ADD_PARTY_TO_LEVEL(PLAYER_GOOD,DWARVES,4,1)
				IF(PLAYER_GOOD,TOTAL_CREATURES <= 0)
					SET_TIMER(PLAYER0,TIMER5)
					QUICK_OBJECTIVE(8,"I can already hear the clanking of plate mail. Not long until the lord arrives too.",ALL_PLAYERS)
					IF(PLAYER0,TIMER5 >= 1000)
						SET_FLAG(PLAYER2,FLAG1,2)
						ADD_PARTY_TO_LEVEL(PLAYER_GOOD,LANDLORD,-1,1)
					ENDIF
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF

IF_CONTROLS(PLAYER_GOOD,TOTAL_CREATURES <= 0)
	IF(PLAYER2,FLAG0 == 2)
		DISPLAY_OBJECTIVE(31,ALL_PLAYERS)
		QUICK_OBJECTIVE(9,"The heroes seemed much more prepared but you still overcame. Well done, Keeper.",ALL_PLAYERS)
		WIN_GAME
	ENDIF
	IF(PLAYER2,FLAG1 == 2)
		QUICK_OBJECTIVE(10,"I'm impressed such a move paid off. Well done.",ALL_PLAYERS)
		PLAY_MESSAGE(PLAYER0,SOUND,159)
		ADD_OBJECT_TO_LEVEL(SPECBOX_TRANSFR,1,0)
		QUICK_INFORMATION(11,"Looks like the gods favour you. Use this gift wisely.",1)
		IF(PLAYER2,CAMPAIGN_FLAG0 == 0)
			SET_FLAG(PLAYER2,CAMPAIGN_FLAG0,2)
		ENDIF
		IF(PLAYER2,CAMPAIGN_FLAG0 == 1)
			SET_FLAG(PLAYER2,CAMPAIGN_FLAG0,3)
		ENDIF
		IF(PLAYER2,CAMPAIGN_FLAG0 == 4)
			SET_FLAG(PLAYER2,CAMPAIGN_FLAG0,6)
		ENDIF
		IF(PLAYER2,CAMPAIGN_FLAG0 == 5)
			SET_FLAG(PLAYER2,CAMPAIGN_FLAG0,7)
		ENDIF
		WIN_GAME
	ENDIF
ENDIF

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