Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/TournamentCell.cs
gamer147 0455ff649e feat(battle-engine): EffectType full enum + collection/card/vfx extension copies
Replaces partial EffectMgr.EffectType with all 226 decomp values; copies the
IsNotNullOrEmpty/EquelsID/FindFromCardId/GetAllFuncVfxResults extension files +
UI extensions; adds Renderer/MeshFilter shared-material/mesh/sortingOrder. Compile
loop then closed the revealed deps (3242 files). 9.1k -> 18 errors.
2026-06-05 20:38:56 -04:00

179 lines
4.7 KiB
C#

using Cute;
using UnityEngine;
namespace Wizard;
public class TournamentCell : MonoBehaviour
{
[SerializeField]
private UITexture _emblemTexture;
[SerializeField]
private UILabel _nameLabel;
[SerializeField]
private GameObject _activePlate;
[SerializeField]
private GameObject _winPlate;
[SerializeField]
private GameObject _losePlate;
[SerializeField]
private GameObject _loseByDefaultPlate;
[SerializeField]
private GameObject _championPlate;
[SerializeField]
private GameObject _youMark;
[SerializeField]
private UISprite _lineDownSprite;
[SerializeField]
private UISprite _lineUpSprite;
[SerializeField]
private Transform _leftConnectorTransform;
[SerializeField]
private Transform _rightConnectorTransform;
[SerializeField]
private UILabel _isFinalMatchResetLabel;
private Transform _lineEndTransform;
private const string DEFAULT_LINE_SPRITE_NAME = "Line_tournament";
private const string ACTIVE_LINE_SPRITE_NAME = "Line_tournament_active";
private const string PRE_EXTRA_LINE_SPRITE_NAME = "Line_tournament_Final";
private const string WIN_PRE_EXTRA_LINE_SPRITE_NAME = "Line_win_tournament_Final";
private const string WIN_LINE_SPRITE_NAME = "Line_win_tournament";
public TournamentCellData Data { get; private set; }
public Transform LeftConnectorTransform => _leftConnectorTransform;
public Transform RightConnectorTransform => _rightConnectorTransform;
public void Setup(TournamentCellData data)
{
Data = data;
_nameLabel.gameObject.SetActive(data.Name != string.Empty);
_nameLabel.text = data.Name;
_emblemTexture.gameObject.SetActive(data.EmblemId > 0);
_emblemTexture.mainTexture = Toolbox.ResourcesManager.LoadObject(Data.GetEmblemPath()) as Texture;
_isFinalMatchResetLabel.gameObject.SetActive(data.IsFinalMatchReset);
SetupState();
SetupLineVisible();
SetYouMarkVisible(isVisible: false);
}
private void SetupState()
{
TournamentCellData.CellState state = Data.State;
_activePlate.SetActive(state == TournamentCellData.CellState.Active);
_winPlate.SetActive(state == TournamentCellData.CellState.Win);
_losePlate.SetActive(state == TournamentCellData.CellState.Lose);
_loseByDefaultPlate.SetActive(state == TournamentCellData.CellState.LoseByDefault);
_championPlate.SetActive(Data.IsChampion);
switch (state)
{
case TournamentCellData.CellState.Blank:
case TournamentCellData.CellState.LoseByDefault:
_emblemTexture.gameObject.SetActive(value: false);
_nameLabel.gameObject.SetActive(value: false);
break;
case TournamentCellData.CellState.Lose:
{
UIManager.SetObjectToGrey(base.gameObject, b: true);
UISprite lineSprite = GetLineSprite();
if (lineSprite != null)
{
lineSprite.color = Color.white;
}
break;
}
}
}
private void SetupLineVisible()
{
UISprite lineSprite = GetLineSprite();
_lineDownSprite.gameObject.SetActive(lineSprite == _lineDownSprite);
_lineUpSprite.gameObject.SetActive(lineSprite == _lineUpSprite);
if (!(lineSprite == null))
{
string spriteName = "Line_tournament";
if (Data.State == TournamentCellData.CellState.Active)
{
spriteName = "Line_tournament_active";
}
else if (Data.IsPreExtra)
{
spriteName = ((Data.State == TournamentCellData.CellState.Win) ? "Line_win_tournament_Final" : "Line_tournament_Final");
}
else if (Data.State == TournamentCellData.CellState.Win)
{
spriteName = "Line_win_tournament";
}
lineSprite.spriteName = spriteName;
}
}
private UISprite GetLineSprite()
{
if (Data.IsTerminal)
{
return null;
}
if (Data.Line != TournamentCellData.LineType.Down)
{
return _lineUpSprite;
}
return _lineDownSprite;
}
public void SetLineEndTransform(Transform lineEndTransform)
{
_lineEndTransform = lineEndTransform;
}
public void UpdateLine()
{
UISprite lineSprite = GetLineSprite();
if (!(lineSprite == null))
{
Vector3 localPosition = _rightConnectorTransform.localPosition;
Vector3 vector;
if (Data.IsPreExtra)
{
vector = (localPosition + base.transform.InverseTransformPoint(_lineEndTransform.position)) * 0.5f;
vector.x += 48f;
}
else
{
vector = base.transform.InverseTransformPoint(_lineEndTransform.position);
}
lineSprite.transform.localPosition = (localPosition + vector) * 0.5f;
lineSprite.width = (int)(vector.x - localPosition.x);
lineSprite.height = (int)(Mathf.Abs(vector.y - localPosition.y) + 14f);
}
}
public void SetYouMarkVisible(bool isVisible)
{
_youMark.SetActive(isVisible);
if (isVisible)
{
_youMark.GetComponent<UILabel>().color = LabelDefine.TEXT_COLOR_NORMAL;
}
}
}