REM **************************************************************************** REM Campaigns Consolidation Project for KeeperFX strategy game. REM **************************************************************************** REM Script for Level Swedish spirit (心技体) REM Campaign: Twin Keepers REM Authors: Original author unknown REM KeeperFX CCP Team REM Date: 04 Jul 2005 - 20 Jan 2011 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 **************************************************************************** START_MONEY(PLAYER0,10000) SET_GENERATE_SPEED(100) REM Waves selection flag state machine (PLAYER0,FLAG0): REM state 0 - fate undecided REM state 1 - starting waves; when an entrance is claimed, waves are beginning REM there are 5 waves with last one repeating infinitely, plus continuous fairies wave REM state can be changed to "1" by claiming guard post REM state 2 - temporary silence; no timer-controlled waves are triggered REM state can be changed to "2" by claiming second entrance REM state 3 - continuously spawn thieves REM state can be changed to "3" if proximity of hero heart is reached REM state 4 - final hero partys sequence SET_FLAG(PLAYER0,FLAG0,0) REM The timers (PLAYER_GOOD,TIMER0), (PLAYER_GOOD,TIMER1) and (PLAYER_GOOD,TIMER2) are used for state machine states REM Timer (PLAYER_GOOD,TIMER4) is used as state-independent thieves releaser REM Timer (PLAYER_GOOD,TIMER3) is used as state-independent fairies releaser MAX_CREATURES(PLAYER0,0) ADD_CREATURE_TO_POOL(BUG,20) ADD_CREATURE_TO_POOL(TROLL,20) ADD_CREATURE_TO_POOL(DRAGON,7) ADD_CREATURE_TO_POOL(DEMONSPAWN,15) ADD_CREATURE_TO_POOL(SORCEROR,20) ADD_CREATURE_TO_POOL(BILE_DEMON,7) ADD_CREATURE_TO_POOL(SPIDER,20) ADD_CREATURE_TO_POOL(ORC,20) ADD_CREATURE_TO_POOL(TENTACLE,15) ADD_CREATURE_TO_POOL(HELL_HOUND,15) ROOM_AVAILABLE(PLAYER0,TREASURE,1,1) ROOM_AVAILABLE(PLAYER0,LAIR,1,1) ROOM_AVAILABLE(PLAYER0,GARDEN,1,1) ROOM_AVAILABLE(PLAYER0,TRAINING,1,1) REM Library will be only available in one case, so research availability may be placed here MAGIC_AVAILABLE(PLAYER0,POWER_HOLD_AUDIENCE,1,0) MAGIC_AVAILABLE(PLAYER0,POWER_HEAL_CREATURE,1,0) MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,0) MAGIC_AVAILABLE(PLAYER0,POWER_PROTECT,1,0) MAGIC_AVAILABLE(PLAYER0,POWER_CONCEAL,1,0) MAGIC_AVAILABLE(PLAYER0,POWER_CHICKEN,1,0) MAGIC_AVAILABLE(PLAYER0,POWER_DISEASE,1,0) MAGIC_AVAILABLE(PLAYER0,POWER_LIGHTNING,1,0) MAGIC_AVAILABLE(PLAYER0,POWER_CAVE_IN,1,0) REM Workshop will be only available in one case, so manufacture availability may be placed here DOOR_AVAILABLE(PLAYER0,BRACED,1,0) DOOR_AVAILABLE(PLAYER0,STEEL,1,0) TRAP_AVAILABLE(PLAYER0,ALARM,1,0) TRAP_AVAILABLE(PLAYER0,POISON_GAS,1,0) TRAP_AVAILABLE(PLAYER0,LIGHTNING,1,0) TRAP_AVAILABLE(PLAYER0,WORD_OF_POWER,1,0) TRAP_AVAILABLE(PLAYER0,BOULDER,1,0) CREATE_PARTY(STRONGEST_PARTY) ADD_TO_PARTY(STRONGEST_PARTY,AVATAR,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(STRONGEST_PARTY,KNIGHT,10,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(STRONGEST_PARTY,KNIGHT,10,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(STRONGEST_PARTY,WIZARD,10,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(STRONGEST_PARTY,WIZARD,10,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(RANGED_PARTY2) ADD_TO_PARTY(RANGED_PARTY2,WIZARD,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(RANGED_PARTY2,SAMURAI,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(RANGED_PARTY2,ARCHER,10,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(RANGED_PARTY2,WITCH,9,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY3) ADD_TO_PARTY(PARTY3,KNIGHT,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY3,KNIGHT,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY3,KNIGHT,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY3,KNIGHT,6,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY4) ADD_TO_PARTY(PARTY4,GIANT,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY4,GIANT,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY4,MONK,7,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY5) ADD_TO_PARTY(PARTY5,DWARFA,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY5,DWARFA,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY5,WITCH,6,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY6) ADD_TO_PARTY(PARTY6,BARBARIAN,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY6,BARBARIAN,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY6,WIZARD,9,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY7) ADD_TO_PARTY(PARTY7,SAMURAI,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY7,SAMURAI,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY7,FAIRY,9,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY8) ADD_TO_PARTY(PARTY8,THIEF,9,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY8,THIEF,9,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY8,ARCHER,8,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY9) ADD_TO_PARTY(PARTY9,BARBARIAN,7,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY9,WIZARD,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY9,SAMURAI,7,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY9,MONK,8,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY10) ADD_TO_PARTY(PARTY10,WIZARD,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY10,MONK,7,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY10,ARCHER,9,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(SPELL_THIEVES) ADD_TO_PARTY(SPELL_THIEVES,THIEF,1,1000,STEAL_SPELLS,0) ADD_TO_PARTY(SPELL_THIEVES,THIEF,1,1000,STEAL_SPELLS,0) CREATE_PARTY(PARTY12) ADD_TO_PARTY(PARTY12,SAMURAI,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY12,DWARFA,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY12,WIZARD,7,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY12,ARCHER,8,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY12,ARCHER,8,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(GOLD_THIEVES) ADD_TO_PARTY(GOLD_THIEVES,THIEF,6,500,STEAL_GOLD,0) ADD_TO_PARTY(GOLD_THIEVES,THIEF,7,500,STEAL_GOLD,0) ADD_TO_PARTY(GOLD_THIEVES,THIEF,8,500,STEAL_GOLD,0) ADD_TO_PARTY(GOLD_THIEVES,THIEF,10,500,STEAL_GOLD,0) CREATE_PARTY(PARTY14) ADD_TO_PARTY(PARTY14,AVATAR,1,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY14,WITCH,4,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY14,ARCHER,4,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY14,GIANT,6,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(PARTY15) ADD_TO_PARTY(PARTY15,WIZARD,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY15,MONK,6,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY15,ARCHER,4,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(PARTY15,ARCHER,4,500,ATTACK_DUNGEON_HEART,0) CREATE_PARTY(WEAK_PARTY1) ADD_TO_PARTY(WEAK_PARTY1,DWARFA,3,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(WEAK_PARTY1,BARBARIAN,4,500,ATTACK_DUNGEON_HEART,0) ADD_TO_PARTY(WEAK_PARTY1,SAMURAI,2,500,ATTACK_DUNGEON_HEART,0) QUICK_OBJECTIVE(​1,"Circle circle of the dead, tell me who I'm gonna get. Having troll is making traps, as the workshop knack he has. Warlock brings a bunch of spells, that's what bookworms always have. Orc will attract better army, which could do some serious harming.",PLAYER0) REM when clicked the initial 'steal hero' box IF(PLAYER0,TOTAL_CREATURES > 0) MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1) TUTORIAL_FLASH_BUTTON(​21,-1) ENDIF REM Guard posts are quite far inside hero compound IF(PLAYER0,GUARD_POST >= 1) IF(PLAYER0,FLAG0 <= 2) SET_FLAG(PLAYER0,FLAG0,2) QUICK_OBJECTIVE(5,"Taking over the guard post seem to made the heroes retreat. But the truth is, they gained reinforcement and are just waiting for your first move. You may use some time of relative silence, so don't proceed further through their fortifications until you're ready.",PLAYER0) ENDIF ENDIF REM When player claimed more than one entrance IF(PLAYER0,ENTRANCE >= 10) SET_TIMER(PLAYER_GOOD,TIMER0) SET_FLAG(PLAYER0,FLAG0,3) QUICK_OBJECTIVE(6,"Heroes have decided to start final phase of the siege with some initial attacks. Be prepared! And remember, the main force is still waiting on the surface, so prepare for something even bigger!",PLAYER_GOOD) ENDIF REM When reached the AP27 room that leads directly to hero dungeon heart IF_ACTION_POINT(27,PLAYER0) SET_TIMER(PLAYER_GOOD,TIMER0) SET_FLAG(PLAYER0,FLAG0,4) QUICK_OBJECTIVE(10,"Beware, the main hero army is coming! I hope you're prepared for this, as otherwise it may be very short fight. Destroy the heart tainted by their rightfulness!.",PLAYER_GOOD) ENDIF REM There may be delay of some turns before all the above conditions are checked, REM and the order of execution isn't known; that's why we're using "<= 1" instead of "== 0" IF(PLAYER0,FLAG0 <= 1) REM When player claimed first entrance IF(PLAYER0,ENTRANCE >= 1) SET_TIMER(PLAYER_GOOD,TIMER0) SET_FLAG(PLAYER0,FLAG0,1) IF(PLAYER0,ORC >= 1) MAX_CREATURES(PLAYER0,30) CREATURE_AVAILABLE(PLAYER0,TENTACLE,1,1) CREATURE_AVAILABLE(PLAYER0,ORC,1,1) CREATURE_AVAILABLE(PLAYER0,BILE_DEMON,1,1) CREATURE_AVAILABLE(PLAYER0,DEMONSPAWN,1,1) CREATURE_AVAILABLE(PLAYER0,SPIDER,1,1) CREATURE_AVAILABLE(PLAYER0,BUG,1,1) CREATURE_AVAILABLE(PLAYER0,DRAGON,1,1) CREATURE_AVAILABLE(PLAYER0,HELL_HOUND,1,1) ROOM_AVAILABLE(PLAYER0,BARRACKS,1,...
nowy070