Exemple #1
0
        public MapChooserButton(Game game, Vector2 origin)
            : base(game)
        {
            DrawOrder = 100;
            _mapButtons = new Dictionary<Map, Button>();

            var offsetX = origin.X + 24;

            foreach(var keyPair in _sandGame.MapManager.Maps)
            {
                var name = keyPair.Key;
                var map = keyPair.Value;

                var mapIcon = map.MapImage;
                var toolButton = new Button(game, new Vector2(offsetX, origin.Y),
                                            mapIcon,
                                            Color.White, Color.Black) { Padding = 6 };

                toolButton.Width = 512 + (toolButton.Padding * 2);
                toolButton.Height = 512 + (toolButton.Padding * 2);

                toolButton.Y -= toolButton.Height / 2;
                toolButton.SetAction(ChooseTool, map);

                offsetX += toolButton.Width + 100;

                Children.Add(toolButton);
                _mapButtons.Add(map, toolButton);
            }

            ChooseTool(null, _mapButtons.Keys.First());
        }
Exemple #2
0
        public WinDialog(Game game, string message, Button.Action action, object userInfo)
            : base(game)
        {
            DrawOrder = 10000;

            var sandGame = Game as Sand;

            const int margin = 5;

            Width = 725;
            Height = 200;

            var halfway = sandGame.BaseScreenSize / 2.0f;

            var background = new Billboard(Game, (int)halfway.X, (int)halfway.Y, (int)(Width + (margin * 2)),
                                           (int)(Height + (margin * 2)), Storage.Sprite("pixel"))
                             {
                                 Color = Color.DarkGray,
                                 PositionGravity = Gravity.Center,
                                 DrawOrder = 9999
                             };
            var foreground = new Billboard(Game, (int)halfway.X, (int)halfway.Y, (int)Width,
                                           (int)Height, Storage.Sprite("pixel"))
                             {
                                 Color = new Color(0.2f, 0.2f, 0.2f),
                                 PositionGravity = Gravity.Center,
                                 DrawOrder = 10000
                             };
            _label = new Label(Game, halfway.X, halfway.Y - 35, message, "Calibri48Bold")
                        {
                            PositionGravity = Gravity.Center,
                            DrawOrder = 10001
                        };

            var ready = new Button(Game, new Rectangle((int)halfway.X - 100, (int)halfway.Y + 15, 200, 50), "Ready",
                                   new Color(0.1f, 0.7f, 0.1f))
                        {
                            PositionGravity = Gravity.Center,
                            DrawOrder = 10001
                        };

            ready.SetAction(action, userInfo);

            Children.Add(background);
            Children.Add(foreground);
            Children.Add(_label);
            Children.Add(ready);
        }
Exemple #3
0
        public PlayerClassButton(Game game, Vector2 origin, Class cls, Team team)
            : base(game)
        {
            _class = cls;
            _team = team;

            Button = new Button(game, origin, Teams.SpriteForClass(cls, ClassVariant.Large), Teams.ColorForTeam(team),
                                Storage.Color("NeutralTeam"));

            if(team == Team.Red)
            {
                Label = new Label(game, origin.X - 25, origin.Y + (Button.Bounds.Height / 2.0f),
                              "", "Calibri48Bold") { DrawOrder = 10000, PositionGravity = new Tuple<Gravity.Vertical, Gravity.Horizontal>(Gravity.Vertical.Center, Gravity.Horizontal.Right) };
            }
            else
            {
                Label = new Label(game, origin.X + Button.Bounds.Width + 25, origin.Y + (Button.Bounds.Height / 2.0f),
                              "", "Calibri48Bold") { DrawOrder = 10000, PositionGravity = new Tuple<Gravity.Vertical, Gravity.Horizontal>(Gravity.Vertical.Center, Gravity.Horizontal.Left) };
            }

            Children.Add(Button);
            Children.Add(Label);
        }
Exemple #4
0
        public void WinPulse(Team team, Button.Action completedAction)
        {
            _winPulseTeam = team;
            _winPulseAnimation = new Animation(this, "PulseValue", 0.0f, 10.0f, Easing.EaseInOut, EasingType.Linear);
            _winPulseAnimationGroup = new AnimationGroup(_winPulseAnimation, 10000.0f) {Loops = true};

            Storage.AnimationController.AddGroup(_winPulseAnimationGroup);
        }