REM # General Settings.
LEVEL_VERSION(1)
RUN_AFTER_VICTORY(1)

REM # Map Settings.
SET_GENERATE_SPEED(300)
START_MONEY(ALL_PLAYERS,3000)
REM # SET_HAND_RULE(PLAYER0,TIME_MAGE,RULE0,DENY,ALWAYS)
REM # SET_HAND_RULE(PLAYER1,TIME_MAGE,RULE0,DENY,ALWAYS)
SET_HAND_RULE(PLAYER0,HORNY,RULE0,DENY,ALWAYS)
SET_HAND_RULE(PLAYER1,HORNY,RULE0,DENY,ALWAYS)
HIDE_HERO_GATE(-1,1)
HIDE_HERO_GATE(-2,1)
HIDE_HERO_GATE(-3,1)
HIDE_HERO_GATE(-4,1)
HIDE_HERO_GATE(-5,1)
HIDE_HERO_GATE(-6,1)
HIDE_HERO_GATE(-7,1)
HIDE_HERO_GATE(-8,1)
SET_FLAG(PLAYER0,FLAG0,255)
SET_FLAG(PLAYER1,FLAG0,255)
SET_FLAG(PLAYER_GOOD,FLAG0,255)
SET_TIMER(PLAYER0,TIMER0)
SET_TIMER(PLAYER1,TIMER0)
SET_TIMER(PLAYER_GOOD,TIMER0)
SET_TIMER(PLAYER0,TIMER1)
SET_TIMER(PLAYER1,TIMER1)
SET_TIMER(PLAYER_GOOD,TIMER7)
DISPLAY_COUNTDOWN(PLAYER_GOOD,TIMER7,36000,1)

REM # Setup Game Rule.
SET_GAME_RULE(FoodGenerationSpeed,1200)
SET_GAME_RULE(DungeonHeartHealHealth,30000)
SET_GAME_RULE(ImpWorkExperience,1024)
SET_GAME_RULE(RoomSellGoldBackPercent,100)
SET_GAME_RULE(HungerHealthLoss,8)
SET_GAME_RULE(GameTurnsPerHungerHealthLoss,20)
SET_GAME_RULE(FoodHealthGain,30000)
SET_GAME_RULE(TortureHealthLoss,8)
SET_GAME_RULE(GameTurnsPerTortureHealthLoss,20)
SET_GAME_RULE(AlliesShareCta,1)
SET_GAME_RULE(AlliesShareDrop,1)
SET_GAME_RULE(AlliesShareVision,1)
SET_GAME_RULE(PlaceTrapsOnSubtiles,0)

REM # Room Configuration.
SET_ROOM_CONFIGURATION(DUNGEON_HEART,SymbolSprites,356,414)
SET_ROOM_CONFIGURATION(ENTRANCE,SymbolSprites,543,545)

REM # Door Configuration.
SET_DOOR_CONFIGURATION(SECRET,Crate,SPECBOX_CUSTOM)
SET_DOOR_CONFIGURATION(SECRET,ManufactureLevel,0)

REM # Alarm Trap Configuration (Spitfire Trap).
SET_TRAP_CONFIGURATION(ALARM,NameTextID,988)
SET_TRAP_CONFIGURATION(ALARM,TooltipTextID,988)
SET_TRAP_CONFIGURATION(ALARM,SymbolSprites,372,430)
SET_TRAP_CONFIGURATION(ALARM,PointerSprites,159)
SET_TRAP_CONFIGURATION(ALARM,Crate,SPECBOX_CUSTOM)
SET_TRAP_CONFIGURATION(ALARM,ManufactureLevel,0)
SET_TRAP_CONFIGURATION(ALARM,ManufactureRequired,18000)
SET_TRAP_CONFIGURATION(ALARM,Shots,1500)
SET_TRAP_CONFIGURATION(ALARM,TimeBetweenShots,8)
SET_TRAP_CONFIGURATION(ALARM,SellingValue,250)
SET_TRAP_CONFIGURATION(ALARM,Model,844)
SET_TRAP_CONFIGURATION(ALARM,TriggerType,3)
SET_TRAP_CONFIGURATION(ALARM,ActivationType,5)
SET_TRAP_CONFIGURATION(ALARM,EffectType,7)
SET_TRAP_CONFIGURATION(ALARM,Hidden,0)
SET_TRAP_CONFIGURATION(ALARM,Slappable,0)
SET_TRAP_CONFIGURATION(ALARM,Destructible,0)
SET_TRAP_CONFIGURATION(ALARM,PlaceOnBridge,1)
SET_TRAP_CONFIGURATION(ALARM,PlaceOnSubtile,0)
SET_TRAP_CONFIGURATION(ALARM,Health,128)
SET_TRAP_CONFIGURATION(ALARM,ThingSize,128,256)
SET_TRAP_CONFIGURATION(ALARM,HitType,4)

