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

damageRing.py (2577B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\control\damageRing.py
      2 import trinity
      3 from carbonui.primitives import container
      4 from carbonui.primitives import transform
      5 from carbonui.primitives import sprite
      6 from carbonui import const as uiconst
      7 from carbonui.uicore import uicore
      8 from carbonui.uicore import uicore
      9 
     10 class DamageRing(container.Container):
     11     default_width = 70
     12     default_height = 70
     13     default_align = uiconst.CENTER
     14     default_state = uiconst.UI_DISABLED
     15 
     16     def ApplyAttributes(self, attributes):
     17         container.Container.ApplyAttributes(self, attributes)
     18         self.content = transform.Transform(parent=self, name='content', align=uiconst.CENTER, pos=(0, 0, 70, 70), state=uiconst.UI_NORMAL)
     19         sprite.Sprite(name='icon', parent=self.content, pos=(0, 0, 70, 70), texturePath='res:/UI/Texture/classes/DamageRing/background.png', state=uiconst.UI_DISABLED, align=uiconst.CENTER)
     20         self.shield = DamageSegment(name='shield', parent=self.content, texturePath='res:/UI/Texture/classes/DamageRing/shield.png', offset=-0.98)
     21         self.armor = DamageSegment(name='armor', parent=self.content, texturePath='res:/UI/Texture/classes/DamageRing/armor.png', offset=-5.17)
     22         self.hull = DamageSegment(name='hull', parent=self.content, texturePath='res:/UI/Texture/classes/DamageRing/hull.png', offset=-3.1)
     23 
     24     def SetDamage(self, damage):
     25         self.shield.value, self.armor.value, self.hull.value = damage
     26 
     27 
     28 class DamageSegment(sprite.Sprite):
     29     default_align = uiconst.CENTER
     30     default_state = uiconst.UI_DISABLED
     31     default_width = 70
     32     default_height = 70
     33     default_pos = (0, 0, 70, 70)
     34     default_blendMode = 1
     35     default_spriteEffect = trinity.TR2_SFX_MODULATE
     36     default_textureSecondaryPath = 'res:/UI/Texture/classes/DamageRing/color.png'
     37 
     38     def ApplyAttributes(self, attributes):
     39         sprite.Sprite.ApplyAttributes(self, attributes)
     40         self.offset = attributes.get('offset', 0)
     41         self.range = attributes.get('range', 1.98)
     42         self.textureSecondary.useTransform = True
     43         self.textureSecondary.rotation = self.rotation
     44 
     45     def GetValue(self):
     46         return 1.0 - (self.offset - self.textureSecondary.rotation) / self.range
     47 
     48     def SetValue(self, value):
     49         value = min(max(value, 0.0), 1.0)
     50         start = self.textureSecondary.rotation
     51         end = self.offset + (1 - value) * self.range
     52         uicore.animations.MorphScalar(self.textureSecondary, 'rotation', start, end, duration=0.5)
     53 
     54     value = property(GetValue, SetValue)