示例#1
0
文件: BattleGUI.cs 项目: Oyyou/HopHop
        public BattleGUI(GameModel gameModel, List <UnitModel> units)
        {
            _gameModel = gameModel;
            _units     = units;

            _font = _gameModel.Content.Load <SpriteFont>("GUI/Fonts/Font");

            SelectedUnitId = _units.First().Id;

            var content = gameModel.Content;

            var etTexture  = content.Load <Texture2D>("GUI/Battle/EndTurn");
            var etPosition = new Vector2((BaseGame.ScreenWidth - etTexture.Width) - 10, (BaseGame.ScreenHeight - etTexture.Height) - 10);

            _endTurnButton = new Button(etTexture)
            {
                Position = etPosition,
            };

            var cpTexture = content.Load <Texture2D>("GUI/Battle/ControlPanel");

            _controlPanel = new Sprite(cpTexture)
            {
                Position = new Vector2(10, BaseGame.ScreenHeight - cpTexture.Height - 10),
            };

            foreach (var unit in units)
            {
                foreach (var ability in unit.Abilities.Get())
                {
                    if (!_abilityIconTextures.ContainsKey(unit.Id))
                    {
                        _abilityIconTextures.Add(unit.Id, new List <Texture2D>());
                    }

                    _abilityIconTextures[unit.Id].Add(content.Load <Texture2D>("GUI/Battle/AbilityIcons/" + ability.Name));
                }
            }

            _targetIconTextures.Add("Enemy", content.Load <Texture2D>("GUI/Battle/TargetIcons/Enemy"));
            _targetIconTextures.Add("Friendly", content.Load <Texture2D>("GUI/Battle/TargetIcons/Friendly"));

            _abilityIconClickedTexture = content.Load <Texture2D>("GUI/Battle/AbilityIcon_Clicked");


            UnitsGroup = new ButtonGroup()
            {
                CurrentIndex = 0,
            };

            UnitsGroup.SetButtons(GetUnitButtons);
        }