def update_item(self, canvas, name, base): if base is None: elements = [ canvas.name_display, canvas.base_type, canvas.base_cpu, canvas.status_display, canvas.power_display ] for element in elements: element.text = "" else: canvas.name_display.text = name canvas.base_type.text = base.spec.name canvas.base_cpu.text = "" show_cpu = False if not base.done: canvas.status_display.text = \ "%s: % 2s%%. %s" % ( _("Building Base"), int(base.percent_complete() * 100), _("Completion in %s.") % g.to_time(base.cost_left[2]),) elif base.spec.force_cpu: show_cpu = True canvas.status_display.text = "" elif base.is_empty(): canvas.status_display.text = _("Empty") elif base.cpus is None: canvas.status_display.text = _("Incomplete") elif not base.cpus.done: canvas.status_display.text = \ "%s: % 2s%%. %s" % ( _("Building CPU"), int(base.cpus.percent_complete() * 100), _("Completion in %s.") % g.to_time(base.cpus.cost_left[2]),) elif base.is_building_extra(): show_cpu = True canvas.status_display.text = _("Building Item") else: show_cpu = True canvas.status_display.text = _("Complete") if show_cpu: canvas.base_cpu.text = _("%s CPU") % g.to_money(base.cpu) canvas.power_display.text = base.power_state_name canvas.power_display.color = state_colors[base.power_state] else: canvas.base_cpu.text = '' canvas.power_display.text = ''
def describe_cost(self, cost, hide_time=False): cpu_label = _("%s CPU") % g.to_cpu(cost[cpu]) cash_label = _("%s money") % g.to_money(cost[cash]) labor_label = ", %s" % g.to_time(cost[labor]).replace(" ", u"\xA0") if hide_time: labor_label = "" return u"%s, %s%s" % (cpu_label.replace( " ", u"\xA0"), cash_label.replace(" ", u"\xA0"), labor_label)
def _desc_cost(cost): desc_text = _("%s Money") % g.to_money(cost[0]) if cost[1] > 0: desc_text += ", " desc_text += _("%s CPU") % g.to_cpu(cost[1]) if cost[2] > 0: desc_text += ", " desc_text += g.to_time(cost[2]) return desc_text
def on_change(self, description_pane, event_spec): self.selected_event_spec = event_spec self.trigger_event_button.enabled = True self.expire_event_button.enabled = False event_instance = g.pl.events.get(event_spec.id) triggered_state = _('NO') trigger_duration = g.to_time(event_spec.duration * g.minutes_per_day) \ if event_spec.duration else _('Event never expires') triggered_at_raw = _('N/A; event not triggered') uniqueness = _('YES') if event_spec.unique else _('NO') if event_instance: if event_instance.triggered: self.trigger_event_button.enabled = False self.expire_event_button.enabled = event_instance.decayable_event triggered_state = _('YES') triggered_at_raw = event_instance.triggered_at text_format = _("{DESCRIPTION}\n\n" + "-----------------\n" + "Triggered: {TRIGGER_STATE}\n" + "Trigger chance: {TRIGGER_CHANCE}\n" + "Trigger Duration (full): {TRIGGER_DURATION}\n" + "Triggered at (rawtime): {TRIGGER_TIME_RAW}\n" + "Unique: {UNIQUE}\n" ) desc = text_format.format( DESCRIPTION=event_spec.description, TRIGGER_STATE=triggered_state, TRIGGER_CHANCE=g.to_percent(event_spec.chance), TRIGGER_DURATION=trigger_duration, TRIGGER_TIME_RAW=triggered_at_raw, UNIQUE=uniqueness, ) self.description = text.Text(description_pane, (0, 0), (-1, -1), text=desc, background_color="pane_background", align=constants.LEFT, valign=constants.TOP, borders=constants.ALL)
def test_plural(gd_locale): assert g.to_time(2) == "2 mhionaid" assert g.to_time(3) == "3 mionaidean" assert g.to_time(20) == "20 mionaid"
def rebuild(self): self.name_display.text = "%s (%s)" % (self.base.name, self.base.spec.name) self.state_display.color = state_colors[self.base.power_state] self.state_display.text = self.base.power_state_name available_item_types = { i.item_type for i in g.items.values() if i.available() and i.buildable_in(self.base.location) } mutable = not self.base.spec.force_cpu for item_type in item.all_types(): pane = getattr(self, item_type.id + "_pane") item_mutable = mutable and item_type in available_item_types pane.change_button.visible = item_mutable current = self.get_current(item_type) if current is None: current_build = "" if mutable and not item_mutable: current_name = _("N/A") else: current_name = _("None") else: current_name = g.items[current.id].name if current.done: current_build = "" else: current_build = _("Completion in %s.") % \ g.to_time(current.cost_left[2]) pane.name_panel.text = "%s: %s" % (item_type.label, current_name) pane.build_panel.text = current_build pane.needs_rebuild = True count = "" if self.base.spec.size > 1: current = getattr(self.base.cpus, "count", 0) size = self.base.spec.size if size == current: count = _("x%d (max)") % current elif current == 0: count = _("(room for %d)") % size else: #Translators: current and maximum number of CPUs in a base count = _("x{CURRENT:d} (max {SIZE:d})").format( CURRENT=current, SIZE=size) self.cpu_pane.name_panel.text += " " + count info_text = "" # Base Total CPU. info_text += _("CPU per day: %d") % self.base.cpu + "\n" # Maintenace cost. info_text += _("Maintenance:") + "\n" info_text += self.base.spec.describe_maintenance(self.base.maintenance) info_text += "\n" # Detection chance display. info_text += self.base.get_detect_info() self.info_frame.text = info_text # Rebuild dialogs # FIXME: needs_rebuild bug with multiple_build_dialog, should not. #self.multiple_build_dialog.needs_rebuild = True self.build_dialog.needs_rebuild = True super(BaseScreen, self).rebuild()