Patch Notes

History of all arena updates and changes.

v0.0.034March 8, 2026Latest

Архитектурный рефакторинг: generic visual effects, damage fixes

Архитектура

  • Generic visual effects: рендерер больше не знает про конкретных чемпионов — visualEffects описываются сервером
  • isDamageableEntity предикат: единый type guard вместо ручных проверок type === 'champion' || type === 'minion'
  • Jinx splash/minigun/range/AS перенесены из tick-auto-attacks в jinx.plugin (modifyAutoAttack + onAutoAttackHit)
  • yasuoFlowShieldStep переименован в flowShieldStep — уже работал generic, теперь имя соответствует
  • Новый хук modifyAutoAttack для plugin-driven модификации range/AS автоатак

Исправления

  • Фикс %HP урона: процентный урон от HP цели теперь считается по реальной цели, а не по DUMMY_TARGET (1000 HP)
  • sumTargetHPDamage вычисляется на попадании в damage.effect, tick-projectiles, tick-zones
v0.0.033March 6, 2026

Spell tooltips — исправление тултипов

Исправления

  • Тултипы спеллов при наведении на QWER — починена отправка механик (race condition при реконнекте)
  • Тултип пассивки — добавлена поддержка слота P в билдере механик и клиенте
  • Подсказка пассивки показывает описание (напр. Get Excited! у Jinx)
v0.0.032March 5, 2026

Composable Spell System — архитектурный рефакторинг

Composable Spell System

  • SpellDefinition: декларативные описания спеллов через SpellStep (Delivery × Effect × Moment)
  • Spell Executor: оркестратор composable спеллов с first-match условиями
  • 9 delivery executors: skillshot, targeted, self_aoe, cone, zone, dash, empower, homing, instant, shadow_place
  • 7 effect executors: damage, CC, shield, heal, buff/debuff, empower_attack, special effects
  • onPreCast hook активирован — плагины могут блокировать каст

Миграция чемпионов

  • Lux: Q/W/E/R — полная миграция включая E recast
  • Darius: Q/W/E/R — self_aoe + inner ring, empower, cone, targeted execute
  • Garen: Q/E/R — empower + cleanse, ticking zone, targeted execute
  • Jinx: Q/W/R — toggle, skillshot, piercing + distance scaling
  • Ahri: Q/W/E/R — boomerang, homing, charm + damage amp, multi-cast dash
  • Ekko: Q/W/E/R — boomerang, delayed zone, dash + empower, chronobreak
  • Yasuo: Q/W/E/R — conditional first-match (Q stacks), wind wall, targeted dash, teleport
  • Zed: Q/W/E — piercing skillshot, shadow place, self AoE (R остаётся на legacy)

Backward compatibility

  • Legacy handlers сохранены как fallback для не-мигрированных чемпионов
  • SpellPatch данные не удалены — используются конвертером и utility profiles
  • Все 182 существующих теста проходят, добавлено 26 новых тестов
v0.0.031March 5, 2026

Тултипы умений, справка (F1), dev-режим

Тултипы умений

  • Наведение мыши на слот умения показывает авто-описание механики
  • Описания генерируются из SpellPatch + DamageProfile + UtilityProfile
  • Цветовая маркировка: урон красный, лечение зелёное, CC золотой
  • Показ КД, стоимости маны, пассивных эффектов

Dev-режим

  • Ctrl+Shift+D переключает dev-режим тултипов
  • Показывает source-поля: откуда взято каждое значение
  • Структурированные данные из SpellPatch и DamageProfile

Справка (F1)

  • F1 открывает полную раскладку управления
  • Краткое описание каждого умения выбранного чемпиона
  • Все горячие клавиши с учётом пользовательских привязок

Пассивы чемпионов

  • Добавлены описания пассивных способностей для всех 8 чемпионов
  • Пассивы co-located с кодом плагинов (ChampionPlugin.passiveMechanics)
v0.0.030March 5, 2026

Recall, база, ускоренный левелинг, рекомендации магазина

Recall

  • Клавиша B вне базы запускает recall (4 сек канал)
  • Телепорт на спавн + полное восстановление HP/MP при завершении
  • Отмена recall при движении, атаке, касте или получении урона
  • Золотая прогресс-арка и таймер обратного отсчёта над чемпионом

База

  • Зона базы — радиус 500 вокруг спавна каждой команды
  • Усиленный реген на базе: +8% maxHP/maxMP в секунду
  • Магазин доступен только на базе (B на базе открывает магазин)
  • Автозакрытие магазина при выходе из зоны базы

