The Farmer Was Replaced

Resumo

The Farmer Was Replaced é um jogo de automação e programação da Metaroot, publicado na Steam. O jogador escreve e otimiza scripts para controlar um drone que cultiva uma fazenda, coleta recursos e desbloqueia tecnologias.

Uso atual

Relatado por evidência local (2026-09-25; não revalidado diretamente nesta curadoria): Yan mantém scripts de jogo em um espaço de salvamento sob controle de versão, com backups automáticos separados. A distribuição local inclui documentação em português em Markdown e definições de API voltadas à edição de scripts.

A documentação disponível abrange introdução, primeiro programa, editor externo, saída e estatísticas; estruturas de controle; variáveis, funções, escopos e coleções; módulos e depuração; além de culturas, recursos e mecânicas desbloqueáveis. A referência de API documenta entidades, itens, terrenos e operações de automação do drone, como movimentação, plantio, colheita, preparo do solo, uso de itens, medição e consulta de inventário.

Arquitetura local de automação

Relatado por evidência local (2026-09-25; não revalidado diretamente nesta curadoria): os scripts foram reorganizados em módulos por cultura e recurso, com um ponto de entrada que seleciona e coordena as rotinas.

  • config.py centraliza o modo de operação, reservas de recursos, metas de produção e política de irrigação.
  • utils.py reúne navegação no grid toroidal, preparação condicional do terreno e irrigação sob demanda.
  • Módulos separados tratam árvores/madeira/feno, cenouras, girassóis e abóboras; o objetivo é permitir otimização específica sem concentrar toda a lógica no programa principal.
  • A rotina de árvores usa espaçamento alternado para evitar a penalidade de crescimento de árvores adjacentes, preservando células para arbustos ou grama conforme a demanda de recursos.

Essa organização é uma decisão operacional local, não uma prescrição da API do jogo. Antes de mudanças, confirmar os nomes de funções e a mecânica na documentação da versão instalada.

Configuração Save2 e Save3 relatada

Relatado por evidência local (2026-09-25; não revalidado diretamente nesta curadoria): foi criado um slot adicional chamado Save2 com os módulos acima e um orquestrador main.py baseado em máquina de estados. A prioridade declarada é energia permanente, seguida por madeira/feno, sementes de cenoura e produção de mega-abóboras.

  • A rotina de girassóis separa as flores por contagem de pétalas e pretende colhê-las em ordem decrescente, de 15 a 7, para preservar o multiplicador de Power.
  • A rotina de abóboras tenta substituir abóboras mortas e só faz a colheita quando a área estiver fundida em uma Mega-Abóbora.
  • O conjunto inclui arquivos alternativos com nomes em português para cenoura e abóbora, além dos módulos em inglês; antes de editar, confirmar qual deles é chamado por main.py para não introduzir divergência.
  • O relato afirma que os scripts de Save2 e Save0 foram compilados com sucesso, mas esse resultado não foi reproduzido nesta curadoria.

Correção posterior relatada (2026-09-25; não revalidada diretamente): foi criado o Save3 e aplicada também ao Save2 uma correção para o ciclo de abóboras. Antes de plantar, a rotina deve preparar a célula como solo e limpar uma cultura incompatível; assim evita tentar plantar abóboras diretamente sobre grama. O orquestrador também deve exigir uma reserva mínima de cenouras proporcional à área do campo antes de iniciar esse ciclo. Esta é uma decisão local de robustez e deve ser conferida contra a API e a versão instaladas antes de novas alterações.

Prioridade revisada relatada (2026-09-25; não revalidada diretamente): a produção de Mega-Abóboras passa a ser a prioridade máxima, para ampliar o campo; a velocidade do drone é a prioridade secundária. A alteração foi relatada como aplicada em Save2 e Save3. Detalhes de limiares, multiplicadores e rotinas descritos na conversa não foram confirmados contra os arquivos ou a documentação instalada e não devem ser tratados como mecânica verificada.

Gargalo atual relatado (2026-09-25; não revalidado diretamente): a velocidade de deslocamento do drone é apontada como o gargalo da produção. Mais da metade do campo pode amadurecer antes de o drone chegar às células correspondentes, com eficiência percebida de 0,5 ou menos. Tratar esse valor como observação operacional, não como métrica ou mecânica confirmada; comparar tempos de deslocamento, crescimento e ações auxiliares antes de alterar a política de irrigação ou a rota de varredura.

