Example #1
0
        void AllReady()
        {
            var playerGraphics = new Dictionary <int, string>();

            foreach (var menu in controllerMenus.Values)
            {
                if (!menu.Ready)
                {
                    continue;
                }
                playerGraphics[menu.JoyId] = menu.PlayerImageName;
                ControllerSelect.SetLastSkin(menu.PlayerSlot, menu.PlayerImageName);
            }

            FP.World = new GameWorld(playerGraphics);
        }
Example #2
0
        void AddController(int joystickId)
        {
            var slot = GetSlot();

            if (slot > 3)
            {
                return;
            }

            var menu = new ControllerSelect(this, slot, joystickId);

            menu.X = -menu.Width;

            controllerMenus[joystickId] = menu;
            Add(menu);

            Tweener.Tween(menu, new { X = 10 + (menu.Width / 2) + slot * menu.Width }, 1.6f + FP.Random.Float())
            .Ease(Ease.ElasticOut);
        }
Example #3
0
        private void CheckWinner()
        {
            if (GameEnding)
            {
                return;
            }

            if (ActivePlayers.Count <= 1)
            {
                var flash = Image.CreateRect(FP.Width, FP.Height, Color.White);
                flash.ScrollX = flash.ScrollY = 0;
                World.Tweener.Tween(flash, new { Alpha = 0 }, 1f)
                .Ease(Ease.SineOut);

                World.BroadcastMessage(ChunkManager.Message.Unload);
                World.AddGraphic(flash, 0, 0, ObjectLayers.Foreground);

                GameEnding = true;
            }

            if (ActivePlayers.Count == 1)
            {
                var winner = ActivePlayers[0];

                if (winner.World == null)
                {
                    World.Add(winner);
                }

                World.Add(new VictoryEnding(winner));
                ControllerSelect.IncreaseWin(winner.ControllerId);
            }
            else if (ActivePlayers.Count == 0)
            {
                World.Add(new DrawEnding());
            }

            Timeout = null;
        }