示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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