Левелинг

  • Сжатая таблица XP (×0.55): level 16 к ~8 мин, level 18 к ~9 мин
  • Пассивный XP: 12 XP/сек для всех чемпионов

Магазин

  • Магазин открывается на категории чемпиона (Ahri → Magic, Jinx → Damage, Garen → Defense)
  • Защита покупки/продажи на клиенте и сервере — только на базе
v0.0.029March 5, 2026

Диагональный лейн, изометрические пропорции карты

Карта

  • Лейн по диагонали (~30°) вместо горизонтальной линии
  • Карта 5000×3500 с ISO-компенсацией (визуально квадратная при Y-scale 0.7)
  • Многослойный переход текстур от дороги к траве (12 alpha-слоёв с wavy-масками)
  • Травинки вдоль краёв лейна (render-to-texture спрайты)
  • Каменные платформы на спавнах с командными кольцами
  • Камни-декорации по обеим сторонам лейна

Башни

  • Башни шире и ниже (реалистичные пропорции)
  • Процедурные каменные основания вместо текстуры
  • Радиус атаки башен уменьшен (пропорционально новой карте)

Геймплей

  • Миньоны идут по диагонали от спавна к спавну
  • Спавн миньонов учитывает направление лейна (melee/caster смещение вдоль перпендикуляра)
v0.0.028March 4, 2026

Переработка магазина: крафт, иконки, экономика

Магазин

  • 33 курированных предмета (8 компонентов + 25 готовых) вместо 253
  • Двухуровневый крафт: компоненты автоматически используются при покупке готового предмета
  • Иконки предметов из DDragon CDN с предзагрузкой
  • Секции Components / Complete Items с визуальным разделением
  • Tooltip при наведении: рецепт, наличие компонентов, фактическая цена
  • Индикаторы: owned (зелёная рамка), upgradeable (оранжевая рамка)
  • Иконки в инвентаре вместо текстовых сокращений

Экономика

  • Пассивный доход: 2.04 → 5.0 g/сек
  • Золото за миньонов: melee 21→28, caster 14→21
  • Полный билд достижим к 10-12 мин вместо 50 мин
  • Продажа: 70% от полной стоимости предмета

Тесты

  • 32 unit-теста крафт-логики: покупка, апгрейд, продажа, граничные случаи
v0.0.027March 4, 2026

Спрайтовые анимации, текстуры карты, Ekko E rework

Рендеринг

  • Спрайтовые анимации чемпионов: idle (16 направлений), run/attack/cast (8 направлений, покадрово)
  • facingAngle — точный угол поворота юнита вместо простого left/right
  • Y-based z-ordering — юниты южнее рендерятся поверх северных (реалистичная глубина)
  • Текстуры карты: земля (тайлинг с anti-noise overlay), линии, река, основания башен
  • Текстуры юнитов: миньоны (melee/caster × blue/red) и башни с fallback на процедуру
  • Sprite-based hit VFX (melee/tower/crit) с pop-in анимацией и random rotation

Геймплей

  • Ekko E (Phase Dive) — рефакторинг: дэш + empowered auto с блинком к цели (teleportToTarget, blinkRange 500)
  • Empower auto-attack reset срабатывает сразу при касте (не при ударе)
  • Движение к цели учитывает blinkRange для empowered-атак
  • Коллизия с башнями после дэша/телепорта — resolveEntityTowerCollisions()
  • shadow_place корректно обрабатывается как non-zero-damage castType

Анимации

  • Facing по приоритету: attackTarget → moveTarget → position delta
  • castSlot передаётся в анимационное состояние для spell-specific анимаций
  • Загрузка direction sprites и frame animations с кешированием

Скрипты

  • generate:map-textures — генерация текстур карты
  • generate:attack / generate:cast — генерация спрайтов атаки и кастов по направлениям
v0.0.026March 3, 2026

Friends & Game Flow

Social

  • Система друзей — добавление, удаление, отображение онлайн-статуса (online/in-game/offline)
  • Панель друзей в лобби с инвайтами в комнату
  • Toast-нотификации приглашений с accept/decline

Game Flow

  • Рематч — после окончания игры лобби сохраняется, можно играть заново без пересоздания комнаты
  • Пустые комнаты автоматически удаляются через 5 минут
  • Версия приложения вынесена в единый packages/shared/version.ts

