def change_text(self, button_index): text_screens = { 'btn_finances' : lambda:get_relations_text(VS.getPlayer()), 'btn_manifest' : lambda:get_manifest_text(VS.getPlayer()), 'btn_missions' : lambda:get_missions_text() } if button_index in text_screens: self.txt_screen.setText( text_screens[button_index]() ) self.txt_screen.show() self.picker_screen.hide() elif button_index == "btn_load": if self.mode != button_index: self.picker_screen.items = savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.selection is not None: ShowProgress.activateProgressScreen('loading',3) import dj_lib dj_lib.enable() game = self.picker_screen.items[self.picker_screen.selection].data if not Director.isUtf8SaveGame(game): alert = f' {game} is not UTF-8, convert it before loading' print(alert) self.alert_text = GUI.GUIStaticText(self.guiroom, 'txt_screen', alert, GUI.GUIRect(40, 60, 438, 100, 'pixel', (800,600)), color=GUI.GUIColor(255, 255, 255), bgcolor=GUI.GUIColor(0, 0, 0)) self.alert_text.show() return else: VS.loadGame(game) elif button_index == "btn_save": if self.mode != button_index: self.picker_screen.items = [GUI.GUISimpleListPicker.listitem("New Game",NewSaveGame)]+savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.visible and self.picker_screen.items[self.picker_screen.selection].data is not NewSaveGame: self.picker_screen.hide() self.txt_screen.setText( "\n"*7+ "Are you sure you want to overwrite the savegame?\n(%s)"% self.picker_screen.items[self.picker_screen.selection] +"\n"*3 +"Press SAVE again to do it." ) self.txt_screen.show() elif self.picker_screen.selection is not None: if self.picker_screen.items[self.picker_screen.selection].data is NewSaveGame: VS.saveGame(makeNewSaveName()) else: VS.saveGame(self.picker_screen.items[self.picker_screen.selection].data) self.picker_screen.items = [GUI.GUISimpleListPicker.listitem("New Game",NewSaveGame)]+savelist() self.picker_screen.show() self.txt_screen.hide() else: self.picker_screen.hide() self.txt_screen.hide() self.mode = button_index
def change_text(self, button_index): text_screens = { 'btn_finances': lambda: get_relations_text(VS.getPlayer()), 'btn_manifest': lambda: get_manifest_text(VS.getPlayer()), 'btn_missions': lambda: get_missions_text() } if button_index in text_screens: self.txt_screen.setText(text_screens[button_index]()) self.txt_screen.show() self.picker_screen.hide() elif button_index == "btn_load": if self.mode != button_index: self.picker_screen.items = savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.selection is not None: ShowProgress.activateProgressScreen('loading', 3) import dj_lib dj_lib.enable() VS.loadGame(self.picker_screen.items[ self.picker_screen.selection].data) elif button_index == "btn_save": if self.mode != button_index: self.picker_screen.items = [ GUI.GUISimpleListPicker.listitem("New Game", NewSaveGame) ] + savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.visible and self.picker_screen.items[ self.picker_screen.selection].data is not NewSaveGame: self.picker_screen.hide() self.txt_screen.setText( "\n" * 7 + "Are you sure you want to overwrite the savegame?\n(%s)" % self.picker_screen.items[self.picker_screen.selection] + "\n" * 3 + "Press SAVE again to do it.") self.txt_screen.show() elif self.picker_screen.selection is not None: if self.picker_screen.items[ self.picker_screen.selection].data is NewSaveGame: VS.saveGame(makeNewSaveName()) else: VS.saveGame(self.picker_screen.items[ self.picker_screen.selection].data) self.picker_screen.items = [ GUI.GUISimpleListPicker.listitem("New Game", NewSaveGame) ] + savelist() self.picker_screen.show() self.txt_screen.hide() else: self.picker_screen.hide() self.txt_screen.hide() self.mode = button_index
def ReloadUniverse(): global genUniverse, hasUniverse if cp >= 0: ShowProgress.activateProgressScreen("loading", force=True) debug.debug('Purging...') for i in fg_util.AllFactions(): fg_util.PurgeZeroShips(i) systemcount[i] = 0 debug.debug('StartSystemCount') ForEachSys(CountSystems) debug.debug(systemcount) debug.debug('EndSystemCount') genUniverse = 0 needNewUniverse = 0 curfaclist = fg_util.AllFactions() reflist = fg_util.ReadStringList(cp, "FactionRefList") if (reflist != curfaclist): needNewUniverse = 1 debug.debug('reflist is ' + str(reflist)) debug.debug('curfaclist is ' + str(curfaclist)) if (fg_util.HasLegacyFGFormat()): needNewUniverse = 1 debug.warn( 'save using legacy FG format... resetting universe to reformat' ) fg_util.DeleteLegacyFGLeftovers() if needNewUniverse: fg_util.WriteStringList(cp, "FactionRefList", curfaclist) debug.debug('generating ships... ... ...') GenerateAllShips( ) ###Insert number of flight groups and max ships per fg debug.debug('placing ships... ... ...') genUniverse = MakeUniverse() #now every system has distributed ships in the save data! else: GenerateAllShips() debug.debug("Second Load") for i in range(len(fgnames)): fg_util.origfgoffset = fgoffset[i] fgnames[i] = fg_util.TweakFGNames(origfgnames[i]) fgoffset[i] += 1 campaigns.loadAll(cp) hasUniverse = True #TODO: add ships to current system (for both modes) uru? ShowProgress.deactivateProgressScreen('loading') else: debug.error('fatal error: no cockpit')
def ReloadUniverse(): global genUniverse, hasUniverse if cp>=0: ShowProgress.activateProgressScreen("loading",force=True) debug.debug('Purging...') for i in fg_util.AllFactions(): fg_util.PurgeZeroShips(i) systemcount[i]=0 debug.debug('StartSystemCount') ForEachSys(CountSystems) debug.debug(systemcount) debug.debug('EndSystemCount') genUniverse=0 needNewUniverse=0 curfaclist = fg_util.AllFactions() reflist = fg_util.ReadStringList(cp,"FactionRefList") if (reflist !=curfaclist): needNewUniverse = 1 debug.debug('reflist is '+str(reflist)) debug.debug('curfaclist is '+str(curfaclist)) if (fg_util.HasLegacyFGFormat()): needNewUniverse = 1 debug.warn('save using legacy FG format... resetting universe to reformat') fg_util.DeleteLegacyFGLeftovers() if needNewUniverse: fg_util.WriteStringList(cp,"FactionRefList",curfaclist) debug.debug('generating ships... ... ...') GenerateAllShips() ###Insert number of flight groups and max ships per fg debug.debug('placing ships... ... ...') genUniverse=MakeUniverse() #now every system has distributed ships in the save data! else: GenerateAllShips() debug.debug("Second Load") for i in xrange(len(fgnames)): fg_util.origfgoffset=fgoffset[i] fgnames[i]=fg_util.TweakFGNames(origfgnames[i]) fgoffset[i]+=1 campaigns.loadAll(cp) hasUniverse=True; #TODO: add ships to current system (for both modes) uru? ShowProgress.deactivateProgressScreen('loading') else: debug.error('fatal error: no cockpit')
def change_text(self, button_index): text_screens = { 'btn_finances' : lambda:get_relations_text(VS.getPlayer()), 'btn_manifest' : lambda:get_manifest_text(VS.getPlayer()), 'btn_missions' : lambda:get_missions_text() } if button_index in text_screens: self.txt_screen.setText( text_screens[button_index]() ) self.txt_screen.show() self.picker_screen.hide() elif button_index == "btn_load": if self.mode != button_index: self.picker_screen.items = savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.selection is not None: ShowProgress.activateProgressScreen('loading',3) import dj_lib dj_lib.enable() VS.loadGame(self.picker_screen.items[self.picker_screen.selection].data) elif button_index == "btn_save": if self.mode != button_index: self.picker_screen.items = [GUI.GUISimpleListPicker.listitem("New Game",NewSaveGame)]+savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.visible and self.picker_screen.items[self.picker_screen.selection].data is not NewSaveGame: self.picker_screen.hide() self.txt_screen.setText( "\n"*7+ "Are you sure you want to overwrite the savegame?\n(%s)"% self.picker_screen.items[self.picker_screen.selection] +"\n"*3 +"Press SAVE again to do it." ) self.txt_screen.show() elif self.picker_screen.selection is not None: if self.picker_screen.items[self.picker_screen.selection].data is NewSaveGame: VS.saveGame(makeNewSaveName()) else: VS.saveGame(self.picker_screen.items[self.picker_screen.selection].data) self.picker_screen.items = [GUI.GUISimpleListPicker.listitem("New Game",NewSaveGame)]+savelist() self.picker_screen.show() self.txt_screen.hide() else: self.picker_screen.hide() self.txt_screen.hide() self.mode = button_index
def NewSystemHousekeeping(self,oldsystem,newsystem): print oldsystem,' IS NOW AT ',newsystem print oldsystem.split('/')[0] if oldsystem.split('/')[0]=='Special': print 'Showing splash screen!' ShowProgress.activateProgressScreen('loading', 0) fg_util.launchBases(newsystem) fg_util.launchUnits(newsystem) news.newNews() newquest = adventure.newAdventure (self.cur_player,oldsystem,newsystem) if (newquest): self.cur.quests+=[newquest] else: self.RestoreDroneMission() self.CalculateSignificantDistance() ShowProgress.deactivateProgressScreen('loading') VS.hideSplashScreen()
def NewSystemHousekeeping(self, oldsystem, newsystem): print(oldsystem, ' IS NOW AT ', newsystem) print(oldsystem.split('/')[0]) if oldsystem.split('/')[0] == 'Special': print('Showing splash screen!') ShowProgress.activateProgressScreen('loading', 0) fg_util.launchBases(newsystem) fg_util.launchUnits(newsystem) news.newNews() newquest = adventure.newAdventure(self.cur_player, oldsystem, newsystem) if (newquest): self.cur.quests += [newquest] else: self.RestoreDroneMission() self.CalculateSignificantDistance() ShowProgress.deactivateProgressScreen('loading') VS.hideSplashScreen()
def StartNewGame(self, params): print(" ;;; StartNewGame(self=%s, params=%s" % (str(self), str(params))) ShowProgress.activateProgressScreen('loading', 3) print(" ;;; VS.loadGame(VS.getNewGameSaveName=%s)" % (str(VS.getNewGameSaveName()))) VS.loadGame(VS.getNewGameSaveName())
def DoStartNewGame(self,params): ShowProgress.activateProgressScreen('loading',3) VS.loadGame(VS.getNewGameSaveName()) enterMainMenu(self, params)
def change_text(self, button_index): text_screens = { 'btn_finances' : lambda:get_relations_text(VS.getPlayer()), 'btn_manifest' : lambda:get_manifest_text(VS.getPlayer()), 'btn_missions' : lambda:get_missions_text() } if button_index in text_screens: self.txt_screen.setText( text_screens[button_index]() ) self.txt_screen.show() self.picker_screen.hide() elif button_index == "btn_load": if self.mode != button_index: self.picker_screen.items = savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.selection is not None: ShowProgress.activateProgressScreen('loading',3) VS.loadGame(self.picker_screen.items[self.picker_screen.selection].data) elif button_index == "btn_save": if self.mode != button_index: self.picker_screen.items = [ GUI.GUISimpleListPicker.listitem("New Game",NewSaveGame) ]+savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.visible and self.picker_screen.items[self.picker_screen.selection].data is not NewSaveGame: self.picker_screen.hide() self.txt_screen.setText( "\n"*7+ "Are you sure you want to overwrite the savegame?\n(%s)"% self.picker_screen.items[self.picker_screen.selection] +"\n"*3 +"Press SAVE again to do it." ) self.txt_screen.show() elif self.picker_screen.selection is not None: savename = '' if self.picker_screen.items[self.picker_screen.selection].data is NewSaveGame: savename = makeNewSaveName() self.oldSaveName = None else: savename = self.picker_screen.items[self.picker_screen.selection].data self.oldSaveName = savename #enter a modal line editor boxloc = GUI.GUIRect(120,130,200,20,"pixel",(800,600)) self.saveGameNameEntryBox = GUI.GUILineEdit(self.saveNameEntryEntered, self.guiroom,"box_save", savename, boxloc, self.screen_color, bgcolor=self.screen_bgcolor) for id in list(self.buttons.keys()): button = self.buttons[id] button.disable() button.redraw() self.saveGameNameEntryBox.focus(True) # self.setExitLinkState(False) self.txt_screen.setText( 'Save Game:' ) self.txt_screen.show() self.saveGameNameEntryBox.show() self.picker_screen.hide() self.lastEnteredSavegameName = None self.guiroom.redraw() else: self.picker_screen.hide() self.txt_screen.hide() self.mode = button_index
def DoStartNewGame(self,params): global starting_new_game ShowProgress.activateProgressScreen('loading',3) VS.loadGame(VS.getNewGameSaveName()) starting_new_game = False enterMainMenu(self,params)
def StartNewGame(self,params): print(" ;;; StartNewGame(self=%s, params=%s" % (str(self), str(params))) ShowProgress.activateProgressScreen('loading',3) print(" ;;; VS.loadGame(VS.getNewGameSaveName=%s)" % (str(VS.getNewGameSaveName()))) VS.loadGame(VS.getNewGameSaveName())
def change_text(self, button_index): # this method performs the necessary action of a button click text_screens = { "btn_finances": lambda: get_relations_text(VS.getPlayer()), "btn_manifest": lambda: get_manifest_text(VS.getPlayer()), "btn_missions": lambda: get_missions_text(), } if button_index in text_screens: # show new text screen (finances, manifext, missions) self.txt_screen.setText(text_screens[button_index]()) self.txt_screen.show() self.picker_screen.hide() elif button_index == "btn_load": # "load" button clicked if self.mode != button_index: # load list of saved games self.picker_screen.items = savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.selection is not None: # load selected saved game ShowProgress.activateProgressScreen("loading", 3) VS.loadGame(self.picker_screen.items[self.picker_screen.selection].data) elif button_index == "btn_save": # "save" button clicked if self.mode != button_index: # load list of saved games (to overwrite), or "New Game" self.picker_screen.items = [GUI.GUISimpleListPicker.listitem("New Game", NewSaveGame)] + savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.selection is not None: # a list item has been selected listItem = self.picker_screen.items[self.picker_screen.selection] if listItem.data is NewSaveGame: # new game # show save text box savename = "" # savename = makeNewSaveName() self.oldSaveName = None # why? # enter a modal line editor boxloc = GUI.GUIRect(120, 130, 200, 20, "pixel", (800, 600)) self.saveGameNameEntryBox = GUI.GUILineEdit( self.saveNameEntryEntered, self.guiroom, "box_save", savename, boxloc, self.screen_bgcolor, bgcolor=self.screen_color, ) # use inverted fore/background colors; even better would be a box around input field # disable all the buttons for id in self.buttons.keys(): button = self.buttons[id] button.disable() button.redraw() # self.setExitLinkState(False) self.txt_screen.setText("Type name and press ENTER:") self.txt_screen.show() self.saveGameNameEntryBox.focus(True) self.saveGameNameEntryBox.show() self.picker_screen.hide() self.lastEnteredSavegameName = None self.guiroom.redraw() elif self.picker_screen.visible: # not new game, and pick screen visible # so, show confirm screen trace(0, "::: picker_screen.visible") self.picker_screen.hide() self.txt_screen.setText( "\n" * 7 + "Are you sure you want to overwrite the savegame?\n" # (%s)"% listItem.data + "\n" * 3 + "Press SAVE again to do it." ) self.txt_screen.show() else: # not new game, and pick screen not visible # that means confirm screen IS visible, so do save trace(0, "::: picker_screen NOT visible") savename = self.picker_screen.items[self.picker_screen.selection].data VS.saveGame(savename) self.oldSaveName = savename # redisplay saved list self.picker_screen.items = [GUI.GUISimpleListPicker.listitem("New Game", NewSaveGame)] + savelist() self.picker_screen.show() self.txt_screen.hide() # or should this call reset? or show "game saved" text? else: # some other button was pressed self.picker_screen.hide() self.txt_screen.hide() self.mode = button_index
def change_text(self, button_index): text_screens = { 'btn_finances': lambda: get_relations_text(VS.getPlayer()), 'btn_manifest': lambda: get_manifest_text(VS.getPlayer()), 'btn_missions': lambda: get_missions_text() } if button_index in text_screens: self.txt_screen.setText(text_screens[button_index]()) self.txt_screen.show() self.picker_screen.hide() elif button_index == "btn_load": if self.mode != button_index: self.picker_screen.items = savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.selection is not None: ShowProgress.activateProgressScreen('loading', 3) VS.loadGame(self.picker_screen.items[ self.picker_screen.selection].data) elif button_index == "btn_save": if self.mode != button_index: self.picker_screen.items = [ GUI.GUISimpleListPicker.listitem("New Game", NewSaveGame) ] + savelist() self.picker_screen.show() self.txt_screen.hide() elif self.picker_screen.visible and self.picker_screen.items[ self.picker_screen.selection].data is not NewSaveGame: self.picker_screen.hide() self.txt_screen.setText( "\n" * 7 + "Are you sure you want to overwrite the savegame?\n(%s)" % self.picker_screen.items[self.picker_screen.selection] + "\n" * 3 + "Press SAVE again to do it.") self.txt_screen.show() elif self.picker_screen.selection is not None: savename = '' if self.picker_screen.items[ self.picker_screen.selection].data is NewSaveGame: savename = makeNewSaveName() self.oldSaveName = None else: savename = self.picker_screen.items[ self.picker_screen.selection].data self.oldSaveName = savename #enter a modal line editor boxloc = GUI.GUIRect(120, 130, 200, 20, "pixel", (800, 600)) self.saveGameNameEntryBox = GUI.GUILineEdit( self.saveNameEntryEntered, self.guiroom, "box_save", savename, boxloc, self.screen_color, bgcolor=self.screen_bgcolor) for id in list(self.buttons.keys()): button = self.buttons[id] button.disable() button.redraw() self.saveGameNameEntryBox.focus(True) # self.setExitLinkState(False) self.txt_screen.setText('Save Game:') self.txt_screen.show() self.saveGameNameEntryBox.show() self.picker_screen.hide() self.lastEnteredSavegameName = None self.guiroom.redraw() else: self.picker_screen.hide() self.txt_screen.hide() self.mode = button_index
def StartNewGame(self, params): ShowProgress.activateProgressScreen("loading", 3) VS.loadGame(VS.getNewGameSaveName())
def DoStartNewGame(self, params): ShowProgress.activateProgressScreen('loading', 3) VS.loadGame(VS.getNewGameSaveName()) enterMainMenu(self, params)