# GMP — Gameplay Systems ## Цель Создать детерминированную клиентскую проекцию серверного gameplay и полный набор player intents WoW 3.3.5a без переноса authoritative правил на клиент. ## GMP-1. World model - Typed entity registry и object hierarchy. - Components/read models: identity, transform, unit, player, item, gameobject, corpse, dynamic object. - Ownership, charm, pet, target, creator, transport и group relationships. - Reducers применяют domain events; presentation подписывается на changesets. - Snapshot/replay позволяют восстановить состояние без live socket. ## GMP-2. Input and movement - Remappable action layer, keyboard/mouse и optional gamepad/accessibility mappings. - Walk/run/backpedal/strafe/turn/jump/fall/swim/fly/autorun. - Camera-relative или character-relative policy строго по original behavior. - Ground/collision query abstraction, slopes, water transition и falling. - Prediction/reconciliation только локального movement; corrections имеют smoothing/snap thresholds. - Debug flight/speed отделены от production profile. ## GMP-3. Selection and interaction - Mouse/world picking, tab target, target/focus и target-of-target. - Hostility/faction/dead/visibility/selectability filters. - Facing, range, line-of-sight и interaction intents. - NPC flags определяют available services; client не выдумывает доступную функцию. - Gameobject use, gossip, trainer, vendor, mailbox, auctioneer, binder и flight master. ## GMP-4. Combat - Auto attack/auto shot, swing state и attack stop. - Damage/heal/miss/absorb/resist/block/crit feedback. - Threat presentation, combat state, evade и unit flags. - Resources, regeneration presentation и combo points/runes where applicable. - Combat log canonical events отделены от floating text/UI formatting. - Server validates hit, damage и death; client показывает pending/cast state. ## GMP-5. Spells and auras - Spellbook, ranks, passive/active, known/disabled spells. - Target requirements, range, facing, resource и client-predictable validation messages. - Cast/channel/interrupt/pushback, GCD и cooldowns. - Aura add/update/remove, stacks, duration, caster, dispel type и visibility. - Totems, shapeshift, pets, tracking, tradeskill casts. - Spell visual/audio descriptors separate from spell mechanics state. ## GMP-6. Death and recovery - Death/release spirit, ghost, corpse, graveyard, reclaim delay. - Resurrection request/accept, spirit healer penalties. - Durability loss/repair и instance wipe/reset presentation. - Failure during map transfer/reconnect does not duplicate corpse/player state. ## GMP-7. Items and economy - Inventory slots, bags, bank, keyring, equipment, ammo и currencies. - Stack/split/swap/equip/use/destroy with pending/server-confirmed states. - Loot windows, group rolls, master loot, disenchant и loot release. - Item fields, random properties, enchants, gems, durability, sets и cooldowns. - Vendor/buyback/repair, trade, mail, auction и guild bank. - Money formatting/display separated from authoritative transaction. ## GMP-8. Quests and progression - Quest availability, accept, abandon, track, objectives, complete и reward choice. - Kill, item, gameobject, explore, spell, escort, timed, reputation objectives. - Chains, prerequisites, exclusive groups, repeatable/daily/weekly и conditions. - XP/rested/level, reputation, honor, achievements. - Skills, talents, glyphs, professions, recipes и trainers. - Quest state drives view models; authoring graph compiles to server-supported representation. ## GMP-9. World activities - Area/subzone/exploration state и rest areas. - Taxi discovery/routes/flight, transports, elevators и boats. - Fishing, gathering, tracking, world events и scripted gameobjects. - Weather/time events feed render/audio but are owned by world state. - Minimap/world map POI and quest markers are projections, not quest logic. ## GMP-10. Social - Chat types, channels, whispers, system messages и links. - Friends, ignore, who, AFK/DND. - Party/raid invites, leader, roles, loot rules, ready check, raid targets. - Guild roster, ranks, notes, MOTD, event/calendar. - Presence/reconnect updates and privacy/error handling. ## GMP-11. Instances, PvP and vehicles - Difficulty, instance binds, lockouts, encounters, reset и transfer aborted. - LFG queue/proposal/roles/teleport/vote kick/rewards. - Duel, PvP flags, battleground queue/status/score/resurrection и arena teams. - Outdoor PvP objectives. - Vehicle seats, enter/exit/switch, possession action bar и transport-relative movement. ## GMP-12. Cinematics and scripted presentation - Cinematic/movie start/stop, camera control и skippability. - Server-driven scripted sequences reflected as safe presentation commands. - Loading screens and map transitions preserve session state. - Gameplay input contexts prevent actions during restricted states. ## Testing order Для каждой системы: reducer unit tests → packet/domain contract → offline scenario → live core integration → original-client comparison → latency/reconnect scenario. ## Gate Gameplay state воспроизводим replay-ом; UI/render не владеют authoritative values; все intents имеют pending/confirmed/rejected lifecycle; core gameplay loop проходит end-to-end без оригинального клиента.