• ; Grenade code.  Highly accurate believe it or not.
  • ; Need to extend range with scan forward.
  • ; Really redid and sped up, takes single click now.
  •  
  • closechk_ -1 1:  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • math v1 = #y_pos - #enemy_y - 2  -- explain
  • set grenade fuse ~v1  -- explain
  • math v2 = #x_pos - #enemy_x
  • if value ~v1 >= -3 then if value ~v1 <= -1 then if value ~v2 >= -1 then if value ~v2 <= 1 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2  -- explain
  • if value ~v1 >= 4 then scan forward  -- explain
  • if value ~v1 < 4 then scan relative 1  -- explain
  • if value ~v2 >= -1 then if value ~v2 <= 1 then if value #scan = 0 then launch grenade  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if grenade not ready then goto err_ #cur_head  -- explain
  • if value #scan <> 0 then if value ~v1 < 4 then goto barrier
  • math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos / #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y * #y_pos / #enemy_y + #enemy_y * #enemy_y  -- explain
  • if value ~v2 < 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2 -- explain
  • generate random  -- explain
  • if value #random >= 3 then assign v1 turn right  -- explain
  • if value #random <= 2 then assign v1 turn left  -- explain
  • ~v1  -- explain
  • scan relative 1  -- explain
  • math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos / #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y * #y_pos / #enemy_y + #enemy_y * #enemy_y  -- explain
  • if value ~v2 < 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2 -- explain
  • assign ve move backward  -- explain
  • if scan found flag then if damage is > 0 then assign ve move forward  -- explain
  • if value #scan <> 1 then if value #scan <> 3 then if value #scan <> 5 then assign ve move forward  -- explain
  • if value ~v9 <> ~v9 then beep  -- explain
  • ~ve  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #inbound >= 1 then goto locked_ #cur_head #inbound  -- explain
  • goto err_ #cur_head  -- explain
  •  
  • closechk_ -1 3:  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • math v1 = #enemy_y - #y_pos - 2  -- explain
  • set grenade fuse ~v1  -- explain
  • math v2 = #x_pos - #enemy_x
  • if value ~v1 >= -3 then if value ~v1 <= -1 then if value ~v2 >= -1 then if value ~v2 <= 1 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2  -- explain
  • if value ~v1 >= 4 then scan forward  -- explain
  • if value ~v1 < 4 then scan relative 1  -- explain
  • if value ~v2 >= -1 then if value ~v2 <= 1 then if value #scan = 0 then launch grenade  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if grenade not ready then goto err_ #cur_head  -- explain
  • if value #scan <> 0 then if value ~v1 < 4 then goto barrier
  • math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos / #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y * #y_pos / #enemy_y + #enemy_y * #enemy_y  -- explain
  • if value ~v2 < 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2 -- explain
  • generate random  -- explain
  • if value #random >= 3 then assign v1 turn right  -- explain
  • if value #random <= 2 then assign v1 turn left  -- explain
  • ~v1  -- explain
  • scan relative 1  -- explain
  • math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos / #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y * #y_pos / #enemy_y + #enemy_y * #enemy_y  -- explain
  • if value ~v2 < 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2 -- explain
  • assign ve move backward  -- explain
  • if scan found flag then if damage is > 0 then assign ve move forward  -- explain
  • if value #scan <> 1 then if value #scan <> 3 then if value #scan <> 5 then assign ve move forward  -- explain
  • if value ~v9 <> ~v9 then beep  -- explain
  • ~ve  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #inbound >= 1 then goto locked_ #cur_head #inbound  -- explain
  • goto err_ #cur_head  -- explain
  •  
  • closechk_ -1 2:  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • math v1 = #enemy_x - #x_pos - 2  -- explain
  • set grenade fuse ~v1  -- explain
  • math v2 = #y_pos - #enemy_y
  • if value ~v1 >= -3 then if value ~v1 <= -1 then if value ~v2 >= -1 then if value ~v2 <= 1 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2  -- explain
  • if value ~v1 >= 4 then scan forward  -- explain
  • if value ~v1 < 4 then scan relative 1  -- explain
  • if value ~v2 >= -1 then if value ~v2 <= 1 then if value #scan = 0 then launch grenade  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if grenade not ready then goto err_ #cur_head  -- explain
  • if value #scan <> 0 then if value ~v1 < 4 then goto barrier
  • math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos / #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y * #y_pos / #enemy_y + #enemy_y * #enemy_y  -- explain
  • if value ~v2 < 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2 -- explain
  • generate random  -- explain
  • if value #random >= 3 then assign v1 turn right  -- explain
  • if value #random <= 2 then assign v1 turn left  -- explain
  • ~v1  -- explain
  • scan relative 1  -- explain
  • math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos / #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y * #y_pos / #enemy_y + #enemy_y * #enemy_y  -- explain
  • if value ~v2 < 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2 -- explain
  • assign ve move backward  -- explain
  • if scan found flag then if damage is > 0 then assign ve move forward  -- explain
  • if value #scan <> 1 then if value #scan <> 3 then if value #scan <> 5 then assign ve move forward  -- explain
  • if value ~v9 <> ~v9 then beep  -- explain
  • ~ve  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #inbound >= 1 then goto locked_ #cur_head #inbound  -- explain
  • goto err_ #cur_head  -- explain
  •  
  • closechk_ -1 4:  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • math v1 = #x_pos - #enemy_x - 2  -- explain
  • set grenade fuse ~v1  -- explain
  • math v2 = #y_pos - #enemy_y
  • if value ~v1 >= -3 then if value ~v1 <= -1 then if value ~v2 >= -1 then if value ~v2 <= 1 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2  -- explain
  • if value ~v1 >= 4 then scan forward  -- explain
  • if value ~v1 < 4 then scan relative 1  -- explain
  • if value ~v2 >= -1 then if value ~v2 <= 1 then if value #scan = 0 then launch grenade  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if grenade not ready then goto err_ #cur_head  -- explain
  • if value #scan <> 0 then if value ~v1 < 4 then goto barrier
  • math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos / #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y * #y_pos / #enemy_y + #enemy_y * #enemy_y  -- explain
  • if value ~v2 < 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2 -- explain
  • generate random  -- explain
  • if value #random >= 3 then assign v1 turn right  -- explain
  • if value #random <= 2 then assign v1 turn left  -- explain
  • ~v1  -- explain
  • scan relative 1  -- explain
  • math v2 = #x_pos - #enemy_x - #enemy_x * #x_pos / #enemy_x + #enemy_x * #enemy_x / #y_pos + #y_pos - #enemy_y - #enemy_y * #y_pos / #enemy_y + #enemy_y * #enemy_y  -- explain
  • if value ~v2 < 3 then if value #enemy_x <> 0 then if value ~v9 = ~v9 then goto 2 -- explain
  • assign ve move backward  -- explain
  • if scan found flag then if damage is > 0 then assign ve move forward  -- explain
  • if value #scan <> 1 then if value #scan <> 3 then if value #scan <> 5 then assign ve move forward  -- explain
  • if value ~v9 <> ~v9 then beep  -- explain
  • ~ve  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #inbound >= 1 then goto locked_ #cur_head #inbound  -- explain
  • goto err_ #cur_head  -- explain