Пример #1
0
 def show_royalty_notification(self, royalty_payment_dict):
     notification_text = LocalizationHelperTuning.get_new_line_separated_strings(*(LocalizationHelperTuning.get_bulleted_list(RoyaltyTracker.get_name_for_type(royalty_type), *(RoyaltyTracker.get_line_item_string(r.entry_name, royalty_payment_dict[r]) for r in royalty_list)) for (royalty_type, royalty_list) in self._royalties.items()))
     notification_text = LocalizationHelperTuning.get_new_line_separated_strings(self.ROYALTY_NOTIFICATION_HEADER, notification_text)
     sim_info = self.sim_info
     resolver = SingleSimResolver(sim_info)
     dialog = self.ROYALTY_NOTIFICATION(sim_info, resolver, text=lambda *_: notification_text)
     dialog.show_dialog()
Пример #2
0
 def update_hovertip(cls, owner, crafter=None):
     description = cls.recipe_description(crafter)
     genre = Genre.get_genre_localized_string(owner)
     if genre is not None:
         description = LocalizationHelperTuning.get_new_line_separated_strings(description, genre)
     value_text = cls.value_text
     if value_text:
         localized_value = value_text(owner.current_value)
         description = LocalizationHelperTuning.get_new_line_separated_strings(description, localized_value)
     objects.components.crafting_component._set_recipe_decription(owner, description)
Пример #3
0
 def _payout_rebates(self, *_):
     if not self._rebates:
         return
     active_sim = self._household.client.active_sim
     line_item_text = LocalizationHelperTuning.get_new_line_separated_strings(*(self.REBATE_NOTIFICATION_LINE_ITEM(t.display_name(active_sim), a) for (t, a) in self._rebates.items()))
     notification_text = LocalizationHelperTuning.get_new_line_separated_strings(self.REBATE_NOTIFICATION_HEADER, line_item_text)
     dialog = self.REBATE_NOTIFICATION(active_sim, text=lambda *_, **__: notification_text)
     dialog.show_dialog()
     total_rebate_amount = sum(self._rebates.values())
     self._household.funds.add(total_rebate_amount, reason=Consts_pb2.TELEMETRY_MONEY_ASPIRATION_REWARD, sim=active_sim)
     self.clear_rebates()
Пример #4
0
 def update_hovertip(cls, owner, crafter=None):
     description = cls.recipe_description(crafter)
     genre = Genre.get_genre_localized_string(owner)
     if genre is not None:
         description = LocalizationHelperTuning.get_new_line_separated_strings(
             description, genre)
     value_text = cls.value_text
     if value_text:
         localized_value = value_text(owner.current_value)
         description = LocalizationHelperTuning.get_new_line_separated_strings(
             description, localized_value)
     objects.components.crafting_component._set_recipe_decription(
         owner, description)
Пример #5
0
 def get_interaction_tooltip(self, tooltip=None, sim=None):
     if self.ingredients:
         item_tooltip = LocalizationHelperTuning.get_bulleted_list(self.AVAILABLE_TOOLTIP_HEADER(sim), *tuple(LocalizationHelperTuning.get_object_count(ingredient.quantity, ingredient.ingredient) for ingredient in self.ingredients))
         if tooltip is None:
             return item_tooltip
         return LocalizationHelperTuning.get_new_line_separated_strings(tooltip, item_tooltip)
     return tooltip
 def show_royalty_notification(self, royalty_payment_dict):
     notification_text = LocalizationHelperTuning.get_new_line_separated_strings(
         *(LocalizationHelperTuning.get_bulleted_list(
             RoyaltyTracker.get_name_for_type(royalty_type),
             *(RoyaltyTracker.get_line_item_string(r.entry_name,
                                                   royalty_payment_dict[r])
               for r in royalty_list))
           for (royalty_type, royalty_list) in self._royalties.items()))
     notification_text = LocalizationHelperTuning.get_new_line_separated_strings(
         self.ROYALTY_NOTIFICATION_HEADER, notification_text)
     sim_info = self.sim_info
     resolver = SingleSimResolver(sim_info)
     dialog = self.ROYALTY_NOTIFICATION(sim_info,
                                        resolver,
                                        text=lambda *_: notification_text)
     dialog.show_dialog()
 def _payout_rebates(self, *_):
     if not self._rebates:
         return
     active_sim = self._household.client.active_sim
     line_item_text = LocalizationHelperTuning.get_new_line_separated_strings(
         *(self.REBATE_NOTIFICATION_LINE_ITEM(t.display_name(active_sim), a)
           for (t, a) in self._rebates.items()))
     notification_text = LocalizationHelperTuning.get_new_line_separated_strings(
         self.REBATE_NOTIFICATION_HEADER, line_item_text)
     dialog = self.REBATE_NOTIFICATION(
         active_sim, text=lambda *_, **__: notification_text)
     dialog.show_dialog()
     total_rebate_amount = sum(self._rebates.values())
     self._household.funds.add(
         total_rebate_amount,
         reason=Consts_pb2.TELEMETRY_MONEY_ASPIRATION_REWARD,
         sim=active_sim)
     self.clear_rebates()
