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); } } } }
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); } } }