HYPER REALISTIC MAINTENANCE 2 — FS25
========================================
Combina as ideias de dois mods reais (Real Mechanical Wear e Advanced
Damage System) num sistema original — nenhuma linha de código copiada,
só técnicas e arquitetura estudadas e reimplementadas de raiz.

O QUE SIMULA
---------------
  - MOTOR: 5 componentes independentes (cilindro, pistão, chumaceiras,
    cambota, válvulas), que se influenciam entre si — desgaste do
    cilindro aumenta "blow-by", que contamina o óleo, que acelera
    ainda mais o desgaste. Efeitos reais: perda de potência, mais
    consumo de combustível, fumo, pior arranque a frio.
  - TÉRMICO: temperatura do motor, sobe com a carga, sobreaquece se o
    radiador estiver degradado.
  - FLUIDOS: óleo (nível + contaminação) e refrigerante.
  - TRANSMISSÃO/TURBO/BATERIA: desgaste da embraiagem, caixa, turbo,
    perda de capacidade da bateria e do motor de arranque.
  - AVARIAS: probabilísticas, sobem muito de hipótese acima de ~35% de
    desgaste do componente relevante. Sobreaquecimento crítico (>118°C)
    é garantido, não é sorte.
  - DIFERENCIAÇÃO POR TIPO: tratores, camiões, ceifeiras e carros
    desgastam a ritmos diferentes (ceifeiras mais depressa no motor,
    camiões mais na transmissão, carros muito mais devagar). Ceifeiras
    têm ainda um efeito extra: motor muito degradado reduz a eficiência
    real da debulha.

EFEITOS REAIS, NÃO COSMÉTICOS
---------------------------------
  - Perda de potência: reduz mesmo o binário disponível do motor
    (VehicleMotor.getMotorAvailableTorque, confirmado por engenharia
    inversa do Real Mechanical Wear)
  - Bloqueio de arranque: bateria ou motor de arranque avariados
    impedem MESMO o motor de arrancar, com aviso a piscar no ecrã
    (Motorized.startMotor + g_currentMission.hud:showBlinkingWarning)

MANUTENÇÕES PROGRAMADAS (revisões, tal como na vida real)
--------------------------------------------------------------
8 itens, cada um com o seu intervalo em horas de motor e custo real
(dinheiro da quinta, calculado como fração do preço do veículo — um
trator caro custa mais a revisar que um barato, tal como na vida
real):

  Óleo e filtro do motor .... 250h
  Filtro de ar .............. 500h
  Filtro de combustível ..... 500h
  Óleo hidráulico ........... 1200h
  Óleo da transmissão ....... 1000h
  Líquido de arrefecimento .. 1500h
  Lubrificação (massa) ...... 50h
  Correias .................. 1000h

Estes intervalos são valores TÍPICOS da indústria agrícola para
motores diesel modernos — não é a ficha técnica exata de nenhuma
marca/modelo específico do FS25 (isso não tenho como confirmar por
veículo). Se souberes os intervalos reais de algum trator específico
que uses, ajusta em HRM2_Maintenance.ITEMS.

Se deixares passar muito do intervalo, o desgaste do motor e da
transmissão acelera (até +120% mais rápido no pior caso) — negligenciar
manutenção tem um custo real, tal como devia.

HUD COM 3 PÁGINAS (Ctrl+P circula, Ctrl+M mostra/esconde)
----------------------------------------------------------------
  1. GERAL — motor, temperatura, óleo, refrigerante, transmissão,
     turbo, bateria, potência disponível
  2. DIAGNÓSTICO — compressão, blow-by, carbono, fumo, fiabilidade de
     arranque, estabilidade ao ralenti, consumo extra, contaminação
  3. MANUTENÇÃO — os 10 itens programados, horas desde a última
     revisão, e se estão em dia ou atrasados

A posição é ajustável em Definições Gerais do jogo (mesma técnica do
mod do 4x4) — procura "Hyper Realistic Maintenance HUD" no menu.

CLASSIFICAÇÃO AUTOMÁTICA POR POTÊNCIA (HP)
------------------------------------------------
Além das substituições por marca/série (John Deere 7J, Compact
Utility), o mod lê a potência real do veículo (storeItem.specs.power,
confirmado no Advanced Damage System) para escolher automaticamente
entre as classes Compact (<50 HP), Utility (50-150 HP) e Large Ag
(>150 HP) da tua tabela genérica — sem precisares de configurar nada
por veículo. As substituições de marca específica têm sempre
prioridade sobre isto, quando existem.

OFICINA REAL DO JOGO
------------------------
O botão de reparação da loja de veículos, da oficina da quinta, ou de
uma oficina móvel (todas usam o mesmo ecrã do jogo) agora também
realiza uma revisão completa HRM2 — paga todos os itens de manutenção
em atraso mais uma reparação geral proporcional ao desgaste, tudo
debitado à quinta. A reparação normal do jogo (danos visuais/chapa)
continua a acontecer como seria de esperar, em paralelo.

CONTROLOS
------------
  - Ctrl+M: mostra/esconde o HUD
  - Ctrl+P: circula entre as 3 páginas do HUD
  - "hrm2Status": estado mecânico completo do veículo atual
  - "hrm2MaintStatus": lista as 10 manutenções, horas desde a última,
    se estão em dia/atrasadas, e o custo de cada uma
  - "hrm2Service <item>": realiza uma manutenção específica, com custo
    real debitado à quinta (ex: "hrm2Service engineOil")
  - "hrm2Repair": repara tudo de uma vez (motor, transmissão, bateria,
    fluidos, avarias, todas as manutenções) — sem custo, é o "botão de
    pânico" para testes

LIMITAÇÕES HONESTAS
-----------------------
  - SÓ SINGLEPLAYER, estado não gravado na savegame ainda (tal como o
    mod do 4x4, isto pode vir numa versão futura)
  - As taxas de desgaste e os intervalos de manutenção são estimativas
    minhas para "parecerem realistas" (baseadas em valores típicos da
    indústria), não valores de nenhum veículo real específico do FS25
    — ajusta HRM2_Core.ENGINE_BASE_WEAR_PER_HOUR,
    HRM2_Failure.BASE_CHANCE_PER_HOUR e HRM2_Maintenance.ITEMS à
    vontade
  - O "turbo" aplica-se a todos os veículos por igual — não tenho
    forma confirmada de detetar se um motor específico tem turbo ou não
  - Não simula fumo visual nem som — só o valor "smokeLevel" existe
    internamente, sem efeito visual (isso exigiria partículas, fora do
    que consigo confirmar com segurança)

INSTALAÇÃO
-------------
1) Zip da pasta "FS25_HyperRealisticMaintenance2" com o mesmo nome,
   ficheiros na raiz do zip.
2) Documentos\My Games\FarmingSimulator2025\mods
3) Ativar no menu de mods antes de carregar a partida.

Erros aparecem só uma vez no log, prefixo "[HRM2]".
