feat(battle-engine): full Unity/VFX/god-object shims + expanded copy closure (2570 files)

Authored Unity primitive/object-model shim, VFX layer (control-flow-preserving, InstantVfx never invokes its action -- headless suppression), god-object stubs (GameMgr/EffectMgr/UIManager with faithfully-extracted nested enums), View/UI/Touch tree, LitJson+BetterList+Tuple copied, third-party stubs. Discovered Roslyn header-error masking: fixing class-header type errors unmasks body references, so the true copy closure is ~2570 files (was 782 under masking). Errors: masked-25720 -> 268; our shim files compile clean. Remaining: ~50 residual shim/external types, 24 NGUI UI-base overrides, static-type fixes, plus likely 1-2 more unmask waves.
This commit is contained in:
gamer147
2026-06-05 17:22:20 -04:00
parent 0d9d8acae0
commit 957af3d1ec
1795 changed files with 166536 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
namespace Wizard.Battle.View;
public enum HandCardFrameEffectType
{
NONE = 0,
YELLOW = 1,
LIGHT_BLUE = 2,
SELECTABLE = 3,
FUSION_METAMORPHOSE = 4,
MAX = 5,
NULL = -1
}

View File

@@ -0,0 +1,65 @@
using UnityEngine;
namespace Wizard.Battle.View;
public class HandParameter : MonoBehaviour
{
public enum IconLayout
{
Simple,
FixedUse
}
private struct IconLayoutInfo
{
public Vector3 _attackPos;
public Vector3 _lifePos;
public Vector3 _costPos;
}
private static readonly IconLayoutInfo[] ICON_LAYOUT = new IconLayoutInfo[2]
{
new IconLayoutInfo
{
_attackPos = new Vector3(0f, 0f, 0f),
_lifePos = new Vector3(0f, -45.73f, 0f),
_costPos = new Vector3(0f, 0f, 0f)
},
new IconLayoutInfo
{
_attackPos = new Vector3(0f, -36f, 0f),
_lifePos = new Vector3(0f, -83.1f, 0f),
_costPos = new Vector3(0f, 6.3f, 0f)
}
};
[SerializeField]
public GameObject _attackIcon;
[SerializeField]
public UILabel _attackLabel;
[SerializeField]
public GameObject _lifeIcon;
[SerializeField]
public UILabel _lifeLabel;
[SerializeField]
public GameObject _costIcon;
[SerializeField]
public UILabel _costLabel;
[SerializeField]
public UISprite _costSprite;
public void InitIconPos(IconLayout layout)
{
_attackIcon.transform.localPosition = ICON_LAYOUT[(int)layout]._attackPos;
_lifeIcon.transform.localPosition = ICON_LAYOUT[(int)layout]._lifePos;
_costIcon.transform.localPosition = ICON_LAYOUT[(int)layout]._costPos;
}
}

View File

