Rev 1 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1 | Rev 25 | ||
|---|---|---|---|
| Line 35... | Line 35... | ||
| 35 | action DRAGONDYING 25 6 1 1 12 |
35 | action DRAGONDYING 25 6 1 1 12 |
| 36 | 36 | ||
| 37 | move DRAGONSPEED 60 0 |
37 | move DRAGONSPEED 60 0 |
| 38 | move DRAGONFLEE 300 0 |
38 | move DRAGONFLEE 300 0 |
| 39 | move DRAGONSTOPPED |
39 | move DRAGONSTOPPED |
| 40 | move DRAGONBACK -250 0 |
40 | move DRAGONBACK -500 0 |
| 41 | move DRAGONSHRUNKSPEED 50 0 |
41 | move DRAGONSHRUNKSPEED 50 0 |
| 42 | 42 | ||
| 43 | ai AIDRAGONFLEE DRAGONBOUNCE DRAGONFLEE fleeenemy randomangle |
43 | ai AIDRAGONFLEE DRAGONBOUNCE DRAGONFLEE fleeenemy randomangle |
| 44 | ai AIDRAGONBOUNCESEE DRAGONBOUNCE DRAGONSPEED seekplayer |
44 | ai AIDRAGONBOUNCESEE DRAGONBOUNCE DRAGONSPEED seekplayer |
| 45 | ai AIDRAGONBOUNCE DRAGONBOUNCE DRAGONSPEED faceplayer |
45 | ai AIDRAGONBOUNCE DRAGONBOUNCE DRAGONSPEED faceplayer |
| Line 95... | Line 95... | ||
| 95 | sizeto 84 100 |
95 | sizeto 84 100 |
| 96 | break |
96 | break |
| 97 | } |
97 | } |
| 98 | ends |
98 | ends |
| 99 | 99 | ||
| - | 100 | ||
| 100 | state dragondeathanglecode |
101 | state dragondeathanglecode |
| 101 | ifvare temp3 0 |
102 | ifvare temp3 -1 |
| 102 | { |
103 | { |
| 103 | getplayer[THISACTOR].i temp // gets the player's ID |
- | |
| 104 | getactor[temp].x x2 |
- | |
| 105 | getactor[temp].y y2 |
- | |
| 106 | getactor[THISACTOR].x x |
- | |
| 107 | getactor[THISACTOR].y y // gets the coordinates of the player and dragon |
104 | getactor[THISACTOR].htang temp // get the angle of the projectile that hit the dragon |
| 108 | subvarvar x2 x |
- | |
| 109 | subvarvar y2 y |
- | |
| 110 | getangle temp2 x2 y2 // calculates the angle to face the player |
105 | ifvarg temp 1024 subvar temp 1024 else addvar temp 1024 // turn the angle around to face the projectile |
| - | 106 | ||
| 111 | setvar temp 0 |
107 | setvar temp2 0 |
| 112 | randvar temp 256 // randomizes the angle within a certain logical range, since the bullet holes are facing the player |
108 | randvar temp2 128 // randomizes the angle within a certain logical range, since the bullet holes are facing the player |
| 113 | ifrnd 128 addvarvar temp2 temp else subvarvar temp2 temp |
109 | ifrnd 128 addvarvar temp temp2 else subvarvar temp temp2 |
| - | 110 | ||
| 114 | setactor[THISACTOR].ang temp2 // sets the angle, just in time for movement |
111 | getactor[THISACTOR].ang temp3 // pass this along to EVENT_ANIMATESPRITES |
| - | 112 | ||
| 115 | setvar temp3 1 |
113 | setactor[THISACTOR].ang temp // sets the angle, just in time for movement |
| 116 | } |
114 | } |
| 117 | ends |
115 | ends |
| 118 | 116 | ||
| 119 | state DRAGONBOUNCESTATESEE |
117 | state DRAGONBOUNCESTATESEE |
| 120 | ifbulletnear ai AIDRAGONFLEE |
118 | ifbulletnear ai AIDRAGONFLEE |
| Line 173... | Line 171... | ||
| 173 | 171 | ||
| 174 | ifactioncount 2 |
172 | ifactioncount 2 |
| 175 | { |
173 | { |
| 176 | ifrnd 100 |
174 | ifrnd 100 |
| 177 | { |
175 | { |
| - | 176 | ifcansee nullop else ai AIDRAGONBOUNCESEE // This line should make the dragon smarter. |
|
| 178 | resetcount |
177 | resetcount |
| 179 | resetactioncount |
178 | resetactioncount |
| 180 | } |
179 | } |
| 181 | else |
180 | else |
| 182 | { |
181 | { |
| Line 222... | Line 221... | ||
| 222 | state dragon_jibs |
221 | state dragon_jibs |
| 223 | killit |
222 | killit |
| 224 | } |
223 | } |
| 225 | else |
224 | else |
| 226 | { |
225 | { |
| 227 | ai AIDRAGONDYING |
- | |
| 228 | state dragondeathanglecode |
226 | state dragondeathanglecode |
| - | 227 | ai AIDRAGONDYING |
|
| 229 | } |
228 | } |
| 230 | 229 | ||
| 231 | sound BALLEXPLODE |
230 | sound BALLEXPLODE |
| 232 | } |
231 | } |
| 233 | else |
232 | else |
| Line 288... | Line 287... | ||
| 288 | ends |
287 | ends |
| 289 | 288 | ||
| 290 | useractor enemy DRAGON DRAGONSTRENGTH DRAGONBOUNCE |
289 | useractor enemy DRAGON DRAGONSTRENGTH DRAGONBOUNCE |
| 291 | fall |
290 | fall |
| 292 | cstator 257 |
291 | cstator 257 |
| - | 292 | setactor[THISACTOR].mdflags 16 |
|
| - | 293 | ||
| - | 294 | ifai 0 |
|
| - | 295 | { |
|
| - | 296 | setvar temp3 -1 |
|
| - | 297 | ai AIDRAGONBOUNCE |
|
| - | 298 | } |
|
| 293 | 299 | ||
| 294 | state checksquished |
300 | state checksquished |
| 295 | 301 | ||
| 296 | ifaction DRAGONDEAD |
302 | ifaction DRAGONDEAD |
| 297 | { |
303 | { |
| Line 300... | Line 306... | ||
| 300 | ifcount RESPAWNACTORTIME |
306 | ifcount RESPAWNACTORTIME |
| 301 | { |
307 | { |
| 302 | spawn TRANSPORTERSTAR |
308 | spawn TRANSPORTERSTAR |
| 303 | cstat 257 |
309 | cstat 257 |
| 304 | strength DRAGONSTRENGTH |
310 | strength DRAGONSTRENGTH |
| - | 311 | setvar temp3 -1 |
|
| 305 | ai AIDRAGONBOUNCE |
312 | ai AIDRAGONBOUNCE |
| 306 | } |
313 | } |
| 307 | else |
314 | else |
| 308 | { |
315 | { |
| 309 | strength 0 |
316 | strength 0 |
| Line 351... | Line 358... | ||
| 351 | { |
358 | { |
| 352 | state DRAGONDYINGSTATE |
359 | state DRAGONDYINGSTATE |
| 353 | break |
360 | break |
| 354 | } |
361 | } |
| 355 | 362 | ||
| 356 | ifhitweapon state DRAGONHITSTATE |
363 | ifhitweapon |
| 357 | - | ||
| 358 | ifai 0 ai AIDRAGONBOUNCE |
364 | state DRAGONHITSTATE |
| 359 | 365 | ||
| 360 | ifai AIDRAGONGROW state dragongrowstate |
366 | ifai AIDRAGONGROW state dragongrowstate |
| 361 | else ifai AIDRAGONSHRUNK state DRAGONSHRINKSTATE |
367 | else ifai AIDRAGONSHRUNK state DRAGONSHRINKSTATE |
| 362 | else |
368 | else |
| 363 | { |
369 | { |
| Line 371... | Line 377... | ||
| 371 | else ifai AIDRAGONBOUNCE2 state DRAGONBOUNCESTATE |
377 | else ifai AIDRAGONBOUNCE2 state DRAGONBOUNCESTATE |
| 372 | } |
378 | } |
| 373 | enda |
379 | enda |
| 374 | 380 | ||
| 375 | useractor notenemy DRAGONDEATH 0 |
381 | useractor notenemy DRAGONDEATH 0 |
| - | 382 | setvar temp3 -1 |
|
| - | 383 | setactor[THISACTOR].mdflags 16 |
|
| - | 384 | ||
| 376 | addvar temp 1 |
385 | addvar temp 1 |
| - | 386 | ifvare temp 1 |
|
| - | 387 | { |
|
| - | 388 | getplayer[THISACTOR].i temp2 // get the player's ID |
|
| - | 389 | ||
| - | 390 | // get the coordinates of the player and dragon |
|
| - | 391 | getactor[temp2].x x2 |
|
| - | 392 | getactor[temp2].y y2 |
|
| - | 393 | getactor[THISACTOR].x x |
|
| - | 394 | getactor[THISACTOR].y y |
|
| - | 395 | ||
| - | 396 | subvarvar x2 x |
|
| - | 397 | subvarvar y2 y |
|
| - | 398 | getangle y x2 y2 // calculates the angle to face the player |
|
| - | 399 | ||
| - | 400 | setactor[THISACTOR].htang y |
|
| - | 401 | } |
|
| 377 | ifvare temp 26 |
402 | ifvare temp 26 |
| 378 | { |
403 | { |
| 379 | setvar temp 0 |
404 | setvar temp 0 |
| 380 | getactor[THISACTOR].x x |
405 | getactor[THISACTOR].x x |
| 381 | subvar x 1536 |
406 | subvar x 1536 |