011bf680000000 |
Set property for player: 2:80000000 (detected/psychosised) |
011dfd8000000013 |
If $self has property 2:80000000 (detected/psychosised) goto 13 |
000016 |
Go to next 16 |
000213 |
Label 13 |
0006fd0026 |
Set return function for $self to function 0026 - Init psychosised guard |
0005fd0026 |
Assign function 0026 - Init psychosised guard to $self and advance frame |
000216 |
Label 16 |
009d00000100000113 |
If actor flag is something, goto 13 |
01a0fd00 |
Set $self's death animation to 00 |
000213 |
Label 13 |
009c0100000001 |
Unset an actor flag |
011ffd13 |
If something to do with $self goto 13 |
000016 |
Go to next 16 |
000213 |
Label 13 |
0005fd000c |
Assign function 000c - Combat with ally? to $self and advance frame |
000216 |
Label 16 |
00070007 |
When shot/hit, assign function 0007 - Alerted guard |
01c20023 |
Undocumented |
01c3001d |
Undocumented |
00b55354415254204c4f4f500a00 |
// START LOOP |
0033fd16 |
If $self is dying/dead goto 16 |
0034fd16 |
If $self has finished death animation goto 16 |
017bfd16 |
If $self's body has disappeared goto 16 |
00b54e4f5420444541440a00 |
// NOT DEAD |
000013 |
Go to next 13 |
000216 |
Label 16 |
01c60200 |
Undocumented |
00070000 |
When shot/hit, assign function 0000 - Idle |
00b6 |
Reset and start cycle counter |
00021c |
Label 1c |
0003 |
Yield |
00b5444945204c4f4f500a00 |
// DIE LOOP |
00bd00000f16 |
If cycle counter > 15 (0.2 secs) goto 16 |
00011c |
Go to first 1c |
000216 |
Label 16 |
0130f819ff03ff000000 |
Say random quip: "You bitch!","Oh... my... god","She got me" |
00070000 |
When shot/hit, assign function 0000 - Idle |
0005fd0000 |
Assign function 0000 - Idle to $self and advance frame |
000213 |
Label 13 |
00b55354415254204c4f4f50320a00 |
// START LOOP2 |
0083fd16 |
If $self shot (while recoiling?) goto 16 |
016ffd0013 |
If $self has weapon Nothing equipped (?) goto 13 |
000016 |
Go to next 16 |
000213 |
Label 13 |
009d200000000101e7 |
If actor flag is something, goto e7 |
00001b |
Go to next 1b |
000216 |
Label 16 |
00b6 |
Reset and start cycle counter |
009c0000002001 |
Unset an actor flag |
009c2000000001 |
Unset an actor flag |
00b5434845434b494e4a5552590a00 |
// CHECKINJURY |
00021d |
Label 1d |
0003 |
Yield |
009d00000020010016 |
If actor flag is something, goto 16 |
007d0116 |
If actor shot less than 1 times goto 16 |
00bc00001416 |
If cycle counter < 20 (0.3 secs) goto 16 |
0130f80d280300000000 |
Say random quip: "Medic!","Help!","You shot me?!" |
0130f80e280301000000 |
Say random quip: "I'm hit, I'm hit!","I'm taking fire!","Taking damage!" |
009b0000002000 |
Set an actor flag |
000216 |
Label 16 |
00bd0000b413 |
If cycle counter > 180 (3.0 secs) goto 13 |
003213 |
If actor has stopped moving goto 13 |
00011d |
Go to first 1d |
000213 |
Label 13 |
0009 |
Actor stops travelling |
00b5494e4a204f5645520a00 |
// INJ OVER |
009d200000000101e7 |
If actor flag is something, goto e7 |
00b542342047554e0a00 |
// B4 GUN |
016ffd001b |
If $self has weapon Nothing equipped (?) goto 1b |
00b54c4f5354204d592047554e0a00 |
// LOST MY GUN |
0002ac |
Label ac |
01c60200 |
Undocumented |
0130f821ff03ff000000 |
Say random quip: "My gun!" |
0009 |
Actor stops travelling |
00b6 |
Reset and start cycle counter |
0003 |
Yield |
0002b0 |
Label b0 |
00b557414954494e470a00 |
// WAITING |
0003 |
Yield |
0003 |
Yield |
0003 |
Yield |
0061ff0113 |
If someone has weapon Unarmed equipped goto 13 |
0000af |
Go to next af |
000213 |
Label 13 |
017001b1 |
If something goto b1 |
00bd00012caf |
If cycle counter > 300 (5.0 secs) goto af |
0001b0 |
Go to first b0 |
0002b1 |
Label b1 |
00b6 |
Reset and start cycle counter |
017000ad |
If something goto ad |
0002ad |
Label ad |
0003 |
Yield |
00b5474f20464f522047554e0a00 |
// GO FOR GUN |
00bd00012caf |
If cycle counter > 300 (5.0 secs) goto af |
0061ff0113 |
If someone has weapon Unarmed equipped goto 13 |
0000af |
Go to next af |
000213 |
Label 13 |
0171000a16 |
If something goto 16 |
003216 |
If actor has stopped moving goto 16 |
0001ad |
Go to first ad |
000216 |
Label 16 |
00b541542047554e0a00 |
// AT GUN |
00b6 |
Reset and start cycle counter |
000b023d0000ffff1010fd02 |
Actor $self does animation 023d (pick up pistol from ground) |
0002ae |
Label ae |
0003 |
Yield |
00bd00003c16 |
If cycle counter > 60 (1.0 secs) goto 16 |
0001ae |
Go to first ae |
000216 |
Label 16 |
0061ff0113 |
If someone has weapon Unarmed equipped goto 13 |
0000af |
Go to next af |
000213 |
Label 13 |
0172fd16 |
If something to do with $self goto 16 |
0000af |
Go to next af |
000216 |
Label 16 |
00001b |
Go to next 1b |
0002af |
Label af |
0009 |
Actor stops travelling |
00b547455447554e204641494c45440a00 |
// GETGUN FAILED |
0036 |
Call RNG |
003732e6 |
If random byte < 50 goto e6 |
003764e7 |
If random byte < 100 goto e7 |
009b0000020000 |
Set an actor flag |
009b0000000100 |
Set an actor flag |
009b0020000000 |
Set an actor flag |
009c0000200000 |
Unset an actor flag |
009c0000400000 |
Unset an actor flag |
009c8000000000 |
Unset an actor flag |
009b0000000201 |
Set an actor flag |
00001b |
Go to next 1b |
0002e6 |
Label e6 |
009b0000000101 |
Set an actor flag |
00001b |
Go to next 1b |
0002e7 |
Label e7 |
0036 |
Call RNG |
00375213 |
If random byte < 82 goto 13 |
0037a415 |
If random byte < 164 goto 15 |
000b02880000ffff1010fd02 |
Actor $self does animation 0288 (pull out pistol) |
000016 |
Go to next 16 |
000213 |
Label 13 |
000b02890000ffff1010fd02 |
Actor $self does animation 0289 (pull out pistol from belt) |
000016 |
Go to next 16 |
000215 |
Label 15 |
000b02450000ffff1010fd02 |
Actor $self does animation 0245 (turn around, hunch and pull out pistol) |
000216 |
Label 16 |
007b3113 |
If stage < Air Force One goto 13 |
007c3113 |
If stage > Air Force One goto 13 |
00c801020b00000000e5 |
Draw weapon Cyclone with model 0102 then goto e5 |
000213 |
Label 13 |
00c800f50200000000e5 |
Draw weapon Falcon 2 with model f5 then goto e5 |
0002e5 |
Label e5 |
0003 |
Yield |
003216 |
If actor has stopped moving goto 16 |
0001e5 |
Go to first e5 |
000216 |
Label 16 |
009d20000000010113 |
If actor flag is something, goto 13 |
009c8000000000 |
Unset an actor flag |
000213 |
Label 13 |
009c2000000001 |
Unset an actor flag |
000216 |
Label 16 |
00021b |
Label 1b |
0003 |
Yield |
000216 |
Label 16 |
011dfd0000200013 |
If $self has property 2:00002000 (unknown prop) goto 13 |
011df60000100001 |
If player has property 2:00001000 (allow co op buddy to warp to Jo?) goto 01 |
000213 |
Label 13 |
009d00000001010134 |
If actor flag is something, goto 34 |
00b5434845434b494e4a555259454e440a00 |
// CHECKINJURYEND |
00b54234205445414d20434845434b0a00 |
// B4 TEAM CHECK |
003a16 |
If alarm is activated goto 16 |
01371716 |
If something to do with 23 goto 16 |
009d0004000001009f |
If actor flag is something, goto 9f |
000216 |
Label 16 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
000016 |
Go to next 16 |
000213 |
Label 13 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
008a00 |
Set alertness to 0 |
0005fd001d |
Assign function 001d - Searching to $self and advance frame |
000216 |
Label 16 |
009d00001000000093 |
If actor flag is something, goto 93 |
0134fd0813 |
If something to do with $self goto 13 |
0134fd0915 |
If something to do with $self goto 15 |
000093 |
Go to next 93 |
000213 |
Label 13 |
0130f807280301000000 |
Say random quip: "Wipe the target!","Let's split up!","Surround her!" |
00008f |
Go to next 8f |
000215 |
Label 15 |
0130f807280301000000 |
Say random quip: "Wipe the target!","Let's split up!","Surround her!" |
000090 |
Go to next 90 |
000293 |
Label 93 |
009d0000000101006b |
If actor flag is something, goto 6b |
009d00020000010013 |
If actor flag is something, goto 13 |
00b554524150204e4f54205345540a00 |
// TRAP NOT SET |
009d00000004000016 |
If actor flag is something, goto 16 |
000213 |
Label 13 |
00b55649530a00 |
// VIS |
017a16 |
If $player is within disarm range goto 16 |
000098 |
Go to next 98 |
000216 |
Label 16 |
00b554524150204641494c45440a00 |
// TRAP FAILED |
009d02000000010016 |
If actor flag is something, goto 16 |
009d01000000000016 |
If actor flag is something, goto 16 |
000213 |
Label 13 |
00b55649530a00 |
// VIS |
017a16 |
If $player is within disarm range goto 16 |
0000a1 |
Go to next a1 |
000216 |
Label 16 |
009d10000000000016 |
If actor flag is something, goto 16 |
000213 |
Label 13 |
00b5494d20474f494e4720544f20504f500a00 |
// IM GOING TO POP |
0000a4 |
Go to next a4 |
000216 |
Label 16 |
009d00000040000116 |
If actor flag is something, goto 16 |
000213 |
Label 13 |
00b5494d20474f494e4720544f20534e4950450a00 |
// IM GOING TO SNIPE |
0000de |
Go to next de |
000216 |
Label 16 |
00b5414d42555348204641494c45440a00 |
// AMBUSH FAILED |
009d00000200000016 |
If actor flag is something, goto 16 |
007d0116 |
If actor shot less than 1 times goto 16 |
0120036b |
If something goto 6b |
00b55249534b204641494c45440a00 |
// RISK FAILED |
000216 |
Label 16 |
009d00004000010091 |
If actor flag is something, goto 91 |
009d00002000010092 |
If actor flag is something, goto 92 |
000291 |
Label 91 |
01200552 |
If something goto 52 |
000292 |
Label 92 |
000068 |
Go to next 68 |
000298 |
Label 98 |
00b5474f494e4720544f2054524150205041440a00 |
// GOING TO TRAP PAD |
001e01 |
Jog to $self->target_pad (medium speed) |
000299 |
Label 99 |
0003 |
Yield |
000216 |
Label 16 |
003216 |
If actor has stopped moving goto 16 |
000199 |
Go to first 99 |
000216 |
Label 16 |
00b541542054524150205041440a00 |
// AT TRAP PAD |
00029b |
Label 9b |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
00160220000003 |
Actor kneels and shoots at $player, then goto 03 |
000203 |
Label 03 |
0003 |
Yield |
017a9a |
If $player is within disarm range goto 9a |
0108fdf200ee |
If something to do with $self and maybe P1 or P2 goto ee |
0000ef |
Go to next ef |
0002ee |
Label ee |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0108fdf200ee |
If something to do with $self and maybe P1 or P2 goto ee |
0106f20000 |
Set $player to P1 or P2 |
017a9a |
If $player is within disarm range goto 9a |
0002ee |
Label ee |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
0002ef |
Label ef |
000103 |
Go to first 03 |
00029a |
Label 9a |
00170200000004 |
Actor shoots other actor, then goto 04 |
000204 |
Label 04 |
0003 |
Yield |
003216 |
If actor has stopped moving goto 16 |
000104 |
Go to first 04 |
000216 |
Label 16 |
009d00020000010016 |
If actor flag is something, goto 16 |
005200509c |
If actor is within 80 units of $player goto 9c |
000216 |
Label 16 |
00019b |
Go to first 9b |
00029c |
Label 9c |
009c0000000400 |
Unset an actor flag |
00011b |
Go to first 1b |
0002a1 |
Label a1 |
000a |
Actor kneels |
0002a2 |
Label a2 |
0003 |
Yield |
00b55741495420464f5220414d420a00 |
// WAIT FOR AMB |
017aa3 |
If $player is within disarm range goto a3 |
00b5414d42310a00 |
// AMB1 |
00590014232813 |
If actor $self is further than 20 units from $self->pad goto 13 |
00b5414d42320a00 |
// AMB2 |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
012878ee |
If actor within 120 units of an enemy and has line of sight then set AI vs AI and goto ee |
0001a2 |
Go to first a2 |
0002ee |
Label ee |
018313 |
If something goto 13 |
0006fd000c |
Set return function for $self to function 000c - Combat with ally? |
0005fd000c |
Assign function 000c - Combat with ally? to $self and advance frame |
000213 |
Label 13 |
00b5414d4255534820504c415945520a00 |
// AMBUSH PLAYER |
009a1e |
Set actor's accuracy to 30 |
009b0200000000 |
Set an actor flag |
0130f801500201000000 |
Say random quip: "Open fire!","Wipe her out!","Waste her!" |
00011b |
Go to first 1b |
0002a3 |
Label a3 |
00b55345454e544152470a00 |
// SEENTARG |
009c0100000000 |
Unset an actor flag |
00011b |
Go to first 1b |
0002a4 |
Label a4 |
009d000020000100a8 |
If actor flag is something, goto a8 |
0121a0b5a5 |
If something (to do with cover?) goto a5 |
00b5504f50504552204641494c45440a00 |
// POPPER FAILED |
000052 |
Go to next 52 |
0002a5 |
Label a5 |
00b5474f20544f20504f505045520a00 |
// GO TO POPPER |
01320500 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
000216 |
Label 16 |
012402 |
Run for cover? |
0002a6 |
Label a6 |
0003 |
Yield |
0032a7 |
If actor has stopped moving goto a7 |
0001a6 |
Go to first a6 |
0002a7 |
Label a7 |
00b5554e44455220504f505045520a00 |
// UNDER POPPER |
0002a8 |
Label a8 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
001502200000a9 |
Actor targets and shoots at $player, then goto a9 |
0002a9 |
Label a9 |
0003 |
Yield |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
004b13 |
If fired near actor goto 13 |
003d0013 |
If shot near actor goto 13 |
003e0013 |
If someone killed in sight of actor goto 13 |
017a13 |
If $player is within disarm range goto 13 |
0001a9 |
Go to first a9 |
000213 |
Label 13 |
0036 |
Call RNG |
00389613 |
If random byte > 150 goto 13 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
001702000000aa |
Actor shoots other actor, then goto aa |
000213 |
Label 13 |
000a |
Actor kneels |
00b6 |
Reset and start cycle counter |
0002ab |
Label ab |
0003 |
Yield |
0106f20000 |
Set $player to P1 or P2 |
0053001e13 |
If actor is further than 30 units from player goto 13 |
009c1000000000 |
Unset an actor flag |
00011b |
Go to first 1b |
000213 |
Label 13 |
0036 |
Call RNG |
0038fa13 |
If random byte > 250 goto 13 |
00bd0000f016 |
If cycle counter > 240 (4.0 secs) goto 16 |
0001ab |
Go to first ab |
000213 |
Label 13 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
00150220000013 |
Actor targets and shoots at $player, then goto 13 |
0001a8 |
Go to first a8 |
000213 |
Label 13 |
017a13 |
If $player is within disarm range goto 13 |
0001a8 |
Go to first a8 |
000213 |
Label 13 |
00170200000013 |
Actor shoots other actor, then goto 13 |
0001a8 |
Go to first a8 |
000213 |
Label 13 |
0002aa |
Label aa |
0003 |
Yield |
003216 |
If actor has stopped moving goto 16 |
0001aa |
Go to first aa |
000216 |
Label 16 |
0001a8 |
Go to first a8 |
0002de |
Label de |
009c8000000000 |
Unset an actor flag |
0003 |
Yield |
0052006416 |
If actor is within 100 units of $player goto 16 |
005300fa14 |
If actor is further than 250 units from player goto 14 |
004d0a13 |
If actor is facing player within 10 degrees (?) goto 13 |
004ff613 |
If something to do with player goto 13 |
00b6 |
Reset and start cycle counter |
0009 |
Actor stops travelling |
001802000000ec |
Actor faces something (entity type=0x0200, entity_id=0x0000), then goto ec |
0002ec |
Label ec |
0003 |
Yield |
004d0a13 |
If actor is facing player within 10 degrees (?) goto 13 |
004ff613 |
If something to do with player goto 13 |
00bd00003c13 |
If cycle counter > 60 (1.0 secs) goto 13 |
0001ec |
Go to first ec |
000213 |
Label 13 |
017a13 |
If $player is within disarm range goto 13 |
0108fdf200ee |
If something to do with $self and maybe P1 or P2 goto ee |
0000ef |
Go to next ef |
0002ee |
Label ee |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0108fdf200ee |
If something to do with $self and maybe P1 or P2 goto ee |
0106f20000 |
Set $player to P1 or P2 |
017a13 |
If $player is within disarm range goto 13 |
0002ee |
Label ee |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
0002ef |
Label ef |
0001de |
Go to first de |
000214 |
Label 14 |
002de1 |
Run to Jo, then goto e1 |
0002e1 |
Label e1 |
0003 |
Yield |
005200fa15 |
If actor is within 250 units of $player goto 15 |
0001e1 |
Go to first e1 |
000215 |
Label 15 |
0001de |
Go to first de |
000213 |
Label 13 |
00b6 |
Reset and start cycle counter |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
01ba0022 |
Undocumented |
0000df |
Go to next df |
0002df |
Label df |
0003 |
Yield |
0052006416 |
If actor is within 100 units of $player goto 16 |
00bd00012c13 |
If cycle counter > 300 (5.0 secs) goto 13 |
0001df |
Go to first df |
000213 |
Label 13 |
017a13 |
If $player is within disarm range goto 13 |
009b8000000000 |
Set an actor flag |
0009 |
Actor stops travelling |
00011b |
Go to first 1b |
000213 |
Label 13 |
00b6 |
Reset and start cycle counter |
009a64 |
Set actor's accuracy to 100 |
01ba0200 |
Undocumented |
0000e0 |
Go to next e0 |
00b5534e49504552204e4f2053484f4f540a00 |
// SNIPER NO SHOOT |
0002e0 |
Label e0 |
0003 |
Yield |
00b5534e49504552202053484f4f540a00 |
// SNIPER SHOOT |
003213 |
If actor has stopped moving goto 13 |
0001e0 |
Go to first e0 |
000213 |
Label 13 |
009a0a |
Set actor's accuracy to 10 |
0009 |
Actor stops travelling |
0001de |
Go to first de |
000216 |
Label 16 |
0009 |
Actor stops travelling |
009c0000004001 |
Unset an actor flag |
009b8000000000 |
Set an actor flag |
00b6 |
Reset and start cycle counter |
0002bd |
Label bd |
0003 |
Yield |
00bd00003c13 |
If cycle counter > 60 (1.0 secs) goto 13 |
0001bd |
Go to first bd |
000213 |
Label 13 |
00011b |
Go to first 1b |
000252 |
Label 52 |
00b5414d42555348204641494c4544330a00 |
// AMBUSH FAILED3 |
004e3c010016 |
If player is looking right at something (?) goto 16 |
000068 |
Go to next 68 |
000216 |
Label 16 |
00b5414d42555348204641494c4544340a00 |
// AMBUSH FAILED4 |
009d00000010010016 |
If actor flag is something, goto 16 |
00005b |
Go to next 5b |
000216 |
Label 16 |
009d00000080010013 |
If actor flag is something, goto 13 |
0036 |
Call RNG |
00386413 |
If random byte > 100 goto 13 |
004e1e010016 |
If player is looking right at something (?) goto 16 |
000213 |
Label 13 |
00410000001e5f |
If $player is within 30 units of having line of sight goto 5f |
000216 |
Label 16 |
00410000001e16 |
If $player is within 30 units of having line of sight goto 16 |
012669 |
If something goto 69 |
005300c861 |
If actor is further than 200 units from player goto 61 |
000016 |
Go to next 16 |
000269 |
Label 69 |
0053019061 |
If actor is further than 400 units from player goto 61 |
000216 |
Label 16 |
00b54f4b464f52434f5645520a00 |
// OKFORCOVER |
017a5b |
If $player is within disarm range goto 5b |
00410000001e5b |
If $player is within 30 units of having line of sight goto 5b |
004a5b |
If something (actor in view?) goto 5b |
000056 |
Go to next 56 |
00025b |
Label 5b |
00b5434f56455220494e56414c49440a00 |
// COVER INVALID |
009d00004000010115 |
If actor flag is something, goto 15 |
009d00000040010016 |
If actor flag is something, goto 16 |
009d0800000000005c |
If actor flag is something, goto 5c |
012110b553 |
If something (to do with cover?) goto 53 |
000014 |
Go to next 14 |
00025c |
Label 5c |
0121103553 |
If something (to do with cover?) goto 53 |
000014 |
Go to next 14 |
000216 |
Label 16 |
0121003553 |
If something (to do with cover?) goto 53 |
000014 |
Go to next 14 |
000215 |
Label 15 |
00b5534f465420434f5645520a00 |
// SOFT COVER |
009d00000040010016 |
If actor flag is something, goto 16 |
009d0800000000005c |
If actor flag is something, goto 5c |
012190b553 |
If something (to do with cover?) goto 53 |
000014 |
Go to next 14 |
00025c |
Label 5c |
0121903553 |
If something (to do with cover?) goto 53 |
000014 |
Go to next 14 |
000216 |
Label 16 |
0121803553 |
If something (to do with cover?) goto 53 |
000014 |
Go to next 14 |
000214 |
Label 14 |
000054 |
Go to next 54 |
000253 |
Label 53 |
00b5474f20544f20434f5645520a00 |
// GO TO COVER |
01320500 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
009d00001000000016 |
If actor flag is something, goto 16 |
01330e16 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
0130f802ff0201000000 |
Say random quip: "Cover me!","Watch my back!","Taker cover!" |
00b6 |
Reset and start cycle counter |
012402 |
Run for cover? |
000255 |
Label 55 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
009d00001000010113 |
If actor flag is something, goto 13 |
009d00000001010116 |
If actor flag is something, goto 16 |
0052000c16 |
If actor is within 12 units of $player goto 16 |
0036 |
Call RNG |
00378013 |
If random byte < 128 goto 13 |
0053001913 |
If actor is further than 25 units from player goto 13 |
000216 |
Label 16 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd000f |
Assign function 000f - Hand combat to $self and advance frame |
000213 |
Label 13 |
00bd00012c56 |
If cycle counter > 300 (5.0 secs) goto 56 |
003256 |
If actor has stopped moving goto 56 |
000155 |
Go to first 55 |
000256 |
Label 56 |
009b0000001000 |
Set an actor flag |
00b5554e44455220434f5645520a00 |
// UNDER COVER |
000258 |
Label 58 |
00b0f6 |
Set $self->target_actor to player |
00b6 |
Reset and start cycle counter |
01320201 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
00160220000059 |
Actor kneels and shoots at $player, then goto 59 |
000259 |
Label 59 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
00410000001e5f |
If $player is within 30 units of having line of sight goto 5f |
00bd0000f061 |
If cycle counter > 240 (4.0 secs) goto 61 |
009d00001000000093 |
If actor flag is something, goto 93 |
013584000293 |
If something goto 93 |
00025a |
Label 5a |
000159 |
Go to first 59 |
000261 |
Label 61 |
0106fc0000 |
Set $player to $self->target_actor |
00b5425245414b20434f5645520a00 |
// BREAK COVER |
009d00008000010066 |
If actor flag is something, goto 66 |
000216 |
Label 16 |
000016 |
Go to next 16 |
000266 |
Label 66 |
012669 |
If something goto 69 |
005300c816 |
If actor is further than 200 units from player goto 16 |
00006a |
Go to next 6a |
000269 |
Label 69 |
0053019016 |
If actor is further than 400 units from player goto 16 |
00026a |
Label 6a |
004e11010063 |
If player is looking right at something (?) goto 63 |
000216 |
Label 16 |
000264 |
Label 64 |
01320600 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
009d00001000000016 |
If actor flag is something, goto 16 |
01330616 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
012f |
Undocumented |
00b6 |
Reset and start cycle counter |
002d62 |
Run to Jo, then goto 62 |
000262 |
Label 62 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
017a5f |
If $player is within disarm range goto 5f |
012669 |
If something goto 69 |
005300c865 |
If actor is further than 200 units from player goto 65 |
000016 |
Go to next 16 |
000269 |
Label 69 |
0053019065 |
If actor is further than 400 units from player goto 65 |
000216 |
Label 16 |
00bd00007863 |
If cycle counter > 120 (2.0 secs) goto 63 |
000265 |
Label 65 |
000162 |
Go to first 62 |
000263 |
Label 63 |
009d00008000000013 |
If actor flag is something, goto 13 |
004e11010016 |
If player is looking right at something (?) goto 16 |
000164 |
Go to first 64 |
000213 |
Label 13 |
009b0100000001 |
Set an actor flag |
000034 |
Go to next 34 |
000216 |
Label 16 |
0009 |
Actor stops travelling |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
00b54241434b20544f20434f5645520a00 |
// BACK TO COVER |
000152 |
Go to first 52 |
00025f |
Label 5f |
012f |
Undocumented |
00b5534545434f5645520a00 |
// SEECOVER |
01320700 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
009d00001000000016 |
If actor flag is something, goto 16 |
01330716 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
009d00001000000093 |
If actor flag is something, goto 93 |
013584000293 |
If something goto 93 |
017a26 |
If $player is within disarm range goto 26 |
000087 |
Go to next 87 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
009d00001000010113 |
If actor flag is something, goto 13 |
009d00000001010116 |
If actor flag is something, goto 16 |
0052000c16 |
If actor is within 12 units of $player goto 16 |
0036 |
Call RNG |
00378013 |
If random byte < 128 goto 13 |
0053001913 |
If actor is further than 25 units from player goto 13 |
000216 |
Label 16 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd000f |
Assign function 000f - Hand combat to $self and advance frame |
000213 |
Label 13 |
009d00002000000113 |
If actor flag is something, goto 13 |
009c0000200001 |
Unset an actor flag |
000048 |
Go to next 48 |
000213 |
Label 13 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
0036 |
Call RNG |
00370a57 |
If random byte < 10 goto 57 |
00384016 |
If random byte > 64 goto 16 |
009d00000010000113 |
If actor flag is something, goto 13 |
01845a64 |
Undocumented |
009b0000002001 |
Set an actor flag |
000060 |
Go to next 60 |
000213 |
Label 13 |
009d00000004000113 |
If actor flag is something, goto 13 |
0184141e |
Undocumented |
000060 |
Go to next 60 |
000213 |
Label 13 |
000216 |
Label 16 |
0036 |
Call RNG |
00383213 |
If random byte > 50 goto 13 |
0036 |
Call RNG |
00388016 |
If random byte > 128 goto 16 |
0002be |
Label be |
001460 |
Actor rolls and fires, then goto 60 |
000216 |
Label 16 |
001260 |
Actor walks while firing, then goto 60 |
000213 |
Label 13 |
0036 |
Call RNG |
0038808c |
If random byte > 128 goto 8c |
00160220000016 |
Actor kneels and shoots at $player, then goto 16 |
00028c |
Label 8c |
00150220000016 |
Actor targets and shoots at $player, then goto 16 |
000216 |
Label 16 |
00170200000060 |
Actor shoots other actor, then goto 60 |
000260 |
Label 60 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
00325e |
If actor has stopped moving goto 5e |
000160 |
Go to first 60 |
000257 |
Label 57 |
0130f827fe03ff000000 |
Say random quip: "My gun!" |
01a3fe |
Character moves hands (gun jammed) |
0000e8 |
Go to next e8 |
00025e |
Label 5e |
0036 |
Call RNG |
00371416 |
If random byte < 20 goto 16 |
009d00000020000113 |
If actor flag is something, goto 13 |
000216 |
Label 16 |
009b0000002001 |
Set an actor flag |
00b6 |
Reset and start cycle counter |
000b02090000ffff1010fd02 |
Actor $self does animation 0209 (reload pistol) |
0002e8 |
Label e8 |
0003 |
Yield |
009d00000020000116 |
If actor flag is something, goto 16 |
00bc00007816 |
If cycle counter < 120 (2.0 secs) goto 16 |
017c80f607 |
Set sound 80f6 to channel 7 (does not play) |
017907fd00010bb8177001 |
Play sound in slot by $self |
009c0000002001 |
Unset an actor flag |
000216 |
Label 16 |
003213 |
If actor has stopped moving goto 13 |
0001e8 |
Go to first e8 |
000213 |
Label 13 |
009d01000000000013 |
If actor flag is something, goto 13 |
009c0100000000 |
Unset an actor flag |
009a00 |
Set actor's accuracy to 0 |
000213 |
Label 13 |
012516 |
Do something, then goto 16 |
000216 |
Label 16 |
00011b |
Go to first 1b |
000254 |
Label 54 |
00b54e4f20434f564552415641494c41424c450a00 |
// NO COVERAVAILABLE |
000268 |
Label 68 |
017a24 |
If $player is within disarm range goto 24 |
000025 |
Go to next 25 |
000225 |
Label 25 |
00b5484543414e5420534545204d450a00 |
// HECANT SEE ME |
00002f |
Go to next 2f |
000224 |
Label 24 |
00024e |
Label 4e |
009d00000200000016 |
If actor flag is something, goto 16 |
009d0000000101006b |
If actor flag is something, goto 6b |
007d0116 |
If actor shot less than 1 times goto 16 |
0120036b |
If something goto 6b |
000216 |
Label 16 |
009d00004000010091 |
If actor flag is something, goto 91 |
009d0000200001004d |
If actor flag is something, goto 4d |
000291 |
Label 91 |
01200532 |
If something goto 32 |
00004d |
Go to next 4d |
00024d |
Label 4d |
009d00040000010132 |
If actor flag is something, goto 32 |
0036 |
Call RNG |
004e1e010016 |
If player is looking right at something (?) goto 16 |
000032 |
Go to next 32 |
000216 |
Label 16 |
00378032 |
If random byte < 128 goto 32 |
000231 |
Label 31 |
00b5464c414e4b0a00 |
// FLANK |
000216 |
Label 16 |
000213 |
Label 13 |
00b5464c414e4b20424553540a00 |
// FLANK BEST |
009c0002000001 |
Unset an actor flag |
0139000000190201 |
Undocumented |
009d00001000000016 |
If actor flag is something, goto 16 |
01330816 |
Do something (flank?), then goto 16 |
01330916 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
000033 |
Go to next 33 |
00028f |
Label 8f |
00b5464c414e4b204c4546540a00 |
// FLANK LEFT |
01320800 |
Undocumented (to do with cover?) |
01390000014f0200 |
Undocumented |
009d00001000000016 |
If actor flag is something, goto 16 |
01330816 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
000033 |
Go to next 33 |
000290 |
Label 90 |
00b5464c414e4b2052494748540a00 |
// FLANK RIGHT |
01320900 |
Undocumented (to do with cover?) |
009d00001000000016 |
If actor flag is something, goto 16 |
01330916 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
0139000000190200 |
Undocumented |
000233 |
Label 33 |
009b0004000001 |
Set an actor flag |
00b6 |
Reset and start cycle counter |
000230 |
Label 30 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
009d00001000010113 |
If actor flag is something, goto 13 |
009d00000001010116 |
If actor flag is something, goto 16 |
0052000c16 |
If actor is within 12 units of $player goto 16 |
0036 |
Call RNG |
00378013 |
If random byte < 128 goto 13 |
0053001913 |
If actor is further than 25 units from player goto 13 |
000216 |
Label 16 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd000f |
Assign function 000f - Hand combat to $self and advance frame |
000213 |
Label 13 |
003232 |
If actor has stopped moving goto 32 |
00bd0000b432 |
If cycle counter > 180 (3.0 secs) goto 32 |
000130 |
Go to first 30 |
00002f |
Go to next 2f |
009d0002000001012f |
If actor flag is something, goto 2f |
000232 |
Label 32 |
004e14010016 |
If player is looking right at something (?) goto 16 |
00002f |
Go to next 2f |
000216 |
Label 16 |
0036 |
Call RNG |
0038642f |
If random byte > 100 goto 2f |
004a18 |
If something (actor in view?) goto 18 |
00022f |
Label 2f |
00b54320310a00 |
// C 1 |
0053008234 |
If actor is further than 130 units from player goto 34 |
017a26 |
If $player is within disarm range goto 26 |
00b54320320a00 |
// C 2 |
009d00000200000016 |
If actor flag is something, goto 16 |
009d0000000101006b |
If actor flag is something, goto 6b |
007d0116 |
If actor shot less than 1 times goto 16 |
0120036b |
If something goto 6b |
000216 |
Label 16 |
009d00004000010091 |
If actor flag is something, goto 91 |
009d0000200001004d |
If actor flag is something, goto 4d |
000291 |
Label 91 |
01200551 |
If something goto 51 |
00024d |
Label 4d |
00b54320330a00 |
// C 3 |
009d00008000010048 |
If actor flag is something, goto 48 |
000034 |
Go to next 34 |
000251 |
Label 51 |
004e15010016 |
If player is looking right at something (?) goto 16 |
000034 |
Go to next 34 |
000216 |
Label 16 |
00b54320340a00 |
// C 4 |
000a |
Actor kneels |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
000248 |
Label 48 |
00b54752454e414445500a00 |
// GRENADEP |
0094ff |
Set grenade probability to 255/255 |
000216 |
Label 16 |
009d00000800010016 |
If actor flag is something, goto 16 |
00004c |
Go to next 4c |
000216 |
Label 16 |
005200324c |
If actor is within 50 units of $player goto 4c |
00b54752454e4144450a00 |
// GRENADE |
00b6 |
Reset and start cycle counter |
01370b4c |
If something to do with 11 goto 4c |
00b5414354494f4e204752454e4144450a00 |
// ACTION GRENADE |
01320b00 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
001b0200000046 |
Actor has a chance of throwing grenade, then goto 46 |
00004c |
Go to next 4c |
00b54752454e4144454641494c0a00 |
// GRENADEFAIL |
000246 |
Label 46 |
0003 |
Yield |
003216 |
If actor has stopped moving goto 16 |
000146 |
Go to first 46 |
000216 |
Label 16 |
009d00001000000047 |
If actor flag is something, goto 47 |
01330b47 |
Do something (flank?), then goto 47 |
000247 |
Label 47 |
0003 |
Yield |
0130f805ff0700000000 |
Say random quip: "Catch!","Everybody down!","Grenade!" |
00324a |
If actor has stopped moving goto 4a |
000147 |
Go to first 47 |
00024a |
Label 4a |
00bc00003c49 |
If cycle counter < 60 (1.0 secs) goto 49 |
00b54752454e41444553544f500a00 |
// GRENADESTOP |
01320300 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
00b6 |
Reset and start cycle counter |
0018020000004b |
Actor faces something (entity type=0x0200, entity_id=0x0000), then goto 4b |
00024b |
Label 4b |
0003 |
Yield |
00410000001e42 |
If $player is within 30 units of having line of sight goto 42 |
004a42 |
If something (actor in view?) goto 42 |
0108fdf200ee |
If something to do with $self and maybe P1 or P2 goto ee |
0000ef |
Go to next ef |
0002ee |
Label ee |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0108fdf200ee |
If something to do with $self and maybe P1 or P2 goto ee |
0106f20000 |
Set $player to P1 or P2 |
00410000001e42 |
If $player is within 30 units of having line of sight goto 42 |
004a42 |
If something (actor in view?) goto 42 |
0002ee |
Label ee |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
0002ef |
Label ef |
00bd0000f049 |
If cycle counter > 240 (4.0 secs) goto 49 |
00014b |
Go to first 4b |
000249 |
Label 49 |
00024c |
Label 4c |
00b6 |
Reset and start cycle counter |
00b557414954494e470a00 |
// WAITING |
01320401 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
00160220000040 |
Actor kneels and shoots at $player, then goto 40 |
000240 |
Label 40 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
009d00004000010091 |
If actor flag is something, goto 91 |
009d00002000010016 |
If actor flag is something, goto 16 |
000291 |
Label 91 |
01200541 |
If something goto 41 |
000216 |
Label 16 |
009d00001000000093 |
If actor flag is something, goto 93 |
013584000293 |
If something goto 93 |
00410000001e42 |
If $player is within 30 units of having line of sight goto 42 |
0108fdf200ee |
If something to do with $self and maybe P1 or P2 goto ee |
0000ef |
Go to next ef |
0002ee |
Label ee |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0108fdf200ee |
If something to do with $self and maybe P1 or P2 goto ee |
0106f20000 |
Set $player to P1 or P2 |
00410000001e42 |
If $player is within 30 units of having line of sight goto 42 |
0002ee |
Label ee |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
0002ef |
Label ef |
00bd0002583d |
If cycle counter > 600 (10.0 secs) goto 3d |
00bd00003c16 |
If cycle counter > 60 (1.0 secs) goto 16 |
000216 |
Label 16 |
004e15010016 |
If player is looking right at something (?) goto 16 |
000034 |
Go to next 34 |
000216 |
Label 16 |
005300c841 |
If actor is further than 200 units from player goto 41 |
000140 |
Go to first 40 |
000242 |
Label 42 |
00b5534545574149540a00 |
// SEEWAIT |
01320c00 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
00b553454557414954320a00 |
// SEEWAIT2 |
009d00001000000016 |
If actor flag is something, goto 16 |
01330c16 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
00b553454557414954330a00 |
// SEEWAIT3 |
017a8a |
If $player is within disarm range goto 8a |
00b6 |
Reset and start cycle counter |
002d89 |
Run to Jo, then goto 89 |
000289 |
Label 89 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
009d00004000010091 |
If actor flag is something, goto 91 |
009d00002000010016 |
If actor flag is something, goto 16 |
000291 |
Label 91 |
01200541 |
If something goto 41 |
000216 |
Label 16 |
017a8a |
If $player is within disarm range goto 8a |
00bd00003c29 |
If cycle counter > 60 (1.0 secs) goto 29 |
000189 |
Go to first 89 |
00028a |
Label 8a |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
009d00001000010113 |
If actor flag is something, goto 13 |
009d00000001010116 |
If actor flag is something, goto 16 |
0052000c16 |
If actor is within 12 units of $player goto 16 |
0036 |
Call RNG |
00378013 |
If random byte < 128 goto 13 |
0053001913 |
If actor is further than 25 units from player goto 13 |
000216 |
Label 16 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd000f |
Assign function 000f - Hand combat to $self and advance frame |
000213 |
Label 13 |
009d00002000000113 |
If actor flag is something, goto 13 |
009c0000200001 |
Unset an actor flag |
000148 |
Go to first 48 |
000213 |
Label 13 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
0036 |
Call RNG |
00370a57 |
If random byte < 10 goto 57 |
00384016 |
If random byte > 64 goto 16 |
009d00000010000113 |
If actor flag is something, goto 13 |
01845a64 |
Undocumented |
009b0000002001 |
Set an actor flag |
000043 |
Go to next 43 |
000213 |
Label 13 |
009d00000004000113 |
If actor flag is something, goto 13 |
0184141e |
Undocumented |
000043 |
Go to next 43 |
000213 |
Label 13 |
000216 |
Label 16 |
0036 |
Call RNG |
00383213 |
If random byte > 50 goto 13 |
0036 |
Call RNG |
00388016 |
If random byte > 128 goto 16 |
0002be |
Label be |
001443 |
Actor rolls and fires, then goto 43 |
000216 |
Label 16 |
001243 |
Actor walks while firing, then goto 43 |
000213 |
Label 13 |
0036 |
Call RNG |
0038808c |
If random byte > 128 goto 8c |
00150220000016 |
Actor targets and shoots at $player, then goto 16 |
00028c |
Label 8c |
00160220000016 |
Actor kneels and shoots at $player, then goto 16 |
000216 |
Label 16 |
00170200000043 |
Actor shoots other actor, then goto 43 |
000243 |
Label 43 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
003229 |
If actor has stopped moving goto 29 |
000143 |
Go to first 43 |
000257 |
Label 57 |
0130f827fe03ff000000 |
Say random quip: "My gun!" |
01a3fe |
Character moves hands (gun jammed) |
0000e9 |
Go to next e9 |
000229 |
Label 29 |
009d01000000000013 |
If actor flag is something, goto 13 |
009c0100000000 |
Unset an actor flag |
009a00 |
Set actor's accuracy to 0 |
000213 |
Label 13 |
0165fd13 |
If $self shot (?) goto 13 |
0130f816190300000000 |
Say random quip: "Damn, missed!","How did I miss?" |
0130f817190301000000 |
Say random quip: "God sakes, someone hit her","She's a tricky one" |
000016 |
Go to next 16 |
000213 |
Label 13 |
0130f815190200000000 |
Say random quip: "Give it up!","Surrender, now!","Take that!" |
0130f815190301000000 |
Say random quip: "Give it up!","Surrender, now!","Take that!" |
000216 |
Label 16 |
0036 |
Call RNG |
00371416 |
If random byte < 20 goto 16 |
009d00000020000113 |
If actor flag is something, goto 13 |
000216 |
Label 16 |
009b0000002001 |
Set an actor flag |
00b6 |
Reset and start cycle counter |
000b02090000ffff1010fd02 |
Actor $self does animation 0209 (reload pistol) |
0002e9 |
Label e9 |
0003 |
Yield |
009d00000020000116 |
If actor flag is something, goto 16 |
00bc00007816 |
If cycle counter < 120 (2.0 secs) goto 16 |
017c80f606 |
Set sound 80f6 to channel 6 (does not play) |
017906fd00010bb8177001 |
Play sound in slot by $self |
009c0000002001 |
Unset an actor flag |
000216 |
Label 16 |
003213 |
If actor has stopped moving goto 13 |
0001e9 |
Go to first e9 |
000213 |
Label 13 |
00028b |
Label 8b |
00b54241434b4f46460a00 |
// BACKOFF |
004e14010013 |
If player is looking right at something (?) goto 13 |
000050 |
Go to next 50 |
000213 |
Label 13 |
009d00000100010016 |
If actor flag is something, goto 16 |
000050 |
Go to next 50 |
000216 |
Label 16 |
01320d00 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
00b6 |
Reset and start cycle counter |
01360201 |
Undocumented |
012f |
Undocumented |
00024f |
Label 4f |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
00bd00007850 |
If cycle counter > 120 (2.0 secs) goto 50 |
003250 |
If actor has stopped moving goto 50 |
00014f |
Go to first 4f |
000250 |
Label 50 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
009d00001000010113 |
If actor flag is something, goto 13 |
009d00000001010116 |
If actor flag is something, goto 16 |
0052000c16 |
If actor is within 12 units of $player goto 16 |
0036 |
Call RNG |
00378013 |
If random byte < 128 goto 13 |
0053001913 |
If actor is further than 25 units from player goto 13 |
000216 |
Label 16 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd000f |
Assign function 000f - Hand combat to $self and advance frame |
000213 |
Label 13 |
013d03e4 |
If in danger (?) goto e4 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
000016 |
Go to next 16 |
000213 |
Label 13 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
008a00 |
Set alertness to 0 |
0005fd001d |
Assign function 001d - Searching to $self and advance frame |
009d04000000010016 |
If actor flag is something, goto 16 |
0036 |
Call RNG |
0038c416 |
If random byte > 196 goto 16 |
000034 |
Go to next 34 |
000216 |
Label 16 |
00011b |
Go to first 1b |
00023d |
Label 3d |
00b55741495454494d454f55540a00 |
// WAITTIMEOUT |
009d00020000000013 |
If actor flag is something, goto 13 |
00011b |
Go to first 1b |
000213 |
Label 13 |
01321000 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
009d00001000000016 |
If actor flag is something, goto 16 |
01331016 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
00003f |
Go to next 3f |
00b5574149544d4f56450a00 |
// WAITMOVE |
00113e |
Actor runs sideways, then goto 3e |
00023e |
Label 3e |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
00323f |
If actor has stopped moving goto 3f |
00013e |
Go to first 3e |
00023f |
Label 3f |
00011b |
Go to first 1b |
000241 |
Label 41 |
00011b |
Go to first 1b |
000234 |
Label 34 |
00b0f6 |
Set $self->target_actor to player |
00b5545241434b0a00 |
// TRACK |
01321200 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
00b6 |
Reset and start cycle counter |
0002f7 |
Label f7 |
002d35 |
Run to Jo, then goto 35 |
000235 |
Label 35 |
0003 |
Yield |
011dfd0000200013 |
If $self has property 2:00002000 (unknown prop) goto 13 |
011df60000100001 |
If player has property 2:00001000 (allow co op buddy to warp to Jo?) goto 01 |
000213 |
Label 13 |
013d03e4 |
If in danger (?) goto e4 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
009d00001000010113 |
If actor flag is something, goto 13 |
009d00000001010116 |
If actor flag is something, goto 16 |
0052000c16 |
If actor is within 12 units of $player goto 16 |
0036 |
Call RNG |
00378013 |
If random byte < 128 goto 13 |
0053001913 |
If actor is further than 25 units from player goto 13 |
000216 |
Label 16 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd000f |
Assign function 000f - Hand combat to $self and advance frame |
000213 |
Label 13 |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
0053008213 |
If actor is further than 130 units from player goto 13 |
009d01000000010116 |
If actor flag is something, goto 16 |
009d02000000000116 |
If actor flag is something, goto 16 |
004e1501003b |
If player is looking right at something (?) goto 3b |
000016 |
Go to next 16 |
0002c8 |
Label c8 |
009c0200000001 |
Unset an actor flag |
000131 |
Go to first 31 |
000216 |
Label 16 |
017a26 |
If $player is within disarm range goto 26 |
000213 |
Label 13 |
00b54e4f534545504c415945520a00 |
// NOSEEPLAYER |
009d00010000000013 |
If actor flag is something, goto 13 |
0128fe16 |
If actor within 254 units of an enemy and has line of sight then set AI vs AI and goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
018313 |
If something goto 13 |
0006fd0006 |
Set return function for $self to function 0006 - Unalerted guard |
0005fd000c |
Assign function 000c - Combat with ally? to $self and advance frame |
000213 |
Label 13 |
005300823c |
If actor is further than 130 units from player goto 3c |
009d00000200000016 |
If actor flag is something, goto 16 |
009d0000000101006b |
If actor flag is something, goto 6b |
007d0116 |
If actor shot less than 1 times goto 16 |
0120036b |
If something goto 6b |
000216 |
Label 16 |
009d00004000010091 |
If actor flag is something, goto 91 |
009d0000200001004d |
If actor flag is something, goto 4d |
000291 |
Label 91 |
01200539 |
If something goto 39 |
00024d |
Label 4d |
009d0000800001003a |
If actor flag is something, goto 3a |
00003c |
Go to next 3c |
000239 |
Label 39 |
009d0100000001013c |
If actor flag is something, goto 3c |
004e1501003b |
If player is looking right at something (?) goto 3b |
005200823b |
If actor is within 130 units of $player goto 3b |
000017 |
Go to next 17 |
00023a |
Label 3a |
009d0100000001013c |
If actor flag is something, goto 3c |
004e1501003b |
If player is looking right at something (?) goto 3b |
00003c |
Go to next 3c |
00023c |
Label 3c |
00b54e4f414e470a00 |
// NOANG |
000217 |
Label 17 |
003213 |
If actor has stopped moving goto 13 |
00bd00025836 |
If cycle counter > 600 (10.0 secs) goto 36 |
000135 |
Go to first 35 |
000213 |
Label 13 |
00b5434f4d504c455445440a00 |
// COMPLETED |
0106fc0000 |
Set $player to $self->target_actor |
0001f7 |
Go to first f7 |
000236 |
Label 36 |
0106fc0000 |
Set $player to $self->target_actor |
00b5454e4420545241434b0a00 |
// END TRACK |
008a00 |
Set alertness to 0 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd001d |
Assign function 001d - Searching to $self and advance frame |
00011b |
Go to first 1b |
00023b |
Label 3b |
00011b |
Go to first 1b |
000237 |
Label 37 |
00011b |
Go to first 1b |
000287 |
Label 87 |
00b553594e432053484f4f540a00 |
// SYNC SHOOT |
012f |
Undocumented |
01320e00 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
00b6 |
Reset and start cycle counter |
002d85 |
Run to Jo, then goto 85 |
000285 |
Label 85 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
009d00001000010113 |
If actor flag is something, goto 13 |
009d00000001010116 |
If actor flag is something, goto 16 |
0052000c16 |
If actor is within 12 units of $player goto 16 |
0036 |
Call RNG |
00378013 |
If random byte < 128 goto 13 |
0053001913 |
If actor is further than 25 units from player goto 13 |
000216 |
Label 16 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd000f |
Assign function 000f - Hand combat to $self and advance frame |
000213 |
Label 13 |
017a26 |
If $player is within disarm range goto 26 |
00bd00007886 |
If cycle counter > 120 (2.0 secs) goto 86 |
000185 |
Go to first 85 |
000286 |
Label 86 |
00011b |
Go to first 1b |
000226 |
Label 26 |
00b54943414e534520504c415945520a00 |
// ICANSE PLAYER |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
009d00001000010113 |
If actor flag is something, goto 13 |
009d00000001010116 |
If actor flag is something, goto 16 |
0052000c16 |
If actor is within 12 units of $player goto 16 |
0036 |
Call RNG |
00378013 |
If random byte < 128 goto 13 |
0053001913 |
If actor is further than 25 units from player goto 13 |
000216 |
Label 16 |
017a16 |
If $player is within disarm range goto 16 |
000013 |
Go to next 13 |
000216 |
Label 16 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd000f |
Assign function 000f - Hand combat to $self and advance frame |
000213 |
Label 13 |
00b57461726765740a00 |
// target |
00b6 |
Reset and start cycle counter |
0009 |
Actor stops travelling |
01320e00 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
009d00002000000113 |
If actor flag is something, goto 13 |
009c0000200001 |
Unset an actor flag |
000148 |
Go to first 48 |
000213 |
Label 13 |
011df620000000eb |
If player has property 2:20000000 (cloaked) goto eb |
0036 |
Call RNG |
00370a57 |
If random byte < 10 goto 57 |
00384016 |
If random byte > 64 goto 16 |
009d00000010000113 |
If actor flag is something, goto 13 |
01845a64 |
Undocumented |
009b0000002001 |
Set an actor flag |
000044 |
Go to next 44 |
000213 |
Label 13 |
009d00000004000113 |
If actor flag is something, goto 13 |
0184141e |
Undocumented |
000044 |
Go to next 44 |
000213 |
Label 13 |
000216 |
Label 16 |
0036 |
Call RNG |
00383213 |
If random byte > 50 goto 13 |
0036 |
Call RNG |
00388016 |
If random byte > 128 goto 16 |
0002be |
Label be |
001444 |
Actor rolls and fires, then goto 44 |
000216 |
Label 16 |
001244 |
Actor walks while firing, then goto 44 |
000213 |
Label 13 |
0036 |
Call RNG |
0038808c |
If random byte > 128 goto 8c |
00160220000028 |
Actor kneels and shoots at $player, then goto 28 |
00028c |
Label 8c |
00150220000028 |
Actor targets and shoots at $player, then goto 28 |
00b553484f4f544641494c45440a00 |
// SHOOTFAILED |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
00018b |
Go to first 8b |
000228 |
Label 28 |
00170200000044 |
Actor shoots other actor, then goto 44 |
000067 |
Go to next 67 |
000244 |
Label 44 |
0130f800190200000000 |
Say random quip: "I've got a clear shot","She's mine!" |
0130f801190201000000 |
Say random quip: "Open fire!","Wipe her out!","Waste her!" |
000245 |
Label 45 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
00322a |
If actor has stopped moving goto 2a |
000145 |
Go to first 45 |
000257 |
Label 57 |
0130f827fe03ff000000 |
Say random quip: "My gun!" |
01a3fe |
Character moves hands (gun jammed) |
0000ea |
Go to next ea |
00022a |
Label 2a |
009d01000000000013 |
If actor flag is something, goto 13 |
009c0100000000 |
Unset an actor flag |
009a00 |
Set actor's accuracy to 0 |
000213 |
Label 13 |
0165fd13 |
If $self shot (?) goto 13 |
0130f816190300000000 |
Say random quip: "Damn, missed!","How did I miss?" |
0130f817190301000000 |
Say random quip: "God sakes, someone hit her","She's a tricky one" |
000016 |
Go to next 16 |
000213 |
Label 13 |
0130f815190200000000 |
Say random quip: "Give it up!","Surrender, now!","Take that!" |
0130f815190301000000 |
Say random quip: "Give it up!","Surrender, now!","Take that!" |
000216 |
Label 16 |
0036 |
Call RNG |
00371416 |
If random byte < 20 goto 16 |
009d00000020000113 |
If actor flag is something, goto 13 |
000216 |
Label 16 |
009b0000002001 |
Set an actor flag |
00b6 |
Reset and start cycle counter |
000b02090000ffff1010fd02 |
Actor $self does animation 0209 (reload pistol) |
0002ea |
Label ea |
0003 |
Yield |
009d00000020000116 |
If actor flag is something, goto 16 |
00bc00007816 |
If cycle counter < 120 (2.0 secs) goto 16 |
017c80f606 |
Set sound 80f6 to channel 6 (does not play) |
017906fd00010bb8177001 |
Play sound in slot by $self |
009c0000002001 |
Unset an actor flag |
000216 |
Label 16 |
003213 |
If actor has stopped moving goto 13 |
0001ea |
Go to first ea |
000213 |
Label 13 |
00b54c45465453484f4f540a00 |
// LEFTSHOOT |
00018b |
Go to first 8b |
000267 |
Label 67 |
00b553484f544e4f574f524b0a00 |
// SHOTNOWORK |
00022b |
Label 2b |
00018b |
Go to first 8b |
000218 |
Label 18 |
00b5446f6467650a00 |
// Dodge |
01320a00 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009b0002000001 |
Set an actor flag |
009d00001000000016 |
If actor flag is something, goto 16 |
01330a16 |
Do something (flank?), then goto 16 |
000216 |
Label 16 |
0036 |
Call RNG |
0037802d |
If random byte < 128 goto 2d |
001013 |
Actor hops sideways, then goto 13 |
00002e |
Go to next 2e |
00022d |
Label 2d |
000f13 |
Actor steps sideways, then goto 13 |
00002e |
Go to next 2e |
000213 |
Label 13 |
009b0002000001 |
Set an actor flag |
00022c |
Label 2c |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
00322e |
If actor has stopped moving goto 2e |
00012c |
Go to first 2c |
00022e |
Label 2e |
00b5444f44474520444f4e450a00 |
// DODGE DONE |
0036 |
Call RNG |
00378016 |
If random byte < 128 goto 16 |
000187 |
Go to first 87 |
000216 |
Label 16 |
00011b |
Go to first 1b |
00026b |
Label 6b |
01c60000 |
Undocumented |
01c60100 |
Undocumented |
00b5524f555445440a00 |
// ROUTED |
01321300 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
0130f804190201000000 |
Say random quip: "Go to plan B","Get the hell out of here!","Retreat!" |
013a000095 |
Attempt to target another member of our group. On success goto 95 |
009d00000002010116 |
If actor flag is something, goto 16 |
000216 |
Label 16 |
009d00200000010016 |
If actor flag is something, goto 16 |
009c0000020000 |
Unset an actor flag |
009c0000000100 |
Unset an actor flag |
00011b |
Go to first 1b |
000216 |
Label 16 |
00b552554e4e494e470a00 |
// RUNNING |
0106f20000 |
Set $player to P1 or P2 |
01360201 |
Undocumented |
00026c |
Label 6c |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
0053001e16 |
If actor is further than 30 units from player goto 16 |
004a70 |
If something (actor in view?) goto 70 |
000216 |
Label 16 |
0053012c6d |
If actor is further than 300 units from player goto 6d |
00016c |
Go to first 6c |
00026d |
Label 6d |
0009 |
Actor stops travelling |
00026e |
Label 6e |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
0052012c6f |
If actor is within 300 units of $player goto 6f |
00016e |
Go to first 6e |
00026f |
Label 6f |
00016b |
Go to first 6b |
000270 |
Label 70 |
0033fd88 |
If $self is dying/dead goto 88 |
01321400 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
0130f808fe0aff000000 |
Say random quip: "Please! Don't shoot me!","I give up!","You win! I surrender" |
00b6 |
Reset and start cycle counter |
0024 |
Surrender |
000271 |
Label 71 |
0003 |
Yield |
0033fd88 |
If $self is dying/dead goto 88 |
00bd00012c16 |
If cycle counter > 300 (5.0 secs) goto 16 |
01b3fd |
Allow co-op player to be considered for P1/P2 actor |
0106f20000 |
Set $player to P1 or P2 |
004a72 |
If something (actor in view?) goto 72 |
004713 |
If actor is near Jo goto 13 |
000171 |
Go to first 71 |
000216 |
Label 16 |
0068fd |
Actor $self drops concealed items |
0003 |
Yield |
0026fd |
Remove $self |
000213 |
Label 13 |
00b6 |
Reset and start cycle counter |
000171 |
Go to first 71 |
000272 |
Label 72 |
0130f808230a00000000 |
Say random quip: "Please! Don't shoot me!","I give up!","You win! I surrender" |
00b6 |
Reset and start cycle counter |
000171 |
Go to first 71 |
000295 |
Label 95 |
009c0000020000 |
Unset an actor flag |
009c0000000100 |
Unset an actor flag |
0031fc96 |
Run to $self->target_actor, then goto 96 |
000296 |
Label 96 |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
0034fc84 |
If $self->target_actor has finished death animation goto 84 |
017bfc84 |
If $self->target_actor's body has disappeared goto 84 |
0045fc97 |
If actor $self has detected $self->target_actor goto 97 |
003297 |
If actor has stopped moving goto 97 |
000196 |
Go to first 96 |
000297 |
Label 97 |
00b55741524e20465249454e44530a00 |
// WARN FRIENDS |
0130f810ff02ff000000 |
Say random quip: "Intruder alert!","We've got trouble","We've got problems" |
013164 |
For all actors in the same group, set their alertness to 100 |
000284 |
Label 84 |
00011b |
Go to first 1b |
000288 |
Label 88 |
0005fd0000 |
Assign function 0000 - Idle to $self and advance frame |
00029f |
Label 9f |
01321700 |
Undocumented (to do with cover?) |
009c0004000001 |
Unset an actor flag |
009c0002000001 |
Unset an actor flag |
0130f822ff03ff000000 |
Say random quip: "Mauler sound","Trigger the alarm" |
001e01 |
Jog to $self->target_pad (medium speed) |
00029d |
Label 9d |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
003216 |
If actor has stopped moving goto 16 |
00019d |
Go to first 9d |
000216 |
Label 16 |
000b00ac000000c11010fd02 |
Actor $self does animation 00ac (push button with right hand) |
00b6 |
Reset and start cycle counter |
0002ed |
Label ed |
0003 |
Yield |
00bd00004616 |
If cycle counter > 70 (1.2 secs) goto 16 |
0001ed |
Go to first ed |
000216 |
Label 16 |
0028 |
Activate alarm |
00029e |
Label 9e |
0003 |
Yield |
013d03e4 |
If in danger (?) goto e4 |
003216 |
If actor has stopped moving goto 16 |
00019e |
Go to first 9e |
000216 |
Label 16 |
00011b |
Go to first 1b |
0002e4 |
Label e4 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd0011 |
Assign function 0011 - Flee from grenade to $self and advance frame |
0002eb |
Label eb |
008a00 |
Set alertness to 0 |
0006fd0007 |
Set return function for $self to function 0007 - Alerted guard |
0005fd001d |
Assign function 001d - Searching to $self and advance frame |
000201 |
Label 01 |
011bfd00002000 |
Set property for $self: 2:00002000 (unknown prop) |
0009 |
Actor stops travelling |
0034fd16 |
If $self has finished death animation goto 16 |
0033fd16 |
If $self is dying/dead goto 16 |
017bfd16 |
If $self's body has disappeared goto 16 |
003f13 |
If $player is in line of sight goto 13 |
008a00 |
Set alertness to 0 |
009b1000000001 |
Set an actor flag |
0006fd0006 |
Set return function for $self to function 0006 - Unalerted guard |
0005fd001d |
Assign function 001d - Searching to $self and advance frame |
000213 |
Label 13 |
0005fd0007 |
Assign function 0007 - Alerted guard to $self and advance frame |
00020a |
Label 0a |
0005fd0000 |
Assign function 0000 - Idle to $self and advance frame |
0004 |
End of function |
Stuff this function handles:
* dying
* injury
* losing and recovering gun
* running for alarm
* ambushing
* running for cover
* gun jamming
* throwing grenades
* retreating
* warning friends