2025-05-14 17:54:08 +09:00

96 lines
2.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class UpgradeCard : MonoBehaviour
{
public Sprite[] upgradeSpriteResource;
UpgradeManager upgradeManager;
StatType currentStatType;
Image[] upgradeIcon;
TextMeshProUGUI upgradeText;
void Awake()
{
upgradeManager = UpgradeManager.Instance;
upgradeIcon = gameObject.GetComponentsInChildren<Image>();
upgradeText = gameObject.GetComponentInChildren<TextMeshProUGUI>();
}
public void Init(StatType statType)
{
currentStatType = statType;
//텍스트 설정
upgradeText.text = StatNameText(currentStatType) + " Lv." + UpgradeLevelText(currentStatType);
//아이콘 설정
upgradeIcon[1].sprite = upgradeSpriteResource[(int)statType-1];
}
/// <summary>
/// 강화 요소 텍스트 반환
/// </summary>
/// <param name="statType"></param>
/// <returns></returns>
private String StatNameText(StatType statType)
{
switch (statType)
{
case StatType.AttackPower:
return "공격력";
case StatType.AttackSpeed:
return "공격 속도";
case StatType.MoveSpeed:
return "이동 속도";
case StatType.DashCoolDown:
return "대시 쿨타임";
case StatType.Heart:
return "최대 하트";
case StatType.Max:
return "용사";
default:
return "";
}
}
/// <summary>
/// 레벨 텍스트 반환
/// </summary>
/// <param name="statType"></param>
/// <returns></returns>
private String UpgradeLevelText(StatType statType)
{
if (statType == StatType.Max)
return "999";
if (upgradeManager.upgradeStat.IsOneBeforeMax(statType))
{
return "Max";
}
else
{
return (upgradeManager.upgradeStat.CurrentUpgradeLevel(statType)+1).ToString();
}
}
/// <summary>
/// 강화 카드 클릭
/// </summary>
public void ClickCard()
{
//레벨 증가
upgradeManager.upgradeStat.UpgradeLevel(currentStatType);
//UI 비활성화
upgradeManager.DestroyUpgradeCard();
}
}