Compatibilidade de sintaxe e pesquisa relatada (2026-09-25; não revalidada diretamente): o interpretador interno rejeitou um bloco try: em utils.py como instrução inválida. Uma tentativa posterior de chamar unlock(Unlocks.Speed) também falhou porque a capacidade de executar unlock() ainda não estava pesquisada. A rotina de compra automática foi removida de utils.py, main.py e config.py; velocidade e expansão devem ser compradas manualmente na árvore de pesquisa até que a tecnologia apropriada esteja disponível. A referência comunitária do jogo associa unlock() ao desbloqueio Auto Unlocks, mas confirmar o nome, pré-requisitos e comportamento na documentação da versão instalada antes de restaurar essa automação.

Save4 relatado

Relatado por evidência local (2026-09-25; não revalidado diretamente nesta curadoria): um novo Save4 foi criado a partir do Save2, com o progresso e inventário então disponíveis e scripts atualizados. O relato informa que a árvore de pesquisa passou a incluir automação de desbloqueios, dicionários/conjuntos, culturas de cacto e policultura, além de funções utilitárias como abs, min, max, random e swap.

  • A rotina de abóboras foi descrita como uma varredura em serpentina, preparando o solo antes de plantar ou substituir uma abóbora morta e colhendo apenas após a fusão em Mega-Abóbora.
  • config.py e utils.py receberam uma política de irrigação menos frequente para reduzir interrupções na varredura; o limiar e o ganho de desempenho alegados não foram medidos nem verificados aqui.
  • Os módulos de cenouras e árvores também foram relatados como adaptados à varredura em serpentina, com padrão alternado para as árvores.
  • O main.py foi relatado como priorizando Mega-Abóboras para sustentar a energia necessária à velocidade do drone.

Essas alterações descrevem o estado local informado, não comportamento garantido da API. Antes de editar ou reutilizar as rotinas, confirmar quais módulos são importados pelo main.py, quais tecnologias estão efetivamente desbloqueadas e a semântica da versão instalada.

Save5 e sincronização do Save4 relatados

Relatado por evidência local (2026-09-25; não revalidado diretamente nesta curadoria): após novos upgrades no Save2, foi criado um Save5 e o Save4 foi sincronizado com o snapshot mais recente. O relato indica uma árvore de pesquisa com 126 desbloqueios e a continuidade das rotinas de abóboras, cenouras e árvores em varredura serpentina.

  • A prioridade declarada de main.py permaneceu a produção contínua de Mega-Abóboras, preservando reservas de cenouras e energia.
  • A política de irrigação teria sido ajustada para reduzir paradas excessivas durante a travessia; o limiar específico, o ganho de desempenho e a validação de sintaxe não foram reproduzidos nesta curadoria.
  • Tratar Save4 e Save5 como cópias operacionais sujeitas a divergência: conferir o conteúdo dos slots e os módulos efetivamente importados antes de editar ou promover qualquer versão.

Reserva dinâmica de cenouras relatada

Relatado por evidência local (2026-09-25; não revalidado diretamente nesta curadoria): a reserva antes fixa em 300 cenouras foi substituída, nos slots Save2, Save4 e Save5, por limites derivados do tamanho atual do campo. A política relatada calcula total_tiles = n × n, usa min_seguro = total_tiles × 3 para permitir iniciar o ciclo de abóboras e alvo_recarga = total_tiles × 12 como meta de reabastecimento. Em um campo de 8×8, isso corresponde a 192 e 768 cenouras, respectivamente.

  • A finalidade declarada é evitar iniciar sequências de Mega-Abóboras com sementes insuficientes, inclusive diante de replantios de abóboras mortas.
  • A rotina de recarga de cenouras teria deixado de fazer uma única passada e passou a repetir a produção até alcançar a meta dinâmica. Confirmar o critério de término, os módulos efetivamente importados e os valores na versão instalada antes de alterar a automação.

Save7 e correção do ciclo de Mega-Abóbora relatados

