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

benefit_card.py (2700B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\omega\upsell\components\benefit_card.py
      2 from carbonui import Align, PickState, uiconst
      3 from carbonui.text.styles import TextHeader
      4 from carbonui.primitives.container import Container
      5 from carbonui.primitives.fill import Fill
      6 from carbonui.primitives.sprite import Sprite
      7 from eve.client.script.ui import eveColor
      8 from eve.client.script.ui.omega.upsell import omegaUpsellSignals
      9 from eve.client.script.ui.omega.upsell.omegaUpsellConst import OmegaUpsellPage
     10 from eve.client.script.ui.omega.upsell.components.omega_frame import OmegaBenefitFrame, OmegaFrameState
     11 from localization import GetByMessageID
     12 
     13 class BenefitCard(Container):
     14     default_state = uiconst.UI_NORMAL
     15     default_width = 256
     16     default_height = 112
     17 
     18     def __init__(self, omega_benefit, *args, **kwargs):
     19         super(BenefitCard, self).__init__(*args, **kwargs)
     20         self.omega_benefit = omega_benefit
     21         self.construct_layout()
     22 
     23     def construct_layout(self):
     24         self.construct_containers()
     25         self.construct_frame()
     26         self.construct_footer()
     27         self.construct_label()
     28         self.construct_icon()
     29         self.update()
     30 
     31     def construct_containers(self):
     32         self.content_container = Container(name='content_container', parent=self, padding=(1, 1, 1, 1))
     33         self.frame_container = Container(name='frame_container', parent=self)
     34 
     35     def construct_frame(self):
     36         self.frame = OmegaBenefitFrame(name='frame', parent=self.frame_container)
     37 
     38     def construct_label(self):
     39         self.label = TextHeader(name='label', parent=self.content_container, align=Align.VERTICALLY_CENTERED, color=eveColor.OMEGA_ACCENT, padding=(24, 0, 100, 0))
     40 
     41     def construct_icon(self):
     42         icon_container = Container(name='icon_container', parent=self.content_container, align=Align.TORIGHT, width=96, padLeft=8)
     43         self.icon = Sprite(name='icon', parent=icon_container, align=Align.CENTERLEFT, pickState=PickState.OFF, pos=(0, 0, 64, 64))
     44 
     45     def construct_footer(self):
     46         Fill(parent=self.content_container, align=Align.TOBOTTOM_NOPUSH, color=eveColor.OMEGA_ACCENT, opacity=0.1, height=10)
     47 
     48     def update(self):
     49         self.label.text = GetByMessageID(self.omega_benefit.button_message_id)
     50         self.icon.texturePath = self.omega_benefit.icon_path
     51 
     52     def OnMouseEnter(self, *args):
     53         self.frame.set_state(OmegaFrameState.HOVER)
     54 
     55     def OnMouseExit(self, *args):
     56         self.frame.set_state(OmegaFrameState.IDLE)
     57 
     58     def OnClick(self, *args):
     59         omegaUpsellSignals.load_page(OmegaUpsellPage.BENEFIT_DETAILS, omega_benefit_type=self.omega_benefit.omega_benefit_type)