REM # Lava Trap Configuration.
SET_TRAP_CONFIGURATION(LAVA,Crate,SPECBOX_CUSTOM)
SET_TRAP_CONFIGURATION(LAVA,ManufactureLevel,0)
SET_TRAP_CONFIGURATION(LAVA,ManufactureRequired,18000)
SET_TRAP_CONFIGURATION(LAVA,SellingValue,125)

REM # Boulder Trap Configuration.
SET_TRAP_CONFIGURATION(BOULDER,Crate,SPECBOX_CUSTOM)
SET_TRAP_CONFIGURATION(BOULDER,ManufactureLevel,0)

REM # TNT Trap Configuration.
SET_TRAP_CONFIGURATION(TNT,Crate,SPECBOX_CUSTOM)
SET_TRAP_CONFIGURATION(TNT,ManufactureLevel,0)

REM # Creature's Pool.
ADD_CREATURE_TO_POOL(IMP,255)

REM # Creature's Availablity.
CREATURE_AVAILABLE(ALL_PLAYERS,IMP,1,255)

REM # Research Order List.
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_OBEY,12500)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_HOLD_AUDIENCE,25000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_TIME_BOMB,37500)
RESEARCH_ORDER(ALL_PLAYERS,ROOM,BRIDGE,50000)
RESEARCH_ORDER(ALL_PLAYERS,MAGIC,POWER_ARMAGEDDON,100000)

REM # Keeper's Rooms Availablity.
ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,TREASURE,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,TRAINING,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,WORKSHOP,1,1)
ROOM_AVAILABLE(ALL_PLAYERS,BRIDGE,1,0)

REM # Keeper's Powers Availablity.
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_OBEY,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HOLD_AUDIENCE,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_TIME_BOMB,1,0)
MAGIC_AVAILABLE(ALL_PLAYERS,POWER_ARMAGEDDON,1,0)

REM # Keeper's Doors Availablity.
DOOR_AVAILABLE(ALL_PLAYERS,SECRET,1,0)

REM # Keeper's Traps Availablity.
TRAP_AVAILABLE(ALL_PLAYERS,ALARM,1,10)
TRAP_AVAILABLE(ALL_PLAYERS,LAVA,1,10)
TRAP_AVAILABLE(ALL_PLAYERS,BOULDER,1,1)
TRAP_AVAILABLE(ALL_PLAYERS,TNT,1,3)

REM # Set tooltip for Unholy Gift.
SET_BOX_TOOLTIP(0,"Unholy Gift")
SET_BOX_TOOLTIP(100,"Trigger Armageddon...?")
SET_BOX_TOOLTIP(101,"Are you sure about this?")
SET_BOX_TOOLTIP(102,"There is no coming back!")