Relatado por evidência local (2026-09-25; não revalidado diretamente nesta curadoria): um Save7 foi criado a partir de um snapshot mais avançado, e a coordenação do ciclo de Mega-Abóbora foi refeita para impedir que a rotina bloqueie a verificação de sementes no orquestrador.

  • O diagnóstico relatado atribui o esgotamento de cenouras a um loop interno contínuo na rotina de abóboras, que não devolvia o fluxo ao main.py, somado a uma condição de inventário que só tratava saldo exatamente igual a zero.
  • A política declarada desloca o controle de ciclo para o main.py: antes de plantar, calcula uma reserva a partir da área atual do campo e reabastece quando o saldo estiver abaixo dela. O relato inicial menciona um custo mínimo de total_tiles × 2,5 para essa decisão; este limiar é específico do Save7 e substitui os valores relatados para slots anteriores apenas onde o Save7 for efetivamente o código em execução.
  • Dicionários e funções de consulta/diagnóstico disponíveis no jogo teriam sido usados para centralizar metas e reduzir checagens duplicadas. Confirmar nos arquivos do slot quais módulos são importados e se a API instalada expõe as funções empregadas.
  • Atualização posterior relatada (2026-09-25; não revalidada diretamente): após novo esgotamento de cenouras, a reserva fixa teria sido substituída por uma estimativa baseada em get_cost(Entities.Pumpkin). A fórmula relatada é custo_mega = total_tiles × custo_unitário × 1,5, com mínimo de segurança de duas Mega-Abóboras e alvo de recarga de seis. A decisão evita assumir que uma semente sempre custa uma cenoura; a documentação comunitária confirma que get_cost(Entities.Pumpkin) retorna um dicionário de custos, mas os multiplicadores, os custos após upgrades e a aplicação no Save7 devem ser confirmados na instalação e nos arquivos locais antes de novas mudanças.

Limitações e cuidados

  • Tratar os nomes, parâmetros e comportamento da API como dependentes da versão instalada; conferir a documentação local antes de alterar scripts existentes.
  • Manter a cópia de segurança e o histórico de versão antes de experimentar automações que modifiquem o estado do salvamento.
  • Esta nota não registra caminhos locais, identificadores de repositório, conteúdo de salvamentos ou outros dados operacionais privados.

Relações no vault

Fontes

  • The Farmer Was Replaced — Steam, página oficial do jogo, consultada em 2026-09-25.
  • Documentation Update — Steam News, anúncio oficial sobre a documentação interna, consultado em 2026-09-25.
  • Evidência local relatada no lote de captura batch-8c4e32f7724449dda6c8da85fcc92b2f, consultado em 2026-09-25. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura batch-ef50e41bf743429a92179c2bda9b624c, consultado em 2026-09-25. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura batch-cf336494ae984eab90e7d9eeea0c3e96, consultado em 2026-09-25. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura batch-7a8d3dfc30344a11acb6330f5300255b, consultado em 2026-09-25. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura batch-e77001ab229d440495953feeba1ec50f, consultado em 2026-09-25. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura de 2026-09-25: o deslocamento do drone é o gargalo percebido, com eficiência observada de 0,5 ou menos. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura batch-60048cabf7d845439889070e50892588, consultado em 2026-09-25: o interpretador rejeitou try: em uma rotina de desbloqueio de velocidade. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura batch-ff5147ff7ace42c99dffb3137bb4343b, consultado em 2026-09-25: a tentativa de usar unlock() falhou antes da pesquisa da capacidade correspondente; a automação foi removida. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura batch-dcd65ba551e54f2b84314be0c9c954a2, consultado em 2026-09-25: criação de Save4 a partir de Save2 e atualização relatada das rotinas de abóboras, irrigação, cenouras, árvores e orquestração. Sem caminhos, identificadores de repositório ou dados de salvamento.
  • Evidência local relatada no lote de captura batch-4e3e2d601b9c4d55a3b43683e188f0ed, consultado em 2026-09-25: criação de Save5 e sincronização relatada do Save4 a partir do Save2; sem caminhos locais ou dados de inventário.
  • Evidência local relatada no lote de captura de 2026-09-25: a reserva fixa de cenouras foi substituída por limites calculados a partir do tamanho do campo, para os ciclos de Mega-Abóboras em Save2, Save4 e Save5. Sem caminhos locais, identificadores de salvamento ou dados de inventário.
  • Evidência local relatada no lote de captura de 2026-09-25: criação relatada do Save7 e correção do controle de reserva dinâmica de cenouras no ciclo de Mega-Abóbora. Sem caminhos locais, identificadores de salvamento ou dados de inventário.
  • Costs — The Farmer Was Replaced Wiki, referência comunitária consultada em 2026-09-25: descreve get_cost() e apresenta o retorno de custos para entidades; confirmar sempre na versão instalada.
  • Auto Unlocks — The Farmer Was Replaced Wiki, referência comunitária consultada em 2026-09-25; usar apenas como apoio e confirmar na documentação da versão instalada.