Files
SVSimServer/SVSim.BattleEngine/Engine/ReceiveIntervalTrigger.cs
gamer147 0d9d8acae0 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.
2026-06-05 16:57:20 -04:00

105 lines
3.9 KiB
C#

using Wizard;
public class ReceiveIntervalTrigger
{
private const float RECOVER_INTERVAL_FROM_OPPODISCONNECT = 3f;
public virtual void ReceiveDataCheck(NetworkBattleManagerBase networkBattleManager, NetworkBattleData networkBattleData, bool isPlayer, bool isExTurn)
{
NetworkBattleReceiver.ReceiveData receiveData = networkBattleData.GetReceiveData();
if (IsEffectiveURI(receiveData.dataUri))
{
if (isPlayer)
{
networkBattleManager.disconnectToDispChecker.EraseDisp();
}
else
{
networkBattleManager.judgeResultFailedToRetryChecker.StopChecker();
}
if (receiveData.dataUri != NetworkBattleDefine.NetworkBattleURI.RecoveryStart)
{
if (isPlayer)
{
if (networkBattleManager.recoveryToDispChecker != null && networkBattleManager.recoveryToDispChecker.isDisp)
{
networkBattleManager.recoveryToDispChecker.EraseDisp();
}
}
else if (networkBattleManager.opponentRecoveryToDispChecker != null && networkBattleManager.opponentRecoveryToDispChecker.isDisp)
{
networkBattleManager.opponentRecoveryToDispChecker.EraseDisp();
}
}
}
switch (receiveData.dataUri)
{
case NetworkBattleDefine.NetworkBattleURI.Ready:
networkBattleManager.notMulliganEndToJudgeChecker.StopChecker();
if (!ToolboxGame.RealTimeNetworkAgent.GetTurnState())
{
networkBattleManager.opponentNotTurnStartToWinChecker.StartChecker();
}
break;
case NetworkBattleDefine.NetworkBattleURI.TurnStart:
networkBattleManager.opponentNotTurnEndToWinChecker.StartChecker();
networkBattleManager.opponentNotTurnStartToWinChecker.StopChecker();
networkBattleManager.notTurnEndToLoseChecker.StopChecker();
break;
case NetworkBattleDefine.NetworkBattleURI.TurnEnd:
networkBattleManager.opponentNotTurnEndToWinChecker.StopChecker();
if (networkBattleManager.BattleEnemy.IsExtraTurn)
{
networkBattleManager.opponentNotTurnStartToWinChecker.StartChecker();
}
else
{
networkBattleManager.notTurnStartToLoseChecker.StartChecker();
}
break;
case NetworkBattleDefine.NetworkBattleURI.Judge:
if (isExTurn)
{
networkBattleManager.notTurnStartToLoseChecker.StartChecker();
}
break;
case NetworkBattleDefine.NetworkBattleURI.RecoveryStart:
if (receiveData.isSelf)
{
break;
}
if (isPlayer)
{
if (networkBattleManager.recoveryToDispChecker != null && !networkBattleManager.recoveryToDispChecker.isDisp)
{
networkBattleManager.recoveryToDispChecker.CreateDisp();
}
break;
}
networkBattleManager.opponentNotTurnStartToWinChecker.SetTimeoutTime(isExtend: true);
networkBattleManager.opponentNotTurnEndToWinChecker.SetTimeoutTime(isExtend: true);
if (!networkBattleManager.opponentRecoveryToDispChecker.isDisp)
{
networkBattleManager.opponentRecoveryToDispChecker.CreateDisp();
}
break;
case NetworkBattleDefine.NetworkBattleURI.RecoveryEnd:
if (!isPlayer)
{
networkBattleManager.opponentNotTurnStartToWinChecker.SetTimeoutTime(isExtend: false);
networkBattleManager.opponentNotTurnEndToWinChecker.SetTimeoutTime(isExtend: false);
}
break;
}
}
public static bool IsEffectiveURI(NetworkBattleDefine.NetworkBattleURI uri)
{
if (uri == NetworkBattleDefine.NetworkBattleURI.TurnStart || uri == NetworkBattleDefine.NetworkBattleURI.TurnEndActions || uri == NetworkBattleDefine.NetworkBattleURI.TurnEnd || uri == NetworkBattleDefine.NetworkBattleURI.PlayActions || uri == NetworkBattleDefine.NetworkBattleURI.BattleFinish || uri == NetworkBattleDefine.NetworkBattleURI.TurnEndFinal || uri == NetworkBattleDefine.NetworkBattleURI.JudgeResult || uri == NetworkBattleDefine.NetworkBattleURI.Retire || uri == NetworkBattleDefine.NetworkBattleURI.RecoveryStart || uri == NetworkBattleDefine.NetworkBattleURI.RecoveryEnd)
{
return true;
}
return false;
}
}