public BaloonCommand(BaloonFactory factory, BaloonTypes baloonType) { this._factory = factory; this._baloonType = baloonType; this._singleton = DebugLogSingleton.GetInstance(); this._singleton.Log <BaloonCommand>("Command", "Initializing baloon command"); }
public void HandleClick(BaloonFactory baloonFactory, BaloonTypes baloonType) { ICommand command = new BaloonCommand(baloonFactory, baloonType); IBaloon baloon = command.Execute(); if (baloon != null) { _gameState.AddRenderable(baloon); } }
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); }