Types

  • StatusEffect — типизированный discriminated union (Shield, Buff, Debuff, Stack, Mark, CC, Slow, Deathmark)
  • GameEvent — типизированный discriminated union с точными типами на каждое событие
  • Новые типы: FriendInfo, FriendStatus, расширенные поля Zone и Projectile
v0.0.025March 3, 2026

PixiJS Renderer

Rendering

  • Экспериментальный PixiJS (WebGL) рендерер — 13 модулей: юниты, снаряды, зоны, карта, минимапа, частицы
  • Drop-in замена Canvas 2D — тот же API, GPU-ускоренная отрисовка
  • Восстановление при потере WebGL-контекста

Visuals

  • Kill-события передают имена игроков вместо ID для рендерера
  • Анимации привязаны к frame-locked таймеру для плавности
v0.0.024March 3, 2026

Keybindings & Camera

Input

  • Система переназначения клавиш — 12 действий (Q/W/E/R, attack move, stop, shop, scoreboard и др.)
  • Настройки клавиш в лобби и внутри игры (Settings Overlay) с детекцией конфликтов
  • Сохранение в localStorage, мгновенное применение без перезапуска

Camera

  • Edge scrolling — камера двигается при наведении курсора к краю экрана
  • Camera center hold (Space) — удержание центрирует камеру на чемпионе
  • Hover-подсветка вражеских юнитов при наведении курсора
v0.0.023March 2, 2026

Tick System Refactoring

Architecture

  • Game loop разбит на 13 модулей tick/ — cooldowns, status effects, regen, movement, collision, auto-attacks, projectiles, minions, towers, XP/leveling, zones, lifecycle
  • arena-utils.ts — 9 утилит (Vec2 операции, clampToMap, statAtLevel, seeded PRNG)
  • tick-constants.ts — 100+ именованных констант вместо magic numbers

Mechanics

  • Damage Amplification step — баффы/дебаффы модифицируют итоговый урон в пайплайне
  • Entity ID генерация через GameState вместо глобальных переменных
  • Seeded PRNG (Mulberry32) для детерминированной симуляции
v0.0.022March 2, 2026

Plugin Architecture

Champions

  • 8 чемпионов переведены на плагин-систему: Yasuo, Ekko, Zed, Ahri, Garen, Jinx, Darius, Lux
  • Каждый чемпион имеет свои хуки: onTick, onRegen, onDamageTaken, modifyCrit, onKill

Mechanics

  • Cast Handler Registry — модульные обработчики для каждого типа каста (skillshot, AoE, dash, targeted, cone, zone и др.)
  • Damage Pipeline — 12-шаговая обработка урона (расчёт резистов, щиты, вампиризм, проверка смерти и др.)

Bug Fixes

  • Кулдауны атак и агро-трекинг перенесены из глобальных переменных в GameState
  • Патч-ноты мигрированы с базы данных на статический JSON
  • Удалена модель PatchNote из Prisma-схемы
  • Удалён устаревший CI deploy workflow
v0.0.021March 2, 2026

Patch Notes & UI

Mechanics

  • Система патч-нотов — просмотр истории изменений внутри игры

Bug Fixes

  • Исправлена отрисовка теней на карте
  • Улучшена стабильность рендеринга
v0.0.020March 2, 2026

Wind Wall & Chronobreak

Champions

  • Yasuo: Wind Wall (W) — блокирует вражеские снаряды; нерф крит-урона
  • Ekko: Chronobreak (R) — телепорт на позицию 4 секунды назад с лечением

Mechanics

  • Лечебные фрукты появляются на карте — восстанавливают HP и ману при подборе
v0.0.019March 2, 2026

Champion Passives

Champions

  • Garen: Perseverance — восстановление HP вне боя
  • Jinx: Switcheroo! — бонус скорости атаки в форме минигана
  • Darius: Hemorrhage — стаки кровотечения при ударах
  • Lux: Illumination — бонусный урон по отмеченным целям
  • Ekko: Z-Drive Resonance — бонусный урон каждые 3 удара
v0.0.018March 2, 2026

Zed & Ahri

Champions

  • Zed: Living Shadow (W) — создаёт тень, повторяет способности; Death Mark (R) — рывок + метка с повторным уроном
  • Ahri: Spirit Rush (R) — 3 рывка с уроном по ближайшим врагам

Mechanics

  • Система теней — тени отображаются на карте и кастуют способности за чемпиона
v0.0.017March 2, 2026

Skin System & Polish

Features

  • Champion skin definitions
  • Placeholder sprite system for skins
  • Canvas renderer improvements

