public GUIPausePlayer(Simulator simulator, SimPlayer innerPlayer) { Simulator = simulator; InnerPlayer = innerPlayer; Cursor = new SpaceshipCursor(Simulator.Scene, Vector3.Zero, 2, VisualPriorities.Default.PlayerPanelCursor, InnerPlayer.Color, InnerPlayer.ImageName, false); }
public AudioPlayer(SimPlayer innerPlayer) { InnerPlayer = innerPlayer; ShipSpeed = 0; ShipSpeedChanged = true; MovingCue = XACTAudio.GetCue("ShipMoving", "Sound Bank"); //FiringCue = XACTAudio.GetCue("ShipFiring", "Sound Bank"); }
public SelectedCelestialBodyController(Simulator simulator, SimPlayer player, List<CelestialBody> celestialBodies) { Simulator = simulator; CelestialBodies = celestialBodies; Player = player; Initialize(); }
public void DoPowerUpStarted(PowerUp powerUp, SimPlayer player) { switch (powerUp.Type) { case PowerUpType.Collector: DoAddSpaceshipAsked(((PowerUpCollector) powerUp).Collector); break; case PowerUpType.Spaceship: DoAddSpaceshipAsked(((PowerUpSpaceship) powerUp).SpaceshipSpaceship); break; case PowerUpType.Miner: DoAddSpaceshipAsked(((PowerUpMiner) powerUp).Miner); break; case PowerUpType.AutomaticCollector: DoAddSpaceshipAsked(((PowerUpAutomaticCollector) powerUp).AutomaticCollector); break; } }
public void Initialize() { InitializePowerUpsAndTurrets(); CheckAvailablePowerUps(); CheckAvailableTurrets(); Players.Clear(); PlayersList.Clear(); PlayerInAdvancedView = null; UpdateSelection = true; NotifyCommonStashChanged(CommonStash); }
public void DoActivatePowerUpAsked(PowerUpType type, SimPlayer player) { ActivesPowerUps[type] = false; PowerUp p = Simulator.PowerUpsFactory.Create(type); p.Owner = player; p.Start(); PowerUps[player].Add(p); if (p.NeedInput) player.PowerUpInUse = p.Type; NotifyPowerUpStarted(p, player); }
public void DoPlayerConnected(SimPlayer player) { if (!Simulator.EditorMode) return; var editorPlayer = new EditorPlayer(Simulator) { SimPlayer = player, GeneralMenu = GeneralMenu }; editorPlayer.Initialize(); Players.Add(player, editorPlayer); NotifyPlayerConnected(editorPlayer); }
public void DoPlayerMoved(SimPlayer p) { if (!Simulator.EditorMode) return; var player = Players[p]; if (player.SimPlayer.ActualSelection.EditingState == EditorEditingState.MovingCB) { player.ActualSelection.CelestialBody.BasePosition += player.SimPlayer.DeltaPosition; player.SimPlayer.NinjaPosition = player.ActualSelection.CelestialBody.Position; } else if (player.SimPlayer.ActualSelection.EditingState == EditorEditingState.ShrinkingCB) { player.SimPlayer.NinjaPosition = player.ActualSelection.CelestialBody.Position; player.ActualSelection.CelestialBody.Position = player.SimPlayer.Position; } else if (player.SimPlayer.ActualSelection.EditingState == EditorEditingState.RotatingCB) { player.SimPlayer.NinjaPosition = player.ActualSelection.CelestialBody.Position; } else if (player.SimPlayer.ActualSelection.EditingState == EditorEditingState.StartPosCB) { } player.Circle.Position = p.Position; if (OpenedPanel != EditorPanel.None) Panels[OpenedPanel].DoHover(player.Circle); }
public void DoPlayerMovedDelta(SimPlayer p, ref Vector3 delta) { if (!Simulator.EditorMode) return; var player = Players[p]; if (player.SimPlayer.ActualSelection.EditingState == EditorEditingState.RotatingCB) { float rotation = Core.Physics.Utilities.VectorToAngle(ref delta); player.ActualSelection.CelestialBody.SetRotation(rotation); } else if (player.SimPlayer.ActualSelection.EditingState == EditorEditingState.ShrinkingCB) { player.ActualSelection.CelestialBody.Path.X += delta.X; player.ActualSelection.CelestialBody.Path.Y -= delta.Y; } }
public void DoPowerUpStarted(PowerUp powerUp, SimPlayer player) { if (powerUp.Type == PowerUpType.Pulse) Bullets.Add(((PowerUpPulse) powerUp).Bullet); else if (powerUp.Type == PowerUpType.Shield) Bullets.Add(((PowerUpShield) powerUp).Bullet); }
public void DoPowerUpStopped(PowerUp powerUp, SimPlayer player) { if (powerUp.Type == PowerUpType.Pulse) ((PowerUpPulse) powerUp).Bullet.LifePoints = 0; else if (powerUp.Type == PowerUpType.Shield) ((PowerUpShield) powerUp).Bullet.LifePoints = 0; }
public void DoHideAdvancedViewAsked(SimPlayer p) { if (Simulator.DemoMode) return; var player = Players[p]; if (AdvancedViewCheckedIn == player) { AdvancedView.Visible = false; AdvancedViewCheckedIn = null; } }
private void BeginHelpMessages(SimPlayer p) { var selection = p.ActualSelection; var player = Players[p]; if (Simulator.WorldMode) { // World Menu if (selection.CelestialBody != null) { if (selection.PausedGameChoice == PausedGameChoice.None && selection.CelestialBody is PinkHole) HelpBar.ShowMessage(HelpBarMessage.WorldWarp, p.BasePlayer.InputType); else if (selection.PausedGameChoice == PausedGameChoice.None) HelpBar.ShowMessage(HelpBarMessage.WorldNewGame, p.BasePlayer.InputType); else if (selection.PausedGameChoice == PausedGameChoice.New) HelpBar.ShowMessage(HelpBarMessage.WorldToggleNewGame, p.BasePlayer.InputType); else if (selection.PausedGameChoice == PausedGameChoice.Resume) HelpBar.ShowMessage(HelpBarMessage.WorldToggleResume, p.BasePlayer.InputType); } else { HelpBar.HideCurrentMessage(); } } else if (Simulator.DemoMode) { // Main menu if (selection.CelestialBody != null && selection.CelestialBody.Name == "save the world") HelpBar.ShowMessage(player.NewGameMenu.GetHelpBarMessage(), p.BasePlayer.InputType); else { HelpBar.HideMessage(player.NewGameMenu.GetHelpBarMessage()); if (selection.CelestialBody != null) HelpBar.ShowMessage(HelpBarMessage.Select, p.BasePlayer.InputType); else HelpBar.HideMessage(HelpBarMessage.Select); } } else if (!Simulator.EditorMode) { // Turret Menu if (selection.Turret != null && !selection.Turret.Disabled) HelpBar.ShowMessage(HelpBarMessage.TurretMenu, player.TurretMenu.GetHelpBarMessage(selection.TurretChoice)); else HelpBar.HideMessage(HelpBarMessage.TurretMenu); // Celestial Body Menu if (selection.Turret == null && selection.TurretToPlace == null) { if (selection.CelestialBody != null && selection.CelestialBody.FirstOnPath) HelpBar.ShowMessage(HelpBarMessage.CallNextWave, StartingPathMenu.GetHelpBarMessage(p.BasePlayer.InputType)); else if (selection.CelestialBody != null) HelpBar.ShowMessage(HelpBarMessage.CelestialBodyMenu, player.CelestialBodyMenu.GetHelpBarMessage(selection.TurretToBuy)); else { HelpBar.HideMessage(HelpBarMessage.CallNextWave); HelpBar.HideMessage(HelpBarMessage.CelestialBodyMenu); } } } }
public void DoPlayerDisconnected(SimPlayer p) { Players.Remove(p.PausePlayer); if (Players.Count == 0 && IsPanelVisible) { CloseOthersPanels(PanelType.None); Simulator.CanSelectCelestialBodies = true; } }
public void DoCancelAction(SimPlayer p) { if (!Simulator.EditorMode) return; var player = Players[p]; //tmp if (player.SimPlayer.ActualSelection.CelestialBody != null && player.SimPlayer.ActualSelection.EditingState != EditorEditingState.None) ExecuteCommand(new EditorCelestialBodyCommand("HidePathPreview") { Owner = player }); player.DoCancelAction(); }
public void DoTurretToPlaceSelected(Turret turret, SimPlayer p) { var player = Players[p]; player.Cursor.FadeOut(); turret.CelestialBody.ShowTurretsZone = true; turret.ShowRange = true; turret.ShowForm = true; foreach (var turret2 in turret.CelestialBody.Turrets) turret2.ShowForm = true; HelpBar.ShowMessage(HelpBarMessage.InstallTurret, p.BasePlayer.InputType); }
public void DoPlayerDisconnected(SimPlayer player) { if (!Simulator.EditorMode) return; var editorPlayer = Players[player]; Players.Remove(player); NotifyPlayerDisconnected(editorPlayer); }
public void DoPlayerMoved(SimPlayer p) { var player = Players[p]; player.Cursor.Position = p.Position; player.Cursor.Direction = p.Direction; player.Crosshair.Position = p.Position; }
public void DoPowerUpStopped(PowerUp powerUp, SimPlayer p) { var player = Players[p]; if (powerUp.NeedInput) { player.Cursor.FadeIn(); player.PowerUpInputMode = false; if (powerUp.Crosshair != "") player.Crosshair.FadeOut(); if (powerUp.Type == PowerUpType.FinalSolution) { PowerUpLastSolution pls = (PowerUpLastSolution) powerUp; if (pls.GoAhead) PathPreviewing.Commit(player); player.PowerUpFinalSolution = false; } } }
public void DoPowerUpStarted(PowerUp powerUp, SimPlayer p) { var player = Players[p]; if (powerUp.NeedInput) { player.Cursor.FadeOut(); player.PowerUpInputMode = true; if (powerUp.Crosshair != "") { player.Crosshair.SetFrontImage(powerUp.Crosshair, powerUp.CrosshairSize, p.Color); player.Crosshair.Alpha = 0; player.Crosshair.FadeIn(); } if (powerUp.Type == PowerUpType.FinalSolution) player.PowerUpFinalSolution = true; } }
public void DoNextOrPreviousAction(SimPlayer p, int delta) { if (!Simulator.EditorMode) return; var player = Players[p]; if (player.ActualSelection.GeneralMenuChoice != EditorGeneralMenuChoice.None) { if (delta > 0) player.NextGeneralMenuChoice(); else player.PreviousGeneralMenuChoice(); } else if (player.SimPlayer.ActualSelection.CelestialBody != null) { if (delta > 0) player.NextCelestialBodyChoice(); else player.PreviousCelestialBodyChoice(); } }
public void SyncPlayer(SimPlayer p) { GUIPlayer current; if (!Players.TryGetValue(p, out current)) return; if (current.Cursor.FrontImage.TextureName != p.ImageName || current.Cursor.Color != p.Color) { current.Cursor.Color = p.Color; current.Cursor.SetImage(p.ImageName); } }
public void DoSelectAction(SimPlayer p) { if (!Simulator.EditorMode) return; var player = Players[p]; player.DoSelectAction(); if (player.ActualSelection.GeneralMenuChoice != EditorGeneralMenuChoice.None) { var menu = GeneralMenu.SubMenus[player.ActualSelection.GeneralMenuChoice]; var choice = menu.GetChoice(player.ActualSelection.GeneralMenuSubMenuIndex); EditorCommand command = GetCommand(choice); command.Owner = player; ExecuteCommand(command); return; } if (OpenedPanel != EditorPanel.None) { var panel = Panels[OpenedPanel]; CurrentOpenedPanelPlayer = player; panel.DoClick(player.Circle); return; } if (Simulator.EditorState == EditorState.Playtest) return; if (player.SimPlayer.ActualSelection.CelestialBody != null) { var choice = EditorGUIPlayers[player].CelestialBodyMenu.Menu.GetCurrentChoice(); var command = GetCommand(choice); command.Owner = player; if (player.SimPlayer.ActualSelection.EditingState != EditorEditingState.None) ExecuteCommand(new EditorCelestialBodyCommand("ShowPathPreview") { Owner = player }); ExecuteCommand(command); return; } }
public void DoPlayerSelectionChanged(SimPlayer p) { var selection = p.ActualSelection; var player = Players[p]; BeginHelpMessages(p); // Firing player.Cursor.ShowFiringCursor = p.Firing; if (!Simulator.DemoMode) { // Check in the starting path menu if (StartingPathMenu.CheckedIn == null && selection.CelestialBody != null && selection.CelestialBody.FirstOnPath) { StartingPathMenu.CelestialBody = selection.CelestialBody; StartingPathMenu.Visible = true; StartingPathMenu.CheckedIn = p; StartingPathMenu.Color = p.Color; StartingPathMenu.Position = p.Position; player.CelestialBodyMenu.Visible = false; } // Check out the starting path menu if (StartingPathMenu.CheckedIn == p && (selection.CelestialBody == null || !selection.CelestialBody.FirstOnPath)) { StartingPathMenu.Visible = false; StartingPathMenu.CheckedIn = null; } } // Open the celestial body menu if (StartingPathMenu.CheckedIn != p) { player.CelestialBodyMenu.CelestialBody = selection.CelestialBody; player.CelestialBodyMenu.TurretToBuy = selection.TurretToBuy; player.CelestialBodyMenu.Visible = selection.TurretToPlace == null && selection.CelestialBody != null; } if (selection.PowerUpToBuy != PowerUpType.None) MenuPowerUps.PowerUpToBuy = selection.PowerUpToBuy; player.TurretMenu.Turret = selection.Turret; player.TurretMenu.AvailableTurretOptions = selection.AvailableTurretOptions; player.TurretMenu.SelectedOption = selection.TurretChoice; player.TurretMenu.Visible = player.TurretMenu.Turret != null && !player.TurretMenu.Turret.Disabled; if (Simulator.WorldMode) { player.WorldMenu.CelestialBody = selection.CelestialBody; player.WorldMenu.PausedGameChoice = selection.PausedGameChoice; if (GamePausedMenuPlayerCheckedIn == null && player.WorldMenu.PausedGameMenuVisible) { GamePausedMenuPlayerCheckedIn = player; player.WorldMenu.PausedGameMenuCheckedIn = true; } else if (GamePausedMenuPlayerCheckedIn == player && selection.CelestialBody == null) { GamePausedMenuPlayerCheckedIn = null; player.WorldMenu.PausedGameMenuCheckedIn = false; } } if (Simulator.DemoMode) { player.NewGameMenu.CelestialBody = selection.CelestialBody; player.NewGameMenu.NewGameChoice = selection.NewGameChoice; } player.SelectedCelestialBodyAnimation.CelestialBody = selection.CelestialBody; player.FinalSolutionPreview.CelestialBody = (player.PowerUpFinalSolution) ? selection.CelestialBody : null; if (!Simulator.EditorMode || (Simulator.EditorMode && Simulator.EditorState == EditorState.Playtest)) { if (PathPreviewing != null && // preview: sell turret selection.Turret != null && selection.Turret.Type == TurretType.Gravitational && selection.Turret.CanSell && !selection.Turret.Disabled && selection.TurretChoice == TurretChoice.Sell) PathPreviewing.RemoveCelestialObject(player, selection.Turret.CelestialBody); else if (PathPreviewing != null && //preview: final solution selection.CelestialBody != null && player.PowerUpFinalSolution && selection.CelestialBody.HasGravitationalTurret) PathPreviewing.RemoveCelestialObject(player, selection.CelestialBody); else if (PathPreviewing != null && //preview: buy grav. turret selection.TurretToBuy == TurretType.Gravitational) PathPreviewing.AddCelestialObject(player, selection.CelestialBody); else if (PathPreviewing != null && //preview: place grav. turret selection.TurretToPlace != null && selection.TurretToPlace.Type == TurretType.Gravitational) PathPreviewing.AddCelestialObject(player, selection.CelestialBody); else if (PathPreviewing != null && //preview: update turret selection.Turret != null && selection.Turret.Type == TurretType.Gravitational && selection.Turret.CanUpdate && selection.TurretChoice == TurretChoice.Update && selection.Turret.Level <= 1) PathPreviewing.UpgradeCelestialObject(player, selection.Turret.CelestialBody); else if (PathPreviewing != null) //preview: rollback PathPreviewing.RollBack(player); } }
public void DoTurretToPlaceDeselected(Turret turret, SimPlayer p) { var player = Players[p]; player.Cursor.FadeIn(); turret.CelestialBody.ShowTurretsZone = false; turret.ShowRange = false; HelpBar.HideMessage(HelpBarMessage.InstallTurret); }
public void DoShowAdvancedViewAsked(SimPlayer p) { if (Simulator.DemoMode) return; var player = Players[p]; if (AdvancedViewCheckedIn == null) { AdvancedView.Visible = true; AdvancedViewCheckedIn = player; } }
public void DoPlayerConnected(SimPlayer p) { GUIPausePlayer player = new GUIPausePlayer(Simulator, p); Players.Add(p.PausePlayer, player); if (IsPanelVisible) ShowPausePlayer(player); }
public void DoTurretUpgraded(Turret turret, SimPlayer p) { Simulator.Scene.Animations.Add(new TurretMoneyAnimation(turret.BuyPrice, false, turret.Position, VisualPriorities.Default.TurretUpgradedAnimation)); }
public void SyncPlayer(SimPlayer p) { GUIPausePlayer current; if (!Players.TryGetValue(p.PausePlayer, out current)) return; if (current.Cursor.FrontImage.TextureName != p.ImageName || current.Cursor.Color != p.Color) { var previousAlpha = current.Cursor.Alpha; current.Cursor.Color = p.Color; current.Cursor.SetImage(p.ImageName); current.Cursor.Alpha = previousAlpha; } }
public void DoTurretSold(Turret turret, SimPlayer p) { var player = Players[p]; if (PathPreviewing != null && turret.Type == TurretType.Gravitational) PathPreviewing.Commit(player); HelpBar.HideMessage(HelpBarMessage.TurretMenu); Simulator.Scene.Animations.Add(new TurretMoneyAnimation(turret.SellPrice, true, turret.Position, VisualPriorities.Default.TurretUpgradedAnimation)); }