Числа боя (ревью 27.10.2026, п. 2.5): - BattleRules (модуль Боя, без Unity) — все числа в одном месте, с версией - таблица BattleConfig (Assets/Resources/BattleConfig.asset) — меняется в Inspector, App/GameModules переводит её в BattleRules - сила воинов по-прежнему из GameData.Troops Случайность (план 27.10.2026): - каждой стороне от −5% до +5% (шаг 0,1%), из номера боя BattleRequest.Seed (SplitMix64) - тот же номер с теми же войсками — всегда тот же итог; поход получает battleSeed при выступлении и хранит его Прогноз: - IBattleSystem.Forecast: «преимущество / исход неясен / высокий риск поражения», диапазоны силы и потерь - окно атаки показывает прогноз риска вместо точного итога; окно итога боя — силы и удачу сторон Итог боя (ревью, п. 2.3): - для обеих сторон по типам: до боя, выжившие, погибшие, раненые (пока нули — доля не утверждена) - номер боя, версия правил, удача сторон Тесты: случайность воспроизводима и в пределах ±5%; прогноз не противоречит 300 боям с разными номерами; итог сходится по типам у обеих сторон; правила из таблицы; тот же поход — тот же бой. Все 37 тестов ModuleTests прогнаны вне Unity — проходят. Открыто для команды (Battle.md): показывать ли шанс победы в процентах; порядок бонусов и случайности. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
549 B
Plaintext
22 lines
549 B
Plaintext
%YAML 1.1
|
|
%TAG !u! tag:unity3d.com,2011:
|
|
--- !u!114 &11400000
|
|
MonoBehaviour:
|
|
m_ObjectHideFlags: 0
|
|
m_CorrespondingSourceObject: {fileID: 0}
|
|
m_PrefabInstance: {fileID: 0}
|
|
m_PrefabAsset: {fileID: 0}
|
|
m_GameObject: {fileID: 0}
|
|
m_Enabled: 1
|
|
m_EditorHideFlags: 0
|
|
m_Script: {fileID: 11500000, guid: 7264ce138a844adc81fa69b77a27c8a6, type: 3}
|
|
m_Name: BattleConfig
|
|
m_EditorClassIdentifier:
|
|
version: 1
|
|
counterPercent: 25
|
|
wallsPercent: 20
|
|
siegeVsWallsPercent: 50
|
|
siegeInFieldPercent: -25
|
|
loserLossPercent: 50
|
|
randomPercent: 5
|