REM # Unholy Gift Random Event.
IF(PLAYER0,BOX0_ACTIVATED > 0)
	NEXT_COMMAND_REUSABLE
	USE_POWER_AT_LOCATION(PLAYER0,LAST_EVENT,POWER_IMP,1,1)
	NEXT_COMMAND_REUSABLE
	RANDOMISE_FLAG(PLAYER0,BOX1_ACTIVATED,8)
	IF(PLAYER0,BOX1_ACTIVATED == 1)
		PLAY_MESSAGE(PLAYER0,SPEECH,93)
		NEXT_COMMAND_REUSABLE
		KILL_CREATURE(PLAYER1,IMP,LEAST_EXPERIENCED,1)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER0,BOX1_ACTIVATED == 2)
		PLAY_MESSAGE(PLAYER0,SPEECH,94)
		NEXT_COMMAND_REUSABLE
		KILL_CREATURE(PLAYER_GOOD,DWARFA,MOST_EXPERIENCED,1)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER0,BOX1_ACTIVATED == 3)
		PLAY_MESSAGE(PLAYER0,SPEECH,96)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER0,BOX3_ACTIVATED,6)
		IF(PLAYER0,BOX3_ACTIVATED == 1)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER0,SOUND,94)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER0,BOX3_ACTIVATED == 2)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER0,SOUND,95)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER0,BOX3_ACTIVATED == 3)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER0,SOUND,96)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER0,BOX3_ACTIVATED == 4)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER0,SOUND,97)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER0,BOX3_ACTIVATED == 5)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER0,SOUND,98)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER0,BOX3_ACTIVATED == 6)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER0,SOUND,99)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
	ENDIF
	IF(PLAYER0,BOX1_ACTIVATED == 4)
		PLAY_MESSAGE(PLAYER0,SPEECH,95)
		NEXT_COMMAND_REUSABLE
		LEVEL_UP_CREATURE(PLAYER0,IMP,LEAST_EXPERIENCED,8)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER0,BOX1_ACTIVATED == 5)
		PLAY_MESSAGE(PLAYER0,SPEECH,98)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURES_ANNOYANCE(ALL_PLAYERS,IMP,INCREASE,6000)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER0,BOX1_ACTIVATED == 6)
		PLAY_MESSAGE(PLAYER0,SPEECH,92)
		NEXT_COMMAND_REUSABLE
		USE_SPELL_ON_PLAYERS_CREATURES(ALL_PLAYERS,IMP,SPELL_CHICKEN,9)
		NEXT_COMMAND_REUSABLE
		USE_SPELL_ON_PLAYERS_CREATURES(PLAYER_GOOD,DWARFA,SPELL_CHICKEN,9)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER0,BOX1_ACTIVATED == 7)
		PLAY_MESSAGE(PLAYER0,SPEECH,117)
		IF(PLAYER_GOOD,TIME_MAGE > 0)
			NEXT_COMMAND_REUSABLE
			KILL_CREATURE(PLAYER_GOOD,TIME_MAGE,MOST_EXPERIENCED,1)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER_GOOD,TIME_MAGE < 1)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TIME_MAGE,LAST_EVENT,1,10,0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
	ENDIF
	IF(PLAYER0,BOX1_ACTIVATED == 8)
		PLAY_MESSAGE(PLAYER0,SPEECH,116)
		IF(PLAYER1,HORNY > 0)
			NEXT_COMMAND_REUSABLE
			KILL_CREATURE(PLAYER1,HORNY,MOST_EXPERIENCED,1)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER1,HORNY < 1)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER1,HORNY,LAST_EVENT,1,10,0)
			NEXT_COMMAND_REUSABLE
			CHANGE_CREATURES_ANNOYANCE(PLAYER1,HORNY,INCREASE,32767)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER0,BOX0_ACTIVATED,0)
		ENDIF
	ENDIF
