Решения №11–13 (документ 01 комплекта): - №11: прогноз показывает точный шанс победы (BattleForecast.WinChancePermille) — перебор всех 101×101 равновероятных сочетаний удачи; в окне атаки «шанс победы 27%» - №12: сила считается точной дробью (BigInteger), удача — после всех модификаторов, округление одно и только для показа (3 пехоты против 1 кав. и 2 пех.: 13,00 вместо 12,96) - №13: потери — целая часть гарантирована, дробная — шанс ещё одной потери из отдельного потока случайности (своя соль на сторону и тип), воспроизводимо по номеру боя; одиночка-проигравший теперь может погибнуть - версия правил боя 3 (BattleRules, BattleConfig) Голод на момент боя (№9, документ 02 — офлайн в причинно-следственном порядке): - MarchManager спрашивает IPopulation.WasStarvingAt(время прихода войска) - перед боем, прошедшим в прошлом, просит Население досчитать время (публичный Tick); модуль Населения не менялся Формула потерь (№14) и раненые (№15) не тронуты — ждут чисел от команды. Тесты: шанс победы совпадает с 20 000 настоящих боёв (±2%), сила без промежуточного округления, округление потерь (одиночка гибнет ~50%, 1,5 → 1 или 2). Все 42 теста ModuleTests проходят вне Unity. Документы Battle, World, Core, README обновлены (только наши строки). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
24 lines
606 B
Plaintext
24 lines
606 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: 3
|
|
counterPercent: 25
|
|
wallsPercent: 20
|
|
siegeVsWallsPercent: 50
|
|
siegeInFieldPercent: -25
|
|
loserLossPercent: 50
|
|
randomPercent: 5
|
|
famineStrengthPercent: 50
|
|
fatigueStrengthPercent: 80
|