private LoadingScreen(Ship_Game.ScreenManager screenManager, bool loadingIsSlow, GameScreen[] screensToLoad) { //GC.Collect(1,GCCollectionMode.Optimized); this.loadingIsSlow = loadingIsSlow; this.screensToLoad = screensToLoad; base.TransitionOnTime = TimeSpan.FromSeconds(0); base.TransitionOffTime = TimeSpan.FromSeconds(0); }
public GameplayMMScreen(UniverseScreen screen, GameScreen caller) { this.caller = caller; this.screen = screen; base.IsPopup = true; base.TransitionOnTime = TimeSpan.FromSeconds(0.25); base.TransitionOffTime = TimeSpan.FromSeconds(0.25); }
public void HandleInput(InputState input, GameScreen caller) { for (int i = this.ResponseSL.indexAtTop; i < this.ResponseSL.Entries.Count && i < this.ResponseSL.indexAtTop + this.ResponseSL.entriesToDisplay; i++) { ScrollList.Entry e = this.ResponseSL.Entries[i]; if (!HelperFunctions.CheckIntersection(e.clickRect, input.CursorPosition)) { e.clickRectHover = 0; } else { e.clickRectHover = 1; if (input.InGameSelect) { Response r = e.item as Response; if (r.DefaultIndex != -1) { this.CurrentMessage = r.DefaultIndex; } else { bool OK = true; if (r.MoneyToThem > 0 && this.playerEmpire.Money < (float)r.MoneyToThem) { OK = false; } if (r.RequiredTech != null && !this.playerEmpire.GetTDict()[r.RequiredTech].Unlocked) { OK = false; } if (r.FailIfNotAlluring && (double)this.playerEmpire.data.Traits.DiplomacyMod < 0.2) { OK = false; } if (!OK) { this.CurrentMessage = r.FailIndex; } else { this.CurrentMessage = r.SuccessIndex; if (r.MoneyToThem > 0 && this.playerEmpire.Money >= (float)r.MoneyToThem) { Empire money = this.playerEmpire; money.Money = money.Money - (float)r.MoneyToThem; } } } if (this.MessageList[this.CurrentMessage].SetWar) { this.empToDiscuss.GetGSAI().DeclareWarFromEvent(this.playerEmpire, WarType.SkirmishWar); } if (this.MessageList[this.CurrentMessage].EndWar) { this.empToDiscuss.GetGSAI().EndWarFromEvent(this.playerEmpire); } this.playerEmpire.GetRelations()[this.empToDiscuss].EncounterStep = this.MessageList[this.CurrentMessage].SetEncounterStep; this.SetResponses(); } } } if (this.MessageList[this.CurrentMessage].EndTransmission && (input.Escaped || input.CurrentMouseState.RightButton == ButtonState.Released && input.LastMouseState.RightButton == ButtonState.Pressed)) { caller.ExitScreen(); } }
public void HandleInput(InputState input, GameScreen caller) { this.currentMouse = Mouse.GetState(); Vector2 MousePos = new Vector2((float)this.currentMouse.X, (float)this.currentMouse.Y); foreach (EmpireUIOverlay.Button b in this.Buttons) { if (!HelperFunctions.CheckIntersection(b.Rect, MousePos)) { b.State = EmpireUIOverlay.PressState.Normal; } else { if (b.State != EmpireUIOverlay.PressState.Hover && b.State != EmpireUIOverlay.PressState.Pressed) { AudioManager.PlayCue("mouse_over4"); } b.State = EmpireUIOverlay.PressState.Hover; if (this.currentMouse.LeftButton == ButtonState.Pressed && this.previousMouse.LeftButton == ButtonState.Pressed) { b.State = EmpireUIOverlay.PressState.Pressed; } if (this.currentMouse.LeftButton != ButtonState.Released || this.previousMouse.LeftButton != ButtonState.Pressed) { continue; } if (!(caller is ShipDesignScreen) && !(caller is FleetDesignScreen)) { caller.ExitScreen(); } else if (b.launches != "Shipyard" && b.launches != "Fleets") { if (caller is ShipDesignScreen) { (caller as ShipDesignScreen).ExitToMenu(b.launches); } else if (caller is FleetDesignScreen) { (caller as FleetDesignScreen).ExitScreen(); } return; } else if (caller is FleetDesignScreen && b.launches != "Fleets") { (caller as FleetDesignScreen).ExitScreen(); } string str = b.launches; string str1 = str; if (str != null) { if (str1 == "Research") { AudioManager.PlayCue("echo_affirm"); if (!(caller is ResearchScreenNew)) { this.screen.ScreenManager.AddScreen(new ResearchScreenNew(this)); } } else if (str1 == "Budget") { AudioManager.PlayCue("echo_affirm"); if (!(caller is BudgetScreen)) { this.screen.ScreenManager.AddScreen(new BudgetScreen(this.screen)); } } } string str2 = b.launches; string str3 = str2; if (str2 == null) { continue; } if (str3 == "Main Menu") { AudioManager.PlayCue("echo_affirm"); this.screen.ScreenManager.AddScreen(new GameplayMMScreen(this.screen, caller)); } else if (str3 == "Shipyard") { if (caller is ShipDesignScreen) { continue; } AudioManager.PlayCue("echo_affirm"); this.screen.ScreenManager.AddScreen(new ShipDesignScreen(this)); } else if (str3 == "Fleets") { if (caller is FleetDesignScreen) { continue; } AudioManager.PlayCue("echo_affirm"); this.screen.ScreenManager.AddScreen(new FleetDesignScreen(this)); } else if (str3 == "Empire") { this.screen.ScreenManager.AddScreen(new EmpireScreen(this.screen.ScreenManager, this)); AudioManager.PlayCue("echo_affirm"); } else if (str3 == "Diplomacy") { this.screen.ScreenManager.AddScreen(new MainDiplomacyScreen(this.screen)); AudioManager.PlayCue("echo_affirm"); } else if (str3 == "?") { AudioManager.PlayCue("sd_ui_tactical_pause"); InGameWiki wiki = new InGameWiki(new Rectangle(0, 0, 750, 600)) { TitleText = "StarDrive Help", MiddleText = "This help menu contains information on all of the gameplay systems contained in StarDrive. You can also watch one of several tutorial videos for a developer-guided introduction to StarDrive." }; } } } this.previousMouse = Mouse.GetState(); }
public void RemoveScreen(GameScreen screen) { if (this.graphicsDeviceService != null && this.graphicsDeviceService.GraphicsDevice != null) { screen.UnloadContent(); } this.screens.Remove(screen); this.screensToUpdate.Remove(screen); }
public void AddScreenNoLoad(GameScreen screen) { foreach (GameScreen gs in this.screens) { if (!(gs is DiplomacyScreen)) { continue; } return; } screen.ScreenManager = this; this.screens.Add(screen); }
public void AddScreen(GameScreen screen) { foreach (GameScreen gs in this.screens) { if (!(gs is DiplomacyScreen)) { continue; } return; } screen.ScreenManager = this; if (this.graphicsDeviceService != null && this.graphicsDeviceService.GraphicsDevice != null) { screen.LoadContent(); } this.screens.Add(screen); }
public void Draw(GameScreen universe, Starfield starfield) { Vector2 camPos = Vector2.Zero; Vector2 vector2 = -1f * (camPos - this.lastCamPos); int width = universe.ScreenManager.GraphicsDevice.Viewport.Width; Viewport viewport = universe.ScreenManager.GraphicsDevice.Viewport; Rectangle blackRect = new Rectangle(0, 0, width, viewport.Height); universe.ScreenManager.SpriteBatch.Begin(); Color c = new Color(255, 255, 255, 160); Primitives2D.FillRectangle(universe.ScreenManager.SpriteBatch, blackRect, new Color(12, 17, 24)); universe.ScreenManager.SpriteBatch.Draw(ResourceManager.TextureDict["Textures/hqstarfield1"], blackRect, new Rectangle?(blackRect), c); Vector2 vector21 = new Vector2(camPos.X, camPos.Y); float percentX = camPos.X / 500000f; float percentY = camPos.Y / 500000f; float xDiff = (float)blackRect.Width / 10f; float yDiff = (float)blackRect.Height / 10f; float xPerc = percentX * xDiff; this.cam.Pos = new Vector2(xPerc, percentY * yDiff); starfield.Draw(this.cam.Pos, universe.ScreenManager.SpriteBatch); universe.ScreenManager.SpriteBatch.End(); float x = this.cam.Pos.X; Viewport viewport1 = universe.ScreenManager.GraphicsDevice.Viewport; Rectangle bgRect = new Rectangle((int)(x - (float)(viewport1.Width / 2) - this.cam.Pos.X / 30f - 200f), (int)(this.cam.Pos.Y - (float)(universe.ScreenManager.GraphicsDevice.PresentationParameters.BackBufferHeight / 2) - this.cam.Pos.Y / 30f) - 200, 2048, 2048); Vector2 vector22 = new Vector2(200f, 50f); universe.ScreenManager.SpriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None, this.cam.get_transformation(universe.ScreenManager.GraphicsDevice)); universe.ScreenManager.SpriteBatch.Draw(ResourceManager.BigNebulas[1], bgRect, new Color(255, 255, 255, 60)); universe.ScreenManager.SpriteBatch.Draw(ResourceManager.BigNebulas[3], bgRect, new Color(255, 255, 255, 60)); float single = this.cam.Pos.X; Viewport viewport2 = universe.ScreenManager.GraphicsDevice.Viewport; bgRect = new Rectangle((int)(single - (float)(viewport2.Width / 2) - this.cam.Pos.X / 15f - 200f), (int)(this.cam.Pos.Y - (float)(universe.ScreenManager.GraphicsDevice.PresentationParameters.BackBufferHeight / 2) - this.cam.Pos.Y / 15f) - 200, 2500, 2500); universe.ScreenManager.SpriteBatch.End(); }