@@ -0,0 +1,185 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using Wizard.Battle.View.Vfx;
namespace Wizard.Battle.View;
public interface IBattleCardView
{
Vector3 ForecastIconPosition { get; }
Vector3 ForecastIconScale { get; }
float OriginalRootYPosition { get; }
IReadOnlyBattleCardInfo CardInfo { get; }
BattlePlayerReadOnlyInfoPair PlayerInfoPair { get; }
IReadOnlyVoiceInfo VoiceInfo { get; }
GameObject GameObject { get; }
GameObject CardWrapObject { get; }
Transform Transform { get; }
CardTemplate CardTemplate { get; }
BoxCollider Collider { get; }
BattleCardIconAnimations BattleCardIconAnimations { get; }
Func<bool> GetIsOnMove { get; }
bool InPlayModelActive { get; set; }
BattleCamera m_BattleCamera { get; }
BackGroundBase m_BackGround { get; }
HandParameter HandParam { get; }
BattleCardView.AttackTargetSelectInfo _attackTargetSelectInfo { get; set; }
InPlayCardFrameEffectControl _inPlayFrameEffect { get; set; }
bool areArrowsForcedOff { get; set; }
bool _isCardQueuedToBePlayed { get; set; }
bool isHiddenFromHandView { get; set; }
bool isHiddenFromInPlayView { get; set; }
bool isHideFrameEffect { get; set; }
bool _hasCardEnteredPlayQueue { get; set; }
bool playVoiceOnDeath { get; set; }
Coroutine _inPlayRearrangeCoroutine { get; set; }
Coroutine _waitUntilCardIsInQueueCoroutine { get; set; }
bool IsNullView { get; }
bool IsLoadResorces { get; }
void InitializeVoiceInfo(int cardID);
void SetupIconAnimations(BattleCardBase card, SkillCollectionBase skills);
VfxBase LoadResource();
VfxBase GetResourcePathes(List<BattleManagerBase.ResourceInfo> resourceInfos);
VfxBase LoadChoiceTransformCardsResources(BattleCardBase card);
VfxBase GetChoiceTransformCardsResourcePathes(BattleCardBase card, List<BattleManagerBase.ResourceInfo> resourceInfos, bool isRecoveryFinish = false);
void ResetTemplate();
bool HasChild(string objectName);
void AttachChild(string objectName, GameObject gameObject, bool isDestoryEarlierAttached = false);
void ReserveAttachChild(string objectName);
bool HasReservedAttachChild(string objectName);
GameObject DetachChild(string objectName);
void DestroyChild(string objectName);
VfxBase UnloadResource();
void UpdateMovability();
void HideCanPlayEffect();
GameObject GetCardMeshGameObject();
void UpdateParameterView(int offence, int life, int cost, string name, bool isOnField, bool isRecovery = false, bool useNormalCost = false);
void UpdateOffence(int offence);
void UpdateLife(int life);
void UpdateCost(List<int> costList, bool isGenerateInHand = true, bool playEffect = true, bool isForceUpdate = false, bool isOnlyFixedUseCost = false);
List<int> GetUseCostList(int cost, bool useNomalCost = false);
void UpdateCostWithoutFixedUse(int cost);
void SetTillingAndOffset(Vector2 tilling, Vector2 offset);
void SetVoiceFileCueName(string cueName);
void PlayVoice(string voiceName);
void StopVoice();
void ShowInHandFrameEffect(bool enable);
void ShowInHandFrameEffect(bool enable, HandCardFrameEffectType type);
void ShowFusionMetamorphoseFrameEffect(bool enable);
VfxBase ResetCardView(CardParameter baseParameter);
VfxBase RecoveryInPlay();
VfxBase RecoveryInHand();
VfxBase ShowHandCardInfo(bool isRecovery = false, bool modifyParameterLabel = true);
void HideHandCardInfo();
VfxBase ShowAttackFinished();
VfxBase ShowAttackFinished(SkillBase skill);
void HideAttackFinished();
VfxBase InitializeBattleCardIcon(BattleCardBase card, SkillCollectionBase collection, bool isStackWhiteRitual = false);
VfxBase InitializeBattleCardStackIcon(BattleCardBase card, SkillCollectionBase collection);
VfxBase ShowBattleCardIcon();
void SetCostLabelEnable(bool isEnable);
void SetNormalLabelEnable(bool isEnable);
GameObject GetChild(string objectName);
void InitHandParameter();
void UpdateCostViewStrategy(bool isForceUpdate = false);
void InitHandParameterIconPos(HandParameter.IconLayout layout);
VfxBase UpdateBattleCardIconLabelNumber(BattleCardBase card, SkillCollectionBase collection);
VfxBase UpdateStackWhiteRitualIconNumber();
void SetCutInLayerNormalObject();
void ResetPlayQueueFlags();
void SetParameterIconEnable(bool isEnable);
VfxBase AddBattleCardIcon(string iconType, string iconFileName);
VfxBase DeleteBattleCardIcon(string iconType);
void SetNotCancelColliderEnable(bool isEnable);
void InitCostViewAnim();
VfxBase LoadEvolveFrameEffect();
VfxBase HideBattleCardIcon();
}

View File