ENDIF
IF(PLAYER1,BOX0_ACTIVATED > 0)
	NEXT_COMMAND_REUSABLE
	USE_POWER_AT_LOCATION(PLAYER1,LAST_EVENT,POWER_IMP,1,1)
	NEXT_COMMAND_REUSABLE
	RANDOMISE_FLAG(PLAYER1,BOX1_ACTIVATED,8)
	IF(PLAYER1,BOX1_ACTIVATED == 1)
		PLAY_MESSAGE(PLAYER1,SPEECH,93)
		NEXT_COMMAND_REUSABLE
		KILL_CREATURE(PLAYER0,IMP,LEAST_EXPERIENCED,1)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER1,BOX1_ACTIVATED == 2)
		PLAY_MESSAGE(PLAYER1,SPEECH,94)
		NEXT_COMMAND_REUSABLE
		KILL_CREATURE(PLAYER_GOOD,DWARFA,MOST_EXPERIENCED,1)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER1,BOX1_ACTIVATED == 3)
		PLAY_MESSAGE(PLAYER1,SPEECH,96)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER1,BOX3_ACTIVATED,6)
		IF(PLAYER1,BOX3_ACTIVATED == 1)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER1,SOUND,94)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER1,BOX3_ACTIVATED == 2)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER1,SOUND,95)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER1,BOX3_ACTIVATED == 3)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER1,SOUND,96)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER1,BOX3_ACTIVATED == 4)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER1,SOUND,97)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER1,BOX3_ACTIVATED == 5)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER1,SOUND,98)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER1,BOX3_ACTIVATED == 6)
			NEXT_COMMAND_REUSABLE
			PLAY_MESSAGE(PLAYER1,SOUND,99)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
	ENDIF
	IF(PLAYER1,BOX1_ACTIVATED == 4)
		PLAY_MESSAGE(PLAYER1,SPEECH,95)
		NEXT_COMMAND_REUSABLE
		LEVEL_UP_CREATURE(PLAYER1,IMP,LEAST_EXPERIENCED,8)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER1,BOX1_ACTIVATED == 5)
		PLAY_MESSAGE(PLAYER1,SPEECH,98)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURES_ANNOYANCE(ALL_PLAYERS,IMP,INCREASE,6000)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER1,BOX1_ACTIVATED == 6)
		PLAY_MESSAGE(PLAYER1,SPEECH,92)
		NEXT_COMMAND_REUSABLE
		USE_SPELL_ON_PLAYERS_CREATURES(ALL_PLAYERS,IMP,SPELL_CHICKEN,9)
		NEXT_COMMAND_REUSABLE
		USE_SPELL_ON_PLAYERS_CREATURES(PLAYER_GOOD,DWARFA,SPELL_CHICKEN,9)
		NEXT_COMMAND_REUSABLE
		SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
	ENDIF
	IF(PLAYER1,BOX1_ACTIVATED == 7)
		PLAY_MESSAGE(PLAYER1,SPEECH,117)
		IF(PLAYER_GOOD,TIME_MAGE > 0)
			NEXT_COMMAND_REUSABLE
			KILL_CREATURE(PLAYER_GOOD,TIME_MAGE,MOST_EXPERIENCED,1)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER_GOOD,TIME_MAGE < 1)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TIME_MAGE,LAST_EVENT,1,10,0)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
	ENDIF
	IF(PLAYER1,BOX1_ACTIVATED == 8)
		PLAY_MESSAGE(PLAYER1,SPEECH,116)
		IF(PLAYER0,HORNY > 0)
			NEXT_COMMAND_REUSABLE
			KILL_CREATURE(PLAYER0,HORNY,MOST_EXPERIENCED,1)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
		IF(PLAYER0,HORNY < 1)
			NEXT_COMMAND_REUSABLE
			ADD_CREATURE_TO_LEVEL(PLAYER0,HORNY,LAST_EVENT,1,10,0)
			NEXT_COMMAND_REUSABLE
			CHANGE_CREATURES_ANNOYANCE(PLAYER0,HORNY,INCREASE,32767)
			NEXT_COMMAND_REUSABLE
			SET_FLAG(PLAYER1,BOX0_ACTIVATED,0)
		ENDIF
	ENDIF
ENDIF

REM # Armageddon Box Event.
IF(PLAYER0,BOX100_ACTIVATED > 0)
	ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM,LAST_EVENT,101)
ENDIF
IF(PLAYER0,BOX101_ACTIVATED > 0)
	ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM,LAST_EVENT,102)
ENDIF
IF(PLAYER0,BOX102_ACTIVATED > 0)
	USE_POWER(PLAYER0,POWER_ARMAGEDDON,1)
	SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,EffectModel,EFFECTELEMENT_LAVA_FLAME_STATIONARY)
	SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMin,10)
	SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMax,20)
ENDIF
IF(PLAYER1,BOX100_ACTIVATED > 0)
	ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM,LAST_EVENT,101)
