Beispiel #1
0
    void HitRPC(int value, Vector3 pos = default(Vector3), float nuckBackDistance = 0, Player.bulletType type = Player.bulletType.common)
    {
        flashwhite.Flash();
        hp -= value;

        if (hp <= 0)
        {
            setTrigger(3);
        }
        else
        {
            setTrigger(2);
        }

        if (pos != Vector3.zero)
        {
            zombie.OnDisable();
            canMove   = false;
            isFinding = false;

            Vector3 dir      = (transform.position - pos).normalized;
            Vector2 savedVel = GetComponent <Rigidbody2D>().velocity;
            rigid.velocity = Vector2.zero;
            if (type == Player.bulletType.electric)
            {
                rigid.DOMove(transform.position, nuckBackTime * 2).SetEase(nuckBackEase).OnComplete(() =>
                {
                    rigid.velocity = savedVel;
                    canMove        = true;
                    if (hp <= 0)
                    {
                        Die();
                    }
                    else
                    {
                        if (zombie.zombieIndex == 1 || zombie.zombieIndex == 3 || zombie.zombieIndex == 4)
                        {
                            setAnim(1);
                        }
                        else if (zombie.zombieIndex == 2)
                        {
                            setAnim(0);
                        }
                    }
                    if (zombie.zombieIndex == 2)
                    {
                        zombie.stopPoison();
                    }
                });
            }
            else
            {
                if (nuckBackDistance != 0 && nuckBackTime != 0)
                {
                    rigid.DOMove(transform.position + dir * nuckBackDistance, nuckBackTime).SetEase(nuckBackEase).OnComplete(() =>
                    {
                        rigid.velocity = savedVel;
                        canMove        = true;
                        if (hp <= 0)
                        {
                            Die();
                        }
                        else
                        {
                            if (zombie.zombieIndex == 1 || zombie.zombieIndex == 3 || zombie.zombieIndex == 4)
                            {
                                setAnim(1);
                            }
                            else if (zombie.zombieIndex == 2)
                            {
                                setAnim(0);
                            }
                        }
                        if (zombie.zombieIndex == 2)
                        {
                            zombie.stopPoison();
                        }
                    });
                }
                else
                {
                    rigid.velocity = savedVel;
                    canMove        = true;
                    if (hp <= 0)
                    {
                        Die();
                    }
                    else
                    {
                        if (zombie.zombieIndex == 1 || zombie.zombieIndex == 3 || zombie.zombieIndex == 4)
                        {
                            setAnim(1);
                        }
                        else if (zombie.zombieIndex == 2)
                        {
                            setAnim(0);
                        }
                    }
                    if (zombie.zombieIndex == 2)
                    {
                        zombie.stopPoison();
                    }
                }
            }

            zombie.Detect(15);
        }
        else
        {
            if (hp <= 0)
            {
                Die();
            }
            else
            {
                if (zombie.zombieIndex == 1 || zombie.zombieIndex == 3 || zombie.zombieIndex == 4)
                {
                    setAnim(1);
                }
                else if (zombie.zombieIndex == 2)
                {
                    setAnim(0);
                }
            }
        }
    }
Beispiel #2
0
 public void Hit(int value, Vector3 pos = default(Vector3), float nuckBackDistance = 0, Player.bulletType type = Player.bulletType.common)
 {
     sound.Play(1, true, 0.3f);
     if (PhotonNetwork.OfflineMode)
     {
         HitRPC(value, pos, nuckBackDistance, type);
     }
     else
     {
         if (PhotonNetwork.IsMasterClient)
         {
             pv.RPC("HitRPC", RpcTarget.All, value, pos, nuckBackDistance, type);
         }
     }
 }