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
|
// 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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
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
|
// 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 UnityEngine;
|
||||||
using Wizard.Battle.Player.ClassCharacter;
|
using Wizard.Battle.Player.ClassCharacter;
|
||||||
namespace Wizard.Battle.View
|
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
|
// 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 UnityEngine;
|
||||||
using Wizard.Battle.Player.ClassCharacter;
|
using Wizard.Battle.Player.ClassCharacter;
|
||||||
namespace Wizard.Battle.View
|
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
|
// Each returns LIVE engine state off the seated player, mirroring the Phase-1 oracle reads
|
||||||
// (VanillaFollowerOracleTests: player.Pp, player.HandCardList.Count, ClassAndInPlayCardList,
|
// (VanillaFollowerOracleTests: player.Pp, player.HandCardList.Count, ClassAndInPlayCardList,
|
||||||
// leader == the Class card). seat:true == player, false == opponent (F-N-2).
|
// 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 LeaderLife(bool playerSeat) => Seat(playerSeat).Class.Life;
|
||||||
public int Pp(bool playerSeat) => Seat(playerSeat).Pp;
|
public int Pp(bool playerSeat) => Seat(playerSeat).Pp;
|
||||||
|
|||||||
Reference in New Issue
Block a user