Files
SVSimServer/SVSim.BattleEngine/Engine/CardDetailUI.cs
gamer147 0d9d8acae0 feat(battle-engine): M1 auto-copy closure (782 battle-logic files)
Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
2026-06-05 16:57:20 -04:00

2621 lines
89 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using Cute;
using UnityEngine;
using Wizard;
using Wizard.Battle.View;
public class CardDetailUI : UIBase
{
private class CardVoiceData
{
private const string ACC_CARD_ID_GROUP = "ACC_CARD_ID";
private const string ACC_CARD_ID_REGEX = "card_id=(?<ACC_CARD_ID>80\\d*)";
public readonly string MainVoiceId;
public readonly List<string> _acceleratedVoiceIdList = new List<string>();
public readonly List<string> _voiceListBeforeEvo;
public readonly List<string> _voiceListAfterEvo;
private CardMaster.CardMasterId _cardMasterId;
private List<VoiceDictionary> _splitVoiceList;
public CardVoiceData(CardParameter cardParam, CardMaster.CardMasterId cardMasterId)
{
_cardMasterId = cardMasterId;
VoiceDictionaries voiceDictionaries = new VoiceDictionaries(cardParam.CardId, _cardMasterId);
MainVoiceId = voiceDictionaries.VoiceId;
List<string> list = new List<string>();
List<string> normalPlayVoices = voiceDictionaries.GetNormalPlayVoices();
list.AddRange(normalPlayVoices);
list.AddRange(voiceDictionaries.atkVoices.GetAllVoiceList());
list.AddRange(voiceDictionaries.destroyVoices.GetAllVoiceList());
AddVoiceList(list, voiceDictionaries.skillVoices);
SkillOptionValue skillOptionValue = new SkillOptionValue(cardParam.SkillOption);
string option = skillOptionValue.GetOption(SkillFilterCreator.ContentKeyword.skill);
if (!string.IsNullOrEmpty(option))
{
Skill_attach_skill.AttachOptionInfo attachOptionInfo = new Skill_attach_skill.AttachOptionInfo(option);
if (attachOptionInfo.Voice != string.Empty)
{
VoiceDictionary item = new VoiceDictionary(attachOptionInfo.Voice);
voiceDictionaries.attachSkillVoices.Add(item);
}
}
bool flag = skillOptionValue.GetOption(SkillFilterCreator.ContentKeyword.is_evolve, "false") == "true";
if (voiceDictionaries.attachSkillVoices.Count > 0 && !flag)
{
AddVoiceList(list, voiceDictionaries.attachSkillVoices, list);
}
MatchCollection matchCollection = new Regex("card_id=(?<ACC_CARD_ID>80\\d*)").Matches(cardParam.SkillOption);
_acceleratedVoiceIdList.Clear();
for (int i = 0; i < matchCollection.Count; i++)
{
VoiceDictionaries voiceDictionaries2 = new VoiceDictionaries(int.Parse(matchCollection[i].Groups["ACC_CARD_ID"].Value), _cardMasterId);
list.AddRange(voiceDictionaries2.playVoices.GetAllVoiceList());
string voiceId = voiceDictionaries2.VoiceId;
if (!string.IsNullOrEmpty(voiceId))
{
_acceleratedVoiceIdList.Add(voiceId);
}
}
_voiceListBeforeEvo = GetPlayableVoiceList(list);
List<string> list2 = new List<string>();
list2.AddRange(voiceDictionaries.evoVoices.GetAllVoiceList());
list2.AddRange(voiceDictionaries.evoAtkVoices.GetAllVoiceList());
list2.AddRange(voiceDictionaries.evoDestroyVoices.GetAllVoiceList());
AddVoiceList(list2, voiceDictionaries.evoSkillVoices, list);
if (voiceDictionaries.attachSkillVoices.Count > 0 && flag)
{
AddVoiceList(list2, voiceDictionaries.attachSkillVoices, list2);
}
_voiceListAfterEvo = GetPlayableVoiceList(list2);
}
private List<string> GetPlayableVoiceList(List<string> voiceList)
{
List<string> list = new List<string>();
for (int i = 0; i < voiceList.Count; i++)
{
if (!Data.Master.CardDetailVoiceIgnoreList.Contains(voiceList[i]))
{
list.Add(voiceList[i]);
}
}
return list;
}
private void AddVoiceList(List<string> tempVoiceList, List<VoiceDictionary> voices, List<string> normalVoiceList = null)
{
if (_splitVoiceList != null && normalVoiceList != null)
{
if (voices == null)
{
voices = _splitVoiceList;
}
else
{
for (int num = _splitVoiceList.Count - 1; num >= 0; num--)
{
voices.Insert(0, _splitVoiceList[num]);
}
}
}
if (voices == null || voices.Count <= 0)
{
return;
}
for (int i = 0; i < voices.Count; i++)
{
string[] allVoiceList = voices[i].GetAllVoiceList();
foreach (string text in allVoiceList)
{
if (text.Contains("none") || tempVoiceList.Contains(text))
{
continue;
}
if (text.Contains('|'))
{
if (_splitVoiceList == null)
{
_splitVoiceList = new List<VoiceDictionary>();
_splitVoiceList.Add(voices[i]);
}
else if (!_splitVoiceList.Contains(voices[i]))
{
_splitVoiceList.Add(voices[i]);
}
string[] array = text.Split('|');
if (array.Length == 2)
{
string item = ((normalVoiceList == null) ? array[0] : array[1]);
tempVoiceList.Add(item);
}
}
else if (normalVoiceList == null)
{
tempVoiceList.Add(text);
}
else if (!normalVoiceList.Contains(text))
{
tempVoiceList.Add(text);
}
}
}
}
}
private class CardVoiceManager
{
private int _cardId;
private bool _isPlayEvoVoice;
private CardVoiceData _voiceData;
private int _playIndex;
private List<string> _playVoiceList;
private List<string> _loadVoiceIdList = new List<string>();
private List<string> _unloadVoiceIdList = new List<string>();
private List<string> _loadedVoiceIdList = new List<string>();
private const string VOICE_DATA_PREFIX = "vo_";
public void SequentiallyPlay(CardParameter cardParam, bool isPlayEvoVoice, CardMaster.CardMasterId cardMasterId)
{
int cardId = cardParam.CardId;
if (cardId == _cardId)
{
if (isPlayEvoVoice != _isPlayEvoVoice)
{
_isPlayEvoVoice = isPlayEvoVoice;
_playIndex = 0;
_playVoiceList = (isPlayEvoVoice ? _voiceData._voiceListAfterEvo : _voiceData._voiceListBeforeEvo);
}
else
{
_playIndex = (_playIndex + 1) % _playVoiceList.Count;
}
Stop();
Play();
return;
}
_cardId = cardId;
_isPlayEvoVoice = isPlayEvoVoice;
CardVoiceData voiceData = _voiceData;
_voiceData = new CardVoiceData(cardParam, cardMasterId);
_playIndex = 0;
_playVoiceList = (isPlayEvoVoice ? _voiceData._voiceListAfterEvo : _voiceData._voiceListBeforeEvo);
float unloadWaitTime = Stop();
LoadAndUnload(_voiceData, voiceData, unloadWaitTime, delegate
{
Play();
});
}
private void Play()
{
GameMgr.GetIns().GetSoundMgr().PlayVoiceScenario("vo_" + _playVoiceList[_playIndex]);
}
public float Stop()
{
return GameMgr.GetIns().GetSoundMgr().StopVoiceAll();
}
private void LoadAndUnload(CardVoiceData loadData, CardVoiceData unloadData, float unloadWaitTime = 0f, Action onFinishLoad = null)
{
_loadVoiceIdList.Clear();
if (loadData != null)
{
_loadVoiceIdList.Add(loadData.MainVoiceId);
_loadVoiceIdList.AddRange(loadData._acceleratedVoiceIdList);
_loadVoiceIdList = _loadVoiceIdList.Distinct().ToList();
}
_unloadVoiceIdList.Clear();
if (unloadData != null)
{
_unloadVoiceIdList.Add(unloadData.MainVoiceId);
_unloadVoiceIdList.AddRange(unloadData._acceleratedVoiceIdList);
_unloadVoiceIdList = _unloadVoiceIdList.Distinct().ToList();
}
List<string> list = _loadVoiceIdList.Intersect(_unloadVoiceIdList).ToList();
if (list.Count > 0)
{
_loadVoiceIdList = _loadVoiceIdList.Except(list).ToList();
_unloadVoiceIdList = _unloadVoiceIdList.Except(list).ToList();
}
SoundMgr soundMgr = GameMgr.GetIns().GetSoundMgr();
int loadTargetCount = _loadVoiceIdList.Count;
if (loadTargetCount <= 0)
{
onFinishLoad.Call();
}
else
{
int loadedCount = 0;
for (int i = 0; i < loadTargetCount; i++)
{
string text = _loadVoiceIdList[i];
soundMgr.LoadVoice("vo_" + text, delegate
{
if (++loadedCount == loadTargetCount)
{
onFinishLoad.Call();
}
});
}
_loadedVoiceIdList.AddRange(_loadVoiceIdList);
}
for (int num = 0; num < _unloadVoiceIdList.Count; num++)
{
string unloadId = _unloadVoiceIdList[num];
UIManager.GetInstance().StartCoroutine(Timer.DelayMethod(unloadWaitTime, delegate
{
soundMgr.UnloadVoice("vo_" + unloadId);
}));
_loadedVoiceIdList.Remove(unloadId);
}
}
public void UnloadAll(float unloadWaitTime = 0f)
{
SoundMgr soundMgr = GameMgr.GetIns().GetSoundMgr();
for (int i = 0; i < _loadedVoiceIdList.Count; i++)
{
string unloadId = _loadedVoiceIdList[i];
UIManager.GetInstance().StartCoroutine(Timer.DelayMethod(unloadWaitTime, delegate
{
soundMgr.UnloadVoice("vo_" + unloadId);
}));
}
_loadedVoiceIdList.Clear();
}
}
private static readonly string RELATION_CARD_DISABLE_CARD_ID_HEADER = "80";
private static readonly int[] RELATION_CARD_BUTTON_DISABLE_CARD_IDS = new int[2] { 810014010, 810034010 };
private readonly List<string> RELATION_CARD_SKILLOPTION_EXCLUDED_OPTIONS = new List<string> { "effect_path", "se_path", "skill_voice" };
private readonly char[] RELATION_CARD_SKILLOPTION_SEPARATORS = new char[2] { '(', ')' };
[SerializeField]
private GameObject DarkPanel;
[SerializeField]
private GameObject Frame;
[SerializeField]
private GameObject CardTexture;
[SerializeField]
private GameObject CardNum;
[SerializeField]
private GameObject CardText;
[SerializeField]
private GameObject CardViewBG;
[SerializeField]
private GameObject CardShadow;
[SerializeField]
private GameObject UnitCardStatusObj;
[SerializeField]
private GameObject UnitCardIntroductionObj;
[SerializeField]
private GameObject SettingCardStatusObj;
[SerializeField]
private GameObject SettingCardIntroductionObj;
[SerializeField]
private GameObject SpellCardStatusObj;
[SerializeField]
private GameObject SpellCardIntroductionObj;
[SerializeField]
private UIScrollView UnitCardTextScrollView;
[SerializeField]
private UIScrollView SpellCardTextScrollView;
[SerializeField]
private UIScrollView SettingCardTextScrollView;
[SerializeField]
private UILabel UnitCardSkill;
[SerializeField]
private UILabel UnitCardEvoSkill;
[SerializeField]
private UILabel UnitCardAtkRight;
[SerializeField]
private UILabel UnitCardLifeRight;
[SerializeField]
private UILabel UnitCardEvoAtkRight;
[SerializeField]
private UILabel UnitCardEvoLifeRight;
[SerializeField]
private UILabel UnitCardIntroduction;
[SerializeField]
private UILabel SpellCardSkill;
[SerializeField]
private UILabel SpellCardIntroduction;
[SerializeField]
private UILabel SettingCardSkill;
[SerializeField]
private UILabel SettingCardIntroduction;
[SerializeField]
private GameObject ReturnButton;
[SerializeField]
private GameObject CardIntroductionButton;
[SerializeField]
private UIButton _favoriteButton;
[SerializeField]
private UIButton _voiceButton;
[SerializeField]
private GameObject CardEvolButton;
[SerializeField]
private UIButton _premiumCardConversionButton;
[SerializeField]
private GameObject RelationWrapperObj;
[SerializeField]
private GameObject RelationCardButton;
[SerializeField]
private GameObject RightButton;
[SerializeField]
private GameObject LeftButton;
[SerializeField]
private GameObject RelationBackButton;
[SerializeField]
private UILabel DialogTitleLabel;
[SerializeField]
private UILabel _cardNumLabel;
[SerializeField]
private UILabel _nameValueLabel;
[SerializeField]
private UILabel _classValueLabel;
[SerializeField]
private UILabel _typeValueLabel;
[SerializeField]
private UILabel _redEtherHaveValueLabel;
[SerializeField]
private UILabel _evolutionButtonLabel;
[SerializeField]
private GameObject _cardVoiceLabelRoot;
[SerializeField]
private UILabel _cardVoiceValueLabel;
[SerializeField]
private GameObject _cardSetLabelRoot;
[SerializeField]
private UILabel _cardSetValueLabel;
[SerializeField]
private GameObject RedEtherFrame;
[SerializeField]
private GameObject RedEtherIcon;
[SerializeField]
private GameObject QuestionMark;
[SerializeField]
private PurchaseConfirm PurchaseConfirmPrefab;
[SerializeField]
private PremiumCardConversionDialogParts _premiumCardConversionDialogPrefab;
[SerializeField]
private CardCraftPanel _craftPanel;
[SerializeField]
private UIPanel[] _allPanel;
[SerializeField]
private UIButton _blankColliderButton;
private GameObject _rotationOnlyIconSpell;
private GameObject _rotationOnlyIconFollower;
private GameObject _rotationOnlyIconAmulet;
private static readonly float kCARD_SCALE = 90f;
private static readonly float kCARD_POS_Z = -4f;
private readonly Vector3 CardViewScale = new Vector3(110f, 110f, 1f);
private const float CARD_ANIMATION_TIME = 0.3f;
private const float CARD_ROTATION = 0f;
private static readonly Color CARD_LIQUEFY_PARTICLE_COLOR = new Color(1f, 0.2509804f, 0.2509804f);
private static readonly Color CARD_CREATE_PARTICLE_COLOR = new Color(1f, 0.2509804f, 0.2509804f);
private static readonly Color PREMIUM_CARD_CONVERSION_PARTICLE_COLOR = new Color(14f / 85f, 32f / 85f, 0.5568628f);
private static readonly Vector3 CARD_DESTROY_PARTICLE_OFFSET = new Vector3(0f, 0f, -1f);
private const string EVO_EFFECT_PATH = "cmn_deckedit_evo_1";
private const float EVO_EFFECT_SCALE = 600f;
private const float FAVORITE_BUTTON_INVALID_TIME = 0.9f;
private const int PREMIUM_CARD_CONVERSION_PARTICLE_NUM = 4;
private const int KEYWORD_DIALOG_DEPTH = 120;
private const int KEYWORD_DIALOG_POSITION_Z = -5;
private const int KEYWORD_DIALOG_POSITION_Y = 0;
private static readonly Vector3 KEYWORD_DIALOG_BACK_VIEW_POSITION = new Vector3(0f, 0f, -5f);
private GameObject UnitCardObject;
private GameObject SpellCardObject;
private GameObject FieldCardObject;
private GameObject ViewCardObject;
private UILabel UnitCost;
private UILabel UnitAtk;
private UILabel UnitLife;
private UILabel UnitName;
private UILabel SpellCost;
private UILabel SpellName;
private UILabel FieldCost;
private UILabel FieldName;
private BoxCollider UnitCardCollider;
private BoxCollider SpellCardCollider;
private BoxCollider FieldCardCollider;
private bool _isFavorite;
private bool _isFavoriteButtonEnabled;
private bool _isEvolCard;
private bool _isShowCardAblityText = true;
private bool _shouldResetTextScrollView;
private bool isCardViewMode;
private bool isAnimation;
[SerializeField]
private TextLineCreater _cardSkillTextLineCreater;
[SerializeField]
private TextLineCreater _cardEvoSkillTextLineCreater;
[SerializeField]
private TextLineCreater _cardSpellTextLineCreater;
[SerializeField]
private TextLineCreater _cardAmuletTextLineCreater;
[SerializeField]
private GameObject _evolveInfoObjectRoot;
[SerializeField]
private UILabel _normalTitleLavel;
private int _relationIndex;
private List<int> _relationCardIds = new List<int>();
private Dictionary<int, List<int>> _relationCardParentDict = new Dictionary<int, List<int>>();
private GameObject _relationCardBaseGameObject;
private int LayerDetail = 14;
private bool isDetailOn;
private ParticleSystem _evolEffect;
private bool IsAnimationPlaying;
private DialogBase _craftDialog;
private DialogBase _keyWordDialog;
private List<string> _assetPathList = new List<string>();
private List<string> _assetTokenPathList = new List<string>();
private CardVoiceManager _cardVoiceManager = new CardVoiceManager();
private bool _isAbleTapDialogObject = true;
private static Shader _normalShader = null;
private static Shader _premiumShader = null;
private DialogBase _dialogForClose;
private Material _cardMaterial;
private int _originalCardId;
private CardMaster.CardMasterId _cardMasterId;
private UIButton[] _enableButtonList;
private IFormatBehavior _formatBehaviorForCardPoolChange;
public Action<int> OnCardSellId;
public Action OnCardBuy;
public Action OnClose;
public Action<Vector2> OnDragCard;
public Action<CardParameter> OnLiquefyAllCard;
public Action OnChangeCardFavoriteState;
public Action<CardParameter> OnConvertedPremiumCard;
public Action OnCreateFirstCard;
private bool _isCardTextDialogLayerSet = true;
private bool _isOwnCardNum;
public CardParameter CardData { get; private set; }
public Action OnDetailCardUpdate { get; set; }
public Action OnCardNumChange { get; set; }
private bool IsAbleToCraft
{
get
{
if (PlayerStaticData.UserRedEtherCount >= CardData.UseRedEther && !CardData.IsFoil)
{
if (GetPossessionCardNum(isIncludingSpotCard: true) >= 3)
{
return GetPossessionCardNum() == 0;
}
return true;
}
return false;
}
}
private bool IsAbleToDestruct => GetPossessionCardNum() > 0;
public bool IsShowFlavorTextButton { get; set; }
public bool IsShowFavoriteButton { get; set; }
public bool IsShowVoiceButton { get; set; }
public bool IsShowEvolutionButton { get; set; }
public bool IsShowCraftButtons { get; set; }
public bool IsShowPremiumCardConversionButton { get; set; }
public bool IsPopularityVote { get; set; }
public bool IsCardTextDialogLayerSet
{
get
{
return _isCardTextDialogLayerSet;
}
set
{
_isCardTextDialogLayerSet = value;
}
}
public bool IsOwnCardNum
{
get
{
return _isOwnCardNum;
}
set
{
_isOwnCardNum = value;
}
}
public bool IsShortageUI { get; set; }
public bool IsRelationCardViewing => RelationWrapperObj.activeSelf;
public bool LeftButtonVisible
{
set
{
LeftButton.SetActive(value);
}
}
public bool RightButtonVisible
{
set
{
RightButton.SetActive(value);
}
}
public bool IsEvolCard => _isEvolCard;
public bool IsEnableShowDetail
{
get
{
if (IsAnimationPlaying)
{
return false;
}
return true;
}
}
private void OnDisable()
{
if (isCardViewMode)
{
RemoveCardViewMode();
}
isDetailOn = false;
}
public void Hide()
{
base.gameObject.SetActive(value: false);
if (_keyWordDialog != null)
{
_keyWordDialog.Close();
}
if (IsAnimationPlaying)
{
iTween.Stop(UnitCardObject);
iTween.Stop(SpellCardObject);
iTween.Stop(FieldCardObject);
OnAnimationOver();
}
DestroyDialogObject();
}
protected override void OnDestroy()
{
Toolbox.ResourcesManager.RemoveAssetGroup(_assetPathList);
_assetPathList.Clear();
Toolbox.ResourcesManager.RemoveAssetGroup(_assetTokenPathList);
_assetTokenPathList.Clear();
float unloadWaitTime = _cardVoiceManager.Stop();
_cardVoiceManager.UnloadAll(unloadWaitTime);
if (_keyWordDialog != null)
{
_keyWordDialog.Close();
}
if (_cardMaterial != null)
{
UnityEngine.Object.Destroy(_cardMaterial);
}
DestroyDialogObject();
base.OnDestroy();
}
private void DestroyDialogObject()
{
if (_dialogForClose != null)
{
UnityEngine.Object.Destroy(_dialogForClose.gameObject);
_dialogForClose = null;
}
}
public void Initialize(int DetailLayer, CardMaster.CardMasterId cardMasterId, IFormatBehavior formatBehaviorForCardPoolChange = null)
{
_formatBehaviorForCardPoolChange = formatBehaviorForCardPoolChange;
ChangeCardMaster(cardMasterId);
LayerDetail = DetailLayer;
base.gameObject.layer = LayerDetail;
InitializeCard();
SetButtonEvent();
SetDisableArrowButton();
_enableButtonList = GetComponentsInChildren<UIButton>(includeInactive: true);
}
public void ChangeCardMaster(CardMaster.CardMasterId cardMasterId)
{
_cardMasterId = cardMasterId;
}
private void InitializeCard()
{
InitializeCardObject();
InitializeCardMesh();
InitializeCardDecoration();
}
private void InitializeCardObject()
{
UnitCardObject = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath("Unit", ResourcesManager.AssetLoadPathType.HandCard, isfetch: true)) as GameObject;
SpellCardObject = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath("Spell", ResourcesManager.AssetLoadPathType.HandCard, isfetch: true)) as GameObject;
FieldCardObject = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath("Field", ResourcesManager.AssetLoadPathType.HandCard, isfetch: true)) as GameObject;
UnitCardObject = NGUITools.AddChild(CardTexture, UnitCardObject);
UnitCardObject.SetActive(value: false);
SpellCardObject = NGUITools.AddChild(CardTexture, SpellCardObject);
SpellCardObject.SetActive(value: false);
FieldCardObject = NGUITools.AddChild(CardTexture, FieldCardObject);
FieldCardObject.SetActive(value: false);
Transform obj = SpellCardObject.transform;
Vector3 localPosition = (FieldCardObject.transform.localPosition = new Vector3(0f, 0f, -500f));
obj.localPosition = localPosition;
UIManager.GetInstance().SetLayerRecursive(UnitCardObject.transform, LayerDetail);
UIManager.GetInstance().SetLayerRecursive(SpellCardObject.transform, LayerDetail);
UIManager.GetInstance().SetLayerRecursive(FieldCardObject.transform, LayerDetail);
UnitCardCollider = UnitCardObject.AddComponent<BoxCollider>();
SpellCardCollider = SpellCardObject.AddComponent<BoxCollider>();
FieldCardCollider = FieldCardObject.AddComponent<BoxCollider>();
BoxCollider unitCardCollider = UnitCardCollider;
BoxCollider spellCardCollider = SpellCardCollider;
Vector3 vector2 = (FieldCardCollider.size = new Vector3(3.6f, 5.5f, 1f));
localPosition = (spellCardCollider.size = vector2);
unitCardCollider.size = localPosition;
UIWidget uIWidget = UnitCardObject.AddComponent<UIWidget>();
UIWidget uIWidget2 = SpellCardObject.AddComponent<UIWidget>();
UIWidget uIWidget3 = FieldCardObject.AddComponent<UIWidget>();
int num = (uIWidget3.depth = 1);
int depth = (uIWidget2.depth = num);
uIWidget.depth = depth;
GameObject prefab = Resources.Load("Prefab/CardDeco/RotationOnlyIcon") as GameObject;
_rotationOnlyIconSpell = NGUITools.AddChild(SpellCardObject, prefab);
_rotationOnlyIconFollower = NGUITools.AddChild(UnitCardObject, prefab);
_rotationOnlyIconAmulet = NGUITools.AddChild(FieldCardObject, prefab);
}
private void InitializeCardMesh()
{
MeshFilter[] componentsInChildren = UnitCardObject.GetComponentsInChildren<MeshFilter>();
Mesh sharedMesh = Toolbox.ResourcesManager.LoadObject<Mesh>(Toolbox.ResourcesManager.GetAssetTypePath("md_card_unit", ResourcesManager.AssetLoadPathType.CardFrameMesh, isfetch: true));
Mesh sharedMesh2 = Toolbox.ResourcesManager.LoadObject<Mesh>(Toolbox.ResourcesManager.GetAssetTypePath("md_card_unit_low", ResourcesManager.AssetLoadPathType.CardFrameMesh, isfetch: true));
componentsInChildren[0].sharedMesh = sharedMesh;
componentsInChildren[1].sharedMesh = sharedMesh2;
Quaternion quaternion = Quaternion.Euler(0f, componentsInChildren[0].transform.rotation.y + 180f, 0f);
Transform obj = componentsInChildren[0].transform;
Quaternion rotation = (componentsInChildren[1].transform.rotation = quaternion);
obj.rotation = rotation;
MeshFilter[] componentsInChildren2 = SpellCardObject.GetComponentsInChildren<MeshFilter>();
Mesh sharedMesh3 = Toolbox.ResourcesManager.LoadObject<Mesh>(Toolbox.ResourcesManager.GetAssetTypePath("md_card_spell", ResourcesManager.AssetLoadPathType.CardFrameMesh, isfetch: true));
Mesh sharedMesh4 = Toolbox.ResourcesManager.LoadObject<Mesh>(Toolbox.ResourcesManager.GetAssetTypePath("md_card_spell_low", ResourcesManager.AssetLoadPathType.CardFrameMesh, isfetch: true));
componentsInChildren2[0].sharedMesh = sharedMesh3;
componentsInChildren2[1].sharedMesh = sharedMesh4;
Quaternion quaternion3 = Quaternion.Euler(0f, componentsInChildren2[0].transform.rotation.y + 180f, 0f);
Transform obj2 = componentsInChildren2[0].transform;
rotation = (componentsInChildren2[1].transform.rotation = quaternion3);
obj2.rotation = rotation;
MeshFilter[] componentsInChildren3 = FieldCardObject.GetComponentsInChildren<MeshFilter>();
Mesh sharedMesh5 = Toolbox.ResourcesManager.LoadObject<Mesh>(Toolbox.ResourcesManager.GetAssetTypePath("md_card_field", ResourcesManager.AssetLoadPathType.CardFrameMesh, isfetch: true));
Mesh sharedMesh6 = Toolbox.ResourcesManager.LoadObject<Mesh>(Toolbox.ResourcesManager.GetAssetTypePath("md_card_field_low", ResourcesManager.AssetLoadPathType.CardFrameMesh, isfetch: true));
componentsInChildren3[0].sharedMesh = sharedMesh5;
componentsInChildren3[1].sharedMesh = sharedMesh6;
Quaternion quaternion5 = Quaternion.Euler(0f, componentsInChildren3[0].transform.rotation.y + 180f, 0f);
Transform obj3 = componentsInChildren3[0].transform;
rotation = (componentsInChildren3[1].transform.rotation = quaternion5);
obj3.rotation = rotation;
}
private void InitializeCardDecoration()
{
GameObject prefab = Resources.Load("Prefab/CardDeco/Cost") as GameObject;
GameObject prefab2 = Resources.Load("Prefab/CardDeco/Atk") as GameObject;
GameObject prefab3 = Resources.Load("Prefab/CardDeco/Life") as GameObject;
GameObject prefab4 = Resources.Load("Prefab/CardDeco/Name") as GameObject;
GameObject gameObject = NGUITools.AddChild(UnitCardObject, prefab);
GameObject gameObject2 = NGUITools.AddChild(UnitCardObject, prefab2);
GameObject gameObject3 = NGUITools.AddChild(UnitCardObject, prefab3);
GameObject gameObject4 = NGUITools.AddChild(UnitCardObject, prefab4);
GameObject gameObject5 = NGUITools.AddChild(SpellCardObject, prefab);
GameObject gameObject6 = NGUITools.AddChild(SpellCardObject, prefab4);
GameObject gameObject7 = NGUITools.AddChild(FieldCardObject, prefab);
GameObject gameObject8 = NGUITools.AddChild(FieldCardObject, prefab4);
Transform obj = gameObject.transform;
Transform obj2 = gameObject5.transform;
Vector3 vector = (gameObject7.transform.localPosition = Global.POSITION_COST_ICON);
Vector3 localPosition = (obj2.localPosition = vector);
obj.localPosition = localPosition;
Transform obj3 = gameObject.transform;
Transform obj4 = gameObject5.transform;
vector = (gameObject7.transform.localScale = Global.SCALE_CARD_ICON);
localPosition = (obj4.localScale = vector);
obj3.localScale = localPosition;
Transform obj5 = gameObject4.transform;
Transform obj6 = gameObject6.transform;
vector = (gameObject8.transform.localPosition = Global.POSITION_NAME_TEXT);
localPosition = (obj6.localPosition = vector);
obj5.localPosition = localPosition;
Transform obj7 = gameObject4.transform;
Transform obj8 = gameObject6.transform;
vector = (gameObject8.transform.localScale = Global.SCALE_NAME_TEXT);
localPosition = (obj8.localScale = vector);
obj7.localScale = localPosition;
gameObject2.transform.localPosition = Global.POSITION_ATK_ICON;
gameObject3.transform.localPosition = Global.POSITION_LIFE_ICON;
Transform obj9 = gameObject2.transform;
localPosition = (gameObject3.transform.localScale = Global.SCALE_CARD_ICON);
obj9.localScale = localPosition;
UnitCost = gameObject.transform.Find("CostLabel").GetComponent<UILabel>();
UnitAtk = gameObject2.transform.Find("AtkLabel").GetComponent<UILabel>();
UnitLife = gameObject3.transform.Find("LifeLabel").GetComponent<UILabel>();
UnitName = gameObject4.transform.Find("NameLabel").GetComponent<UILabel>();
SpellCost = gameObject5.transform.Find("CostLabel").GetComponent<UILabel>();
SpellName = gameObject6.transform.Find("NameLabel").GetComponent<UILabel>();
FieldCost = gameObject7.transform.Find("CostLabel").GetComponent<UILabel>();
FieldName = gameObject8.transform.Find("NameLabel").GetComponent<UILabel>();
}
private void SetButtonEvent()
{
UIEventListener uIEventListener = UIEventListener.Get(ReturnButton);
uIEventListener.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener.onClick, new UIEventListener.VoidDelegate(OnPushCardDetailOn));
UIEventListener uIEventListener2 = UIEventListener.Get(_blankColliderButton.gameObject);
uIEventListener2.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener2.onClick, new UIEventListener.VoidDelegate(OnPushCardDetailOn));
UIEventListener uIEventListener3 = UIEventListener.Get(DarkPanel.gameObject);
uIEventListener3.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener3.onClick, new UIEventListener.VoidDelegate(OnPushCardDetailOn));
UIEventListener uIEventListener4 = UIEventListener.Get(Frame.gameObject);
uIEventListener4.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener4.onClick, new UIEventListener.VoidDelegate(OnPushCardDetailOn));
UIEventListener uIEventListener5 = UIEventListener.Get(CardIntroductionButton);
uIEventListener5.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener5.onClick, new UIEventListener.VoidDelegate(OnClickChangeCardTextTypeButton));
UIEventListener uIEventListener6 = UIEventListener.Get(CardViewBG);
uIEventListener6.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener6.onClick, new UIEventListener.VoidDelegate(OnCloseCardViewMode));
UIEventListener uIEventListener7 = UIEventListener.Get(UnitCardObject);
uIEventListener7.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener7.onClick, new UIEventListener.VoidDelegate(OnOpenCardViewMode));
UIEventListener uIEventListener8 = UIEventListener.Get(SpellCardObject);
uIEventListener8.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener8.onClick, new UIEventListener.VoidDelegate(OnOpenCardViewMode));
UIEventListener uIEventListener9 = UIEventListener.Get(FieldCardObject);
uIEventListener9.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener9.onClick, new UIEventListener.VoidDelegate(OnOpenCardViewMode));
UIEventListener uIEventListener10 = UIEventListener.Get(_favoriteButton.gameObject);
uIEventListener10.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener10.onClick, new UIEventListener.VoidDelegate(OnClickFavoriteButton));
UIEventListener uIEventListener11 = UIEventListener.Get(_voiceButton.gameObject);
uIEventListener11.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener11.onClick, new UIEventListener.VoidDelegate(OnClickVoiceButton));
UIEventListener uIEventListener12 = UIEventListener.Get(_premiumCardConversionButton.gameObject);
uIEventListener12.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener12.onClick, new UIEventListener.VoidDelegate(OnClickPremiumCardConversionButton));
UIEventListener uIEventListener13 = UIEventListener.Get(CardEvolButton);
uIEventListener13.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener13.onClick, new UIEventListener.VoidDelegate(OnClickEvolutionButton));
UIEventListener uIEventListener14 = UIEventListener.Get(UnitCardObject);
uIEventListener14.onDrag = (UIEventListener.VectorDelegate)Delegate.Combine(uIEventListener14.onDrag, new UIEventListener.VectorDelegate(OnSwipeCard));
UIEventListener uIEventListener15 = UIEventListener.Get(SpellCardObject);
uIEventListener15.onDrag = (UIEventListener.VectorDelegate)Delegate.Combine(uIEventListener15.onDrag, new UIEventListener.VectorDelegate(OnSwipeCard));
UIEventListener uIEventListener16 = UIEventListener.Get(FieldCardObject);
uIEventListener16.onDrag = (UIEventListener.VectorDelegate)Delegate.Combine(uIEventListener16.onDrag, new UIEventListener.VectorDelegate(OnSwipeCard));
UIEventListener uIEventListener17 = UIEventListener.Get(Frame);
uIEventListener17.onDrag = (UIEventListener.VectorDelegate)Delegate.Combine(uIEventListener17.onDrag, new UIEventListener.VectorDelegate(OnSwipeCard));
UIEventListener uIEventListener18 = UIEventListener.Get(CardText);
uIEventListener18.onDrag = (UIEventListener.VectorDelegate)Delegate.Combine(uIEventListener18.onDrag, new UIEventListener.VectorDelegate(OnSwipeCard));
UIEventListener uIEventListener19 = UIEventListener.Get(QuestionMark);
uIEventListener19.onDrag = (UIEventListener.VectorDelegate)Delegate.Combine(uIEventListener19.onDrag, new UIEventListener.VectorDelegate(OnSwipeCard));
UIEventListener uIEventListener20 = UIEventListener.Get(RelationCardButton);
uIEventListener20.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener20.onClick, new UIEventListener.VoidDelegate(OnPushRelationCardButton));
UIEventListener uIEventListener21 = UIEventListener.Get(RelationBackButton);
uIEventListener21.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener21.onClick, new UIEventListener.VoidDelegate(OnPushRelationBackButton));
UIEventListener uIEventListener22 = UIEventListener.Get(RightButton);
uIEventListener22.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener22.onClick, new UIEventListener.VoidDelegate(OnPushRightButton));
UIEventListener uIEventListener23 = UIEventListener.Get(LeftButton);
uIEventListener23.onClick = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener23.onClick, new UIEventListener.VoidDelegate(OnPushLeftButton));
Action onClickDestructBtn = delegate
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
CreateDialog(StartCardDestruct, buy: false);
};
Action onClickCreateBtn = delegate
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
CreateDialog(StartCardCraft, buy: true);
};
_craftPanel.Init(onClickCreateBtn, onClickDestructBtn);
UIEventListener.Get(QuestionMark).onClick = delegate
{
if (_isAbleTapDialogObject)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
UILabel keyWordLabel = GetKeyWordLabel();
string empty = string.Empty;
empty = ((!CardData.IsEvolveChoiceCard) ? (CardData.ConvertedSkillDescription + CardData.ConvertedEvoSkillDescription) : CardData.ConvertedEvoSkillDescription);
_keyWordDialog = BattlePlayerView.CreateKeyPanel(empty, keyWordLabel, _cardMasterId);
UIManager.ViewScene currentScene = UIManager.GetInstance().GetCurrentScene();
if ((currentScene == UIManager.ViewScene.Battle || currentScene == UIManager.ViewScene.LoginBonus || currentScene == UIManager.ViewScene.Colosseum || currentScene == UIManager.ViewScene.LotteryPage || currentScene == UIManager.ViewScene.QuestSelectionPage) && IsCardTextDialogLayerSet)
{
_keyWordDialog.SetPanelDepth(120);
Vector3 localPosition = _keyWordDialog.gameObject.transform.localPosition;
localPosition.z = -5f;
localPosition.y = 0f;
_keyWordDialog.gameObject.transform.localPosition = localPosition;
ChangeLayer(_keyWordDialog.gameObject, LayerDetail);
_keyWordDialog.SetBackViewLayer(LayerDetail);
_keyWordDialog.SetBackViewPosition(KEYWORD_DIALOG_BACK_VIEW_POSITION);
UIPanel[] componentsInChildren = _keyWordDialog.InsideObject.GetComponentsInChildren<UIPanel>();
for (int i = 0; i < componentsInChildren.Length; i++)
{
componentsInChildren[i].depth += 120;
}
}
}
};
UIEventListener uIEventListener24 = UIEventListener.Get(QuestionMark);
uIEventListener24.onPress = (UIEventListener.BoolDelegate)Delegate.Combine(uIEventListener24.onPress, (UIEventListener.BoolDelegate)delegate(GameObject g, bool b)
{
UILabel keyWordLabel = GetKeyWordLabel();
if (keyWordLabel != null)
{
BattlePlayerView.PressKeyWordColorChange(keyWordLabel, b);
}
});
UIEventListener uIEventListener25 = UIEventListener.Get(QuestionMark);
uIEventListener25.onDragStart = (UIEventListener.VoidDelegate)Delegate.Combine(uIEventListener25.onDragStart, (UIEventListener.VoidDelegate)delegate
{
if (UnitCardTextScrollView.gameObject.activeInHierarchy)
{
BattlePlayerView.SetKeyWordLabelColor(UnitCardSkill);
BattlePlayerView.SetKeyWordLabelColor(UnitCardEvoSkill);
}
else
{
UILabel keyWordLabel = GetKeyWordLabel();
if (keyWordLabel != null)
{
BattlePlayerView.SetKeyWordLabelColor(keyWordLabel);
}
}
});
}
private void AddAtlasOverrider(DialogBase dialog)
{
UIAtlas component = Toolbox.ResourcesManager.LoadObject<GameObject>(Toolbox.ResourcesManager.GetAssetTypePath("dummy", ResourcesManager.AssetLoadPathType.QuestAtlas, isfetch: true)).GetComponent<UIAtlas>();
UISpriteAtlasOverwriter.TargetObject[] targetObjects = new UISpriteAtlasOverwriter.TargetObject[1]
{
new UISpriteAtlasOverwriter.TargetObject(dialog.gameObject, includeChildren: true)
};
dialog.gameObject.AddMissingComponent<UISpriteAtlasOverwriter>().Init(component, targetObjects);
}
private UILabel GetKeyWordLabel()
{
if (UnitCardTextScrollView.gameObject.activeInHierarchy)
{
Transform parent = UnitCardSkill.transform.parent;
UnitCardSkill.transform.SetParent(base.transform);
Vector3 vector = UnitCardSkill.transform.localPosition - new Vector3(0f, UnitCardSkill.printedSize.y, 0f);
UnitCardSkill.transform.SetParent(parent);
Vector3 vector2 = base.transform.InverseTransformPoint(UICamera.lastHit.point);
if (vector.y < vector2.y)
{
if (!string.IsNullOrEmpty(UnitCardSkill.text) && UnitCardSkill.text != " ")
{
return UnitCardSkill;
}
if (!string.IsNullOrEmpty(UnitCardEvoSkill.text) && UnitCardEvoSkill.text != " ")
{
return UnitCardEvoSkill;
}
}
else
{
if (!string.IsNullOrEmpty(UnitCardEvoSkill.text) && UnitCardEvoSkill.text != " ")
{
return UnitCardEvoSkill;
}
if (!string.IsNullOrEmpty(UnitCardSkill.text) && UnitCardSkill.text != " ")
{
return UnitCardSkill;
}
}
}
else
{
if (SpellCardTextScrollView.gameObject.activeInHierarchy)
{
return SpellCardSkill;
}
if (SettingCardTextScrollView.gameObject.activeInHierarchy)
{
return SettingCardSkill;
}
}
return null;
}
public void OnPushCardDetailOn(GameObject g)
{
if (_isAbleTapDialogObject && ShowCardDetail(g))
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_CARD_INFO);
}
}
public bool ShowCardDetail(GameObject g)
{
if (isDetailOn)
{
CloseDefault(playSe: true);
return false;
}
if (!IsEnableShowDetail)
{
return false;
}
CharIdx component = g.GetComponent<CharIdx>();
if (!component)
{
return false;
}
isDetailOn = true;
IsAnimationPlaying = true;
base.gameObject.SetActive(value: true);
DarkPanel.SetActive(value: true);
DestroyDialogObject();
_dialogForClose = UIManager.GetInstance().DialogManager.CreateDialogBaseOpenCardDetail(this);
SetCardDetail(component.GetCardId(), g);
OpenCardAnimation();
return true;
}
private void OpenCardAnimation()
{
iTween.Stop(CardNum.gameObject);
if (GetPossessionCardNum(isIncludingSpotCard: true) > 0)
{
CardNum.transform.localScale = new Vector3(0.01f, 0.01f, 1f);
iTween.ScaleTo(CardNum.gameObject, iTween.Hash("scale", new Vector3(1f, 1f, 1f), "time", 0.3f));
}
else
{
CardNum.transform.localScale = new Vector3(1f, 1f, 1f);
}
GameObject gameObject = null;
CardBasePrm.CharaType charType = CardData.CharType;
gameObject = (CardBasePrm.IsFollowerCard(charType) ? UnitCardObject : ((!CardBasePrm.IsSpellCard(charType)) ? FieldCardObject : SpellCardObject));
gameObject.transform.localScale = new Vector3(1f, 1f, 1f);
iTween.Stop(gameObject);
iTween.ScaleTo(gameObject, iTween.Hash("islocal", true, "scale", new Vector3(kCARD_SCALE, kCARD_SCALE, 1f), "time", 0.3f, "easetype", iTween.EaseType.easeOutExpo));
iTween.MoveTo(gameObject, iTween.Hash("islocal", true, "x", 0f, "y", 0f, "z", kCARD_POS_Z, "time", 0.3f, "oncompletetarget", base.gameObject, "oncomplete", "OnAnimationOver", "easetype", iTween.EaseType.easeOutExpo));
}
private void OnAnimationOver()
{
IsAnimationPlaying = false;
BoxCollider unitCardCollider = UnitCardCollider;
BoxCollider spellCardCollider = SpellCardCollider;
Vector3 vector = (FieldCardCollider.size = new Vector3(3.6f, 5.5f, 1f));
Vector3 size = (spellCardCollider.size = vector);
unitCardCollider.size = size;
}
public void CloseDefault(bool playSe)
{
if (!isDetailOn || isAnimation || IsAnimationPlaying)
{
return;
}
if (isCardViewMode)
{
OnCloseCardViewMode();
return;
}
isDetailOn = false;
DarkPanel.SetActive(value: false);
if (base.gameObject.activeSelf && playSe)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_CANCEL);
}
base.gameObject.SetActive(value: false);
if (_evolEffect != null)
{
UnityEngine.Object.Destroy(_evolEffect.gameObject);
}
Toolbox.ResourcesManager.RemoveAssetGroup(_assetPathList);
Toolbox.ResourcesManager.RemoveAssetGroup(_assetTokenPathList);
_assetTokenPathList.Clear();
DestroyDialogObject();
OnClose.Call();
}
private void SetCardDetail(int cardId, GameObject card2dObj = null, bool isUpdateRelation = true)
{
CardData = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(cardId);
if (isUpdateRelation)
{
RelationWrapperObj.SetActive(value: false);
}
iTween.Stop(base.gameObject);
_isEvolCard = CardData.IsEvolveChoiceCard;
_isShowCardAblityText = true;
UpdateCardImage();
SystemText systemText = Data.SystemText;
_nameValueLabel.text = CardData.CardName;
string key = "Common_01" + ((int)(4 + CardData.Clan)).ToString("00");
_classValueLabel.text = systemText.Get(key);
_typeValueLabel.text = CardData.TribeName;
if (_typeValueLabel.text == "ALL")
{
_typeValueLabel.text = "-";
}
UpdateCardText();
_isFavoriteButtonEnabled = true;
UpdateButtonState();
UpdateCreateLiquefyButton();
if (isUpdateRelation)
{
UpdateRelation(cardId);
DialogTitleLabel.text = Data.SystemText.Get("Card_0135");
}
UpdateCardNum(card2dObj);
if (!IsRelationCardViewing)
{
_relationCardBaseGameObject = card2dObj;
OnDetailCardUpdate.Call();
}
}
private void UpdateRelation(int cardId)
{
_relationCardIds.Clear();
_relationCardParentDict.Clear();
_relationIndex = 0;
_originalCardId = cardId;
if (RELATION_CARD_BUTTON_DISABLE_CARD_IDS.Contains(cardId))
{
RelationCardButton.SetActive(value: false);
return;
}
CardMaster instance = CardMaster.GetInstance(_cardMasterId);
if (instance != null)
{
List<CardParameter> allParams = new List<CardParameter>(instance.GetAllParameters());
ParseIdsFunc(allParams, cardId);
}
IDictionary<int, List<int>> relationCardSortDic = Data.Master.RelationCardSortDic;
CardParameter cardParameterFromId = CardMaster.GetInstanceForBattle().GetCardParameterFromId(cardId);
if (relationCardSortDic.ContainsKey(cardParameterFromId.NormalCardId))
{
_relationCardIds = new List<int>(relationCardSortDic[cardParameterFromId.NormalCardId]);
}
else
{
_relationCardIds = SortRelationCardByKeyWordTextOrder(_relationCardIds);
}
bool flag = false;
foreach (int relationCardId in _relationCardIds)
{
if (relationCardSortDic.ContainsKey(relationCardId))
{
flag = true;
break;
}
}
if (!relationCardSortDic.ContainsKey(cardParameterFromId.NormalCardId) && flag)
{
_relationCardIds = SortPartOfRelationCard(_relationCardIds, cardParameterFromId.NormalCardId);
}
}
private static List<int> SortPartOfRelationCard(List<int> originalList, int cardId)
{
List<int> list = new List<int>();
list.AddRange(originalList);
IDictionary<int, List<int>> relationCardSortDic = Data.Master.RelationCardSortDic;
foreach (int original in originalList)
{
if (!relationCardSortDic.TryGetValue(original, out var value))
{
continue;
}
List<int> list2 = new List<int>();
for (int i = 0; i < value.Count; i++)
{
int num = value[i];
for (int j = 0; j < originalList.Count; j++)
{
if (originalList[j] == num)
{
list2.Add(j);
break;
}
}
}
list2.Sort();
for (int k = 0; k < list2.Count; k++)
{
int index = list2[k];
list[index] = value[k];
}
}
return list;
}
private List<int> SortRelationCardByKeyWordTextOrder(List<int> originalList)
{
if (originalList.Count < 2)
{
return originalList;
}
List<int> sortedCardIdList = new List<int>();
List<string> keywordListInCard = GetKeywordListInCard(CardData.CardId);
for (int i = 0; i < keywordListInCard.Count; i++)
{
List<int> cardIdsInKeyword = GetCardIdsInKeyword(keywordListInCard[i]);
if (cardIdsInKeyword.Count == 0)
{
continue;
}
int num = cardIdsInKeyword[0];
if (!originalList.Contains(num))
{
continue;
}
if (!sortedCardIdList.Contains(num))
{
sortedCardIdList.Add(num);
}
List<string> keywordListInCard2 = GetKeywordListInCard(num);
for (int j = 0; j < keywordListInCard2.Count; j++)
{
List<int> cardIdsInKeyword2 = GetCardIdsInKeyword(keywordListInCard2[j]);
if (cardIdsInKeyword2.Count == 0)
{
continue;
}
for (int k = 0; k < cardIdsInKeyword2.Count; k++)
{
int num2 = cardIdsInKeyword2[k];
if (originalList.Contains(num2) && !sortedCardIdList.Contains(num2))
{
sortedCardIdList.Add(num2);
}
if (k > 0)
{
AddNonAppearedRelationCardId(num2, ref sortedCardIdList);
}
}
AddNonAppearedRelationCardId(cardIdsInKeyword2[0], ref sortedCardIdList);
}
AddNonAppearedRelationCardId(num, ref sortedCardIdList);
}
foreach (int original in originalList)
{
if (!sortedCardIdList.Contains(original))
{
sortedCardIdList.Add(original);
}
}
return sortedCardIdList;
}
private void AddNonAppearedRelationCardId(int parentCardId, ref List<int> sortedCardIdList)
{
if (!_relationCardParentDict.TryGetValue(parentCardId, out var value))
{
return;
}
foreach (int item in value)
{
if (!sortedCardIdList.Contains(item))
{
sortedCardIdList.Add(item);
}
}
}
private List<string> GetKeywordListInCard(int cardId)
{
CardParameter cardParameterFromId = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(cardId);
List<string> list = BattleKeywordInfoListMgr.GetKeywords(cardParameterFromId.ConvertedSkillDescription).ToList();
if (CardBasePrm.IsFollowerCard(CardData.CharType))
{
list.AddRange(BattleKeywordInfoListMgr.GetKeywords(cardParameterFromId.ConvertedEvoSkillDescription).ToList());
}
return list;
}
private List<int> GetCardIdsInKeyword(string keyword)
{
List<int> list = new List<int>();
if (Data.Master.BattleKeyWordDic.ContainsKey(keyword))
{
list.AddRange(BattleKeywordInfoListMgr.GetCardIdsInDesc(Data.Master.BattleKeyWordDic[keyword]));
}
return list;
}
private void UpdateCardImage()
{
CardMaster instance = CardMaster.GetInstance(_cardMasterId);
int cardId = CardData.CardId;
CardParameter cardParameterFromId = instance.GetCardParameterFromId(cardId);
int resourceCardId = cardParameterFromId.ResourceCardId;
int rarity = CardData.Rarity;
CardBasePrm.CharaType charType = CardData.CharType;
GameObject gameObject = null;
Material material = null;
bool flag = CardBasePrm.IsFollowerCard(charType);
bool flag2 = CardBasePrm.IsSpellCard(charType);
bool flag3 = CardBasePrm.IsAmuletCard(charType);
UnitCardObject.SetActive(flag && !flag2 && !flag3);
SpellCardObject.SetActive(!flag && flag2 && !flag3);
FieldCardObject.SetActive(!flag && !flag2 && flag3);
if (flag2)
{
gameObject = SpellCardObject;
try
{
material = Toolbox.ResourcesManager.FindCardMaterial(resourceCardId, ResourcesManager.AssetLoadPathType.SpellCardMaterial, isEvol: false, CardMaster.IsMutationCardCheck(instance.GetCardParameterFromId(cardId).BaseCardId), instance.GetCardParameterFromId(resourceCardId).CharType);
CardShaderDefine.ReplaceShader(material);
}
catch (Exception ex)
{
Debug.LogError(ex.ToString());
LocalLog.AccumulateTraceLog(ex.ToString());
}
_rotationOnlyIconSpell.SetActive(cardParameterFromId.IsResurgentCard);
SpellCost.text = CardData.Cost.ToString();
SpellName.text = CardData.CardName;
Global.SetRepositionNameLabel(SpellName, CardData.CardName, is2D: false);
UIManager.GetInstance().getUIBase_CardManager().SetNumberLabelStyle(SpellCost, CardData.IsFoil);
UIManager.GetInstance().getUIBase_CardManager().SetNameLabelStyle(SpellName, CardData.IsFoil);
}
else if (flag3)
{
gameObject = FieldCardObject;
try
{
material = Toolbox.ResourcesManager.FindCardMaterial(resourceCardId, ResourcesManager.AssetLoadPathType.SpellCardMaterial, isEvol: false, CardMaster.IsMutationCardCheck(instance.GetCardParameterFromId(cardId).BaseCardId), instance.GetCardParameterFromId(resourceCardId).CharType);
CardShaderDefine.ReplaceShader(material);
}
catch (Exception ex2)
{
Debug.LogError(ex2.ToString());
LocalLog.AccumulateTraceLog(ex2.ToString());
}
_rotationOnlyIconAmulet.SetActive(cardParameterFromId.IsResurgentCard);
FieldCost.text = CardData.Cost.ToString();
FieldName.text = CardData.CardName;
Global.SetRepositionNameLabel(FieldName, CardData.CardName, is2D: false);
UIManager.GetInstance().getUIBase_CardManager().SetNumberLabelStyle(FieldCost, CardData.IsFoil);
UIManager.GetInstance().getUIBase_CardManager().SetNameLabelStyle(FieldName, CardData.IsFoil);
}
else if (flag)
{
gameObject = UnitCardObject;
try
{
material = Toolbox.ResourcesManager.FindCardMaterial(resourceCardId, ResourcesManager.AssetLoadPathType.UnitCardMaterial, _isEvolCard);
CardShaderDefine.ReplaceShader(material);
}
catch (Exception ex3)
{
Debug.LogError(ex3.ToString());
LocalLog.AccumulateTraceLog(ex3.ToString());
}
_rotationOnlyIconFollower.SetActive(cardParameterFromId.IsResurgentCard);
UnitCost.text = CardData.Cost.ToString();
UnitAtk.text = (_isEvolCard ? CardData.EvoAtk.ToString() : CardData.Atk.ToString());
UnitLife.text = (_isEvolCard ? CardData.EvoLife.ToString() : CardData.Life.ToString());
UnitName.text = CardData.CardName;
Global.SetRepositionNameLabel(UnitName, CardData.CardName, is2D: false);
UIManager.GetInstance().getUIBase_CardManager().SetNumberLabelStyle(UnitCost, CardData.IsFoil);
UIManager.GetInstance().getUIBase_CardManager().SetNumberLabelStyle(UnitAtk, CardData.IsFoil);
UIManager.GetInstance().getUIBase_CardManager().SetNumberLabelStyle(UnitLife, CardData.IsFoil);
UIManager.GetInstance().getUIBase_CardManager().SetNameLabelStyle(UnitName, CardData.IsFoil);
}
if (material != null)
{
if (cardParameterFromId.IsFoil)
{
if (_premiumShader == null)
{
_premiumShader = Shader.Find("Wizard/VariantCardShader");
}
if (material.shader != _premiumShader)
{
material.shader = _premiumShader;
material.color = Color.white;
}
}
else
{
if (_normalShader == null)
{
_normalShader = Shader.Find("Wizard/Card/Basic_Front0_Back0_Normal");
}
if (material.shader != _normalShader)
{
material.shader = _normalShader;
material.color = Color.white;
}
}
}
if (_cardMaterial != null)
{
UnityEngine.Object.Destroy(_cardMaterial);
}
Material cardMaterial = ((material != null) ? UnityEngine.Object.Instantiate(material) : null);
Material[] sharedMaterials = new Material[3]
{
UIManager.GetInstance().getUIBase_CardManager()._3dCardFrameManager.GetFrameMaterial(cardParameterFromId.IsPhantomCard, charType, rarity),
_cardMaterial = cardMaterial,
CardCreatorBase.GetSharedClassIconMaterial(CardData.Clan)
};
LOD[] lODs = gameObject.GetComponent<LODGroup>().GetLODs();
for (int i = 0; i < lODs.Length; i++)
{
lODs[i].renderers[0].sharedMaterials = sharedMaterials;
}
AttachShadow(gameObject, CardShadow.gameObject);
bool active = UIManager.GetInstance().GetCurrentScene() == UIManager.ViewScene.CardAllList && GetPossessionCardNum(isIncludingSpotCard: true) <= 0;
CardShadow.SetActive(active);
}
private static void AttachShadow(GameObject parentObj, GameObject shadowObj)
{
Transform parent = parentObj.transform;
Transform obj = shadowObj.transform;
obj.parent = parent;
obj.localPosition = new Vector3(0f, 0f, kCARD_POS_Z - 1f);
obj.localRotation = Quaternion.identity;
obj.localScale = new Vector3(1f / kCARD_SCALE, 1f / kCARD_SCALE, 1f);
shadowObj.layer = parentObj.layer;
}
private void UpdateCardNum(GameObject card2dObj = null)
{
DataMgr dataMgr = GameMgr.GetIns().GetDataMgr();
if (_isOwnCardNum || card2dObj == null)
{
int possessionCardNum = GetPossessionCardNum();
if (dataMgr.SpotCardData.ExistsSpotCard(CardData.CardId))
{
int spotCardNum = dataMgr.SpotCardData.GetSpotCardNum(CardData.CardId);
SetCardNumLabel(possessionCardNum, spotCardNum);
}
else
{
SetCardNumLabel(possessionCardNum);
}
return;
}
CardListTemplate component = card2dObj.GetComponent<CardListTemplate>();
if (component != null && component.IsShowNum())
{
if (component.IsIncludingSpotCard)
{
SetCardNumLabel(component.GetNum(), component.GetSpotCardNum());
}
else
{
SetCardNumLabel(component.GetNum());
}
}
else
{
SetCardNumLabel(0);
}
}
private static bool IsTokenId(int cardId)
{
return cardId / 100000000 == 9;
}
private int GetPossessionCardNumOnRelationCard(bool isIncludingSpotCard)
{
if (IsTokenId(CardData.CardId))
{
return GetPosessionCardNum(_originalCardId, isIncludingSpotCard);
}
int posessionCardNum = GetPosessionCardNum(_originalCardId, isIncludingSpotCard);
int posessionCardNum2 = GetPosessionCardNum(CardData.CardId, isIncludingSpotCard);
if (posessionCardNum > 0 || posessionCardNum2 > 0)
{
return 1;
}
return 0;
}
private int GetPosessionCardNum(int cardId, bool isIncludingSpotCard)
{
if (_formatBehaviorForCardPoolChange != null)
{
return _formatBehaviorForCardPoolChange.GetPossessionCardNum(cardId, isIncludingSpotCard);
}
return GameMgr.GetIns().GetDataMgr().GetPossessionCardNum(cardId, isIncludingSpotCard);
}
private int GetPossessionCardNum(bool isIncludingSpotCard = false)
{
if (IsRelationCardViewing)
{
return GetPossessionCardNumOnRelationCard(isIncludingSpotCard);
}
return GetPosessionCardNum(CardData.CardId, isIncludingSpotCard);
}
private void SetCardNumLabel(int num)
{
SetCardNumActive(num > 0);
_cardNumLabel.text = num.ToString();
}
private void SetCardNumLabel(int cardNum, int spotCardNum)
{
SetCardNumActive(cardNum + spotCardNum > 0);
_cardNumLabel.text = $"{cardNum}[fcd24a]+{spotCardNum}";
}
private void SetCardNumActive(bool isEnabled)
{
if (IsRelationCardViewing)
{
CardNum.SetActive(value: false);
}
else
{
CardNum.SetActive(isEnabled);
}
}
private void UpdateCardText()
{
if (_isShowCardAblityText)
{
UpdateCardAbilityText();
StartCoroutine(DelayResetScrollViewPosition());
_shouldResetTextScrollView = true;
}
else
{
UpdateCardFlavorText();
if (_shouldResetTextScrollView)
{
ResetScrollViewPosition();
_shouldResetTextScrollView = false;
}
}
CardBasePrm.CharaType charType = CardData.CharType;
bool flag = CardBasePrm.IsFollowerCard(charType);
bool flag2 = CardBasePrm.IsSpellCard(charType);
bool flag3 = CardBasePrm.IsAmuletCard(charType);
UnitCardTextScrollView.gameObject.SetActive(flag && !flag2 && !flag3);
if (UnitCardTextScrollView.gameObject.activeSelf)
{
UnitCardStatusObj.gameObject.SetActive(_isShowCardAblityText);
UnitCardIntroductionObj.gameObject.SetActive(!_isShowCardAblityText);
}
SpellCardTextScrollView.gameObject.SetActive(!flag && flag2 && !flag3);
if (SpellCardTextScrollView.gameObject.activeSelf)
{
SpellCardStatusObj.gameObject.SetActive(_isShowCardAblityText);
SpellCardIntroductionObj.gameObject.SetActive(!_isShowCardAblityText);
}
SettingCardTextScrollView.gameObject.SetActive(!flag && !flag2 && flag3);
if (SettingCardTextScrollView.gameObject.activeSelf)
{
SettingCardStatusObj.gameObject.SetActive(_isShowCardAblityText);
SettingCardIntroductionObj.gameObject.SetActive(!_isShowCardAblityText);
}
_cardVoiceLabelRoot.gameObject.SetActive(!_isShowCardAblityText && CardData.CardVoice != string.Empty);
_cardSetLabelRoot.gameObject.SetActive(!_isShowCardAblityText);
}
private void UpdateCardAbilityText()
{
CardBasePrm.CharaType charType = CardData.CharType;
string convertedSkillDescription = CardData.ConvertedSkillDescription;
if (CardBasePrm.IsFollowerCard(charType))
{
FollowerCardAbilityTexActive();
}
else if (CardBasePrm.IsSpellCard(charType))
{
SpellCardSkill.SetWrapText(convertedSkillDescription);
SpellCardSkill.gameObject.SetActive(value: false);
SpellCardSkill.gameObject.SetActive(value: true);
_cardSpellTextLineCreater.ShowLines(GetLineNumber(SpellCardSkill), isOriginalActive: true);
}
else if (CardBasePrm.IsAmuletCard(charType))
{
SettingCardSkill.SetWrapText(convertedSkillDescription);
SettingCardSkill.gameObject.SetActive(value: false);
SettingCardSkill.gameObject.SetActive(value: true);
_cardAmuletTextLineCreater.ShowLines(GetLineNumber(SettingCardSkill), isOriginalActive: true);
}
}
private void FollowerCardAbilityTexActive()
{
bool isEvolveChoiceCard = CardData.IsEvolveChoiceCard;
UILabel normalTitleLavel = _normalTitleLavel;
string text3;
if (!isEvolveChoiceCard)
{
string text = (_normalTitleLavel.text = Data.SystemText.Get("Card_0037"));
text3 = text;
}
else
{
text3 = Data.SystemText.Get("Card_0038");
}
normalTitleLavel.text = text3;
_evolveInfoObjectRoot.gameObject.SetActive(!isEvolveChoiceCard);
UnitCardSkill.SetWrapText(isEvolveChoiceCard ? CardData.ConvertedEvoSkillDescription : CardData.ConvertedSkillDescription);
UnitCardEvoSkill.SetWrapText(isEvolveChoiceCard ? string.Empty : CardData.ConvertedEvoSkillDescription);
UnitCardAtkRight.text = (isEvolveChoiceCard ? CardData.EvoAtk.ToString() : CardData.Atk.ToString());
UnitCardLifeRight.text = (isEvolveChoiceCard ? CardData.EvoLife.ToString() : CardData.Life.ToString());
UnitCardEvoAtkRight.text = (isEvolveChoiceCard ? string.Empty : CardData.EvoAtk.ToString());
UnitCardEvoLifeRight.text = (isEvolveChoiceCard ? string.Empty : CardData.EvoLife.ToString());
UnitCardSkill.gameObject.SetActive(value: false);
UnitCardSkill.gameObject.SetActive(value: true);
UnitCardEvoSkill.gameObject.SetActive(value: false);
UnitCardEvoSkill.gameObject.SetActive(!isEvolveChoiceCard);
_cardSkillTextLineCreater.ShowLines(GetLineNumber(UnitCardSkill));
_cardEvoSkillTextLineCreater.ShowLines(GetLineNumber(UnitCardEvoSkill));
}
private int GetLineNumber(UILabel uILabel)
{
return Global.GetTextLineCount(uILabel.text);
}
private void UpdateCardFlavorText()
{
string wrapText = "???";
NGUIText.Alignment alignment = NGUIText.Alignment.Center;
if (IsPopularityVote || GetPossessionCardNum(isIncludingSpotCard: true) > 0)
{
wrapText = (_isEvolCard ? CardData.EvoDescription : CardData.Description);
alignment = NGUIText.Alignment.Left;
}
CardBasePrm.CharaType charType = CardData.CharType;
UILabel uILabel = null;
if (CardBasePrm.IsFollowerCard(charType))
{
uILabel = UnitCardIntroduction;
}
else if (CardBasePrm.IsSpellCard(charType))
{
uILabel = SpellCardIntroduction;
}
else if (CardBasePrm.IsAmuletCard(charType))
{
uILabel = SettingCardIntroduction;
}
uILabel.SetWrapText(wrapText);
uILabel.alignment = alignment;
_cardVoiceValueLabel.text = CardData.CardVoice;
_cardSetValueLabel.text = Data.Master.CardSetNameMgr.Get(CardData.CardSetId).LongName;
}
private void UpdateButtonState()
{
UpdateFavoriteButton();
UpdateVoiceButton();
CardIntroductionButton.SetActive(IsShowFlavorTextButton);
UpdateEvolutionButton();
UpdatePremiumCardConversionButton();
QuestionMark.SetActive(_isShowCardAblityText && BattlePlayerView.HasKeyword(CardData));
}
private void OnSwipeCard(GameObject g, Vector2 dir)
{
if (IsRelationCardViewing)
{
if (_relationCardIds.Count > 1)
{
if (dir.x >= 70f)
{
OnPushLeftButton(LeftButton);
}
if (dir.x <= -70f)
{
OnPushRightButton(RightButton);
}
}
}
else if (!IsAnimationPlaying && (!(_craftDialog != null) || !_craftDialog.IsOpen()))
{
OnDragCard.Call(dir);
}
}
private void ParseIdsFunc(List<CardParameter> allParams, int cardId)
{
foreach (CardParameter allParam in allParams)
{
if (allParam.CardId == cardId)
{
ParseIds(allParams, allParam.Skill, cardId);
ParseIds(allParams, allParam.SkillCondition, cardId);
ParseIds(allParams, allParam.SkillOption, cardId, RELATION_CARD_SKILLOPTION_EXCLUDED_OPTIONS, RELATION_CARD_SKILLOPTION_SEPARATORS);
ParseIds(allParams, allParam.SkillPreprocess, cardId);
ParseIds(allParams, allParam.SkillTarget, cardId);
break;
}
}
}
private void ParseIds(List<CardParameter> allParams, string str, int cardId, List<string> excludedOptions = null, char[] separators = null)
{
CardParameter cardParameterFromId = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(cardId);
string normalSkillText = Global.ConvertToWithoutBBCode(cardParameterFromId.SkillDescription);
string evolSkillText = Global.ConvertToWithoutBBCode(cardParameterFromId.EvoSkillDescription);
if (excludedOptions != null && separators != null)
{
string[] sub = str.Split(separators, StringSplitOptions.RemoveEmptyEntries);
int i;
for (i = 0; i < sub.Length; i++)
{
if (excludedOptions.Any((string x) => sub[i].Contains(x)))
{
continue;
}
foreach (Match item in Regex.Matches(sub[i], "\\d{9}"))
{
int validateCardId = int.Parse(item.Value);
ValidateAddId(validateCardId, cardParameterFromId, normalSkillText, evolSkillText, allParams);
}
}
}
else
{
foreach (Match item2 in Regex.Matches(str, "\\d{9}"))
{
int validateCardId2 = int.Parse(item2.Value);
ValidateAddId(validateCardId2, cardParameterFromId, normalSkillText, evolSkillText, allParams);
}
}
if (_relationCardIds.Count > 0)
{
RelationCardButton.SetActive(value: true);
UpdateRelationCount();
}
else
{
RelationCardButton.SetActive(value: false);
}
}
private void ValidateAddId(int validateCardId, CardParameter refRootCardParam, string normalSkillText, string evolSkillText, List<CardParameter> allParams)
{
CardParameter cardParameterFromId = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(_originalCardId);
CardParameter cardParameterFromId2 = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(validateCardId);
int validateBaseCardId = cardParameterFromId2.BaseCardId;
if ((validateBaseCardId == cardParameterFromId.BaseCardId && !cardParameterFromId2.IsEvolveChoiceCard) || validateCardId == 0 || _relationCardIds.Contains(validateCardId) || validateCardId == refRootCardParam.CardId || validateCardId == refRootCardParam.NormalCardId)
{
return;
}
if (refRootCardParam.CardId != _originalCardId)
{
int num = _relationCardIds.FindIndex((int cardId) => CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(cardId).BaseCardId == validateBaseCardId);
if (num >= 0)
{
CardParameter cardParameterFromId3 = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(_relationCardIds[num]);
if (cardParameterFromId3.BaseCardId == cardParameterFromId3.CardId || validateBaseCardId != validateCardId)
{
return;
}
_relationCardIds.RemoveAt(num);
}
}
if (validateCardId == 100011010)
{
string value = Global.ConvertToWithoutBBCode(CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(validateCardId).CardName);
if (!normalSkillText.Contains(value) && !evolSkillText.Contains(value))
{
return;
}
}
if (!validateCardId.ToString().StartsWith(RELATION_CARD_DISABLE_CARD_ID_HEADER, StringComparison.Ordinal))
{
_relationCardIds.Add(validateCardId);
if (!_relationCardParentDict.TryGetValue(refRootCardParam.CardId, out var value2))
{
value2 = new List<int>();
_relationCardParentDict.Add(refRootCardParam.CardId, value2);
}
value2.Add(validateCardId);
}
ParseIdsFunc(allParams, validateCardId);
}
private void OnPushRelationCardButton(GameObject g)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_TOGGLE_ON);
if (!IsAnimationPlaying)
{
IsAnimationPlaying = true;
RelationCardButton.SetActive(value: false);
RelationWrapperObj.SetActive(value: true);
_relationIndex = 0;
RereshRelation(g);
}
}
private void OnPushRelationBackButton(GameObject g)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SWITCH_MENU);
if (!IsAnimationPlaying)
{
RelationWrapperObj.SetActive(value: false);
IsAnimationPlaying = true;
_relationIndex = 0;
SetCardDetail(_originalCardId, _relationCardBaseGameObject);
OpenCardAnimation();
DialogTitleLabel.text = Data.SystemText.Get("Card_0135");
}
}
private void OnPushRightButton(GameObject g)
{
if (IsRelationCardViewing)
{
if (!IsAnimationPlaying)
{
IsAnimationPlaying = true;
_relationIndex++;
if (_relationIndex >= _relationCardIds.Count)
{
_relationIndex = 0;
}
RereshRelation(g);
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
}
}
else
{
OnDragCard.Call(new Vector2(-70f, 0f));
}
}
private void OnPushLeftButton(GameObject g)
{
if (IsRelationCardViewing)
{
if (!IsAnimationPlaying)
{
IsAnimationPlaying = true;
_relationIndex--;
if (_relationIndex < 0)
{
_relationIndex = _relationCardIds.Count - 1;
}
RereshRelation(g);
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SLIDE_BTN);
}
}
else
{
OnDragCard.Call(new Vector2(70f, 0f));
}
}
private void UpdateRelationCount()
{
CardParameter cardParameterFromId = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(_originalCardId);
DialogTitleLabel.text = string.Format(Data.SystemText.Get("Card_0217") + "\u3000({1}/{2})", cardParameterFromId.CardName, _relationIndex + 1, _relationCardIds.Count);
}
private void RereshRelation(GameObject g)
{
UpdateRelationCount();
if (IsRelationCardViewing)
{
bool active = _relationCardIds.Count > 1;
RightButton.SetActive(active);
LeftButton.SetActive(active);
}
Toolbox.ResourcesManager.RemoveAssetGroup(_assetTokenPathList);
_assetTokenPathList.Clear();
CardParameter cardParameterFromId = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(_originalCardId);
int id = _relationCardIds[_relationIndex];
CardParameter cardParameterFromId2 = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(id);
if (cardParameterFromId.IsFoil)
{
id = cardParameterFromId2.FoilCardId;
}
AddResourceList(cardParameterFromId2);
CardTexture.SetActive(value: false);
SetEnableButtons(isEnable: false);
Toolbox.ResourcesManager.StartCoroutine_LoadAssetGroupAsync(_assetTokenPathList, delegate
{
CardTexture.SetActive(value: true);
SetCardDetail(id, g, isUpdateRelation: false);
OpenCardAnimation();
SetEnableButtons(isEnable: true);
});
}
private void AddResourceList(CardParameter CardPrm)
{
int resourceCardId = CardMaster.GetInstance(_cardMasterId).GetCardParameterFromId(CardPrm.NormalCardId).ResourceCardId;
switch (CardPrm.CharType)
{
case CardBasePrm.CharaType.NORMAL:
{
string assetTypePath3 = Toolbox.ResourcesManager.GetAssetTypePath(resourceCardId.ToString(), ResourcesManager.AssetLoadPathType.UnitCardMaterial);
_assetTokenPathList.Add(assetTypePath3);
break;
}
case CardBasePrm.CharaType.SPELL:
{
string assetTypePath2 = Toolbox.ResourcesManager.GetAssetTypePath(resourceCardId.ToString(), ResourcesManager.AssetLoadPathType.SpellCardMaterial);
_assetTokenPathList.Add(assetTypePath2);
break;
}
default:
{
string assetTypePath = Toolbox.ResourcesManager.GetAssetTypePath(resourceCardId.ToString(), ResourcesManager.AssetLoadPathType.SpellCardMaterial);
_assetTokenPathList.Add(assetTypePath);
break;
}
}
}
private void OnOpenCardViewMode(GameObject g)
{
if (_isAbleTapDialogObject && !IsAnimationPlaying && !isAnimation && !isCardViewMode && (UIManager.GetInstance().GetCurrentScene() != UIManager.ViewScene.CardAllList || GetPossessionCardNum(isIncludingSpotCard: true) > 0))
{
isCardViewMode = true;
IsAnimationPlaying = true;
CardViewBG.SetActive(value: true);
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_CARD_INFO);
CardBasePrm.CharaType charType = CardData.CharType;
if (CardBasePrm.IsSpellCard(charType))
{
ViewCardObject = NGUITools.AddChild(base.gameObject, SpellCardObject);
}
else if (CardBasePrm.IsAmuletCard(charType))
{
ViewCardObject = NGUITools.AddChild(base.gameObject, FieldCardObject);
}
else if (CardBasePrm.IsFollowerCard(charType))
{
ViewCardObject = NGUITools.AddChild(base.gameObject, UnitCardObject);
}
iTween.ScaleTo(ViewCardObject, iTween.Hash("Scale", CardViewScale, "time", 0.3f));
iTween.RotateTo(ViewCardObject, iTween.Hash("z", 0f, "time", 0.3f, "oncompletetarget", base.gameObject, "oncomplete", "OnAnimationOver"));
ViewCardObject.transform.localPosition = new Vector3(0f, 0f, -100f);
}
}
private void OnCloseCardViewMode()
{
if (!IsAnimationPlaying && isCardViewMode)
{
IsAnimationPlaying = true;
RemoveCardViewMode();
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_CANCEL);
CardBasePrm.CharaType charType = CardData.CharType;
GameObject target = null;
if (CardBasePrm.IsSpellCard(charType))
{
target = SpellCardObject;
}
else if (CardBasePrm.IsAmuletCard(charType))
{
target = FieldCardObject;
}
else if (CardBasePrm.IsFollowerCard(charType))
{
target = UnitCardObject;
}
iTween.MoveTo(target, iTween.Hash("islocal", true, "z", kCARD_POS_Z, "time", 0.3f, "oncompletetarget", base.gameObject, "oncomplete", "OnAnimationOver"));
}
}
private void RemoveCardViewMode()
{
if (isCardViewMode)
{
UnityEngine.Object.Destroy(ViewCardObject);
CardViewBG.SetActive(value: false);
isCardViewMode = false;
}
}
private void OnCloseCardViewMode(GameObject g)
{
OnCloseCardViewMode();
}
private void UpdateFavoriteButton()
{
_isFavorite = GameMgr.GetIns().GetDataMgr().FavoriteCardList.Contains(CardData.CardId);
_favoriteButton.gameObject.SetActive(IsShowFavoriteButton && GetPossessionCardNum() > 0 && CardData.IsEnableFavorite && !IsRelationCardViewing);
SetFavoriteButtonSprite(_isFavorite);
}
private void SetFavoriteButtonSprite(bool isFavorite)
{
string text = "btn_favorite_";
string text2 = "off";
string text3 = "on";
_favoriteButton.normalSprite = text + (isFavorite ? text3 : text2);
_favoriteButton.pressedSprite = text + (isFavorite ? text2 : text3);
}
private void OnClickFavoriteButton(GameObject g)
{
if (_isFavoriteButtonEnabled && GetPossessionCardNum() > 0)
{
_isFavoriteButtonEnabled = false;
StartCoroutine(Timer.DelayMethod(0.9f, delegate
{
_isFavoriteButtonEnabled = true;
}));
bool flag = !_isFavorite;
GameMgr.GetIns().GetSoundMgr().PlaySe(flag ? Se.TYPE.SYS_TOGGLE_ON : Se.TYPE.SYS_TOGGLE_OFF);
ChangeFavoriteState();
}
}
private void ChangeFavoriteState()
{
bool is_protected = !_isFavorite;
CardProtectTask cardProtectTask = new CardProtectTask();
cardProtectTask.SetParameter(CardData.CardId, is_protected);
StartCoroutine(Toolbox.NetworkManager.Connect(cardProtectTask, OnSuccessProtectCard, null, OnErrorProtectCard));
}
private void OnSuccessProtectCard(NetworkTask.ResultCode code)
{
UpdateButtonState();
UpdateCreateLiquefyButton();
OnChangeCardFavoriteState.Call();
}
private void OnErrorProtectCard(int code)
{
UpdateButtonState();
UpdateCreateLiquefyButton();
}
private void UpdateVoiceButton()
{
CardVoiceData cardVoiceData = new CardVoiceData(CardData, _cardMasterId);
bool flag = (!_isEvolCard && cardVoiceData._voiceListBeforeEvo.Count > 0) || (_isEvolCard && cardVoiceData._voiceListAfterEvo.Count > 0);
_voiceButton.gameObject.SetActive(flag && IsShowVoiceButton && (IsPopularityVote || GetPossessionCardNum(isIncludingSpotCard: true) > 0));
}
private void OnClickVoiceButton(GameObject g)
{
_cardVoiceManager.SequentiallyPlay(CardData, _isEvolCard, _cardMasterId);
}
private void OnClickChangeCardTextTypeButton(GameObject g)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_TOGGLE_ON);
_isShowCardAblityText = !_isShowCardAblityText;
UpdateCardText();
UpdateButtonState();
}
private void UpdateEvolutionButton()
{
if (CardBasePrm.IsFollowerCard(CardData.CharType) && !CardData.IsEvolveChoiceCard)
{
CardEvolButton.gameObject.SetActive(IsShowEvolutionButton && (IsPopularityVote || GetPossessionCardNum(isIncludingSpotCard: true) > 0));
_evolutionButtonLabel.text = Data.SystemText.Get(_isEvolCard ? "Card_0067" : "Card_0030");
}
else
{
CardEvolButton.gameObject.SetActive(value: false);
}
}
private void OnClickEvolutionButton(GameObject g)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_MYPAGE_EVOLVE);
_isEvolCard = !_isEvolCard;
UpdateCardImage();
UpdateCardText();
UpdateButtonState();
_cardVoiceManager.Stop();
if (_evolEffect != null)
{
_evolEffect.Play();
return;
}
string assetTypePath = Toolbox.ResourcesManager.GetAssetTypePath("cmn_deckedit_evo_1", ResourcesManager.AssetLoadPathType.Effect2D);
_assetPathList.Add(assetTypePath);
StartCoroutine(Toolbox.ResourcesManager.LoadAssetAsync(assetTypePath, delegate
{
GameObject gameObject = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath("cmn_deckedit_evo_1", ResourcesManager.AssetLoadPathType.Effect2D, isfetch: true)) as GameObject;
if (gameObject != null)
{
ParticleSystem component = gameObject.GetComponent<ParticleSystem>();
ParticleSystem.MainModule main = component.main;
main.playOnAwake = false;
_evolEffect = UnityEngine.Object.Instantiate(component);
_evolEffect.transform.parent = CardTexture.transform;
_evolEffect.transform.localPosition = Vector3.back * 10f;
_evolEffect.transform.localRotation = Quaternion.identity;
_evolEffect.transform.localScale = Vector3.one * 600f;
_evolEffect.gameObject.layer = base.gameObject.layer;
Transform[] componentsInChildren = _evolEffect.GetComponentsInChildren<Transform>();
for (int i = 0; i < componentsInChildren.Length; i++)
{
componentsInChildren[i].gameObject.layer = base.gameObject.layer;
}
GameMgr.GetIns().GetEffectMgr().SetUIParticleShader(new List<GameObject> { _evolEffect.gameObject }, delegate
{
if ((bool)_evolEffect)
{
_evolEffect.gameObject.SetActive(value: true);
_evolEffect.Play();
}
}, isBattle: true);
}
}));
}
private void UpdatePremiumCardConversionButton()
{
GameObject gameObject = _premiumCardConversionButton.gameObject;
UIManager.SetObjectToGrey(gameObject, PlayerStaticData.UserOrbNum <= 0);
if (!IsShowPremiumCardConversionButton || IsRelationCardViewing || GetPossessionCardNum() <= 0 || CardData.IsFoil || (CardData.IsNotCraftDestruct && !CardData.IsPreReleaseCard))
{
gameObject.SetActive(value: false);
}
else
{
gameObject.SetActive(value: true);
}
}
private void OnClickPremiumCardConversionButton(GameObject g)
{
if (GetPossessionCardNum() <= 0)
{
return;
}
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
if (isAnimation)
{
return;
}
SystemText systemText = Data.SystemText;
if (PlayerStaticData.UserOrbNum <= 0)
{
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
dialogBase.SetTitleLabel(systemText.Get("Card_0163_1"));
dialogBase.SetText(systemText.Get("Card_0163_2"));
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.OkBtn);
}
else if (GameMgr.GetIns().GetDataMgr().GetPossessionCardNum(CardData.FoilCardId, isIncludingSpotCard: true) >= 3)
{
DialogBase dialogBase2 = UIManager.GetInstance().CreateDialogClose();
dialogBase2.SetTitleLabel(systemText.Get("Card_0164_1"));
dialogBase2.SetText(systemText.Get("Card_0164_2"));
dialogBase2.SetButtonLayout(DialogBase.ButtonLayout.OkBtn);
}
else if (_isFavorite)
{
DialogBase dialogBase3 = UIManager.GetInstance().CreateDialogClose();
dialogBase3.SetTitleLabel(systemText.Get("Card_0165_1"));
dialogBase3.SetText(systemText.Get("Card_0165_2"));
dialogBase3.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn);
dialogBase3.SetButtonText(systemText.Get("Card_0165_3"));
dialogBase3.onPushButton1 = delegate
{
CreatePremiumCardConversionDialog();
};
}
else
{
CreatePremiumCardConversionDialog();
}
}
private void CreatePremiumCardConversionDialog()
{
SystemText systemText = Data.SystemText;
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
PremiumCardConversionDialogParts premiumCardConversionDialogParts = UnityEngine.Object.Instantiate(_premiumCardConversionDialogPrefab);
premiumCardConversionDialogParts.Initialize(CardData);
dialogBase.SetObj(premiumCardConversionDialogParts.gameObject);
dialogBase.SetSize(DialogBase.Size.M);
dialogBase.SetTitleLabel(systemText.Get("Card_0162_1"));
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn);
dialogBase.SetButtonText(systemText.Get("Card_0162_7"));
dialogBase.onPushButton1 = delegate
{
if (!_isFavorite)
{
ConvertPremiumCard();
}
else
{
ChangeFavoriteState();
OnChangeCardFavoriteState = (Action)Delegate.Combine(OnChangeCardFavoriteState, new Action(ConvertPremiumCard));
}
};
}
private void ConvertPremiumCard()
{
OnChangeCardFavoriteState = (Action)Delegate.Remove(OnChangeCardFavoriteState, new Action(ConvertPremiumCard));
PremiumCardConversionTask premiumCardConversionTask = new PremiumCardConversionTask();
premiumCardConversionTask.SetParameter(CardData.CardId, GetPossessionCardNum());
StartCoroutine(Toolbox.NetworkManager.Connect(premiumCardConversionTask, OnSuccessPremiumCardConversion));
}
private void OnSuccessPremiumCardConversion(NetworkTask.ResultCode code)
{
OnConvertedPremiumCard.Call(CardData);
StartCoroutine(StartPremiumCardConversionAnimation());
}
private IEnumerator StartPremiumCardConversionAnimation()
{
isAnimation = true;
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_USE_RED_ETHER);
yield return StartCoroutine(PlayCardCreateEffect(PREMIUM_CARD_CONVERSION_PARTICLE_COLOR, _premiumCardConversionButton.transform.position, _cardNumLabel.transform.position, 4));
SetCardDetail(CardData.FoilCardId);
isAnimation = false;
}
private void UpdateCreateLiquefyButton(bool isUpdateHaveRedether = true)
{
if (IsShowCraftButtons && !IsRelationCardViewing)
{
_craftPanel.gameObject.SetActive(value: true);
_craftPanel.UpdateCraftPanel(CardData, isUpdateHaveRedether);
}
else
{
_craftPanel.gameObject.SetActive(value: false);
}
}
private void StartCardDestruct()
{
if (!IsAbleToDestruct)
{
return;
}
CardMake component = base.gameObject.GetComponent<CardMake>();
component.OnCardSell = delegate
{
if (GetPossessionCardNum() <= 0)
{
OnLiquefyAllCard.Call(CardData);
}
StartCoroutine(RunCardDestruct());
};
component.StartCardDestruct(CardData.CardId);
}
private IEnumerator RunCardDestruct()
{
isAnimation = true;
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_GET_RED_ETHER);
yield return StartCoroutine(PlayCardLiquefyEffect(CARD_LIQUEFY_PARTICLE_COLOR, _cardNumLabel.transform.position, RedEtherIcon.transform.position, CardData.Rarity));
iTween.ValueTo(base.gameObject, iTween.Hash("from", int.Parse(_redEtherHaveValueLabel.text), "to", PlayerStaticData.UserRedEtherCount, "time", 0.5f, "onupdate", "OnUpdateRedEther", "oncomplete", "OnCompleteRedEther", "easetype", iTween.EaseType.easeOutQuad));
UpdateCardNum();
CardShadow.gameObject.SetActive(GetPossessionCardNum(isIncludingSpotCard: true) <= 0 && !IsShortageUI);
UpdateCardText();
UpdateButtonState();
OnCardNumChange.Call();
UpdateCreateLiquefyButton(isUpdateHaveRedether: false);
OnCardSellId.Call(CardData.CardId);
yield return new WaitForSeconds(0.2f);
isAnimation = false;
}
private IEnumerator PlayCardLiquefyEffect(Color particleColor, Vector3 particleStartPos, Vector3 particleEndPos, int particleNum)
{
particleStartPos += CARD_DESTROY_PARTICLE_OFFSET;
particleEndPos += CARD_DESTROY_PARTICLE_OFFSET;
EffectMgr effectMgr = GameMgr.GetIns().GetEffectMgr();
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_CARD_1);
for (int i = 0; i < CardData.Rarity; i++)
{
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_TRACK_1);
}
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_ICON_1);
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_SPLASH_1);
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_SPLASH_2);
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_SPLASH_3);
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_SPLASH_4);
effectMgr.Start(EffectMgr.EffectType.CMN_CRAFT_CARD_1, CardTexture.transform.position).ChangeParticleColor(particleColor);
for (int j = 0; j < particleNum; j++)
{
Effect effect = effectMgr.Start(EffectMgr.EffectType.CMN_CRAFT_TRACK_1, particleStartPos);
effect.ChangeParticleColor(particleColor);
Vector3 vector = new Vector3(UnityEngine.Random.value * 3f - 1.5f, UnityEngine.Random.value * 3f - 1.5f, -1f);
Vector3[] bezierQuad = MotionUtils.GetBezierQuad(particleStartPos, particleStartPos + vector, particleEndPos, 10);
iTween.MoveTo(effect.GetGameObjIns(), iTween.Hash("path", bezierQuad, "time", 0.5f, "movetopath", false, "easetype", iTween.EaseType.linear));
}
yield return new WaitForSeconds(0.5f);
effectMgr.Start(EffectMgr.EffectType.CMN_CRAFT_ICON_1, particleEndPos).ChangeParticleColor(particleColor);
EffectMgr.EffectType type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_1;
switch (particleNum)
{
case 1:
type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_1;
break;
case 2:
type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_2;
break;
case 3:
type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_3;
break;
case 4:
type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_4;
break;
}
effectMgr.Start(type, particleEndPos).ChangeParticleColor(particleColor);
}
private void StartCardCraft()
{
if (!IsAbleToCraft)
{
return;
}
CardMake component = base.gameObject.GetComponent<CardMake>();
component.OnCardBuy = delegate
{
if (GetPossessionCardNum(isIncludingSpotCard: true) == 1)
{
OnCreateFirstCard.Call();
}
StartCoroutine(RunCardCraft());
};
component.StartCardCraft(CardData.CardId);
}
private IEnumerator RunCardCraft()
{
isAnimation = true;
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_USE_RED_ETHER);
yield return StartCoroutine(PlayCardCreateEffect(CARD_CREATE_PARTICLE_COLOR, RedEtherIcon.transform.position, _cardNumLabel.transform.position, CardData.Rarity));
iTween.ValueTo(base.gameObject, iTween.Hash("from", int.Parse(_redEtherHaveValueLabel.text), "to", PlayerStaticData.UserRedEtherCount, "time", 0.5f, "onupdate", "OnUpdateRedEther", "oncomplete", "OnCompleteRedEther", "easetype", iTween.EaseType.easeOutQuad));
UpdateCardNum();
CardShadow.gameObject.SetActive(value: false);
UpdateCardText();
UpdateButtonState();
UpdateCreateLiquefyButton(isUpdateHaveRedether: false);
OnCardNumChange.Call();
OnCardBuy.Call();
yield return new WaitForSeconds(0.2f);
isAnimation = false;
}
private IEnumerator PlayCardCreateEffect(Color particleColor, Vector3 particleStartPos, Vector3 particleEndPos, int particleNum)
{
EffectMgr effectMgr = GameMgr.GetIns().GetEffectMgr();
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_ICON_1);
for (int i = 0; i < particleNum; i++)
{
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_TRACK_1);
}
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_CARD_2);
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_SPLASH_1);
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_SPLASH_2);
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_SPLASH_3);
effectMgr.Stop(EffectMgr.EffectType.CMN_CRAFT_SPLASH_4);
effectMgr.Start(EffectMgr.EffectType.CMN_CRAFT_ICON_1, particleStartPos).ChangeParticleColor(particleColor);
for (int j = 0; j < particleNum; j++)
{
Effect effect = effectMgr.Start(EffectMgr.EffectType.CMN_CRAFT_TRACK_1, particleStartPos);
effect.ChangeParticleColor(particleColor);
Vector3 vector = new Vector3(UnityEngine.Random.value * 3f - 1.5f, UnityEngine.Random.value * 3f - 1.5f, -1f);
Vector3[] bezierQuad = MotionUtils.GetBezierQuad(particleStartPos, particleStartPos + vector, particleEndPos, 10);
iTween.MoveTo(effect.GetGameObjIns(), iTween.Hash("path", bezierQuad, "time", 0.5f, "movetopath", false, "easetype", iTween.EaseType.linear));
}
yield return new WaitForSeconds(0.5f);
effectMgr.Start(EffectMgr.EffectType.CMN_CRAFT_CARD_2, CardTexture.transform.position + Vector3.back);
EffectMgr.EffectType type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_1;
switch (particleNum)
{
case 1:
type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_1;
break;
case 2:
type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_2;
break;
case 3:
type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_3;
break;
case 4:
type = EffectMgr.EffectType.CMN_CRAFT_SPLASH_4;
break;
}
effectMgr.Start(type, particleEndPos).ChangeParticleColor(particleColor);
}
private void OnUpdateRedEther(int value)
{
_redEtherHaveValueLabel.text = value.ToString();
}
private void OnCompleteRedEther()
{
_redEtherHaveValueLabel.text = PlayerStaticData.UserRedEtherCount.ToString();
}
private void CreateDialog(Action onOk, bool buy)
{
if (!isAnimation)
{
_craftDialog = UIManager.GetInstance().CreateDialogClose();
_craftDialog.onPushButton1 = onOk;
PurchaseConfirm purchaseConfirm = UnityEngine.Object.Instantiate(PurchaseConfirmPrefab);
_craftDialog.SetObj(purchaseConfirm.gameObject);
int userRedEtherCount = PlayerStaticData.UserRedEtherCount;
SystemText systemText = Data.SystemText;
if (buy)
{
_craftDialog.SetTitleLabel(systemText.Get("Card_0081"));
_craftDialog.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn);
_craftDialog.SetButtonText(systemText.Get("Dia_CardList_003_Button"));
int useRedEther = CardData.UseRedEther;
purchaseConfirm.SetCardBuy(systemText.Get("Common_0205"), userRedEtherCount, useRedEther, CardData);
}
else
{
_craftDialog.SetTitleLabel(systemText.Get("Card_0080"));
_craftDialog.SetButtonLayout(DialogBase.ButtonLayout.RedBtn_CancelBtn);
_craftDialog.SetButtonText(systemText.Get("Dia_CardList_002_Button"));
int getRedEther = CardData.GetRedEther;
purchaseConfirm.SetCardSell(systemText.Get("Common_0205"), userRedEtherCount, getRedEther, CardData.CardName, CardData.IsFoil);
}
}
}
private IEnumerator DelayResetScrollViewPosition()
{
yield return null;
ResetScrollViewPosition();
}
private void ResetScrollViewPosition()
{
UnitCardTextScrollView.ResetPosition();
SpellCardTextScrollView.ResetPosition();
SettingCardTextScrollView.ResetPosition();
UnitCardTextScrollView.UpdateScrollbars(recalculateBounds: true);
SpellCardTextScrollView.UpdateScrollbars(recalculateBounds: true);
SettingCardTextScrollView.UpdateScrollbars(recalculateBounds: true);
}
private void ChangeLayer(GameObject o, int layer)
{
o.layer = layer;
for (int i = 0; i < o.transform.childCount; i++)
{
ChangeLayer(o.transform.GetChild(i).gameObject, layer);
}
}
public bool GetIsDetailOn()
{
return isDetailOn;
}
public void SetDisableArrowButton()
{
OnDetailCardUpdate = delegate
{
RightButtonVisible = false;
LeftButtonVisible = false;
};
}
public void SetEnableButtons(bool isEnable)
{
for (int i = 0; i < _enableButtonList.Length; i++)
{
_enableButtonList[i].isEnabled = isEnable;
}
_isAbleTapDialogObject = isEnable;
if (isEnable)
{
UpdateButtonState();
UpdateCreateLiquefyButton();
}
}
private void LateUpdate()
{
if (!UIManager.GetInstance().IsCurrentScene(UIManager.ViewScene.QuestSelectionPage))
{
return;
}
for (int i = 0; i < base.transform.childCount; i++)
{
Transform child = base.transform.GetChild(i);
if (child.name != "CardTexture" && child.name != "CardText")
{
AllLabelColorChanger.ChangeAllLabel(child.gameObject, AllLabelColorChanger.COLOR_TABLE_DETAIL);
}
}
}
public void SetSortOrder(int sortOrder)
{
for (int i = 0; i < _allPanel.Length; i++)
{
_allPanel[i].sortingOrder = sortOrder + i;
}
}
}