Copied the 89 uncopied AI*SimulationUtility/extension files defining the AIVirtualCard/AIVirtualField extension methods; the compile loop then auto-closed the revealed type deps (~3049 files total, drift-clean). 10.0k -> 62 errors.
173 lines
5.7 KiB
C#
173 lines
5.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using Cute;
|
|
using UnityEngine;
|
|
using Wizard;
|
|
|
|
public class DeckIntroductionItem : MonoBehaviour
|
|
{
|
|
private const int WIDTH_DECK_NAME_LABEL_NORMAL = 284;
|
|
|
|
private const int WIDTH_DECK_NAME_LABEL_USE_SUBCLASS = 242;
|
|
|
|
[SerializeField]
|
|
private CostCurveUI _costCurve;
|
|
|
|
[SerializeField]
|
|
private UILabel _deckName;
|
|
|
|
[SerializeField]
|
|
private UISprite _formatIcon;
|
|
|
|
[SerializeField]
|
|
private ClassInfoParts _classInfoParts;
|
|
|
|
[SerializeField]
|
|
private UILabel _playerName;
|
|
|
|
[SerializeField]
|
|
private UILabel _deckDetail;
|
|
|
|
[SerializeField]
|
|
private UILabel _followerCount;
|
|
|
|
[SerializeField]
|
|
private UILabel _amuletCount;
|
|
|
|
[SerializeField]
|
|
private UILabel _spellCount;
|
|
|
|
[SerializeField]
|
|
private UITexture _cardTexture;
|
|
|
|
[SerializeField]
|
|
private UIButton _button;
|
|
|
|
[SerializeField]
|
|
private TweenScale _buttonAnimationTween;
|
|
|
|
private DeckIntroductionTask.IntroductionData _data;
|
|
|
|
public Action<DeckIntroductionTask.IntroductionData> OnClick { get; set; }
|
|
|
|
public void Initialize(DeckIntroductionTask.IntroductionData data)
|
|
{
|
|
IFormatBehavior defaultBehaviour = FormatBehaviorManager.GetDefaultBehaviour(data.Deck.Format);
|
|
_data = data;
|
|
_playerName.text = data.PlayerName;
|
|
_deckDetail.text = data.Detail;
|
|
_formatIcon.spriteName = defaultBehaviour.SmallIconSpriteName;
|
|
if (data.Deck.Format == Format.Rotation)
|
|
{
|
|
_formatIcon.spriteName = "icon_rotation_s";
|
|
}
|
|
_deckName.text = data.Deck.GetDeckName();
|
|
_deckName.width = (defaultBehaviour.UseSubClass ? 242 : 284);
|
|
_classInfoParts.gameObject.SetActive(defaultBehaviour.UseSubClass);
|
|
if (defaultBehaviour.UseSubClass)
|
|
{
|
|
_classInfoParts.InitByCharaPrm(GameMgr.GetIns().GetDataMgr().GetCharaPrmByCharaId(data.Deck.GetDeckClassID()));
|
|
_classInfoParts.SetSubClass((CardBasePrm.ClanType)data.Deck.GetDeckSubClassID());
|
|
}
|
|
int followerCount = 0;
|
|
int spellCount = 0;
|
|
int amuletCount = 0;
|
|
GetCardCountEachType(data.Deck, out followerCount, out spellCount, out amuletCount);
|
|
_followerCount.text = followerCount.ToString();
|
|
_spellCount.text = spellCount.ToString();
|
|
_amuletCount.text = amuletCount.ToString();
|
|
_costCurve.Initialize(defaultBehaviour.CardMasterId);
|
|
_costCurve.Refresh(data.Deck.GetCardIdList().ToArray());
|
|
_button.onClick.Clear();
|
|
_button.onClick.Add(new EventDelegate(delegate
|
|
{
|
|
OnClickButton();
|
|
}));
|
|
string battleLogTexturePath = GetBattleLogTexturePath(data.TopCardId);
|
|
_cardTexture.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(battleLogTexturePath);
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
UIEventListener uIEventListener = UIEventListener.Get(_button.gameObject);
|
|
uIEventListener.onPress = (UIEventListener.BoolDelegate)Delegate.Combine(uIEventListener.onPress, (UIEventListener.BoolDelegate)delegate
|
|
{
|
|
StartCoroutine(ButtonAnimation());
|
|
});
|
|
}
|
|
|
|
private IEnumerator ButtonAnimation()
|
|
{
|
|
BoxCollider btn = _button.GetComponent<BoxCollider>();
|
|
Vector3 to = _buttonAnimationTween.to;
|
|
Vector3 defaultSize = btn.size;
|
|
Vector3 size = new Vector3(btn.size.x / to.x, btn.size.y / to.y, btn.size.z / to.z);
|
|
if ((bool)_buttonAnimationTween)
|
|
{
|
|
_buttonAnimationTween.PlayForward();
|
|
btn.size = size;
|
|
while (Input.GetMouseButton(0))
|
|
{
|
|
yield return null;
|
|
}
|
|
_buttonAnimationTween.PlayReverse();
|
|
btn.size = defaultSize;
|
|
}
|
|
}
|
|
|
|
public static string GetCardMaterialPath(int cardId)
|
|
{
|
|
CardMaster instance = CardMaster.GetInstance(CardMaster.CardMasterId.Default);
|
|
CardParameter cardParameterFromId = instance.GetCardParameterFromId(cardId);
|
|
CardParameter cardParameterFromId2 = instance.GetCardParameterFromId(cardParameterFromId.NormalCardId);
|
|
ResourcesManager.AssetLoadPathType type = ResourcesManager.AssetLoadPathType.UnitCardMaterial;
|
|
if (instance.GetCardParameterFromId(cardId).CharType != CardBasePrm.CharaType.NORMAL && !CardMaster.IsMutationCardCheck(instance.GetCardParameterFromId(cardId).BaseCardId))
|
|
{
|
|
type = ResourcesManager.AssetLoadPathType.SpellCardMaterial;
|
|
}
|
|
return Toolbox.ResourcesManager.GetAssetTypePath(cardParameterFromId2.ResourceCardId.ToString(), type);
|
|
}
|
|
|
|
private static string GetBattleLogTexturePath(int cardId)
|
|
{
|
|
CardMaster instance = CardMaster.GetInstance(CardMaster.CardMasterId.Default);
|
|
ResourcesManager.AssetLoadPathType assetLoadPathType = ResourcesManager.AssetLoadPathType.UnitHeader;
|
|
string path = instance.GetCardParameterFromId(cardId).ResourceCardId + "0";
|
|
assetLoadPathType = ((instance.GetCardParameterFromId(cardId).CharType != CardBasePrm.CharaType.NORMAL && !CardMaster.IsMutationCardCheck(instance.GetCardParameterFromId(cardId).BaseCardId)) ? ResourcesManager.AssetLoadPathType.OtherHeader : ResourcesManager.AssetLoadPathType.UnitHeader);
|
|
return Toolbox.ResourcesManager.GetAssetTypePath(path, assetLoadPathType, isfetch: true);
|
|
}
|
|
|
|
private void GetCardCountEachType(DeckData deck, out int followerCount, out int spellCount, out int amuletCount)
|
|
{
|
|
CardMaster instance = CardMaster.GetInstance(CardMaster.CardMasterId.Default);
|
|
int num = 0;
|
|
int num2 = 0;
|
|
int num3 = 0;
|
|
foreach (int cardId in deck.GetCardIdList())
|
|
{
|
|
switch (instance.GetCardParameterFromId(cardId).CharType)
|
|
{
|
|
case CardBasePrm.CharaType.NORMAL:
|
|
num++;
|
|
break;
|
|
case CardBasePrm.CharaType.SPELL:
|
|
num2++;
|
|
break;
|
|
case CardBasePrm.CharaType.FIELD:
|
|
case CardBasePrm.CharaType.CHANT_FIELD:
|
|
num3++;
|
|
break;
|
|
}
|
|
}
|
|
followerCount = num;
|
|
spellCount = num2;
|
|
amuletCount = num3;
|
|
}
|
|
|
|
private void OnClickButton()
|
|
{
|
|
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
|
|
OnClick.Call(_data);
|
|
}
|
|
}
|