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