protected override void OnGetHit(EventManager.HitInfo hitInfo) { if (hitInfo.actorType == ActorFilter.ActorType.Zombie || hitInfo.HitCollider != m_collider) { return; } base.OnGetHit(hitInfo); if (GetCharacterStatus().HP <= 0) { EnableLight(false); ReplacePlayerWithEmpty(); } }
protected override void OnGetHit(EventManager.HitInfo hitInfo) { if (hitInfo.HitCollider == m_collider) { GetCharacterStatus().AddHP(-hitInfo.Damage); if (GetCharacterStatus().HP <= 0) { if (this == null || Engine.ActorManager == null) { return; } ActorManager.DestroyActor(this); } } }
protected override void OnGetHit(EventManager.HitInfo hitInfo) { base.OnGetHit(hitInfo); if (hitInfo.HitCollider == m_collider) { if (Engine.ActorManager != null) { if (hitInfo.actorType == ActorFilter.ActorType.Zombie && GetCharacterStatus().HP <= 0) { TimerManager.Schedule(2.3f, delegate { if (this == null || Engine.ActorManager == null) { return; } if (!NetworkManager.IsOffline) { if (!ActorManager.IsMyActor(this)) { return; } PhotonEventSender.OnActorCreated += OnZombieCreated; m_createdZombiePhotonViewID = PhotonNetwork.AllocateViewID(); PhotonEventSender.CreateActor(GameManager.GameSetting.ZombieActorPrefabID, transform.position, transform.rotation.eulerAngles, m_createdZombiePhotonViewID); } else { ReplacePlayerWithEmpty(); Engine.ActorManager.CreateActor(GameManager.GameSetting.ZombieActorPrefabID, delegate(Actor actor) { ZombieActor _zombie = actor as ZombieActor; _zombie.SetIsTransformedFromOthers(); ActorManager.DestroyActor(this); }, transform.position, transform.rotation.eulerAngles); } }); } } } }
protected virtual void OnGetHit(EventManager.HitInfo hitInfo) { if (hitInfo.HitCollider == m_collider) { if (Engine.ActorManager != null) { if (GetCharacterStatus().HP < 0) { return; } GetCharacterStatus().AddHP(-hitInfo.Damage); if (GetCharacterStatus().HP <= 0) // TESTING { ForceIdle(); m_aiController.enabled = false; m_actorController.enabled = false; m_collider.enabled = false; m_rigidBody.useGravity = false; LockInput(); // TODO: real game over flow if (CameraController.MainCameraController.TrackingGameObjectInstanceID == gameObject.GetInstanceID()) { CameraController.MainCameraController.StopTrack(); } if (OnActorDied != null) { OnActorDied(this); } if (m_actorAniamtorController != null) { m_actorAniamtorController.SetDie(); } } } } }