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

rewardsTooltip.py (3380B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\careerPortal\rewards\rewardsTooltip.py
      2 import eveicon
      3 import logging
      4 from carbonui import uiconst, ButtonStyle, Align
      5 from carbonui.text.styles import TextBody
      6 from carbonui.control.button import Button
      7 from careergoals.client.const import RewardLabel
      8 from eve.client.script.ui.control import tooltipConst
      9 from eve.client.script.ui.control.tooltips import TooltipPanel
     10 from eve.client.script.ui.shared.careerPortal.util import get_text_for_reward
     11 from eve.client.script.ui.shared.cloneGrade import open_omega_upgrade_window
     12 from eve.client.script.ui.tooltips.tooltipsWrappers import TooltipBaseWrapper
     13 from eve.client.script.ui.shared.careerPortal.panels.detailsEntry import OmegaRewardDetailsEntry, AlphaRewardDetailsEntry
     14 from localization import GetByLabel
     15 from vgsConst import CATEGORYTAG_GAMETIME
     16 from omega.client.clone_grade_svc import get_clone_grade_svc
     17 logger = logging.getLogger(__name__)
     18 
     19 class RewardBundleTooltip(TooltipBaseWrapper):
     20 
     21     def __init__(self, goal, *args, **kwargs):
     22         super(RewardBundleTooltip, self).__init__(*args, **kwargs)
     23         self.goal = goal
     24 
     25     def CreateTooltip(self, parent, owner, idx):
     26         self.tooltipPanel = TooltipPanel(parent=parent, owner=owner, idx=idx)
     27         self.tooltipPanel.LoadGeneric1ColumnTemplate()
     28         self.tooltipPanel.SetState(uiconst.UI_NORMAL)
     29         self.tooltipPanel.margin = tooltipConst.TOOLTIP_MARGIN
     30         self.tooltipPanel.cellSpacing = (8, 1)
     31         self._add_reward_entries()
     32         if self._has_omega_rewards() and not get_clone_grade_svc().is_omega_with_grace_period():
     33             self.tooltipPanel.AddSpacer(height=10, colSpan=self.tooltipPanel.columns)
     34             self.tooltipPanel.AddCell(Button(label=GetByLabel('UI/CareerPortal/UpgradeToClaim'), texturePath=eveicon.omega, align=Align.CENTER, style=ButtonStyle.MONETIZATION, func=self.on_upgrade_button_click), colSpan=self.tooltipPanel.columns)
     35         return self.tooltipPanel
     36 
     37     def _add_reward_entries(self):
     38         for reward in self.goal.definition.alpha_rewards:
     39             self.create_reward_entry(reward)
     40 
     41     def _has_omega_rewards(self):
     42         return len(self.goal.definition.omega_rewards) > 0
     43 
     44     def create_reward_entry(self, reward):
     45         text = get_text_for_reward(reward)
     46         text_width, _ = TextBody.MeasureTextSize(text)
     47         entry = self.get_reward_entry_class(reward)(text=text, reward=reward, top=0)
     48         entry.tooltipPanelClassInfo = None
     49         self.tooltipPanel.FillRow()
     50         self.tooltipPanel.AddCell(cellObject=entry, minWidth=text_width + 100)
     51 
     52     def get_reward_entry_class(self, reward):
     53         if reward.reward_label == RewardLabel.OMEGA:
     54             return OmegaRewardDetailsEntry
     55         return AlphaRewardDetailsEntry
     56 
     57     def on_upgrade_button_click(self, *args):
     58         open_omega_upgrade_window()
     59 
     60 
     61 class GlobalProgressAlphaRewardTooltip(RewardBundleTooltip):
     62 
     63     def _add_reward_entries(self):
     64         for reward in self.goal.definition.alpha_rewards:
     65             self.create_reward_entry(reward)
     66 
     67     def _has_omega_rewards(self):
     68         return False
     69 
     70 
     71 class GlobalProgressOmegaRewardTooltip(RewardBundleTooltip):
     72 
     73     def _add_reward_entries(self):
     74         for reward in self.goal.definition.omega_rewards:
     75             self.create_reward_entry(reward)