示例#1
0
        public static void SpawnPlayerAtPosition(Player player, Vector3 position, Quaternion rotation)
        {
            //Make sure player controlled entities are destroyed.
            PlayerManager.Instance.DestroyPlayerControlledEntities(player);

            LoadOut loadOut = new LoadOut();

            loadOut.itemNames = new string[] { "Scout", "PlasmaFusor", "GrenadeLauncher", "ChainGun" };

            LoadOutToken loadOutToken = new LoadOutToken(loadOut);

            GameObject baseMech = DatabaseManager.Instance.PrefabDatabase.GetPrefabByName("BaseMech");
            BoltEntity entity   = BoltNetwork.Instantiate(baseMech, loadOutToken, position, rotation);

            if (entity != null)
            {
                Unit unit = entity.GetComponent <Unit>();
                unit.Setup(player.guid, player.teamId);
                unit.gameObject.AddComponent <AbilityVelocityRedirection>();

                if (player.connection == null)
                {
                    entity.TakeControl();
                }
                else
                {
                    entity.AssignControl(player.connection);
                }

                player.SetControlledEntity(entity);
            }
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ExtendedSplashScreen"/> class.
        /// </summary>
        public ExtendedSplashScreen()
        {
            this.InitializeComponent();

            // Status changed
            // Updates status text and ther appropiate actions
            Messenger.Default.Register <ConnectionStatusMessage>(this, async m =>
            {
                await DispatcherHelper.RunAsync(() =>
                {
                    StatusBlock.Text = Helpers.Constants.Localization.GetLocalizedString(m.Status.ToString());
                });

                if (m.Status == ConnectionStatus.Failed || m.Status == ConnectionStatus.Offline)
                {
                    // Stops animation on failed or offline
                    await DispatcherHelper.RunAsync(() =>
                    {
                        Animation.Stop();
                    });

                    // Opens status page
                    if (!retry)
                    {
                        SimpleIoc.Default.GetInstance <ISubFrameNavigationService>().NavigateTo("DiscordStatusPage");
                    }
                }

                // Shows Retry button
                if (m.Status == ConnectionStatus.Failed)
                {
                    await DispatcherHelper.RunAsync(() =>
                    {
                        RetryButton.Visibility = Visibility.Visible;
                    });
                }

                // Reshow Splash
                if (m.Status == ConnectionStatus.Disconnected)
                {
                    await DispatcherHelper.RunAsync(() =>
                    {
                        Visibility = Visibility.Visible;
                        LoadIn.Begin();
                        RetryConnecting(null, null);
                    });
                }
            });

            // Finished loading
            // Begins hiding splash
            Messenger.Default.Register <GatewayReadyMessage>(this, async _ =>
            {
                await DispatcherHelper.RunAsync(() =>
                {
                    LoadOut.Begin();
                });
            });

            LoadQuote();
        }
示例#3
0
        public static void OnPlayerRequestLoadOut(Player player, LoadOut loadOut)
        {
            LoadOutToken loadOutToken = new LoadOutToken(loadOut);

            player.controlledEntity.GetComponent <RobotController>().state.LoadOutToken = loadOutToken;
        }