コード例 #1
0
ファイル: BattleScene.cs プロジェクト: kingcoyote/armadillo
        /// <summary>
        /// Initialize a battle sequence by name. This call happens at the start of a battle and is required
        /// for this scene to not die a horrible death.
        /// </summary>
        /// <param name="battleName">Name of the battle to be initialized</param>
        public void SetBattle(string battleName)
        {
            // set up defaults

            BattleBoard = new BattleBoard();

            RoundNumber = 0;
            FactionTurn = 0;
            _state      = BattleState.PlayerTurn;
            var partyGrid = new List <Point>();

            _battleBoardLayer = new BattleBoardLayer(this, null);
            _battleBoardLayer.CharacterSelected += SelectCharacter;

            Components.Add(_battleBoardLayer);

            switch (battleName)
            {
            case "coliseum/halls":
                _battleBoardLayer.SetBackground("Zones/Coliseum/Halls/north");
                _battleBoardLayer.SetGrid("Zones/Coliseum/Halls/battle");
                BattleBoard.Sandbag = Grid.FromBitmap(Game.Services, "Zones/Coliseum/Halls/battle");
                _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/Halls/north"));
                _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar")
                {
                    X = 393, Y = 190, DrawOrder = 248
                });
                _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar")
                {
                    X = 393, Y = 390, DrawOrder = 448
                });
                _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar")
                {
                    X = 393, Y = 590, DrawOrder = 648
                });
                _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar")
                {
                    X = 593, Y = 190, DrawOrder = 248
                });
                _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar")
                {
                    X = 593, Y = 390, DrawOrder = 448
                });
                _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar")
                {
                    X = 593, Y = 590, DrawOrder = 648
                });

                partyGrid.Add(new Point(10, 13));
                partyGrid.Add(new Point(11, 13));
                partyGrid.Add(new Point(9, 13));
                partyGrid.Add(new Point(10, 12));
                partyGrid.Add(new Point(11, 12));
                partyGrid.Add(new Point(9, 12));

                BattleBoard.Characters.Add(GenerateCombatant("Guard 1", "coliseum/guard", new Vector2(9, 3)));
                BattleBoard.Characters.Add(GenerateCombatant("Guard 2", "coliseum/guard", new Vector2(11, 3)));
                BattleBoard.Characters.Add(GenerateCombatant("Guard Captain", "coliseum/guard", new Vector2(10, 3)));

                BattleBoard.Characters.Add(GenerateCombatant("Guard 3", "coliseum/guard", new Vector2(9, 10)));
                BattleBoard.Characters.Add(GenerateCombatant("Guard 4", "coliseum/guard", new Vector2(11, 10)));
                BattleBoard.Characters.Add(GenerateCombatant("Guard 5", "coliseum/guard", new Vector2(10, 10)));

                _startingDialog = Dialog.Fetch("coliseum", "guards");

                break;

            default:
                throw new Exception("unknown battle " + battleName);
            }

            // add party to the party grid for this battle, in order
            for (var i = 0; i < ((SRPGGame)Game).Party.Count; i++)
            {
                var character = ((SRPGGame)Game).Party[i];
                character.Avatar.Location.X = partyGrid[i].X;
                character.Avatar.Location.Y = partyGrid[i].Y;
                BattleBoard.Characters.Add(character);
            }

            _battleBoardLayer.SetBoard(BattleBoard);
            _commander.BattleBoard = BattleBoard;

            // center camera on partyGrid[0]
            UpdateCamera(
                0 - partyGrid[0].X * 50 + Game.GraphicsDevice.Viewport.Width / 2,
                0 - partyGrid[0].Y * 50 + Game.GraphicsDevice.Viewport.Height / 2
                );

            ChangeFaction(0);
        }
コード例 #2
0
ファイル: BattleScene.cs プロジェクト: HaKDMoDz/armadillo
        /// <summary>
        /// Initialize a battle sequence by name. This call happens at the start of a battle and is required
        /// for this scene to not die a horrible death.
        /// </summary>
        /// <param name="battleName">Name of the battle to be initialized</param>
        public void SetBattle(string battleName)
        {
            // set up defaults

            BattleBoard = new BattleBoard();

            RoundNumber = 0;
            FactionTurn = 0;
            _state = BattleState.PlayerTurn;
            var partyGrid = new List<Point>();

            _battleBoardLayer = new BattleBoardLayer(this, null);
            _battleBoardLayer.CharacterSelected += SelectCharacter;

            Components.Add(_battleBoardLayer);

            switch(battleName)
            {
                case "coliseum/halls":
                    _battleBoardLayer.SetBackground("Zones/Coliseum/Halls/north");
                    _battleBoardLayer.SetGrid("Zones/Coliseum/Halls/battle");
                    BattleBoard.Sandbag = Grid.FromBitmap(Game.Services, "Zones/Coliseum/Halls/battle");
                    _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/Halls/north"));
                    _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar") { X = 393, Y = 190, DrawOrder = 248 });
                    _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar") { X = 393, Y = 390, DrawOrder = 448 });
                    _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar") { X = 393, Y = 590, DrawOrder = 648 });
                    _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar") { X = 593, Y = 190, DrawOrder = 248 });
                    _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar") { X = 593, Y = 390, DrawOrder = 448 });
                    _battleBoardLayer.AddImage(new ImageObject(Game, _battleBoardLayer, "Zones/Coliseum/pillar") { X = 593, Y = 590, DrawOrder = 648 });

                    partyGrid.Add(new Point(10,13));
                    partyGrid.Add(new Point(11,13));
                    partyGrid.Add(new Point(9,13));
                    partyGrid.Add(new Point(10,12));
                    partyGrid.Add(new Point(11,12));
                    partyGrid.Add(new Point(9,12));

                    BattleBoard.Characters.Add(GenerateCombatant("Guard 1", "coliseum/guard", new Vector2(9, 3)));
                    BattleBoard.Characters.Add(GenerateCombatant("Guard 2", "coliseum/guard", new Vector2(11, 3)));
                    BattleBoard.Characters.Add(GenerateCombatant("Guard Captain", "coliseum/guard", new Vector2(10, 3)));

                    BattleBoard.Characters.Add(GenerateCombatant("Guard 3", "coliseum/guard", new Vector2(9, 10)));
                    BattleBoard.Characters.Add(GenerateCombatant("Guard 4", "coliseum/guard", new Vector2(11, 10)));
                    BattleBoard.Characters.Add(GenerateCombatant("Guard 5", "coliseum/guard", new Vector2(10, 10)));

                    _startingDialog = Dialog.Fetch("coliseum", "guards");

                    break;
                default:
                    throw new Exception("unknown battle " + battleName);
            }

            // add party to the party grid for this battle, in order
            for(var i = 0; i < ((SRPGGame)Game).Party.Count; i++)
            {
                var character = ((SRPGGame) Game).Party[i];
                character.Avatar.Location.X = partyGrid[i].X;
                character.Avatar.Location.Y = partyGrid[i].Y;
                BattleBoard.Characters.Add(character);
            }

            _battleBoardLayer.SetBoard(BattleBoard);
            _commander.BattleBoard = BattleBoard;

            // center camera on partyGrid[0]
            UpdateCamera(
                0 - partyGrid[0].X*50 + Game.GraphicsDevice.Viewport.Width/2,
                0 - partyGrid[0].Y*50 + Game.GraphicsDevice.Viewport.Height/2
            );

            ChangeFaction(0);
        }