Пример #8
0
 def get_prep_task_display_name(self, sim_info):
     loc_strings = []
     lower_threshold = None
     stat = sim_info.get_statistic(self.statistic)
     if stat is not None:
         (lower_threshold, _) = self.get_prep_task_progress_thresholds(sim_info)
     if lower_threshold:
         description = self.task_description(lower_threshold.text)
     else:
         description = self.task_description()
     loc_strings.append(description)
     if loc_strings:
         return LocalizationHelperTuning.get_new_line_separated_strings(*loc_strings)
 def _get_performance_tooltip(self):
     loc_strings = []
     metrics = self.current_level_tuning.performance_metrics
     if metrics.performance_tooltip is not None:
         loc_strings.append(metrics.performance_tooltip)
     for metric in metrics.statistic_metrics:
         text = metric.tooltip_text
         while text is not None:
             if text.general_description:
                 lower_threshold = None
                 stat = self._sim_info.get_statistic(metric.statistic)
                 if stat is not None:
                     (lower_threshold, _) = self._get_statistic_progress_thresholds(stat.stat_type, stat.get_value())
                 if lower_threshold:
                     description = text.general_description(lower_threshold.text)
                 else:
                     description = text.general_description()
                 loc_strings.append(description)
     if loc_strings:
         return LocalizationHelperTuning.get_new_line_separated_strings(*loc_strings)
 def _ui_metadata_gen(self):
     if not self.show_gardening_tooltip():
         self.owner.hover_tip = ui_protocols.UiObjectMetadata.HOVER_TIP_DISABLED
         return
     if self.show_gardening_details():
         state_value = self.owner.get_state(GardeningTuning.EVOLUTION_STATE)
         evolution_value = state_value.range.upper_bound
         yield ('evolution_progress', evolution_value)
         if GardeningTuning.SEASONALITY_STATE is not None:
             sesonality_state_value = self.owner.get_state(
                 GardeningTuning.SEASONALITY_STATE)
             if sesonality_state_value is not None:
                 season_text = sesonality_state_value.display_name
                 seasonality_text = GardeningTuning.get_seasonality_text_from_plant(
                     self.owner.definition)
                 season_text = LocalizationHelperTuning.get_new_line_separated_strings(
                     season_text, seasonality_text)
                 yield (TooltipFields.season_text.name, season_text)
         quality_state_value = self.owner.get_state(
             GardeningTuning.QUALITY_STATE_VALUE)
         if quality_state_value is not None:
             quality_value = quality_state_value.value
             yield ('quality', quality_value)
     yield from super()._ui_metadata_gen()
Пример #11
0
 def get_current_trends_loc_string(self):
     self._update_trends()
     trend_list = LocalizationHelperTuning.get_bulleted_list(
         None, *(trend.trend_name for trend in self._current_trends))
     return LocalizationHelperTuning.get_new_line_separated_strings(
         trend_list, self._get_description_string())
Пример #12
0
 def show_dialog(cls, retail_manager, is_from_close=False):
     business_tuning = retail_manager.tuning_data
     report_msg = protocolbuffers.Dialog_pb2.RetailSummaryDialog()
     report_msg.name = LocalizationHelperTuning.get_raw_text(
         retail_manager.get_lot_name())
     report_msg.subtitle = business_tuning.summary_dialog_subtitle
     report_msg.icon = create_icon_info_msg(
         IconInfoData(business_tuning.summary_dialog_icon))
     timespan_since_open = retail_manager.get_timespan_since_open(
         is_from_close)
     report_msg.hours_open = round(timespan_since_open.in_hours(
     )) if timespan_since_open is not None else 0
     report_msg.total_amount = retail_manager.get_daily_net_profit()
     if retail_manager.is_open:
         report_msg.total_amount -= retail_manager.get_total_employee_wages(
         )
     items_sold_line_item = report_msg.line_items.add()
     items_sold_line_item.name = business_tuning.summary_dialog_transactions_header
     items_sold_line_item.item_type = business_tuning.summary_dialog_transactions_text(
         retail_manager.daily_items_sold)
     items_sold_line_item.value = retail_manager.daily_revenue
     for sim_info in sorted(retail_manager.get_employees_on_payroll(),
                            key=operator.attrgetter('last_name')):
         current_career_level = retail_manager.get_employee_career_level(
             sim_info)
         with ProtocolBufferRollback(
                 report_msg.line_items) as line_item_msg:
             payroll_entries = []
             for (career_level, hours_worked) in sorted(
                     retail_manager.get_employee_wages_breakdown_gen(
                         sim_info),
                     key=lambda wage: -wage[0].simoleons_per_hour):
                 if not hours_worked and career_level is not current_career_level:
                     continue
                 payroll_entries.append(
                     business_tuning.summary_dialog_payroll_text(
                         career_level.get_title(sim_info),
                         career_level.simoleons_per_hour, hours_worked))
             if not payroll_entries:
                 raise ProtocolBufferRollbackExpected
             line_item_msg.name = business_tuning.summary_dialog_payroll_header(
                 sim_info)
             line_item_msg.item_type = LocalizationHelperTuning.get_new_line_separated_strings(
                 *payroll_entries)
             line_item_msg.value = -retail_manager.get_employee_wages(
                 sim_info)
     wages_owed_line_item = report_msg.line_items.add()
     wages_owed_line_item.name = business_tuning.summary_dialog_wages_owed_header
     wages_owed_line_item.item_type = business_tuning.summary_dialog_wages_owed_text(
         retail_manager.get_total_employee_wages())
     wages_owed_line_item.value = -retail_manager.get_total_employee_wages()
     for (entry_name,
          entry_value) in retail_manager.get_funds_category_entries_gen():
         with ProtocolBufferRollback(
                 report_msg.line_items) as line_item_msg:
             line_item_msg.name = LocalizationHelperTuning.get_raw_text('')
             line_item_msg.item_type = entry_name
             line_item_msg.value = -entry_value
     report_op = GenericProtocolBufferOp(
         DistributorOps_pb2.Operation.RETAIL_SUMMARY_DIALOG, report_msg)
     Distributor.instance().add_op_with_no_owner(report_op)