NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

mapMarkerVulnerableSkyhook.py (4039B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\markers\mapMarkerVulnerableSkyhook.py
      2 import blue
      3 import eveicon
      4 import uthread
      5 from carbonui.uianimations import animations
      6 from carbonui.uicore import uicore
      7 from carbonui.util.various_unsorted import GetWindowAbove
      8 from eve.client.script.ui import eveColor
      9 from eve.client.script.ui.control.themeColored import SpriteThemeColored
     10 from eve.client.script.ui.shared.mapView import mapViewConst
     11 from eve.client.script.ui.shared.mapView.markers.mapMarkerBase_Icon import MarkerIconBase
     12 from localization import GetByLabel
     13 import carbonui.const as uiconst
     14 from carbonui.primitives.base import ScaleDpi
     15 from math import pi
     16 import logging
     17 log = logging.getLogger(__name__)
     18 
     19 class MarkerVulnerableSkyhook(MarkerIconBase):
     20     distanceFadeAlphaNearFar = (0.0, mapViewConst.MAX_MARKER_DISTANCE)
     21     texturePath = eveicon.skyhook
     22 
     23     def __init__(self, animate = True, skyhook_list = None, *args, **kwds):
     24         super(MarkerVulnerableSkyhook, self).__init__(*args, **kwds)
     25         self.bgCircles = []
     26         self.projectBracket.offsetY = ScaleDpi(30)
     27         self.skyhooks = skyhook_list
     28         if skyhook_list is None:
     29             return
     30         details = ''
     31         for skyhook in self.skyhooks:
     32             if len(details) > 0:
     33                 details += '<br>'
     34             details += cfg.evelocations.Get(skyhook.planet_id).locationName
     35 
     36         self._label_details = details
     37 
     38     def Load(self):
     39         super(MarkerVulnerableSkyhook, self).Load()
     40         self.backgroundSprite.rotation = pi
     41         self.backgroundSprite.pos = ((self.width - 64) / 2,
     42          (self.height - 64) / 2 - 12,
     43          64,
     44          64)
     45         self.backgroundSprite.color = eveColor.CHERRY_RED
     46 
     47     def Close(self):
     48         uicore.animations.StopAllAnimations(self)
     49         super(MarkerVulnerableSkyhook, self).Close()
     50 
     51     def GetMenu(self):
     52         pass
     53 
     54     def GetLabelText(self):
     55         if self.skyhooks is None:
     56             return GetByLabel('UI/OrbitalSkyhook/SkyhookMap/SkyhookVulnerableToTheft')
     57         else:
     58             return GetByLabel('UI/OrbitalSkyhook/SkyhookMap/VulnerableSkyhooksTooltip', details=self._label_details)
     59 
     60     def ShowDscanHilite(self):
     61         pass
     62 
     63     def _CreateRenderObject(self):
     64         super(MarkerVulnerableSkyhook, self)._CreateRenderObject()
     65         self.CheckConstructCircles()
     66 
     67     def CheckConstructCircles(self):
     68         if self.markerContainer and not self.markerContainer.destroyed:
     69             self.ConstructCircles()
     70             uthread.new(self.AnimateBGCircles)
     71 
     72     def AnimateBGCircles(self):
     73         duration = 3.0
     74         radius = 300
     75         kOffset = 0.6
     76         while not self.destroyed:
     77             blue.pyos.synchro.SleepWallclock((3 * kOffset + duration) * 1000)
     78             if not self.IsThisWindowActive():
     79                 continue
     80             for i, circle in enumerate(self.bgCircles):
     81                 timeOffset = i * kOffset
     82                 animations.MorphScalar(circle, 'width', 0, radius, duration=duration, timeOffset=timeOffset)
     83                 animations.MorphScalar(circle, 'height', 0, radius, duration=duration, timeOffset=timeOffset)
     84                 animations.FadeTo(circle, 0.0, 0.02, duration=duration, timeOffset=timeOffset, curveType=uiconst.ANIM_WAVE)
     85 
     86     def IsThisWindowActive(self):
     87         if not self.markerContainer:
     88             return False
     89         wnd = GetWindowAbove(self.markerContainer)
     90         return uicore.registry.GetActive() == wnd
     91 
     92     def ConstructCircles(self):
     93         for i in xrange(3):
     94             circle = SpriteThemeColored(name='circle', parent=self.markerContainer, align=uiconst.CENTER, state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/hexMap/circleFilled256.png', colorType=uiconst.COLORTYPE_UIHILIGHTGLOW)
     95             self.bgCircles.append(circle)
     96 
     97     def GetMarkerOpacity(self, bracketCameraDistance, cameraZoomDistance):
     98         return 1.0
     99 
    100     def GetOverlapSortValue(self, reset = False):
    101         return None