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

187 lines
6.0 KiB
C#

using System;
using Cute;
using UnityEngine;
using Wizard.Scripts.Network.Data.TaskData.Arena;
namespace Wizard;
public class CompetitionEntryDialog : ArenaEntryDialogBase
{
public delegate void OnCompleteEntry();
public delegate void OnCompleteJoin();
[SerializeField]
private GameObject _prefabRewardDialog;
[SerializeField]
private CardDetailUI _cardDetailDialog;
[SerializeField]
private UILabel _mainText;
[SerializeField]
private GameObject _competitionEntryCompleteDialog;
[SerializeField]
private GameObject _rewardRoot;
[SerializeField]
private GameObject _freeEntryDialogLine;
[SerializeField]
private UIButton _entryRupyButton;
[SerializeField]
private UIButton _entryCrystalButton;
[SerializeField]
private UIGrid _entryButtonGrid;
[SerializeField]
private GameObject _rewardLabel;
[SerializeField]
private GameObject _coutionLabel;
public Action CompleteEntryHandler;
public Action CompleteJoinHandler;
private const int CELL_WIDTH_ADJUST = -12;
private const int CELL_WIDTH_ADJUST_COUNT = 4;
private readonly Vector3 FREE_BATTLE_LABEL_POS = new Vector3(0f, 198f, 0f);
private readonly Vector3 FREE_BATTLE_COUTION_LABEL_POS = new Vector3(0f, 108f, 0f);
private readonly Vector3 FREE_BATTLE_REWARD_LABEL_POS = new Vector3(0f, 29f, 0f);
private readonly Vector3 FREE_BATTLE_REWARD_POS = new Vector3(0f, -96f, 0f);
protected override void Init()
{
IsCompetition = true;
switch (Data.ArenaData.CompetitionData.CostType)
{
case ArenaCompetition.EntryCostType.EntryWithFree:
{
bool flag = Data.ArenaData.CompetitionData.CurrentWinCount > 0;
_mainText.text = (flag ? Data.SystemText.Get("Competition_0062", Data.ArenaData.CompetitionData.MaxChallengeCount.ToString()) : Data.SystemText.Get("Competition_0069", Data.ArenaData.CompetitionData.MaxChallengeCount.ToString()));
_freeEntryDialogLine.SetActive(value: true);
_mainText.gameObject.transform.localPosition = FREE_BATTLE_LABEL_POS;
_rewardRoot.transform.localPosition = FREE_BATTLE_REWARD_POS;
_rewardLabel.transform.localPosition = FREE_BATTLE_REWARD_LABEL_POS;
_coutionLabel.transform.localPosition = FREE_BATTLE_COUTION_LABEL_POS;
break;
}
case ArenaCompetition.EntryCostType.EntryWithCost:
_mainText.text = Data.SystemText.Get("Competition_0077", Data.ArenaData.CompetitionData.MaxChallengeCount.ToString());
_freeEntryDialogLine.SetActive(value: false);
break;
}
_entryCrystalButton.gameObject.SetActive(Data.ArenaData.CompetitionData.crystalCost != 0);
_entryRupyButton.gameObject.SetActive(Data.ArenaData.CompetitionData.rupyCost != 0);
_entryButtonGrid.Reposition();
_arenaNameTextId = "Competition_0035";
_entryButtonSe = Se.TYPE.SYS_BTN_DECIDE;
}
protected override int GetTicketNum()
{
return PlayerStaticData.UserColosseumTicketNum;
}
protected override ArenaEntryDataBase GetEntryData()
{
return Data.ArenaData.CompetitionData;
}
protected override void Entry()
{
base.Entry();
if (Data.ArenaData.CompetitionData.CostType == ArenaCompetition.EntryCostType.EntryWithCost)
{
CompetitionEntryTask competitionEntryTask = new CompetitionEntryTask();
competitionEntryTask.SetParameter(_payType);
StartCoroutine(Toolbox.NetworkManager.Connect(competitionEntryTask, EntryTaskSuccess));
}
else
{
CompetitionPermanentEntryTask competitionPermanentEntryTask = new CompetitionPermanentEntryTask();
competitionPermanentEntryTask.SetParameter(_payType);
StartCoroutine(Toolbox.NetworkManager.Connect(competitionPermanentEntryTask, EntryTaskSuccess));
}
}
private void EntryTaskSuccess(NetworkTask.ResultCode inResult)
{
base.ParentDialog.CloseWithoutSelect();
CompleteEntryHandler.Call();
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
dialogBase.SetSize(DialogBase.Size.M);
dialogBase.SetTitleLabel(Data.SystemText.Get("Competition_0018"));
GameObject gameObject = UnityEngine.Object.Instantiate(_competitionEntryCompleteDialog);
dialogBase.SetObj(gameObject);
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.OkBtn);
SetRewardInfo(gameObject, isOnlyIcon: false, isSetLabel: true);
gameObject.transform.localPosition = Vector3.forward * 10f;
dialogBase.OnClose = delegate
{
if (Data.ArenaData.CompetitionData.CostType == ArenaCompetition.EntryCostType.EntryWithFree)
{
UIManager.ViewScene nextScene = ((Data.ArenaData.CompetitionData.Rule == ArenaColosseum.eRule.TwoPick) ? UIManager.ViewScene.Competition2Pick : UIManager.ViewScene.CompetitionLobby);
UIManager.GetInstance().ChangeViewScene(nextScene);
}
else
{
CreateJoinCompetitionDialog();
}
};
}
public void SetRewardInfoEntryConfirm()
{
SetRewardInfo(_rewardRoot, isOnlyIcon: true);
}
public void SetRewardInfo(GameObject root, bool isOnlyIcon = false, bool isSetLabel = false)
{
RewardBase component = NGUITools.AddChild(root, _prefabRewardDialog).GetComponent<RewardBase>();
component.SetCardDetailUI(_cardDetailDialog);
foreach (Wizard.Scripts.Network.Data.TaskData.Arena.Reward entryReward in Data.ArenaData.CompetitionData.EntryRewardList)
{
component.AddReward(entryReward);
}
component.GetComponent<UIPanel>().depth = 8;
if (component._rewardObjectInfoList.Count >= 4)
{
component.AllInEndCreate(0.8f, -12);
}
else
{
component.AllInEndCreate(1f);
}
if (isOnlyIcon)
{
component.SetOnlyIconEndCreate(isSleeveRotate: false);
}
component.SetActiveRewardLabel(isSetLabel);
}
public void CreateJoinCompetitionDialog()
{
SystemText systemText = Data.SystemText;
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn);
dialogBase.SetButtonText(systemText.Get("Competition_0039"));
dialogBase.SetText(systemText.Get("Competition_0078"));
dialogBase.ClickSe_Btn1 = Se.TYPE.SYS_BTN_DECIDE_TRANS;
dialogBase.SetButtonDelegate(delegate
{
CompleteJoinHandler.Call();
});
}
}