~ubuntu-branches/ubuntu/lucid/warzone2100/lucid

« back to all changes in this revision

Viewing changes to data/base/script/data/gentemplate.vlo

  • Committer: Bazaar Package Importer
  • Author(s): Christoph Egger, Paul Wise, Christoph Egger
  • Date: 2009-06-29 17:12:52 UTC
  • mfrom: (1.1.11 upstream) (2.1.7 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090629171252-5ddnlfg3zfchrega
Tags: 2.2.1+dfsg1-1
[ Paul Wise ]
* New upstream release (Closes: #534962)
* Adjust the flex build-depends to take account of the conflict
  with all the versions of flex 2.5.34 (LP: #372872)
* Make the -music Recommends more strict, 2.1 music doesn't work
  with 2.2.
* Upstream moved the downloads to sourceforge, update the watch file
* Bump Standards-Version, no changes needed
* Drop use of dh_desktop since it no longer does anything
* Recommend the new warzone2100-video package, version 2.2 or similar
* Mention the warzone2100 crash reports in the -dbg package description

[ Christoph Egger ]
* Replace CC-2.0 graphic from cybersphinx, create a new tarball
* Add myself to uploaders

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//Generic VLO file template for start/expand levels
 
2
 
 
3
//Cam2a.vlo
 
4
 
 
5
script "GenExp.slo"
 
6
run
 
7
{
 
8
/* Next level stuff */
 
9
NextLev         LEVEL           "SUB_2_1S"      //points to next level in GameDesc.lev
 
10
lastLev         BOOL            TRUE            //don't try to load next one
 
11
 
 
12
/* Define Players/Enemies */
 
13
numEnemies      int             2               //MAX 2. Must define same as number of enemy players given next
 
14
enemy[0]        int             1               //player number, eg 1 for New Paradigm, 2 for Collective, 3 for Nexus, 7 for scavengers
 
15
enemy[1]        int             7               //scavenger player number
 
16
alliancePlayer  int     0               //ally player with this player number, currently self.
 
17
allianceEnemy[0]        int     7               //ally enemy with this player number, currently scavenger
 
18
allianceEnemy[1]        int     0               //ally scavengers with the player (useful for civilians)
 
19
allianceFlag    BOOL            FALSE           //TRUE if want enemies to use each others targets, otherwise mark FALSE
 
20
 
 
21
/* Starting Enemy Power */
 
22
power[0]        int             300             //starting power for enemy[0]   (New Paradigm in this case)
 
23
power[1]        int             1000            //starting power for enemy[1]   (Scavengers in this case)
 
24
 
 
25
/* Structure Limits */
 
26
//Leave these as are, for Player only!
 
27
numStrucStats   int     5                       //MAX 5. Must be same as number of limits given next
 
28
strucStat[0]    STRUCTURESTAT   "A0PowerGenerator"
 
29
strucLimit[0]   int             1
 
30
strucStat[1]    STRUCTURESTAT   "A0ResourceExtractor"
 
31
strucLimit[1]   int             200
 
32
strucStat[2]    STRUCTURESTAT   "A0ResearchFacility"
 
33
strucLimit[2]   int             5
 
34
strucStat[3]    STRUCTURESTAT   "A0LightFactory"
 
35
strucLimit[3]   int             5
 
36
strucStat[4]    STRUCTURESTAT   "A0CommandCentre"
 
37
strucLimit[4]   int             1
 
38
 
 
39
/* Initialisation */
 
40
centreX         int             11200           //starting view centre (in world units)
 
41
centreY         int             12864           //needs to be set correctly
 
42
scrollX1        int             64      //scroll limits (in tile units)
 
43
scrollY1        int             64      //needs to be set correctly
 
44
scrollX2        int             128
 
45
scrollY2        int             128
 
46
zoomLevel       int             0       //starting radar: 0=zoomed out, 2=zoomed in
 
47
 
 
48
numLZ           int             2       //MAX 8. Number of Landing zones/areas can't build on (LZX[0], LZY[0] = player's LZ)
 
49
LZX[0]          int             0       //coords of player's LZ in tile units
 
50
LZY[0]          int             0       
 
51
LZX[1]          int             0       //coords of other LZ's
 
52
LZY[1]          int             0
 
53
 
 
54
reinfOff                BOOL            TRUE    //don't set reinforcements (done in another script)
 
55
ReinforceTime   INT             -1      //-1 for no reinforcements, otherwise time in 10ths of seconds (only for Submaps)
 
56
 
 
57
/* Transport exit and entry */
 
58
//need setting for submaps only
 
59
transX[0]       int             1       //player transport entry coord in tile units
 
60
transY[0]       int             1
 
61
transX[1]       int             1       //player transport exit coord in tile units
 
62
transY[1]       int             1
 
63
 
 
64
//for each enemy that requires enemy transports landing (handled as a phantom factory)
 
65
entryX[0]       int             0       //define transport entry exit for each enemy!
 
66
entryY[0]       int             0       //unnecessary if no enemy transports (defaults 0)
 
67
exitX   [0]     int             0       //leave as 0 if don't want a transport adding for this enemy
 
68
exitY   [0]     int             0
 
69
 
 
70
/* starting technology for enemy */
 
71
//NOTE: need to set first number in array for enemy player
 
72
//second number needs to correspond to numTechs[enemy]
 
73
//MAX 2 enemies, 10 technologies
 
74
numTechs[0]     int             2               //number of technologies to follow for enemy[0]
 
75
startTech[0][0] RESEARCHSTAT    "R-Wpn-MG-Damage03"
 
76
startTech[0][1] RESEARCHSTAT    "R-Wpn-Rocket-Damage02"
 
77
 
 
78
numTechs[1]     int             3               //number of technologies to follow for enemy[1]
 
79
startTech[1][0] RESEARCHSTAT    "R-Vehicle-Body01"
 
80
startTech[1][1] RESEARCHSTAT    "R-Sys-Spade1Mk1"
 
81
startTech[1][2] RESEARCHSTAT    "R-Vehicle-Prop-Wheels"
 
82
 
 
83
 
 
84
/* Briefings */
 
85
//Pete Johnson handles these so please leave setup as he has them!
 
86
numBriefs       int             1       //MAX 2. Needs to be same as the number of briefings given next
 
87
brief[0]        INTMESSAGE      "MB2A_MSG"
 
88
briefVal[0]     int             2       //0 remove after playing, 1 keep, 2 don't play immediately
 
89
 
 
90
/* Objectives */
 
91
//any blips placed at the start of a mission are done here
 
92
numObjectives   int             1                       //MAX 3. Needs to be the same as the number of objective blips given next
 
93
objective[0]    INTMESSAGE      "DELETE_ME"             //in prox<name>.txt files (need updating) 
 
94
objectiveX[0]   int             6848                    //world coords where player's droids need to get close to to remove the blip
 
95
objectiveY[0]   int             7104
 
96
 
 
97
/* Victory Conditions */
 
98
//NOTE: always assumes victory condition of: number of artifacts collected = victoryArt
 
99
numVictory      int             4       //number of victory conditions to be met (not including artifacts)
 
100
                                        //DOESN'T need to be same as number given next (these are set TRUE/FALSE)
 
101
                                        //if victory condition required. Can have 2 set to TRUE and numVictory = 1
 
102
                                        //This will then let player win if EITHER condition is true!
 
103
                                        //Use numVictory of 0 if just want player to get artifacts
 
104
 
 
105
//these now done as integers NOT bools!! Use -1 for False, # for True (often an index to check!)
 
106
//for this reason must specify ALL victory[]!
 
107
victory[0]      int             1       //all enemy vehicles and structures need to be killed
 
108
victory[1]      int             10      //all players vehicles at REGION index # (eg LZ REGION)
 
109
victory[2]      int             1       //number of objectives to get to (uses objective[0] to objective[#])
 
110
victory[3]      int             2       //number of bases to destroy (uses base[0] to base[#])
 
111
 
 
112
/* might use these later if necessary
 
113
victory[4]      int             -1      //kill all UNITS belonging to enemy # index
 
114
victory[5]      int             -1      //kill all STRUCTURES belonging to enemy # index
 
115
victory[6]      int             -1      //REGION index to check for defences built
 
116
victory[7]      int             -1      //# of EXTRA defences to build in REGION
 
117
*/
 
118
//use this to communicate extra victory conditions in another script run beside the generic one
 
119
linkVictory     BOOL            TRUE
 
120
 
 
121
/* Failure Conditions */
 
122
//Extra conditions above ALL player units and structures dead, or TIME LIMIT expired
 
123
//numFail       int             0       //number required to be met (usually one if used!)
 
124
//only one of these has to be met
 
125
//Use -1 for False, # for True (often an index to check!)
 
126
 
 
127
fail    [0]     int             0       //DROID # index all got to REGION (no longer a group #)
 
128
fail    [1]     int             10      //REGION index for above (these count as one condition!)
 
129
failSnd SOUND           "pcv632.ogg"    //"Enemy Escaping" played for failure
 
130
 
 
131
/* might use these later if necessary
 
132
fail    [2]     int             -1      //only Player UNITS need to be killed to lose
 
133
fail    [3]     int             -1      //only Player STRUCTURES need to be killed to lose
 
134
fail    [4]     int             -1      //Structure index # to be destroyed to lose????
 
135
*/
 
136
//use this to communicate extra fail conditions in another script run beside the generic one
 
137
linkFail        BOOL            TRUE
 
138
//use this to prevent generic script failing when time is up!
 
139
noTimeLimit     BOOL            TRUE    //don't use time limit as a fail in GenExp
 
140
 
 
141
/* Artifacts */
 
142
victoryArt      int             0       //number of artifacts required for victory (must be <= numArt)
 
143
numArt          int             0       //MAX 6. Number of artifacts in total (even if not in game, but added as extra research!)
 
144
 
 
145
//new improved way of doing artifacts
 
146
//artType: 0 = artifact starts on map, 1 = get from STRUCTURE, 2 = get from FEATURE, 3 = get from DROID, 4 = at end of level
 
147
//artVal: index to relevant type, ie FEATURE(crate), FEATURE, STRUCTURE, DROID
 
148
//artX, artY: artifact coords (this is updated for DROIDS moving by script, but still needs an array to store them in!)
 
149
artType [0]     int             0                               //already on map
 
150
artVal  [0]     int             0                               //index into features                   
 
151
artX    [0]     int             576                             //coords of artifact
 
152
artY    [0]     int             3008
 
153
artComp [0]     RESEARCHSTAT    "R-Wpn-Flamer01Mk1"     //research topic given when artifact collected
 
154
 
 
155
artType [1]     int             1                               //get from structure
 
156
artVal  [1]     int             0                               //index into structures when structure destroyed
 
157
artX    [1]     int             3136                            //coords to place artifact
 
158
artY    [1]     int             832
 
159
artComp [1]     RESEARCHSTAT    "R-Defense-Tower01"     //research topic given when artifact collected
 
160
 
 
161
artType [2]     int             2                               //get from feature
 
162
artVal  [2]     int             1                               //index into features
 
163
artX    [2]     int             4416                            //coords to place artifact when feature destroyed
 
164
artY    [2]     int             2752
 
165
artComp [2]     RESEARCHSTAT    "R-Sys-Sensor-Turret01" //research topic given when artifact collected
 
166
 
 
167
artType [3]     int             3                               //get from droid
 
168
artVal  [3]     int             0                               //index into droids
 
169
artX    [3]     int             5696
 
170
artY    [3]     int             1856
 
171
artComp [3]     RESEARCHSTAT    "R-Vehicle-Prop-Halftracks"     //research topic given when artifact collected
 
172
 
 
173
artType [4]     int             4                               //given on completing mission (don't include when counting for victoryArt!)
 
174
artVal  [4]     int             0                               //not used for this type, leav as 0
 
175
artX    [4]     int             0                               //not used for this type, leav as 0
 
176
artY    [4]     int             0                               //not used for this type, leav as 0
 
177
artComp [4]     RESEARCHSTAT    "R-Wpn-Mortar01Lt"      //research topic given when artifact collected
 
178
 
 
179
 
 
180
/* ******************************************** */
 
181
/* lists of stuff referred to by index number   */
 
182
/* ******************************************** */
 
183
 
 
184
/* ******************************************** */
 
185
/* FEATURES (inc crates, by ID number)  MAX = 10        */
 
186
features        [0]     FEATURE         649             //crate artifact ID number(already on map)
 
187
features        [1]     FEATURE         661             //feature to get next artifact, eg warehouse
 
188
 
 
189
/* ******************************************** */
 
190
/* STRUCTURES (by ID number)            MAX = 10        */
 
191
structures      [0]     STRUCTURE       223             //factory 0, gives artifact
 
192
structures      [1]     STRUCTURE       650             //some other structure, eg gives an artifact
 
193
structures      [2]     STRUCTURE       481             //factory 1
 
194
structures      [3]     STRUCTURE       623             //factory 2
 
195
 
 
196
 
 
197
/* ******************************************** */
 
198
/* DROIDS (by ID number)                MAX = 10        */
 
199
droids          [0]     DROID           3279            //gives up artifact when dead at its coords
 
200
droids          [1]     DROID           1234            //this is a sensor droid that acts as sesnor for group 1 IDF (indexes match!)
 
201
 
 
202
/* ******************************************** */
 
203
/* list of templates (by name)           MAX = 20       */
 
204
/* ******************************************** */
 
205
//keep each enemies templates together
 
206
templates       [0]     TEMPLATE        "BaBaPeople"            //scavenger templates
 
207
templates       [1]     TEMPLATE        "BarbarianTrike"
 
208
templates       [2]     TEMPLATE        "BarbarianBuggy"
 
209
templates       [3]     TEMPLATE        "BabaJeep"
 
210
templates       [4]     TEMPLATE        "BabaRKJeep"
 
211
templates       [5]     TEMPLATE        "BarbarianRKBuggy"
 
212
templates       [6]     TEMPLATE        "BabaBusCan"
 
213
templates       [7]     TEMPLATE        "BabaFireCan"
 
214
 
 
215
templates[8]    TEMPLATE        "NP-M-MdCannon-Halftrack"       //New Paradigm templates
 
216
templates[9]    TEMPLATE        "NP-H-MdCannon-Tracks"
 
217
templates[10]   TEMPLATE        "NP-M-BB-Halftrack"
 
218
templates[11]   TEMPLATE        "NP-H-HvyCannon-Tracks"
 
219
templates[12]   TEMPLATE        "NP-M-Sensor-Wheels"
 
220
templates[13]   TEMPLATE        "NP-M-HvyMortar-Halftrack"
 
221
 
 
222
templates[14]   TEMPLATE        "CyborgChain01Ground"           //NP Cyborg Templates
 
223
templates[15]   TEMPLATE        "CyborgFlamer01Grd"
 
224
templates[16]   TEMPLATE        "CyborgCannon01Grd"
 
225
 
 
226
 
 
227
 
 
228
/* ******************************************** */
 
229
//coordinates (world coords)            MAX = 10
 
230
/* ******************************************** */
 
231
coordsX         [0]     int             3136            //factory 0 Assembly
 
232
coordsY         [0]     int             1472
 
233
coordsX         [1]     int             5824            //factory 1 Assembly (and valley group retreat!)
 
234
coordsY         [1]     int             2368
 
235
coordsX         [2]     int             5184            //factory 2 Assembly
 
236
coordsY         [2]     int             6592
 
237
 
 
238
coordsX         [3]     int             832             //1st waypoint for group 0
 
239
coordsY         [3]     int             6848
 
240
 
 
241
coordsX         [4]     int             1856            //2nd waypoint for group 0
 
242
coordsY         [4]     int             7104
 
243
 
 
244
coordsX         [5]     int             2624            //group 2 waypoint1
 
245
coordsY         [5]     int             5952
 
246
coordsX         [6]     int             2752            //group 2 waypoint2
 
247
coordsY         [6]     int             6720
 
248
coordsX         [7]     int             2496            //group 2 waypoint3
 
249
coordsY         [7]     int             7488
 
250
coordsX         [8]     int             1728            //group 2 waypoint4
 
251
coordsY         [8]     int             7744
 
252
 
 
253
 
 
254
/* ******************************************** */
 
255
//regions (world coords)                MAX = 20
 
256
/* ******************************************** */
 
257
regionsX1       [0]     int             2624            //enemy base0 blip
 
258
regionsY1       [0]     int             448
 
259
regionsX2       [0]     int             3648
 
260
regionsY2       [0]     int             1344
 
261
regionsX1       [1]     int             4800            //enemy base1 blip
 
262
regionsY1       [1]     int             1472
 
263
regionsX2       [1]     int             6464
 
264
regionsY2       [1]     int             2880
 
265
regionsX1       [2]     int             4288            //enemy base2 blip
 
266
regionsY1       [2]     int             5952
 
267
regionsX2       [2]     int             6208
 
268
regionsY2       [2]     int             7488
 
269
        
 
270
regionsX1       [3]     int             320             //base 0 Factory trigger region
 
271
regionsY1       [3]     int             4160            
 
272
regionsX2       [3]     int             2368
 
273
regionsY2       [3]     int             5184    
 
274
regionsX1       [4]     int             1984            //group 0 trigger region
 
275
regionsY1       [4]     int             832
 
276
regionsX2       [4]     int             3008
 
277
regionsY2       [4]     int             2368
 
278
regionsX1       [5]     int             3904            //group 3 trigger region
 
279
regionsY1       [5]     int             2496
 
280
regionsX2       [5]     int             5312
 
281
regionsY2       [5]     int             4288    
 
282
 
 
283
regionsX1       [6]     int             3136            //group 0 defining region
 
284
regionsY1       [6]     int             13632
 
285
regionsX2       [6]     int             3520
 
286
regionsY2       [6]     int             14016   
 
287
regionsX1       [7]     int             4288            //group 1 defining region
 
288
regionsY1       [7]     int             8000
 
289
regionsX2       [7]     int             5056
 
290
regionsY2       [7]     int             8640
 
291
regionsX1       [8]     int             5184            //group 2 defining region
 
292
regionsY1       [8]     int             7232
 
293
regionsX2       [8]     int             5696
 
294
regionsY2       [8]     int             7744    
 
295
regionsX1       [9]     int             4928            //group 3 defining region
 
296
regionsY1       [9]     int             6592
 
297
regionsX2       [9]     int             5440
 
298
regionsY2       [9]     int             7104
 
299
 
 
300
regionsX1       [10]    int             2624            //LZ region for victory
 
301
regionsY1       [10]    int             448
 
302
regionsX2       [10]    int             3648
 
303
regionsY2       [10]    int             1344
 
304
 
 
305
/* ******************************************** */
 
306
/* sector Stuff */
 
307
/* ******************************************** */
 
308
//sectors to attack (for scout and attack groups only)
 
309
//split map into regions, groups can then go to random positions in each region
 
310
//as their waypoints, looking for player targets.
 
311
 
 
312
//MAX = 20
 
313
sectorsX1       [0]     int             10432
 
314
sectorsY1       [0]     int             12736
 
315
sectorsX2       [0]     int             14272
 
316
sectorsY2       [0]     int             15552
 
317
 
 
318
sectorsX1       [1]     int             8896
 
319
sectorsY1       [1]     int             13760
 
320
sectorsX2       [1]     int             10304
 
321
sectorsY2       [1]     int             15040
 
322
 
 
323
sectorsX1       [2]     int             6336
 
324
sectorsY1       [2]     int             13760
 
325
sectorsX2       [2]     int             8768
 
326
sectorsY2       [2]     int             14144
 
327
 
 
328
sectorsX1       [3]     int             2112
 
329
sectorsY1       [3]     int             12736
 
330
sectorsX2       [3]     int             6336
 
331
sectorsY2       [3]     int             14784
 
332
 
 
333
sectorsX1       [4]     int             1600
 
334
sectorsY1       [4]     int             10176
 
335
sectorsX2       [4]     int             5952
 
336
sectorsY2       [4]     int             12608
 
337
 
 
338
sectorsX1       [5]     int             4672
 
339
sectorsY1       [5]     int             8640
 
340
sectorsX2       [5]     int             5696
 
341
sectorsY2       [5]     int             10048
 
342
 
 
343
/* ******************************************** */
 
344
/* Enemy Base Blips */
 
345
/* ******************************************** */
 
346
numBases                int             0               //MAX = 5. Must be same as number of bases listed next
 
347
basePlayer      [0]     int             0               //enemy player number who owns base, ie enemy[0]
 
348
baseMsg         [0]     INTMESSAGE      "FAST_BASE1"    //enemy base blip message (prox.txt)
 
349
baseRegion      [0]     int             0               //index to regions that defines base boundaries (blip appears when player sees any structure in these boundaries), also area to destroy walls when base is dead.
 
350
baseWav1        [0]     int             2               //sound to play when first seen (index to baseSnd)      Superior Weapons
 
351
baseWav2        [0]     int             3               //sound to play when base dead (index to baseSnd)       Eradicated
 
352
 
 
353
basePlayer      [1]     int             1               //enemy player who owns base, ie enemy[1]
 
354
baseMsg         [1]     INTMESSAGE      "FAST_BASE2"
 
355
baseRegion      [1]     int             1               //index to regions
 
356
baseWav1        [1]     int             0               //index to baseSnd      enemy detected
 
357
baseWav2        [1]     int             3               //index to baseSnd      Eradicated
 
358
 
 
359
/* ******************************************** */
 
360
/* Enemy Groups */
 
361
/* ******************************************** */
 
362
numGroups               int             6       //group MAX = 10
 
363
 
 
364
//group 0 (Ambush group) Use this type to get units moving in set patterns once triggered
 
365
grpType         [0]     int             0               //0 = Ambush/Patrol
 
366
grpPlayer       [0]     int             0               //player index, ie enemy[0]
 
367
grpRegion       [0]     int             6               //index in regions array to define group
 
368
grpTimeGo       [0]     int             -1              //-1 = no time trigger
 
369
grpRegionGo     [0]     int             4               //index in regions to use as trigger
 
370
grpWhoGo        [0]     int             0               //player number (0-7) that needs to enter trigger region to trigger group
 
371
grpMorale       [0]     int             -1              //-1 = don't set morale/leadership/retreat
 
372
grpLeadership   [0]     int             0               //leave zero if morale not set
 
373
grpRetreatXY    [0]     int             0               //leave zero if morale not set
 
374
grpPosStart     [0]     int             3               //starting waypoint (goes here when triggered)
 
375
grpPosMin       [0]     int             3               //Minimum index in coords array for waypoints
 
376
grpPosMax       [0]     int             4               //Maximum index in coords array for waypoints
 
377
grpPosStep      [0]     int             1               //Step increase for next 'waypoint'
 
378
grpPosType      [0]     int             0               //0 = stop when get to last waypoint
 
379
grpFactory      [0]     int             -1              //-1 = any factory can reinforce this group
 
380
grpIdealSize    [0]     int             0               //0 = don't reinforce (ideal size. If less than this factory will reinforce)
 
381
 
 
382
//group 1 (IDF group) Use this group to link to a sensor of same index (not quite finished in SLO, but shouldn't crash) 
 
383
grpType         [1]     int             -1              //-1 = Indirect Fire (IDF). There must be a corresponding sensor droid with same index
 
384
                                                                // in this case 1, ie droids[1] must be a sensor droid. Don't use this type if too confusing!
 
385
grpPlayer       [1]     int             0               //player index, ie enemy[0]
 
386
grpRegion       [1]     int             7               //index in regions array to define group
 
387
grpTimeGo       [1]     int             -1              //-1 = don't use time trigger (sensor will move this IDF group)
 
388
 
 
389
grpRegionGo     [1]     int             -1              //-1 = don't use a region to trigger (sensor will move this IDF group)
 
390
grpWhoGo        [1]     int             0                       //leave zero if region trigger not used
 
391
grpMorale       [1]     int             90              //pretty timid! morale check when group size is 90% of original
 
392
grpLeadership   [1]     int             25              //25% chance of not running away when morale checked 
 
393
grpRetreatXY    [1]     int             0               //retreat coords(index in coords array), points to factory 0's assembly point
 
394
grpPosStart     [1]     int             -1              //don't use waypoints
 
395
grpPosMin       [1]     int             0               //leave 0 if waypoints not used
 
396
grpPosMax       [1]     int             0               //leave 0 if waypoints not used
 
397
grpPosStep      [1]     int             0               //leave 0 if waypoints not used
 
398
grpPosType      [1]     int             0               //leave 0 if waypoints not used
 
399
grpFactory      [1]     int             0               //reinforce from factory 0
 
400
grpIdealSize    [1]     int             6               //ideal size. If less than this factory will reinforce
 
401
 
 
402
//group 2 (defence group) Use this group to defend a base (or whole map if desired). Can be on a patrol route using waypoints, will only deviate from this if a structure in grpRegionGo is attacked, then when attacker destroyed, continues on patrol route
 
403
grpType         [2]     int             1               //1 = Defence
 
404
grpPlayer       [2]     int             1               //player index, ie enemy[1]
 
405
grpRegion       [2]     int             8               //index in regions array to define group
 
406
grpTimeGo       [2]     int             2               //2 = 20s before starts to move (always make >= 0 for defence forces)
 
407
grpRegionGo     [2]     int             0               //index into regions to protect (usually a base blip region)
 
408
grpWhoGo        [2]     int             0               //player number (0-7) that needs to attack structures in  trigger region to make this group break off patrol and defend
 
409
grpMorale       [2]     int             55              //pretty solid! morale check when group size is 55% of original
 
410
grpLeadership   [2]     int             75              //75% chance of not running away when morale checked
 
411
grpRetreatXY    [2]     int             1               //retreat (index in coords array) factory 1 assembly point
 
412
grpPosStart     [2]     int             7               //index in coords array (depends on grpType)
 
413
grpPosMin       [2]     int             5               //Minimum index in coords array
 
414
grpPosMax       [2]     int             8               //Maximum index in coords array
 
415
grpPosStep      [2]     int             -1              //Step increase for next 'waypoint'
 
416
grpPosType      [2]     int             1               //1 = loop
 
417
grpFactory      [2]     int             0               //index factory to reinforce group. -1 = any factory.
 
418
grpIdealSize    [2]     int             2               //ideal size. If less than this factory will reinforce
 
419
 
 
420
//group 3 (scout group). This uses SECTORS, and will flag targets for use by attack groups. will run away if sees more targets than units in its own group even if morale not set.
 
421
grpType         [3]     int             2               //2 = Scout, 3 = Attack...
 
422
grpPlayer       [3]     int             1               //player index, ie enemy[1]
 
423
grpRegion       [3]     int             9               //index in regions array to define group
 
424
grpTimeGo       [3]     int             4               //40s time trigger
 
425
grpRegionGo     [3]     int             5               //index in regions to use as trigger (can use time AND region triggers)
 
426
grpWhoGo        [3]     int             0               //player number (0-7) that needs to enter trigger region to trigger group
 
427
grpMorale       [3]     int             -1              //no morale checks
 
428
grpLeadership   [3]     int             0               //leave zero if morale not set
 
429
grpRetreatXY    [3]     int             0               //leave zero if morale not set
 
430
grpPosStart     [3]     int             3               //index in SECTORS array (scout groups use sectors)
 
431
grpPosMin       [3]     int             0               //Minimum index in coords array
 
432
grpPosMax       [3]     int             4               //Maximum index in coords array
 
433
grpPosStep      [3]     int             1               //Step increase for next 'waypoint'
 
434
grpPosType      [3]     int             2               //2 = pingpong
 
435
grpFactory      [3]     int             -1              //index factory to reinforce group. -1 = any factory.
 
436
grpIdealSize    [3]     int             4               //ideal size. If less than this factory will reinforce
 
437
 
 
438
//group 4 (attack group). Again uses SECTORS. Will patrol sectors until targets found, by scout or attack groups, then goes to target coords. This group doesn't exist at start, but is reinforced by factory 1 which is a phantom factory (used for units coming in off edge of map)
 
439
grpType         [4]     int             0               //3 = Attack...
 
440
grpPlayer       [4]     int             0               //player index, ie enemy[0]
 
441
grpRegion       [4]     int             -1              //doesn't exist at start, made up from factories
 
442
grpTimeGo       [4]     int             5               //20s time trigger (always make >= 0 for defence forces)
 
443
grpRegionGo     [4]     int             -1              //no region. index in regions array as trigger
 
444
grpWhoGo        [4]     int             0               //leave zero if region trigger not used
 
445
grpMorale       [4]     int             90              //morale = 90%
 
446
grpLeadership   [4]     int             45              //leadership value = 45%
 
447
grpRetreatXY    [4]     int             1               //retreat (index in coords array) factory 1 assembly
 
448
grpPosStart     [4]     int             4               //index in SECTORS array (attack groups use sectors)
 
449
grpPosMin       [4]     int             0               //Minimum index in SECTORS array
 
450
grpPosMax       [4]     int             4               //Maximum index in SECTORS array
 
451
grpPosStep      [4]     int             -1              //Step increase for next 'waypoint'
 
452
grpPosType      [4]     int             3               //3 = random thru waypoints
 
453
grpFactory      [4]     int             1               //index factory to reinforce group. -1 = any factory.
 
454
grpIdealSize    [4]     int             6               //ideal size. If less than this factory will reinforce
 
455
 
 
456
//group 5. Transport example group (can be any type). Main point is that it is reinforced by factory 2, which is a transport type phantom factory.
 
457
grpType         [5]     int             0               //0 = Ambush/Patrol
 
458
grpPlayer       [5]     int             0               //player index, ie enemy[0]
 
459
grpRegion       [5]     int             -1              //doesn't exist at start, made up from factories
 
460
grpTimeGo       [5]     int             0               //go immediately
 
461
grpRegionGo     [5]     int             -1              //no region. index in regions array as trigger
 
462
grpWhoGo        [5]     int             0               //player number to cross trigger region (may not need?)
 
463
grpMorale       [5]     int             25              //morale = 50%
 
464
grpLeadership   [5]     int             50              //leadership value = 75%
 
465
grpRetreatXY    [5]     int             1               //retreat (index in coords array) base2 assembly
 
466
grpPosStart     [5]     int             7               //index in coords array (depends on grpType)
 
467
grpPosMin       [5]     int             5               //Minimum index in coords array
 
468
grpPosMax       [5]     int             8               //Maximum index in coords array
 
469
grpPosStep      [5]     int             1               //Step increase for next 'waypoint'
 
470
grpPosType      [5]     int             1               //1 = loop
 
471
grpFactory      [5]     int             2               //index factory to reinforce group. This points to 'transport' factory
 
472
grpIdealSize    [5]     int             10              //ideal size. If less than this factory will reinforce
 
473
 
 
474
 
 
475
/* Factories */
 
476
numFactories            int             3               //MAX = 10
 
477
 
 
478
//typical factory
 
479
factID          [0]     int             0               //index to structures
 
480
factAssXY       [0]     int             0               //index to assembly point. -1 for don't set
 
481
factTimeGo      [0]     int             -1              //delay before starting production in 10s
 
482
factRegionGo    [0]     int             3               //region index (assume WhoGo = 0, ie player has to enter this region)
 
483
factTempMin     [0]     int             0               //index to starting template
 
484
factTempMax     [0]     int             2               //index to maximum template
 
485
factEvery       [0]     int             5               //50s .Time in 10s for factory to try to produce again
 
486
 
 
487
//special case phantom factory
 
488
factID          [1]     int             -1              //phantom factory, places units on map (usually edge)
 
489
factAssXY       [1]     int             1               //index to coords to place generated units
 
490
factTimeGo      [1]     int             6               //60s delay before starting production  (multiples of 10s)
 
491
factRegionGo    [1]     int             -1              //-1 = no region for trigger (assume WhoGo = 0)
 
492
factTempMin     [1]     int             0               //index to starting template
 
493
factTempMax     [1]     int             3               //index to maximum template
 
494
factEvery       [1]     int             30              //5 mins .Time in 10s for factory to try to produce again
 
495
 
 
496
//transport type phantom factory
 
497
factID          [2]     int             -2              //phantom factory, uses transport
 
498
factAssXY       [2]     int             1               //index to LZs (point to correct one for enemy number, eg 2 for player 2 Collective)
 
499
factTimeGo      [2]     int             -1              //delay before starting production in 10s
 
500
factRegionGo    [2]     int             5               //region to trigger transport
 
501
factTempMin     [2]     int             1               //index to starting template
 
502
factTempMax     [2]     int             4               //index to maximum template
 
503
factEvery       [2]     int             36              //6 mins .Time in 10s for factory to produce again
 
504
 
 
505
/* 'Globals' */
 
506
//These should be same in each file, but may need slight alterations
 
507
player          int             0                               //player's player number
 
508
crate           FEATURESTAT     "Crate"
 
509
artRange        int             200     //171                           //range to artifact about 1.5 tiles
 
510
objectiveRange  int             640                             //range to objective 5 Tiles
 
511
wayRange        int             300                             //range to waypoint 2ish tiles
 
512
targetRange     int             768                             //range for target spotting
 
513
targetMax       int             4                               //maximum number of targets to store for each enemy
 
514
lostSnd         SOUND           "pcv470.ogg"            //mission failed
 
515
attackSnd1      SOUND           "pcv337.ogg"    //Base Under Attack
 
516
artSnd1         SOUND           "pcv351.ogg"    //artifact sounds
 
517
artSnd2         SOUND           "pcv352.ogg"
 
518
transporter     TEMPLATE        "Transporter"   //for enemy transports
 
519
endMsg          INTMESSAGE      "END"
 
520
 
 
521
//base WAVs. MAX = 5
 
522
baseSnd[0]      SOUND           "pcv379.ogg"    //Enemy Base Detected
 
523
baseSnd[1]      SOUND           "pcv379.ogg"    //Enemy Base Detected
 
524
baseSnd[2]      SOUND           "pcv379.ogg"    //Enemy Base Detected
 
525
baseSnd[3]      SOUND           "pcv394.ogg"    //Enemy base eradicated
 
526
 
 
527
/* NEW STUFF for trucks */
 
528
//trucksOn              BOOL                    TRUE            //switch for using trucks (won't work without it!)
 
529
/* Defence Type Structures for any enemy to build */
 
530
numDefences             int                     2       //MAX = 5
 
531
defences[0]             STRUCTURESTAT   "PillBox2"
 
532
defences[1]             STRUCTURESTAT   "PillBox3"
 
533
maxDefence              int                     3               //ideal number of defences to build
 
534
/* structures to defend */
 
535
numToDefend             int                     2       //MAX = 5
 
536
toDefend[0]             STRUCTURESTAT   "A0ResourceExtractor"
 
537
toDefend[1]             STRUCTURESTAT   "A0CommandCentreCO" //"A0PowerGenerator"
 
538
/* extra Globals */
 
539
oilRes          FEATURESTAT             "OilResource"
 
540
truckRange              int                     1024    //range for truck to check for defendable structures
 
541
defRange                int                     512     //range for defences to be for defendable structures
 
542
/* end of NEW STUFF */
 
543
 
 
544
/* NEW STUFF FOR THREAT ASSESSMENT */
 
545
//this only works on groups with Morale Values
 
546
//if not declared just won't do anything!!
 
547
threatLight             int                     2       //value for light vehicles
 
548
threatMedium    int                     4       //value for medium vehicles
 
549
threatHeavy             int                     8       //value for large vehicles
 
550
threatRange             int                     750     //range to check for enemy and player threats
 
551
/* end of NEW STUFF */
 
552
 
 
553
/* NEW STUFF fro RETURN TO LZ type victory condition blip and audio */
 
554
retLZFlag               BOOL            TRUE                            //must be set true to activate
 
555
retLZSnd                SOUND           "pcv427.ogg"            //for victory condition of get all player stuff to region
 
556
retLZBlip               INTMESSAGE      "C22_LZ"                        //Blip for LZ
 
557
/* end of NEW STUFF */
 
558
 
 
559
}