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>
41 lines
1.9 KiB
C#
41 lines
1.9 KiB
C#
// AUTO-GENERATED no-op stubs (m1_stub_gen) from Shadowverse_Code_2026-05-23\Wizard.Battle.View\BattleCardView.cs
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using CriWare;
|
|
using Cute;
|
|
using UnityEngine;
|
|
using Wizard.Battle.Resource;
|
|
using Wizard.Battle.View.Vfx;
|
|
namespace Wizard.Battle.View
|
|
{
|
|
public partial class BattleCardView
|
|
{
|
|
public partial class BuildInfo
|
|
{
|
|
public IReadOnlyBattleCardInfo cardInfo;
|
|
public BattlePlayerReadOnlyInfoPair _playerInfoPair;
|
|
public GameObject gameObject;
|
|
public BattleCamera battleCamera;
|
|
public BackGroundBase backGround;
|
|
public IBattleResourceMgr resourceMgr;
|
|
public Func<bool> getIsTouchable;
|
|
public Func<bool> getIsMovable;
|
|
public Func<bool> getIsOnMove;
|
|
public Func<int, bool> getIsFixedUseEnable;
|
|
public Func<bool> getIsActionCard;
|
|
public Func<bool> _getIsAbleToAttack;
|
|
public Func<bool> _getIsUnableToAttackClass;
|
|
public Func<HandCardFrameEffectType> getHandCardFrameEffectType;
|
|
// HEADLESS-FIX (M-HC-4a): store cardInfo so the headless BattleCardView can expose CardInfo (the
|
|
// backing card) — the receive ATTACK path reads BattleCardView.CardInfo.IsClass via
|
|
// AttackSelectControl.IsCardTranslatable. (Generated stub body was empty; re-apply on regen.)
|
|
public BuildInfo(IReadOnlyBattleCardInfo cardInfo, BattlePlayerReadOnlyInfoPair playerInfoPair, GameObject gameObject, BattleCamera battleCamera, BackGroundBase backGround, IBattleResourceMgr resourceMgr, Func<bool> getIsTouchable, Func<bool> getIsMovable, Func<bool> getIsOnMove, Func<int, bool> getIsFixedUseEnable, Func<bool> getIsActionCard, Func<bool> getIsAbleToAttack, Func<bool> getIsUnableToAttackClass, Func<HandCardFrameEffectType> getHandCardFrameEffectType)
|
|
{
|
|
this.cardInfo = cardInfo;
|
|
this._playerInfoPair = playerInfoPair;
|
|
}
|
|
}
|
|
}
|
|
}
|