Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/CompetitionCardPanel.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

175 lines
4.8 KiB
C#

using System.Collections;
using Cute;
using UnityEngine;
namespace Wizard;
public class CompetitionCardPanel : MyPageCardPanel
{
[SerializeField]
private UILabel _infoNextTimeLabel;
[SerializeField]
private UILabel _infoTitleLabel;
[SerializeField]
private UILabel _infoTimeLabel;
[SerializeField]
private CompetitionEntry _competitionEntry;
[SerializeField]
private GameObject _competitionEntryRoot;
[SerializeField]
private GameObject _competitionBadge;
[SerializeField]
private UISprite _panelLineSprite;
[SerializeField]
private string _competitionCardPanelPath;
[SerializeField]
private string _competition2PickCardPanelPath;
private const int SECONDS_PER_MINUTE = 60;
private static readonly Color PanelLineColor = new Color(64f / 85f, 2f / 15f, 2f / 15f);
private bool _firstInitialize;
private string _cardPanelPath;
public bool IsEntry { get; set; }
public bool IsEntryTimeEnd { get; set; }
private void OnEnable()
{
PanelImageUpdate();
}
public override string GetResourcePath(bool isfetch)
{
_cardPanelPath = ((Data.ArenaData.CompetitionData.DeckFormat == Format.TwoPick) ? _competition2PickCardPanelPath : _competitionCardPanelPath);
return Toolbox.ResourcesManager.GetAssetTypePath(_cardPanelPath, ResourcesManager.AssetLoadPathType.CardMenu, isfetch);
}
public void Update()
{
SetPanelLineColor();
if (Data.ArenaData.CompetitionData != null)
{
if (_competitionEntryRoot.gameObject.activeSelf)
{
_competitionBadge.SetActive(value: false);
}
else
{
_competitionBadge.SetActive(Data.MyPageNotifications.data.IsCompetitionBadge);
}
}
}
public void PanelImageUpdate(bool callEntryMenuUpdate = true)
{
ArenaCompetition competitionData = Data.ArenaData.CompetitionData;
SystemText systemText = Data.SystemText;
if (!_firstInitialize)
{
_firstInitialize = true;
IsEntryTimeEnd = competitionData.IsEntryTimeEnd;
}
base.TitleLabel.text = competitionData.CompetitionName;
string text = null;
double num = 0.0;
double num2 = competitionData.RemainingServerUnixTime + (double)Time.realtimeSinceStartup - (double)competitionData.RemainingSinceTime;
bool flag = Data.ArenaData.CompetitionData.RestEntryCount == 0 && Data.ArenaData.CompetitionData.IsRewardReceived;
bool flag2 = !IsEntry && !IsEntryTimeEnd && !flag;
if (flag2)
{
if (Data.ArenaData.CompetitionData.CostType == ArenaCompetition.EntryCostType.EntryWithFree)
{
_infoTitleLabel.text = systemText.Get("Competition_0064");
}
else
{
_infoTitleLabel.text = systemText.Get("Competition_0009");
}
num = competitionData.EntryRemainingUnixTime - num2;
_infoNextTimeLabel.text = systemText.Get("Competition_0070");
}
else
{
if (IsEntry && Data.ArenaData.CompetitionData.CostType == ArenaCompetition.EntryCostType.EntryWithFree)
{
if (competitionData.FreebieStatus == ArenaCompetition.FreebieStatusType.InFreeBattle)
{
_infoTitleLabel.text = systemText.Get("Competition_0071");
_infoNextTimeLabel.text = systemText.Get("Competition_0070");
}
else if (competitionData.FreebieStatus == ArenaCompetition.FreebieStatusType.CanPermanentEntry)
{
_infoTitleLabel.text = systemText.Get("Competition_0009");
_infoNextTimeLabel.text = systemText.Get("Competition_0048");
}
else
{
_infoTitleLabel.text = systemText.Get("Competition_0010");
_infoNextTimeLabel.text = systemText.Get("Competition_0049");
}
}
else
{
_infoTitleLabel.text = systemText.Get("Competition_0010");
_infoNextTimeLabel.text = systemText.Get("Competition_0049");
}
num = competitionData.RemainingUnixTime - num2;
}
if (!(num <= 0.0))
{
text = ((num < 3600.0) ? systemText.Get("Colosseum_0058", ((int)(num / 60.0) + 1).ToString()) : ((!(num < 86400.0)) ? systemText.Get("Colosseum_0044", ((int)(num / 86400.0)).ToString()) : systemText.Get("Colosseum_0057", ((int)(num / 3600.0)).ToString())));
}
else
{
text = systemText.Get("Colosseum_0058", "0");
if (flag2)
{
IsEntryTimeEnd = true;
PanelImageUpdate();
return;
}
}
float seconds = (float)(60.0 - num2 % 60.0);
StartCoroutine(PanelImageUpdateTimer(seconds));
_infoTimeLabel.text = text;
if (callEntryMenuUpdate)
{
_competitionEntry.EntryMenuUpdate(IsEntryTimeEnd);
}
}
private IEnumerator PanelImageUpdateTimer(float seconds)
{
yield return new WaitForSeconds(seconds);
PanelImageUpdate();
}
private void OnApplicationPause(bool pause)
{
if (!pause)
{
PanelImageUpdate();
}
}
private void SetPanelLineColor()
{
if (_panelLineSprite.color == Color.white)
{
_panelLineSprite.color = PanelLineColor;
}
}
}