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); } }
/// <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(); }
public static void OnPlayerRequestLoadOut(Player player, LoadOut loadOut) { LoadOutToken loadOutToken = new LoadOutToken(loadOut); player.controlledEntity.GetComponent <RobotController>().state.LoadOutToken = loadOutToken; }