Combat

  • Spell override balancing
  • Unit drawing enhancements
v0.0.016March 2, 2026

Rendering Upgrade

Rendering

  • Enhanced map visuals (terrain, grass, water)
  • Improved HUD layout and readability
  • Camera smoothing and edge scrolling
  • Particle effects system

Combat

  • Game loop optimizations
  • Combat formula refinements
  • Spell override system expansion
v0.0.015March 2, 2026

Visual Enhancements

Visuals

  • Spell cast visual effects
  • Zone rendering with activation animations
  • Improved projectile trails
v0.0.014March 2, 2026

Menu & Shop

Arena

  • In-game menu (Escape key)
  • Item shop UI (B key)
  • Zone entities (AoE spell areas)
  • Spell visual overrides per champion

UI

  • Shop item grid with stat display
  • Gold tracking in shop
  • Sell items from inventory
v0.0.013March 2, 2026

Build Fixes

Bug Fixes

  • Added ts-node to API devDependencies for jest config
  • Test runner configuration fixed
v0.0.012March 2, 2026

CI Fixes

Bug Fixes

  • Replaced next lint with tsc --noEmit for web typecheck
  • TypeScript strict mode compliance
v0.0.011March 1, 2026

Stability Patch

Bug Fixes

  • Prisma generate step added to CI
  • Build pipeline stability improvements
v0.0.010March 1, 2026

Status Effects

Arena

  • CC (crowd control) system — stuns, slows, roots, knockups
  • Shield mechanics with block types
  • Skeletal animation system for champions
  • Tower visual redesign

Combat

  • Status effect application from spells
  • Shield break events
  • DoT (damage over time) support
v0.0.009March 1, 2026

CI/CD Pipeline

Infrastructure

  • GitHub Actions CI workflow
  • GHCR (GitHub Container Registry) deployment
  • Automated build + push on main branch
  • SSH deploy to production server
v0.0.008March 1, 2026

Combat Polish

Combat

  • Attack particle effects
  • Damage number popups
  • Minion damage rebalancing (nerfed)

Bug Fixes

  • Lobby redirect after game creation
  • Attack cooldown timing fixes
v0.0.007March 1, 2026

HUD Overhaul

HUD

  • Redesigned XP bar with smooth animations
  • Expanded stats panel
  • Improved minimap rendering
  • Enhanced scoreboard layout
  • Status effects visual indicators
v0.0.006March 1, 2026

Version Tracking

Infrastructure

  • Arena version tracking system (version.ts)
  • Version incrementing rule in CLAUDE.md
  • Version format: v0.0.NNN
v0.0.005March 1, 2026

Multiplayer Fixes

Bug Fixes

  • Lobby reconnection handling
  • Team assignment stability
  • Room ID filtering for WebSocket events
v0.0.004March 1, 2026

Arena Foundation

Arena

  • Arena game client (Vite + Canvas 2D)
  • WebSocket server (NestJS Gateway, socket.io)
  • Champion movement and pathfinding
  • Auto-attack system with range checks
  • Tower entities with targeting AI
  • Minion wave spawning

HUD

  • XP bar and level display
  • Stats panel with champion attributes
  • Minimap with entity positions
  • Scoreboard (Tab)
  • Status effects display
v0.0.003March 1, 2026

E2E Tests & Deployment

Testing

  • 31 E2E API tests covering all endpoints
  • Full combo calculation test suite

Infrastructure

  • Docker multi-stage builds (API + Web + Nginx)
  • docker-compose.production.yml
  • Nginx reverse proxy configuration
  • Arena version display in HUD (v0.0.003)
v0.0.002March 1, 2026

Advanced Mechanics

Features

  • Conditions system for conditional damage profiles
  • Stack mechanics support
  • On-hit proc calculations
  • Rabadon's Deathcap AP multiplication
  • Float rounding aligned with LoL engine
  • Effect classification for spell profiles

Testing

  • Golden tests for Ekko damage calculations
  • DnD (Drag-and-Drop) combo tests
v0.0.001February 28, 2026

Initial Release

Features

  • MVP combo calculator with full damage pipeline
  • 172 champions with base stats and auto-parsed spells
  • Ekko: complete manual spell curation
  • Item system: 253 items with stat summation
  • Combo builder: 6 step types, shields, lifesteal/omnivamp

Infrastructure

  • Monorepo setup with pnpm workspaces
  • NestJS API + Next.js frontend + shared types
  • CDragon + DDragon data pipeline