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)