Esempio n. 1
0
 public BaloonCommand(BaloonFactory factory, BaloonTypes baloonType)
 {
     this._factory    = factory;
     this._baloonType = baloonType;
     this._singleton  = DebugLogSingleton.GetInstance();
     this._singleton.Log <BaloonCommand>("Command", "Initializing baloon command");
 }
Esempio n. 2
0
        public void HandleClick(BaloonFactory baloonFactory, BaloonTypes baloonType)
        {
            ICommand command = new BaloonCommand(baloonFactory, baloonType);
            IBaloon  baloon  = command.Execute();

            if (baloon != null)
            {
                _gameState.AddRenderable(baloon);
            }
        }
Esempio n. 3
0
        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);
        }