コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
 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);
                     }
                 });
             }
         }
     }
 }
コード例 #4
0
        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();
                        }
                    }
                }
            }
        }