extern void object::TitaniumCollector() { object item; object convert; point flag (0,0); float err; errmode(0); // //int number, start, moment, min, sec; //start = this.lifeTime; //number = 0; // convert = radar(Converter); if ( convert == null ) { message("Brak huty",DisplayError); return; } recharge(); while (true) { item = radar(TitaniumOre,0,360,2,99999); if ( item == null ) { message("Nie znaleziono więcej rudy tytanu"); return; } err = goto(item.position); if(err==211) { message("Ruda niedostępna",DisplayError); return; } if(grab()!=0) continue; err = goto(convert.position); if(err==211) { message("Huta niedostępna",DisplayError); return; } while(err==212) { wait(1); err = goto(convert.position); } errmode(1); item = radar(Titanium,0,59,0,3); if ( item == null ) { drop(); move(-2); wait(5); } else { turn(60); drop(); turn(-60); grab(); turn(-60); drop(); turn(120); grab(); turn(-60); drop(); turn(-60); grab(); errmode(0); if ( flag.x == 0 ) { goto(space(position,6,50,6)); flag = position; } else { err = goto(flag); while(err==212) { wait(1); err = goto(flag); } } stock(); ////////////////////////////////////////////////////////////////////////////////////////// // // //moment = this.lifeTime; //LICZNIK WYDAJNOŚCI// // //min = (moment - start)/60; // //sec = (moment - start)%60; // //number = number + 1; // //message("Przygotowano kostek: " +number+ " w czasie: " +min+ " min " +sec+ " sek "); // //message("Kostek na minutę: " +number/((moment - start)/60) ); // // // ////////////////////////////////////////////////////////////////////////////////////////// } recharge(); } } ////////////////////////////////////////////////////////////////////////////////////////////////////// void object::recharge() { object item; int err; errmode(0); if (energyCell.category == PowerCell) { if ( energyCell.energyLevel < 0.5 ) { item = radar(PowerStation); if(item != null) { err = goto(item.position); if(err==211) { message("Stacja energetyczna niedostępna",DisplayError); return; } while(err==212) { wait(1); err = goto(item.position); } while( energyCell.energyLevel < 1 ) { wait(1); } } } } else { if ( energyCell.energyLevel < 0.05 ) { float min = 0; while (true) { item = radar(NuclearCell,0,360,min,1000); if (item.energyLevel == 1) { break; } min = distance (item.position, position) + 0.02; } errmode(1); goto (item.position); grab (InFront); drop (Behind); grab (EnergyCell); drop (InFront); grab (Behind); drop (EnergyCell); } } } ////////////////////////////////////////////////////////////////////////////////////////////////////// void object::stock() { object item; float angle; int i, j; errmode(1); item = radar(Converter); if(direction(item.position) > 0) { turn(direction(item.position)-180); } else { turn(direction(item.position)+180); } jet(1); wait(0.5); move(4); jet(-1); wait(0.6); errmode(0); while(true) { angle = 0; if(category == WingedGrabber) {j=9;} else {j=7;} for(i=0; i