def _addedToMap(self, map): self.mapGeom.setScale(aspect2d, 0.3) overlayNode = map.getOverlayNode() worldNode = map.getWorldNode() transform = self.mapGeom.getTransform(overlayNode) self.hpMeter = HpMeter(width=0.4, parent=overlayNode) self.hpMeter.setP(-90) if self.zone != InvasionGlobals.getTotalCapturePoints(self.holidayId): self.hpMeter.setPos(transform.getPos() + (50, 0, 0)) else: self.hpMeter.setPos(InvasionGlobals.getMainCapturePointHpPos(self.holidayId)) self.hpMeter.setScale(transform.getScale()) self.hpMeter['sortOrder'] = MinimapCapturePoint.SORT self.hpMeter.setAlphaScale(1, 1) self.hpMeter.categoryLabel['text_scale'] = 0.1 self.hpMeter.update(1, 1) topGui = loader.loadModel('models/gui/toplevel_gui') if self.zone != InvasionGlobals.getTotalCapturePoints(self.holidayId): self.barricadeIcon = OnscreenImage(parent=self.mapGeom, image=topGui.find('**/pir_t_gui_gen_barricade'), scale=1.5, hpr=(0, 90, 0), color=(1.0, 0.5, 0.0, 1)) self.barricadeDestroyed = OnscreenImage(parent=overlayNode, image=topGui.find('**/pir_t_gui_gen_Xred'), scale=transform.getScale() * 4.0, pos=transform.getPos(), hpr=(0, -90, 0)) self.barricadeDestroyed.hide() topGui.removeNode() self.mouseOver = GuiButton(parent=self.hpMeter, relief=None, state=DGG.NORMAL, scale=3.0, image=None, frameSize=(-0.1, 0.15, -0.03, 0.03), helpText=PLocalizer.CapturePointNames[self.holidayId][self.zone], helpPos=(0.1, 0, -0.08), helpDelay=0, helpOpaque=True, sortOrder=MinimapShop.SORT) return
def _addedToMap(self, map): self.mapGeom.setScale(aspect2d, 0.29999999999999999) overlayNode = map.getOverlayNode() worldNode = map.getWorldNode() transform = self.mapGeom.getTransform(overlayNode) self.hpMeter = HpMeter(width = 0.40000000000000002, parent = overlayNode) self.hpMeter.setP(-90) if self.zone != InvasionGlobals.getTotalCapturePoints(self.holidayId): self.hpMeter.setPos(transform.getPos() + (50, 0, 0)) else: self.hpMeter.setPos(InvasionGlobals.getMainCapturePointHpPos(self.holidayId)) self.hpMeter.setScale(transform.getScale()) self.hpMeter['sortOrder'] = MinimapCapturePoint.SORT self.hpMeter.setAlphaScale(1, 1) self.hpMeter.categoryLabel['text_scale'] = 0.10000000000000001 self.hpMeter.update(1, 1) topGui = loader.loadModel('models/gui/toplevel_gui') if self.zone != InvasionGlobals.getTotalCapturePoints(self.holidayId): self.barricadeIcon = OnscreenImage(parent = self.mapGeom, image = topGui.find('**/pir_t_gui_gen_barricade'), scale = 1.5, hpr = (0, 90, 0), color = (1.0, 0.5, 0.0, 1)) self.barricadeDestroyed = OnscreenImage(parent = overlayNode, image = topGui.find('**/pir_t_gui_gen_Xred'), scale = transform.getScale() * 4.0, pos = transform.getPos(), hpr = (0, -90, 0)) self.barricadeDestroyed.hide() topGui.removeNode() self.mouseOver = GuiButton(parent = self.hpMeter, relief = None, state = DGG.NORMAL, scale = 3.0, image = None, frameSize = (-0.10000000000000001, 0.14999999999999999, -0.029999999999999999, 0.029999999999999999), helpText = PLocalizer.CapturePointNames[self.holidayId][self.zone], helpPos = (0.10000000000000001, 0, -0.080000000000000002), helpDelay = 0, helpOpaque = True, sortOrder = MinimapShop.SORT)
class MinimapCapturePoint(MinimapObject): SORT = 4 def __init__(self, worldNode, holiday, zone): MinimapObject.__init__(self, 'capturePoint-%d' % zone, worldNode, NodePath('capturePoint')) self.holidayId = holiday self.zone = zone self.hpMeter = None self.barricadeIcon = None self.barricadeDestroyed = None self.blinker = None self.sentRemove = False self.hp = 0 self.maxHp = 0 whiteColor = (1.0, 1.0, 1.0, 1.0) self.blinker = Sequence(Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor), Wait(0.20000000000000001), Func(self.setBarColor, whiteColor), Wait(0.20000000000000001), Func(self.setBarColor)) def setHp(self, hp, maxHp): if self.hpMeter: if hp != self.hpMeter.meter['value']: pass hpMismatch = hp != maxHp self.hp = hp self.maxHp = hp self.hpMeter.update(hp, maxHp) if hpMismatch: if self.blinker: self.blinker.finish() self.blinker.start() if hp <= 0 and maxHp >= 0 and not (self.sentRemove): self.sentRemove = True if self.hpMeter: self.hpMeter.destroy() self.hpMeter = None if self.blinker: self.blinker.pause() self.blinker = None if self.barricadeIcon: self.barricadeIcon.destroy() self.barricadeIcon = None if self.barricadeDestroyed and self.zone != InvasionGlobals.getTotalCapturePoints(self.holidayId): self.barricadeDestroyed.show() return True else: return False def setBarColor(self, color = None): if self.barricadeIcon: if color: barricadeColor = color else: barricadeColor = (1.0, 0.5, 0.0, 1) self.barricadeIcon.setColor(barricadeColor) if self.hpMeter: if not color: if self.maxHp <= 0: hpFraction = 0 else: hpFraction = float(self.hp) / float(self.maxHp) if hpFraction >= 0.5: color = (0.10000000000000001, 0.69999999999999996, 0.10000000000000001, 1) elif hpFraction >= 0.25: color = (1.0, 1.0, 0.10000000000000001, 1) else: color = (1.0, 0.0, 0.0, 1) self.hpMeter.meter['barColor'] = color if color == PiratesGuiGlobals.TextFG2: self.hpMeter.categoryLabel['text_fg'] = color else: self.hpMeter.categoryLabel['text_fg'] = PiratesGuiGlobals.TextFG1 def _addedToMap(self, map): self.mapGeom.setScale(aspect2d, 0.29999999999999999) overlayNode = map.getOverlayNode() worldNode = map.getWorldNode() transform = self.mapGeom.getTransform(overlayNode) self.hpMeter = HpMeter(width = 0.40000000000000002, parent = overlayNode) self.hpMeter.setP(-90) if self.zone != InvasionGlobals.getTotalCapturePoints(self.holidayId): self.hpMeter.setPos(transform.getPos() + (50, 0, 0)) else: self.hpMeter.setPos(InvasionGlobals.getMainCapturePointHpPos(self.holidayId)) self.hpMeter.setScale(transform.getScale()) self.hpMeter['sortOrder'] = MinimapCapturePoint.SORT self.hpMeter.setAlphaScale(1, 1) self.hpMeter.categoryLabel['text_scale'] = 0.10000000000000001 self.hpMeter.update(1, 1) topGui = loader.loadModel('models/gui/toplevel_gui') if self.zone != InvasionGlobals.getTotalCapturePoints(self.holidayId): self.barricadeIcon = OnscreenImage(parent = self.mapGeom, image = topGui.find('**/pir_t_gui_gen_barricade'), scale = 1.5, hpr = (0, 90, 0), color = (1.0, 0.5, 0.0, 1)) self.barricadeDestroyed = OnscreenImage(parent = overlayNode, image = topGui.find('**/pir_t_gui_gen_Xred'), scale = transform.getScale() * 4.0, pos = transform.getPos(), hpr = (0, -90, 0)) self.barricadeDestroyed.hide() topGui.removeNode() self.mouseOver = GuiButton(parent = self.hpMeter, relief = None, state = DGG.NORMAL, scale = 3.0, image = None, frameSize = (-0.10000000000000001, 0.14999999999999999, -0.029999999999999999, 0.029999999999999999), helpText = PLocalizer.CapturePointNames[self.holidayId][self.zone], helpPos = (0.10000000000000001, 0, -0.080000000000000002), helpDelay = 0, helpOpaque = True, sortOrder = MinimapShop.SORT) def _removedFromMap(self, map): if self.blinker: self.blinker.pause() self.blinker = None if self.hpMeter: self.hpMeter.destroy() self.hpMeter = None if self.barricadeIcon: self.barricadeIcon.destroy() self.barricadeIcon = None if self.barricadeDestroyed: self.barricadeDestroyed.destroy() self.barricadeDestroyed = None def getZone(self): return self.zone