コード例 #1
0
ファイル: location.py プロジェクト: xjzpguob/singularity
    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 = ''
コード例 #2
0
 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)
コード例 #3
0
ファイル: knowledge.py プロジェクト: xjzpguob/singularity
    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
コード例 #4
0
    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)
コード例 #5
0
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"
コード例 #6
0
    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()