home *** CD-ROM | disk | FTP | other *** search
/ Gambler 19 / GAMBLERCD19.BIN / DEMOS / DOMINION / DOMDEM11.EXE / Dominion / Demo-4.sdl < prev    next >
Text File  |  1998-04-02  |  19KB  |  524 lines

  1. ; Scenario Description Language
  2.  
  3. MISSION_BUILDINFO = "Kelly Hoerner", "v.FINAL", "02.25.98"
  4.  
  5. MISSION_CINEMATS = "H2mix.smk", "nothing", "nothing"
  6.  
  7. MISSION_BRIEF_WAV = "nothing"
  8.  
  9. MISSION_BRIEF = 12 ; text lines
  10.  
  11. Demo-4  Objectives
  12. - One of our established bases is under
  13.   heavy attack.  Go in with your strike
  14.   team and whatever base forces still remain
  15.   and repel the attack.  You must quickly
  16.   bring the base back online before the 
  17.   Enemy can finish it off.  
  18. #
  19. - Build up the base defenses and carefully expand
  20.   towards additional matter wells.  Use your forces
  21.   wisely.  Once you have achieved full production, 
  22.   make the Enemy pay for their ambition. 
  23.  
  24. GAME_INIT =
  25.   LOAD_MAP = "Demo-4.wxp"
  26.   SET_NEXT_SCENARIO = "Human5.sdc"
  27.  
  28.   SET_MAX_PLAYERS = 2                    ; (max players)
  29.   SET_COMPUTER_PLAYER = PLAYER_1, POSTURE_DEFENSIVE ; (computer playerId)
  30.  
  31. ; Player 0 settings
  32.   SET_PLAYER_RACE  = PLAYER_0, HUMAN            ; (playerId, raceId)
  33.   SET_PLAYER_COLOR = PLAYER_0, 0                ; (playerId, colorIdx)
  34.   SET_TECH_LEVEL   = PLAYER_0, 8    ; (playerId, tech level)
  35.   SET_MEN_MATERIAL = PLAYER_0, SET, 200, 12000, 150, 10000, 100, 8000 ; (playerId, setting (SET, ADD, or RESET), men, mat)
  36.  
  37. ; Player 1 settings
  38.   SET_PLAYER_RACE  = PLAYER_1, HUMAN            ; (playerId, raceId)
  39.   SET_PLAYER_COLOR = PLAYER_1, 0                ; (playerId, colorIdx)
  40.   SET_TECH_LEVEL   = PLAYER_1, 15    ; (playerId, tech level)
  41.   SET_MEN_MATERIAL = PLAYER_1, SET, 10, 300, 15, 1300, 15, 2300 ; (playerId, setting (SET, ADD, or RESET), men, mat)
  42.  
  43. ; ***Terrain analysis results***
  44.  
  45. ;AOA: dir, y-intercept, intersects?, startFree?, endFree?, <list of sectors>
  46. AOA = 0, 5, 1, 1, 1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94
  47. AOA = 1, -1, 0, 1, 1, 1, 18, 35, 52, 69
  48. AOA = 2, 11, 1, 1, 1, 59, 75, 91, 107, 123
  49. AOA = 3, 15, 1, 1, 0, 15, 30, 31, 46, 61, 76, 91
  50.  
  51. ;Key Terrain: sectorID, type, rating
  52. KEY_TERRAIN = 91, 0, 100
  53. KEY_TERRAIN = 35, 1, 50
  54. KEY_TERRAIN = 82, 2, 97
  55. KEY_TERRAIN = 94, 2, 90
  56. KEY_TERRAIN = 2, 2, 73
  57. KEY_TERRAIN = 60, 2, 42
  58. KEY_TERRAIN = 123, 2, 94
  59. KEY_TERRAIN = 15, 2, 83
  60.  
  61.  
  62. AI_INIT
  63.  
  64. ; ***ENERGY WELLS***
  65.  
  66. ADD_ENERGYWELL = 1440, 624, 90000, 90000, 1
  67. ADD_ENERGYWELL = -1280, -416, 40000, 40000, 1
  68. ADD_ENERGYWELL = 1824, -784, 40000, 40000, 1
  69. ADD_ENERGYWELL = 1568, 48, 40000, 40000, 1
  70.  
  71.  
  72. ; ***STRUCTURE UNITS***
  73.  
  74. ; Player 0, Base 1 (default)
  75.   ADD_UNIT = 0, 128, 2, 0, 0, 0, -1216, 544, ADVANCED, DIFFICULTY_EASY
  76.   ADD_UNIT = 0, 80, 3, 0, 0, 0, -1792, -64, NORMAL, DIFFICULTY_EASY
  77.   ADD_UNIT = 0, 84, 2, 0, 0, 0, -1632, -144, NORMAL, DIFFICULTY_EASY
  78.   ADD_UNIT = 0, 68, 2, 0, 0, 0, -1088, 288, NORMAL, DIFFICULTY_EASY
  79.   ADD_UNIT = 0, 64, 2, 0, 0, 0, -992, -16, NORMAL, DIFFICULTY_EASY
  80.   ADD_UNIT = 0, 124, 2, 0, 0, 0, -1440, 560, NORMAL, DIFFICULTY_EASY
  81.   ADD_UNIT = 0, 64, 2, 0, 0, 0, -992, 368, NORMAL, DIFFICULTY_EASY
  82.   ADD_UNIT = 0, 132, 2, 0, 0, 0, -1280, -64, NORMAL, DIFFICULTY_EASY
  83.   ADD_UNIT = 0, 116, 2, 0, 0, 0, -1248, 432, NORMAL, DIFFICULTY_EASY
  84.   ADD_UNIT = 0, 128, 2, 0, 0, 0, -1504, 48, NORMAL, DIFFICULTY_EASY
  85.   ADD_UNIT = 0, 132, 1, 0, 0, 0, -1376, 272, NORMAL, DIFFICULTY_EASY
  86.   ADD_UNIT = 0, 128, 3, 0, 0, 0, -1344, 64, NORMAL, DIFFICULTY_EASY
  87.   ADD_UNIT = 0, 132, 1, 0, 0, 0, -1568, -400, NORMAL, DIFFICULTY_EASY
  88.   ADD_UNIT = 0, 64, 2, 0, 0, 0, -1952, -240, NORMAL, DIFFICULTY_EASY
  89.   ADD_UNIT = 0, 92, 3, 0, 0, 0, -1280, -416, NORMAL, DIFFICULTY_EASY
  90.   ADD_UNIT = 0, 68, 2, 0, 0, 0, -1088, 0, NORMAL, DIFFICULTY_EASY
  91.   ADD_UNIT = 0, 124, 3, 0, 0, 0, -1600, 640, NORMAL, DIFFICULTY_EASY
  92.   ADD_UNIT = 0, 64, 2, 0, 0, 0, -1440, -240, NORMAL, DIFFICULTY_EASY
  93.  
  94.  
  95. ; Player 1, Base 1 (default)
  96.   ADD_UNIT = 1, 132, 1, 0, 0, 0, 1120, 816, NORMAL, DIFFICULTY_EASY
  97.   ADD_UNIT = 1, 68, 1, 0, 0, 0, 896, 480, NORMAL, DIFFICULTY_EASY
  98.   ADD_UNIT = 1, 64, 1, 0, 0, 0, 832, 448, NORMAL, DIFFICULTY_EASY
  99.   ADD_UNIT = 1, 116, 1, 0, 0, 0, 1536, 480, ADVANCED, DIFFICULTY_EASY
  100.   ADD_UNIT = 1, 64, 1, 0, 0, 0, 832, 992, NORMAL, DIFFICULTY_EASY
  101.   ADD_UNIT = 1, 128, 1, 0, 0, 0, 1248, 784, ADVANCED, DIFFICULTY_MEDIUM
  102.   ADD_UNIT = 1, 132, 1, 0, 0, 0, 1184, 336, NORMAL, DIFFICULTY_EASY
  103.   ADD_UNIT = 1, 68, 1, 0, 0, 0, 928, 752, NORMAL, DIFFICULTY_MEDIUM
  104.   ADD_UNIT = 1, 128, 1, 0, 0, 0, 1184, 880, ADVANCED, DIFFICULTY_MEDIUM
  105.   ADD_UNIT = 1, 68, 1, 0, 0, 0, 1696, 432, NORMAL, DIFFICULTY_MEDIUM
  106.   ADD_UNIT = 1, 64, 1, 0, 0, 0, 1984, 288, NORMAL, DIFFICULTY_EASY
  107.   ADD_UNIT = 1, 132, 1, 0, 0, 0, 1760, 112, NORMAL, DIFFICULTY_EASY
  108.   ADD_UNIT = 1, 128, 1, 0, 0, 0, 1888, 720, ADVANCED, DIFFICULTY_MEDIUM
  109.   ADD_UNIT = 1, 120, 1, 0, 0, 0, 1856, 896, ADVANCED, DIFFICULTY_EASY
  110.   ADD_UNIT = 1, 128, 1, 0, 0, 0, 1632, 784, ADVANCED, DIFFICULTY_EASY
  111.   ADD_UNIT = 1, 124, 1, 0, 0, 0, 1664, 640, ADVANCED, DIFFICULTY_EASY
  112.   ADD_UNIT = 1, 128, 1, 0, 0, 0, 1440, 784, ADVANCED, DIFFICULTY_MEDIUM
  113.   ADD_UNIT = 1, 128, 1, 0, 0, 0, 1024, 928, ADVANCED, DIFFICULTY_MEDIUM
  114.   ADD_UNIT = 1, 128, 1, 0, 0, 0, 1376, 880, ADVANCED, DIFFICULTY_EASY
  115.   ADD_UNIT = 1, 124, 1, 0, 0, 0, 1856, 384, ADVANCED, DIFFICULTY_MEDIUM
  116.   ADD_UNIT = 1, 84, 1, 0, 0, 0, 1760, 528, ADVANCED, DIFFICULTY_EASY
  117.   ADD_UNIT = 1, 92, 1, 0, 0, 0, 1440, 624, NORMAL, DIFFICULTY_EASY
  118.   ADD_UNIT = 1, 128, 1, 0, 0, 0, 1888, 592, ADVANCED, DIFFICULTY_MEDIUM
  119.   ADD_UNIT = 1, 80, 1, 0, 0, 0, 1152, 608, ADVANCED, DIFFICULTY_EASY
  120.   ADD_UNIT = 1, 92, 1, 0, 0, 0, 1568, 48, NORMAL, DIFFICULTY_EASY
  121.   ADD_UNIT = 1, 68, 1, 0, 0, 0, 1472, 352, NORMAL, DIFFICULTY_MEDIUM
  122.   ADD_UNIT = 1, 64, 1, 0, 0, 0, 1280, 288, NORMAL, DIFFICULTY_EASY
  123.  
  124.  
  125. ; ***MOVING UNITS***
  126.  
  127. ; Player 0, Group 1 (default)
  128.   ADD_UNIT = 0, 4, 1, 0, 0, 0, -1664, -896, NORMAL, DIFFICULTY_EASY
  129.   ADD_UNIT = 0, 8, 7, 0, 0, 0, -1600, 0, NORMAL, DIFFICULTY_EASY
  130.   ADD_UNIT = 0, 60, 0, 0, 0, 0, -1664, -704, NORMAL, DIFFICULTY_EASY
  131.   ADD_UNIT = 0, 0, 1, 0, 0, 0, -1632, -848, NORMAL, DIFFICULTY_EASY
  132.   ADD_UNIT = 0, 12, 0, 0, 0, 0, -1568, -784, NORMAL, DIFFICULTY_EASY
  133.   ADD_UNIT = 0, 8, 1, 0, 0, 0, -1600, -832, NORMAL, DIFFICULTY_EASY
  134.   ADD_UNIT = 0, 4, 1, 0, 0, 0, -1600, -896, NORMAL, DIFFICULTY_EASY
  135.   ADD_UNIT = 0, 8, 0, 0, 0, 0, -1600, -64, NORMAL, DIFFICULTY_EASY
  136.   ADD_UNIT = 0, 4, 2, 0, 0, 0, -1632, -912, NORMAL, DIFFICULTY_EASY
  137.   ADD_UNIT = 0, 0, 0, 0, 0, 0, -1664, -800, NORMAL, DIFFICULTY_EASY
  138.   ADD_UNIT = 0, 0, 2, 0, 0, 0, -1664, -832, NORMAL, DIFFICULTY_EASY
  139.   ADD_UNIT = 0, 16, 1, 0, 0, 0, -1728, -736, NORMAL, DIFFICULTY_EASY
  140.   ADD_UNIT = 0, 8, 6, 0, 0, 0, -1664, 64, NORMAL, DIFFICULTY_EASY
  141.  
  142.  
  143. ; Player 1, Group 1 (default)
  144.   ADD_UNIT = 1, 0, 5, 0, 0, 0, -960, 64, NORMAL, DIFFICULTY_EASY
  145.   ADD_UNIT = 1, 44, 4, 0, 0, 0, -992, -432, NORMAL, DIFFICULTY_EASY
  146.   ADD_UNIT = 1, 0, 3, 0, 0, 0, -1152, -512, NORMAL, DIFFICULTY_EASY
  147.   ADD_UNIT = 1, 44, 4, 0, 0, 0, -1024, -480, NORMAL, DIFFICULTY_EASY
  148.   ADD_UNIT = 1, 0, 5, 0, 0, 0, -896, -64, NORMAL, DIFFICULTY_EASY
  149.   ADD_UNIT = 1, 0, 0, 0, 0, 0, -1440, -400, NORMAL, DIFFICULTY_EASY
  150.   ADD_UNIT = 1, 8, 4, 0, 0, 0, -1088, -416, NORMAL, DIFFICULTY_EASY
  151.  
  152. ; Player 1, Group 2
  153. DEFGROUP = PLAYER_1
  154.   ADD_UNIT = 1, 0, 1, 0, 0, 0, 1504, -656, NORMAL, DIFFICULTY_EASY
  155.   ADD_UNIT = 1, 40, 2, 0, 0, 0, 1696, -656, NORMAL, DIFFICULTY_MEDIUM
  156.   ADD_UNIT = 1, 4, 4, 0, 0, 0, 1664, -736, NORMAL, DIFFICULTY_EASY
  157.   ADD_UNIT = 1, 4, 1, 0, 0, 0, 1600, -768, NORMAL, DIFFICULTY_EASY
  158.   ADD_UNIT = 1, 0, 0, 0, 0, 0, 1504, -720, NORMAL, DIFFICULTY_EASY
  159.   ADD_UNIT = 1, 0, 0, 0, 0, 0, 1568, -688, NORMAL, DIFFICULTY_EASY
  160.   ADD_UNIT = 1, 4, 4, 0, 0, 0, 1536, -736, NORMAL, DIFFICULTY_EASY
  161.   ADD_UNIT = 1, 0, 3, 0, 0, 0, 1440, -688, NORMAL, DIFFICULTY_EASY
  162.   ADD_UNIT = 1, 4, 1, 0, 0, 0, 1600, -704, NORMAL, DIFFICULTY_EASY
  163.   ADD_UNIT = 1, 0, 3, 0, 0, 0, 1504, -688, NORMAL, DIFFICULTY_EASY
  164.   ADD_UNIT = 1, 4, 2, 0, 0, 0, 1600, -736, NORMAL, DIFFICULTY_EASY
  165.   ADD_UNIT = 1, 40, 0, 0, 0, 0, 1440, -784, NORMAL, DIFFICULTY_HARD
  166. DEFGROUP_END
  167.  
  168. ; Player 1, Group 3
  169. DEFGROUP = PLAYER_1
  170.   ADD_UNIT = 1, 40, 6, 0, 0, 0, 96, 560, NORMAL, DIFFICULTY_HARD
  171.   ADD_UNIT = 1, 40, 6, 0, 0, 0, 192, 512, NORMAL, DIFFICULTY_MEDIUM
  172.   ADD_UNIT = 1, 0, 4, 0, 0, 0, 96, 656, NORMAL, DIFFICULTY_EASY
  173.   ADD_UNIT = 1, 0, 2, 0, 0, 0, 288, 592, NORMAL, DIFFICULTY_EASY
  174.   ADD_UNIT = 1, 4, 4, 0, 0, 0, 160, 656, NORMAL, DIFFICULTY_EASY
  175.   ADD_UNIT = 1, 4, 0, 0, 0, 0, 256, 640, NORMAL, DIFFICULTY_EASY
  176.   ADD_UNIT = 1, 4, 4, 0, 0, 0, 288, 624, NORMAL, DIFFICULTY_EASY
  177.   ADD_UNIT = 1, 0, 7, 0, 0, 0, 128, 608, NORMAL, DIFFICULTY_EASY
  178.   ADD_UNIT = 1, 0, 0, 0, 0, 0, 256, 608, NORMAL, DIFFICULTY_EASY
  179.   ADD_UNIT = 1, 0, 0, 0, 0, 0, 160, 624, NORMAL, DIFFICULTY_EASY
  180.   ADD_UNIT = 1, 4, 5, 0, 0, 0, 128, 672, NORMAL, DIFFICULTY_EASY
  181. DEFGROUP_END
  182.  
  183. ; Player 1, Group 4
  184. DEFGROUP = PLAYER_1
  185.   ADD_UNIT = 1, 4, 0, 0, 0, 0, 704, 1, NORMAL, DIFFICULTY_EASY
  186. DEFGROUP_END
  187. DEFRULESET = 0
  188.  
  189. ENERGYWALL_LINK = -1920, -224, -1408, -224
  190. ENERGYWALL_LINK = -992, -16, -992, 368
  191.  
  192. ENERGYWALL_LINK = 832, 992, 832, 448
  193. ENERGYWALL_LINK = 1280, 288, 1984, 288
  194.  
  195. DEFRULE = PLAYER_1
  196.   DEFSLOT = FACT_GAME_TIME_IS,LT,100
  197.   DEFSLOT = ACTN_RESERVES_RUSH,STRUCT_REFINERY
  198. DEFRULE_END
  199.  
  200. ; define computer AI functionality
  201. ;4 phase structure:  Recon, Buildup/Resource Collection, Defense, Attack
  202.  
  203. ;Phase 1 - Recon
  204. ;Always active Rule as long as Player has enough $.
  205. ;Restricts to make sure only 1 Recon bike is active.
  206.  
  207. DEFRULE = PLAYER_1
  208.   DEFSLOT = FACT_FOG_PERCENTAGE_IS,PLAYER_1,GE,39
  209.   DEFSLOT = ACTN_RECON,1,39
  210. DEFRULE_END
  211.  
  212. DEFRULE = PLAYER_1
  213.   DEFSLOT = FACT_FOG_PERCENTAGE_IS,PLAYER_1,LT,39
  214.   DEFSLOT = FACT_PLAYERS_THREAT_COUNT_IS,PLAYER_1,EQ,0
  215.   DEFSLOT = ACTN_RECON,2,1
  216. DEFRULE_END
  217.  
  218. ;Phase 2 - Buildup/Resource Collection
  219. ;To happen when Player_0 is not yet found, and when Player_0s visible
  220. ;attack forces are weak in value.   Modification for Darken: also to
  221. ;happen when Player_0s forces are overwhelmingly large/expensive.
  222.  
  223. DEFRULE = PLAYER_1
  224.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LT,20
  225.   DEFSLOT = FACT_RESERVES_UNIT_TYPE_COUNT_IS,UNIT_BAV,LT,3
  226.   DEFSLOT = ACTN_BUILD_UNIT_TYPE,UNIT_BAV
  227. DEFRULE_END
  228.  
  229. DEFRULE = PLAYER_1
  230.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LT,20
  231.   DEFSLOT = FACT_RESERVES_UNIT_TYPE_COUNT_IS,UNIT_TCV,LT,3
  232.   DEFSLOT = ACTN_BUILD_UNIT_TYPE,UNIT_TCV
  233. DEFRULE_END
  234.  
  235. DEFRULE = PLAYER_1
  236.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LT,20
  237.   DEFSLOT = FACT_RESERVES_UNIT_TYPE_COUNT_IS,UNIT_TAV,LT,2
  238.   DEFSLOT = ACTN_BUILD_UNIT_TYPE,UNIT_TAV
  239. DEFRULE_END
  240.  
  241. DEFRULE = PLAYER_1
  242.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LT,20
  243.   DEFSLOT = FACT_RESERVES_UNIT_TYPE_COUNT_IS,UNIT_COMMANDER,LT,1
  244.   DEFSLOT = ACTN_BUILD_UNIT_TYPE,UNIT_COMMANDER
  245. DEFRULE_END
  246.  
  247. DEFRULE = PLAYER_1
  248.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LT,20
  249.   DEFSLOT = FACT_RESERVES_UNIT_TYPE_COUNT_IS,UNIT_HEAVY_INFANTRY,LT,4
  250.   DEFSLOT = ACTN_BUILD_UNIT_TYPE,UNIT_HEAVY_INFANTRY
  251. DEFRULE_END
  252.  
  253. DEFRULE = PLAYER_1
  254.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LT,20
  255.   DEFSLOT = FACT_RESERVES_UNIT_TYPE_COUNT_IS,UNIT_LIGHT_INFANTRY,LT,4
  256.   DEFSLOT = ACTN_BUILD_UNIT_TYPE,UNIT_LIGHT_INFANTRY
  257. DEFRULE_END
  258.  
  259. DEFRULE = PLAYER_1
  260.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LT,20
  261.   DEFSLOT = FACT_RESERVES_UNIT_TYPE_COUNT_IS,UNIT_PHV,LT,4
  262.   DEFSLOT = ACTN_BUILD_UNIT_TYPE,UNIT_PHV
  263. DEFRULE_END
  264.  
  265. ;Phase 3 - Defense
  266. ;Two defense modes:  when AI has money, and when AI is out of money
  267. ;When AI is out of money, will sell of unnecessary structs.
  268.  
  269. DEFRULE = PLAYER_1
  270.   DEFSLOT = FACT_BASE_ATTACKED,1
  271.   DEFSLOT = ACTN_ELIMINATE_BASE_ATTACK,1
  272. DEFRULE_END
  273.  
  274. DEFRULE = PLAYER_1
  275.   DEFSLOT = FACT_BASE_ATTACKED,1
  276.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_WORTH_IS,PLAYER_0,GE,6500
  277.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_WORTH_IS,PLAYER_1,LE,3000
  278.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_WORTH_IS,PLAYER_1,GE,1500
  279.   DEFSLOT = FACT_PLAYERS_MATERIAL_IS,PLAYER_1,LT,500
  280.   DEFSLOT = ACTN_SELL_STRUCTURES,1,MOD_ALL_BUT_CORE_STRUCTURES
  281.   DEFSLOT = ACTN_ELIMINATE_BASE_ATTACK,1
  282. DEFRULE_END
  283.  
  284. DEFRULE = PLAYER_1
  285.   DEFSLOT = FACT_BASE_ATTACKED,1
  286.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_WORTH_IS,PLAYER_0,GT,6500
  287.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_WORTH_IS,PLAYER_1,LT,1500
  288.   DEFSLOT = FACT_PLAYERS_MATERIAL_IS,PLAYER_1,LT,500
  289.   DEFSLOT = ACTN_SELL_STRUCTURES,1,MOD_ALL_BUT_CORE_STRUCTURES
  290.   DEFSLOT = ACTN_ELIMINATE_BASE_ATTACK,1
  291. DEFRULE_END
  292.  
  293. DEFRULE = PLAYER_1
  294.   DEFSLOT = FACT_BASE_ATTACKED,1
  295.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,EQ,0
  296.   DEFSLOT = FACT_PLAYERS_UNIT_TYPE_COUNT_IS,PLAYER_1,STRUCT_MAIN_PLANT,EQ,0
  297.   DEFSLOT = ACTN_SELL_STRUCTURES,1,MOD_ALL_STRUCTURES
  298. DEFRULE_END
  299.  
  300. DEFRULE = PLAYER_1
  301.   DEFSLOT = FACT_BASE_ATTACKED,1
  302.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LE,4
  303.   DEFSLOT = FACT_PLAYERS_MEN_IS,PLAYER_1,EQ,0
  304.   DEFSLOT = ACTN_SET_BASE_REPAIR_STATE,1,MOD_REPAIR_OFF
  305. DEFRULE_END
  306.  
  307. DEFRULE = PLAYER_1
  308.   DEFSLOT = FACT_BASE_ATTACKED,1
  309.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,EQ,0
  310.   DEFSLOT = FACT_PLAYERS_UNIT_TYPE_COUNT_IS,PLAYER_1,STRUCT_MAIN_PLANT,EQ,0
  311.   DEFSLOT = ACTN_SELL_STRUCTURES,1,MOD_ALL_STRUCTURES
  312. DEFRULE_END
  313.  
  314. DEFRULE = PLAYER_1
  315.   DEFSLOT = FACT_BASE_ATTACKED,1
  316.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,LE,4
  317.   DEFSLOT = FACT_PLAYERS_MATERIAL_IS,PLAYER_1,LT,100
  318.   DEFSLOT = ACTN_SET_BASE_REPAIR_STATE,1,MOD_REPAIR_OFF
  319. DEFRULE_END
  320.  
  321. DEFRULE = PLAYER_1
  322.   DEFSLOT = FACT_BASE_ATTACKED,1
  323.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,EQ,0
  324.   DEFSLOT = FACT_PLAYERS_STRUCTURE_COUNT_IS,PLAYER_1,LE,3
  325.   DEFSLOT = ACTN_SET_BASE_REPAIR_STATE,1,MOD_REPAIR_OFF
  326. DEFRULE_END
  327.  
  328. DEFRULE = PLAYER_1
  329.   DEFSLOT = FACT_PLAYERS_STRUCTURE_COUNT_IS,PLAYER_1,EQ,0
  330.   DEFSLOT = ACTN_RUSH,STRUCT_COLONY
  331.   DEFSLOT = ACTN_RUSH,STRUCT_REFINERY
  332. DEFRULE_END
  333.  
  334. ;Phase 4 - Attack
  335. ;AI will attack when Player_1 has reached a reasonable(BALANCE) value of
  336. ;mobile units, or if the AI can see the player's Refinery.  Both
  337. ;of these cases will set-off harassment forces.
  338. ;The other two cases exist with larger forces and bases on the part
  339. ;of Player_1, in which progressively greater teams will be sent.
  340. ;Finally, if the AI has a large amount of resources, it will send out
  341. ;a maximal amount of forces.
  342.  
  343.  
  344. DEFRULE = PLAYER_1
  345.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,GT,19
  346.   DEFSLOT = FACT_PLAYERS_UNIT_TYPE_COUNT_IS,PLAYER_0,STRUCT_CANNON_TOWER,GT,0
  347.   DEFSLOT = FACT_PLAYERS_UNIT_TYPE_COUNT_IS,PLAYER_0,STRUCT_CANNON_TOWER,LE,4
  348.   DEFSLOT = ACTN_ELIMINATE_THREAT,STRUCT_CANNON_TOWER
  349. DEFRULE_END
  350.  
  351. DEFRULE = PLAYER_1
  352.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,GT,19
  353.   DEFSLOT = FACT_PLAYERS_UNIT_TYPE_COUNT_IS,PLAYER_0,STRUCT_ROCKET_TOWER,GT,0
  354.   DEFSLOT = FACT_PLAYERS_UNIT_TYPE_COUNT_IS,PLAYER_0,STRUCT_ROCKET_TOWER,LE,3
  355.   DEFSLOT = ACTN_ELIMINATE_THREAT,STRUCT_ROCKET_TOWER
  356. DEFRULE_END
  357.  
  358. DEFRULE = PLAYER_1
  359.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,GT,19
  360.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_WORTH_IS,PLAYER_0,GT,600
  361.   DEFSLOT = ACTN_ELIMINATE_THREAT,UNIT_LIGHT_INFANTRY
  362.   DEFSLOT = ACTN_ELIMINATE_THREAT,UNIT_HEAVY_INFANTRY
  363.   DEFSLOT = ACTN_ELIMINATE_THREAT,UNIT_PHV
  364. DEFRULE_END
  365.  
  366. DEFRULE = PLAYER_1
  367.   DEFSLOT = FACT_PLAYERS_UNIT_TYPE_COUNT_IS,PLAYER_0,STRUCT_POWER_UMBILICAL,GT,4
  368.   DEFSLOT = ACTN_ELIMINATE_THREAT,STRUCT_POWER_UMBILICAL
  369. DEFRULE_END
  370.  
  371. DEFRULE = PLAYER_1
  372.   DEFSLOT = FACT_TRUE
  373.   DEFSLOT = ACTN_ELIMINATE_HIGHEST_THREATS,1
  374. DEFRULE_END
  375.  
  376. DEFRULE = PLAYER_1
  377.   DEFSLOT = FACT_PLAYERS_MATERIAL_IS,PLAYER_1,GE,2000
  378.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_COUNT_IS,PLAYER_0,EQ,5
  379.   DEFSLOT = ACTN_ELIMINATE_HIGHEST_THREATS,1
  380. DEFRULE_END
  381.  
  382. DEFRULE = PLAYER_1
  383.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,GT,20
  384.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_COUNT_IS,PLAYER_0,EQ,9
  385.   DEFSLOT = ACTN_ELIMINATE_HIGHEST_THREATS,1
  386. DEFRULE_END
  387.  
  388. DEFRULE = PLAYER_1
  389.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,GT,20
  390.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_COUNT_IS,PLAYER_0,EQ,13
  391.   DEFSLOT = ACTN_ELIMINATE_HIGHEST_THREATS,1
  392. DEFRULE_END
  393.  
  394. DEFRULE = PLAYER_1
  395.   DEFSLOT = FACT_RESERVES_UNIT_COUNT_IS,GT,20
  396.   DEFSLOT = FACT_PLAYERS_MOBILE_UNIT_COUNT_IS,PLAYER_0,EQ,16
  397.   DEFSLOT = ACTN_ELIMINATE_HIGHEST_THREATS,1
  398. DEFRULE_END
  399.  
  400. DEFRULE = PLAYER_1
  401.   DEFSLOT = FACT_GAME_TIME_IS,GE,9000
  402.   DEFSLOT = FACT_GAME_DIFFICULTY_IS,EQ,DIFFICULTY_HARD
  403.   DEFSLOT = ACTN_ADD_STRUCTURE_TYPE_AT,1,STRUCT_POWER_UMBILICAL,1728,-160
  404.   DEFSLOT = ACTN_DISABLE_RULE,29
  405. DEFRULE_END
  406.  
  407. DEFRULE = PLAYER_1
  408.   DEFSLOT = FACT_GAME_TIME_IS,GE,9500
  409.   DEFSLOT = FACT_GAME_DIFFICULTY_IS,EQ,DIFFICULTY_HARD
  410.   DEFSLOT = ACTN_ADD_STRUCTURE_TYPE_AT,1,STRUCT_POWER_UMBILICAL,1856,-512
  411.   DEFSLOT = ACTN_DISABLE_RULE,30
  412. DEFRULE_END
  413.  
  414. DEFRULE = PLAYER_1
  415.   DEFSLOT = FACT_GAME_TIME_IS,GE,10300
  416.   DEFSLOT = FACT_GAME_DIFFICULTY_IS,EQ,DIFFICULTY_HARD
  417.   DEFSLOT = ACTN_ADD_STRUCTURE_TYPE_AT,1,STRUCT_REFINERY,1824,-784
  418.   DEFSLOT = ACTN_DISABLE_RULE,31
  419. DEFRULE_END
  420.  
  421. DEFRULE = PLAYER_1
  422.   DEFSLOT = FACT_GAME_TIME_IS,GE,12000
  423.   DEFSLOT = FACT_GAME_DIFFICULTY_IS,EQ,DIFFICULTY_MEDIUM
  424.   DEFSLOT = ACTN_ADD_STRUCTURE_TYPE_AT,1,STRUCT_POWER_UMBILICAL,1728,-160
  425.   DEFSLOT = ACTN_DISABLE_RULE,32
  426. DEFRULE_END
  427.  
  428. DEFRULE = PLAYER_1
  429.   DEFSLOT = FACT_GAME_TIME_IS,GE,12500
  430.   DEFSLOT = FACT_GAME_DIFFICULTY_IS,EQ,DIFFICULTY_MEDIUM
  431.   DEFSLOT = ACTN_ADD_STRUCTURE_TYPE_AT,1,STRUCT_POWER_UMBILICAL,1856,-512
  432.   DEFSLOT = ACTN_DISABLE_RULE,33
  433. DEFRULE_END
  434.  
  435. DEFRULE = PLAYER_1
  436.   DEFSLOT = FACT_GAME_TIME_IS,GE,13300
  437.   DEFSLOT = FACT_GAME_DIFFICULTY_IS,EQ,DIFFICULTY_MEDIUM
  438.   DEFSLOT = ACTN_ADD_STRUCTURE_TYPE_AT,1,STRUCT_REFINERY,1824,-784
  439.   DEFSLOT = ACTN_DISABLE_RULE,34
  440. DEFRULE_END
  441.  
  442. TIMER_EVENT=4,22500,TRUE,TRUE,FALSE
  443.   ADD_UNIT = 1, 132, 1, 0, 0, 0, 1184, -432, NORMAL
  444.  
  445. TIMER_EVENT=5,23000,TRUE,TRUE,FALSE
  446.   ADD_UNIT = 1, 132, 1, 0, 0, 0, 672, -688, NORMAL
  447.  
  448. TIMER_EVENT=6,23500,TRUE,TRUE,FALSE
  449.   ADD_UNIT = 1, 132, 1, 0, 0, 0, 64, -608, NORMAL
  450.  
  451. TIMER_EVENT=7,24000,TRUE,TRUE,FALSE
  452.   ADD_UNIT = 1, 144, 3, 0, 0, 0, -704, -512, NORMAL
  453.   ADD_UNIT = 1, 136, 3, 0, 0, 0, -640, -544, NORMAL
  454.   ADD_UNIT = 1, 136, 3, 0, 0, 0, -576, -576, NORMAL
  455.   ADD_UNIT = 1, 136, 3, 0, 0, 0, -512, -608, NORMAL
  456.   ADD_UNIT = 1, 136, 3, 0, 0, 0, -448, -640, NORMAL
  457.   ADD_UNIT = 1, 136, 3, 0, 0, 0, -384, -672, NORMAL
  458.   ADD_UNIT = 1, 136, 3, 0, 0, 0, -320, -704, NORMAL
  459.   ADD_UNIT = 1, 136, 3, 0, 0, 0, -256, -736, NORMAL
  460.   ADD_UNIT = 1, 140, 3, 0, 0, 0, -192, -768, NORMAL
  461.  
  462. TIMER_EVENT=8,24100,TRUE,TRUE,FALSE
  463.   ADD_UNIT = 1, 40, 4, 0, 0, 0, 288,-1040, NORMAL
  464.   ADD_UNIT = 1, 4, 4, 0, 0, 0, 352,-1040, NORMAL
  465.   ADD_UNIT = 1, 44, 5, 0, 0, 0, 288,-1072, NORMAL
  466.   ADD_UNIT = 1, 4, 2, 0, 0, 0, 224,-1040, NORMAL
  467.   ADD_UNIT = 1, 0, 0, 0, 0, 0, 160,-1040, NORMAL
  468.   ADD_UNIT = 1, 0, 0, 0, 0, 0, 96,-1040, NORMAL
  469.   SET_ENTRY_POINT = 288,-1040,288,-1008,256,-928
  470.   SET_ENTRY_POINT = 352,-1040,352,-1008,192, -896
  471.   SET_ENTRY_POINT = 288,-1072,288,-1008,128, -928
  472.   SET_ENTRY_POINT = 224,-1040,224,-1008,64, -896
  473.   SET_ENTRY_POINT = 160,-1040,160,-1008,64, -960
  474.   SET_ENTRY_POINT = 96,-1040,96,-1008,192, -960
  475.  
  476. TIMER_EVENT=9,24200,TRUE,TRUE,FALSE
  477.   START_CONVOY = 256, -928, -1056, -496
  478.   START_CONVOY = 192, -896, -1056, -432
  479.   START_CONVOY = 128, -928, -1056, -368
  480.   START_CONVOY = 64, -896, -928, -368
  481.   START_CONVOY = 64, -960, -960, -512
  482.   START_CONVOY = 192, -960, -960, -320
  483.  
  484. ; define specific game objectives and actions to take after they're met
  485.  
  486. OBJECTIVE = 0, 0            ; (objectiveId, priority)
  487.   GAME_WON
  488. OBJECTIVE = 1, 0
  489.   GAME_LOST
  490. ; - end -
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.