private void CreateAttack()
    {
        PlayerStatsController  targetStatsController = target.gameObject.GetComponent <PlayerStatsController>();
        PlayerAttackController targetAttackHandler   = target.gameObject.GetComponent <PlayerAttackController>();

        if (targetStatsController == null || targetAttackHandler == null)
        {
            return;
        }

        Attack attack = arrowShootingDefinition.EnemyCreateAttack(shooterStatsController, targetStatsController, arrowShootingDefinition.hitBackForce);

        targetAttackHandler.OnAttacked(this.gameObject, attack);
    }
Beispiel #2
0
    public override void TriggerAttack()
    {
        base.TriggerAttack();

        Collider2D[] hittedEnemies = Physics2D.OverlapCircleAll(enemyController.meleeAttackPosition.position, meleeAttack.radiusRange, enemyData.whatIsPlayer);
        foreach (Collider2D enemy in hittedEnemies)
        {
            Attack attack = meleeAttack.EnemyCreateAttack(enemyController.statsController, enemy.gameObject.GetComponent <PlayerStatsController>(), meleeAttack.hitBackForce);
            PlayerAttackController playerAttackController = enemy.gameObject.GetComponent <PlayerAttackController>();
            if (playerAttackController != null)
            {
                playerAttackController.OnAttacked(enemyController.gameObject, attack);
            }
        }
    }