home *** CD-ROM | disk | FTP | other *** search
Unknown | 2003-04-16 | 13.1 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| file
| data
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 00 00 00 00 00 00 00 | 64 d1 01 63 6c 61 73 73 |........|d..class|
|00000010| 20 42 6f 6d 62 69 6e 67 | 52 75 6e 53 71 75 61 64 | Bombing|RunSquad|
|00000020| 41 49 20 65 78 74 65 6e | 64 73 20 53 71 75 61 64 |AI exten|ds Squad|
|00000030| 41 49 3b 0d 0a 0d 0a 76 | 61 72 20 66 6c 6f 61 74 |AI;....v|ar float|
|00000040| 20 4c 61 73 74 53 65 65 | 46 6c 61 67 43 61 72 72 | LastSee|FlagCarr|
|00000050| 69 65 72 3b 0d 0a 76 61 | 72 20 47 61 6d 65 4f 62 |ier;..va|r GameOb|
|00000060| 6a 65 63 74 20 42 6f 6d | 62 3b 20 0d 0a 76 61 72 |ject Bom|b; ..var|
|00000070| 20 47 61 6d 65 4f 62 6a | 65 63 74 69 76 65 20 45 | GameObj|ective E|
|00000080| 6e 65 6d 79 42 61 73 65 | 2c 20 48 6f 6d 65 42 61 |nemyBase|, HomeBa|
|00000090| 73 65 2c 20 42 6f 6d 62 | 42 61 73 65 3b 0d 0a 76 |se, Bomb|Base;..v|
|000000a0| 61 72 20 66 6c 6f 61 74 | 20 53 63 6f 72 69 6e 67 |ar float| Scoring|
|000000b0| 52 61 6e 64 3b 0d 0a 76 | 61 72 20 63 6c 61 73 73 |Rand;..v|ar class|
|000000c0| 3c 53 68 6f 6f 74 53 70 | 6f 74 3e 20 53 68 6f 6f |<ShootSp|ot> Shoo|
|000000d0| 74 53 70 6f 74 43 6c 61 | 73 73 5b 32 5d 3b 0d 0a |tSpotCla|ss[2];..|
|000000e0| 76 61 72 20 62 6f 74 20 | 53 65 6c 66 50 61 73 73 |var bot |SelfPass|
|000000f0| 65 72 2c 20 50 61 73 73 | 54 61 72 67 65 74 3b 0d |er, Pass|Target;.|
|00000100| 0a 0d 0a 66 75 6e 63 74 | 69 6f 6e 20 41 73 73 69 |...funct|ion Assi|
|00000110| 67 6e 43 6f 6d 62 6f 28 | 42 6f 74 20 42 29 0d 0a |gnCombo(|Bot B)..|
|00000120| 7b 0d 0a 09 69 66 20 28 | 20 47 65 74 4f 72 64 65 |{...if (| GetOrde|
|00000130| 72 73 28 29 20 21 3d 20 | 27 41 74 74 61 63 6b 27 |rs() != |'Attack'|
|00000140| 20 29 0d 0a 09 09 53 75 | 70 65 72 2e 41 73 73 69 | )....Su|per.Assi|
|00000150| 67 6e 43 6f 6d 62 6f 28 | 42 29 3b 0d 0a 7d 0d 0a |gnCombo(|B);..}..|
|00000160| 0d 0a 66 75 6e 63 74 69 | 6f 6e 20 62 6f 6f 6c 20 |..functi|on bool |
|00000170| 41 6c 6c 6f 77 44 65 74 | 6f 75 72 54 6f 28 42 6f |AllowDet|ourTo(Bo|
|00000180| 74 20 42 2c 4e 61 76 69 | 67 61 74 69 6f 6e 50 6f |t B,Navi|gationPo|
|00000190| 69 6e 74 20 4e 29 0d 0a | 7b 0d 0a 09 69 66 20 28 |int N)..|{...if (|
|000001a0| 20 42 2e 50 61 77 6e 20 | 21 3d 20 42 6f 6d 62 2e | B.Pawn |!= Bomb.|
|000001b0| 48 6f 6c 64 65 72 20 29 | 0d 0a 09 09 72 65 74 75 |Holder )|....retu|
|000001c0| 72 6e 20 74 72 75 65 3b | 0d 0a 0d 0a 09 69 66 20 |rn true;|.....if |
|000001d0| 28 20 28 49 6e 76 65 6e | 74 6f 72 79 53 70 6f 74 |( (Inven|torySpot|
|000001e0| 28 4e 29 20 3d 3d 20 4e | 6f 6e 65 29 09 7c 7c 20 |(N) == N|one).|| |
|000001f0| 21 49 6e 76 65 6e 74 6f | 72 79 53 70 6f 74 28 4e |!Invento|rySpot(N|
|00000200| 29 2e 6d 61 72 6b 65 64 | 49 74 65 6d 2e 49 73 41 |).marked|Item.IsA|
|00000210| 28 27 54 6f 75 72 6e 61 | 6d 65 6e 74 48 65 61 6c |('Tourna|mentHeal|
|00000220| 74 68 27 29 20 29 0d 0a | 09 09 72 65 74 75 72 6e |th') )..|..return|
|00000230| 20 66 61 6c 73 65 3b 0d | 0a 09 09 0d 0a 09 72 65 | false;.|......re|
|00000240| 74 75 72 6e 20 28 20 42 | 2e 52 6f 75 74 65 44 69 |turn ( B|.RouteDi|
|00000250| 73 74 20 3e 20 31 30 30 | 30 20 29 3b 0d 0a 7d 0d |st > 100|0 );..}.|
|00000260| 0a 0d 0a 66 75 6e 63 74 | 69 6f 6e 20 62 6f 6f 6c |...funct|ion bool|
|00000270| 20 41 6c 6c 6f 77 54 72 | 61 6e 73 6c 6f 63 61 74 | AllowTr|anslocat|
|00000280| 69 6f 6e 42 79 28 42 6f | 74 20 42 29 0d 0a 7b 0d |ionBy(Bo|t B)..{.|
|00000290| 0a 09 72 65 74 75 72 6e | 20 28 20 42 2e 50 61 77 |..return| ( B.Paw|
|000002a0| 6e 20 21 3d 20 42 6f 6d | 62 2e 48 6f 6c 64 65 72 |n != Bom|b.Holder|
|000002b0| 20 29 3b 0d 0a 7d 0d 0a | 0d 0a 66 75 6e 63 74 69 | );..}..|..functi|
|000002c0| 6f 6e 20 62 6f 6f 6c 20 | 41 6c 6c 6f 77 49 6d 70 |on bool |AllowImp|
|000002d0| 61 63 74 4a 75 6d 70 42 | 79 28 42 6f 74 20 42 29 |actJumpB|y(Bot B)|
|000002e0| 0d 0a 7b 0d 0a 09 72 65 | 74 75 72 6e 20 28 20 42 |..{...re|turn ( B|
|000002f0| 2e 50 61 77 6e 20 21 3d | 20 42 6f 6d 62 2e 48 6f |.Pawn !=| Bomb.Ho|
|00000300| 6c 64 65 72 20 29 3b 0d | 0a 7d 0d 0a 0d 0a 66 75 |lder );.|.}....fu|
|00000310| 6e 63 74 69 6f 6e 20 61 | 63 74 6f 72 20 53 65 74 |nction a|ctor Set|
|00000320| 46 61 63 69 6e 67 41 63 | 74 6f 72 28 42 6f 74 20 |FacingAc|tor(Bot |
|00000330| 42 29 0d 0a 7b 0d 0a 09 | 69 66 20 28 20 42 2e 50 |B)..{...|if ( B.P|
|00000340| 61 77 6e 20 21 3d 20 42 | 6f 6d 62 2e 48 6f 6c 64 |awn != B|omb.Hold|
|00000350| 65 72 20 29 0d 0a 09 09 | 72 65 74 75 72 6e 20 4e |er )....|return N|
|00000360| 6f 6e 65 3b 0d 0a 09 0d | 0a 09 69 66 20 28 20 28 |one;....|..if ( (|
|00000370| 42 2e 45 6e 65 6d 79 20 | 3d 3d 20 4e 6f 6e 65 29 |B.Enemy |== None)|
|00000380| 20 7c 7c 20 28 42 2e 53 | 6b 69 6c 6c 20 3c 20 34 | || (B.S|kill < 4|
|00000390| 29 0d 0a 09 09 7c 7c 20 | 28 56 53 69 7a 65 28 45 |)....|| |(VSize(E|
|000003a0| 6e 65 6d 79 42 61 73 65 | 2e 4c 6f 63 61 74 69 6f |nemyBase|.Locatio|
|000003b0| 6e 20 2d 20 42 2e 50 61 | 77 6e 2e 4c 6f 63 61 74 |n - B.Pa|wn.Locat|
|000003c0| 69 6f 6e 29 20 3e 20 32 | 35 30 30 29 20 29 0d 0a |ion) > 2|500) )..|
|000003d0| 09 09 72 65 74 75 72 6e | 20 42 2e 4d 6f 76 65 74 |..return| B.Movet|
|000003e0| 61 72 67 65 74 3b 0d 0a | 09 69 66 20 28 20 53 68 |arget;..|.if ( Sh|
|000003f0| 6f 6f 74 53 70 6f 74 28 | 42 2e 4d 6f 76 65 54 61 |ootSpot(|B.MoveTa|
|00000400| 72 67 65 74 29 20 21 3d | 20 4e 6f 6e 65 20 29 0d |rget) !=| None ).|
|00000410| 0a 09 09 72 65 74 75 72 | 6e 20 45 6e 65 6d 79 42 |...retur|n EnemyB|
|00000420| 61 73 65 3b 0d 0a 09 72 | 65 74 75 72 6e 20 42 2e |ase;...r|eturn B.|
|00000430| 4d 6f 76 65 54 61 72 67 | 65 74 3b 0d 0a 7d 0d 0a |MoveTarg|et;..}..|
|00000440| 0d 0a 2f 2a 20 47 6f 50 | 69 63 6b 75 70 42 6f 6d |../* GoP|ickupBom|
|00000450| 62 28 29 0d 0a 68 61 76 | 65 20 62 6f 74 20 67 6f |b()..hav|e bot go|
|00000460| 20 70 69 63 6b 75 70 20 | 64 72 6f 70 70 65 64 20 | pickup |dropped |
|00000470| 62 6f 6d 62 0d 0a 2a 2f | 0d 0a 66 75 6e 63 74 69 |bomb..*/|..functi|
|00000480| 6f 6e 20 62 6f 6f 6c 20 | 47 6f 50 69 63 6b 75 70 |on bool |GoPickup|
|00000490| 42 6f 6d 62 28 42 6f 74 | 20 42 29 0d 0a 7b 0d 0a |Bomb(Bot| B)..{..|
|000004a0| 09 69 66 20 28 20 42 2e | 50 61 77 6e 2e 54 6f 75 |.if ( B.|Pawn.Tou|
|000004b0| 63 68 69 6e 67 41 63 74 | 6f 72 28 42 6f 6d 62 29 |chingAct|or(Bomb)|
|000004c0| 20 29 0d 0a 09 7b 0d 0a | 09 09 42 6f 6d 62 2e 54 | )...{..|..Bomb.T|
|000004d0| 6f 75 63 68 28 42 2e 50 | 61 77 6e 29 3b 0d 0a 09 |ouch(B.P|awn);...|
|000004e0| 09 72 65 74 75 72 6e 20 | 66 61 6c 73 65 3b 0d 0a |.return |false;..|
|000004f0| 09 7d 0d 0a 09 69 66 20 | 28 20 46 69 6e 64 50 61 |.}...if |( FindPa|
|00000500| 74 68 54 6f 4f 62 6a 65 | 63 74 69 76 65 28 42 2c |thToObje|ctive(B,|
|00000510| 42 6f 6d 62 2e 50 6f 73 | 69 74 69 6f 6e 28 29 29 |Bomb.Pos|ition())|
|00000520| 20 29 0d 0a 09 7b 0d 0a | 09 09 69 66 20 28 20 4c | )...{..|..if ( L|
|00000530| 65 76 65 6c 2e 54 69 6d | 65 53 65 63 6f 6e 64 73 |evel.Tim|eSeconds|
|00000540| 20 2d 20 42 6f 6d 62 69 | 6e 67 52 75 6e 54 65 61 | - Bombi|ngRunTea|
|00000550| 6d 41 49 28 54 65 61 6d | 2e 41 49 29 2e 4c 61 73 |mAI(Team|.AI).Las|
|00000560| 74 47 6f 74 46 6c 61 67 | 20 3e 20 31 35 20 29 0d |tGotFlag| > 15 ).|
|00000570| 0a 09 09 7b 09 0d 0a 09 | 09 09 42 6f 6d 62 69 6e |...{....|..Bombin|
|00000580| 67 52 75 6e 54 65 61 6d | 41 49 28 54 65 61 6d 2e |gRunTeam|AI(Team.|
|00000590| 41 49 29 2e 4c 61 73 74 | 47 6f 74 46 6c 61 67 20 |AI).Last|GotFlag |
|000005a0| 3d 20 4c 65 76 65 6c 2e | 54 69 6d 65 53 65 63 6f |= Level.|TimeSeco|
|000005b0| 6e 64 73 3b 0d 0a 09 09 | 09 42 2e 53 65 6e 64 4d |nds;....|.B.SendM|
|000005c0| 65 73 73 61 67 65 28 4e | 6f 6e 65 2c 20 27 4f 54 |essage(N|one, 'OT|
|000005d0| 48 45 52 27 2c 20 42 2e | 47 65 74 4d 65 73 73 61 |HER', B.|GetMessa|
|000005e0| 67 65 49 6e 64 65 78 28 | 27 47 4f 54 4f 55 52 46 |geIndex(|'GOTOURF|
|000005f0| 4c 41 47 27 29 2c 20 32 | 30 2c 20 27 54 45 41 4d |LAG'), 2|0, 'TEAM|
|00000600| 27 29 3b 0d 0a 09 09 7d | 0d 0a 09 09 42 2e 47 6f |');....}|....B.Go|
|00000610| 61 6c 53 74 72 69 6e 67 | 20 3d 20 22 50 69 63 6b |alString| = "Pick|
|00000620| 20 75 70 20 62 6f 6d 62 | 22 3b 0d 0a 09 09 72 65 | up bomb|";....re|
|00000630| 74 75 72 6e 20 74 72 75 | 65 3b 0d 0a 09 7d 0d 0a |turn tru|e;...}..|
|00000640| 09 72 65 74 75 72 6e 20 | 66 61 6c 73 65 3b 0d 0a |.return |false;..|
|00000650| 7d 0d 0a 0d 0a 66 75 6e | 63 74 69 6f 6e 20 61 63 |}....fun|ction ac|
|00000660| 74 6f 72 20 46 6f 72 6d | 61 74 69 6f 6e 43 65 6e |tor Form|ationCen|
|00000670| 74 65 72 28 29 0d 0a 7b | 0d 0a 09 69 66 20 28 20 |ter()..{|...if ( |
|00000680| 28 53 71 75 61 64 4f 62 | 6a 65 63 74 69 76 65 20 |(SquadOb|jective |
|00000690| 21 3d 20 4e 6f 6e 65 29 | 20 26 26 20 28 53 71 75 |!= None)| && (Squ|
|000006a0| 61 64 4f 62 6a 65 63 74 | 69 76 65 2e 44 65 66 65 |adObject|ive.Defe|
|000006b0| 6e 64 65 72 54 65 61 6d | 49 6e 64 65 78 20 3d 3d |nderTeam|Index ==|
|000006c0| 20 54 65 61 6d 2e 54 65 | 61 6d 49 6e 64 65 78 29 | Team.Te|amIndex)|
|000006d0| 20 29 0d 0a 09 09 72 65 | 74 75 72 6e 20 53 71 75 | )....re|turn Squ|
|000006e0| 61 64 4f 62 6a 65 63 74 | 69 76 65 3b 0d 0a 09 69 |adObject|ive;...i|
|000006f0| 66 20 28 20 28 42 6f 6d | 62 2e 48 6f 6c 64 65 72 |f ( (Bom|b.Holder|
|00000700| 20 21 3d 20 4e 6f 6e 65 | 29 20 26 26 20 28 47 65 | != None|) && (Ge|
|00000710| 74 4f 72 64 65 72 73 28 | 29 20 21 3d 20 27 44 65 |tOrders(|) != 'De|
|00000720| 66 65 6e 64 27 29 20 26 | 26 20 21 53 71 75 61 64 |fend') &|& !Squad|
|00000730| 4c 65 61 64 65 72 2e 49 | 73 41 28 27 50 6c 61 79 |Leader.I|sA('Play|
|00000740| 65 72 43 6f 6e 74 72 6f | 6c 6c 65 72 27 29 20 29 |erContro|ller') )|
|00000750| 0d 0a 09 09 72 65 74 75 | 72 6e 20 42 6f 6d 62 2e |....retu|rn Bomb.|
|00000760| 48 6f 6c 64 65 72 3b 0d | 0a 09 72 65 74 75 72 6e |Holder;.|..return|
|00000770| 20 53 71 75 61 64 4c 65 | 61 64 65 72 2e 50 61 77 | SquadLe|ader.Paw|
|00000780| 6e 3b 0d 0a 7d 0d 0a 0d | 0a 66 75 6e 63 74 69 6f |n;..}...|.functio|
|00000790| 6e 20 62 6f 6f 6c 20 50 | 72 65 66 65 72 53 68 6f |n bool P|referSho|
|000007a0| 6f 74 53 63 6f 72 65 28 | 42 6f 74 20 42 29 0d 0a |otScore(|Bot B)..|
|000007b0| 7b 0d 0a 09 6c 6f 63 61 | 6c 20 54 65 61 6d 49 6e |{...loca|l TeamIn|
|000007c0| 66 6f 20 45 6e 65 6d 79 | 54 65 61 6d 3b 0d 0a 09 |fo Enemy|Team;...|
|000007d0| 6c 6f 63 61 6c 20 62 6f | 6f 6c 20 62 4e 65 65 64 |local bo|ol bNeed|
|000007e0| 54 6f 75 63 68 44 6f 77 | 6e 3b 0d 0a 09 6c 6f 63 |TouchDow|n;...loc|
|000007f0| 61 6c 20 44 65 61 74 68 | 4d 61 74 63 68 20 47 3b |al Death|Match G;|
|00000800| 0d 0a 0d 0a 09 69 66 20 | 28 20 21 45 6e 65 6d 79 |.....if |( !Enemy|
|00000810| 42 61 73 65 2e 62 48 61 | 73 53 68 6f 6f 74 53 70 |Base.bHa|sShootSp|
|00000820| 6f 74 73 20 29 0d 0a 09 | 09 72 65 74 75 72 6e 20 |ots )...|.return |
|00000830| 66 61 6c 73 65 3b 0d 0a | 09 69 66 20 28 20 28 42 |false;..|.if ( (B|
|00000840| 2e 45 6e 65 6d 79 20 3d | 3d 20 4e 6f 6e 65 29 20 |.Enemy =|= None) |
|00000850| 7c 7c 20 28 4c 65 76 65 | 6c 2e 54 69 6d 65 53 65 ||| (Leve|l.TimeSe|
|00000860| 63 6f 6e 64 73 20 2d 20 | 42 2e 4c 61 73 74 53 65 |conds - |B.LastSe|
|00000870| 65 6e 54 69 6d 65 20 3e | 20 34 29 20 29 0d 0a 09 |enTime >| 4) )...|
|00000880| 09 72 65 74 75 72 6e 20 | 66 61 6c 73 65 3b 0d 0a |.return |false;..|
|00000890| 09 69 66 20 28 20 54 65 | 61 6d 20 3d 3d 20 54 65 |.if ( Te|am == Te|
|000008a0| 61 6d 47 61 6d 65 28 4c | 65 76 65 6c 2e 47 61 6d |amGame(L|evel.Gam|
|000008b0| 65 29 2e 54 65 61 6d 73 | 5b 30 5d 20 29 0d 0a 09 |e).Teams|[0] )...|
|000008c0| 09 45 6e 65 6d 79 54 65 | 61 6d 20 3d 20 54 65 61 |.EnemyTe|am = Tea|
|000008d0| 6d 47 61 6d 65 28 4c 65 | 76 65 6c 2e 47 61 6d 65 |mGame(Le|vel.Game|
|000008e0| 29 2e 54 65 61 6d 73 5b | 31 5d 3b 0d 0a 09 65 6c |).Teams[|1];...el|
|000008f0| 73 65 0d 0a 09 09 45 6e | 65 6d 79 54 65 61 6d 20 |se....En|emyTeam |
|00000900| 3d 20 54 65 61 6d 47 61 | 6d 65 28 4c 65 76 65 6c |= TeamGa|me(Level|
|00000910| 2e 47 61 6d 65 29 2e 54 | 65 61 6d 73 5b 30 5d 3b |.Game).T|eams[0];|
|00000920| 0d 0a 0d 0a 09 47 20 3d | 20 44 65 61 74 68 4d 61 |.....G =| DeathMa|
|00000930| 74 63 68 28 4c 65 76 65 | 6c 2e 47 61 6d 65 29 3b |tch(Leve|l.Game);|
|00000940| 0d 0a 09 69 66 20 28 20 | 28 47 2e 47 6f 61 6c 53 |...if ( |(G.GoalS|
|00000950| 63 6f 72 65 20 3e 20 30 | 29 20 26 26 20 28 54 65 |core > 0|) && (Te|
|00000960| 61 6d 2e 53 63 6f 72 65 | 20 3e 20 47 2e 47 6f 61 |am.Score| > G.Goa|
|00000970| 6c 53 63 6f 72 65 20 2d | 20 37 29 20 26 26 20 28 |lScore -| 7) && (|
|00000980| 54 65 61 6d 2e 53 63 6f | 72 65 20 3c 20 47 2e 47 |Team.Sco|re < G.G|
|00000990| 6f 61 6c 53 63 6f 72 65 | 20 2d 20 33 29 20 29 0d |oalScore| - 3) ).|
|000009a0| 0a 09 09 62 4e 65 65 64 | 54 6f 75 63 68 44 6f 77 |...bNeed|TouchDow|
|000009b0| 6e 20 3d 20 74 72 75 65 | 3b 09 09 0d 0a 09 65 6c |n = true|;.....el|
|000009c0| 73 65 20 69 66 20 28 20 | 54 65 61 6d 2e 53 63 6f |se if ( |Team.Sco|
|000009d0| 72 65 20 3e 20 45 6e 65 | 6d 79 54 65 61 6d 2e 53 |re > Ene|myTeam.S|
|000009e0| 63 6f 72 65 20 29 0d 0a | 09 09 62 4e 65 65 64 54 |core )..|..bNeedT|
|000009f0| 6f 75 63 68 44 6f 77 6e | 20 3d 20 28 20 54 65 61 |ouchDown| = ( Tea|
|00000a00| 6d 2e 53 63 6f 72 65 20 | 3c 20 45 6e 65 6d 79 54 |m.Score |< EnemyT|
|00000a10| 65 61 6d 2e 53 63 6f 72 | 65 20 2b 20 33 20 29 3b |eam.Scor|e + 3 );|
|00000a20| 0d 0a 09 65 6c 73 65 0d | 0a 09 09 62 4e 65 65 64 |...else.|...bNeed|
|00000a30| 54 6f 75 63 68 44 6f 77 | 6e 20 3d 20 28 20 45 6e |TouchDow|n = ( En|
|00000a40| 65 6d 79 54 65 61 6d 2e | 53 63 6f 72 65 20 3e 20 |emyTeam.|Score > |
|00000a50| 54 65 61 6d 2e 53 63 6f | 72 65 20 2b 20 33 20 29 |Team.Sco|re + 3 )|
|00000a60| 3b 0d 0a 0d 0a 09 69 66 | 20 28 20 62 4e 65 65 64 |;.....if| ( bNeed|
|00000a70| 54 6f 75 63 68 44 6f 77 | 6e 20 29 0d 0a 09 7b 0d |TouchDow|n )...{.|
|00000a80| 0a 09 09 69 66 20 28 20 | 28 47 2e 54 69 6d 65 4c |...if ( |(G.TimeL|
|00000a90| 69 6d 69 74 20 3e 20 30 | 29 20 26 26 20 28 47 2e |imit > 0|) && (G.|
|00000aa0| 52 65 6d 61 69 6e 69 6e | 67 54 69 6d 65 20 3c 20 |Remainin|gTime < |
|00000ab0| 39 30 29 20 29 0d 0a 09 | 09 09 72 65 74 75 72 6e |90) )...|..return|
|00000ac0| 20 66 61 6c 73 65 3b 0d | 0a 09 09 72 65 74 75 72 | false;.|...retur|
|00000ad0| 6e 20 28 20 45 6e 65 6d | 79 42 61 73 65 2e 47 65 |n ( Enem|yBase.Ge|
|00000ae0| 74 44 69 66 66 69 63 75 | 6c 74 79 28 29 20 3c 20 |tDifficu|lty() < |
|00000af0| 53 63 6f 72 69 6e 67 52 | 61 6e 64 20 2b 20 30 2e |ScoringR|and + 0.|
|00000b00| 33 20 29 3b 0d 0a 09 7d | 0d 0a 09 69 66 20 28 20 |3 );...}|...if ( |
|00000b10| 42 2e 50 61 77 6e 2e 57 | 65 61 70 6f 6e 2e 49 73 |B.Pawn.W|eapon.Is|
|00000b20| 41 28 27 53 75 70 65 72 | 53 68 6f 63 6b 52 69 66 |A('Super|ShockRif|
|00000b30| 6c 65 27 29 20 26 26 20 | 28 46 52 61 6e 64 28 29 |le') && |(FRand()|
|00000b40| 20 3c 20 30 2e 35 29 20 | 29 0d 0a 09 09 72 65 74 | < 0.5) |)....ret|
|00000b50| 75 72 6e 20 74 72 75 65 | 3b 0d 0a 09 09 0d 0a 09 |urn true|;.......|
|00000b60| 69 66 20 28 20 42 2e 50 | 61 77 6e 2e 48 65 61 6c |if ( B.P|awn.Heal|
|00000b70| 74 68 20 3c 20 33 30 20 | 29 0d 0a 09 09 72 65 74 |th < 30 |)....ret|
|00000b80| 75 72 6e 20 28 20 45 6e | 65 6d 79 42 61 73 65 2e |urn ( En|emyBase.|
|00000b90| 47 65 74 44 69 66 66 69 | 63 75 6c 74 79 28 29 20 |GetDiffi|culty() |
|00000ba0| 3c 20 53 63 6f 72 69 6e | 67 52 61 6e 64 20 2d 20 |< Scorin|gRand - |
|00000bb0| 30 2e 33 20 29 3b 0d 0a | 09 09 0d 0a 09 72 65 74 |0.3 );..|.....ret|
|00000bc0| 75 72 6e 20 28 20 45 6e | 65 6d 79 42 61 73 65 2e |urn ( En|emyBase.|
|00000bd0| 47 65 74 44 69 66 66 69 | 63 75 6c 74 79 28 29 20 |GetDiffi|culty() |
|00000be0| 3c 20 53 63 6f 72 69 6e | 67 52 61 6e 64 20 29 3b |< Scorin|gRand );|
|00000bf0| 0d 0a 7d 0d 0a 0d 0a 2f | 2a 20 4f 72 64 65 72 73 |..}..../|* Orders|
|00000c00| 46 6f 72 42 6f 6d 62 43 | 61 72 72 69 65 72 28 29 |ForBombC|arrier()|
|00000c10| 0d 0a 54 65 6c 6c 20 62 | 6f 74 20 77 68 61 74 20 |..Tell b|ot what |
|00000c20| 74 6f 20 64 6f 20 69 66 | 20 68 65 27 73 20 63 61 |to do if| he's ca|
|00000c30| 72 72 79 69 6e 67 20 74 | 68 65 20 66 6c 61 67 0d |rrying t|he flag.|
|00000c40| 0a 2a 2f 09 0d 0a 66 75 | 6e 63 74 69 6f 6e 20 62 |.*/...fu|nction b|
|00000c50| 6f 6f 6c 20 4f 72 64 65 | 72 73 46 6f 72 42 6f 6d |ool Orde|rsForBom|
|00000c60| 62 43 61 72 72 69 65 72 | 28 42 6f 74 20 42 29 0d |bCarrier|(Bot B).|
|00000c70| 0a 7b 0d 0a 09 6c 6f 63 | 61 6c 20 62 6f 74 20 53 |.{...loc|al bot S|
|00000c80| 3b 0d 0a 09 6c 6f 63 61 | 6c 20 76 65 63 74 6f 72 |;...loca|l vector|
|00000c90| 20 56 3b 0d 0a 09 6c 6f | 63 61 6c 20 63 6f 6e 74 | V;...lo|cal cont|
|00000ca0| 72 6f 6c 6c 65 72 20 43 | 3b 0d 0a 09 6c 6f 63 61 |roller C|;...loca|
|00000cb0| 6c 20 50 6c 61 79 65 72 | 43 6f 6e 74 72 6f 6c 6c |l Player|Controll|
|00000cc0| 65 72 20 50 43 3b 0d 0a | 09 6c 6f 63 61 6c 20 62 |er PC;..|.local b|
|00000cd0| 6f 6f 6c 20 62 50 61 73 | 73 69 6e 67 2c 20 62 43 |ool bPas|sing, bC|
|00000ce0| 61 6e 50 61 73 73 2c 20 | 62 53 65 6c 66 50 61 73 |anPass, |bSelfPas|
|00000cf0| 73 3b 0d 0a 09 09 0d 0a | 09 42 2e 54 72 79 43 6f |s;......|.B.TryCo|
|00000d00| 6d 62 6f 28 22 78 47 61 | 6d 65 2e 43 6f 6d 62 6f |mbo("xGa|me.Combo|
|00000d10| 53 70 65 65 64 22 29 3b | 0d 0a 0d 0a 09 69 66 20 |Speed");|.....if |
|00000d20| 28 20 28 42 2e 45 6e 65 | 6d 79 20 21 3d 20 4e 6f |( (B.Ene|my != No|
|00000d30| 6e 65 29 20 26 26 20 28 | 42 2e 50 61 77 6e 2e 48 |ne) && (|B.Pawn.H|
|00000d40| 65 61 6c 74 68 20 3c 20 | 36 30 20 29 29 0d 0a 09 |ealth < |60 ))...|
|00000d50| 09 42 2e 53 65 6e 64 4d | 65 73 73 61 67 65 28 4e |.B.SendM|essage(N|
|00000d60| 6f 6e 65 2c 20 27 4f 54 | 48 45 52 27 2c 20 42 2e |one, 'OT|HER', B.|
|00000d70| 47 65 74 4d 65 73 73 61 | 67 65 49 6e 64 65 78 28 |GetMessa|geIndex(|
|00000d80| 27 4e 45 45 44 42 41 43 | 4b 55 50 27 29 2c 20 32 |'NEEDBAC|KUP'), 2|
|00000d90| 35 2c 20 27 54 45 41 4d | 27 29 3b 0d 0a 09 09 0d |5, 'TEAM|');.....|
|00000da0| 0a 09 42 2e 62 50 6c 61 | 6e 6e 65 64 53 68 6f 74 |..B.bPla|nnedShot|
|00000db0| 20 3d 20 66 61 6c 73 65 | 3b 0d 0a 09 53 65 6c 66 | = false|;...Self|
|00000dc0| 50 61 73 73 65 72 20 3d | 20 4e 6f 6e 65 3b 0d 0a |Passer =| None;..|
|00000dd0| 09 50 61 73 73 54 61 72 | 67 65 74 20 3d 20 4e 6f |.PassTar|get = No|
|00000de0| 6e 65 3b 0d 0a 09 0d 0a | 09 2f 2f 20 64 65 63 69 |ne;.....|.// deci|
|00000df0| 64 65 20 77 68 65 74 68 | 65 72 20 74 6f 20 70 61 |de wheth|er to pa|
|00000e00| 73 73 20 62 61 6c 6c 0d | 0a 09 69 66 20 28 20 28 |ss ball.|..if ( (|
|00000e10| 56 53 69 7a 65 28 42 2e | 50 61 77 6e 2e 4c 6f 63 |VSize(B.|Pawn.Loc|
|00000e20| 61 74 69 6f 6e 20 2d 20 | 45 6e 65 6d 79 42 61 73 |ation - |EnemyBas|
|00000e30| 65 2e 4c 6f 63 61 74 69 | 6f 6e 29 20 3e 20 33 30 |e.Locati|on) > 30|
|00000e40| 30 30 29 0d 0a 09 09 26 | 26 20 28 56 53 69 7a 65 |00)....&|& (VSize|
|00000e50| 28 42 2e 50 61 77 6e 2e | 4c 6f 63 61 74 69 6f 6e |(B.Pawn.|Location|
|00000e60| 20 2d 20 48 6f 6d 65 42 | 61 73 65 2e 4c 6f 63 61 | - HomeB|ase.Loca|
|00000e70| 74 69 6f 6e 29 20 3e 20 | 33 30 30 30 29 20 0d 0a |tion) > |3000) ..|
|00000e80| 09 09 26 26 20 21 42 2e | 50 61 77 6e 2e 49 6e 43 |..&& !B.|Pawn.InC|
|00000e90| 75 72 72 65 6e 74 43 6f | 6d 62 6f 28 29 20 29 0d |urrentCo|mbo() ).|
|00000ea0| 0a 09 09 09 62 43 61 6e | 50 61 73 73 20 3d 20 74 |....bCan|Pass = t|
|00000eb0| 72 75 65 3b 0d 0a 09 62 | 53 65 6c 66 50 61 73 73 |rue;...b|SelfPass|
|00000ec0| 20 3d 20 62 43 61 6e 50 | 61 73 73 20 26 26 20 28 | = bCanP|ass && (|
|00000ed0| 42 2e 54 72 61 6e 73 6c | 6f 63 46 72 65 71 20 3c |B.Transl|ocFreq <|
|00000ee0| 20 4c 65 76 65 6c 2e 54 | 69 6d 65 53 65 63 6f 6e | Level.T|imeSecon|
|00000ef0| 64 73 20 2b 20 31 32 29 | 20 26 26 20 28 42 2e 53 |ds + 12)| && (B.S|
|00000f00| 6b 69 6c 6c 20 2b 20 42 | 2e 54 61 63 74 69 63 73 |kill + B|.Tactics|
|00000f10| 20 3e 20 33 20 2b 20 34 | 2a 46 52 61 6e 64 28 29 | > 3 + 4|*FRand()|
|00000f20| 29 0d 0a 09 09 09 09 26 | 26 20 28 28 42 2e 45 6e |)......&|& ((B.En|
|00000f30| 65 6d 79 20 3d 3d 20 4e | 6f 6e 65 29 20 7c 7c 20 |emy == N|one) || |
|00000f40| 28 56 53 69 7a 65 28 42 | 2e 50 61 77 6e 2e 4c 6f |(VSize(B|.Pawn.Lo|
|00000f50| 63 61 74 69 6f 6e 20 2d | 20 48 6f 6d 65 42 61 73 |cation -| HomeBas|
|00000f60| 65 2e 4c 6f 63 61 74 69 | 6f 6e 29 20 3e 20 35 30 |e.Locati|on) > 50|
|00000f70| 30 30 29 29 3b 0d 0a 09 | 0d 0a 09 69 66 20 28 20 |00));...|...if ( |
|00000f80| 62 43 61 6e 50 61 73 73 | 20 29 0d 0a 09 7b 0d 0a |bCanPass| )...{..|
|00000f90| 09 09 2f 2f 20 63 68 65 | 63 6b 20 66 6f 72 20 6e |..// che|ck for n|
|00000fa0| 65 61 72 62 79 20 74 65 | 61 6d 6d 61 74 65 20 74 |earby te|ammate t|
|00000fb0| 6f 20 70 61 73 73 20 74 | 6f 20 0d 0a 09 09 2f 2f |o pass t|o ....//|
|00000fc0| 20 66 69 72 73 74 20 63 | 68 65 63 6b 20 66 6f 72 | first c|heck for|
|00000fd0| 20 68 75 6d 61 6e 20 70 | 6c 61 79 65 72 0d 0a 09 | human p|layer...|
|00000fe0| 09 56 20 3d 20 76 65 63 | 74 6f 72 28 42 2e 50 61 |.V = vec|tor(B.Pa|
|00000ff0| 77 6e 2e 52 6f 74 61 74 | 69 6f 6e 29 3b 0d 0a 09 |wn.Rotat|ion);...|
|00001000| 09 66 6f 72 20 28 20 43 | 3d 4c 65 76 65 6c 2e 43 |.for ( C|=Level.C|
|00001010| 6f 6e 74 72 6f 6c 6c 65 | 72 4c 69 73 74 3b 20 43 |ontrolle|rList; C|
|00001020| 21 3d 4e 6f 6e 65 3b 20 | 43 3d 43 2e 4e 65 78 74 |!=None; |C=C.Next|
|00001030| 43 6f 6e 74 72 6f 6c 6c | 65 72 20 29 0d 0a 09 09 |Controll|er )....|
|00001040| 7b 0d 0a 09 09 09 50 43 | 20 3d 20 50 6c 61 79 65 |{.....PC| = Playe|
|00001050| 72 43 6f 6e 74 72 6f 6c | 6c 65 72 28 43 29 3b 0d |rControl|ler(C);.|
|00001060| 0a 09 09 09 69 66 20 28 | 20 28 50 43 20 21 3d 20 |....if (| (PC != |
|00001070| 4e 6f 6e 65 29 20 26 26 | 20 42 2e 53 61 6d 65 54 |None) &&| B.SameT|
|00001080| 65 61 6d 41 73 28 50 43 | 29 20 26 26 20 28 50 43 |eamAs(PC|) && (PC|
|00001090| 2e 50 61 77 6e 20 21 3d | 20 4e 6f 6e 65 29 20 0d |.Pawn !=| None) .|
|000010a0| 0a 09 09 09 09 26 26 20 | 28 28 50 43 2e 50 61 77 |.....&& |((PC.Paw|
|000010b0| 6e 2e 48 65 61 6c 74 68 | 20 3e 3d 20 46 4d 69 6e |n.Health| >= FMin|
|000010c0| 28 36 30 2c 42 2e 50 61 | 77 6e 2e 48 65 61 6c 74 |(60,B.Pa|wn.Healt|
|000010d0| 68 29 29 20 7c 7c 20 50 | 43 2e 50 61 77 6e 2e 49 |h)) || P|C.Pawn.I|
|000010e0| 6e 43 75 72 72 65 6e 74 | 43 6f 6d 62 6f 28 29 29 |nCurrent|Combo())|
|000010f0| 20 0d 0a 09 09 09 09 26 | 26 20 28 56 53 69 7a 65 | ......&|& (VSize|
|00001100| 28 50 43 2e 50 61 77 6e | 2e 4c 6f 63 61 74 69 6f |(PC.Pawn|.Locatio|
|00001110| 6e 20 2d 20 42 2e 50 61 | 77 6e 2e 4c 6f 63 61 74 |n - B.Pa|wn.Locat|
|00001120| 69 6f 6e 29 20 3c 20 33 | 35 30 30 29 20 0d 0a 09 |ion) < 3|500) ...|
|00001130| 09 09 09 26 26 20 28 28 | 76 65 63 74 6f 72 28 50 |...&& ((|vector(P|
|00001140| 43 2e 52 6f 74 61 74 69 | 6f 6e 29 20 44 6f 74 20 |C.Rotati|on) Dot |
|00001150| 4e 6f 72 6d 61 6c 28 42 | 2e 50 61 77 6e 2e 4c 6f |Normal(B|.Pawn.Lo|
|00001160| 63 61 74 69 6f 6e 20 2d | 20 50 43 2e 50 61 77 6e |cation -| PC.Pawn|
|00001170| 2e 4c 6f 63 61 74 69 6f | 6e 29 29 20 3e 20 30 2e |.Locatio|n)) > 0.|
|00001180| 38 29 0d 0a 09 09 09 09 | 26 26 20 28 28 56 20 44 |8)......|&& ((V D|
|00001190| 6f 74 20 4e 6f 72 6d 61 | 6c 28 50 43 2e 50 61 77 |ot Norma|l(PC.Paw|
|000011a0| 6e 2e 4c 6f 63 61 74 69 | 6f 6e 20 2d 20 42 2e 50 |n.Locati|on - B.P|
|000011b0| 61 77 6e 2e 4c 6f 63 61 | 74 69 6f 6e 29 29 20 3e |awn.Loca|tion)) >|
|000011c0| 20 30 2e 37 29 20 0d 0a | 09 09 09 09 26 26 20 42 | 0.7) ..|....&& B|
|000011d0| 2e 4c 69 6e 65 4f 66 53 | 69 67 68 74 54 6f 28 50 |.LineOfS|ightTo(P|
|000011e0| 43 2e 50 61 77 6e 29 20 | 29 0d 0a 09 09 09 09 62 |C.Pawn) |)......b|
|000011f0| 72 65 61 6b 3b 0d 0a 09 | 09 09 65 6c 73 65 0d 0a |reak;...|..else..|
|00001200| 09 09 09 09 50 43 20 3d | 20 4e 6f 6e 65 3b 0d 0a |....PC =| None;..|
|00001210| 09 09 7d 0d 0a 09 09 69 | 66 20 28 20 50 43 20 21 |..}....i|f ( PC !|
|00001220| 3d 20 4e 6f 6e 65 20 29 | 0d 0a 09 09 7b 0d 0a 09 |= None )|....{...|
|00001230| 09 09 62 50 61 73 73 69 | 6e 67 20 3d 20 74 72 75 |..bPassi|ng = tru|
|00001240| 65 3b 0d 0a 09 09 09 42 | 2e 50 61 77 6e 2e 57 65 |e;.....B|.Pawn.We|
|00001250| 61 70 6f 6e 2e 53 65 74 | 41 49 54 61 72 67 65 74 |apon.Set|AITarget|
|00001260| 28 50 43 2e 50 61 77 6e | 29 3b 0d 0a 09 09 09 42 |(PC.Pawn|);.....B|
|00001270| 2e 62 50 6c 61 6e 6e 65 | 64 53 68 6f 74 20 3d 20 |.bPlanne|dShot = |
|00001280| 74 72 75 65 3b 0d 0a 09 | 09 09 42 2e 54 61 72 67 |true;...|..B.Targ|
|00001290| 65 74 20 3d 20 50 43 2e | 50 61 77 6e 3b 0d 0a 09 |et = PC.|Pawn;...|
|000012a0| 09 09 42 2e 50 61 77 6e | 2e 57 65 61 70 6f 6e 2e |..B.Pawn|.Weapon.|
|000012b0| 42 6f 74 46 69 72 65 28 | 66 61 6c 73 65 29 3b 0d |BotFire(|false);.|
|000012c0| 0a 09 09 09 62 43 61 6e | 50 61 73 73 20 3d 20 66 |....bCan|Pass = f|
|000012d0| 61 6c 73 65 3b 09 09 2f | 2f 20 73 6f 20 64 6f 6e |alse;../|/ so don|
|000012e0| 27 74 20 74 72 79 20 74 | 6f 20 70 61 73 73 20 74 |'t try t|o pass t|
|000012f0| 6f 20 62 6f 74 20 73 71 | 75 61 64 6d 61 74 65 0d |o bot sq|uadmate.|
|00001300| 0a 09 09 7d 0d 0a 09 09 | 69 66 20 28 20 62 43 61 |...}....|if ( bCa|
|00001310| 6e 50 61 73 73 20 29 0d | 0a 09 09 7b 0d 0a 09 09 |nPass ).|...{....|
|00001320| 09 66 6f 72 20 28 20 53 | 3d 53 71 75 61 64 4d 65 |.for ( S|=SquadMe|
|00001330| 6d 62 65 72 73 3b 20 53 | 21 3d 4e 6f 6e 65 3b 20 |mbers; S|!=None; |
|00001340| 53 3d 53 2e 4e 65 78 74 | 53 71 75 61 64 4d 65 6d |S=S.Next|SquadMem|
|00001350| 62 65 72 20 29 0d 0a 09 | 09 09 7b 0d 0a 09 09 09 |ber )...|..{.....|
|00001360| 09 69 66 20 28 20 28 53 | 2e 50 61 77 6e 20 21 3d |.if ( (S|.Pawn !=|
|00001370| 20 4e 6f 6e 65 29 20 0d | 0a 09 09 09 09 09 26 26 | None) .|......&&|
|00001380| 20 28 28 53 2e 50 61 77 | 6e 2e 48 65 61 6c 74 68 | ((S.Paw|n.Health|
|00001390| 20 3e 3d 20 46 4d 69 6e | 28 36 30 2c 42 2e 50 61 | >= FMin|(60,B.Pa|
|000013a0| 77 6e 2e 48 65 61 6c 74 | 68 29 29 20 7c 7c 20 28 |wn.Healt|h)) || (|
|000013b0| 53 2e 41 64 72 65 6e 61 | 6c 69 6e 65 20 3d 3d 20 |S.Adrena|line == |
|000013c0| 53 2e 41 64 72 65 6e 61 | 6c 69 6e 65 4d 61 78 29 |S.Adrena|lineMax)|
|000013d0| 29 0d 0a 09 09 09 09 09 | 26 26 20 28 56 53 69 7a |).......|&& (VSiz|
|000013e0| 65 28 53 2e 50 61 77 6e | 2e 4c 6f 63 61 74 69 6f |e(S.Pawn|.Locatio|
|000013f0| 6e 20 2d 20 42 2e 50 61 | 77 6e 2e 4c 6f 63 61 74 |n - B.Pa|wn.Locat|
|00001400| 69 6f 6e 29 20 3c 20 33 | 35 30 30 29 0d 0a 09 09 |ion) < 3|500)....|
|00001410| 09 09 09 26 26 20 28 28 | 53 2e 50 61 77 6e 2e 50 |...&& ((|S.Pawn.P|
|00001420| 68 79 73 69 63 73 20 21 | 3d 20 50 48 59 53 5f 46 |hysics !|= PHYS_F|
|00001430| 61 6c 6c 69 6e 67 29 20 | 7c 7c 20 28 53 2e 50 61 |alling) ||| (S.Pa|
|00001440| 77 6e 2e 50 68 79 73 69 | 63 73 56 6f 6c 75 6d 65 |wn.Physi|csVolume|
|00001450| 2e 47 72 61 76 69 74 79 | 2e 5a 20 3c 20 2d 39 30 |.Gravity|.Z < -90|
|00001460| 30 29 29 20 0d 0a 09 09 | 09 09 09 26 26 20 28 56 |0)) ....|...&& (V|
|00001470| 20 44 6f 74 20 4e 6f 72 | 6d 61 6c 28 53 2e 50 61 | Dot Nor|mal(S.Pa|
|00001480| 77 6e 2e 4c 6f 63 61 74 | 69 6f 6e 20 2d 20 42 2e |wn.Locat|ion - B.|
|00001490| 50 61 77 6e 2e 4c 6f 63 | 61 74 69 6f 6e 29 20 3e |Pawn.Loc|ation) >|
|000014a0| 20 30 2e 37 29 20 0d 0a | 09 09 09 09 09 26 26 20 | 0.7) ..|.....&& |
|000014b0| 42 2e 4c 69 6e 65 4f 66 | 53 69 67 68 74 54 6f 28 |B.LineOf|SightTo(|
|000014c0| 53 2e 50 61 77 6e 29 20 | 29 0d 0a 09 09 09 09 7b |S.Pawn) |)......{|
|000014d0| 0d 0a 09 09 09 09 09 62 | 50 61 73 73 69 6e 67 20 |.......b|Passing |
|000014e0| 3d 20 74 72 75 65 3b 0d | 0a 09 09 09 09 09 50 61 |= true;.|......Pa|
|000014f0| 73 73 54 61 72 67 65 74 | 20 3d 20 53 3b 0d 0a 09 |ssTarget| = S;...|
|00001500| 09 09 09 09 42 2e 50 61 | 77 6e 2e 57 65 61 70 6f |....B.Pa|wn.Weapo|
|00001510| 6e 2e 53 65 74 41 49 54 | 61 72 67 65 74 28 53 2e |n.SetAIT|arget(S.|
|00001520| 50 61 77 6e 29 3b 0d 0a | 09 09 09 09 09 42 2e 62 |Pawn);..|.....B.b|
|00001530| 50 6c 61 6e 6e 65 64 53 | 68 6f 74 20 3d 20 74 72 |PlannedS|hot = tr|
|00001540| 75 65 3b 0d 0a 09 09 09 | 09 09 42 2e 54 61 72 67 |ue;.....|..B.Targ|
|00001550| 65 74 20 3d 20 53 2e 50 | 61 77 6e 3b 0d 0a 09 09 |et = S.P|awn;....|
|00001560| 09 09 09 42 2e 50 61 77 | 6e 2e 57 65 61 70 6f 6e |...B.Paw|n.Weapon|
|00001570| 2e 42 6f 74 46 69 72 65 | 28 66 61 6c 73 65 29 3b |.BotFire|(false);|
|00001580| 0d 0a 09 09 09 09 09 62 | 72 65 61 6b 3b 0d 0a 09 |.......b|reak;...|
|00001590| 09 09 09 7d 0d 0a 09 09 | 09 7d 0d 0a 09 09 7d 0d |...}....|.}....}.|
|000015a0| 0a 09 7d 0d 0a 09 0d 0a | 09 69 66 20 28 20 21 62 |..}.....|.if ( !b|
|000015b0| 50 61 73 73 69 6e 67 20 | 26 26 20 50 72 65 66 65 |Passing |&& Prefe|
|000015c0| 72 53 68 6f 6f 74 53 63 | 6f 72 65 28 42 29 20 29 |rShootSc|ore(B) )|
|000015d0| 0d 0a 09 7b 0d 0a 09 09 | 69 66 20 28 20 28 53 68 |...{....|if ( (Sh|
|000015e0| 6f 6f 74 53 70 6f 74 28 | 42 2e 50 61 77 6e 2e 41 |ootSpot(|B.Pawn.A|
|000015f0| 6e 63 68 6f 72 29 20 21 | 3d 20 4e 6f 6e 65 29 20 |nchor) !|= None) |
|00001600| 26 26 20 42 2e 50 61 77 | 6e 2e 52 65 61 63 68 65 |&& B.Paw|n.Reache|
|00001610| 64 44 65 73 74 69 6e 61 | 74 69 6f 6e 28 42 2e 50 |dDestina|tion(B.P|
|00001620| 61 77 6e 2e 41 6e 63 68 | 6f 72 29 20 29 0d 0a 09 |awn.Anch|or) )...|
|00001630| 09 7b 0d 0a 09 09 09 42 | 2e 62 50 6c 61 6e 6e 65 |.{.....B|.bPlanne|
|00001640| 64 53 68 6f 74 20 3d 20 | 74 72 75 65 3b 0d 0a 09 |dShot = |true;...|
|00001650| 09 09 42 2e 50 61 77 6e | 2e 57 65 61 70 6f 6e 2e |..B.Pawn|.Weapon.|
|00001660| 53 65 74 41 49 54 61 72 | 67 65 74 28 45 6e 65 6d |SetAITar|get(Enem|
|00001670| 79 42 61 73 65 29 3b 0d | 0a 09 09 09 42 2e 44 6f |yBase);.|....B.Do|
|00001680| 52 61 6e 67 65 64 41 74 | 74 61 63 6b 4f 6e 28 45 |RangedAt|tackOn(E|
|00001690| 6e 65 6d 79 42 61 73 65 | 29 3b 0d 0a 09 09 09 72 |nemyBase|);.....r|
|000016a0| 65 74 75 72 6e 20 74 72 | 75 65 3b 0d 0a 09 09 7d |eturn tr|ue;....}|
|000016b0| 0d 0a 09 09 69 66 20 28 | 20 41 6c 74 65 72 6e 61 |....if (| Alterna|
|000016c0| 74 65 50 61 74 68 20 3d | 3d 20 4e 6f 6e 65 20 29 |tePath =|= None )|
|000016d0| 0d 0a 09 09 7b 0d 0a 09 | 09 09 42 2e 4d 6f 76 65 |....{...|..B.Move|
|000016e0| 54 61 72 67 65 74 20 3d | 20 42 2e 46 69 6e 64 50 |Target =| B.FindP|
|000016f0| 61 74 68 54 6f 77 61 72 | 64 4e 65 61 72 65 73 74 |athTowar|dNearest|
|00001700| 28 53 68 6f 6f 74 53 70 | 6f 74 43 6c 61 73 73 5b |(ShootSp|otClass[|
|00001710| 54 65 61 6d 2e 54 65 61 | 6d 49 6e 64 65 78 5d 2c |Team.Tea|mIndex],|
|00001720| 66 61 6c 73 65 29 3b 0d | 0a 09 09 09 69 66 20 28 |false);.|....if (|
|00001730| 20 42 2e 4d 6f 76 65 54 | 61 72 67 65 74 20 21 3d | B.MoveT|arget !=|
|00001740| 20 4e 6f 6e 65 20 29 0d | 0a 09 09 09 7b 0d 0a 09 | None ).|....{...|
|00001750| 09 09 09 69 66 20 28 20 | 62 53 65 6c 66 50 61 73 |...if ( |bSelfPas|
|00001760| 73 20 29 0d 0a 09 09 09 | 09 09 50 61 73 73 54 6f |s ).....|..PassTo|
|00001770| 53 65 6c 66 28 42 29 3b | 0d 0a 09 09 09 09 42 2e |Self(B);|......B.|
|00001780| 47 6f 61 6c 53 74 72 69 | 6e 67 20 3d 20 22 4d 6f |GoalStri|ng = "Mo|
|00001790| 76 65 20 74 6f 20 73 68 | 6f 6f 74 20 73 70 6f 74 |ve to sh|oot spot|
|000017a0| 20 22 24 42 2e 52 6f 75 | 74 65 47 6f 61 6c 3b 0d | "$B.Rou|teGoal;.|
|000017b0| 0a 09 09 09 09 42 2e 53 | 65 74 41 74 74 72 61 63 |.....B.S|etAttrac|
|000017c0| 74 69 6f 6e 53 74 61 74 | 65 28 29 3b 0d 0a 09 09 |tionStat|e();....|
|000017d0| 09 09 72 65 74 75 72 6e | 20 74 72 75 65 3b 0d 0a |..return| true;..|
|000017e0| 09 09 09 7d 0d 0a 09 09 | 09 69 66 20 28 20 42 2e |...}....|.if ( B.|
|000017f0| 62 53 6f 61 6b 69 6e 67 | 20 29 0d 0a 09 09 09 09 |bSoaking| )......|
|00001800| 42 2e 53 6f 61 6b 53 74 | 6f 70 28 22 4e 4f 20 50 |B.SoakSt|op("NO P|
|00001810| 41 54 48 20 54 4f 20 53 | 48 4f 4f 54 53 50 4f 54 |ATH TO S|HOOTSPOT|
|00001820| 22 29 3b 0d 0a 09 09 7d | 0d 0a 09 7d 0d 0a 09 69 |");....}|...}...i|
|00001830| 66 20 28 20 21 46 69 6e | 64 50 61 74 68 54 6f 4f |f ( !Fin|dPathToO|
|00001840| 62 6a 65 63 74 69 76 65 | 28 42 2c 45 6e 65 6d 79 |bjective|(B,Enemy|
|00001850| 42 61 73 65 29 20 29 0d | 0a 09 7b 0d 0a 09 09 42 |Base) ).|..{....B|
|00001860| 2e 47 6f 61 6c 53 74 72 | 69 6e 67 20 3d 20 22 4e |.GoalStr|ing = "N|
|00001870| 6f 20 70 61 74 68 20 74 | 6f 20 65 6e 65 6d 79 20 |o path t|o enemy |
|00001880| 62 61 73 65 20 66 6f 72 | 20 62 6f 6d 62 20 63 61 |base for| bomb ca|
|00001890| 72 72 69 65 72 22 3b 0d | 0a 09 09 72 65 74 75 72 |rrier";.|...retur|
|000018a0| 6e 20 66 61 6c 73 65 3b | 0d 0a 09 7d 0d 0a 09 69 |n false;|...}...i|
|000018b0| 66 20 28 20 42 2e 4d 6f | 76 65 54 61 72 67 65 74 |f ( B.Mo|veTarget|
|000018c0| 20 3d 3d 20 45 6e 65 6d | 79 42 61 73 65 20 29 0d | == Enem|yBase ).|
|000018d0| 0a 09 7b 0d 0a 09 09 42 | 2e 47 6f 61 6c 53 74 72 |..{....B|.GoalStr|
|000018e0| 69 6e 67 20 3d 20 22 4e | 65 61 72 20 65 6e 65 6d |ing = "N|ear enem|
|000018f0| 79 20 42 61 73 65 20 77 | 69 74 68 20 62 6f 6d 62 |y Base w|ith bomb|
|00001900| 21 22 3b 0d 0a 09 09 69 | 66 20 28 20 42 2e 50 61 |!";....i|f ( B.Pa|
|00001910| 77 6e 2e 52 65 61 63 68 | 65 64 44 65 73 74 69 6e |wn.Reach|edDestin|
|00001920| 61 74 69 6f 6e 28 45 6e | 65 6d 79 42 61 73 65 29 |ation(En|emyBase)|
|00001930| 20 29 0d 0a 09 09 09 45 | 6e 65 6d 79 42 61 73 65 | ).....E|nemyBase|
|00001940| 2e 54 6f 75 63 68 28 42 | 2e 50 61 77 6e 29 3b 0d |.Touch(B|.Pawn);.|
|00001950| 0a 09 7d 0d 0a 09 65 6c | 73 65 20 69 66 20 28 20 |..}...el|se if ( |
|00001960| 21 62 50 61 73 73 69 6e | 67 20 26 26 20 62 53 65 |!bPassin|g && bSe|
|00001970| 6c 66 50 61 73 73 20 29 | 0d 0a 09 09 50 61 73 73 |lfPass )|....Pass|
|00001980| 54 6f 53 65 6c 66 28 42 | 29 3b 0d 0a 09 72 65 74 |ToSelf(B|);...ret|
|00001990| 75 72 6e 20 74 72 75 65 | 3b 0d 0a 7d 0d 0a 0d 0a |urn true|;..}....|
|000019a0| 66 75 6e 63 74 69 6f 6e | 20 50 61 73 73 54 6f 53 |function| PassToS|
|000019b0| 65 6c 66 28 20 42 6f 74 | 20 42 20 29 0d 0a 7b 0d |elf( Bot| B )..{.|
|000019c0| 0a 09 69 66 20 28 20 28 | 42 2e 50 61 77 6e 2e 50 |..if ( (|B.Pawn.P|
|000019d0| 68 79 73 69 63 73 56 6f | 6c 75 6d 65 2e 47 72 61 |hysicsVo|lume.Gra|
|000019e0| 76 69 74 79 2e 5a 20 3d | 3d 20 42 2e 50 61 77 6e |vity.Z =|= B.Pawn|
|000019f0| 2e 50 68 79 73 69 63 73 | 56 6f 6c 75 6d 65 2e 44 |.Physics|Volume.D|
|00001a00| 65 66 61 75 6c 74 2e 47 | 72 61 76 69 74 79 2e 5a |efault.G|ravity.Z|
|00001a10| 29 0d 0a 09 09 26 26 20 | 28 42 2e 4d 6f 76 65 54 |)....&& |(B.MoveT|
|00001a20| 61 72 67 65 74 2e 4c 6f | 63 61 74 69 6f 6e 2e 5a |arget.Lo|cation.Z|
|00001a30| 20 3c 3d 20 42 2e 50 61 | 77 6e 2e 4c 6f 63 61 74 | <= B.Pa|wn.Locat|
|00001a40| 69 6f 6e 2e 5a 20 2b 20 | 42 2e 50 61 77 6e 2e 43 |ion.Z + |B.Pawn.C|
|00001a50| 6f 6c 6c 69 73 69 6f 6e | 48 65 69 67 68 74 20 2b |ollision|Height +|
|00001a60| 20 4d 41 58 53 54 45 50 | 48 45 49 47 48 54 29 20 | MAXSTEP|HEIGHT) |
|00001a70| 0d 0a 09 09 26 26 20 28 | 56 53 69 7a 65 28 42 2e |....&& (|VSize(B.|
|00001a80| 4d 6f 76 65 54 61 72 67 | 65 74 2e 4c 6f 63 61 74 |MoveTarg|et.Locat|
|00001a90| 69 6f 6e 20 2d 20 42 2e | 50 61 77 6e 2e 4c 6f 63 |ion - B.|Pawn.Loc|
|00001aa0| 61 74 69 6f 6e 29 20 3e | 20 35 30 30 29 0d 0a 09 |ation) >| 500)...|
|00001ab0| 09 26 26 20 28 28 76 65 | 63 74 6f 72 28 42 2e 50 |.&& ((ve|ctor(B.P|
|00001ac0| 61 77 6e 2e 52 6f 74 61 | 74 69 6f 6e 29 20 44 6f |awn.Rota|tion) Do|
|00001ad0| 74 20 4e 6f 72 6d 61 6c | 28 42 2e 4d 6f 76 65 54 |t Normal|(B.MoveT|
|00001ae0| 61 72 67 65 74 2e 4c 6f | 63 61 74 69 6f 6e 20 2d |arget.Lo|cation -|
|00001af0| 20 42 2e 50 61 77 6e 2e | 4c 6f 63 61 74 69 6f 6e | B.Pawn.|Location|
|00001b00| 29 29 20 3e 20 30 2e 37 | 29 20 29 0d 0a 09 7b 0d |)) > 0.7|) )...{.|
|00001b10| 0a 09 09 53 65 6c 66 50 | 61 73 73 65 72 20 3d 20 |...SelfP|asser = |
|00001b20| 42 3b 0d 0a 09 09 42 2e | 50 61 77 6e 2e 57 65 61 |B;....B.|Pawn.Wea|
|00001b30| 70 6f 6e 2e 53 65 74 41 | 49 54 61 72 67 65 74 28 |pon.SetA|ITarget(|
|00001b40| 42 2e 4d 6f 76 65 74 61 | 72 67 65 74 29 3b 0d 0a |B.Moveta|rget);..|
|00001b50| 09 09 42 2e 62 50 6c 61 | 6e 6e 65 64 53 68 6f 74 |..B.bPla|nnedShot|
|00001b60| 20 3d 20 74 72 75 65 3b | 0d 0a 09 09 42 2e 54 61 | = true;|....B.Ta|
|00001b70| 72 67 65 74 20 3d 20 42 | 2e 4d 6f 76 65 74 61 72 |rget = B|.Movetar|
|00001b80| 67 65 74 3b 0d 0a 09 09 | 42 2e 50 61 77 6e 2e 57 |get;....|B.Pawn.W|
|00001b90| 65 61 70 6f 6e 2e 42 6f | 74 46 69 72 65 28 66 61 |eapon.Bo|tFire(fa|
|00001ba0| 6c 73 65 29 3b 0d 0a 09 | 7d 0d 0a 7d 0d 0a 0d 0a |lse);...|}..}....|
|00001bb0| 66 75 6e 63 74 69 6f 6e | 20 62 6f 6f 6c 20 4d 75 |function| bool Mu|
|00001bc0| 73 74 4b 65 65 70 45 6e | 65 6d 79 28 50 61 77 6e |stKeepEn|emy(Pawn|
|00001bd0| 20 45 29 0d 0a 7b 0d 0a | 09 69 66 20 28 20 28 45 | E)..{..|.if ( (E|
|00001be0| 20 3d 3d 20 42 6f 6d 62 | 2e 48 6f 6c 64 65 72 29 | == Bomb|.Holder)|
|00001bf0| 20 26 26 20 28 45 20 21 | 3d 20 4e 6f 6e 65 29 20 | && (E !|= None) |
|00001c00| 26 26 20 28 45 2e 48 65 | 61 6c 74 68 20 3e 20 30 |&& (E.He|alth > 0|
|00001c10| 29 20 29 0d 0a 09 09 72 | 65 74 75 72 6e 20 74 72 |) )....r|eturn tr|
|00001c20| 75 65 3b 0d 0a 09 72 65 | 74 75 72 6e 20 66 61 6c |ue;...re|turn fal|
|00001c30| 73 65 3b 0d 0a 7d 0d 0a | 0d 0a 66 75 6e 63 74 69 |se;..}..|..functi|
|00001c40| 6f 6e 20 62 6f 6f 6c 20 | 43 68 65 63 6b 53 71 75 |on bool |CheckSqu|
|00001c50| 61 64 4f 62 6a 65 63 74 | 69 76 65 73 28 42 6f 74 |adObject|ives(Bot|
|00001c60| 20 42 29 0d 0a 7b 0d 0a | 09 6c 6f 63 61 6c 20 62 | B)..{..|.local b|
|00001c70| 6f 6f 6c 20 62 53 65 65 | 42 6f 6d 62 2c 20 62 4f |ool bSee|Bomb, bO|
|00001c80| 6e 42 6f 6d 62 48 6f 6c | 64 65 72 54 65 61 6d 3b |nBombHol|derTeam;|
|00001c90| 0d 0a 09 6c 6f 63 61 6c | 20 61 63 74 6f 72 20 42 |...local| actor B|
|00001ca0| 6f 6d 62 50 6f 73 69 74 | 69 6f 6e 3b 0d 0a 09 6c |ombPosit|ion;...l|
|00001cb0| 6f 63 61 6c 20 61 63 74 | 6f 72 20 42 6f 6d 62 43 |ocal act|or BombC|
|00001cc0| 61 72 72 69 65 72 54 61 | 72 67 65 74 3b 0d 0a 09 |arrierTa|rget;...|
|00001cd0| 6c 6f 63 61 6c 20 63 6f | 6e 74 72 6f 6c 6c 65 72 |local co|ntroller|
|00001ce0| 20 42 6f 6d 62 43 61 72 | 72 69 65 72 3b 0d 0a 0d | BombCar|rier;...|
|00001cf0| 0a 09 42 2e 62 52 65 63 | 6f 6d 6d 65 6e 64 46 61 |..B.bRec|ommendFa|
|00001d00| 73 74 4d 6f 76 65 20 3d | 20 66 61 6c 73 65 3b 0d |stMove =| false;.|
|00001d10| 0a 09 69 66 20 28 20 42 | 6f 6d 62 2e 48 6f 6c 64 |..if ( B|omb.Hold|
|00001d20| 65 72 20 3d 3d 20 42 2e | 50 61 77 6e 20 29 0d 0a |er == B.|Pawn )..|
|00001d30| 09 09 72 65 74 75 72 6e | 20 4f 72 64 65 72 73 46 |..return| OrdersF|
|00001d40| 6f 72 42 6f 6d 62 43 61 | 72 72 69 65 72 28 42 29 |orBombCa|rrier(B)|
|00001d50| 3b 0d 0a 09 65 6c 73 65 | 20 69 66 20 28 20 42 6f |;...else| if ( Bo|
|00001d60| 6d 62 2e 48 6f 6c 64 65 | 72 20 3d 3d 20 4e 6f 6e |mb.Holde|r == Non|
|00001d70| 65 20 29 0d 0a 09 09 53 | 63 6f 72 69 6e 67 52 61 |e )....S|coringRa|
|00001d80| 6e 64 20 3d 20 46 52 61 | 6e 64 28 29 3b 0d 0a 0d |nd = FRa|nd();...|
|00001d90| 0a 09 69 66 20 28 20 42 | 6f 6d 62 2e 62 48 6f 6d |..if ( B|omb.bHom|
|00001da0| 65 20 29 0d 0a 09 7b 0d | 0a 09 09 50 61 73 73 54 |e )...{.|...PassT|
|00001db0| 61 72 67 65 74 20 3d 20 | 4e 6f 6e 65 3b 0d 0a 09 |arget = |None;...|
|00001dc0| 09 53 65 6c 66 50 61 73 | 73 65 72 20 3d 20 4e 6f |.SelfPas|ser = No|
|00001dd0| 6e 65 3b 0d 0a 09 7d 0d | 0a 09 65 6c 73 65 20 69 |ne;...}.|..else i|
|00001de0| 66 20 28 20 42 6f 6d 62 | 2e 48 6f 6c 64 65 72 20 |f ( Bomb|.Holder |
|00001df0| 21 3d 20 4e 6f 6e 65 20 | 29 0d 0a 09 7b 0d 0a 09 |!= None |)...{...|
|00001e00| 09 50 61 73 73 54 61 72 | 67 65 74 20 3d 20 4e 6f |.PassTar|get = No|
|00001e10| 6e 65 3b 0d 0a 09 09 53 | 65 6c 66 50 61 73 73 65 |ne;....S|elfPasse|
|00001e20| 72 20 3d 20 4e 6f 6e 65 | 3b 0d 0a 09 09 62 4f 6e |r = None|;....bOn|
|00001e30| 42 6f 6d 62 48 6f 6c 64 | 65 72 54 65 61 6d 20 3d |BombHold|erTeam =|
|00001e40| 20 42 2e 53 61 6d 65 54 | 65 61 6d 41 73 28 42 6f | B.SameT|eamAs(Bo|
|00001e50| 6d 62 2e 48 6f 6c 64 65 | 72 2e 43 6f 6e 74 72 6f |mb.Holde|r.Contro|
|00001e60| 6c 6c 65 72 29 3b 0d 0a | 09 7d 0d 0a 09 09 0d 0a |ller);..|.}......|
|00001e70| 09 69 66 20 28 20 28 42 | 6f 6d 62 2e 62 48 6f 6d |.if ( (B|omb.bHom|
|00001e80| 65 20 7c 7c 20 62 4f 6e | 42 6f 6d 62 48 6f 6c 64 |e || bOn|BombHold|
|00001e90| 65 72 54 65 61 6d 29 20 | 26 26 20 20 42 2e 4e 65 |erTeam) |&& B.Ne|
|00001ea0| 65 64 57 65 61 70 6f 6e | 28 29 20 26 26 20 42 2e |edWeapon|() && B.|
|00001eb0| 46 69 6e 64 49 6e 76 65 | 6e 74 6f 72 79 47 6f 61 |FindInve|ntoryGoa|
|00001ec0| 6c 28 30 29 20 29 0d 0a | 09 7b 0d 0a 09 09 42 2e |l(0) )..|.{....B.|
|00001ed0| 47 6f 61 6c 53 74 72 69 | 6e 67 20 3d 20 22 4e 65 |GoalStri|ng = "Ne|
|00001ee0| 65 64 20 77 65 61 70 6f | 6e 20 6f 72 20 61 6d 6d |ed weapo|n or amm|
|00001ef0| 6f 22 3b 0d 0a 09 09 42 | 2e 53 65 74 41 74 74 72 |o";....B|.SetAttr|
|00001f00| 61 63 74 69 6f 6e 53 74 | 61 74 65 28 29 3b 0d 0a |actionSt|ate();..|
|00001f10| 09 09 72 65 74 75 72 6e | 20 74 72 75 65 3b 0d 0a |..return| true;..|
|00001f20| 09 7d 0d 0a 09 42 6f 6d | 62 50 6f 73 69 74 69 6f |.}...Bom|bPositio|
|00001f30| 6e 20 3d 20 42 6f 6d 62 | 2e 50 6f 73 69 74 69 6f |n = Bomb|.Positio|
|00001f40| 6e 28 29 3b 0d 0a 09 62 | 53 65 65 42 6f 6d 62 20 |n();...b|SeeBomb |
|00001f50| 3d 20 42 2e 4c 69 6e 65 | 4f 66 53 69 67 68 74 54 |= B.Line|OfSightT|
|00001f60| 6f 28 42 6f 6d 62 50 6f | 73 69 74 69 6f 6e 29 3b |o(BombPo|sition);|
|00001f70| 0d 0a 09 69 66 20 28 20 | 21 62 53 65 65 42 6f 6d |...if ( |!bSeeBom|
|00001f80| 62 20 26 26 20 42 2e 4e | 65 65 64 57 65 61 70 6f |b && B.N|eedWeapo|
|00001f90| 6e 28 29 20 26 26 20 42 | 2e 46 69 6e 64 49 6e 76 |n() && B|.FindInv|
|00001fa0| 65 6e 74 6f 72 79 47 6f | 61 6c 28 30 29 20 29 0d |entoryGo|al(0) ).|
|00001fb0| 0a 09 7b 0d 0a 09 09 42 | 2e 47 6f 61 6c 53 74 72 |..{....B|.GoalStr|
|00001fc0| 69 6e 67 20 3d 20 22 4e | 65 65 64 20 77 65 61 70 |ing = "N|eed weap|
|00001fd0| 6f 6e 20 6f 72 20 61 6d | 6d 6f 22 3b 0d 0a 09 09 |on or am|mo";....|
|00001fe0| 42 2e 53 65 74 41 74 74 | 72 61 63 74 69 6f 6e 53 |B.SetAtt|ractionS|
|00001ff0| 74 61 74 65 28 29 3b 0d | 0a 09 09 72 65 74 75 72 |tate();.|...retur|
|00002000| 6e 20 74 72 75 65 3b 0d | 0a 09 7d 0d 0a 09 69 66 |n true;.|..}...if|
|00002010| 20 28 20 62 4f 6e 42 6f | 6d 62 48 6f 6c 64 65 72 | ( bOnBo|mbHolder|
|00002020| 54 65 61 6d 20 26 26 20 | 28 47 65 74 4f 72 64 65 |Team && |(GetOrde|
|00002030| 72 73 28 29 20 21 3d 20 | 27 44 65 66 65 6e 64 27 |rs() != |'Defend'|
|00002040| 29 20 26 26 20 21 53 71 | 75 61 64 4c 65 61 64 65 |) && !Sq|uadLeade|
|00002050| 72 2e 49 73 41 28 27 50 | 6c 61 79 65 72 43 6f 6e |r.IsA('P|layerCon|
|00002060| 74 72 6f 6c 6c 65 72 27 | 29 20 29 0d 0a 09 7b 0d |troller'|) )...{.|
|00002070| 0a 09 09 2f 2f 20 6d 61 | 6b 65 20 62 6f 6d 62 20 |...// ma|ke bomb |
|00002080| 63 61 72 72 69 65 72 20 | 73 71 75 61 64 20 6c 65 |carrier |squad le|
|00002090| 61 64 65 72 20 69 66 20 | 6f 6e 20 73 61 6d 65 20 |ader if |on same |
|000020a0| 73 71 75 61 64 0d 0a 09 | 09 42 6f 6d 62 43 61 72 |squad...|.BombCar|
|000020b0| 72 69 65 72 20 3d 20 42 | 6f 6d 62 2e 48 6f 6c 64 |rier = B|omb.Hold|
|000020c0| 65 72 2e 43 6f 6e 74 72 | 6f 6c 6c 65 72 3b 0d 0a |er.Contr|oller;..|
|000020d0| 09 09 69 66 20 28 20 28 | 53 71 75 61 64 4c 65 61 |..if ( (|SquadLea|
|000020e0| 64 65 72 20 21 3d 20 42 | 6f 6d 62 43 61 72 72 69 |der != B|ombCarri|
|000020f0| 65 72 29 20 26 26 20 49 | 73 4f 6e 53 71 75 61 64 |er) && I|sOnSquad|
|00002100| 28 42 6f 6d 62 43 61 72 | 72 69 65 72 29 20 29 0d |(BombCar|rier) ).|
|00002110| 0a 09 09 09 53 65 74 4c | 65 61 64 65 72 28 42 6f |....SetL|eader(Bo|
|00002120| 6d 62 43 61 72 72 69 65 | 72 29 3b 0d 0a 0d 0a 09 |mbCarrie|r);.....|
|00002130| 09 69 66 20 28 20 28 42 | 2e 45 6e 65 6d 79 20 21 |.if ( (B|.Enemy !|
|00002140| 3d 20 4e 6f 6e 65 29 20 | 26 26 20 42 2e 45 6e 65 |= None) |&& B.Ene|
|00002150| 6d 79 2e 4c 69 6e 65 4f | 66 53 69 67 68 74 54 6f |my.LineO|fSightTo|
|00002160| 28 42 6f 6d 62 43 61 72 | 72 69 65 72 2e 50 61 77 |(BombCar|rier.Paw|
|00002170| 6e 29 20 26 26 20 28 42 | 2e 53 6b 69 6c 6c 20 2b |n) && (B|.Skill +|
|00002180| 20 42 2e 53 74 72 61 66 | 69 6e 67 41 62 69 6c 69 | B.Straf|ingAbili|
|00002190| 74 79 20 3c 20 33 29 20 | 29 0d 0a 09 09 7b 0d 0a |ty < 3) |)....{..|
|000021a0| 09 09 09 42 2e 47 6f 61 | 6c 53 74 72 69 6e 67 20 |...B.Goa|lString |
|000021b0| 3d 20 22 46 69 67 68 74 | 20 65 6e 65 6d 79 20 74 |= "Fight| enemy t|
|000021c0| 68 72 65 61 74 65 6e 69 | 6e 67 20 66 6c 61 67 20 |hreateni|ng flag |
|000021d0| 63 61 72 72 69 65 72 22 | 3b 0d 0a 09 09 09 42 2e |carrier"|;.....B.|
|000021e0| 46 69 67 68 74 45 6e 65 | 6d 79 28 74 72 75 65 2c |FightEne|my(true,|
|000021f0| 30 29 3b 0d 0a 09 09 09 | 72 65 74 75 72 6e 20 74 |0);.....|return t|
|00002200| 72 75 65 3b 0d 0a 09 09 | 7d 0d 0a 0d 0a 09 09 69 |rue;....|}......i|
|00002210| 66 20 28 20 41 49 43 6f | 6e 74 72 6f 6c 6c 65 72 |f ( AICo|ntroller|
|00002220| 28 42 6f 6d 62 43 61 72 | 72 69 65 72 29 20 3d 3d |(BombCar|rier) ==|
|00002230| 20 4e 6f 6e 65 20 29 0d | 0a 09 09 7b 0d 0a 09 09 | None ).|...{....|
|00002240| 09 69 66 20 28 20 28 42 | 6f 6d 62 43 61 72 72 69 |.if ( (B|ombCarri|
|00002250| 65 72 2e 50 61 77 6e 2e | 56 65 6c 6f 63 69 74 79 |er.Pawn.|Velocity|
|00002260| 20 21 3d 20 76 65 63 74 | 28 30 2c 30 2c 30 29 29 | != vect|(0,0,0))|
|00002270| 0d 0a 09 09 09 09 26 26 | 20 28 56 53 69 7a 65 28 |......&&| (VSize(|
|00002280| 42 6f 6d 62 43 61 72 72 | 69 65 72 2e 50 61 77 6e |BombCarr|ier.Pawn|
|00002290| 2e 4c 6f 63 61 74 69 6f | 6e 20 2d 20 42 2e 50 61 |.Locatio|n - B.Pa|
|000022a0| 77 6e 2e 4c 6f 63 61 74 | 69 6f 6e 29 20 3c 20 31 |wn.Locat|ion) < 1|
|000022b0| 37 30 30 29 20 29 0d 0a | 09 09 09 7b 0d 0a 09 09 |700) )..|...{....|
|000022c0| 09 09 42 2e 62 52 65 63 | 6f 6d 6d 65 6e 64 46 61 |..B.bRec|ommendFa|
|000022d0| 73 74 4d 6f 76 65 20 3d | 20 74 72 75 65 3b 0d 0a |stMove =| true;..|
|000022e0| 09 09 09 09 42 6f 6d 62 | 43 61 72 72 69 65 72 54 |....Bomb|CarrierT|
|000022f0| 61 72 67 65 74 20 3d 20 | 45 6e 65 6d 79 42 61 73 |arget = |EnemyBas|
|00002300| 65 3b 0d 0a 09 09 09 7d | 0d 0a 09 09 09 65 6c 73 |e;.....}|.....els|
|00002310| 65 0d 0a 09 09 09 09 42 | 6f 6d 62 43 61 72 72 69 |e......B|ombCarri|
|00002320| 65 72 54 61 72 67 65 74 | 20 3d 20 42 6f 6d 62 43 |erTarget| = BombC|
|00002330| 61 72 72 69 65 72 2e 50 | 61 77 6e 3b 0d 0a 09 09 |arrier.P|awn;....|
|00002340| 7d 0d 0a 09 09 65 6c 73 | 65 20 69 66 20 28 20 28 |}....els|e if ( (|
|00002350| 42 6f 6d 62 43 61 72 72 | 69 65 72 2e 4d 6f 76 65 |BombCarr|ier.Move|
|00002360| 54 61 72 67 65 74 20 21 | 3d 20 4e 6f 6e 65 29 0d |Target !|= None).|
|00002370| 0a 09 09 09 09 26 26 20 | 28 42 6f 6d 62 43 61 72 |.....&& |(BombCar|
|00002380| 72 69 65 72 2e 50 61 77 | 6e 2e 56 65 6c 6f 63 69 |rier.Paw|n.Veloci|
|00002390| 74 79 20 21 3d 20 76 65 | 63 74 28 30 2c 30 2c 30 |ty != ve|ct(0,0,0|
|000023a0| 29 29 20 29 0d 0a 09 09 | 7b 0d 0a 09 09 09 69 66 |)) )....|{.....if|
|000023b0| 20 28 20 28 42 6f 6d 62 | 43 61 72 72 69 65 72 2e | ( (Bomb|Carrier.|
|000023c0| 52 6f 75 74 65 43 61 63 | 68 65 5b 30 5d 20 3d 3d |RouteCac|he[0] ==|
|000023d0| 20 42 6f 6d 62 43 61 72 | 72 69 65 72 2e 4d 6f 76 | BombCar|rier.Mov|
|000023e0| 65 54 61 72 67 65 74 29 | 0d 0a 09 09 09 09 26 26 |eTarget)|......&&|
|000023f0| 20 28 42 6f 6d 62 43 61 | 72 72 69 65 72 2e 52 6f | (BombCa|rrier.Ro|
|00002400| 75 74 65 43 61 63 68 65 | 5b 31 5d 20 21 3d 20 4e |uteCache|[1] != N|
|00002410| 6f 6e 65 29 20 29 0d 0a | 09 09 09 7b 0d 0a 09 09 |one) )..|...{....|
|00002420| 09 09 41 64 64 54 72 61 | 6e 73 69 65 6e 74 43 6f |..AddTra|nsientCo|
|00002430| 73 74 73 28 42 2c 30 2e | 36 29 3b 0d 0a 09 09 09 |sts(B,0.|6);.....|
|00002440| 09 42 2e 62 52 65 63 6f | 6d 6d 65 6e 64 46 61 73 |.B.bReco|mmendFas|
|00002450| 74 4d 6f 76 65 20 3d 20 | 74 72 75 65 3b 0d 0a 09 |tMove = |true;...|
|00002460| 09 09 09 69 66 20 28 20 | 56 53 69 7a 65 28 42 6f |...if ( |VSize(Bo|
|00002470| 6d 62 43 61 72 72 69 65 | 72 2e 50 61 77 6e 2e 4c |mbCarrie|r.Pawn.L|
|00002480| 6f 63 61 74 69 6f 6e 20 | 2d 20 42 2e 50 61 77 6e |ocation |- B.Pawn|
|00002490| 2e 4c 6f 63 61 74 69 6f | 6e 29 20 3c 20 31 37 30 |.Locatio|n) < 170|
|000024a0| 30 20 29 0d 0a 09 09 09 | 09 09 42 6f 6d 62 43 61 |0 ).....|..BombCa|
|000024b0| 72 72 69 65 72 54 61 72 | 67 65 74 20 3d 20 42 6f |rrierTar|get = Bo|
|000024c0| 6d 62 43 61 72 72 69 65 | 72 2e 52 6f 75 74 65 47 |mbCarrie|r.RouteG|
|000024d0| 6f 61 6c 3b 0d 0a 09 09 | 09 09 65 6c 73 65 20 69 |oal;....|..else i|
|000024e0| 66 20 28 20 28 42 6f 6d | 62 43 61 72 72 69 65 72 |f ( (Bom|bCarrier|
|000024f0| 2e 52 6f 75 74 65 43 61 | 63 68 65 5b 32 5d 20 21 |.RouteCa|che[2] !|
|00002500| 3d 20 4e 6f 6e 65 29 0d | 0a 09 09 09 09 09 26 26 |= None).|......&&|
|00002510| 20 28 46 52 61 6e 64 28 | 29 20 3c 20 30 2e 37 29 | (FRand(|) < 0.7)|
|00002520| 20 29 0d 0a 09 09 09 09 | 09 42 6f 6d 62 43 61 72 | )......|.BombCar|
|00002530| 72 69 65 72 54 61 72 67 | 65 74 20 3d 20 42 6f 6d |rierTarg|et = Bom|
|00002540| 62 43 61 72 72 69 65 72 | 2e 52 6f 75 74 65 43 61 |bCarrier|.RouteCa|
|00002550| 63 68 65 5b 32 5d 3b 0d | 0a 09 09 09 09 65 6c 73 |che[2];.|.....els|
|00002560| 65 0d 0a 09 09 09 09 09 | 42 6f 6d 62 43 61 72 72 |e.......|BombCarr|
|00002570| 69 65 72 54 61 72 67 65 | 74 20 3d 20 42 6f 6d 62 |ierTarge|t = Bomb|
|00002580| 43 61 72 72 69 65 72 2e | 52 6f 75 74 65 43 61 63 |Carrier.|RouteCac|
|00002590| 68 65 5b 31 5d 3b 0d 0a | 09 09 09 7d 0d 0a 09 09 |he[1];..|...}....|
|000025a0| 09 65 6c 73 65 0d 0a 09 | 09 09 09 42 6f 6d 62 43 |.else...|...BombC|
|000025b0| 61 72 72 69 65 72 54 61 | 72 67 65 74 20 3d 20 42 |arrierTa|rget = B|
|000025c0| 6f 6d 62 43 61 72 72 69 | 65 72 2e 4d 6f 76 65 54 |ombCarri|er.MoveT|
|000025d0| 61 72 67 65 74 3b 0d 0a | 09 09 7d 0d 0a 09 09 65 |arget;..|..}....e|
|000025e0| 6c 73 65 0d 0a 09 09 09 | 42 6f 6d 62 43 61 72 72 |lse.....|BombCarr|
|000025f0| 69 65 72 54 61 72 67 65 | 74 20 3d 20 42 6f 6d 62 |ierTarge|t = Bomb|
|00002600| 43 61 72 72 69 65 72 2e | 50 61 77 6e 3b 0d 0a 09 |Carrier.|Pawn;...|
|00002610| 09 46 69 6e 64 50 61 74 | 68 54 6f 4f 62 6a 65 63 |.FindPat|hToObjec|
|00002620| 74 69 76 65 28 42 2c 42 | 6f 6d 62 43 61 72 72 69 |tive(B,B|ombCarri|
|00002630| 65 72 54 61 72 67 65 74 | 29 3b 0d 0a 0d 0a 09 09 |erTarget|);......|
|00002640| 69 66 20 28 20 28 42 6f | 6d 62 43 61 72 72 69 65 |if ( (Bo|mbCarrie|
|00002650| 72 54 61 72 67 65 74 20 | 3d 3d 20 45 6e 65 6d 79 |rTarget |== Enemy|
|00002660| 42 61 73 65 29 20 7c 7c | 20 42 2e 50 61 77 6e 2e |Base) ||| B.Pawn.|
|00002670| 52 65 61 63 68 65 64 44 | 65 73 74 69 6e 61 74 69 |ReachedD|estinati|
|00002680| 6f 6e 28 42 6f 6d 62 43 | 61 72 72 69 65 72 54 61 |on(BombC|arrierTa|
|00002690| 72 67 65 74 29 20 29 0d | 0a 09 09 7b 0d 0a 09 09 |rget) ).|...{....|
|000026a0| 09 69 66 20 28 20 42 2e | 45 6e 65 6d 79 20 21 3d |.if ( B.|Enemy !=|
|000026b0| 20 4e 6f 6e 65 20 29 20 | 0d 0a 09 09 09 7b 0d 0a | None ) |.....{..|
|000026c0| 09 09 09 09 42 2e 47 6f | 61 6c 53 74 72 69 6e 67 |....B.Go|alString|
|000026d0| 20 3d 20 22 46 69 67 68 | 74 20 65 6e 65 6d 79 20 | = "Figh|t enemy |
|000026e0| 77 68 69 6c 65 20 77 61 | 69 74 69 6e 67 20 66 6f |while wa|iting fo|
|000026f0| 72 20 66 6c 61 67 20 63 | 61 72 72 69 65 72 22 3b |r flag c|arrier";|
|00002700| 0d 0a 09 09 09 09 69 66 | 20 28 20 42 2e 4c 6f 73 |......if| ( B.Los|
|00002710| 74 43 6f 6e 74 61 63 74 | 28 38 29 20 29 0d 0a 09 |tContact|(8) )...|
|00002720| 09 09 09 09 42 2e 4c 6f | 73 65 45 6e 65 6d 79 28 |....B.Lo|seEnemy(|
|00002730| 29 3b 0d 0a 09 09 09 09 | 69 66 20 28 20 42 2e 45 |);......|if ( B.E|
|00002740| 6e 65 6d 79 20 21 3d 20 | 4e 6f 6e 65 20 29 0d 0a |nemy != |None )..|
|00002750| 09 09 09 09 7b 0d 0a 09 | 09 09 09 09 42 2e 46 69 |....{...|....B.Fi|
|00002760| 67 68 74 45 6e 65 6d 79 | 28 66 61 6c 73 65 2c 30 |ghtEnemy|(false,0|
|00002770| 29 3b 0d 0a 09 09 09 09 | 09 72 65 74 75 72 6e 20 |);......|.return |
|00002780| 74 72 75 65 3b 0d 0a 09 | 09 09 09 7d 0d 0a 09 09 |true;...|...}....|
|00002790| 09 7d 0d 0a 09 09 09 69 | 66 20 28 20 21 42 2e 62 |.}.....i|f ( !B.b|
|000027a0| 49 6e 69 74 4c 69 66 65 | 4d 65 73 73 61 67 65 20 |InitLife|Message |
|000027b0| 29 0d 0a 09 09 09 7b 0d | 0a 09 09 09 09 42 2e 62 |).....{.|.....B.b|
|000027c0| 49 6e 69 74 4c 69 66 65 | 4d 65 73 73 61 67 65 20 |InitLife|Message |
|000027d0| 3d 20 74 72 75 65 3b 0d | 0a 09 09 09 09 42 2e 53 |= true;.|.....B.S|
|000027e0| 65 6e 64 4d 65 73 73 61 | 67 65 28 42 6f 6d 62 43 |endMessa|ge(BombC|
|000027f0| 61 72 72 69 65 72 2e 50 | 6c 61 79 65 72 52 65 70 |arrier.P|layerRep|
|00002800| 6c 69 63 61 74 69 6f 6e | 49 6e 66 6f 2c 20 27 4f |lication|Info, 'O|
|00002810| 54 48 45 52 27 2c 20 42 | 2e 47 65 74 4d 65 73 73 |THER', B|.GetMess|
|00002820| 61 67 65 49 6e 64 65 78 | 28 27 47 4f 54 59 4f 55 |ageIndex|('GOTYOU|
|00002830| 52 42 41 43 4b 27 29 2c | 20 31 30 2c 20 27 54 45 |RBACK'),| 10, 'TE|
|00002840| 41 4d 27 29 3b 0d 0a 09 | 09 09 7d 0d 0a 09 09 09 |AM');...|..}.....|
|00002850| 42 2e 57 61 6e 64 65 72 | 4f 72 43 61 6d 70 28 74 |B.Wander|OrCamp(t|
|00002860| 72 75 65 29 3b 0d 0a 09 | 09 09 42 2e 47 6f 61 6c |rue);...|..B.Goal|
|00002870| 53 74 72 69 6e 67 20 3d | 20 22 42 61 63 6b 20 75 |String =| "Back u|
|00002880| 70 20 74 68 65 20 66 6c | 61 67 20 63 61 72 72 69 |p the fl|ag carri|
|00002890| 65 72 21 22 3b 0d 0a 09 | 09 09 72 65 74 75 72 6e |er!";...|..return|
|000028a0| 20 74 72 75 65 3b 0d 0a | 09 09 7d 0d 0a 09 09 42 | true;..|..}....B|
|000028b0| 2e 47 6f 61 6c 53 74 72 | 69 6e 67 20 3d 20 22 46 |.GoalStr|ing = "F|
|000028c0| 69 6e 64 20 74 68 65 20 | 62 6f 6d 62 20 63 61 72 |ind the |bomb car|
|000028d0| 72 69 65 72 20 2d 20 6d | 6f 76 65 20 74 6f 20 22 |rier - m|ove to "|
|000028e0| 24 42 2e 4d 6f 76 65 54 | 61 72 67 65 74 3b 0d 0a |$B.MoveT|arget;..|
|000028f0| 09 09 72 65 74 75 72 6e | 20 28 20 42 2e 4d 6f 76 |..return| ( B.Mov|
|00002900| 65 54 61 72 67 65 74 20 | 21 3d 20 4e 6f 6e 65 20 |eTarget |!= None |
|00002910| 29 3b 0d 0a 09 7d 0d 0a | 09 41 64 64 54 72 61 6e |);...}..|.AddTran|
|00002920| 73 69 65 6e 74 43 6f 73 | 74 73 28 42 2c 31 29 3b |sientCos|ts(B,1);|
|00002930| 0d 0a 09 69 66 20 28 20 | 62 53 65 65 42 6f 6d 62 |...if ( |bSeeBomb|
|00002940| 20 29 0d 0a 09 7b 0d 0a | 09 09 69 66 20 28 20 42 | )...{..|..if ( B|
|00002950| 6f 6d 62 2e 48 6f 6c 64 | 65 72 20 3d 3d 20 4e 6f |omb.Hold|er == No|
|00002960| 6e 65 20 29 0d 0a 09 09 | 7b 0d 0a 09 09 09 69 66 |ne )....|{.....if|
|00002970| 20 28 20 21 42 6f 6d 62 | 2e 62 48 6f 6d 65 20 26 | ( !Bomb|.bHome &|
|00002980| 26 20 47 6f 50 69 63 6b | 75 70 42 6f 6d 62 28 42 |& GoPick|upBomb(B|
|00002990| 29 20 29 0d 0a 09 09 09 | 09 72 65 74 75 72 6e 20 |) ).....|.return |
|000029a0| 74 72 75 65 3b 0d 0a 09 | 09 7d 0d 0a 09 09 65 6c |true;...|.}....el|
|000029b0| 73 65 20 69 66 20 28 20 | 21 62 4f 6e 42 6f 6d 62 |se if ( |!bOnBomb|
|000029c0| 48 6f 6c 64 65 72 54 65 | 61 6d 20 29 0d 0a 09 09 |HolderTe|am )....|
|000029d0| 7b 0d 0a 09 09 09 69 66 | 20 28 20 42 2e 45 6e 65 |{.....if| ( B.Ene|
|000029e0| 6d 79 20 21 3d 20 42 6f | 6d 62 2e 48 6f 6c 64 65 |my != Bo|mb.Holde|
|000029f0| 72 20 29 0d 0a 09 09 09 | 09 46 69 6e 64 4e 65 77 |r ).....|.FindNew|
|00002a00| 45 6e 65 6d 79 46 6f 72 | 28 42 2c 28 42 2e 45 6e |EnemyFor|(B,(B.En|
|00002a10| 65 6d 79 20 21 3d 20 4e | 6f 6e 65 29 20 26 26 20 |emy != N|one) && |
|00002a20| 42 2e 4c 69 6e 65 4f 66 | 53 69 67 68 74 54 6f 28 |B.LineOf|SightTo(|
|00002a30| 42 2e 45 6e 65 6d 79 29 | 29 3b 0d 0a 09 09 09 69 |B.Enemy)|);.....i|
|00002a40| 66 20 28 20 4c 65 76 65 | 6c 2e 54 69 6d 65 53 65 |f ( Leve|l.TimeSe|
|00002a50| 63 6f 6e 64 73 20 2d 20 | 4c 61 73 74 53 65 65 46 |conds - |LastSeeF|
|00002a60| 6c 61 67 43 61 72 72 69 | 65 72 20 3e 20 36 20 29 |lagCarri|er > 6 )|
|00002a70| 0d 0a 09 09 09 7b 0d 0a | 09 09 09 09 4c 61 73 74 |.....{..|....Last|
|00002a80| 53 65 65 46 6c 61 67 43 | 61 72 72 69 65 72 20 3d |SeeFlagC|arrier =|
|00002a90| 20 4c 65 76 65 6c 2e 54 | 69 6d 65 53 65 63 6f 6e | Level.T|imeSecon|
|00002aa0| 64 73 3b 0d 0a 09 09 09 | 09 42 2e 53 65 6e 64 4d |ds;.....|.B.SendM|
|00002ab0| 65 73 73 61 67 65 28 4e | 6f 6e 65 2c 20 27 4f 54 |essage(N|one, 'OT|
|00002ac0| 48 45 52 27 2c 20 42 2e | 47 65 74 4d 65 73 73 61 |HER', B.|GetMessa|
|00002ad0| 67 65 49 6e 64 65 78 28 | 27 45 4e 45 4d 59 42 41 |geIndex(|'ENEMYBA|
|00002ae0| 4c 4c 43 41 52 52 49 45 | 52 48 45 52 45 27 29 2c |LLCARRIE|RHERE'),|
|00002af0| 20 31 30 2c 20 27 54 45 | 41 4d 27 29 3b 0d 0a 09 | 10, 'TE|AM');...|
|00002b00| 09 09 7d 20 0d 0a 09 09 | 09 42 2e 47 6f 61 6c 53 |..} ....|.B.GoalS|
|00002b10| 74 72 69 6e 67 20 3d 20 | 22 41 74 74 61 63 6b 20 |tring = |"Attack |
|00002b20| 65 6e 65 6d 79 20 62 6f | 6d 62 20 63 61 72 72 69 |enemy bo|mb carri|
|00002b30| 65 72 22 3b 0d 0a 09 09 | 09 69 66 20 28 20 42 2e |er";....|.if ( B.|
|00002b40| 49 73 53 6e 69 70 69 6e | 67 28 29 20 29 0d 0a 09 |IsSnipin|g() )...|
|00002b50| 09 09 09 72 65 74 75 72 | 6e 20 66 61 6c 73 65 3b |...retur|n false;|
|00002b60| 0d 0a 09 09 09 72 65 74 | 75 72 6e 20 28 20 54 72 |.....ret|urn ( Tr|
|00002b70| 79 54 6f 49 6e 74 65 72 | 63 65 70 74 28 42 2c 42 |yToInter|cept(B,B|
|00002b80| 6f 6d 62 2e 48 6f 6c 64 | 65 72 2c 48 6f 6d 65 42 |omb.Hold|er,HomeB|
|00002b90| 61 73 65 29 20 29 3b 0d | 0a 09 09 7d 0d 0a 09 7d |ase) );.|...}...}|
|00002ba0| 0d 0a 0d 0a 09 69 66 20 | 28 20 42 6f 6d 62 2e 62 |.....if |( Bomb.b|
|00002bb0| 48 6f 6d 65 20 29 0d 0a | 09 7b 0d 0a 09 09 69 66 |Home )..|.{....if|
|00002bc0| 20 28 20 42 6f 6d 62 42 | 61 73 65 2e 42 6f 74 4e | ( BombB|ase.BotN|
|00002bd0| 65 61 72 4f 62 6a 65 63 | 74 69 76 65 28 42 29 20 |earObjec|tive(B) |
|00002be0| 29 0d 0a 09 09 7b 0d 0a | 09 09 09 42 2e 47 6f 61 |)....{..|...B.Goa|
|00002bf0| 6c 53 74 72 69 6e 67 20 | 3d 20 22 4e 65 61 72 20 |lString |= "Near |
|00002c00| 62 6f 6d 62 20 62 61 73 | 65 21 22 3b 0d 0a 09 09 |bomb bas|e!";....|
|00002c10| 09 72 65 74 75 72 6e 20 | 46 69 6e 64 50 61 74 68 |.return |FindPath|
|00002c20| 54 6f 4f 62 6a 65 63 74 | 69 76 65 28 42 2c 42 6f |ToObject|ive(B,Bo|
|00002c30| 6d 62 42 61 73 65 29 3b | 0d 0a 09 09 7d 0d 0a 09 |mbBase);|....}...|
|00002c40| 09 65 6c 73 65 20 69 66 | 20 28 20 47 65 74 4f 72 |.else if| ( GetOr|
|00002c50| 64 65 72 73 28 29 20 3d | 3d 20 27 41 74 74 61 63 |ders() =|= 'Attac|
|00002c60| 6b 27 20 29 0d 0a 09 09 | 7b 0d 0a 09 09 09 42 2e |k' )....|{.....B.|
|00002c70| 47 6f 61 6c 53 74 72 69 | 6e 67 20 3d 20 22 47 6f |GoalStri|ng = "Go|
|00002c80| 20 74 6f 20 62 6f 6d 62 | 20 62 61 73 65 21 22 3b | to bomb| base!";|
|00002c90| 0d 0a 09 09 09 72 65 74 | 75 72 6e 20 46 69 6e 64 |.....ret|urn Find|
|00002ca0| 50 61 74 68 54 6f 4f 62 | 6a 65 63 74 69 76 65 28 |PathToOb|jective(|
|00002cb0| 42 2c 42 6f 6d 62 42 61 | 73 65 29 3b 0d 0a 09 09 |B,BombBa|se);....|
|00002cc0| 7d 0d 0a 09 7d 0d 0a 09 | 65 6c 73 65 20 69 66 20 |}...}...|else if |
|00002cd0| 28 20 47 65 74 4f 72 64 | 65 72 73 28 29 20 3d 3d |( GetOrd|ers() ==|
|00002ce0| 20 27 41 74 74 61 63 6b | 27 20 29 0d 0a 09 7b 0d | 'Attack|' )...{.|
|00002cf0| 0a 09 09 42 2e 47 6f 61 | 6c 53 74 72 69 6e 67 20 |...B.Goa|lString |
|00002d00| 3d 20 22 47 6f 20 74 6f | 20 62 6f 6d 62 22 3b 0d |= "Go to| bomb";.|
|00002d10| 0a 09 09 69 66 20 28 20 | 42 6f 6d 62 2e 48 6f 6c |...if ( |Bomb.Hol|
|00002d20| 64 65 72 20 21 3d 20 4e | 6f 6e 65 20 29 0d 0a 09 |der != N|one )...|
|00002d30| 09 09 72 65 74 75 72 6e | 20 54 72 79 54 6f 49 6e |..return| TryToIn|
|00002d40| 74 65 72 63 65 70 74 28 | 42 2c 42 6f 6d 62 2e 48 |tercept(|B,Bomb.H|
|00002d50| 6f 6c 64 65 72 2c 48 6f | 6d 65 62 61 73 65 29 3b |older,Ho|mebase);|
|00002d60| 0d 0a 09 09 65 6c 73 65 | 0d 0a 09 09 09 72 65 74 |....else|.....ret|
|00002d70| 75 72 6e 20 46 69 6e 64 | 50 61 74 68 54 6f 4f 62 |urn Find|PathToOb|
|00002d80| 6a 65 63 74 69 76 65 28 | 42 2c 42 6f 6d 62 29 3b |jective(|B,Bomb);|
|00002d90| 0d 0a 09 7d 0d 0a 09 72 | 65 74 75 72 6e 20 53 75 |...}...r|eturn Su|
|00002da0| 70 65 72 2e 43 68 65 63 | 6b 53 71 75 61 64 4f 62 |per.Chec|kSquadOb|
|00002db0| 6a 65 63 74 69 76 65 73 | 28 42 29 3b 0d 0a 7d 0d |jectives|(B);..}.|
|00002dc0| 0a 0d 0a 66 75 6e 63 74 | 69 6f 6e 20 42 6f 6d 62 |...funct|ion Bomb|
|00002dd0| 54 61 6b 65 6e 42 79 28 | 43 6f 6e 74 72 6f 6c 6c |TakenBy(|Controll|
|00002de0| 65 72 20 43 29 0d 0a 7b | 0d 0a 09 6c 6f 63 61 6c |er C)..{|...local|
|00002df0| 20 42 6f 74 20 4d 3b 0d | 0a 0d 0a 09 69 66 20 28 | Bot M;.|....if (|
|00002e00| 20 56 53 69 7a 65 28 42 | 6f 6d 62 2e 4c 6f 63 61 | VSize(B|omb.Loca|
|00002e10| 74 69 6f 6e 20 2d 20 42 | 6f 6d 62 42 61 73 65 2e |tion - B|ombBase.|
|00002e20| 4c 6f 63 61 74 69 6f 6e | 29 20 3c 20 35 30 30 20 |Location|) < 500 |
|00002e30| 29 0d 0a 09 09 53 65 74 | 41 6c 74 65 72 6e 61 74 |)....Set|Alternat|
|00002e40| 65 50 61 74 68 28 74 72 | 75 65 29 3b 0d 0a 09 65 |ePath(tr|ue);...e|
|00002e50| 6c 73 65 20 69 66 20 28 | 20 28 42 6f 74 28 43 29 |lse if (| (Bot(C)|
|00002e60| 20 3d 3d 20 4e 6f 6e 65 | 29 20 7c 7c 20 28 42 6f | == None|) || (Bo|
|00002e70| 6d 62 2e 4f 6c 64 54 65 | 61 6d 20 21 3d 20 54 65 |mb.OldTe|am != Te|
|00002e80| 61 6d 29 20 29 0d 0a 09 | 09 53 65 74 46 69 6e 61 |am) )...|.SetFina|
|00002e90| 6c 53 74 72 65 74 63 68 | 28 74 72 75 65 29 3b 0d |lStretch|(true);.|
|00002ea0| 0a 09 53 65 6c 66 50 61 | 73 73 65 72 20 3d 20 4e |..SelfPa|sser = N|
|00002eb0| 6f 6e 65 3b 0d 0a 09 50 | 61 73 73 54 61 72 67 65 |one;...P|assTarge|
|00002ec0| 74 20 3d 20 4e 6f 6e 65 | 3b 0d 0a 09 0d 0a 09 69 |t = None|;......i|
|00002ed0| 66 20 28 20 53 71 75 61 | 64 4c 65 61 64 65 72 20 |f ( Squa|dLeader |
|00002ee0| 21 3d 20 43 20 29 0d 0a | 09 09 53 65 74 4c 65 61 |!= C )..|..SetLea|
|00002ef0| 64 65 72 28 43 29 3b 0d | 0a 0d 0a 09 66 6f 72 09 |der(C);.|....for.|
|00002f00| 28 20 4d 3d 53 71 75 61 | 64 4d 65 6d 62 65 72 73 |( M=Squa|dMembers|
|00002f10| 3b 20 4d 21 3d 4e 6f 6e | 65 3b 20 4d 3d 4d 2e 4e |; M!=Non|e; M=M.N|
|00002f20| 65 78 74 53 71 75 61 64 | 4d 65 6d 62 65 72 20 29 |extSquad|Member )|
|00002f30| 0d 0a 09 09 69 66 20 28 | 20 28 4d 2e 4d 6f 76 65 |....if (| (M.Move|
|00002f40| 54 61 72 67 65 74 20 3d | 3d 20 42 6f 6d 62 29 20 |Target =|= Bomb) |
|00002f50| 7c 7c 20 28 4d 2e 4d 6f | 76 65 54 61 72 67 65 74 ||| (M.Mo|veTarget|
|00002f60| 20 3d 3d 20 42 6f 6d 62 | 42 61 73 65 29 20 29 0d | == Bomb|Base) ).|
|00002f70| 0a 09 09 09 4d 2e 4d 6f | 76 65 54 69 6d 65 72 20 |....M.Mo|veTimer |
|00002f80| 3d 20 46 4d 69 6e 28 4d | 2e 4d 6f 76 65 54 69 6d |= FMin(M|.MoveTim|
|00002f90| 65 72 2c 30 2e 30 35 20 | 2b 20 30 2e 31 35 20 2a |er,0.05 |+ 0.15 *|
|00002fa0| 20 46 52 61 6e 64 28 29 | 29 3b 0d 0a 7d 0d 0a 0d | FRand()|);..}...|
|00002fb0| 0a 66 75 6e 63 74 69 6f | 6e 20 62 6f 6f 6c 20 41 |.functio|n bool A|
|00002fc0| 6c 6c 6f 77 54 61 75 6e | 74 28 42 6f 74 20 42 29 |llowTaun|t(Bot B)|
|00002fd0| 0d 0a 7b 0d 0a 09 72 65 | 74 75 72 6e 20 28 20 28 |..{...re|turn ( (|
|00002fe0| 46 52 61 6e 64 28 29 20 | 3c 20 30 2e 35 29 20 26 |FRand() |< 0.5) &|
|00002ff0| 26 20 28 50 72 69 6f 72 | 69 74 79 4f 62 6a 65 63 |& (Prior|ityObjec|
|00003000| 74 69 76 65 28 42 29 20 | 3c 20 31 29 29 3b 0d 0a |tive(B) |< 1));..|
|00003010| 7d 0d 0a 0d 0a 66 75 6e | 63 74 69 6f 6e 20 62 6f |}....fun|ction bo|
|00003020| 6f 6c 20 53 68 6f 75 6c | 64 44 65 66 65 72 54 6f |ol Shoul|dDeferTo|
|00003030| 28 43 6f 6e 74 72 6f 6c | 6c 65 72 20 43 29 0d 0a |(Control|ler C)..|
|00003040| 7b 0d 0a 09 69 66 20 28 | 20 43 2e 50 6c 61 79 65 |{...if (| C.Playe|
|00003050| 72 52 65 70 6c 69 63 61 | 74 69 6f 6e 49 6e 66 6f |rReplica|tionInfo|
|00003060| 2e 48 61 73 46 6c 61 67 | 20 21 3d 20 4e 6f 6e 65 |.HasFlag| != None|
|00003070| 20 29 0d 0a 09 09 72 65 | 74 75 72 6e 20 74 72 75 | )....re|turn tru|
|00003080| 65 3b 0d 0a 09 72 65 74 | 75 72 6e 20 53 75 70 65 |e;...ret|urn Supe|
|00003090| 72 2e 53 68 6f 75 6c 64 | 44 65 66 65 72 54 6f 28 |r.Should|DeferTo(|
|000030a0| 43 29 3b 0d 0a 7d 0d 0a | 0d 0a 66 75 6e 63 74 69 |C);..}..|..functi|
|000030b0| 6f 6e 20 62 79 74 65 20 | 50 72 69 6f 72 69 74 79 |on byte |Priority|
|000030c0| 4f 62 6a 65 63 74 69 76 | 65 28 42 6f 74 20 42 29 |Objectiv|e(Bot B)|
|000030d0| 0d 0a 7b 0d 0a 09 69 66 | 20 28 20 42 2e 50 6c 61 |..{...if| ( B.Pla|
|000030e0| 79 65 72 52 65 70 6c 69 | 63 61 74 69 6f 6e 49 6e |yerRepli|cationIn|
|000030f0| 66 6f 2e 48 61 73 46 6c | 61 67 20 21 3d 20 4e 6f |fo.HasFl|ag != No|
|00003100| 6e 65 20 29 0d 0a 09 7b | 0d 0a 09 09 69 66 20 28 |ne )...{|....if (|
|00003110| 20 45 6e 65 6d 79 42 61 | 73 65 2e 42 6f 74 4e 65 | EnemyBa|se.BotNe|
|00003120| 61 72 4f 62 6a 65 63 74 | 69 76 65 28 42 29 20 29 |arObject|ive(B) )|
|00003130| 0d 0a 09 09 09 72 65 74 | 75 72 6e 20 32 35 35 3b |.....ret|urn 255;|
|00003140| 0d 0a 09 09 72 65 74 75 | 72 6e 20 32 3b 0d 0a 09 |....retu|rn 2;...|
|00003150| 7d 0d 0a 0d 0a 09 69 66 | 20 28 20 42 6f 6d 62 2e |}.....if| ( Bomb.|
|00003160| 48 6f 6c 64 65 72 20 21 | 3d 20 4e 6f 6e 65 20 29 |Holder !|= None )|
|00003170| 0d 0a 09 09 72 65 74 75 | 72 6e 20 31 3b 0d 0a 0d |....retu|rn 1;...|
|00003180| 0a 09 72 65 74 75 72 6e | 20 30 3b 0d 0a 7d 0d 0a |..return| 0;..}..|
|00003190| 0d 0a 66 75 6e 63 74 69 | 6f 6e 20 66 6c 6f 61 74 |..functi|on float|
|000031a0| 20 4d 6f 64 69 66 79 54 | 68 72 65 61 74 28 66 6c | ModifyT|hreat(fl|
|000031b0| 6f 61 74 20 63 75 72 72 | 65 6e 74 2c 20 50 61 77 |oat curr|ent, Paw|
|000031c0| 6e 20 4e 65 77 54 68 72 | 65 61 74 2c 20 62 6f 6f |n NewThr|eat, boo|
|000031d0| 6c 20 62 54 68 72 65 61 | 74 56 69 73 69 62 6c 65 |l bThrea|tVisible|
|000031e0| 2c 20 42 6f 74 20 42 29 | 0d 0a 7b 0d 0a 09 69 66 |, Bot B)|..{...if|
|000031f0| 20 28 20 28 4e 65 77 54 | 68 72 65 61 74 2e 50 6c | ( (NewT|hreat.Pl|
|00003200| 61 79 65 72 52 65 70 6c | 69 63 61 74 69 6f 6e 49 |ayerRepl|icationI|
|00003210| 6e 66 6f 20 21 3d 20 4e | 6f 6e 65 29 0d 0a 09 09 |nfo != N|one)....|
|00003220| 26 26 20 28 4e 65 77 54 | 68 72 65 61 74 2e 50 6c |&& (NewT|hreat.Pl|
|00003230| 61 79 65 72 52 65 70 6c | 69 63 61 74 69 6f 6e 49 |ayerRepl|icationI|
|00003240| 6e 66 6f 2e 48 61 73 46 | 6c 61 67 20 21 3d 20 4e |nfo.HasF|lag != N|
|00003250| 6f 6e 65 29 20 0d 0a 09 | 09 26 26 20 62 54 68 72 |one) ...|.&& bThr|
|00003260| 65 61 74 56 69 73 69 62 | 6c 65 20 29 0d 0a 09 7b |eatVisib|le )...{|
|00003270| 0d 0a 09 09 69 66 20 28 | 20 28 56 53 69 7a 65 28 |....if (| (VSize(|
|00003280| 4e 65 77 54 68 72 65 61 | 74 2e 4c 6f 63 61 74 69 |NewThrea|t.Locati|
|00003290| 6f 6e 20 2d 20 48 6f 6d | 65 42 61 73 65 2e 4c 6f |on - Hom|eBase.Lo|
|000032a0| 63 61 74 69 6f 6e 29 20 | 3e 20 35 30 30 30 29 0d |cation) |> 5000).|
|000032b0| 0a 09 09 09 26 26 20 28 | 56 53 69 7a 65 28 4e 65 |....&& (|VSize(Ne|
|000032c0| 77 54 68 72 65 61 74 2e | 4c 6f 63 61 74 69 6f 6e |wThreat.|Location|
|000032d0| 20 2d 20 42 2e 50 61 77 | 6e 2e 4c 6f 63 61 74 69 | - B.Paw|n.Locati|
|000032e0| 6f 6e 29 20 3e 20 31 35 | 30 30 29 0d 0a 09 09 09 |on) > 15|00).....|
|000032f0| 26 26 20 55 6e 64 65 72 | 46 69 72 65 28 4e 65 77 |&& Under|Fire(New|
|00003300| 54 68 72 65 61 74 2c 42 | 29 20 29 0d 0a 09 09 7b |Threat,B|) )....{|
|00003310| 0d 0a 09 09 09 69 66 20 | 28 20 4e 65 77 54 68 72 |.....if |( NewThr|
|00003320| 65 61 74 2e 49 73 48 75 | 6d 61 6e 43 6f 6e 74 72 |eat.IsHu|manContr|
|00003330| 6f 6c 6c 65 64 28 29 20 | 29 0d 0a 09 09 09 09 72 |olled() |)......r|
|00003340| 65 74 75 72 6e 20 63 75 | 72 72 65 6e 74 20 2b 20 |eturn cu|rrent + |
|00003350| 31 3b 0d 0a 09 09 09 72 | 65 74 75 72 6e 20 63 75 |1;.....r|eturn cu|
|00003360| 72 72 65 6e 74 20 2b 20 | 30 2e 35 3b 0d 0a 09 09 |rrent + |0.5;....|
|00003370| 7d 0d 0a 09 09 69 66 20 | 28 20 28 56 53 69 7a 65 |}....if |( (VSize|
|00003380| 28 42 2e 50 61 77 6e 2e | 4c 6f 63 61 74 69 6f 6e |(B.Pawn.|Location|
|00003390| 20 2d 20 4e 65 77 54 68 | 72 65 61 74 2e 4c 6f 63 | - NewTh|reat.Loc|
|000033a0| 61 74 69 6f 6e 29 20 3c | 20 31 35 30 30 29 20 7c |ation) <| 1500) ||
|000033b0| 7c 20 42 2e 50 61 77 6e | 2e 57 65 61 70 6f 6e 2e || B.Pawn|.Weapon.|
|000033c0| 62 53 6e 69 70 69 6e 67 | 20 29 0d 0a 09 09 09 72 |bSniping| ).....r|
|000033d0| 65 74 75 72 6e 20 63 75 | 72 72 65 6e 74 20 2b 20 |eturn cu|rrent + |
|000033e0| 36 3b 0d 0a 09 09 65 6c | 73 65 0d 0a 09 09 09 72 |6;....el|se.....r|
|000033f0| 65 74 75 72 6e 20 63 75 | 72 72 65 6e 74 20 2b 20 |eturn cu|rrent + |
|00003400| 31 2e 35 3b 0d 0a 09 7d | 0d 0a 09 65 6c 73 65 20 |1.5;...}|...else |
|00003410| 69 66 20 28 20 4e 65 77 | 54 68 72 65 61 74 2e 49 |if ( New|Threat.I|
|00003420| 73 48 75 6d 61 6e 43 6f | 6e 74 72 6f 6c 6c 65 64 |sHumanCo|ntrolled|
|00003430| 28 29 20 29 0d 0a 09 09 | 72 65 74 75 72 6e 20 63 |() )....|return c|
|00003440| 75 72 72 65 6e 74 20 2b | 20 30 2e 34 3b 0d 0a 09 |urrent +| 0.4;...|
|00003450| 65 6c 73 65 0d 0a 09 09 | 72 65 74 75 72 6e 20 63 |else....|return c|
|00003460| 75 72 72 65 6e 74 3b 0d | 0a 7d 0d 0a 0d 0a 00 |urrent;.|.}..... |
+--------+-------------------------+-------------------------+--------+--------+