docs(battlenode): regen-guard banners on hand-edited .g.cs + accessor-band null-policy invariant (M-HC-4 final review)
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View\BattleCardView.cs
|
||||
// CONTAINS HAND-EDITS (HEADLESS-FIX). Before any regen, grep this file for "HEADLESS-FIX" and re-apply
|
||||
// those blocks; a plain regen will clobber them.
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View\EnemyClassBattleCardView.cs
|
||||
// CONTAINS HAND-EDITS (HEADLESS-FIX). Before any regen, grep this file for "HEADLESS-FIX" and re-apply
|
||||
// those blocks; a plain regen will clobber them.
|
||||
using UnityEngine;
|
||||
using Wizard.Battle.Player.ClassCharacter;
|
||||
namespace Wizard.Battle.View
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View\PlayerClassBattleCardView.cs
|
||||
// CONTAINS HAND-EDITS (HEADLESS-FIX). Before any regen, grep this file for "HEADLESS-FIX" and re-apply
|
||||
// those blocks; a plain regen will clobber them.
|
||||
using UnityEngine;
|
||||
using Wizard.Battle.Player.ClassCharacter;
|
||||
namespace Wizard.Battle.View
|
||||
|
||||
@@ -159,6 +159,15 @@ internal sealed class SessionBattleEngine
|
||||
// Each returns LIVE engine state off the seated player, mirroring the Phase-1 oracle reads
|
||||
// (VanillaFollowerOracleTests: player.Pp, player.HandCardList.Count, ClassAndInPlayCardList,
|
||||
// leader == the Class card). seat:true == player, false == opponent (F-N-2).
|
||||
//
|
||||
// INVARIANT (two accessor bands, different null-engine policy):
|
||||
// • This "oracle" band (down to EvolveWaitTurnCount) goes through Seat(), which THROWS if the
|
||||
// engine isn't owned/seated for this session. It is TEST-ONLY — called solely from the
|
||||
// node-native harness/tests, where the engine is always seated. Do NOT call these from a wire
|
||||
// handler.
|
||||
// • The wire-path band below (PlayedCardCost/Spellboost/Clan/Tribe/Id) DEGRADES to a fallback
|
||||
// when the engine isn't owned (single-active-engine gate), so a non-engine session never
|
||||
// crashes. Production handlers read ONLY that band.
|
||||
|
||||
public int LeaderLife(bool playerSeat) => Seat(playerSeat).Class.Life;
|
||||
public int Pp(bool playerSeat) => Seat(playerSeat).Pp;
|
||||
|
||||
Reference in New Issue
Block a user