Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/GatheringUtility.cs
gamer147 824309ec44 feat(battle-engine): close the AI-simulation subsystem (verbatim)
Copied the 89 uncopied AI*SimulationUtility/extension files defining the
AIVirtualCard/AIVirtualField extension methods; the compile loop then auto-closed
the revealed type deps (~3049 files total, drift-clean). 10.0k -> 62 errors.
2026-06-05 20:30:59 -04:00

120 lines
3.7 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Wizard.RoomMatch;
namespace Wizard;
public class GatheringUtility : MonoBehaviour
{
public class RuleTypeInfo
{
public string Name { get; private set; }
public GatheringRule.eType Type { get; private set; }
public GatheringRule.eTournamentType TournamentType { get; private set; }
public int MaxMember { get; private set; }
public bool IsReset { get; private set; }
public RuleTypeInfo(GatheringRule.eType _eType, GatheringRule.eTournamentType _eTournamentType = GatheringRule.eTournamentType.NONE, bool _isReset = false)
{
Type = _eType;
TournamentType = _eTournamentType;
Name = GetGatheringTypeString(Type, TournamentType, _isReset);
MaxMember = GetMaxMemberNumber(Type);
IsReset = _isReset;
}
}
public static List<RuleTypeInfo> GetAllGatheringRule()
{
List<RuleTypeInfo> list = new List<RuleTypeInfo>();
foreach (GatheringRule.eType value in Enum.GetValues(typeof(GatheringRule.eType)))
{
if (value == GatheringRule.eType.TOURNAMENT)
{
foreach (GatheringRule.eTournamentType value2 in Enum.GetValues(typeof(GatheringRule.eTournamentType)))
{
switch (value2)
{
case GatheringRule.eTournamentType.DOUBLE_ELIMINATION:
list.Add(new RuleTypeInfo(value, value2, _isReset: true));
list.Add(new RuleTypeInfo(value, value2));
break;
default:
list.Add(new RuleTypeInfo(value, value2));
break;
case GatheringRule.eTournamentType.NONE:
break;
}
}
}
else
{
list.Add(new RuleTypeInfo(value));
}
}
return list;
}
public static string GetGatheringTypeString(GatheringInfo gatheringInfo)
{
return GetGatheringTypeString(gatheringInfo.Rule.Type, gatheringInfo.Rule.TournamentType, gatheringInfo.Rule.IsReset);
}
public static string GetGatheringTypeString(GatheringRule.eType _eType, GatheringRule.eTournamentType _eTournamentType = GatheringRule.eTournamentType.NONE, bool isReset = false)
{
SystemText systemText = Data.SystemText;
switch (_eType)
{
case GatheringRule.eType.FREE_BATTLE:
return systemText.Get("Gathering_0033");
case GatheringRule.eType.TOURNAMENT:
switch (_eTournamentType)
{
case GatheringRule.eTournamentType.SINGLE_ELIMINATION:
return systemText.Get("Gathering_0030");
case GatheringRule.eTournamentType.DOUBLE_ELIMINATION:
if (!isReset)
{
return systemText.Get("Gathering_0035");
}
return systemText.Get("Gathering_0031");
default:
Debug.LogError("未知のトーナメントタイプが追加されています:" + _eTournamentType);
return "";
}
default:
Debug.LogError("未知のタイプが追加されています:" + _eType);
return "";
}
}
public static int GetMaxMemberNumber(GatheringRule.eType _eType)
{
if (_eType == GatheringRule.eType.TOURNAMENT)
{
return 64;
}
return 128;
}
public static IEnumerator JoinRoom(RoomConnectController.InitializeParameter param, string battleId)
{
UIManager.GetInstance().createInSceneCenterLoading(notBlack: true);
GameMgr.GetIns().GetDataMgr().m_BattleType = DataMgr.BattleType.RoomBattle;
RoomConnectController room = new RoomConnectController(param);
yield return UIManager.GetInstance().StartCoroutine(room.StartConnect(battleId));
if (room.ConnectRoomResultType == RoomConnectController.ConnectRoomResult.SUCCESS)
{
UIManager.GetInstance()._Footer.InviteIconDisp(inDisp: false);
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.Room);
}
UIManager.GetInstance().closeInSceneCenterLoading();
}
}