Ejemplo n.º 1
0
    public void SetRecoverHP(int recover)
    {
        if (LiveState == LiveStateEnum.Dying)
        {
            LiveState = LiveStateEnum.Alive;
            GrayScale.SetScale(1);
            Animator.SetBool("IsDying", false);
        }

        Info.CurrentHP += recover;
    }
Ejemplo n.º 2
0
    public virtual void SetDamage(int damage)
    {
        Info.CurrentHP -= damage;
        _getDamage     += damage;

        if (Info.IsSleeping)
        {
            //解除睡眠狀態
            Info.RemoveSleep();
        }

        if (Info.CurrentHP <= 0)
        {
            if (Info.HPQueue.Count > 0)
            {
                Info.HPDequeue();
            }
            else
            {
                if (!Info.IsTeamMember)
                {
                    LiveState = LiveStateEnum.Dead;
                }
                else
                {
                    if (LiveState == LiveStateEnum.Alive)
                    {
                        LiveState = LiveStateEnum.Dying;
                    }
                    else if (LiveState == LiveStateEnum.Dying)
                    {
                        LiveState = LiveStateEnum.Dead;
                    }
                }
            }
        }


        if (GetDamageHandler != null)
        {
            GetDamageHandler(this);
        }
    }