feat(battle-engine): M1 auto-copy closure (782 battle-logic files)
Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
This commit is contained in:
601
SVSim.BattleEngine/Engine/NetworkWatchBattleMgr.cs
Normal file
601
SVSim.BattleEngine/Engine/NetworkWatchBattleMgr.cs
Normal file
@@ -0,0 +1,601 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Wizard;
|
||||
using Wizard.Battle.View.Vfx;
|
||||
using Wizard.BattleMgr;
|
||||
using Wizard.RoomMatch;
|
||||
|
||||
public class NetworkWatchBattleMgr : NetworkBattleManagerBase
|
||||
{
|
||||
private class SelectObjectHandCard
|
||||
{
|
||||
private const float SELECT_CARD_MOVE_POS_Y = 45f;
|
||||
|
||||
private Vector3 _selectedPos;
|
||||
|
||||
public BattleCardBase CardBase { get; private set; }
|
||||
|
||||
public SelectObjectHandCard(BattleCardBase cardBase, bool isOwner)
|
||||
{
|
||||
CardBase = cardBase;
|
||||
if (isOwner)
|
||||
{
|
||||
_selectedPos = new Vector3(0f, 45f, 0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
_selectedPos = new Vector3(0f, -45f, 0f);
|
||||
}
|
||||
}
|
||||
|
||||
public VfxBase CreateVfxSelectMove()
|
||||
{
|
||||
return CreateVfxMoveHandCard(CardBase.BattleCardView.CardWrapObject, _selectedPos);
|
||||
}
|
||||
|
||||
public VfxBase CreateVfxResetPos()
|
||||
{
|
||||
return CreateVfxMoveHandCard(CardBase.BattleCardView.CardWrapObject, Vector3.zero);
|
||||
}
|
||||
|
||||
public void ResetOriginalPosition()
|
||||
{
|
||||
iTween.Stop(CardBase.BattleCardView.CardWrapObject);
|
||||
CardBase.BattleCardView.CardWrapObject.transform.localPosition = Vector3.zero;
|
||||
}
|
||||
|
||||
private VfxBase CreateVfxMoveHandCard(GameObject cardObj, Vector3 position)
|
||||
{
|
||||
return InstantVfx.Create(delegate
|
||||
{
|
||||
if (!(cardObj == null))
|
||||
{
|
||||
iTween.MoveTo(cardObj, iTween.Hash("position", position, "time", 0.2f, "islocal", true, "easetype", iTween.EaseType.easeInOutExpo));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public WatcherDisconnectChecker watcherDisconnectChecker;
|
||||
|
||||
public WatcherLeaveChecker watcherLeaveChecker;
|
||||
|
||||
public DialogBase disconnectDialog;
|
||||
|
||||
public bool IsHandCardInvisible;
|
||||
|
||||
private SelectObjectHandCard _cardSelectedByOwner;
|
||||
|
||||
private SelectObjectHandCard _cardSelectedByGuest;
|
||||
|
||||
private bool _isConventionWatch;
|
||||
|
||||
private bool _isGathering;
|
||||
|
||||
protected bool isResultDone;
|
||||
|
||||
private int MyPageReturnIndex
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!_isConventionWatch)
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
public NetworkWatchBattleMgr(IBattleMgrContentsCreator contentsCreator)
|
||||
: base(contentsCreator)
|
||||
{
|
||||
TouchControl = new WatchTouchControl(this, _battleCamera, _backGround);
|
||||
OperateMgr.SetTouchControl(TouchControl);
|
||||
base.networkBattleData = new NetworkWatchBattleData(this);
|
||||
networkReceiver = new NetworkWatchBattleReceiver(this);
|
||||
_networkBattleSetupCardEventBase = new NetworkWatchBattleSetupCardEvent(this, RegisterActionManager, base.networkBattleData);
|
||||
base.recoveryToDispChecker = new RecoveryToDispChecker();
|
||||
OperateReceive = (GameMgr.GetIns().IsNewReplayBattle ? new NewReplayOperateReceive(this, RegisterActionManager, OperateMgr, base.networkBattleData) : CreateOperateReceive());
|
||||
base.disconnectToDispChecker.OnDisp += delegate
|
||||
{
|
||||
ControlDisconnectOffTouchAndView(flag: true);
|
||||
};
|
||||
base.disconnectToDispChecker.OnErase += delegate
|
||||
{
|
||||
ControlDisconnectOffTouchAndView(flag: false);
|
||||
};
|
||||
BattleFinishToStopIntervalChecker();
|
||||
IsHandCardInvisible = GameMgr.GetIns().IsWatchHandInvisible;
|
||||
GameMgr.GetIns().IsWatchHandInvisible = false;
|
||||
RoomConnectController connectController = RoomBase.ConnectController;
|
||||
if (connectController != null)
|
||||
{
|
||||
_isConventionWatch = connectController.IsConvention;
|
||||
_isGathering = connectController.IsGathering;
|
||||
}
|
||||
SetUpDisconnectCheck();
|
||||
}
|
||||
|
||||
protected override void OpponentAliveCallback()
|
||||
{
|
||||
base.OpponentAliveCallback();
|
||||
watcherLeaveChecker.FinishChecker();
|
||||
}
|
||||
|
||||
protected override void OpponentDisconnectCallback()
|
||||
{
|
||||
base.OpponentDisconnectCallback();
|
||||
watcherLeaveChecker.StartCheckerIfNotStarted();
|
||||
}
|
||||
|
||||
protected override void ControlDisconnectOffTouchAndView(bool flag)
|
||||
{
|
||||
}
|
||||
|
||||
public override void DisposeBattleGameObj()
|
||||
{
|
||||
base.DisposeBattleGameObj();
|
||||
BattleCoroutine.GetInstance().StopAllCoroutines();
|
||||
if (watcherDisconnectChecker != null)
|
||||
{
|
||||
watcherDisconnectChecker.FinishChecker();
|
||||
}
|
||||
if (watcherLeaveChecker != null)
|
||||
{
|
||||
watcherLeaveChecker.FinishChecker();
|
||||
}
|
||||
IsHandCardInvisible = false;
|
||||
}
|
||||
|
||||
protected virtual void SetUpDisconnectCheck()
|
||||
{
|
||||
watcherDisconnectChecker = new WatcherDisconnectChecker();
|
||||
watcherDisconnectChecker.OnDisp += delegate
|
||||
{
|
||||
StartWatcherDisconnect(flag: true);
|
||||
};
|
||||
watcherDisconnectChecker.OnErase += delegate
|
||||
{
|
||||
StartWatcherDisconnect(flag: false);
|
||||
};
|
||||
watcherLeaveChecker = new WatcherLeaveChecker();
|
||||
watcherLeaveChecker.SetBattleMgr(this);
|
||||
watcherLeaveChecker.OnDisp += delegate
|
||||
{
|
||||
StartCompetitorLeave(flag: true);
|
||||
};
|
||||
watcherLeaveChecker.OnErase += delegate
|
||||
{
|
||||
StartCompetitorLeave(flag: false);
|
||||
};
|
||||
}
|
||||
|
||||
private UIManager.ChangeViewSceneParam GetMyPageReturnParam()
|
||||
{
|
||||
UIManager.ChangeViewSceneParam changeViewSceneParam = new UIManager.ChangeViewSceneParam();
|
||||
changeViewSceneParam.MyPageMenuIndex = MyPageReturnIndex;
|
||||
changeViewSceneParam.IsCutCardMotion = true;
|
||||
if (MyPageReturnIndex == 2)
|
||||
{
|
||||
changeViewSceneParam.OnFinishChangeView = delegate
|
||||
{
|
||||
MyPageMenu.Instance.GoToRoomMatch();
|
||||
};
|
||||
}
|
||||
return changeViewSceneParam;
|
||||
}
|
||||
|
||||
private void StartWatcherDisconnect(bool flag)
|
||||
{
|
||||
watcherDisconnectChecker.StopChecker();
|
||||
if (flag)
|
||||
{
|
||||
base.BattleUIContainer.ButtonControl.HideAllMenu(isWithoutSE: true);
|
||||
disconnectDialog = UIManager.GetInstance().CreateDialogClose(isSystem: true);
|
||||
disconnectDialog.SetSize(DialogBase.Size.M);
|
||||
disconnectDialog.SetTitleLabel(Data.SystemText.Get("Common_0021"));
|
||||
disconnectDialog.SetText(Data.SystemText.Get("RoomBattle_0049"));
|
||||
disconnectDialog.AddButton(DialogBase.ButtonType.OK);
|
||||
disconnectDialog.SetPanelDepth(6000);
|
||||
disconnectDialog.SetFadeButtonEnabled(flag: false);
|
||||
DialogBase dialogBase = disconnectDialog;
|
||||
dialogBase.onPushButton1 = (Action)Delegate.Combine(dialogBase.onPushButton1, (Action)delegate
|
||||
{
|
||||
UIManager.GetInstance().StartCoroutine(GetBattleControl().BattleEnd(delegate
|
||||
{
|
||||
UIManager.ChangeViewSceneParam myPageReturnParam = GetMyPageReturnParam();
|
||||
if (_isGathering)
|
||||
{
|
||||
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.Gathering);
|
||||
}
|
||||
else
|
||||
{
|
||||
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.MyPage, myPageReturnParam);
|
||||
}
|
||||
}));
|
||||
RoomBase.DestroyMyRoomInfo();
|
||||
});
|
||||
}
|
||||
else if (disconnectDialog != null)
|
||||
{
|
||||
disconnectDialog.Close();
|
||||
disconnectDialog = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void StartCompetitorLeave(bool flag)
|
||||
{
|
||||
watcherLeaveChecker.StopChecker();
|
||||
if (flag)
|
||||
{
|
||||
base.BattleUIContainer.ButtonControl.HideAllMenu(isWithoutSE: true);
|
||||
disconnectDialog = UIManager.GetInstance().CreateDialogClose(isSystem: true);
|
||||
disconnectDialog.SetSize(DialogBase.Size.M);
|
||||
disconnectDialog.SetTitleLabel(Data.SystemText.Get("Common_0021"));
|
||||
disconnectDialog.SetText(Data.SystemText.Get("RoomBattle_0098"));
|
||||
disconnectDialog.AddButton(DialogBase.ButtonType.OK);
|
||||
disconnectDialog.SetPanelDepth(6000);
|
||||
disconnectDialog.SetFadeButtonEnabled(flag: false);
|
||||
DialogBase dialogBase = disconnectDialog;
|
||||
dialogBase.onPushButton1 = (Action)Delegate.Combine(dialogBase.onPushButton1, (Action)delegate
|
||||
{
|
||||
UIManager.GetInstance().StartCoroutine(GetBattleControl().BattleEnd(delegate
|
||||
{
|
||||
UIManager.ChangeViewSceneParam myPageReturnParam = GetMyPageReturnParam();
|
||||
if (_isGathering)
|
||||
{
|
||||
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.Gathering);
|
||||
}
|
||||
else
|
||||
{
|
||||
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.MyPage, myPageReturnParam);
|
||||
}
|
||||
}));
|
||||
RoomBase.DestroyMyRoomInfo();
|
||||
});
|
||||
}
|
||||
else if (disconnectDialog != null)
|
||||
{
|
||||
disconnectDialog.Close();
|
||||
disconnectDialog = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void FirstRecoverySetting()
|
||||
{
|
||||
}
|
||||
|
||||
public override void RecoveryRecordSkillTarget(IEnumerable<BattleCardBase> targetCards)
|
||||
{
|
||||
}
|
||||
|
||||
protected override int CreateBackgroundId()
|
||||
{
|
||||
return GameMgr.GetIns().GetNetworkUserInfoData().GetFieldId();
|
||||
}
|
||||
|
||||
public override void SetBattleMenuBtnVisibility()
|
||||
{
|
||||
}
|
||||
|
||||
public override void StartOpening(int FirstAttack)
|
||||
{
|
||||
base.StartOpening(FirstAttack);
|
||||
ITurnEndButtonUI turnEndButtonUI = BattlePlayer.PlayerBattleView.TurnEndButtonUI;
|
||||
turnEndButtonUI._isButtonForcedOff = true;
|
||||
turnEndButtonUI.DisableButton();
|
||||
turnEndTimeController = new WatchTurnEndTimeController(this, BattlePlayer, turnEndButtonUI);
|
||||
if (GameMgr.GetIns().IsAdminWatch)
|
||||
{
|
||||
ESelectSkillSideLog.SetActive(value: true);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void SetupEvent()
|
||||
{
|
||||
base.SetupEvent();
|
||||
}
|
||||
|
||||
public override void SendTurnEnd()
|
||||
{
|
||||
}
|
||||
|
||||
public override void SetupCardEvent(BattleCardBase card)
|
||||
{
|
||||
base.SetupCardEvent(card);
|
||||
card.OnPlay += delegate
|
||||
{
|
||||
if (card.HasSpellCharge)
|
||||
{
|
||||
GameObject child = card.BattleCardView.GetChild("SpellBoostCount");
|
||||
if (child != null)
|
||||
{
|
||||
child.SetActive(value: false);
|
||||
}
|
||||
}
|
||||
ResetPositionHandCard(card);
|
||||
return NullVfx.GetInstance();
|
||||
};
|
||||
card.OnDestroy += CreateVfxResetPositionByCardBase;
|
||||
card.OnBanish += CreateVfxResetPositionByCardBase;
|
||||
card.OnReturnCard += CreateVfxResetPositionByCardBase;
|
||||
card.OnMetamorphose += CreateVfxResetPositionByCardBase;
|
||||
card.OnGetOn += CreateVfxResetPositionByCardBase;
|
||||
}
|
||||
|
||||
private void ResetPositionHandCard(BattleCardBase card)
|
||||
{
|
||||
if (_cardSelectedByOwner != null && card == _cardSelectedByOwner.CardBase)
|
||||
{
|
||||
_cardSelectedByOwner.ResetOriginalPosition();
|
||||
}
|
||||
if (_cardSelectedByGuest != null && card == _cardSelectedByGuest.CardBase)
|
||||
{
|
||||
_cardSelectedByGuest.ResetOriginalPosition();
|
||||
}
|
||||
}
|
||||
|
||||
public VfxBase CreateVfxResetPositionByCardBase(BattleCardBase card, SkillProcessor skill)
|
||||
{
|
||||
ParallelVfxPlayer parallelVfxPlayer = ParallelVfxPlayer.Create();
|
||||
if (_cardSelectedByOwner != null && _cardSelectedByOwner.CardBase == card)
|
||||
{
|
||||
parallelVfxPlayer.Register(_cardSelectedByOwner.CreateVfxResetPos());
|
||||
}
|
||||
else if (_cardSelectedByGuest != null && _cardSelectedByGuest.CardBase == card)
|
||||
{
|
||||
parallelVfxPlayer.Register(_cardSelectedByGuest.CreateVfxResetPos());
|
||||
}
|
||||
return parallelVfxPlayer;
|
||||
}
|
||||
|
||||
public void ToggleSelectHandCardMove(BattleCardBase selectedCard, bool isOwner)
|
||||
{
|
||||
if (selectedCard == null)
|
||||
{
|
||||
SelectObjectHandCard selectObjectHandCard = null;
|
||||
if (isOwner)
|
||||
{
|
||||
selectObjectHandCard = _cardSelectedByOwner;
|
||||
_cardSelectedByOwner = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
selectObjectHandCard = _cardSelectedByGuest;
|
||||
_cardSelectedByGuest = null;
|
||||
}
|
||||
if (selectObjectHandCard != null)
|
||||
{
|
||||
base.VfxMgr.RegisterSequentialVfx(selectObjectHandCard.CreateVfxResetPos());
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (BattleManagerBase.GetIns().GetBattlePlayer(isOwner).IsSelfTurn)
|
||||
{
|
||||
base.SlideObjectReceiveCtrl.CancelSlide();
|
||||
}
|
||||
if (isOwner)
|
||||
{
|
||||
if (_cardSelectedByOwner != null)
|
||||
{
|
||||
if (_cardSelectedByOwner.CardBase == selectedCard)
|
||||
{
|
||||
return;
|
||||
}
|
||||
base.VfxMgr.RegisterSequentialVfx(_cardSelectedByOwner.CreateVfxResetPos());
|
||||
}
|
||||
_cardSelectedByOwner = new SelectObjectHandCard(selectedCard, isOwner);
|
||||
base.VfxMgr.RegisterSequentialVfx(_cardSelectedByOwner.CreateVfxSelectMove());
|
||||
return;
|
||||
}
|
||||
if (_cardSelectedByGuest != null)
|
||||
{
|
||||
if (_cardSelectedByGuest.CardBase == selectedCard)
|
||||
{
|
||||
return;
|
||||
}
|
||||
base.VfxMgr.RegisterSequentialVfx(_cardSelectedByGuest.CreateVfxResetPos());
|
||||
}
|
||||
_cardSelectedByGuest = new SelectObjectHandCard(selectedCard, isOwner);
|
||||
base.VfxMgr.RegisterSequentialVfx(_cardSelectedByGuest.CreateVfxSelectMove());
|
||||
}
|
||||
|
||||
public override void SetupBattlePlayersEvent()
|
||||
{
|
||||
base.SetupBattlePlayersEvent();
|
||||
SetUpRetireEvent();
|
||||
}
|
||||
|
||||
protected virtual void SetUpRetireEvent()
|
||||
{
|
||||
BattlePlayer.PlayerBattleView.OnRetire += delegate
|
||||
{
|
||||
base.VfxMgr.Clear();
|
||||
if (RoomBase.ConnectController.IsGathering)
|
||||
{
|
||||
GetBattleControl().BattleEnd(UIManager.ViewScene.Gathering, null, delegate(UIManager.ChangeViewSceneParam param)
|
||||
{
|
||||
param.IsUpdateFooterMenuTexture = true;
|
||||
});
|
||||
RoomBase.DestroyMyRoomInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
GetBattleControl().BattleEnd(UIManager.ViewScene.MyPage, delegate
|
||||
{
|
||||
if (MyPageMenu.Instance != null)
|
||||
{
|
||||
MyPageMenu.Instance.ChangeMenu(MyPageReturnIndex);
|
||||
if (MyPageReturnIndex == 2)
|
||||
{
|
||||
MyPageMenu.Instance.GoToRoomMatch();
|
||||
}
|
||||
}
|
||||
});
|
||||
RoomBase.DestroyMyRoomInfo();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public override VfxBase StartBattle()
|
||||
{
|
||||
SequentialVfxPlayer sequentialVfxPlayer = SequentialVfxPlayer.Create();
|
||||
sequentialVfxPlayer.Register(ChangePhase(base.PhaseCreator.CreateMainPhase()));
|
||||
return sequentialVfxPlayer;
|
||||
}
|
||||
|
||||
protected override NetworkOperationCollectionBase CreateNetworkOperationCollection(NetworkBattleReceiver.ReceiveData receivedData, bool isPlayer)
|
||||
{
|
||||
return new WatchOperationCollection(this, OperateMgr, receivedData, base.networkBattleData, isPlayer);
|
||||
}
|
||||
|
||||
protected override bool IsOperateReceiveCheck()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void ReceiveRetire(bool isWin)
|
||||
{
|
||||
if (isWin)
|
||||
{
|
||||
JudgeResultReceiveCode = NetworkBattleReceiver.RESULT_CODE.RetireWin;
|
||||
SettingResultUI_SpecialResultTypeText(BATTLE_RESULT_TYPE.WIN);
|
||||
FinishBattleEffect(classDead: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
JudgeResultReceiveCode = NetworkBattleReceiver.RESULT_CODE.RetireLose;
|
||||
SettingResultUI_SpecialResultTypeText(BATTLE_RESULT_TYPE.LOSE);
|
||||
FinishBattleEffect(classDead: true);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void FinishBattleSend(NetworkBattleSender.JUDGE_RESULT_STATUS log, bool isWin = false, bool isNotRetry = false)
|
||||
{
|
||||
if (isResultDone)
|
||||
{
|
||||
return;
|
||||
}
|
||||
isResultDone = true;
|
||||
if (JudgeResultReceiveCode == NetworkBattleReceiver.RESULT_CODE.NotFinish)
|
||||
{
|
||||
JudgeResultReceiveCode = JudgeCurrentFinishStatus();
|
||||
if (JudgeResultReceiveCode == NetworkBattleReceiver.RESULT_CODE.NotFinish)
|
||||
{
|
||||
LocalLog.AccumulateLastTraceLog("FinishBattleSend NotStatus" + isWin);
|
||||
if (isWin)
|
||||
{
|
||||
JudgeResultReceiveCode = NetworkBattleReceiver.RESULT_CODE.DisconnectWin;
|
||||
}
|
||||
else
|
||||
{
|
||||
JudgeResultReceiveCode = NetworkBattleReceiver.RESULT_CODE.DisconnectLose;
|
||||
}
|
||||
}
|
||||
}
|
||||
switch (JudgeResultReceiveCode)
|
||||
{
|
||||
case NetworkBattleReceiver.RESULT_CODE.NoContest:
|
||||
case NetworkBattleReceiver.RESULT_CODE.Invalid:
|
||||
SettingResultUI_SpecialResultTypeText(BATTLE_RESULT_TYPE.CONSISTENCY);
|
||||
FinishBattleEffect(classDead: false);
|
||||
break;
|
||||
case NetworkBattleReceiver.RESULT_CODE.LifeLose:
|
||||
case NetworkBattleReceiver.RESULT_CODE.DeckoutLose:
|
||||
case NetworkBattleReceiver.RESULT_CODE.SpecialLose:
|
||||
case NetworkBattleReceiver.RESULT_CODE.MaxTurnLose:
|
||||
base.VfxMgr.RegisterSequentialVfx(InstantVfx.Create(delegate
|
||||
{
|
||||
InitiateGameEndSequence(hasWon: false);
|
||||
}));
|
||||
break;
|
||||
case NetworkBattleReceiver.RESULT_CODE.RetireLose:
|
||||
case NetworkBattleReceiver.RESULT_CODE.DisconnectLose:
|
||||
case NetworkBattleReceiver.RESULT_CODE.FirstcardLose:
|
||||
case NetworkBattleReceiver.RESULT_CODE.TurnendLose:
|
||||
case NetworkBattleReceiver.RESULT_CODE.TurnstartLose:
|
||||
RegisterDestryoy(isPlayer: true);
|
||||
base.VfxMgr.RegisterSequentialVfx(InstantVfx.Create(delegate
|
||||
{
|
||||
InitiateGameEndSequence(hasWon: false);
|
||||
}));
|
||||
break;
|
||||
case NetworkBattleReceiver.RESULT_CODE.LifeWin:
|
||||
case NetworkBattleReceiver.RESULT_CODE.DeckoutWin:
|
||||
case NetworkBattleReceiver.RESULT_CODE.SpecialWin:
|
||||
base.VfxMgr.RegisterSequentialVfx(InstantVfx.Create(delegate
|
||||
{
|
||||
InitiateGameEndSequence(hasWon: true);
|
||||
}));
|
||||
break;
|
||||
case NetworkBattleReceiver.RESULT_CODE.RetireWin:
|
||||
case NetworkBattleReceiver.RESULT_CODE.DisconnectWin:
|
||||
case NetworkBattleReceiver.RESULT_CODE.FirstcardWin:
|
||||
case NetworkBattleReceiver.RESULT_CODE.TurnendWin:
|
||||
case NetworkBattleReceiver.RESULT_CODE.TurnstartWin:
|
||||
RegisterDestryoy(isPlayer: false);
|
||||
base.VfxMgr.RegisterSequentialVfx(InstantVfx.Create(delegate
|
||||
{
|
||||
InitiateGameEndSequence(hasWon: true);
|
||||
}));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected void RegisterDestryoy(bool isPlayer)
|
||||
{
|
||||
BattleCardBase battleCardBase = GetBattlePlayer(isPlayer).Class;
|
||||
if (battleCardBase.Life >= 1)
|
||||
{
|
||||
battleCardBase.FlagCardAsDestroyedByKiller();
|
||||
FINISH_TYPE finishTypeByStatus = GetFinishTypeByStatus();
|
||||
base.VfxMgr.RegisterSequentialVfx(DeadClass(isPlayer, finishTypeByStatus));
|
||||
}
|
||||
}
|
||||
|
||||
public void FinishBattleSpecialEffect(BATTLE_RESULT_TYPE battleResult)
|
||||
{
|
||||
bool isPlayer = true;
|
||||
switch (battleResult)
|
||||
{
|
||||
case BATTLE_RESULT_TYPE.WIN:
|
||||
isPlayer = true;
|
||||
break;
|
||||
case BATTLE_RESULT_TYPE.LOSE:
|
||||
isPlayer = false;
|
||||
break;
|
||||
case BATTLE_RESULT_TYPE.CONSISTENCY:
|
||||
BattleResultControl.SetBattleFinishConsistency();
|
||||
isPlayer = true;
|
||||
break;
|
||||
}
|
||||
base.VfxMgr.RegisterSequentialVfx(InstantVfx.Create(delegate
|
||||
{
|
||||
InitiateGameEndSequence(isPlayer);
|
||||
}));
|
||||
}
|
||||
|
||||
protected virtual OperateReceive CreateOperateReceive()
|
||||
{
|
||||
return new WatchOperateReceive(this, RegisterActionManager, OperateMgr, base.networkBattleData);
|
||||
}
|
||||
|
||||
public override bool IsSkillConditionCheckSkill(int cardIdx)
|
||||
{
|
||||
if (!base.IsSkillConditionCheckSkill(cardIdx))
|
||||
{
|
||||
return base.networkBattleData.GetReceiveData().ActiveSelectSkillIndexList.Count > 0;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool IsReceivedSkillConditionCheck(int movement, SkillBase skill)
|
||||
{
|
||||
if (base.networkBattleData.GetReceiveData().ActiveSelectSkillIndexList.Count > 0)
|
||||
{
|
||||
return base.networkBattleData.GetReceiveData().ActiveSelectSkillIndexList.Contains(skill.SkillPrm.ownerCard.Skills.IndexOf(skill));
|
||||
}
|
||||
return base.IsReceivedSkillConditionCheck(movement, skill);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user