def main(name="Bullet",param_path="",layout_path="",save_dir=""): full_param_path = param_path + name +".param" paramb = pr.parse_param(full_param_path) param_data = pr.pack_param(paramb, full_param_path) log("Saving param") saved_file = dt.save_file(param_data,save_dir + name + ".param") log("Done saving") return paramb
def shuffle_param_ids(name="Bullet"): full_param_path = param_path + name +".param" paramb = pr.parse_param(full_param_path) paramb = dop.shuffle_ids(paramb) param_data = pr.pack_param(paramb, full_param_path) log("Saving param") saved_file = dt.save_file(param_data,save_dir + name + ".param") log("Done saving") return paramb
def alter_params(name="Bullet"): full_param_path = param_path + name +".param" paramb = pr.parse_param(full_param_path) paramb = dop.replaceZero(paramb,1) param_data = pr.pack_param(paramb, full_param_path) log("Saving param") saved_file = dt.save_file(param_data,save_dir + name + ".param") log("Done saving") return paramb
def mod_speffect_param(chance,name="SpEffectParam"): full_param_path = param_path + name +".param" paramb = pr.parse_param(full_param_path) paramb = dop.shuffle_ids(paramb) paramb = dop.add_random_self_refs(paramb,78,chance) #replacespeffectId #paramb = dop.restore_fields(paramb,get_param(name),0) #paramb = dop.limit_fields(paramb,{4:[0.1,5,1]}) param_data = pr.pack_param(paramb, full_param_path) log("Saving param") saved_file = dt.save_file(param_data,save_dir + name + ".param") log("Done saving") return paramb
def mod_param(): log("\n\n---------- [Unpacking Param] -----------\n", Logging_Level.INFO) param = pr.parse_param(param_file_path,layout_path) if(replace_zeros!=0): log("[Replace Zeros] ->", Logging_Level.INFO) param = dop.replace_zero(param,replace_zeros) if(shuffle_param_ids): log("[Shuffle Ids] ->", Logging_Level.INFO) field_list_keep = [] for field in fields_to_keep: field_index = pr.get_field_index(field,param.layout) field_list_keep.append(field_index) if(shuffle_safe): if(param.name=="BULLET_PARAM_ST"): param_pc_atk = pr.parse_param(param_path + "AtkParam_Pc.param",layout_path) param_npc_atk = pr.parse_param(param_path + "AtkParam_Npc.param",layout_path) pc_ids = param_pc_atk.data.keys() npc_ids = param_npc_atk.data.keys() if(len(self_ref_fields)>0): log("[Add self references SAFE] ->") param = dop.shuffle_bullet_ids_safe(param,field_list_keep,ids_to_keep,pc_ids,npc_ids,secondary_only,chance) else: param = dop.shuffle_bullet_ids_safe(param,field_list_keep,ids_to_keep,pc_ids,npc_ids,secondary_only) else: log(f"Safe shuffle not implemented for {param.name}") return else: param = dop.shuffle_ids(param,field_list_keep,ids_to_keep,secondary_only) if(len(self_ref_fields)>0 and not shuffle_safe): log("[Add self references] ->") field_list_ref = [] for field in self_ref_fields: index = pr.get_field_index(field,param.layout) field_list_ref.append(index) param = dop.add_random_self_refs(param,field_list_ref,chance) if(len(rand_bullet_mult_fields)>0): log("[Multiply random fields] ->") field_list_mult_ref = [] for field in rand_bullet_mult_fields: index = pr.get_field_index(field,param.layout) field_list_mult_ref.append(index) param = dop.multiply_random(param,field_list_mult_ref,chance,mult_max,adjust_bullet_angle) if(make_bullets_visible>0 and param.name=="BULLET_PARAM_ST"): log("[Add SFX to invisible bullets] ->") param = dop.replace_zero_in_field(param,make_bullets_visible,1) if(len(restore)>0): log("[Restore fields] ->") field_list_res = [] for field in restore: index = pr.get_field_index(field,param.layout) field_list_res.append(index) default_param = pr.parse_param(param_file_path,layout_path) param = dop.restore_fields(param,default_param,field_list_res) #TODO its probably better to deepcopy the original param if(len(copy_param)>0): log("[Copy fields] ->") field_list_ignore = [] for field in copy_ignore: index = pr.get_field_index(field,param.layout) field_list_ignore.append(index) log("ignore: ", field) second_param = pr.parse_param(copy_param[0],copy_param[1]) param = dop.copy_param_data(param,second_param,field_list_ignore) #paramb = dop.restore_fields(paramb,get_param(name),0) if(len(limit)>0): log("[Limiting values] ->") param = dop.limit_fields(param,limit_dict) log("\n\n---------- [Repacking Param] -----------\n") param_data = pr.pack_param(param, param_file_path) log("[Saving param]") saved_file = dt.save_file(param_data,save_dir + param_name + ".param") if(saved_file!=None): log("[Done saving]") else: log("Couldn't save packed param to file", Logging_Level.ERROR) return param
def get_param(name="Bullet"): full_param_path = param_path + name +".param" paramb = pr.parse_param(full_param_path) return paramb