REM ******************************************** REM REM Script for Level 5 REM Deadly Desires REM REM The last "trainer" level of Desolate REM Realms, not too difficult IF done correctly! REM Here we finally hear a hint about the REM Great Keeper Andra, who is believed to be REM one of the first generation keepers to have REM spawned after the fall of the Ancient REM Keepers. You are seeking her out for many REM reasons, a nice date in a suitably foul REM hatchery being only one of them :) REM REM v1.5 - Added 2 hornies to attack party, REM created new kill party, and fixed REM PLAYER2 AI to general *again* (was REM aggressive) REM REM v1.6 - Added further refinements to REM to attempt to stop crashing from REM overload and to speed up game play - REM long levels are nice but this is REM RIDICULOUS! Changed PLAYER2 back to REM aggressive to test. Added yellow heart. REM REM v1.7 - Basically rethought the whole map REM yet again. REM REM ******************************************** SET_GENERATE_SPEED(700) COMPUTER_PLAYER(PLAYER1,0) COMPUTER_PLAYER(PLAYER2,1) COMPUTER_PLAYER(PLAYER3,0) SET_COMPUTER_CHECKS(PLAYER1,"CHECK FOR NEUTRAL PLACES",15000,0,0,0,195000) SET_COMPUTER_CHECKS(PLAYER2,"CHECK FOR NEUTRAL PLACES",15000,0,0,0,195000) START_MONEY(PLAYER0, 7000) START_MONEY(PLAYER1, 20000) START_MONEY(PLAYER2, 50000) START_MONEY(PLAYER3, 0) MAX_CREATURES(PLAYER0, 15) MAX_CREATURES(PLAYER1, 30) MAX_CREATURES(PLAYER2, 30) MAX_CREATURES(PLAYER3, 0) ADD_CREATURE_TO_POOL(TROLL, 40) ADD_CREATURE_TO_POOL(DRAGON, 20) ADD_CREATURE_TO_POOL(DARK_MISTRESS, 15) ADD_CREATURE_TO_POOL(BILE_DEMON, 20) ADD_CREATURE_TO_POOL(SORCEROR, 10) ADD_CREATURE_TO_POOL(BARBARIAN, 10) ADD_CREATURE_TO_POOL(VAMPIRE, 10) CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,1) CREATURE_AVAILABLE(ALL_PLAYERS,DRAGON,1,1) CREATURE_AVAILABLE(ALL_PLAYERS,DARK_MISTRESS,1,1) CREATURE_AVAILABLE(ALL_PLAYERS,BILE_DEMON,1,1) CREATURE_AVAILABLE(PLAYER0,SORCEROR,1,1) CREATURE_AVAILABLE(PLAYER1,SORCEROR,1,1) CREATURE_AVAILABLE(ALL_PLAYERS,BARBARIAN,1,1) ROOM_AVAILABLE(PLAYER0,TREASURE,1,1) ROOM_AVAILABLE(ALL_PLAYERS,RESEARCH,1,1) ROOM_AVAILABLE(ALL_PLAYERS,GARDEN,1,1) ROOM_AVAILABLE(ALL_PLAYERS,LAIR,1,1) ROOM_AVAILABLE(ALL_PLAYERS,TRAINING,1,1) ROOM_AVAILABLE(ALL_PLAYERS,TORTURE,1,0) ROOM_AVAILABLE(ALL_PLAYERS,PRISON,1,0) ROOM_AVAILABLE(ALL_PLAYERS,TEMPLE,1,0) ROOM_AVAILABLE(ALL_PLAYERS,GUARD_POST,1,0) ROOM_AVAILABLE(PLAYER2,GRAVEYARD,1,0) ROOM_AVAILABLE(PLAYER0,BRIDGE,1,0) ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0) DOOR_AVAILABLE(ALL_PLAYERS,STEEL,1,0) DOOR_AVAILABLE(ALL_PLAYERS,MAGIC,1,0) TRAP_AVAILABLE(PLAYER0,BOULDER,1,0) TRAP_AVAILABLE(PLAYER0,WORD_OF_POWER,1,0) MAGIC_AVAILABLE(ALL_PLAYERS,POWER_IMP,1,1) MAGIC_AVAILABLE(ALL_PLAYERS,POWER_HEAL_CREATURE,1,0) MAGIC_AVAILABLE(ALL_PLAYERS,POWER_CALL_TO_ARMS,1,0) MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SPEED,1,0) MAGIC_AVAILABLE(ALL_PLAYERS,POWER_SIGHT,1,0) MAGIC_AVAILABLE(PLAYER1,POWER_LIGHTNING,1,0) CREATE_PARTY(GUARDS) ADD_TO_PARTY(GUARDS,ARCHER,10,500,ATTACK_ENEMIES,0) ADD_TO_PARTY(GUARDS,ARCHER,10,500,ATTACK_ENEMIES,0) ADD_TO_PARTY(GUARDS,ARCHER,10,500,ATTACK_ENEMIES,0) CREATE_PARTY(DOORKILLERS) ADD_TO_PARTY(DOORKILLERS,GIANT,10,128,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(DOORKILLERS,GIANT,10,128,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(DOORKILLERS,GIANT,10,128,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(KILLYELLOW) ADD_TO_PARTY(KILLYELLOW,HORNY,10,5000,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(KILLYELLOW,HORNY,10,5000,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(KILLYELLOW,HORNY,10,5000,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(KILLYELLOW,HORNY,10,5000,ATTACK_DUNGEON_HEART,0) REM Initialize fields for archer spawning SET_FLAG(PLAYER0,FLAG0,0) SET_TIMER(PLAYER0,TIMER0) REM Standard start messages DISPLAY_OBJECTIVE(20,PLAYER0) IF(PLAYER0, GAME_TURN >= 1000) DISPLAY_OBJECTIVE(21,PLAYER0) ENDIF REM Spawn archers until player reaches AP4 REM Limited to 20 archers to avoid taking forever to play (9 already on map) IF(PLAYER0,FLAG0 < 1) IF(PLAYER0, TIMER0 >= 2000) IF(PLAYER_GOOD,ARCHER < 29) NEXT_COMMAND_REUSABLE ADD_PARTY_TO_LEVEL(PLAYER_GOOD,GUARDS,1,1) NEXT_COMMAND_REUSABLE SET_TIMER(PLAYER0,TIMER0) ENDIF ENDIF ENDIF REM Stop archers, tell player about Andra's Dungeon IF_ACTION_POINT(4,PLAYER0) DISPLAY_OBJECTIVE(27, PLAYER0) SET_FLAG(PLAYER0,FLAG0,1) ENDIF REM Andra's dungeon claimed too soon, pump up PLAYER2 IF_ACTION_POINT(2,PLAYER0) IF(PLAYER_GOOD,KNIGHT!=0) IF(PLAYER2,DUNGEON_DESTROYED!=1) DISPLAY_OBJECTIVE(22,PLAYER0) ADD_PARTY_TO_LEVEL(PLAYER_GOOD,KILLYELLOW,6,1) SET_TIMER(PLAYER2,TIMER0) ROOM_AVAILABLE(PLAYER2,SCAVENGER,1,1) MAGIC_AVAILABLE(PLAYER2,POWER_LIGHTNING,1,1) MAGIC_AVAILABLE(PLAYER2,POWER_DISEASE,1,1) MAGIC_AVAILABLE(PLAYER2,POWER_CHICKEN,1,1) CREATURE_AVAILABLE(PLAYER2,VAMPIRE,1,1) ENDIF ENDIF ENDIF REM Connect scavenger room to green player's dungeon IF(PLAYER2, TIMER0 >= 300) ADD_TUNNELLER_TO_LEVEL(PLAYER_GOOD,-1,DUNGEON_HEART,PLAYER2,3,0) ENDIF REM Destroy yellow heart if other dungeons destroyed, knights gone IF(PLAYER1,DUNGEON_DESTROYED==1) IF(PLAYER2,DUNGEON_DESTROYED==1) IF(PLAYER_GOOD, KNIGHT==0) IF(PLAYER3,DUNGEON_DESTROYED!=1) DISPLAY_OBJECTIVE(51,PLAYER0) ADD_PARTY_TO_LEVEL(PLAYER_GOOD,KILLYELLOW,6,1) ENDIF ENDIF ENDIF ENDIF IF(PLAYER0,ALL_DUNGEONS_DESTROYED == 1) IF(PLAYER_GOOD, KNIGHT==0) DISPLAY_OBJECTIVE(25,PLAYER0) WIN_GAME ENDIF ENDIF REM Congratulate the player on his superbly evil scavenging IF(PLAYER0,CREATURES_SCAVENGED_GAINED >= 1) DISPLAY_OBJECTIVE(26,PLAYER0) ENDIF REM Tell player about the lord who banished Andra IF_ACTION_POINT(5,PLAYER0) DISPLAY_OBJECTIVE(28,PLAYER0) ENDIF REM spawn parties to open up AI dungeons and give AIs the bridge IF_ACTION_POINT(8,PLAYER0) DISPLAY_OBJECTIVE(24,PLAYER0) ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,DOORKILLERS,-2,ACTION_POINT,3,9,100) ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,DOORKILLERS,-3,ACTION_POINT,7,9,100) ROOM_AVAILABLE(PLAYER1,BRIDGE,1,1) ROOM_AVAILABLE(PLAYER2,BRIDGE,1,1) ENDIF