Mehrere Drohnen – Megafarm-Code für The Farmer Was Replaced

Nach dem Unlock von Megafarm farmst du nicht mehr mit einer Drohne, sondern mit einer Flotte. Diese Seite ist der Guide zu mehreren Drohnen in The Farmer Was Replaced: was der Unlock gibt, wie spawn_drone arbeitet, und ein Muster für Kürbis-, Baum- oder Polyculture-Skripte.

Zuerst Megafarm freischalten

Megafarm ermöglicht mehr als eine Drohne. Upgrades erhöhen das Limit. Ohne Unlock gibt es kein spawn_drone, jeder Crop-Skript bleibt single-threaded.

Nützliche Helfer danach:

So arbeitet spawn_drone

Übergib das Funktionsobjekt, keinen Aufruf:

# Correct
spawn_drone(harvest_column)

# Wrong
spawn_drone(harvest_column())

Die neue Drohne erscheint auf derselben Kachel wie die Eltern und startet die Funktion. Extra-Argumente danach werden in den Aufruf kopiert. Kehrt die Funktion zurück, verschwindet die Drohne. Drohnen kollidieren nicht.

Am Limit macht spawn_drone nichts und liefert None. Sicheres Muster:

if not spawn_drone(task):
    task()

Es gibt keine besondere „Haupt“-Drohne. Jede kann weitere spawnen; jede lebende zählt zu max_drones().

Code für mehrere Drohnen: eine Spalte je Drohne

Häufiges Megafarm-Muster: Die Eltern gehen ostwärts über die Farm und spawnen pro Spalte einen Worker. Jeder Worker farmt Nord–Süd (ein Pass oder endlos).

def harvest_column():
    size = get_world_size()
    for i in range(size):
        if can_harvest():
            harvest()
        move(North)

clear()
while True:
    while num_drones() < max_drones():
        if spawn_drone(harvest_column):
            move(East)
        else:
            break
    harvest_column()
    move(East)

Ersetze den Körper von harvest_column durch Plant-/Water-/Fertilize-Logik. Bei Kürbissen braucht jede Drohne feste Spalten und eine eigene Bad-Tile-Liste – Drohnen teilen Globals nicht wie normales Python.

Phasen mit wait_for synchronisieren

Wenn alle erst fertig pflanzen müssen, bevor jemand erntet (Riesenkürbis-Merge, Kaktus-Sortierung), Handles behalten und warten:

def plant_column():
    size = get_world_size()
    for i in range(size):
        if get_ground_type() != Grounds.Soil:
            till()
        plant(Entities.Pumpkin)
        move(North)

handles = []
size = get_world_size()
for x in range(size - 1):
    h = spawn_drone(plant_column)
    if h:
        handles.append(h)
    else:
        plant_column()
    move(East)

plant_column()

for h in handles:
    wait_for(h)

Tipps, die Stunden sparen

Bezug zu Polyculture und Kürbis

Bei Polyculture beschleunigen mehrere Drohnen Spalten-Sweeps; Companion-Dictionaries vorsichtig über Argumente/Sektoren. Beim Kürbis keine geteilte Dead-Liste. Megafarm hebt Crop-Regeln nicht auf – es parallelisiert nur.

FAQ

Warum liefert spawn_drone None? Du hast schon max_drones() lebende Drohnen inkl. Eltern.

Teilen Drohnen Variablen? Behandle jedes Programm als getrennt. Argumente und wait_for, nicht eine globale Liste von allen.

Können Spawn-Drohnen weitere spawnen? Ja. Jede lebende zählt zum Cap.

Wohin danach? Kürbis und Polyculture skalieren oder Tutorial für Sprachbasics.