Files
SVSimServer/SVSim.BattleEngine/Engine/TwoPickCardSelectBase.cs
gamer147 4be630bd09 feat(battle-engine): full-surface app-type god-object/manager stubs (1692->1586 true)
Make the minimal hand shims partial + generate full member surface for the manager/
task/controller god-objects (LoadingViewManager/DeckUpdateTask/MyPageTask/ReplayController/
PlayerControllerForWatching/WatchDataHandler/EvolutionTouchProcessor/StoryChapterSelection
Utility/NonDialogPopup). NonDialogPopup given MonoBehaviour base + hand Close() removed
(superseded by full surface). LoadTask dup deleted (already copied verbatim). RoomMatch
watch/replay closure types stubbed. Copied 8 more closure files.

CS0246-in-generated-signature masking note: 4 such errors were hiding ~1582 — generated
CS0246 masks as hard as header CS0246; the real frontier is 1586 (CS7036 base-ctor +
member-level), 0 structural.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 22:33:37 -04:00

665 lines
22 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Cute;
using UnityEngine;
using Wizard;
using Wizard.Scripts.Network.Data.TableData.Arena.TwoPick;
using Wizard.Scripts.Network.Data.TaskData.Arena.TwoPick;
public abstract class TwoPickCardSelectBase : MonoBehaviour
{
public enum MoveType
{
LEFT,
RIGHT,
UP,
DOWN
}
public enum PICK_SIDE
{
LEFT,
RIGHT
}
private class CardPosXInfo
{
public Transform Transform { get; private set; }
public float PosX { get; private set; }
public CardPosXInfo(Transform t, float posX)
{
Transform = t;
PosX = posX;
}
}
public const int PICK_SIDE_NUM = 2;
public const int PICK_CARD_NUM = 2;
protected TwoPickCardSelectView _viewData;
private int scene_layer = 24;
private const int maxDrawCard = 4;
private const float CARD_IN_ANIMATION_TIME = 0.5f;
private IList<GameObject> LeftObjs = new List<GameObject>();
private IList<GameObject> RightObjs = new List<GameObject>();
private List<UIBase_CardManager.CardObjData> cardObjList = new List<UIBase_CardManager.CardObjData>();
private List<UIBase_CardManager.CardObjData> cardObjListSpell = new List<UIBase_CardManager.CardObjData>();
private List<string> _loadAssetList = new List<string>();
protected List<int> _selectedCardList = new List<int>();
private bool _bOnDestory;
private int _lastTimeCardNum;
protected int _followerNum;
protected int _amuletNum;
protected int _spellNum;
private List<GameObject> _tweenObjectList = new List<GameObject>();
private List<CardPosXInfo> cardPosXInfoList = new List<CardPosXInfo>();
private bool isCardSetFirst = true;
private const int DECK_INFO_ICON = 0;
private const int DECK_INFO_CLASS_NAME = 0;
private const int DECK_INFO_CARD_NUM = 1;
private const int DECK_INFO_CARD_MAX = 2;
private const int DECK_INFO_FOLLOWER_NUM = 3;
private const int DECK_INFO_SPELL_NUM = 4;
private const int DECK_INFO_AMULET_NUM = 5;
private const float DECK_INFO_TWEEN_Y = -151f;
private readonly Color EFFECT_COLOR_BLUE = new Color(0.2509804f, 0.5019608f, 1f);
private readonly Color EFFECT_COLOR_ORANGE = new Color(1f, 32f / 85f, 0f);
private List<Effect> _effects = new List<Effect>();
public UICardList UiCardList { get; set; }
public CardDetailUI UiCardDetail { get; set; }
public int SelectedClassId { get; set; }
public bool IsButtonEnable { get; set; }
public bool IsTitleEnable { get; set; }
public bool IsFirstCardDisp { get; set; }
protected virtual void Awake()
{
IsButtonEnable = true;
IsTitleEnable = true;
IsFirstCardDisp = false;
}
public void Init()
{
isCardSetFirst = true;
_viewData = base.transform.GetComponent<TwoPickCardSelectView>();
_viewData.TitlePanel.gameObject.SetActive(IsTitleEnable);
_viewData.CostCurveClass.Initialize(FormatBehaviorManager.GetDefaultBehaviour(Format.Max).CardMasterId);
_viewData.DeckBtnObj.labels[0].text = Data.SystemText.Get("Arena_0009");
_viewData.SelectBtnObjs[0].labels[0].text = Data.SystemText.Get("Arena_0029");
_viewData.SelectBtnObjs[1].labels[0].text = Data.SystemText.Get("Arena_0029");
for (int i = 0; i < 2; i++)
{
_viewData.SelectBtnObjs[i].buttons[0].onClick.Clear();
_viewData.SelectBtnObjs[i].buttons[0].onClick.Add(new EventDelegate(delegate
{
OnClickSelectBtn();
}));
}
_viewData.DeckBtnObj.buttons[0].onClick.Clear();
_viewData.DeckBtnObj.buttons[0].onClick.Add(new EventDelegate(delegate
{
DeckViewOpen();
}));
UiCardList.SetClan(GetSelectedClassId());
CardBasePrm.ClanType selectedClassId = GetSelectedClassId();
_viewData.DeckInfoObjs.sprites[0].spriteName = ClassCharaPrm.GetIconSpriteName(selectedClassId);
_viewData.DeckInfoObjs.labels[0].text = ClassCharaPrm.GetNameText(selectedClassId);
ClassCharaPrm.SetClassLabelSetting(_viewData.DeckInfoObjs.labels[0], selectedClassId);
_viewData.DeckTypeNameLabel.gameObject.SetActive(value: false);
if (GetDeckInfo().cardIds.Length == 0)
{
_viewData.DeckInfoObjs.labels[1].text = "0";
_viewData.DeckInfoObjs.labels[2].text = "/" + 30;
_viewData.DeckInfoObjs.labels[3].text = "0";
_viewData.DeckInfoObjs.labels[4].text = "0";
_viewData.DeckInfoObjs.labels[5].text = "0";
}
_viewData.TitlePanel.alpha = 0f;
_viewData.DeckInfoObjs.GetComponent<UIPanel>().alpha = 0f;
TweenAlpha.Begin(base.gameObject, 0f, 1f);
LeftObjs = new List<GameObject>();
RightObjs = new List<GameObject>();
Deck deckInfo = GetDeckInfo();
_selectedCardList = new List<int>();
if (deckInfo.cardIds.Length != 0)
{
_selectedCardList.AddRange(deckInfo.cardIds);
}
for (int num = 0; num < _selectedCardList.Count; num++)
{
DeckInfoCardNumUpdate(_selectedCardList.Count, 30, _selectedCardList[num]);
}
if (_selectedCardList.Count == 0)
{
_viewData.DeckBtnObj.buttons[0].isEnabled = false;
_viewData.DeckBtnObj.labels[0].color = LabelDefine.TEXT_COLOR_BUTTON_DISABLE;
}
else
{
_viewData.DeckBtnObj.buttons[0].isEnabled = true;
_viewData.DeckBtnObj.labels[0].color = LabelDefine.TEXT_COLOR_BUTTON_ENABLE;
}
StartCoroutine(cardChoosePost_NonTask());
_viewData.SelectBtnObjs[0].gameObject.SetActive(value: false);
_viewData.SelectBtnObjs[1].gameObject.SetActive(value: false);
_viewData.CardContainer[0].SetActive(value: false);
_viewData.CardContainer[1].SetActive(value: false);
TweenAlpha.Begin(_viewData.BaseObj, 0f, 0f);
_loadAssetList.Add(Toolbox.ResourcesManager.GetAssetTypePath(GetSelectedSkinId().ToString("00"), ResourcesManager.AssetLoadPathType.ClassCharaBase));
_viewData.ClassObj.textures[0].mainTexture = null;
UIManager.GetInstance().createInSceneCenterLoading();
UIManager.GetInstance().StartCoroutine(Toolbox.ResourcesManager.LoadAssetGroupAsync(_loadAssetList, delegate
{
UIManager.GetInstance().closeInSceneCenterLoading();
if (!_bOnDestory)
{
Texture mainTexture = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(GetSelectedSkinId().ToString("00"), ResourcesManager.AssetLoadPathType.ClassCharaBase, isfetch: true)) as Texture;
UITexture obj = _viewData.ClassObj.textures[0];
obj.mainTexture = mainTexture;
obj.material = null;
TweenAlpha.Begin(_viewData.BaseObj, 0f, 1f);
}
}));
_viewData.TitlePanel.alpha = 0f;
TweenAlpha.Begin(_viewData.TitlePanel.transform.parent.gameObject, 0.5f, 1f);
StartCoroutine(ForceSetCardPosX());
}
public void SetDeckTypeName(string name)
{
_viewData.DeckTypeNameLabel.gameObject.SetActive(value: true);
_viewData.DeckTypeNameLabel.text = name;
ClassCharaPrm.SetClassLabelSetting(_viewData.DeckTypeNameLabel, GetSelectedClassId());
_viewData.DeckInfoObjs.sprites[0].gameObject.SetActive(value: false);
_viewData.DeckInfoObjs.labels[0].gameObject.SetActive(value: false);
}
public virtual void StartDestory()
{
Object.Destroy(base.gameObject);
}
protected virtual void OnDestroy()
{
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_ARENA_ARCANE_1);
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_ARENA_ARCANE_2);
foreach (Effect effect in _effects)
{
effect.Stop();
}
_effects.Clear();
_bOnDestory = true;
UIManager.GetInstance().closeInSceneCenterLoading();
}
public void RemoveData()
{
for (int i = 0; i < LeftObjs.Count; i++)
{
Object.Destroy(LeftObjs[i]);
}
LeftObjs.Clear();
for (int j = 0; j < RightObjs.Count; j++)
{
Object.Destroy(RightObjs[j]);
}
RightObjs.Clear();
cardObjList.Clear();
cardObjListSpell.Clear();
Toolbox.ResourcesManager.RemoveAssetGroup(_loadAssetList);
_loadAssetList.Clear();
}
private IEnumerator cardChoosePost(int selectedId)
{
UIManager.GetInstance().createInSceneCenterLoading();
yield return new WaitForSeconds(0.5f);
ConnectTask(selectedId);
}
public void NextCardSelect(PICK_SIDE inPickSide)
{
_selectedCardList.Clear();
_selectedCardList.AddRange(Data.RoomTwoPickInfo.deckData.cardIds);
_followerNum = 0;
_amuletNum = 0;
_spellNum = 0;
_viewData.CostCurveClass.Refresh();
for (int i = 0; i < Data.RoomTwoPickInfo.deckData.cardIds.Length; i++)
{
DeckInfoCardNumUpdate(_selectedCardList.Count, 30, Data.RoomTwoPickInfo.deckData.cardIds[i]);
}
CardDecide(inPickSide, isCardListUpdate: false);
}
private IEnumerator cardChoosePost_NonTask()
{
yield return new WaitForSeconds(0.5f);
returnPost();
}
private void returnPost()
{
UIManager.GetInstance().closeInSceneCenterLoading();
StartCoroutine(CardSet());
}
private IEnumerator CardSet()
{
try
{
for (int i = 0; i < _tweenObjectList.Count; i++)
{
if (_tweenObjectList[i] != null)
{
iTween.Stop(_tweenObjectList[i]);
}
}
_tweenObjectList.Clear();
}
catch
{
}
if (_selectedCardList.Count >= 30)
{
StartCoroutine(RunSceneNext());
yield break;
}
LeftObjs.Clear();
RightObjs.Clear();
_viewData.CardContainer[0].SetActive(value: true);
_viewData.CardContainer[1].SetActive(value: true);
if (isCardSetFirst)
{
isCardSetFirst = false;
iTween.MoveTo(_viewData.DeckInfoObjs.gameObject, iTween.Hash("y", -151f, "time", 0.25f, "islocal", true, "easetype", iTween.EaseType.easeOutQuad));
TweenAlpha.Begin(_viewData.DeckInfoObjs.gameObject, 0.25f, 1f);
_tweenObjectList.Add(_viewData.DeckInfoObjs.gameObject);
}
for (int j = 0; j < cardObjList.Count; j++)
{
Object.Destroy(cardObjList[j].CardObj);
}
cardObjList.Clear();
for (int k = 0; k < cardObjListSpell.Count; k++)
{
Object.Destroy(cardObjListSpell[k].CardObj);
}
cardObjListSpell.Clear();
cardPosXInfoList.Clear();
int[] downloadList = new int[4]
{
GetCardInfo().candidateCards[0].cardId1,
GetCardInfo().candidateCards[0].cardId2,
GetCardInfo().candidateCards[1].cardId1,
GetCardInfo().candidateCards[1].cardId2
};
UIManager.GetInstance().CardLoadSelect(base.gameObject, downloadList, scene_layer, is2D: false);
while (!UIManager.GetInstance().getUIBase_CardManager().getCreateEndFlag() || !UIManager.GetInstance().getUIBase_CardManager().isAssetAllReady)
{
yield return null;
}
cardObjList = UIManager.GetInstance().getSelectCardListObjs();
_loadAssetList.AddRange(Toolbox.ResourcesManager.CardListAssetPathList);
Toolbox.ResourcesManager.CardListAssetPathList.Clear();
for (int l = 0; l < 4; l++)
{
GameObject cardObj = cardObjList[l].CardObj;
cardObj.transform.parent = base.transform;
cardObj.GetComponent<CharIdx>().SetCardId(downloadList[l]);
switch (l)
{
case 0:
case 1:
cardObj.transform.parent = _viewData.CardContainer[0].transform;
LeftObjs.Add(cardObj);
break;
case 2:
case 3:
cardObj.transform.parent = _viewData.CardContainer[1].transform;
RightObjs.Add(cardObj);
break;
}
cardObj.transform.localPosition = Vector3.up * 100f;
cardObj.transform.localRotation = Quaternion.Euler(Vector3.up * 90f);
cardObj.transform.localScale = new Vector3(50f, 50f, 50f);
cardObj.transform.Find("CardBase").gameObject.AddComponent<UIButton>().onClick.Add(CreateCardDetailEvent(cardObj));
cardObj.SetActive(value: false);
}
StartCoroutine(RunCardIn());
}
private EventDelegate CreateCardDetailEvent(GameObject cardObject)
{
return new EventDelegate(delegate
{
UiCardDetail.OnPushCardDetailOn(cardObject);
});
}
private IEnumerator RunCardIn()
{
Vector3[] posList = new Vector3[4]
{
new Vector3(-100f, 200f, 0f),
new Vector3(110f, 160f, 100f),
new Vector3(110f, 200f, 0f),
new Vector3(-100f, 160f, 100f)
};
Vector3[] rotList = new Vector3[4]
{
new Vector3(0f, 0f, 5f),
new Vector3(0f, 0f, -5f),
new Vector3(0f, 0f, -5f),
new Vector3(0f, 0f, 5f)
};
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_DL_CARD_APPEAR);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_ARCANE_1, _viewData.CardContainer[0].transform.position);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_ARCANE_2, _viewData.CardContainer[1].transform.position);
int i = 0;
while (i < 4 && LeftObjs.Count != 0 && RightObjs.Count != 0)
{
GameObject gameObject;
Color color;
if (i < 2)
{
gameObject = LeftObjs[i];
color = EFFECT_COLOR_BLUE;
}
else
{
gameObject = RightObjs[i % 2];
color = EFFECT_COLOR_ORANGE;
}
gameObject.SetActive(value: true);
iTween.MoveTo(gameObject, iTween.Hash("position", posList[i], "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
iTween.RotateTo(gameObject, iTween.Hash("rotation", rotList[i], "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo, "oncomplete", ""));
iTween.MoveAdd(gameObject, iTween.Hash("y", Random.value * 0.03f + 0.03f, "time", Random.value * 2f + 2f, "looptype", iTween.LoopType.pingPong, "easetype", iTween.EaseType.easeInOutQuad));
StartCoroutine(CardInAnimationEndAction(gameObject, posList[i], rotList[i]));
Effect effect = ((cardObjList[i].cardType == CardBasePrm.CharaType.NORMAL) ? GameMgr.GetIns().GetEffectMgr().StartBuff(EffectMgr.EffectType.CMN_ARENA_FRAME_1, gameObject) : ((cardObjList[i].cardType != CardBasePrm.CharaType.SPELL) ? GameMgr.GetIns().GetEffectMgr().StartBuff(EffectMgr.EffectType.CMN_ARENA_FRAME_2, gameObject) : GameMgr.GetIns().GetEffectMgr().StartBuff(EffectMgr.EffectType.CMN_ARENA_FRAME_3, gameObject)));
if (effect == null)
{
break;
}
effect.ChangeParticleColor(color);
_effects.Add(effect);
if (i % 2 == 0)
{
yield return new WaitForSeconds(0.1f);
}
int num = i + 1;
i = num;
}
_viewData.SelectBtnObjs[0].gameObject.SetActive(IsButtonEnable);
_viewData.SelectBtnObjs[1].gameObject.SetActive(IsButtonEnable);
IsFirstCardDisp = true;
}
private IEnumerator CardInAnimationEndAction(GameObject cardObject, Vector3 position, Vector3 rotation)
{
yield return new WaitForSeconds(0.5f);
if (cardObject != null)
{
cardObject.transform.localPosition = position;
TweenRotation tweenRotation = cardObject.AddComponent<TweenRotation>();
tweenRotation.from = rotation;
float x = Random.value * 0.04f - 0.02f;
float y = Random.value * 0.08f - 0.04f;
float z = Random.value * 0.02f - 0.01f;
tweenRotation.to = new Vector3(x, y, z);
tweenRotation.style = UITweener.Style.PingPong;
tweenRotation.method = UITweener.Method.EaseInOut;
tweenRotation.duration = Random.value * 2f + 2f;
_tweenObjectList.Add(cardObject);
cardPosXInfoList.Add(new CardPosXInfo(cardObject.transform, position.x));
}
}
private IEnumerator RunCardOut(bool isLeft)
{
if (LeftObjs.Count == 0 || RightObjs.Count == 0)
{
yield break;
}
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_ARENA_ARCANE_1);
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_ARENA_ARCANE_2);
foreach (Effect effect in _effects)
{
effect.Stop();
}
_effects.Clear();
int i = 0;
while (i < 2)
{
if (i != 0)
{
yield return new WaitForSeconds(0.1f);
}
if (LeftObjs.Count == 0 || RightObjs.Count == 0)
{
break;
}
if (isLeft)
{
_viewData.CardTweenTarget[i].transform.SetParent(LeftObjs[i].transform.parent);
_viewData.CardTweenTarget[i].transform.localPosition = LeftObjs[i].transform.localPosition;
_viewData.CardTweenTarget[i].transform.rotation = LeftObjs[i].transform.rotation;
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_DECIDE_1, _viewData.CardTweenTarget[i].transform.localPosition, _viewData.CardTweenTarget[i]);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_DECIDE_3, LeftObjs[i].transform.position);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_DECIDE_2, RightObjs[i].transform.position);
}
else
{
_viewData.CardTweenTarget[i].transform.SetParent(RightObjs[i].transform.parent);
_viewData.CardTweenTarget[i].transform.localPosition = RightObjs[i].transform.localPosition;
_viewData.CardTweenTarget[i].transform.rotation = RightObjs[i].transform.rotation;
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_DECIDE_2, LeftObjs[i].transform.position);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_DECIDE_1, _viewData.CardTweenTarget[i].transform.localPosition, _viewData.CardTweenTarget[i]);
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_DECIDE_3, RightObjs[i].transform.position);
}
LeftObjs[i].SetActive(value: false);
RightObjs[i].SetActive(value: false);
int num = i + 1;
i = num;
}
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_2PICK_SELECT);
try
{
for (int j = 0; j < _tweenObjectList.Count; j++)
{
if (_tweenObjectList[j] != null)
{
iTween.Stop(_tweenObjectList[j]);
}
}
_tweenObjectList.Clear();
}
catch
{
}
Vector3 vector = new Vector3(100f, 100f, 0f);
Vector3 p = new Vector3(340f, 140f, 0f);
if (!isLeft)
{
vector.x *= -1f;
p.x *= -1f;
}
for (int k = 0; k < 2; k++)
{
Vector3[] bezierQuad = MotionUtils.GetBezierQuad(_viewData.CardTweenTarget[k].transform.localPosition, _viewData.CardTweenTarget[k].transform.localPosition + vector, p, 10);
iTween.MoveTo(_viewData.CardTweenTarget[k], iTween.Hash("path", bezierQuad, "time", 0.25f, "islocal", true, "movetopath", false, "easetype", iTween.EaseType.linear));
iTween.RotateTo(_viewData.CardTweenTarget[k], iTween.Hash("z", -180f, "time", 0.25f, "islocal", true, "easetype", iTween.EaseType.linear));
_tweenObjectList.Add(_viewData.CardTweenTarget[k]);
}
GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_ARENA_DECK_1, _viewData.DeckInfoObjs.transform.position);
}
private IEnumerator RunSceneNext()
{
SetUiCardList();
TweenAlpha.Begin(base.gameObject, 0.5f, 0f);
yield return new WaitForSeconds(0.5f);
base.gameObject.SetActive(value: false);
CardSelectEndAction();
}
public void DeckInfoCardNumUpdate(int deckNow, int deckMax, int inCardId)
{
_viewData.DeckInfoObjs.labels[1].text = deckNow.ToString();
_viewData.DeckInfoObjs.labels[2].text = "/" + deckMax;
switch (CardMaster.GetInstance(CardMaster.CardMasterId.Default).GetCardParameterFromId(inCardId).CharType)
{
case CardBasePrm.CharaType.NORMAL:
_followerNum++;
break;
case CardBasePrm.CharaType.FIELD:
case CardBasePrm.CharaType.CHANT_FIELD:
_amuletNum++;
break;
default:
_spellNum++;
break;
}
_viewData.DeckInfoObjs.labels[3].text = _followerNum.ToString();
_viewData.DeckInfoObjs.labels[4].text = _spellNum.ToString();
_viewData.DeckInfoObjs.labels[5].text = _amuletNum.ToString();
_viewData.CostCurveClass.Add(inCardId, withAnim: false);
}
private void OnClickSelectBtn()
{
if (IsButtonEnable)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
PICK_SIDE inPickSide = ((!(UIButton.current.name == "SelectBtn0")) ? PICK_SIDE.RIGHT : PICK_SIDE.LEFT);
CardDecide(inPickSide, isCardListUpdate: true);
}
}
protected void CardDecide(PICK_SIDE inPickSide, bool isCardListUpdate)
{
int num = 0;
int num2 = 0;
switch (inPickSide)
{
case PICK_SIDE.LEFT:
num = GetCardInfo().candidateCards[0].cardId1;
num2 = GetCardInfo().candidateCards[0].cardId2;
StartCoroutine(RunCardOut(isLeft: true));
StartCoroutine(cardChoosePost(GetCardInfo().candidateCards[0].id));
break;
case PICK_SIDE.RIGHT:
num = GetCardInfo().candidateCards[1].cardId1;
num2 = GetCardInfo().candidateCards[1].cardId2;
StartCoroutine(RunCardOut(isLeft: false));
StartCoroutine(cardChoosePost(GetCardInfo().candidateCards[1].id));
break;
}
if (isCardListUpdate)
{
_selectedCardList.Add(num);
_selectedCardList.Add(num2);
DeckInfoCardNumUpdate(_selectedCardList.Count, 30, num);
DeckInfoCardNumUpdate(_selectedCardList.Count, 30, num2);
}
_viewData.SelectBtnObjs[0].gameObject.SetActive(value: false);
_viewData.SelectBtnObjs[1].gameObject.SetActive(value: false);
_viewData.DeckBtnObj.buttons[0].isEnabled = true;
_viewData.DeckBtnObj.labels[0].color = LabelDefine.TEXT_COLOR_BUTTON_ENABLE;
}
private IEnumerator ForceSetCardPosX()
{
while (true)
{
for (int i = 0; i < cardPosXInfoList.Count; i++)
{
CardPosXInfo cardPosXInfo = cardPosXInfoList[i];
Transform transform = cardPosXInfo.Transform;
if (!(transform == null))
{
Vector3 localPosition = transform.localPosition;
localPosition.x = cardPosXInfo.PosX;
transform.localPosition = localPosition;
}
}
yield return null;
}
}
protected abstract CardBasePrm.ClanType GetSelectedClassId();
protected abstract int GetSelectedSkinId();
protected void DeckViewOpen()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
UiCardList.SetActive(in_Active: true);
SetUiCardList();
UiCardList.ResetScroll();
}
protected void SetUiCardList()
{
if (_lastTimeCardNum != _selectedCardList.Count)
{
if (_selectedCardList.Count != 0)
{
UiCardList.RemoveData();
}
_selectedCardList = UIManager.GetInstance().getUIBase_CardManager().SortIDList(_selectedCardList, CardMaster.CardMasterId.Default);
for (int i = 0; i < _selectedCardList.Count; i++)
{
UiCardList.addScrollItem(_selectedCardList[i]);
}
_lastTimeCardNum = _selectedCardList.Count;
}
}
protected abstract Deck GetDeckInfo();
protected abstract CandidateCardInfo GetCardInfo();
protected abstract void CardSelectEndAction();
protected abstract void ConnectTask(int selectedCardId);
}