Exemplo n.º 1
0
        void OnEnemyDeath(Unit unit)
        {
            var enemy = unit as Enemy;

            EnemyKilled?.Invoke(enemy);
            RemoveEnemy(enemy);
        }
Exemplo n.º 2
0
    public void Die()
    {
        PlayDeathSound();
        switch (enemy.enemyData.enemyType)
        {
        case "Imp":
            EnemyKilled?.Invoke(enemy.Element, 1);
            break;

        case "Gargoyle":
            EnemyKilled?.Invoke(enemy.Element, 3);
            break;

        case "Berserker":
            EnemyKilled?.Invoke(enemy.Element, 5);
            break;

        case "Ethereal":
            EnemyKilled?.Invoke(enemy.Element, 10);
            EtherealKilled?.Invoke(enemy.Element);
            break;
        }


        Destroy(gameObject);
    }
Exemplo n.º 3
0
    public void AddDeathEvent(GameObject character, GameObject damager)
    {
        eventCount++;

        if (LayerMask.LayerToName(damager.layer) == "Player")
        {
            EnemyKilled newEvent = new EnemyKilled(damager.transform.position, eventCount, character.name);
            killedList.Add(newEvent);
            Debug.Log(newEvent.GetJson());
        }
        else if (LayerMask.LayerToName(damager.layer) == "Enemy" || LayerMask.LayerToName(damager.layer) == "Collider")
        {
            string enemy = damager.transform.parent?.gameObject.name;
            if (damager.GetComponent <Spit>() != null)
            {
                enemy = "Spitter";
            }

            PlayerDeath newEvent = new PlayerDeath(character.transform.position, eventCount, enemy);
            deathList.Add(newEvent);
            Debug.Log(newEvent.GetJson());
        }
        else if (LayerMask.LayerToName(damager.layer) == "Environment")
        {
            PlayerDeath newEvent = new PlayerDeath(character.transform.position, eventCount, damager.name);
            deathList.Add(newEvent);
            Debug.Log(newEvent.GetJson());
        }
    }
Exemplo n.º 4
0
 private void DestroyEnemy(GameObject enemy)
 {
     DestroyImmediate(enemy);
     if (EnemyKilled != null)
     {
         EnemyKilled.Invoke();
     }
 }
Exemplo n.º 5
0
        private bool OnEnemyKilled(EnemyKilled signal)
        {
            var totalScoreIncrement = signal.HeroesInCaravan.Sum(heroEntity => heroEntity.EntityData.HealthPoint);

            _currentScore += totalScoreIncrement;
            AnimateEnter();
            return(true);
        }
Exemplo n.º 6
0
 private void onEnemyKilled(ICollidable i_Collidable)
 {
     if (EnemyKilled != null)
     {
         EnemyHitEventArgs enemyHitEventArgs = new EnemyHitEventArgs(i_Collidable);
         EnemyKilled.Invoke(this, enemyHitEventArgs);
     }
 }
Exemplo n.º 7
0
 private void EnemyKilledMessageReceived(EnemyKilled enemyKilled)
 {
     Debug.Log($"Enemy {enemyKilled.enemyId} killed by {enemyKilled.id}");
     pendingActions.Enqueue(() =>
     {
         enemyManager.KillEnemy(enemyKilled.enemyId);
     });
 }
Exemplo n.º 8
0
    /// <summary>
    /// Deals damage to the enemy. If the health reaches 0, the enemy invoke the killed event and disable itself.
    /// </summary>
    /// <returns>The remaining health of the enemy.</returns>
    public float DealDamage(float damage)
    {
        m_Health -= damage;

        if (m_Health < 0)
        {
            EnemyKilled?.Invoke(false, 0);
            gameObject.SetActive(false);
            return(0);
        }

        return(m_Health);
    }
Exemplo n.º 9
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.TryGetComponent(out EnemyMover enemyMover))
        {
            enemyMover.gameObject.SetActive(false);
            EnemyKilled?.Invoke();
        }

        if (collision.TryGetComponent(out Booster booster))
        {
            _playerMover.StartBoosting(booster.BonusSpeed, booster.Duration);
            booster.gameObject.SetActive(false);
        }
    }
Exemplo n.º 10
0
        private void PlayerAttack(int index)
        {
            enemyHealthBars[index].Progress -= (int)(AccountManager.CurrentUser.Attack / (float)enemy.Health * 100);

            Animation?.Invoke(EAnimationTarget.Player, index);

            if (enemyHealthBars[index].Progress <= 0)
            {
                KillEnemy(index);
                EnemyKilled?.Invoke(index);
            }

            if (EnemiesAreDead)
            {
                BattleEnd?.Invoke(BattleCore.EBattleEndType.Won);
            }
        }
Exemplo n.º 11
0
    /// <summary>
    /// Once there is no more tiles to travel to in the path the enemy invoke the killed event and disable itself.
    /// </summary>
    private void ReachEnd()
    {
        int damageToDealEnemy = 0;

        switch (m_Type)
        {
        case UnitType.Standard:
            damageToDealEnemy = m_StandardUnitDamage;
            break;

        case UnitType.Big:
            damageToDealEnemy = m_LargeUnitDamage;
            break;
        }
        if (EnemyKilled != null)
        {
            EnemyKilled.Invoke(false, damageToDealEnemy);
        }
        gameObject.SetActive(false);
    }
Exemplo n.º 12
0
 private void OnEnemyKilled()
 {
     EnemyKilled?.Invoke();
 }
		void OnEnemyKilled (EnemyKilled e)
		{
			characterSpeech.Speak (EnemyKilledSpeech [Random.Range (0, EnemyKilledSpeech.Length)]);
		}
Exemplo n.º 14
0
 void OnEnemyKilled(Enemy enemy)
 {
     EnemyKilled?.Invoke(enemy);
 }
Exemplo n.º 15
0
 private void OnCollisionEnter2D(Collision2D other)
 {
     EnemyKilled?.Invoke(10);
     Destroy(other.gameObject);
     Destroy(gameObject);
 }