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.
This commit is contained in:
178
SVSim.BattleEngine/Engine/Wizard/TournamentCell.cs
Normal file
178
SVSim.BattleEngine/Engine/Wizard/TournamentCell.cs
Normal file
@@ -0,0 +1,178 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user