예제 #1
0
    private void AttackTarget()
    {
        if (attackCooldown > 0)
        {
            return;
        }

        attackCooldown = baseAttackCooldown;

        var projectile = Instantiate(
            projectilePrefab,
            firePoint.position,
            Quaternion.FromToRotation(Vector3.right, target.transform.position - firePoint.position) // towards target
            );

        // TODO : refactor this shit
        if (projectile.GetComponent <ProjectileMover>())
        {
            projectile.GetComponent <ProjectileMover>().SetTarget(target);
        }
        if (projectile.GetComponent <SplashMover>())
        {
            projectile.GetComponent <SplashMover>().SetTarget(target);
        }
        var projectileAttack = projectile.GetComponent <Attack>();

        projectileAttack.SetSourceStats(unitStatsComponent.CreateSnapshotAttackStats());
        projectileAttack.SetBaseDamage(damagePerAttack);
    }