Commit Graph

10 Commits

Author SHA1 Message Date
MpakobecEx 66f2ecc3f5 Implement Boost as a separate ability that effects can grant or remove
Cards of grade 0 and 1 have boost by default (HasBoost); CardInstance.BoostOverride lets an effect grant or remove it at runtime. AttackCommand takes an optional BoosterSlot: the back-row unit in the same column adds its power for that battle only and becomes rested. Four new tests.
2026-10-21 00:34:58 +05:00
MpakobecEx c2480bab63 Trigger buffs last until end of turn; trigger cards go through the trigger zone first
Order is now: reveal -> trigger zone -> resolve effects -> hand (drive check) or damage (damage check). Damage is added only after the trigger resolves, so heal compares the pre-damage count. Temporary power/crit are cleared at end of turn instead of end of battle.
2026-10-21 00:30:28 +05:00
MpakobecEx ebbfb46834 Damage check triggers also pause for target selection
Damage check now places the card, then pauses on a trigger with PendingTrigger(DamageCheck) and the remaining damage count. Resolving applies the same +5000 and secondary effect as drive check, then continues the remaining damage or closes the battle. 34 tests.
2026-10-21 00:27:09 +05:00
MpakobecEx a4457c6d21 Trigger targeting: +5000 and secondary effect are chosen by the player
Drive check now pauses on a trigger and waits for ResolveTriggerCommand(powerTarget, effectTarget). Power and crit modifiers moved from the battle to the unit and are cleared at the end of the battle. Stand stands the chosen rear-guard; Critical applies +1 crit to the chosen unit. Damage-check triggers still apply only the secondary effect.
2026-10-21 00:24:21 +05:00
MpakobecEx 1b317b6532 Game engine skeleton: phases, ride, call, battle, drive and damage
Pure rules library with no Orleans or database. Command in, events out. Deterministic RNG stored in GameState. Covers setup with starting vanguard and mulligan, six phases, ride, call, attack, guard, drive check, damage check with triggers, retirement and win at six damage. 8 engine tests, 30 total. Sentinel, boost and card abilities are the next step.
2026-10-21 00:20:10 +05:00
MpakobecEx d63f223783 Fix translation tests for the required nameRu field 2026-10-21 00:15:45 +05:00
MpakobecEx 921a6dc081 Propagate customer translation canon to all card texts
Applied the style from the customer's edits: unit -> 'karta', place on -> 'pomeshchaetsya v', ride -> 'smena', boost -> 'podderzhivat', attack hits -> 'prokhodit', drive check -> 'proverka', Restraint -> 'Sderzhivanie', {heal} reminder simplified, long clauses split, pronouns instead of repeated 'eta karta'. Added a forbidden-terms check to translations check. Removed the one-off seed script: ru.yaml is now the source of truth.
2026-10-21 00:04:06 +05:00
MpakobecEx edd6a7506c Keep card names in English, translate only effect text
Dropped nameRu from the translation workflow and from content validation warnings. Progress now counts cards whose text is filled; vanilla cards without text count as done.
2026-10-20 21:40:45 +05:00
MpakobecEx 625ed36f94 Card text tokenization, keyword catalog and RU translation workflow
Card texts are stored as templates with icon tokens ({auto}, {cb:3}, {vcrc}, {clan:kagero}). Keyword catalog maps tokens to icons and captions. translations build generates content/translations/ru.yaml preserving existing work; translations check verifies completeness and token integrity. 21 tests.
2026-10-20 21:35:55 +05:00
MpakobecEx 0b771bf8bb Server skeleton, content pipeline and 94-card catalog
Solution on .NET 10 LTS with rules, content and CLI projects. Content importer pulls stats from the official card list, merges trigger/rarity data, emits three YAML sets (94 cards, 124 printings). Validator checks the grade-0 shield invariant, sentinel shield, parallel printing links, and deck construction limits. 14 tests cover catalog integrity and deck validation.
2026-10-20 21:27:45 +05:00