extern void object::Produkcja() { int A[], B[], i = 0; point factory; object item; if (radar(BotFactory) == null) { message("Brak fabryki robotów", DisplayError); return; } A[i++] = WingedGrabber; A[i++] = TrackedGrabber; A[i++] = WheeledGrabber; A[i++] = LeggedGrabber; B[i++] = WingedShooter; B[i++] = TrackedShooter; B[i++] = WheeledShooter; B[i++] = LeggedShooter; B[i++] = WingedOrgaShooter; B[i++] = TrackedOrgaShooter; B[i++] = WheeledOrgaShooter; B[i++] = LeggedOrgaShooter; A[i++] = WingedSniffer; A[i++] = TrackedSniffer; A[i++] = WheeledSniffer; A[i++] = LeggedSniffer; B[i++] = Thumper; B[i++] = PhazerShooter; B[i++] = Recycler; B[i++] = Shielder; A[i++] = Subber; if (radar(Titanium) != null) { item = radar(Titanium); goto(item.position); grab(); } else { item = radar(TitaniumOre); if (item == null) { message("Brak komponentów do rozpoczęcia procesu produkcyjnego", DisplayError); return; } goto(item.position); grab(); item = radar(Converter); goto(item. position); drop(); move(-2.5); do item = radar(Titanium, 0, 20, 0, 5); while( item == null ); move(2.5); grab(); } item = radar(BotFactory); goto(item.position); drop(); move(-1.5); factory = position; move(-2); message("Czekam na wyprodukowanie robota"); while (true) { if (radar(A, 0, 30, 2, 6) != null) { message("Produkcja robota zakończona"); if (radar(PowerCell) != null) { item = radar(PowerCell); goto(item.position); grab(); break; } else { if (radar(PowerPlant) != null) { if (radar(Titanium) != null) { item = radar(Titanium); goto(item.position); grab(); item = radar(PowerPlant); goto(item.position); drop(); move(-3); wait(14); message("Produkcja ogniwa zakończona"); move(3); grab(); break; } else { if (radar(Converter) != null and radar(TitaniumOre) != null) { goto(item.position); grab(); item = radar(Converter); goto(item. position); drop(); move(-2.5); do item = radar(Titanium, 0, 20, 0, 5); while( item == null ); move(2.5); grab(); item = radar(PowerPlant); goto(item.position); drop(); move(-3); wait(14); message("Produkcja ogniwa zakończona"); move(3); grab(); break; } } } else { if (radar(NuclearCell) != null) { item = radar(NuclearCell); goto(item.position); grab(); break; } else { if (radar(NuclearPlant) != null and radar(UraniumOre) != null) { item = radar(UraniumOre); goto(item.position); grab(); item = radar(NuclearPlant); goto(item.position); drop(); move(-5); wait(31); message("Produkcja ogniwa zakończona"); move(5); grab(); break; } else { message("Brak komponentów do kontynuowania procesu produkcyjnego", DisplayError); return; } } } } } if (radar(B, 0, 30, 2, 6) != null) { message("Produkcja robota zakończona"); if (radar(NuclearCell) != null) { item = radar(NuclearCell); goto(item.position); grab(); break; } else { if (radar(NuclearPlant) != null and radar(UraniumOre) != null) { item = radar(UraniumOre); goto(item.position); grab(); item = radar(NuclearPlant); goto(item.position); drop(); move(-5); wait(31); message("Produkcja ogniwa zakończona"); move(5); grab(); break; } else { if (radar(PowerCell) != null) { item = radar(PowerCell); goto(item.position); grab(); break; } else { if (radar(PowerPlant) != null) { if (radar(Titanium) != null) { item = radar(Titanium); goto(item.position); grab(); item = radar(PowerPlant); goto(item.position); drop(); move(-3); wait(14); message("Produkcja ogniwa zakończona"); move(3); grab(); break; } else { if (radar(Converter) != null and radar(TitaniumOre) != null) { goto(item.position); grab(); item = radar(Converter); goto(item. position); drop(); move(-2.5); do item = radar(Titanium, 0, 20, 0, 5); while( item == null ); move(2.5); grab(); item = radar(PowerPlant); goto(item.position); drop(); move(-3); wait(14); message("Produkcja ogniwa zakończona"); move(3); grab(); break; } } } else { message("Brak komponentów do kontynuowania procesu produkcyjnego", DisplayError); return; } } } } } wait(1); } goto(factory); item = radar(BotFactory); turn(direction(item.position)); drop(); move(-3.5); message("Sekwencja produkcji zakończona", DisplayInfo); }