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

score.py (2660B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\ui\window\navigation\score.py
      2 import logging
      3 import threadutils
      4 from achievement_system.client.api.repository import get_repository
      5 from achievement_system.client.api.signal import on_achievement_completed, on_achievement_milestone_reached
      6 from achievement_system.client.ui.window.const import TRANSITION_DURATION
      7 from achievement_system.common.const import LOGGER_NAME
      8 from carbon.common.script.util.format import FmtAmt
      9 from carbonui import Align, TextColor
     10 from carbonui.primitives.containerAutoSize import ContainerAutoSize
     11 from carbonui.text.styles import TextHeader
     12 from carbonui.uianimations import animations
     13 from character.client.identifier import CharacterIdentifier
     14 from localization import GetByLabel
     15 logger = logging.getLogger(LOGGER_NAME)
     16 
     17 class AchievementScore(ContainerAutoSize):
     18     default_height = 24
     19     default_opacity = 0.0
     20 
     21     def __init__(self, *args, **kwargs):
     22         super(AchievementScore, self).__init__(*args, **kwargs)
     23         self.construct_layout()
     24         self.connect_signals()
     25         self.update()
     26 
     27     def Close(self):
     28         try:
     29             self.disconnect_signals()
     30         finally:
     31             super(AchievementScore, self).Close()
     32 
     33     def connect_signals(self):
     34         on_achievement_completed.connect(self.on_achievement_completed)
     35         on_achievement_milestone_reached.connect(self.on_achievement_milestone_reached)
     36 
     37     def disconnect_signals(self):
     38         on_achievement_completed.disconnect(self.on_achievement_completed)
     39         on_achievement_milestone_reached.disconnect(self.on_achievement_milestone_reached)
     40 
     41     def construct_layout(self):
     42         self.text_label = TextHeader(name='text_label', parent=self, align=Align.TOLEFT, color=TextColor.SECONDARY)
     43         self.amount_label = TextHeader(name='amount_label', parent=self, align=Align.TOLEFT, color=TextColor.NORMAL, padLeft=4)
     44 
     45     @threadutils.highlander_threaded
     46     def update(self):
     47         self.text_label.text = GetByLabel('UI/Achievements/Window/AchievementScore')
     48         try:
     49             char_id = CharacterIdentifier(session.charid)
     50             score = get_repository().get_achievement_score(char_id)
     51             self.amount_label.text = FmtAmt(score)
     52             animations.FadeIn(self, duration=TRANSITION_DURATION)
     53         except Exception as e:
     54             logger.exception('Unable to update total achievement score: %s' % e.message)
     55 
     56     def on_achievement_completed(self, achievement_id):
     57         self.update()
     58 
     59     def on_achievement_milestone_reached(self, achievement_id, milestone_id):
     60         self.update()