def __init__(self, questID): ScriptWidget.__init__(self) ActionListener.__init__(self) self.bg = Sprite("DATA/FormPQuest2/2BG.gi") self.addChild(self.bg) self.paramWindow = NinePatch("ORC/quest_param_win.9.json") self.paramWindow.position = (643, 457) self.paramWindow.geometry = (320, 280) self.addChild(self.paramWindow) self.exitButton = Button("DATA/FormPQuest2/2CloseN.gi", "DATA/FormPQuest2/2CloseA.gi", "DATA/FormPQuest2/2CloseD.gi") self.exitButton.position = (953, 725) self.addWidget(self.exitButton) self.exitButton.addListener(self) self.image = None self.questID = questID self.questFile = resources.datRoot()['PlanetQuest']['PlanetQuest'][questID].value.replace('\\', '/') player.loadQuest(self.questFile) self.loadImages() self.style = resources.objectManager().getResourceObject('/world/skin/quest/grey') self.interact = InteractionWidget(Rect(15, 45, 15 + 539, 45 + 363), Rect(15, 482, 15 + 539, 482 + 215), self.style) self.interact.position = (35, 5) self.interact.layer = -2; self.addWidget(self.interact) self.interact.addListener(self) self.paramLabel = ColorLabel("") self.paramLabel.wordWrap = True self.paramLabel.position = (665, 480) self.paramLabel.setFixedSize(280, 280) self.paramLabel.textColor = self.style.color self.paramLabel.selectionColor = self.style.activeColor self.addChild(self.paramLabel) self.skin1Button = Button("DATA/FormPQuest2/2Skin1N.gi", "DATA/FormPQuest2/2Skin1A.gi", "DATA/FormPQuest2/2Skin1D.gi") self.skin1Button.position = (529, 742) self.addWidget(self.skin1Button) self.skin1Button.addListener(self) self.skin2Button = Button("DATA/FormPQuest2/2Skin2N.gi", "DATA/FormPQuest2/2Skin2A.gi", "DATA/FormPQuest2/2Skin2D.gi") self.skin2Button.position = (547, 742) self.addWidget(self.skin2Button) self.skin2Button.addListener(self) self.skin3Button = Button("DATA/FormPQuest2/2Skin3N.gi", "DATA/FormPQuest2/2Skin3A.gi", "DATA/FormPQuest2/2Skin3D.gi") self.skin3Button.position = (565, 742) self.addWidget(self.skin3Button) self.skin3Button.addListener(self) self.skin4Button = Button("DATA/FormPQuest2/2Skin4N.gi", "DATA/FormPQuest2/2Skin4A.gi", "DATA/FormPQuest2/2Skin4D.gi") self.skin4Button.position = (583, 742) self.addWidget(self.skin4Button) self.skin4Button.addListener(self) self.updateWidget()
def updateStyle(self): oldInteract = self.interact self.interact = InteractionWidget(Rect(15, 45, 15 + 539, 45 + 363), Rect(15, 482, 15 + 539, 482 + 215), self.style) self.interact.position = (35, 5) self.interact.layer = -2 self.addWidget(self.interact) self.interact.addListener(self) self.updateWidget() if oldInteract: oldInteract.removeListener(self) self.removeWidget(oldInteract)
def updateStyle(self): oldInteract = self.interact self.interact = InteractionWidget(Rect(15, 45, 15 + 539, 45 + 363), Rect(15, 482, 15 + 539, 482 + 215), self.style) self.interact.position = (35, 5) self.interact.layer = -2; self.addWidget(self.interact) self.interact.addListener(self) self.updateWidget() if oldInteract: oldInteract.removeListener(self) self.removeWidget(oldInteract)
class QuestWidget(ScriptWidget, ActionListener): def __init__(self, questID): ScriptWidget.__init__(self) ActionListener.__init__(self) self.bg = Sprite("DATA/FormPQuest2/2BG.gi") self.addChild(self.bg) self.paramWindow = NinePatch("ORC/quest_param_win.9.json") self.paramWindow.position = (643, 457) self.paramWindow.geometry = (320, 280) self.addChild(self.paramWindow) self.exitButton = Button("DATA/FormPQuest2/2CloseN.gi", "DATA/FormPQuest2/2CloseA.gi", "DATA/FormPQuest2/2CloseD.gi") self.exitButton.position = (953, 725) self.addWidget(self.exitButton) self.exitButton.addListener(self) self.image = None self.questID = questID self.questFile = resources.datRoot()['PlanetQuest']['PlanetQuest'][questID].value.replace('\\', '/') player.loadQuest(self.questFile) self.loadImages() self.style = resources.objectManager().getResourceObject('/world/skin/quest/grey') self.interact = InteractionWidget(Rect(15, 45, 15 + 539, 45 + 363), Rect(15, 482, 15 + 539, 482 + 215), self.style) self.interact.position = (35, 5) self.interact.layer = -2; self.addWidget(self.interact) self.interact.addListener(self) self.paramLabel = ColorLabel("") self.paramLabel.wordWrap = True self.paramLabel.position = (665, 480) self.paramLabel.setFixedSize(280, 280) self.paramLabel.textColor = self.style.color self.paramLabel.selectionColor = self.style.activeColor self.addChild(self.paramLabel) self.skin1Button = Button("DATA/FormPQuest2/2Skin1N.gi", "DATA/FormPQuest2/2Skin1A.gi", "DATA/FormPQuest2/2Skin1D.gi") self.skin1Button.position = (529, 742) self.addWidget(self.skin1Button) self.skin1Button.addListener(self) self.skin2Button = Button("DATA/FormPQuest2/2Skin2N.gi", "DATA/FormPQuest2/2Skin2A.gi", "DATA/FormPQuest2/2Skin2D.gi") self.skin2Button.position = (547, 742) self.addWidget(self.skin2Button) self.skin2Button.addListener(self) self.skin3Button = Button("DATA/FormPQuest2/2Skin3N.gi", "DATA/FormPQuest2/2Skin3A.gi", "DATA/FormPQuest2/2Skin3D.gi") self.skin3Button.position = (565, 742) self.addWidget(self.skin3Button) self.skin3Button.addListener(self) self.skin4Button = Button("DATA/FormPQuest2/2Skin4N.gi", "DATA/FormPQuest2/2Skin4A.gi", "DATA/FormPQuest2/2Skin4D.gi") self.skin4Button.position = (583, 742) self.addWidget(self.skin4Button) self.skin4Button.addListener(self) self.updateWidget() def updateStyle(self): oldInteract = self.interact self.interact = InteractionWidget(Rect(15, 45, 15 + 539, 45 + 363), Rect(15, 482, 15 + 539, 482 + 215), self.style) self.interact.position = (35, 5) self.interact.layer = -2; self.addWidget(self.interact) self.interact.addListener(self) self.updateWidget() if oldInteract: oldInteract.removeListener(self) self.removeWidget(oldInteract) def updateWidget(self): self.selectionsID = [] text = player.currentText.replace("\r\n", "\n") if player.questCompleted: text = text + "\n\n\\c008000" + _("Quest completed!", "Planet.NotCivil.QuestPlay.MsgSuccess") + "\\cR" elif player.questFailed: text = text + "\n\n\\c800000" + _("Quest failed!", "Planet.NotCivil.QuestPlay.MsgFail") + "\\cR" if player.death: text = text + "\n\n\\c800000" + _("You're dead!", "Planet.NotCivil.QuestPlay.MsgDeath") + "\\cR" self.interact.text = text trans = player.visibleTransitions selections = [] for t in trans: self.selectionsID.append(t[0]) selections.append((t[1], t[2])) self.interact.selections = selections self.paramLabel.text = "\n".join(player.visibleParameters) newImage = getCacheDATPath(self.images[player.currentImage]) if newImage != "": if self.image: self.removeChild(self.image) self.image = Sprite(newImage) self.image.layer = -1 self.image.position = (656, 32) self.addChild(self.image) def loadImages(self): self.locImages = {} self.transImages = {} self.images = [] pqi = resources.datRoot()['Data']['PQI'] for r in pqi: v = r.name.split(',') if v[0] != self.questID: continue img = r.value imgID = len(self.images) self.images.append(img) if v[1] == "P" or v[1] == "PAR": for i in v[2:]: self.transImages[int(i)] = imgID else: for i in v[2:]: self.locImages[int(i)] = imgID player.setImages(self.locImages, self.transImages) def dispose(self): engine.removeWidget(self) self.skin1Button.removeListener(self) self.skin2Button.removeListener(self) self.skin3Button.removeListener(self) self.skin4Button.removeListener(self) self.interact.removeListener(self) self.exitButton.removeListener(self) def actionPerformed(self, action): if action.type >= Action.Type.USER and action.source == self.interact: index = action.type - Action.Type.USER player.transit(self.selectionsID[index]) self.updateWidget() if action.type == Action.Type.BUTTON_CLICKED: if action.source == self.exitButton: self.dispose() engine.addWidget(OpenSR.ORC.StartMenu.StartMenuWidget()) if action.source == self.skin1Button: self.style = resources.objectManager().getResourceObject('/world/skin/quest/grey') self.updateStyle() if action.source == self.skin2Button: self.style = resources.objectManager().getResourceObject('/world/skin/quest/dark') self.updateStyle() if action.source == self.skin3Button: self.style = resources.objectManager().getResourceObject('/world/skin/quest/light') self.updateStyle() if action.source == self.skin4Button: self.style = resources.objectManager().getResourceObject('/world/skin/quest/green') self.updateStyle()
def __init__(self, questID): ScriptWidget.__init__(self) ActionListener.__init__(self) self.bg = Sprite("DATA/FormPQuest2/2BG.gi") self.addChild(self.bg) self.paramWindow = NinePatch("ORC/quest_param_win.9.json") self.paramWindow.position = (643, 457) self.paramWindow.geometry = (320, 280) self.addChild(self.paramWindow) self.exitButton = Button("DATA/FormPQuest2/2CloseN.gi", "DATA/FormPQuest2/2CloseA.gi", "DATA/FormPQuest2/2CloseD.gi") self.exitButton.position = (953, 725) self.addWidget(self.exitButton) self.exitButton.addListener(self) self.image = None self.questID = questID self.questFile = resources.datRoot( )['PlanetQuest']['PlanetQuest'][questID].value.replace('\\', '/') player.loadQuest(self.questFile) self.loadImages() self.style = resources.objectManager().getResourceObject( '/world/skin/quest/grey') self.interact = InteractionWidget(Rect(15, 45, 15 + 539, 45 + 363), Rect(15, 482, 15 + 539, 482 + 215), self.style) self.interact.position = (35, 5) self.interact.layer = -2 self.addWidget(self.interact) self.interact.addListener(self) self.paramLabel = ColorLabel("") self.paramLabel.wordWrap = True self.paramLabel.position = (665, 480) self.paramLabel.setFixedSize(280, 280) self.paramLabel.textColor = self.style.color self.paramLabel.selectionColor = self.style.activeColor self.addChild(self.paramLabel) self.skin1Button = Button("DATA/FormPQuest2/2Skin1N.gi", "DATA/FormPQuest2/2Skin1A.gi", "DATA/FormPQuest2/2Skin1D.gi") self.skin1Button.position = (529, 742) self.addWidget(self.skin1Button) self.skin1Button.addListener(self) self.skin2Button = Button("DATA/FormPQuest2/2Skin2N.gi", "DATA/FormPQuest2/2Skin2A.gi", "DATA/FormPQuest2/2Skin2D.gi") self.skin2Button.position = (547, 742) self.addWidget(self.skin2Button) self.skin2Button.addListener(self) self.skin3Button = Button("DATA/FormPQuest2/2Skin3N.gi", "DATA/FormPQuest2/2Skin3A.gi", "DATA/FormPQuest2/2Skin3D.gi") self.skin3Button.position = (565, 742) self.addWidget(self.skin3Button) self.skin3Button.addListener(self) self.skin4Button = Button("DATA/FormPQuest2/2Skin4N.gi", "DATA/FormPQuest2/2Skin4A.gi", "DATA/FormPQuest2/2Skin4D.gi") self.skin4Button.position = (583, 742) self.addWidget(self.skin4Button) self.skin4Button.addListener(self) self.updateWidget()
class QuestWidget(ScriptWidget, ActionListener): def __init__(self, questID): ScriptWidget.__init__(self) ActionListener.__init__(self) self.bg = Sprite("DATA/FormPQuest2/2BG.gi") self.addChild(self.bg) self.paramWindow = NinePatch("ORC/quest_param_win.9.json") self.paramWindow.position = (643, 457) self.paramWindow.geometry = (320, 280) self.addChild(self.paramWindow) self.exitButton = Button("DATA/FormPQuest2/2CloseN.gi", "DATA/FormPQuest2/2CloseA.gi", "DATA/FormPQuest2/2CloseD.gi") self.exitButton.position = (953, 725) self.addWidget(self.exitButton) self.exitButton.addListener(self) self.image = None self.questID = questID self.questFile = resources.datRoot( )['PlanetQuest']['PlanetQuest'][questID].value.replace('\\', '/') player.loadQuest(self.questFile) self.loadImages() self.style = resources.objectManager().getResourceObject( '/world/skin/quest/grey') self.interact = InteractionWidget(Rect(15, 45, 15 + 539, 45 + 363), Rect(15, 482, 15 + 539, 482 + 215), self.style) self.interact.position = (35, 5) self.interact.layer = -2 self.addWidget(self.interact) self.interact.addListener(self) self.paramLabel = ColorLabel("") self.paramLabel.wordWrap = True self.paramLabel.position = (665, 480) self.paramLabel.setFixedSize(280, 280) self.paramLabel.textColor = self.style.color self.paramLabel.selectionColor = self.style.activeColor self.addChild(self.paramLabel) self.skin1Button = Button("DATA/FormPQuest2/2Skin1N.gi", "DATA/FormPQuest2/2Skin1A.gi", "DATA/FormPQuest2/2Skin1D.gi") self.skin1Button.position = (529, 742) self.addWidget(self.skin1Button) self.skin1Button.addListener(self) self.skin2Button = Button("DATA/FormPQuest2/2Skin2N.gi", "DATA/FormPQuest2/2Skin2A.gi", "DATA/FormPQuest2/2Skin2D.gi") self.skin2Button.position = (547, 742) self.addWidget(self.skin2Button) self.skin2Button.addListener(self) self.skin3Button = Button("DATA/FormPQuest2/2Skin3N.gi", "DATA/FormPQuest2/2Skin3A.gi", "DATA/FormPQuest2/2Skin3D.gi") self.skin3Button.position = (565, 742) self.addWidget(self.skin3Button) self.skin3Button.addListener(self) self.skin4Button = Button("DATA/FormPQuest2/2Skin4N.gi", "DATA/FormPQuest2/2Skin4A.gi", "DATA/FormPQuest2/2Skin4D.gi") self.skin4Button.position = (583, 742) self.addWidget(self.skin4Button) self.skin4Button.addListener(self) self.updateWidget() def updateStyle(self): oldInteract = self.interact self.interact = InteractionWidget(Rect(15, 45, 15 + 539, 45 + 363), Rect(15, 482, 15 + 539, 482 + 215), self.style) self.interact.position = (35, 5) self.interact.layer = -2 self.addWidget(self.interact) self.interact.addListener(self) self.updateWidget() if oldInteract: oldInteract.removeListener(self) self.removeWidget(oldInteract) def updateWidget(self): self.selectionsID = [] text = player.currentText.replace("\r\n", "\n") if player.questCompleted: text = text + "\n\n\\c008000" + _( "Quest completed!", "Planet.NotCivil.QuestPlay.MsgSuccess") + "\\cR" elif player.questFailed: text = text + "\n\n\\c800000" + _( "Quest failed!", "Planet.NotCivil.QuestPlay.MsgFail") + "\\cR" if player.death: text = text + "\n\n\\c800000" + _( "You're dead!", "Planet.NotCivil.QuestPlay.MsgDeath") + "\\cR" self.interact.text = text trans = player.visibleTransitions selections = [] for t in trans: self.selectionsID.append(t[0]) selections.append((t[1], t[2])) self.interact.selections = selections self.paramLabel.text = "\n".join(player.visibleParameters) newImage = getCacheDATPath(self.images[player.currentImage]) if newImage != "": if self.image: self.removeChild(self.image) self.image = Sprite(newImage) self.image.layer = -1 self.image.position = (656, 32) self.addChild(self.image) def loadImages(self): self.locImages = {} self.transImages = {} self.images = [] pqi = resources.datRoot()['Data']['PQI'] for r in pqi: v = r.name.split(',') if v[0] != self.questID: continue img = r.value imgID = len(self.images) self.images.append(img) if v[1] == "P" or v[1] == "PAR": for i in v[2:]: self.transImages[int(i)] = imgID else: for i in v[2:]: self.locImages[int(i)] = imgID player.setImages(self.locImages, self.transImages) def dispose(self): engine.removeWidget(self) self.skin1Button.removeListener(self) self.skin2Button.removeListener(self) self.skin3Button.removeListener(self) self.skin4Button.removeListener(self) self.interact.removeListener(self) self.exitButton.removeListener(self) def actionPerformed(self, action): if action.type >= Action.Type.USER and action.source == self.interact: index = action.type - Action.Type.USER player.transit(self.selectionsID[index]) self.updateWidget() if action.type == Action.Type.BUTTON_CLICKED: if action.source == self.exitButton: self.dispose() engine.addWidget(OpenSR.ORC.StartMenu.StartMenuWidget()) if action.source == self.skin1Button: self.style = resources.objectManager().getResourceObject( '/world/skin/quest/grey') self.updateStyle() if action.source == self.skin2Button: self.style = resources.objectManager().getResourceObject( '/world/skin/quest/dark') self.updateStyle() if action.source == self.skin3Button: self.style = resources.objectManager().getResourceObject( '/world/skin/quest/light') self.updateStyle() if action.source == self.skin4Button: self.style = resources.objectManager().getResourceObject( '/world/skin/quest/green') self.updateStyle()