ENDIF
IF(PLAYER1,BOX101_ACTIVATED > 0)
	ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM,LAST_EVENT,102)
ENDIF
IF(PLAYER1,BOX102_ACTIVATED > 0)
	USE_POWER(PLAYER1,POWER_ARMAGEDDON,1)
	SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,EffectModel,EFFECTELEMENT_LAVA_FLAME_STATIONARY)
	SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMin,10)
	SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMax,20)
ENDIF

REM # Compute Flag.
IF(PLAYER_GOOD,GAME_TURN >= 100)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER0,FLAG0,20)
	NEXT_COMMAND_REUSABLE
	COMPUTE_FLAG(PLAYER0,FLAG0,MULTIPLY,PLAYER0,IMP,0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER1,FLAG0,20)
	NEXT_COMMAND_REUSABLE
	COMPUTE_FLAG(PLAYER1,FLAG0,MULTIPLY,PLAYER1,IMP,0)
	NEXT_COMMAND_REUSABLE
	SET_FLAG(PLAYER_GOOD,FLAG0,20)
	NEXT_COMMAND_REUSABLE
	COMPUTE_FLAG(PLAYER_GOOD,FLAG0,MULTIPLY,PLAYER_GOOD,DWARFA,0)
ENDIF

REM # Loop for PLAYER0.
IF(PLAYER0,DUNGEON_DESTROYED == 0)
	IF_AVAILABLE(PLAYER0,POWER_ARMAGEDDON > 0)
		ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM,PLAYER0,100)
	ENDIF
	IF(PLAYER0,TIMER0 >= PLAYER0,FLAG0)
		IF(PLAYER0,IMP < 50)
			NEXT_COMMAND_REUSABLE
			USE_POWER_ON_CREATURE(PLAYER0,TIME_MAGE,ANYWHERE,PLAYER0,POWER_IMP,1,1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER0,IMP,LEAST_EXPERIENCED,1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER0,IMP,LEAST_EXPERIENCED,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER0,TIMER0)
		ENDIF
	ENDIF
	IF(PLAYER0,IMP > 49)
		IF(PLAYER1,IMP < 49)
			NEXT_COMMAND_REUSABLE
			CHANGE_CREATURE_OWNER(PLAYER0,IMP,LEAST_EXPERIENCED,PLAYER1)
		ENDIF
		IF(PLAYER1,IMP > 48)
			NEXT_COMMAND_REUSABLE
			CHANGE_CREATURE_OWNER(PLAYER0,IMP,LEAST_EXPERIENCED,PLAYER_GOOD)
		ENDIF
	ENDIF
	IF(PLAYER0,DWARFA > 0)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURE_OWNER(PLAYER0,DWARFA,LEAST_EXPERIENCED,PLAYER_GOOD)
		NEXT_COMMAND_REUSABLE
		LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
		NEXT_COMMAND_REUSABLE
		USE_POWER_ON_CREATURE(PLAYER0,TIME_MAGE,ANYWHERE,PLAYER0,POWER_IMP,1,1)
		NEXT_COMMAND_REUSABLE
		LEVEL_UP_CREATURE(PLAYER0,IMP,LEAST_EXPERIENCED,1)
		NEXT_COMMAND_REUSABLE
		ADD_TO_FLAG(PLAYER_GOOD,BOX150_ACTIVATED,1)
	ENDIF
	IF(PLAYER0,TIME_MAGE < 1)
		SET_GAME_RULE(DungeonHeartHealHealth,0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,PLAYER0,8,10,0)
		NEXT_COMMAND_REUSABLE
		KILL_CREATURE(PLAYER0,IMP,ANYWHERE,255)
	ENDIF
	IF(PLAYER0,TIMER1 >= 20)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURES_ANNOYANCE(PLAYER0,IMP,INCREASE,20)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURES_ANNOYANCE(PLAYER0,TIME_MAGE,INCREASE,8)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER0,TIMER1)
	ENDIF
ENDIF

