3. Logika simulace
3.1 Jedna sdílená simulační autorita
Canonical data proudí do jedné shared simulation, ze které čerpají GS2D i GS2K. Neexistuje paralelní legacy damage/weapon tabulka, která by přepisovala canonical TECHREF.
3.2 Helicopter flight physics — shared force-integrated runtime
Od P5.7.127 používá GS2D i GS2K jednu společnou HelicopterFlightModel. Collective, cyclic a yaw nejsou přímé „move“ příkazy: flight state se integruje z rotorového tahu, orientace tahu, hmotnosti, větru a aktivních assistance/reality switches.
- Collective: persistentní poloha páky; mění požadavek na rotor thrust/power. Uvolnění inputu nevrací collective automaticky na střed.
- Cyclic: naklání rotor-thrust vector. Keyboard W/S/A/D od P5.7.155 mění persistentní attitude trim po krocích; release nesrovnává stroj na 0°. Dlouhé držení zrychluje travel rate. Forward/lateral acceleration vzniká horizontální složkou tahu; při stejném collective současně klesá vertikální složka.
- Ground effect: funkce skutečného AGL a rotor diameter, ne pevné screen altitude.
- ETL / translational lift: závisí na airspeed; vítr mění rozdíl airspeed vs ground speed.
- Reaction torque: závisí na rotor power/collective a rotor architecture. TANDEM/COAXIAL/INTERMESHING nepoužívají stejný generic torque jako single-main/tail konfigurace.
- Gross mass / damage / fuel: resolved aircraft profile předává hmotnost, powerplant/control metadata a damage coupling do stejného runtime modelu.
Heading 0° znamená forward vector +Y. To je stejná osa jako canonical nose modelu a loadout preview.
3.3 Balistika a terminal effects
Canonical schema má autoritu CANONICAL_TECHREF_PLUS_EXPLICIT_SIMULATION_MODEL a vyžaduje oddělení weapon → launcher → projectile/missile → warhead → fuze. Guided zbraně mohou mít další guidance/seeker/acquisition/LOS/target-loss/terminal-guidance data.
Runtime dnes: shared weapons state vytváří projectile/missile entity z canonical launch speed, range/lifetime, guidance a target dat; guided fire prochází target/sensor/LOS gate a impact/terminal cesta následně mění shared world/vehicle/personnel/structure state. To je skutečně implementovaná cesta pro oba renderery.
Schema připravené pro hlubší fyziku: drag model, ballistic coefficient, gravity model, dispersion, air density, altitude, wind a temperature-if-modeled jsou canonical pole. Bible ale netvrdí, že každý projectile již používá plný 6-DOF/environment integrator; nevyplněné nebo neimplementované části zůstávají explicitní baseline/PENDING.
Armor penetration fail-closed: numerická RHA penetrace se přijme pouze z explicitního primary-source reference condition. Pokud source-backed penetrace nebo target armor reference chybí, runtime přejde na QUALITATIVE_EFFECT_ONLY/SOURCE_BLOCKED; nesmí z kvalitativního „anti-armor“ tvrzení vyrobit fiktivní mm RHA. I source-backed RHA comparison je pouze reference-condition gate, ne tvrzení o přesné composite/RHAe mapě hit-sectoru.
Přesné rychlosti, dostřely, penetrace a účinky se v této Bible neopisují. Patří do canonical TECHREF .data a source auditů, kde je každý údaj označen jako SOURCE_FACT / SIMULATION_BASELINE / PENDING.
3.4 Konstrukce budov a strukturální damage
Budovy už nejsou všechny stejný „target“. Runtime používá StructuralDamageAuthority a canonical structural-material profily (12 aktuálně evidovaných archetypů/profilů v datové autoritě). Lehká bambusová/dřevěná chatrč, nevyztužené zdivo a železobeton tedy reagují na stejný zásah rozdílně.
- lehká konstrukce: malá HE/rocket hrozba může vyvolat prudký strukturální kolaps;
- masonry: větší odolnost, fragmentace a lokální poškození bez automatického zničení;
- reinforced concrete/hardened: vyšší strukturální odpor a menší relativní poškození při stejném zásahu.
Částečné strukturální poškození je stav, který může přetrvat; není používáno univerzální „non-vehicle hit = destroy“.
3.5 WORLD, LOS a cover
Výška terénu, voda, budovy a foliage jsou canonical WORLD entities. Budovy a foliage mohou ovlivnit LOS, cover, concealment a detection; zničená struktura může změnit stav světa a rubble/obstacle logiku.
3.6 Player flight groups a NPC mission authority
PLAYER flight podporuje group routes A/B a SOLO members. Group waypoint příkaz se replikuje pouze členům dané skupiny; REGROUP vrací členy do společné formace. Každý wingman spotřebovává vlastní munici a používá svůj vlastní aircraft/model assignment.
npc_runtime_policy má vždy authority=MISSION_AUTHOR a player_editable=false. Runtime sloučí mission defaults s instance/asset override a uloží výslednou policy do interního entity/placement runtime state. Tím je oddělen hráčský Hangar od developer-authored ALLY/OPFOR konfigurace.
3.7 Persistenční a deterministický kontrakt
Flight/world/mission systémy ukládají stav přes snapshot/restore místo rekonstrukce z renderu. Simulation state je autorita a renderer je consumer. Náhodné environmentální efekty nesmějí být zavedené jako nekontrolované frame-rate-dependent změny, pokud by tím rozbíjely replay/regression determinismus.
P5.7.155 — persistent cyclic, low-level IGE a hover trim
GS2D/GS2K sdílejí jeden incremental keyboard control law. W/S+A/D drží dosažený command po release a mají přibližně ±44° persistent trim envelope; R/F drží dosažený collective a tap/hold mají odlišnou progresivní rychlost s okamžitým prvním krokem. Rotorový tah se nepřepočítává podle maximálního trim limitu: horizontální a vertikální složka vznikají přímo z aktuálního pitch/roll přes jednotkový sin/cos thrust vector, takže například 10° náklonu má stejný fyzikální účinek bez ohledu na povolený maximální trim. Collision Avoidance nad rovinou nevytváří skrytý altitude hold. IGE zvyšuje účinnost a tlumí sestup pouze aerodynamicky. AUTO HOVER používá krátký capture transient a poté konstantní equilibrium collective; stabilní hover do 15 m AGL poskytuje společný readiness gate pro sling/hoist/fast-rope runtime.
P5.7.135 — body-frame controls, AP a wingman safety
Horizontální cyclic vstupy jsou transformovány podle aktuálního headingu. Po yaw změně tedy W/S a A/D okamžitě mění směr řídicí síly spolu s vrtulníkem; stávající ground velocity může fyzikálně dobíhat, ale řídicí vektor nezůstává v historickém world-space směru.
Waypoint AP používá stejný flight model jako ruční řízení. Guidance obsahuje speed hold, waypoint capture/braking, AGL terrain following a dopředné vzorkování terénu. Collective/torque se při běžné korekci neshazuje na nulu.
Wingman safety je samostatná task-independent vrstva: soft separation 90 m, hard envelope 48 m, preferovaný odstup od PLAYER 115 m a vertikální separation 12 m. Hodnoty jsou gameplay defaults. Konfliktní AI dočasně uhne a poté pokračuje v původním tasku.
P5.7.135 SAVE / PROFILE / ROSTER
GS2D a GS2K používají oddělené strict current-save namespace; runtime migrace a compatibility fallback jsou zakázané. PLAYER portrét je persistentní součást pilotního záznamu (portrait_id + asset reference).
DEVELOPER/test save fixture jsou záměrně různorodé pro QA rosteru: každá ACTIVE čtyřčlenná wingman letka používá čtyři rozdílné hodnosti, čtyři rozdílné portréty a čtyři rozdílné award/ribbon kombinace. Stejný kontrakt platí pro GS2D i GS2K. Nové current profily generují wingmany se stejnou per-flight diverzitou; uzavřené KIA/MIA/RETIRED identity se neregenerují.
3.x P5.7.157 — external operations, mass a defensive crew
game_gs2000_external_ops.py je společná GS2D/GS2K autorita pro onboard personnel, MEDEVAC, HOIST/FAST ROPE, sling load a door-gunner defensive AI. Crew uvnitř vrtulníku není samostatná renderovaná postava.
- Každý onboard person přidává svou runtime mass; zdravotní stav KIA hmotnost fyzického těla neodstraňuje.
- Externí sling cargo přidává plnou cargo mass do flight modelu. Pickup/drop mění gross mass okamžitě.
- AUTO HOVER používá capture + equilibrium collective. External-ops readiness vyžaduje stabilní low hover, standardně do 15 m AGL.
- Ground effect mění rotorovou účinnost/aerodynamické tlumení, nikdy neposouvá collective lever za hráče.