Skip to content

develop‐Revival

Jeon-YJ1004 edited this page Jul 31, 2023 · 1 revision

Logic

  1. 플레이어는 Revival 스탯을 강화하거나 아이템을 통해 올릴 수 있다.
  2. 스탯은 0~2 사이이며 이는 부활 횟수를 뜻한다.
  3. 만약 스탯이 증가 되었다면 캐릭터의 체력이 처음 0이 되고 스탯 횟수 만큼 부활 할 수 있다.
    3-1. Character.cs의 TakeDamage에서 스탯 확인 후 GameManager.instance.GameOverPanelUp() 실행
    3-2. 판넬의 버튼 클릭 시 Revival.cs의 DoRevival() 실행
[Character.cs]
public void TakeDamage(float damage, int weaponIndex)
    {
        //공격 받아서 체력이 0보다 작아지면
        if (mCurrentHp <= 0)
        {
            //Revival 스탯이 0보다 크면 RevivalPanel UI가 뜬다.
            if (GameManager.instance.CharacterStats[(int)Enums.EStat.Revival] > 0)
            {
                GameManager.instance.RevivalPanelUp();
            }
            else
            {
                GameManager.instance.GameOverPanelUp();
                mbDead = true;
            }
            
            SoundManager.instance.PlaySoundEffect(Clips[((int)Enums.ECharacterEffect.Die)]);
        }
        mHpBar.SetState(mCurrentHp, mMaxHp);
    }
[GameManager.cs]
    public void RevivalPanelUp()
    {
        Time.timeScale = 0;
        RevivalPanel.SetActive(true);
    }

image

  1. 부활한 캐릭터의 체력은 최댓값의 절반이다.
[Revival.cs]
 public void DoRevival()
    {   
        GameManager.instance.Character.RevivalHp();
        GameManager.instance.RevivalPanel.SetActive(false);
        GameManager.instance.CharacterStats[(int)Enums.EStat.Revival] -= 1;
        Time.timeScale = 1;

    }
Clone this wiki locally