extern void object::Obrona() { object item1, item2; point pos, start; int trans[], i, min; i = 0; trans[i++] = WheeledGrabber; trans[i++] = TrackedGrabber; trans[i++] = WingedGrabber; trans[i++] = LeggedGrabber; aim(-20); start = position; min = 0; while (true) { while(true) { item1 = radar(trans,0,360,min,1000); item2 = search(AlienAnt,item1.position); if(distance(item1.position,item2.position) < 70) break; min = distance(position,item1.position) + 0.5; if(min == 1000) min = 0; } while (radar(AlienAnt, 0, 360, 0, 20) == null) { turn(direction(item2.position)); motor(1,1); jet(0); if (topo(position) > 0) { if (temperature > 0.75) { jet(-1); wait(1); pos = position; while(temperature > 0) { turn(direction(pos)); motor(distance(pos,position),distance(pos,position)); } } if (position.z-topo(position) < 6) { jet(1); } if (position.z-topo(position) > 9) { jet(-1); } } else { if (position.z < 6) { jet(1); } if (position.z > 9) { jet(-1); } } wait(0.2); } fire(1); goto(start); } }