/// <inheritdoc /> public IProjectile SpawnProjectile(ProjectileType projectileType, Vector3 position, Quaternion initRotation, IPlayer player, Vector3 movement) { var newProjectile = projectileType.ShootProjectile(GetNewID(entities), this, player, position, initRotation, movement); if (newProjectile != null) { RegisterEntity(newProjectile); projectiles.Add(newProjectile.ID, newProjectile); } return(newProjectile); }
/// <inheritdoc /> public IProjectile SpawnProjectile(ProjectileType projectileType, Vector3 position, Quaternion initRotation, IPlayer player, IRangeTarget target) { IProjectile newProjectile; try { newProjectile = projectileType.ShootProjectile(GetNewID(entities), this, player, position, initRotation, target); } catch (CreationException) { return(null); } //Could not spawn projectile, maybe out of range if (newProjectile == null) { return(null); } RegisterEntity(newProjectile); projectiles.Add(newProjectile.ID, newProjectile); return(newProjectile); }