public Meteor(GameContext gameContext, IMeteorStrategy meteorStrategy, IHealthComponent healthComponent, IComponent <IGameObject> physicsComponent, IDrawableComponent <IGameObject> graphicsComponent) { _gameContext = gameContext ?? throw new ArgumentNullException(nameof(gameContext)); _meteorStrategy = meteorStrategy ?? throw new ArgumentNullException(nameof(meteorStrategy)); _healthComponent = healthComponent ?? throw new ArgumentNullException(nameof(healthComponent)); _physicsComponent = physicsComponent ?? throw new ArgumentNullException(nameof(physicsComponent)); _graphicsComponent = graphicsComponent ?? throw new ArgumentNullException(nameof(graphicsComponent)); }
public MeteorFactory(GameContext gameContext) { _gameContext = gameContext ?? throw new ArgumentNullException(nameof(gameContext)); _random = gameContext.Random ?? throw new ArgumentNullException(nameof(gameContext.Random)); _bigMeteorStrategy = new BigMeteorStrategy(); _mediumMeteorStrategy = new MediumMeteorStrategy(); _smallMeteorStrategy = new SmallMeteorStrategy(); _tinyMeteorStrategy = new TinyMeteorStrategy(); _bigMeteorSprite = new Sprite(_gameContext.AssetManager.GetTexture(GameConstants.MeteorConstants.BigMeteorConstants.BigMeteor1Constants.Textures.BrownTextureName)); _mediumMeteorSprite = new Sprite(_gameContext.AssetManager.GetTexture(GameConstants.MeteorConstants.MediumMeteorConstants.MediumMeteor1Constants.Textures.BrownTextureName)); _smallMeteorSprite = new Sprite(_gameContext.AssetManager.GetTexture(GameConstants.MeteorConstants.SmallMeteorConstants.SmallMeteor2Constants.Textures.BrownTextureName)); _tinyMeteorSprite = new Sprite(_gameContext.AssetManager.GetTexture(GameConstants.MeteorConstants.TinyMeteorConstants.TinyMeteor2Constants.Textures.BrownTextureName)); }