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); }
/// <summary> /// Returns whether the specified projectile category can be shot by the weapon. /// </summary> public bool CanShootProjectile(ProjectileCategory category) { return(_validProjectileCategories.Contains(category)); }