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

« back to all changes in this revision

Viewing changes to data/script/text/cam1-1-ai.slo

  • 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
 
/*
2
 
 * Cam1.1-AI.slo
3
 
 *
4
 
 * Opposition AI (No build of units)
5
 
 *
6
 
 */
7
 
 
8
 
 
9
 
// enemy1 variables
10
 
private         GROUP           enemy1Fin, enemy1Force1, enemy1Force2;
11
 
private         GROUP           enemy1Guard, enemy1Rear1, enemy1Rear2;
12
 
public          INT             LZ_X,LZ_Y;
13
 
 
14
 
// temporary variables
15
 
private         DROID           newDroid;
16
 
private         INT             moveX,moveY;
17
 
private         INT             xdiff,ydiff;
18
 
private         INT             ld;     //default leadership for enemy2
19
 
private         INT             atk1X, atk1Y;
20
 
private         INT             playerX1, playerY1, playerX2, playerY2;
21
 
private         GROUP           playerForce1, playerForce2;
22
 
private         DROID           hitDroid;
23
 
private         BASEOBJ         attackerObj;
24
 
 
25
 
/* values for build lists start here */
26
 
/* General Values */
27
 
public          int             player;
28
 
public          int             enemy1;
29
 
 
30
 
/* Enemy Tactics */
31
 
public          TEMPLATE        trike;
32
 
public          TEMPLATE        buggy;
33
 
public          TEMPLATE        bloke;
34
 
public          TEMPLATE        jeep;
35
 
 
36
 
/* enemy1 */
37
 
/* no factories! */
38
 
public          int             enm1Ret1X, enm1Ret1Y;
39
 
public          int             enm1Ret2X, enm1Ret2Y;
40
 
 
41
 
/* stuff for tracking player */
42
 
private         int             count, count2;
43
 
 
44
 
trigger         enemy1AttackPause( every, 3000 );       //5 mins
45
 
trigger         rearAttackTrig((droidInRange(0, 2496, 7460, 5*128)), 10);
46
 
trigger         baseAttackTrig((droidInRange(0, 2496, 9664, 5*128)), 10);
47
 
trigger         sideAttackTrig((droidInRange(0, 832, 7488, 6*128)), 10);
48
 
trigger         every10(every, 40);     //slowed since ordering every time
49
 
 
50
 
event startup(CALL_GAMEINIT)
51
 
{
52
 
        ld=75;                                          //enemy2 leadership (change to higher when fixed!)
53
 
//make up starting forces
54
 
        groupAddArea(enemy1Force1, enemy1, 2624, 1088, 4160, 2496);     //east ambush at base
55
 
        groupAddArea(enemy1Force1, enemy1, 704, 4288, 1472, 5184);      //sw of base on ridge
56
 
        //setGroupSecondary(enemy1Force1, DSO_ATTACK_LEVEL, DSS_ALEV_ATTACKED); //return fire only
57
 
//don't bother with hold until cancelling Hold works!!! (John needs to fix)
58
 
        //setGroupSecondary(enemy1Force1, DSO_HALTTYPE, DSS_HALT_HOLD);         //hold position
59
 
        groupAddArea(enemy1Force2, enemy1, 448, 1088, 960, 1728);       //to west of base on hill
60
 
        orderGroupLoc(enemy1Force2,  DORDER_SCOUT, 1600, 2624);
61
 
        //groupAddArea(enemy1Guard, enemy1, 1728, 1344, 2368, 1728);    //around artifact
62
 
 
63
 
        groupAddArea(enemy1Rear2, enemy1, 3904, 10944, 4288, 11328);    //rear 2 (trikes and buggies)
64
 
 
65
 
        //orderGroupLoc(enemy1Guard, DORDER_SCOUT, 2212, 1600);
66
 
//set retreat point?
67
 
        setRetreatPoint(enemy1, enm1Ret1X, enm1Ret1Y);  //retreat to base
68
 
        setRetreatForce(enemy1, 75);                    //set morale to 25%
69
 
        setRetreatLeadership(enemy1, 50);               //set leadership chance (small=more likely?)
70
 
 
71
 
}
72
 
 
73
 
 
74
 
/* Enemy force movements */
75
 
 
76
 
event enemy1Atk1(rearAttackTrig)
77
 
{
78
 
        orderGroupLoc(enemy1Rear2, DORDER_SCOUT, playerX1, playerY1); //attack players centre
79
 
        setEventTrigger(enemy1Atk1, every10);   //once triggered keep updating
80
 
}
81
 
 
82
 
