public void HandleClick(BaloonFactory baloonFactory, BaloonTypes baloonType) { ICommand command = new BaloonCommand(baloonFactory, baloonType); IBaloon baloon = command.Execute(); if (baloon != null) { _gameState.AddRenderable(baloon); } }
public override void BuildWave() { var factory = new BaloonFactory(true); IBaloon weakBaloon = factory.CreateNew(BaloonTypes.Weak); for (var i = 0; i < 10; i++) { _wave.Baloons.Add((IBaloon)weakBaloon.Clone()); _singleton.Log <IPrototype>("Prototype", "Cloning baloon while creating wave"); } }
public override void BuildWave() { var factory = new BaloonFactory(true); IBaloon weakBaloon = factory.CreateNew(BaloonTypes.Weak); IBaloon intermediateBaloon = factory.CreateNew(BaloonTypes.Intermediate); for (var i = 0; i < 10; i++) { this._wave.Baloons.Add((IBaloon)weakBaloon.Clone()); } for (var i = 0; i < 10; i++) { this._wave.Baloons.Add((IBaloon)intermediateBaloon.Clone()); } }
public IBaloon CreateNew(BaloonTypes baloonType) { _singleton.Log <BaloonFactory>("Factory", "Creating baloon"); IBaloon baloon = null; if (null != createdBaloons.Where(x => x.GetBaloonType() == baloonType && x.GetIsDead()).FirstOrDefault()) { baloon = createdBaloons.Where(x => x.GetBaloonType() == baloonType && x.GetIsDead()).First(); baloon.SetDefaultValues(); _singleton.Log <BaloonFactory>("Flyweight", "Objects count: " + createdBaloons.Count.ToString()); } else { switch (baloonType) { case BaloonTypes.Weak: baloon = new WeakBaloon(isPlayer1Factory); createdBaloons.Add(baloon); return(baloon); case BaloonTypes.Intermediate: baloon = new IntermediateBaloon(isPlayer1Factory); createdBaloons.Add(baloon); return(baloon); case BaloonTypes.Powerful: baloon = new PowerfulBaloon(isPlayer1Factory); createdBaloons.Add(baloon); return(baloon); default: return(null); } } return(null); }