コード例 #1
0
def load_tasks():
    tasks = g.tasks = collections.OrderedDict() # Keep order (important)

    task_list = generic_load("tasks.dat")
    for task_dict in task_list:

        # Certain keys are absolutely required for each entry.  Make sure
        # they're there.
        check_required_fields(task_dict, ("id", "type"), "Task")

        task_id = task_dict["id"]
        task_type = task_dict["type"]

        # Only jobs and cpu_pool are possible for now
        if task_type == "jobs":
            task_value = int(task_dict["value"])
            # Make sure prerequisites, if any, are lists.
            task_pre = task_dict.get("pre", [])
            if type(task_pre) != list:
                task_pre = [task_pre]

        elif task_type == "cpu_pool":
            task_value = 0
            task_pre = []
        
        else:
            sys.stderr.write("Only jobs and cpu_pool task are supported\n")
            sys.exit(1)

        tasks[task_id] = task.Task(
            task_id,
            task_type,
            task_value,
            task_pre
        )

    if (all(len(t.prerequisites) > 0 for t in (tasks[k] for k in tasks) if t.type == "jobs")):
        sys.stderr.write("A minimun of one job task without prerequisite is needed for the game\n")
        sys.exit(1)

    for t in g.tasks.values():
        g.tasks_by_type[t.type].append(t)

    task.tasks_reset()

    load_task_defs()
コード例 #2
0
    def initialize(self):
        """ Initialize the game after being prepared either for new or saved game. """

        self.initialized = True

        for b in g.all_bases():
            if b.done:
                b.recalc_cpu()
        self.recalc_cpu()

        task.tasks_reset()

        # Play the appropriate music
        import singularity.code.mixer as mixer
        if g.pl.apotheosis:
            mixer.play_music("win")
        else:
            mixer.play_music("music")