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 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)
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()
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)
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()
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()
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())
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)