/*
83
 
event enemy1Atk2(baseAttackTrig)
84
 
{
85
 
 
86
 
        //orderGroupLoc(enemy1Force1, DORDER_SCOUT, playerX1, playerY1);
87
 
        setEventTrigger(enemy1Atk2, every10);   //once triggered keep updating
88
 
}
89
 
*/
90
 
 
91
 
event enemy1Atk3(sideAttackTrig)
92
 
{
93
 
 
94
 
        orderGroupLoc(enemy1Force2, DORDER_SCOUT, playerX1, playerY1);
95
 
        setEventTrigger(enemy1Atk3, every10);   //once triggered keep updating
96
 
}
97
 
 
98
 
/* GJ: trackPlayer removed because stole droids from incoming transporters */
99
 
/*
100
 
event trackPlayer(every, 10)
101
 
{
102
 
//changed so use whole of player's army as order point!
103
 
//not a good way of doing this (shouldn't use player's forces in groups!)
104
 
                //groupAddArea(playerForce1, player, 0, 0, 48*128, 48*128);
105
 
                groupAddArea(playerForce1, player, 0, 0, 44*128, 93*128);
106
 
                playerX1=playerForce1.x;
107
 
                playerY1=playerForce1.y;
108
 
 
109
 
}
110
 
*/
111
 
 
112
 
//new version that doesn't use groups!!! (uses grid instead!)
113
 
//event trackPlayer(every, 15) - slow it down AB 2/12/98
114
 
event trackPlayer(every, 30)
115
 
{
116
 
    //this loops thru trying to find out where the selectedPlayer is - map size is 44 x 93 tiles
117
 
        count = 0;
118
 
    
119
 
    //look across the height of the map
120
 
        while (count < 93*128)
121
 
        {
122
 
                count2 = 0;
123
 
        //look across the width of the map
124
 
                while (count2 < 44*128)
125
 
                {
126
 
                        //if (numDroidsInArea(player, count2, count2 + (10*128), count, count + (10*128)) > 0)
127
 
            //make the area looking over bigger to cut down on how many loops there are - AB 2/12/98
128
 
            if (numDroidsInArea(player, count2, count, count2 + (22*128), count + (31*128)) > 0)
129
 
                        {
130
 
                                /*playerX1 = count2 + (5*128);
131
 
                                playerY1 = count + (5*128);
132
 
                                count = 93*128;
133
 
                                count2 = 44*128;*/
134
 
                                playerX1 = count2 + (11*128);
135
 
                                playerY1 = count + (15*128);
136
 
                //set count values to quit loop
137
 
                                count = 93*128;
138
 
                                count2 = 44*128;
139
 
                        }
140
 
            //loop to next x value
141
 
            count2 = count2 + (22*128);    
142
 
                }
143
 
        //loop to next y value
144
 
        count = count + (31*128);
145
 
        }
146
 
}
147
 
 
148
 
 
149
 
/* UNNECESSARY FOR HIT & RUN MISSION!!!
150
 
event lastAttack1(every, 50)
151
 
{
152
 
//make enemy easier to find if all his buildings destroyed
153
 
        if (not anyStructButWallsLeft(enemy1))
154
 
        {
155
 
                groupAddArea(enemy1Fin, enemy1, 0, 0, 8191, 16383);
156
 
                orderGroupLoc(enemy1Fin, DORDER_SCOUT, enm1Ass1X, enm1Ass1Y);
157
 
                //setEventTrigger(lastAttack1, inactive);
158
 
        }
159
 
}
160
 
*/
161
 
 
162
 
//remove hold orders if hit!
163
 
event letGo(CALL_DROID_ATTACKED, enemy1, ref hitDroid, ref attackerObj)
164
 
{
165
 
        if (hitDroid != NULLOBJECT)
166
 
        {
167
 
                if (groupMember(enemy1Force1, hitDroid))
168
 
                {
169
 
                        setGroupSecondary(enemy1Force1, DSO_ATTACK_LEVEL, DSS_ALEV_ALWAYS);     //fire at will
170
 
                        //setGroupSecondary(enemy1Force1, DSO_HALTTYPE, DSS_HALT_GUARD);                //cancel hold position
171
 
                }
172
 
                else
173
 
                {
174
 
                        setDroidSecondary(hitDroid, DSO_ATTACK_LEVEL, DSS_ALEV_ALWAYS);
175
 
                        setDroidSecondary(hitDroid, DSO_HALTTYPE, DSS_HALT_GUARD);
176
 
                }
177
 
        }
178
 
}
 
 
b'\\ No newline at end of file'