;Bomberbot by Devon ;This rather basic robot finds an enemy, approaches it ;and, when it's close enough, releases everything it's got. ;When the heat is too high, it moves away while cooling off, ;waiting to attack again. As I said, rather basic, but it works ;pretty well. #config scanner=3 #config armor=2 #config weapon=5 #config heatsinks=2 #config engine=0 #config mines=0 #config shield=0 #def arcwide #def scanacc #def scanmove #def etrot #def edist #def edista #def heat #def heatlvl !start: opo 20,499 mov ax,1 int 3 mov arcwide, 64 int 13 !begin int 12 cmp fx,0 ja !collide !be ipo 2,heat cmp heat,450 ja !shutdown !restart opo 11,100 opo 17,arcwide ipo 7,ax mov edist,ax cmp edist 700 jbe !found ja !notfound jmp !begin !found opo 18,1 cmp heatlvl,0 jne !altmov ipo 4,ax sub ax,30 opo 14,ax !heataltmov ipo 8,scanacc mov scanmove,arcwide add scanmove,scanmove div scanmove,4 cmp arcwide,3 jbe !arcok div arcwide,4 !arcok cmp scanacc,0 jmp !scanadjust !firecontrol cmp heatlvl,0 jne !heatcheck !prefire cmp edist,200 jbe !fire jmp !begin !fire opo 22,10 opo 15,scanacc opo 15,scanacc jmp !begin !scanadjust mpy scanmove,scanacc opo 12,scanmove cmp arcwide,4 jbe !firecontrol ja !begin !notfound cmp arcwide,64 jb !widenarc !arcdone opo 12,128 jmp !begin !widenarc add arcwide,4 jmp !arcdone !heatcheck cmp heat,150 jbe !heatok opo 18,0 jmp !begin !heatok mov heatlvl,0 jmp !prefire !shutdown opo 18,0 mov heatlvl,1 jmp !restart !altmov ipo 4,ax sub ax,70 opo 14,ax jmp !heataltmov !collide int 13 opo 14,90 del 30 jmp !be