REM # Loop for PLAYER1.
IF(PLAYER1,DUNGEON_DESTROYED == 0)
	IF_AVAILABLE(PLAYER1,POWER_ARMAGEDDON > 0)
		ADD_OBJECT_TO_LEVEL(SPECBOX_CUSTOM,PLAYER1,100)
	ENDIF
	IF(PLAYER1,TIMER0 >= PLAYER1,FLAG0)
		IF(PLAYER1,IMP < 50)
			NEXT_COMMAND_REUSABLE
			USE_POWER_ON_CREATURE(PLAYER1,TIME_MAGE,ANYWHERE,PLAYER1,POWER_IMP,1,1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER1,IMP,LEAST_EXPERIENCED,1)
			NEXT_COMMAND_REUSABLE
			LEVEL_UP_CREATURE(PLAYER1,IMP,LEAST_EXPERIENCED,1)
			NEXT_COMMAND_REUSABLE
			SET_TIMER(PLAYER1,TIMER0)
		ENDIF
	ENDIF
	IF(PLAYER1,IMP > 49)
		IF(PLAYER0,IMP < 49)
			NEXT_COMMAND_REUSABLE
			CHANGE_CREATURE_OWNER(PLAYER1,IMP,LEAST_EXPERIENCED,PLAYER0)
		ENDIF
		IF(PLAYER0,IMP > 48)
			NEXT_COMMAND_REUSABLE
			CHANGE_CREATURE_OWNER(PLAYER1,IMP,LEAST_EXPERIENCED,PLAYER_GOOD)
		ENDIF
	ENDIF
	IF(PLAYER1,DWARFA > 0)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURE_OWNER(PLAYER1,DWARFA,LEAST_EXPERIENCED,PLAYER_GOOD)
		NEXT_COMMAND_REUSABLE
		LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
		NEXT_COMMAND_REUSABLE
		USE_POWER_ON_CREATURE(PLAYER1,TIME_MAGE,ANYWHERE,PLAYER1,POWER_IMP,1,1)
		NEXT_COMMAND_REUSABLE
		LEVEL_UP_CREATURE(PLAYER1,IMP,LEAST_EXPERIENCED,1)
		NEXT_COMMAND_REUSABLE
		ADD_TO_FLAG(PLAYER_GOOD,BOX150_ACTIVATED,1)
	ENDIF
	IF(PLAYER1,TIME_MAGE < 1)
		SET_GAME_RULE(DungeonHeartHealHealth,0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,PLAYER1,8,10,0)
		NEXT_COMMAND_REUSABLE
		KILL_CREATURE(PLAYER1,IMP,ANYWHERE,255)
	ENDIF
	IF(PLAYER1,TIMER1 >= 20)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURES_ANNOYANCE(PLAYER1,IMP,INCREASE,20)
		NEXT_COMMAND_REUSABLE
		CHANGE_CREATURES_ANNOYANCE(PLAYER1,TIME_MAGE,INCREASE,8)
		NEXT_COMMAND_REUSABLE
		SET_TIMER(PLAYER1,TIMER1)
	ENDIF
ENDIF

