Files
SVSimServer/SVSim.BattleEngine/Shim/Generated/PlayerClassBattleCardView.g.cs
gamer147 c5a511e4fe feat(battlenode): attack resolves on engine state via view-untangle (M-HC-4a)
Drive ATTACK frames through the headless receive conductor and assert on engine
board state (node-native harness). Two cases: follower -> enemy leader (leader
life drops by atk, attacker spent) and a lethal follower-vs-follower trade (both
removed). ATTACK opcode confirmed = 10 (NetworkBattleDefine.PlayActionType).

Headless view-untangle (no Engine logic edits; drift clean):
- IBattlePlayerView.AttackSelectControl -> non-null HeadlessAttackSelectControl
  (no-op RegisterAttackPair/ResetCardAfterAttack); IsCardTranslatable left to base.
- IBattleCardView.CardInfo -> backing card via BuildInfo (so IsCardTranslatable
  reads authentic IsClass); class/null view ctors now chain : base(buildInfo).
- IBattleCardView._inPlayFrameEffect -> non-null no-op control.
- Seed Certification.viewer_id headless so the IsRecovery target parse
  (vid != UserViewerID) does not throw inside SavedataManager and silently drop
  the parsed targetList.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 22:48:26 -04:00

20 lines
982 B
C#

// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View\PlayerClassBattleCardView.cs
using UnityEngine;
using Wizard.Battle.Player.ClassCharacter;
namespace Wizard.Battle.View
{
public partial class PlayerClassBattleCardView
{
private static readonly Vector3 PLAYER_FORECASTICON_POS;
private readonly PlayerClassCharacter _classCharacter;
public IClassCharacter ClassCharacter { get; set; }
public float OriginalRootYPosition { get; set; }
public PlayerClassBattleCardView(BuildInfo buildInfo) : base(buildInfo) { } // HEADLESS-FIX (M-HC-4a): chain BuildInfo so the leader view's CardInfo resolves (attack-on-leader targetting)
public void StartOutFrame() { }
public void StartIntoFrame() { }
public float GetCurrentClipTime() => default!;
public bool GetCurrentClipIsName(ClassCharaPrm.MotionType motionType) => default!;
public void ClearSpineObject() { }
}
}