@@ -0,0 +1,193 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using Wizard.Battle.View.Vfx;
namespace Wizard.Battle.View;
public interface IBattlePlayerView
{
ITurnEndButtonUI TurnEndButtonUI { get; }
GameObject EpIcon { get; }
bool IsSelecting { get; }
HandViewBase HandView { get; }
HandControl HandControl { get; }
BattleCardBase SelectSkillActCard { get; }
GameObject TurnEndBtn { get; }
BattleCardBase m_CurrentTarget { get; }
PlayQueueViewBase PlayQueueView { get; }
AttackSelectControl AttackSelectControl { get; }
InPlayViewBase InPlayView { get; }
GameObject StatusParentPanel { get; }
GameObject AnchorL { get; }
GameObject CommonPanel { get; }
GameObject EpPanel { get; }
UIGrid HandDeck { get; }
UIGrid SetDeck { get; }
GameObject CemeteryParent { get; }
GameObject BanishParent { get; }
bool IsNowTurnEnd { get; }
Action<bool> OnCancelSkillTargetSelect { get; set; }
Action<bool> OnCancelPlayCard { get; set; }
Action OnSelect { get; set; }
Transform ChoiceBraveButtonTransform { get; }
bool IsShowCantChoiceBraveText { get; }
VfxBase Recovery(bool doseFirst, bool isFocusHand = true);
VfxBase RecoveryTurnStart();
IList<BattleCardBase> GetSelectCardList();
void ForceStopShowSelect();
void AllClear(bool popUpClose = false, bool isRemoveSideLog = true, bool isStopDrag = true, bool isResetDetail = true);
bool IsTouchable();
void LockOnEffectOff();
void ShowCommonPanel();
void DragArrowStop(BattleManagerBase battleMgr);
VfxBase HandUnfocus();
VfxBase HandFocus();
bool ShowAlertMessageTouchCard(ref BattleCardBase hitCard, ref BattleManagerBase battleMgr);
void DisableSettingFlag();
void HideAlertDialogue();
void HideAlertDialogue(PanelMgr.BattleAlertType alertType);
bool IsShowingAlert();
void ClearPlayQueue();
void ShowAlert(PanelMgr.BattleAlertType AlertType, bool isClass, string text = null);
VfxBase RearrangeHand();
void StopShowSelect(BattleCardBase actCard, bool isAct, bool isTransformskill = false, bool isNewReplayMoveTurn = false);
void RegisterPlayCard(BattleCardBase actCard);
UIButton GetChoiceButtonFromIndex(int index);
GameObject GetCheckFromIndex(int index);
void SetTouchable(bool enable);
void HideTurnEndButton();
void SetCancelSkillChoiceTransformCards(BattleCardBase actCard, BattleCardBase transformCard);
void SetCancelPlayChoiceTransformCards(BattleCardBase actCard, BattleCardBase transformCard);
void SetCancelPlayCardWithChoice(BattleCardBase actCard, List<BattleCardBase> choiceCards);
void ReleaseLockOnTarget();
void ShowChoiceAlert(BattleCardBase card, bool isEvolve, int count, int max);
void StopChoiceSelectUI();
void HideCommonPanel();
void ClearSelectCardList();
void SetSelectCardList(List<BattleCardBase> list);
Vector3 GetPPLabelPosition();
Vector3 GetBPLabelPosition();
VfxBase CreateBeforeFusionVfx(BattleCardBase fusionCard, List<BattleCardBase> ingredientCards);
VfxBase ReturnActCardAfterFusion(IBattleCardView fusionCardView, bool isFusionMetamorphose = false);
SideLogControl GetSideLogControl(bool isSkillTargetSelect);
VfxBase SetIsNowTurnEnd(bool flg);
VfxBase RecoveryInPlayCards();
VfxBase RecoveryClassAndInPlayCardAttachSkillEffect();
VfxBase RecoveryInHandCards();
VfxBase RecoveryBattleUI();
VfxBase CreateStopAttackFloatVfx(IBattleCardView battleCardView);
VfxBase CreateStopShowSelectVfx(BattleCardBase actCard, bool isAct, bool stopChoiceSelectUiImmediately = true, bool isTransformskill = false, bool isNewReplayMoveTurn = false);
void ClearSelectSkillActCard();
VfxBase StartShowSelect(BattleCardBase actCard, SkillBase skill, IEnumerable<BattleCardBase> selectableCards, bool isEvol);
void CancelPlayCard(BattleCardBase actCard, bool isPlay = false, bool isNewReplayMoveTurn = false);
VfxBase StartShowChoice(BattleCardBase actCard, SkillBase choiceSkill, List<BattleCardBase> choiceCards, bool isEvol, BattleCardBase accelerateCard, bool isChoiceBrave);
void StartShowFusionUI(BattleCardBase actCard, IEnumerable<BattleCardBase> selectableCards, int maxSelectCount, EventDelegate onClickDecision);
VfxBase RemoveFusionSelectedCardFromHand(List<BattleCardBase> selectedCards);
void StopFusionUI();
void Setup(GameObject statusPanel, GameObject uiContainer, GameObject btlContainer, GameObject battle3DContainer);
VfxBase RecoveryMulligan();
VfxBase PrepareCardsForAttackSequenceVfx(IBattleCardView attackInitiator, IBattleCardView attackTarget);
void SelectedFusionIngredientCard(int index, bool isActive, int maxSelectCount = 8);
void UpdateFusionUi(bool isTouchableDecisionButton);
void SetNotCancelCollider(List<BattleCardBase> cards, bool isEnable);
void ShowChoiceSelectUI(BattleCardBase actCard, IList<BattleCardBase> choiceCards, SkillBase skill, bool isEvolve, bool isChoiceBrave);
VfxBase HideCardAttackEffects(IList<BattleCardBase> _targetCards);
void ShowChoiceBraveButton(bool isNewReplay);
void UpdateChoiceBraveActivatingEffect(bool isActivating);
void HideChoiceBraveButton();
void UpdateChoiceBraveButtonPulsateEffectAndSprite();
void HideChoiceBraveButtonPulsateEffect();
VfxBase SetBp(int num);
}