REM # Spawn more Imps for player GOOD and make them stronger.
IF(PLAYER_GOOD,TIMER0 >= PLAYER_GOOD,FLAG0)
	IF(PLAYER_GOOD,TIMER7 < 36000)
		NEXT_COMMAND_REUSABLE
		RANDOMISE_FLAG(PLAYER_GOOD,BOX255_ACTIVATED,8)
		IF(PLAYER_GOOD,DWARFA < PLAYER_GOOD,BOX150_ACTIVATED)
			NEXT_COMMAND_REUSABLE
			RANDOMISE_FLAG(PLAYER_GOOD,BOX255_ACTIVATED,8)
			IF(PLAYER_GOOD,IMP < 1)
				NEXT_COMMAND_REUSABLE
				RANDOMISE_FLAG(PLAYER_GOOD,BOX255_ACTIVATED,8)
				IF(PLAYER_GOOD,BOX255_ACTIVATED == 1)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-1,1,1,0)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER_GOOD,TIMER0)
				ENDIF
				IF(PLAYER_GOOD,BOX255_ACTIVATED == 2)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-2,1,1,0)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER_GOOD,TIMER0)
				ENDIF
				IF(PLAYER_GOOD,BOX255_ACTIVATED == 3)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-3,1,1,0)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER_GOOD,TIMER0)
				ENDIF
				IF(PLAYER_GOOD,BOX255_ACTIVATED == 4)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-4,1,1,0)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER_GOOD,TIMER0)
				ENDIF
				IF(PLAYER_GOOD,BOX255_ACTIVATED == 5)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-5,1,1,0)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER_GOOD,TIMER0)
				ENDIF
				IF(PLAYER_GOOD,BOX255_ACTIVATED == 6)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-6,1,1,0)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER_GOOD,TIMER0)
				ENDIF
				IF(PLAYER_GOOD,BOX255_ACTIVATED == 7)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-7,1,1,0)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER_GOOD,TIMER0)
				ENDIF
				IF(PLAYER_GOOD,BOX255_ACTIVATED == 8)
					NEXT_COMMAND_REUSABLE
					ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,DWARFA,-8,1,1,0)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					LEVEL_UP_CREATURE(PLAYER_GOOD,DWARFA,LEAST_EXPERIENCED,1)
					NEXT_COMMAND_REUSABLE
					SET_TIMER(PLAYER_GOOD,TIMER0)
				ENDIF
			ENDIF
		ENDIF
	ENDIF
ENDIF

REM # Initial Objective.
QUICK_OBJECTIVE(0,"Yo, listen up, losers! This wicked world is packed with twisted surprises - even Santa Claus has bizarrely jumped on board. But beware, if jolly ol' Santa bites the dust, game over! The Dungeon Heart is almost indestructible, so good luck tryna wreck it. To triumph, you gotta beat the competition with your puny prinnies by snaggin' the most land. Oh, and there's a ticking clock too! So whoever claims the most terrain walks away with the sweet victory. Time to get your evil game face on!",ALL_PLAYERS)

REM # Win Condition.
IF(PLAYER_GOOD,TIMER7 >= 36000)
	SET_GAME_RULE(DungeonHeartHealHealth,0)
	NEXT_COMMAND_REUSABLE
	KILL_CREATURE(PLAYER0,IMP,ANYWHERE,255)
	NEXT_COMMAND_REUSABLE
	KILL_CREATURE(PLAYER1,IMP,ANYWHERE,255)
	NEXT_COMMAND_REUSABLE
	KILL_CREATURE(PLAYER_GOOD,IMP,ANYWHERE,255)
	NEXT_COMMAND_REUSABLE
	KILL_CREATURE(PLAYER_GOOD,DWARFA,ANYWHERE,255)
	IF(PLAYER0,TOTAL_AREA > PLAYER1,TOTAL_AREA)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,PLAYER1,8,10,0)
		KILL_CREATURE(PLAYER1,TIME_MAGE,ANYWHERE,255)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,EffectModel,EFFECTELEMENT_LAVA_FLAME_STATIONARY)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMin,10)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMax,20)
	ENDIF
	IF(PLAYER1,TOTAL_AREA > PLAYER0,TOTAL_AREA)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,PLAYER0,8,10,0)
		KILL_CREATURE(PLAYER0,TIME_MAGE,ANYWHERE,255)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,EffectModel,EFFECTELEMENT_LAVA_FLAME_STATIONARY)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMin,10)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMax,20)
	ENDIF
	IF(PLAYER0,TOTAL_AREA == PLAYER1,TOTAL_AREA)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,PLAYER0,8,10,0)
		ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,HORNY,PLAYER1,8,10,0)
		KILL_CREATURE(PLAYER0,TIME_MAGE,ANYWHERE,255)
		KILL_CREATURE(PLAYER1,TIME_MAGE,ANYWHERE,255)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,EffectModel,EFFECTELEMENT_LAVA_FLAME_STATIONARY)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMin,10)
		SET_EFFECT_GENERATOR_CONFIGURATION(EFFECTGENERATOR_DRIPPING_WATER,GenerationDelayMax,20)
	ENDIF
ENDIF
IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1)
	WIN_GAME
ENDIF
IF(PLAYER1,ALL_DUNGEONS_DESTROYED == 1)
	WIN_GAME
ENDIF