skill cooltime 적용 로직 테스트 코드

This commit is contained in:
aube.lee
2025-02-08 14:49:06 +09:00
parent d4bafd6cec
commit 57eb4abea3
9 changed files with 118 additions and 165 deletions

View File

@@ -9,7 +9,6 @@ namespace TON
public class ControllerUI_SkillButton : MonoBehaviour
{
public SkillData skillData;
[SerializeField] private TextMeshProUGUI coolTimeText;
[SerializeField] private Image coolTimeDimd;
[SerializeField] private GameObject skillIcon;
@@ -18,22 +17,59 @@ namespace TON
[SerializeField]
private SerializableDictionary<string, Sprite> skillSprite = new SerializableDictionary<string, Sprite>();
public string skillId;
public float maxCooldown;
public void Initalize(SkillData skillData)
{
Debug.Log($"Initalize :: {skillData.id}");
this.skillData = skillData;
skillId = skillData.id;
maxCooldown = skillData.coolDown;
InitSkillData(skillData);
skillIcon.SetActive(true);
skillIcon.GetComponent<Image>().sprite = skillSprite.GetValueOrDefault(skillData.id, null);
lockImage.SetActive(false);
}
public void SetCoolTime(float remain, float max)
public void SetCoolTime(float remain)
{
coolTimeText.gameObject.SetActive(remain > 0f);
coolTimeText.text = $"{Mathf.CeilToInt(remain)}s";
coolTimeDimd.fillAmount = remain / max;
coolTimeDimd.fillAmount = remain / maxCooldown;
}
private SkillBase InitSkillData(SkillData skillData)
{
switch (skillData.id)
{
case "K0001":
var fireBall = gameObject.AddComponent<FireBall>();
fireBall.Init(skillData);
return fireBall;
case "K0002":
var iceBall = gameObject.AddComponent<IceBall>();
iceBall.Init(skillData);
return iceBall;
case "K0003":
return null;
case "K0004":
return null;
case "K0005":
return null;
case "K0006":
return null;
case "K0007":
return null;
case "K0008":
return null;
default:
return null;
}
}
}