private IProjectile InstantiateProjectile(ProjectileCategory category)
    {
        IProjectile projectile = _projectileFactory.Create(category);

        projectile.Dispose();
        return(projectile);
    }
    public IProjectile TakeProjectile(ProjectileCategory category)
    {
        if (_projectiles[category].Count <= 0)
        {
            _projectiles[category].Push(InstantiateProjectile(category));
        }

        IProjectile projectile = _projectiles[category].Pop();

        projectile.SetOnDisposeAction(DisposeProjectile);
        return(projectile);
    }
Ejemplo n.º 3
0
 /// <summary>
 /// Returns whether the specified projectile category can be shot by the weapon.
 /// </summary>
 public bool CanShootProjectile(ProjectileCategory category)
 {
     return(_validProjectileCategories.Contains(category));
 }