Ejemplo n.º 1
0
    private void FireProjectile()
    {
        Arrow.gameObject.SetActive(false);

        if (Arrows == null)
        {
            Arrows = new List <Projectile>();
        }

        int?       projectileIndex = null;
        Projectile arrowP          = FightUtils.GetAvailableProjectile(Arrows, CreateArrow, _onHit, FightUtils.OppositeTeam(Intell.IAm), ref projectileIndex);

        if (arrowP == null && projectileIndex != null)
        {
            arrowP = Arrows[projectileIndex.Value];
        }
        else
        {
            Arrows.Add(arrowP);
            projectileIndex = Arrows.Count;
        }
        var pos = Intell._attackController.GetEnemyTargetPosition();

        // fire projectile
        arrowP.Fire(pos, transform.eulerAngles);
    }
Ejemplo n.º 2
0
    private void FireProjectile()
    {
        if (Projectiles == null)
        {
            Projectiles = new List <Projectile>();
        }

        for (var i = 0; i < 3; i++)
        {
            int?       projectileIndex = null;
            Projectile sharpnell       = FightUtils.GetAvailableProjectile(Projectiles, CreateShrapnell, _onHit, FightUtils.OppositeTeam(Intell.IAm), ref projectileIndex);
            if (sharpnell == null && projectileIndex != null)
            {
                sharpnell = Projectiles[projectileIndex.Value];
            }
            else
            {
                Projectiles.Add(sharpnell);
                projectileIndex = Projectiles.Count;
            }

            // Debug.Log(
            //     __debug.DebugList<GameObject>(ShrapnellPos, "ShrapnellPos", (go) =>
            //     {
            //         return go.name;
            //     })
            // );
            if (__list.isNilOrEmpty(ShrapnellPos) == false)
            {
                sharpnell.Fire(
                    transform.TransformPoint(ShrapnellPos[i].transform.position),
                    transform.eulerAngles);
            }
        }
    }