Exemple #1
0
        private void JoinPlayer(bool isKeyboard, int gamepadIndex, PlayerInfo existingPlayer = null)
        {
            JoinState joinState = MakePlayer(isKeyboard, gamepadIndex, existingPlayer);

            numJoinedPlayer++;

            // Animate text
            var text = joinState.HUD.GetComponentByName <HUDTextComponent>("nameTextchooser");

            Dispatcher.AddAnimation(Animation.Get(text.Opacity, 1f, 1f, false, (o) => text.Opacity = o, EasingFunctions.QuadIn));
            var board = joinState.HUD.GetComponentByName <HUDComponent>("namechooser");

            Dispatcher.AddAnimation(Animation.Get(board.Opacity, 1f, 1f, false, (o) => board.Opacity = o, EasingFunctions.QuadIn));

            Dispatcher.NextFrame(() =>
            {
                AddEntity(joinState.Player);
                joinState.Player.Freeze();
            });
            AddEntity(joinState.HUD);

            if (numJoinedPlayer == 4)
            {
                Dispatcher.AddAnimation(Animation.Get(1, 0, 0.2f, false, (val) =>
                {
                    joinComponent.Opacity     = val;
                    joinTextComponent.Opacity = val;
                }, EasingFunctions.QuadIn));
            }
        }
Exemple #2
0
        private void PlayerIsReady(JoinState player)
        {
            if (player.CurrentState == JoinState.State.Joined)
            {
                NonPositionalAudio.PlaySound("Audio/MenuActionSound");
                player.Next();

                // Animate text
                var textChooser = player.HUD.GetComponentByName <HUDTextComponent>("nameTextchooser");
                Dispatcher.AddAnimation(Animation.Get(textChooser.Opacity, 0f, 1f, false, (o) => textChooser.Opacity = o, EasingFunctions.ToEaseOut(EasingFunctions.QuadIn)));
                var boardChooser = player.HUD.GetComponentByName <HUDComponent>("namechooser");
                Dispatcher.AddAnimation(Animation.Get(boardChooser.Opacity, 0f, 1f, false, (o) => boardChooser.Opacity = o, EasingFunctions.ToEaseOut(EasingFunctions.QuadIn)));

                var text = player.HUD.GetComponentByName <HUDTextComponent>("nameText");
                Dispatcher.AddAnimation(Animation.Get(text.Opacity, 1f, 1f, false, (o) => text.Opacity = o, EasingFunctions.QuadIn));
                var board = player.HUD.GetComponentByName <HUDComponent>("name");
                Dispatcher.AddAnimation(Animation.Get(board.Opacity, 1f, 1f, false, (o) => board.Opacity = o, EasingFunctions.QuadIn));
                Dispatcher.NextFrame(() => player.Player.UnFreeze());

                if (players.Count(j => j.CurrentState == JoinState.State.Ready) >= (Game.CurrentGameMode.PlayerMode == PlayerMode.TwoVsTwo ? 4 : 1))
                {
                    pressStartToStartAnimation.IsRunning = true;
                }
            }
        }
Exemple #3
0
 private void SetName(JoinState player, int newName)
 {
     player.NameIndex = newName;
     foreach (var textComponent in player.HUD.GetAllComponents <HUDTextComponent>())
     {
         textComponent.Text = availablePlayerNames[player.NameIndex];
     }
     Game.CurrentGameMode.SetNameForPlayer(availablePlayerNames[player.NameIndex], player.IsKeyboard, player.GamePadIndex);
 }
Exemple #4
0
        private void SetNextOrPreviousName(JoinState player, int direction)
        {
            int nextName = player.NameIndex;

            while (players.Any(p => p.NameIndex == nextName))
            {
                nextName = (nextName - direction + availablePlayerNames.Length) % availablePlayerNames.Length;
            }

            SetName(player, nextName);
        }
Exemple #5
0
 private void SetRandomName(JoinState joinState)
 {
     SetName(joinState, RandomExt.GetRandomInt(0, availablePlayerNames.Length, players.Select(p => p.NameIndex).ToArray()));
 }
Exemple #6
0
        private JoinState MakePlayer(bool isKeyboard, int gamepadIndex, PlayerInfo existingPlayer = null)
        {
            int myIndex;

            if (existingPlayer == null)
            {
                myIndex = GetFirstFreeIndex();
            }
            else
            {
                myIndex = existingPlayer.PlayerIndex - 1;
            }

            // Create UI for name
            Entity hud = new Entity(this, EntityType.UI, positions[myIndex],
                                    new HUDComponent(boardWithButtonsAssets[myIndex], new Vector2(1.528f / 0.551f * 0.2f, 0.2f), origin: new Vector2(0.5f, 0.5f))
            {
                Name = "namechooser"
            },
                                    new HUDTextComponent(MainFont, 0.095f, "Name", origin: new Vector2(0.58f, 0.43f), layerDepth: 0.1f)
            {
                Name = "nameTextchooser"
            },
                                    new HUDComponent(boardAssets[myIndex], new Vector2(1.528f / 0.551f * 0.1f, 0.1f), origin: new Vector2(0.5f, 0.5f), offset: offsets[myIndex])
            {
                Name    = "name",
                Opacity = 0f
            },
                                    new HUDTextComponent(MainFont, 0.048f, "Name", origin: new Vector2(0.58f, 0.43f), layerDepth: 0.1f, offset: offsets[myIndex])
            {
                Name    = "nameText",
                Opacity = 0f
            }
                                    );

            var newPlayerJoinState = new JoinState(null, hud, isKeyboard, gamepadIndex, myIndex);

            players.Add(newPlayerJoinState);
            if (existingPlayer != null)
            {
                SetName(newPlayerJoinState, Array.IndexOf(availablePlayerNames, existingPlayer.Name));
            }
            else
            {
                SetRandomName(newPlayerJoinState);
            }

            PlayerInfo pInfo;

            // Create Player if doesn't already exist
            if (existingPlayer == null)
            {
                pInfo = Game.CurrentGameMode.AddPlayer(newPlayerJoinState.IsKeyboard, gamepadIndex, availablePlayerNames[newPlayerJoinState.NameIndex]);
            }
            else
            {
                pInfo = existingPlayer;
            }
            PlayerEntity player = new PlayerEntity(this, startPositions[newPlayerJoinState.PlayerIndex], pInfo);

            newPlayerJoinState.Player = player;

            return(newPlayerJoinState);
        }