Beispiel #1
0
 private void OnCharacterDied(CharacterDied C)
 {
     if (C.DeadCharacter == gameObject)
     {
         Instantiate(Resources.Load("Prefabs/VFX/BigGuyDeath"), transform.position, Quaternion.Euler(0, 0, 0));
         player.SetVibration(0, DeadVibration, DeadVibrationTime);
     }
 }
Beispiel #2
0
        /// <summary>
        /// 角色死亡动画播放完毕,由动画状态机调用
        /// </summary>
        public void OnDieAnimationPlayedOver()
        {
            GameObject.Destroy(gameObject);

            CharacterDied?.Invoke(this, new CharacterDiedEventArgs {
                Character = character
            });
        }
Beispiel #3
0
 private void OnCharacterDied(CharacterDied C)
 {
     if (C.DeadCharacter == detected_character)
     {
         alert_time_count = 0;
         stun_time_count  = 0;
         RemoveLaser();
     }
 }
        public void Die(CollisionSide variant = CollisionSide.Front)
        {
            if (!IsAlive)
            {
                return;
            }

            IsAlive = false;
            Speed   = 0;
            SetFreezeState(true);

            CharacterDied?.Invoke(variant);
        }
    public void TakeDamage(float magnitude)
    {
        health -= Mathf.RoundToInt(magnitude * damageMultiplier);
        health  = Mathf.Clamp(health, 0, maxHealth);

        vignette.intensity.value = Mathf.Lerp(1, 0, (float)health / maxHealth);

        if (health == 0)
        {
            CharacterDied?.Invoke();
            if (respawnRoutine == null)
            {
                respawnRoutine = StartCoroutine(Respawn(respawnTime));
            }
        }
    }
 /// <summary>
 /// Changes a character's current health by an amount. A character's current health cannot excede his current max health.
 /// If a character's health reaches 0, the character died event is raised.
 /// </summary>
 /// <param name="character">The character whose current health is modified.</param>
 /// <param name="amount">The amount to change current health by. Use negative numbers to decrease health.</param>
 public void ModifyCurrentHealth(Character character, int amount)
 {
     character.CurrentHealth += amount;
     if (character.CurrentHealth <= 0)
     {
         character.CurrentHealth = 0;
         CharacterDied?.Invoke(this, new CharactersDiedEventArgs()
         {
             DyingCharacters = new List <Character>()
             {
                 character
             }
         });
     }
     else if (character.CurrentHealth > character.CurrentMaxHealth)
     {
         character.CurrentHealth = character.CurrentMaxHealth;
     }
 }
Beispiel #7
0
 public void Kill()
 {
     gameObject.SetActive(false);
     CharacterDied?.Invoke();
 }
 protected virtual void OnEnable()
 {
     onCharacterDiedE += GameController.CharacterDied;
 }
 protected virtual void OnDisable()
 {
     onCharacterDiedE -= GameController.CharacterDied;
 }
 public static void RegisterForCharacterDied(CharacterDied listener)
 => listOfListenerCharacterDied += listener;
 private void OnCharacterDied(CharacterDied C)
 {
     StartCoroutine(PerformLoadLevel());
 }
Beispiel #12
0
 private void OnCharacterDied(CharacterDied C)
 {
     status = EnemyStatus.Patrol;
 }