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)