;Name:Tyson Hoffman ;Robot: TeK ;Commentary: ;Strategy: Use trig to calculate the location of the enemy. Use table of movements to evade ; attack ;1-Added configs, begining to put in sine table, movement table, & basic movement code. ;2-Fixed Movement code ;3-Added bogie detection and attack code ;4-First test yielded mixed results vs. stationary target, Forgot to reset scan width ;5-Able to mash any slow moving or sitting object, however precisely aimed shots go anywhere ; but where I think they should. ;6-Forgot where the Arena origin is and adjusted, still *way* off ;7-Found out I was doing an operation twice on one var instead of once on two vars. ; Also forgot to adjust for my position. ;8-Temporarily(I hope) diable target prediction, just going to see how it does. ; Also added heat checking routine #config scanner= 2 #config weapon= 4 #config armor= 2 #config engine= 2 #config heatsinks= 2 #config mines= 0 #config shield= 0 #def Dir opo 11, 100 mov ex, 500 mov fx, 500 int 7 ipo 3, Dir sub ax, Dir opo 14, ax int 3 mov @256, 0 mov @257, 1 mov @258, 3 mov @259, 4 mov @260, 6 mov @261, 7 mov @262, 9 mov @263, 10 mov @264, 12 mov @265, 14 mov @266, 15 mov @267, 17 mov @268, 18 mov @269, 20 mov @270, 21 mov @271, 23 mov @272, 24 mov @273, 25 mov @274, 27 mov @275, 28 mov @276, 30 mov @277, 31 mov @278, 32 mov @279, 34 mov @280, 35 mov @281, 36 mov @282, 38 mov @283, 39 mov @284, 40 mov @285, 41 mov @286, 42 mov @287, 44 mov @288, 45 mov @289, 46 mov @290, 47 mov @291, 48 mov @292, 49 mov @293, 50 mov @294, 51 mov @295, 52 mov @296, 53 mov @297, 54 mov @298, 54 mov @299, 55 mov @300, 56 mov @301, 57 mov @302, 57 mov @303, 58 mov @304, 59 mov @305, 59 mov @306, 60 mov @307, 60 mov @308, 61 mov @309, 61 mov @310, 62 mov @311, 62 mov @312, 62 mov @313, 63 mov @314, 63 mov @315, 63 mov @316, 63 mov @317, 63 mov @318, 63 mov @319, 63 mov @320, 64 mov @321, 500 mov @322, 500 mov @323, 400 mov @324, 200 mov @325, 200 mov @326, 200 mov @327, 200 mov @328, 400 mov @329, 800 mov @330, 400 mov @331, 800 mov @332, 200 mov @333, 600 mov @334, 200 mov @335, 600 mov @336, 800 mov @337, 800 mov @338, 800 mov @339, 800 mov @340, 600 mov @341, 200 mov @342, 600 mov @343, 200 mov @344, 800 mov @345, 400 mov @346, 800 mov @347, 500 mov @348, 200 mov @349, 800 mov @350, 500 mov @351, 200 mov @352, 500 mov @353, 500 mov @354, 800 #def Spdc #def Spd #def Angl #def Armr #def Wait #def Time #def Mp #def Scns #def Rnge #def MyX #def MyY #def EnX #def EnY #def EnS #def TarX #def TarY #def Sin #def Cos #def THit mov Spdc, 50 mov Spd, 50 mov Angl, 20 mov Armr, 100 mov Wait, 1 mov Time, 10 mov Mp, 323 mov Scns, 0 !Move cmp Wait, 1 je !WaitOn jne !Weave !Move2 ipo 6, ax cmp ax, Armr mov Armr, ax jls !Next int 2 cmp ex, 100 jls !Next cmp ex, 900 jgr !Next cmp fx, 100 jls !Next cmp fx, 900 jgr !Next !Radar ipo 9, ax cmp ax, 500 jgr !Move jle !WideScan !WideScan opo 17, 64 ipo 7, ax cmp ax, 500 jls !NarrowScan opo 12, 128 jge !Radar !NarrowScan opo 17, 15 mov ax, @3 add ax, 10 je ax jne ax :8 opo 12, -52 je 10 jne 10 :9 opo 12, -26 je 10 jne 10 :11 opo 12, 26 je 10 jne 10 :12 opo 12, 52 :10 ipo 7, ax cmp ax, 500 jgr !Move ;Pin Point Scan opo 17, 2 mov ax, @3 add ax, 20 je ax jne ax :18 opo 17, -10 je 20 jne 20 :19 opo 17, -5 je 20 jne 20 :21 opo 17, 5 je 20 jne 20 :22 opo 17, 10 :20 ipo 7, Rnge cmp Rnge, 500 jgr !Move ;Trig mov EnS, @13 div EnS, 100 cmp EnS, 0 je !QFire jne !QFire mov THit, Rnge div THit, 43 ; add THit, 1 mpy EnS, THit int 2 mov MyX, ex mov MyY, fx ipo 5, ax cmp ax, 64 jgr !Trig2 mov bx, 64 mov cx, ax add ax, 256 mov EnX, [ax] sub bx, cx add bx, 256 mov EnY, [bx] mpy EnX, Rnge shr EnX, 6 mpy EnY, Rnge shr EnY, 6 neg EnY jle !EnTrig !Trig2 cmp ax, 128 jgr !Trig3 mov bx, 64 sub ax, 64 mov cx, ax add ax, 256 mov EnX, [ax] sub bx, cx add bx, 256 mov EnY, [bx] mpy EnX, Rnge shr EnX, 6 mpy EnY, Rnge shr EnY, 6 jle !EnTrig !Trig3 cmp ax, 192 jgr !Trig4 mov bx, 64 sub ax, 128 mov cx, ax add ax, 256 mov EnX, [ax] sub bx, cx add bx, 256 mov EnY, [bx] mpy EnX, Rnge shr EnX, 6 mpy EnY, Rnge shr EnY, 6 neg EnX jle !EnTrig !Trig4 mov bx, 64 sub ax, 192 mov cx, ax add ax, 256 mov EnX, [ax] sub bx, cx add bx, 256 mov EnY, [bx] mpy EnX, Rnge shr EnX, 6 mpy EnY, Rnge shr EnY, 6 neg EnX neg EnY !EnTrig mov ax, @6 ipo 5, bx add ax, bx cmp ax, 64 jgr !EnTrig2 mov bx, 64 mov cx, ax add ax, 256 mov TarX, [ax] sub bx, cx add bx, 256 mov TarY, [bx] mpy TarX, Rnge shr TarX, 6 mpy TarY, Rnge shr TarY, 6 neg TarY jle !Fire !EnTrig2 cmp ax, 128 jgr !EnTrig3 mov bx, 64 sub ax, 64 mov cx, ax add ax, 256 mov TarX, [ax] sub bx, cx add bx, 256 mov TarY, [bx] mpy TarX, Rnge shr TarX, 6 mpy TarY, Rnge shr TarY, 6 jle !Fire !EnTrig3 cmp ax, 192 jgr !EnTrig4 mov bx, 64 sub ax, 128 mov cx, ax add ax, 256 mov TarX, [ax] sub bx, cx add bx, 256 mov TarY, [bx] mpy TarX, Rnge shr TarX, 6 mpy TarY, Rnge shr TarY, 6 neg TarX jle !Fire !EnTrig4 mov bx, 64 sub ax, 192 mov cx, ax add ax, 256 mov TarX, [ax] sub bx, cx add bx, 256 mov TarY, [bx] mpy TarX, Rnge shr TarX, 6 mpy TarY, Rnge shr TarY, 6 neg TarX neg TarY !Fire add EnX, TarX add EnY, TarY add EnX, MyX add EnY, MyY mov ex, EnX mov fx, EnY err EnY int 7 ipo 3, bx ipo 4, cx add bx, cx sub ax, bx opo 13, ax opo 15 je !Move jne !Move !QFire ipo 2, ax cmp ax, 250 jge !Move opo 15, @3 opo 12, @3 je !Move jne !Move !Next mov ex, [Mp] add Mp, 1 mov fx, [Mp] int 7 ipo 3, Dir sub ax, Dir opo 14, ax opo 11, 100 mov Wait, 1 mov Time, 10 add Mp, 1 cmp Mp, 355 jls !Radar mov Mp, 321 je !Radar !Weave cmp Time, 0 sub Time, 1 jne !Move2 opo 14, Angl neg Angl add Spd, Spdc opo 11, Spd mov Time, 5 neg Spdc je !Move2 !WaitOn ipo 3, ax cmp ax, @1 jne !Radar sub Time, 1 cmp Time, 0 jne !Radar mov Wait, 0 opo 14, -10 je !Weave