コード例 #1
0
        public void HandleClick(BaloonFactory baloonFactory, BaloonTypes baloonType)
        {
            ICommand command = new BaloonCommand(baloonFactory, baloonType);
            IBaloon  baloon  = command.Execute();

            if (baloon != null)
            {
                _gameState.AddRenderable(baloon);
            }
        }
コード例 #2
0
        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");
            }
        }
コード例 #3
0
        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());
            }
        }
コード例 #4
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);
        }