public void GenerateText_ShouldReturnTextObject_WhenInputIsNotNull()
        {
            //Arrange
            var input = "Mary had a little lamb.";

            //Act
            var resultTypeName = TextFactory.GenerateText(input).GetType().Name;

            //Assert
            Assert.Equal(typeof(Text).Name, resultTypeName);
        }
Beispiel #2
0
        public NameInputState(ButtonFactory buttonFactory, TextFactory textFactory, IPostOfficeService postOfficeService, Rectangle bounds)
        {
            // Initialise fields
            StateRegisterName = "NameInput";
            _maxLen           = 5;

            // Set up buttons
            #region Buttons

            // Buttons
            PostOfficeEventArgs args;
            _buttons = new List <Button>();

            // Back button
            args = new PostOfficeEventArgs()
            {
                SendAddress = "StateManager",
                MessageName = "ChangeState",
                Data        = Encoding.ASCII.GetBytes("Menu")
            };

            _buttons.Add(buttonFactory.GenerateButton("Back", 100, 100, args));

            // Play button
            var playArgs = new PostOfficeEventArgs()
            {
                SendAddress = "StateManager",
                MessageName = "ChangeState",
                Data        = Encoding.ASCII.GetBytes("FlavourText")
            };

            _buttons.Add(buttonFactory.GenerateButton("Play", 100, 100, playArgs));

            // Get real values
            var seperation = 100;
            var totalWidth = (_buttons[0].Width * 2) + seperation;
            var leftSpace  = bounds.Width - totalWidth;
            var margin     = leftSpace / 2;

            var yValue = 300;

            // Set real values
            _buttons[0].Position = new Vector2(margin, yValue);
            _buttons[1].Position = new Vector2(margin + seperation + _buttons[0].Width, yValue);

            #endregion

            // Initialise more fields
            _nameHelper        = new NameInputHelper(_maxLen);
            _textFactory       = textFactory;
            _postOfficeService = postOfficeService;
            _name = _textFactory.GenerateText(_nameHelper.GetName(), margin, 100);
        }
Beispiel #3
0
        private List <Text> GenerateTexts(List <string> lines)
        {
            // Create loads of text objects because it's a pain
            var textArray = lines.ToArray();

            // Offsets
            var startY = 20;
            var x      = 20;

            // Add all the results
            var result = new List <Text>();

            for (int i = 0; i < textArray.Length; i++)
            {
                result.Add(_textFactory.GenerateText(textArray[i], x, startY + (i * 50)));
            }

            return(result);
        }
Beispiel #4
0
        private List <Text> GenerateTexts(List <string> lines)
        {
            // Create the array
            var textArray = lines.ToArray();

            // Get the starting coords
            var startY = 20;
            var x      = 20;

            // The results list
            var result = new List <Text>();

            for (int i = 0; i < textArray.Length; i++)
            {
                // Fill it in
                result.Add(_textFactory.GenerateText(textArray[i], x, startY + (i * 50)));
            }

            return(result);
        }
Beispiel #5
0
        public MenuState(ButtonFactory buttonFactory, TextFactory textFactory)
        {
            StateRegisterName = "Menu";

            // Buttons
            _buttons = new List <Button>();

            // Play button
            var playArgs = new PostOfficeEventArgs()
            {
                SendAddress = "StateManager",
                MessageName = "ChangeState",
                Data        = Encoding.ASCII.GetBytes("NameInput")
            };

            _buttons.Add(buttonFactory.GenerateButton("Play", 100, 100, playArgs));

            // Leaderboard
            var leaderboardArgs = new PostOfficeEventArgs()
            {
                SendAddress = "StateManager",
                MessageName = "ChangeState",
                Data        = Encoding.ASCII.GetBytes("Leaderboard")
            };

            _buttons.Add(buttonFactory.GenerateButton("Leaderboard", 100, 150, leaderboardArgs));


            // Exit
            var exitArgs = new PostOfficeEventArgs()
            {
                SendAddress = "StateManager",
                MessageName = "ChangeState",
                Data        = Encoding.ASCII.GetBytes("Exit")
            };

            _buttons.Add(buttonFactory.GenerateButton("Exit", 100, 200, exitArgs));
            _textFactory = textFactory;

            _title = _textFactory.GenerateText("Siege of Brightforest", 400, 100);
        }
Beispiel #6
0
        public PlayState(IPostOfficeService postOfficeService, SquirrelFactory squirrelFactory, ButtonFactory buttonFactory, TextFactory textFactory, StatsManager statsManager, MoneyManager moneyManager, Texture2D background, Rectangle bounds, Texture2D upgradebar, Texture2D stone, Gate gate)
        {
            _inWave  = true;
            _wave    = 0;
            _enemies = new List <Squirrel>();
            _archers = new List <Archer>();


            StateRegisterName  = "Play";
            _postOfficeService = postOfficeService;
            _squirrelFactory   = squirrelFactory;
            _buttonFactory     = buttonFactory;
            _textFactory       = textFactory;
            _statsManager      = statsManager;
            _moneyManager      = moneyManager;
            _background        = background;
            _stone             = stone;
            _gate   = gate;
            _bounds = new Rectangle(bounds.X, bounds.Y, bounds.Width, bounds.Height - 100);

            _upgradesBar = new UpgradesBar(new Vector2(0, _bounds.Height), new Rectangle(0, 0, _bounds.Width, 100), upgradebar);


            #region UpgradeButtons

            _upgradeButtons = new List <Button>();

            // Add archer
            var addArcherArgs = new PostOfficeEventArgs()
            {
                SendAddress = "PlayState",
                MessageName = "AddArcher",
                Data        = new byte[0]
            };

            _upgradeButtons.Add(_buttonFactory.GenerateButton("New Archer", 30, _bounds.Height + 5, addArcherArgs));

            // Increase Rate of Fire

            var rateOfFireArgs = new PostOfficeEventArgs()
            {
                SendAddress = "StatsManager",
                MessageName = "ModifyRateOfFire",
                Data        = new byte[0]
            };

            _upgradeButtons.Add(_buttonFactory.GenerateButton("RoF++", 230, _bounds.Height + 5, rateOfFireArgs));

            // Increase damage modifier

            var damageArgs = new PostOfficeEventArgs()
            {
                SendAddress = "StatsManager",
                MessageName = "ModifyArrowDamage",
                Data        = new byte[0]
            };

            _upgradeButtons.Add(_buttonFactory.GenerateButton("Damage++", 430, _bounds.Height + 5, damageArgs));

            #endregion


            #region Text

            // Generate the text objects

            _amountOfArchers =
                _textFactory.GenerateText($"{_archers.Count.ToString()} Archer(s)", 30, _bounds.Height + 55);

            _rofLevel = _textFactory.GenerateText($"Level {_statsManager.RateOfFireLevel}", 230, _bounds.Height + 55);

            _damageLevel =
                _textFactory.GenerateText($"{_statsManager.DamageModifier}x Damage", 430, _bounds.Height + 55);

            _money = _textFactory.GenerateText($"Current Funds: M{_moneyManager.Money}", 20, 20);

            _waveText = _textFactory.GenerateText($"Wave {_wave}", 20, 70);

            _gateHealth = _textFactory.GenerateText($"Gate Health: {_gate.Health}", 20, 120);

            #endregion

            #region Quit Button

            var quitArgs = new PostOfficeEventArgs()
            {
                SendAddress = "StateManager",
                MessageName = "ChangeState",
                Data        = Encoding.ASCII.GetBytes("Menu")
            };

            _quitButton = buttonFactory.GenerateButton("Quit", 600, 20, quitArgs);

            #endregion
        }