View File

@@ -0,0 +1,18 @@
using Wizard.Battle.Player.ClassCharacter;
namespace Wizard.Battle.View;
public interface IClassBattleCardView : IBattleCardView
{
IClassCharacter ClassCharacter { get; }
void StartOutFrame();
void StartIntoFrame();
float GetCurrentClipTime();
bool GetCurrentClipIsName(ClassCharaPrm.MotionType motionType);
void ClearSpineObject();
}

View File

@@ -0,0 +1,126 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using Wizard.Battle.UI;
using Wizard.Battle.View.Vfx;
namespace Wizard.Battle.View;
public interface IPlayerView : IBattlePlayerView
{
bool _isEvolutionSkillSelect { get; set; }
bool IsEvolutionStart { get; set; }
bool IsEvolutionVfx { get; set; }
bool IsMenuOpen { get; set; }
BattleCardBase DetailOpenCard { get; }
bool CanPlayerEndTurnImmediately { get; }
bool IsShowTurnEndDialogOfNotAttackingOrPlaying { get; }
bool IsShowTurnEndDialogOfNotUsingHeroSkill { get; }
bool IsMenuCloseEscape { get; set; }
GameObject CardMoveEffect { get; set; }
event Action OnRetire;
event Func<bool> OnCheckImmediateTurnEnd;
event Action OnStartMoveCard;
event Action OnCancelMoveCard;
event Action OnOpenEvolveDialoguePanel;
event Action OnLockOn;
event Action OnReleaseLockOn;
event Action OnOpenDetailPanel;
void HideDetailPanel();
void ShowTurnEndDialog(GameObject return_obj = null);
void UpdateTurnEndPulseEffect();
void CallOnOpenEvolveDialoguePanel();
void DragArrowStart(BattleManagerBase battleMgr, BattleCardBase attackCard, GameObject arrowHead);
void DragArrowStart(BattleManagerBase battleMgr, GameObject startObject, GameObject arrowHead, bool isTargettingEnemy = true);
void DragArrow(BattleManagerBase battleMgr, GameObject arrowHead, Vector3 pos);
void ShowTurnEndButton(bool showEffect = true);
void MoveCardCancel(BattleCardBase hitCard, Vector3 position, Quaternion rotation, bool IsPress);
bool IsDetailOn();
void MoveCardStart(BattleCardBase moveCard, bool isEffectAndSoundOn);
void CancelCardDrag(BattleCardBase cardBeingDragged);
void ShowDetailPanel(BattleManagerBase battleMgrBase, OperateMgr operateMgr, BattleCardBase card, DetailPanelControl.ShowRequest showRequest, BattleLogItem.CardTextureOption textureOption = BattleLogItem.CardTextureOption.Null, BuffInfo buff = null, string divergenceId = "", int logTextureId = 0);
BattleCardBase GetDetailCard();
void ResetTouchable();
VfxBase HideTurnEndPulseEffect();
bool IsMoving();
void OffNotHideAndNotCreate();
void ForceShowTurnEndButton();
void ClearDifferentiatePopUp(List<BattlePlayerViewBase.BattleDialogItem> deselectionItem);
void ShowPlayerTurnEnd(bool isAuto = false);
void HideSubDetailPanel();
void ShowKeyPanel(int page);
void HideKeyPanel();
DialogBase CreateKeyPanel(BattleCardBase card, UILabel label, CardMaster.CardMasterId cardMasterId, CardParameter baseParameter);
DialogBase ShowRetireConfirmPanel();
DialogBase CreateBattleSetting();
void MoveCard(BattleCardBase hitCard, Vector3 pos);
void CardMoveEffectSwitch(bool on);
void SetDetailScreenPosition(bool right);
Effect DetailPanelSelectEffectOn(BattleCardBase selectedCard, DetailPanelControl.ShowRequest request);
void DetailPanelSelectEffectOff();
void GetCardSelectedWithButton(Camera camera, ref UIButton button, ref BattleCardBase card, ref GameObject check);
void ShowDetailPanelList(BattleManagerBase battleMgrBase, OperateMgr operateMgr, List<BattleCardBase> cards, DetailPanelControl.ShowRequest showRequest);
void LockOnAttackTarget(BattleCardBase Attacker, BattleCardBase Target);
bool IsFieldDetailOn();
DialogBase ShowFusionCardPlayDialog(EventDelegate onClickOk, Action onClose);
void HideModeEffect(bool on);
void DetailReverseOver();
void AddPopUpPanel(NonDialogPopup popup, BattlePlayerViewBase.BattleDialogItem item);
}