feat: 게임 내에서 포션 사용 조건 및 로직 수정
This commit is contained in:
@@ -210,8 +210,20 @@ namespace TON
|
|||||||
isRecovering = false;
|
isRecovering = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UsePotion(string type)
|
public void UsePotion(string type, System.Action<bool> callback)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (type.Equals("HP") && currentHP == maxHP)
|
||||||
|
{
|
||||||
|
callback?.Invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (type.Equals("MP") && currentSP == maxSP)
|
||||||
|
{
|
||||||
|
callback?.Invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case "HP":
|
case "HP":
|
||||||
@@ -229,6 +241,8 @@ namespace TON
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
callback?.Invoke(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SkillAttack(string skillId)
|
public void SkillAttack(string skillId)
|
||||||
|
|||||||
@@ -26,17 +26,22 @@ namespace TON
|
|||||||
[SerializeField] private TextMeshProUGUI hpPotionCount;
|
[SerializeField] private TextMeshProUGUI hpPotionCount;
|
||||||
[SerializeField] private TextMeshProUGUI mpPotionCount;
|
[SerializeField] private TextMeshProUGUI mpPotionCount;
|
||||||
|
|
||||||
|
private int potionLimit = 5; // 게임에서 사용할 수 있는 포션 수 제한
|
||||||
|
private int hpPotion = 0;
|
||||||
|
private int mpPotion = 0;
|
||||||
|
|
||||||
public List<ControllerUI_ItemButton> itemButtons = new List<ControllerUI_ItemButton>();
|
public List<ControllerUI_ItemButton> itemButtons = new List<ControllerUI_ItemButton>();
|
||||||
|
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
skillButtonPrefab.gameObject.SetActive(false);
|
skillButtonPrefab.gameObject.SetActive(false);
|
||||||
Initalize();
|
Initalize();
|
||||||
|
InitalizeItemData();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FixedUpdate()
|
private void FixedUpdate()
|
||||||
{
|
{
|
||||||
InitalizeItemData();
|
SetPotionText();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Initalize()
|
public void Initalize()
|
||||||
@@ -76,30 +81,54 @@ namespace TON
|
|||||||
{
|
{
|
||||||
userItem = PlayerDataManager.Singleton.userItem;
|
userItem = PlayerDataManager.Singleton.userItem;
|
||||||
|
|
||||||
hpPotionCount.text = $"{userItem.hpPotion}";
|
// 게임 진입 시 포션 초기 수량 세팅팅
|
||||||
mpPotionCount.text = $"{userItem.mpPotion}";
|
hpPotion = userItem.hpPotion >= potionLimit ? potionLimit : userItem.hpPotion;
|
||||||
|
mpPotion = userItem.mpPotion >= potionLimit ? potionLimit : userItem.mpPotion;
|
||||||
|
|
||||||
|
SetPotionText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 현재 인게임 내에서 사용중인 포션의 숫자 업데이트
|
||||||
|
private void SetPotionText()
|
||||||
|
{
|
||||||
|
hpPotionCount.text = $"{hpPotion}";
|
||||||
|
mpPotionCount.text = $"{mpPotion}";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void OnClickHpPotionButton()
|
public void OnClickHpPotionButton()
|
||||||
{
|
{
|
||||||
if (userItem.hpPotion <= 0)
|
if (hpPotion <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
PlayerDataManager.Singleton.UsePotion("HP");
|
// 현재 캐릭터가 포션을 사용할 수 있는 상태일때만 포션 수 감소
|
||||||
|
linkedCharactor.UsePotion("HP", isSuccess =>
|
||||||
itemButtons[0].SetCurrentCoolDown();
|
{
|
||||||
linkedCharactor.UsePotion("HP");
|
if (isSuccess)
|
||||||
|
{
|
||||||
|
hpPotion--;
|
||||||
|
PlayerDataManager.Singleton.UsePotion("HP");
|
||||||
|
itemButtons[0].SetCurrentCoolDown();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnClickMpPotionButton()
|
public void OnClickMpPotionButton()
|
||||||
{
|
{
|
||||||
if (userItem.mpPotion <= 0)
|
if (mpPotion <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
PlayerDataManager.Singleton.UsePotion("MP");
|
// 현재 캐릭터가 포션을 사용할 수 있는 상태일때만 포션 수 감소
|
||||||
|
linkedCharactor.UsePotion("MP", isSuccess =>
|
||||||
|
{
|
||||||
|
if (isSuccess)
|
||||||
|
{
|
||||||
|
mpPotion--;
|
||||||
|
PlayerDataManager.Singleton.UsePotion("MP");
|
||||||
|
itemButtons[1].SetCurrentCoolDown();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
itemButtons[1].SetCurrentCoolDown();
|
|
||||||
linkedCharactor.UsePotion("MP");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnClickJumpButton()
|
public void OnClickJumpButton()
|
||||||
|
|||||||
Reference in New Issue
Block a user