Exemplo n.º 1
0
    private IEnumerator WaitForeRevive(DeadData deadData)
    {
        yield return(new WaitForSeconds(ReviveWaitTime));

        ReviveAnimator.SetTrigger("Revive");
        Object.Destroy(deadData);
        var abilities      = gameObject.GetComponents <Ability>();
        var childAbilities = gameObject.GetComponentsInChildren <Ability>();
        var behaviours     = gameObject.GetComponentsInParent <Behaviour>();

        Data.CurrentHealth = Data.BaseHealth;
        foreach (var ability in abilities)
        {
            ability.enabled = true;
        }
        foreach (var ability in childAbilities)
        {
            ability.enabled = true;
        }
        foreach (var behaviour in behaviours)
        {
            throw new NotImplementedException("Behaciour revive is not done yet");
        }
        AgentToPlace.isStopped          = true;
        AgentToPlace.transform.position = ReviveSpot.position;
        AgentToPlace.nextPosition       = ReviveSpot.position;
        AgentToPlace.SetDestination(ReviveSpot.position);
        _gameStartSignal.Fire();
    }
Exemplo n.º 2
0
 private void Update()
 {
     if (Data.CurrentHealth <= 0 && DeadData == null)
     {
         var abilities        = gameObject.GetComponents <Ability>();
         var childAbilities   = gameObject.GetComponentsInChildren <Ability>();
         var parentBehaviours = gameObject.GetComponentsInParent <Behaviour>();
         foreach (var ability in abilities)
         {
             if (!ability.ResistsDeath)
             {
                 ability.enabled = false;
                 ability.Cancel();
             }
         }
         foreach (var ability in childAbilities)
         {
             if (!ability.ResistsDeath)
             {
                 ability.enabled = false;
                 ability.Cancel();
             }
         }
         foreach (var behaviour in parentBehaviours)
         {
             behaviour.DeactivateBehaviour();
         }
         DeadData = gameObject.AddComponent <DeadData>();
         foreach (var ability in ActivateOnDeath)
         {
             ability.Activate();
         }
         _taskSystem.StopAll(this.gameObject);
     }
 }
Exemplo n.º 3
0
 void Update()
 {
     if (_deadData == null)
     {
         _deadData = gameObject.GetComponent <DeadData>();
     }
     if (_deadData != null && !_deadData.Dying)
     {
         _deadData.Dying = true;
         if (Sound != null)
         {
             Sound.Play();
         }
         AnimationControl.SetTrigger("Die");
     }
 }