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:
256
SVSim.BattleEngine/Engine/Matching_Room.cs
Normal file
256
SVSim.BattleEngine/Engine/Matching_Room.cs
Normal file
@@ -0,0 +1,256 @@
|
||||
using System;
|
||||
using Cute;
|
||||
using Wizard;
|
||||
using Wizard.ErrorDialog;
|
||||
using Wizard.RoomMatch;
|
||||
|
||||
public class Matching_Room : Matching
|
||||
{
|
||||
public enum GAME_STATE
|
||||
{
|
||||
WAIT,
|
||||
LOADING,
|
||||
BATTLE,
|
||||
RESULT
|
||||
}
|
||||
|
||||
private BattleParameter _battleParameter;
|
||||
|
||||
private bool _isConvention;
|
||||
|
||||
private bool _isGathering;
|
||||
|
||||
private bool _isInitRoomBattle;
|
||||
|
||||
private GAME_STATE _gameState;
|
||||
|
||||
public const int RESULT_CODE_ROOM_NOT_FOUND = 1751;
|
||||
|
||||
public const int RESULT_CODE_GATHERING_NOT_JOIN = 5304;
|
||||
|
||||
public const int RESULT_CODE_GATHERING_EXPIRE = 5311;
|
||||
|
||||
public bool IsStopChangeScene { get; set; }
|
||||
|
||||
public override void FirstSetting(int classId, int selDeck, bool isRecovery = false)
|
||||
{
|
||||
_isInitRoomBattle = false;
|
||||
errorDialogReturnText = Wizard.Data.SystemText.Get("Battle_0202");
|
||||
base.FirstSetting(classId, selDeck, isRecovery);
|
||||
}
|
||||
|
||||
public void SetBattleParameter(BattleParameter battleParameter)
|
||||
{
|
||||
_battleParameter = battleParameter;
|
||||
}
|
||||
|
||||
public Matching_Room(bool isConvention, bool isGathering)
|
||||
{
|
||||
_isConvention = isConvention;
|
||||
_isGathering = isGathering;
|
||||
errorDialogReturnText = Wizard.Data.SystemText.Get("Battle_0434");
|
||||
isDisplayCancelButton = false;
|
||||
IsStopChangeScene = false;
|
||||
}
|
||||
|
||||
public override void DoMatching(Action onFinished, int init, DO_MATCHING_LOG log)
|
||||
{
|
||||
base.DoMatching(onFinished, 0, log);
|
||||
RoomBattleDoMatchingTask roomBattleDoMatchingTask = ((_battleParameter.DeckFormat == Format.Hof) ? new RoomBattleDoMatchingTaskHOF() : ((_battleParameter.DeckFormat == Format.Windfall) ? new RoomBattleDoMatchingTaskWindFall() : ((_battleParameter.DeckFormat == Format.Avatar) ? new RoomBattleDoMatchingTaskAvatar(_isGathering) : ((!RoomConnectController.IsNormalMatchingAPI(_battleParameter)) ? new RoomBattle2PickDoMatchingTask(_battleParameter.TwoPickFormat, _battleParameter.Rule) : new RoomBattleDoMatchingTask(_isConvention, _isGathering)))));
|
||||
roomBattleDoMatchingTask.SetParameter(selectDeckID, 0, (int)log, includeCardMasterHash: true);
|
||||
ConnectAPI(roomBattleDoMatchingTask, delegate
|
||||
{
|
||||
if (Wizard.Data.RoomBattleMatching.data.matching_state != 3009)
|
||||
{
|
||||
_gameState = (GAME_STATE)Wizard.Data.RoomBattleMatching.data.battle_state;
|
||||
_doMatchingResultKind = (DoMatchingResult)Wizard.Data.RoomBattleMatching.data.matching_state;
|
||||
onFinished.Call();
|
||||
RoomBase.IsMatchingFinish = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected override void OnFinishedDoMatching()
|
||||
{
|
||||
if (ToolboxGame.RealTimeNetworkAgent == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
switch (_doMatchingResultKind)
|
||||
{
|
||||
case DoMatchingResult.RC_BATTLE_MATCHING_NOT_JOINED_GATHERING:
|
||||
OpenErrorDialog((int)_doMatchingResultKind, UIManager.ViewScene.MyPage);
|
||||
return;
|
||||
case DoMatchingResult.RC_BATTLE_MATCHING_GATHERING_BATTLE_END:
|
||||
OpenErrorDialog((int)_doMatchingResultKind, UIManager.ViewScene.Gathering);
|
||||
return;
|
||||
case DoMatchingResult.RC_BATTLE_MATCHING_NOT_ROOM_ID:
|
||||
OpenErrorDialog((int)_doMatchingResultKind, UIManager.ViewScene.Gathering);
|
||||
return;
|
||||
}
|
||||
switch (_gameState)
|
||||
{
|
||||
case GAME_STATE.LOADING:
|
||||
ErrorDialogWithReturn(Wizard.Data.SystemText.Get("Battle_0401"), Wizard.Data.SystemText.Get("Battle_0411"), Wizard.Data.SystemText.Get("Common_0132"));
|
||||
break;
|
||||
case GAME_STATE.BATTLE:
|
||||
ErrorDialogWithReturn(Wizard.Data.SystemText.Get("Battle_0402"), Wizard.Data.SystemText.Get("Battle_0411"), Wizard.Data.SystemText.Get("Common_0132"));
|
||||
break;
|
||||
case GAME_STATE.RESULT:
|
||||
ErrorDialogWithReturn(Wizard.Data.SystemText.Get("Battle_0403"), Wizard.Data.SystemText.Get("Battle_0411"), Wizard.Data.SystemText.Get("Common_0132"));
|
||||
break;
|
||||
default:
|
||||
MatchingInitBattle();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void SettingOwnerToMatchingState()
|
||||
{
|
||||
_isInitRoomBattle = true;
|
||||
errorDialogReturnText = Wizard.Data.SystemText.Get("Battle_0434");
|
||||
base.SettingOwnerToMatchingState();
|
||||
switch (_doMatchingResultKind)
|
||||
{
|
||||
case DoMatchingResult.RC_BATTLE_MATCHING_SUCCEEDED_OWNER:
|
||||
isOwner = true;
|
||||
break;
|
||||
case DoMatchingResult.RC_BATTLE_MATCHING_SUCCEEDED:
|
||||
isOwner = false;
|
||||
break;
|
||||
default:
|
||||
ErrorDialogWithReturn(Wizard.Data.SystemText.Get("Battle_0404"), Wizard.Data.SystemText.Get("Error_0002"), Wizard.Data.SystemText.Get("Common_0132"));
|
||||
break;
|
||||
case DoMatchingResult.RC_BATTLE_MATCHING_IN_BATTLE_PHASE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected override NetworkBattleDefine.NetworkBattleURI GetInitBattleUri()
|
||||
{
|
||||
return NetworkBattleDefine.NetworkBattleURI.InitRoomBattle;
|
||||
}
|
||||
|
||||
protected override void GotoHomeScene()
|
||||
{
|
||||
RoomBase.IsMatchingFinish = false;
|
||||
bool isInitRoomBattle = _isInitRoomBattle;
|
||||
if (IsStopChangeScene)
|
||||
{
|
||||
return;
|
||||
}
|
||||
UIManager.ChangeViewSceneParam changeViewSceneParam = new UIManager.ChangeViewSceneParam();
|
||||
changeViewSceneParam.OnChange = delegate
|
||||
{
|
||||
UIManager.GetInstance().CloseInSceneLoadingBattle();
|
||||
};
|
||||
if (isInitRoomBattle)
|
||||
{
|
||||
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.Room, changeViewSceneParam);
|
||||
return;
|
||||
}
|
||||
changeViewSceneParam.IsCutCardMotion = true;
|
||||
changeViewSceneParam.OnFinishChangeView = delegate
|
||||
{
|
||||
UIManager.GetInstance().CloseInSceneLoadingMatching();
|
||||
UIManager.GetInstance().CloseInSceneLoadingBattle();
|
||||
};
|
||||
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.MyPage, changeViewSceneParam);
|
||||
}
|
||||
|
||||
protected override void GotoDeckSelectScene()
|
||||
{
|
||||
GotoHomeScene();
|
||||
}
|
||||
|
||||
public override FinishTaskBase GetBattleFinishTask()
|
||||
{
|
||||
if (_battleParameter.DeckFormat == Format.Hof)
|
||||
{
|
||||
return new RoomBattleFinishTaskHOF();
|
||||
}
|
||||
if (_battleParameter.DeckFormat == Format.Windfall)
|
||||
{
|
||||
return new RoomBattleFinishTaskWindFall();
|
||||
}
|
||||
if (_battleParameter.DeckFormat == Format.Avatar)
|
||||
{
|
||||
return new RoomBattleFinishTaskAvatar(_isGathering);
|
||||
}
|
||||
if (RoomConnectController.IsNormalMatchingAPI(_battleParameter))
|
||||
{
|
||||
return new RoomBattleFinishTask(_isConvention, _isGathering);
|
||||
}
|
||||
return new RoomBattle2PickFinishTask(_battleParameter.TwoPickFormat, _battleParameter.Rule);
|
||||
}
|
||||
|
||||
protected override void ErrorDialog(string text, string title, bool isFailedInitNetwork)
|
||||
{
|
||||
DialogBase dialogBase = CreateDialogBase();
|
||||
dialogBase.SetSize(DialogBase.Size.M);
|
||||
dialogBase.SetTitleLabel(title);
|
||||
dialogBase.SetText(text);
|
||||
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.OkBtn);
|
||||
dialogBase.SetButtonText(errorDialogReturnText);
|
||||
dialogBase.SetFadeButtonEnabled(flag: false);
|
||||
dialogBase.SetPanelDepth(5400);
|
||||
dialogBase.ClickSe_Btn1 = Se.TYPE.SYS_BTN_CANCEL_TRANS;
|
||||
EventDelegate method_btn = new EventDelegate(base.ReturnScene);
|
||||
dialogBase.SetButtonDelegate(method_btn);
|
||||
}
|
||||
|
||||
public override void TimeOutAction(string log, bool isInitNetworkFailed)
|
||||
{
|
||||
if (!_goTitleOnTimeout && _isGathering)
|
||||
{
|
||||
ErrorDialogGoToTitle(Wizard.Data.SystemText.Get("Battle_0508"), Wizard.Data.SystemText.Get("Battle_0412"));
|
||||
return;
|
||||
}
|
||||
if (_goTitleOnTimeout && !_receivedMatchingTimeout)
|
||||
{
|
||||
ErrorDialogGoToTitle(Wizard.Data.SystemText.Get("Battle_0508"), Wizard.Data.SystemText.Get("Battle_0412"));
|
||||
return;
|
||||
}
|
||||
LocalLog.AccumulateLastTraceLog("TimeOutAction " + log);
|
||||
ErrorDialogGoToTitle(Wizard.Data.SystemText.Get("Error_0006"), Wizard.Data.SystemText.Get("ErrorHeader_0006"));
|
||||
}
|
||||
|
||||
public override void GotoBattle()
|
||||
{
|
||||
base.GotoBattle();
|
||||
RoomConnectController.IsAlreadyStartBattle = true;
|
||||
}
|
||||
|
||||
private void OnPushErrorDialogButton(UIManager.ViewScene scene)
|
||||
{
|
||||
bool matchingDataReady = GetMatchingDataReady();
|
||||
if (!matchingDataReady && isOffViewAllEnable)
|
||||
{
|
||||
UIManager.GetInstance().OffViewAll();
|
||||
}
|
||||
ToolboxGame.DestroyNetworkAgent();
|
||||
if (matchingDataReady && GameMgr.GetIns().GetBattleCtrl() != null)
|
||||
{
|
||||
UIManager.GetInstance().StartCoroutine(BattleEndCoroutin(delegate
|
||||
{
|
||||
UIManager.GetInstance().ChangeViewScene(scene);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
UIManager.GetInstance().ChangeViewScene(scene);
|
||||
}
|
||||
}
|
||||
|
||||
private void OpenErrorDialog(int errorCode, UIManager.ViewScene scene)
|
||||
{
|
||||
DialogBase dialogBase = CreateDialogBase();
|
||||
Dialog.Setup(dialogBase, errorCode.ToString());
|
||||
dialogBase.SetPanelDepth(5400);
|
||||
dialogBase.onPushButton1 = delegate
|
||||
{
|
||||
OnPushErrorDialogButton(scene);
|
||||
};
|
||||
_matchingTimeCheker.Stop();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user