public static SkillData FromConfig(DisassemblygirlSkillConfig config)
        {
            SkillData skill = new SkillData();

            skill.id          = config.id;
            skill.name        = config.name;
            skill.iconID      = config.iconID;
            skill.WOE         = config.WOE;
            skill.CD          = config.CD;
            skill.type        = config.type;
            skill.vibrateType = (SkillVibrateType)config.vibrateType;
            skill.resourceID  = config.resourceID;
            skill.hitEffectID = config.hitEffectID;
            skill.physicsType = (PhysicsType)config.physicsType;

            skill.attributeBox = AttributeBox.CreateDefault();
            skill.attributeBox.SetAttribute(AttributeKeys.ATK, AttributeSetTypes.BaseValue, config.ATK);
            skill.attributeBox.SetAttribute(AttributeKeys.CRT, AttributeSetTypes.BaseValue, config.CRT);
            skill.attributeBox.SetAttribute(AttributeKeys.SPD, AttributeSetTypes.BaseValue, config.SPD);

            skill.effectors = new List <EffectorData>();

            foreach (string effectorID in config.effectors.Split('|'))
            {
                EffectorData effector = EffectorData.FromConfig(int.Parse(effectorID));

                if (effector != null)
                {
                    skill.effectors.Add(effector);
                }
            }
            return(skill);
        }
    public object ConfigProcess(string[] row)

    {
        if (row.Length < 14)

        {
            return(null);
        }



        RowHelper rh = new RowHelper(row);

        DisassemblygirlSkillConfig rec = new DisassemblygirlSkillConfig();



        rec.id = CSVUtility.ToInt(rh.Read());          //id

        rec.name = rh.Read();                          //名字

        rec.iconID = rh.Read();                        //技能图标

        rec.ATK = CSVUtility.ToFloat(rh.Read());       //拆解力

        rec.CRT = CSVUtility.ToFloat(rh.Read());       //爆破力

        rec.SPD = CSVUtility.ToFloat(rh.Read());       //速度

        rec.WOE = CSVUtility.ToFloat(rh.Read());       //半径

        rec.CD = CSVUtility.ToFloat(rh.Read());        //冷却

        rec.type = CSVUtility.ToInt(rh.Read());        //技能类型

        rec.vibrateType = CSVUtility.ToInt(rh.Read()); //震动类型 0:无 | 1:命中 | 2:释放

        rec.resourceID = rh.Read();                    //技能动画ID

        rec.hitEffectID = rh.Read();                   //击中动画ID

        rec.physicsType = CSVUtility.ToInt(rh.Read()); //物理类型0:无 | 1:穿透 | 2: 单次弹射 3:多重弹射

        rec.effectors = rh.Read();                     //效果器

        return(rec);
    }
    public void Load()

    {
        CSVReader reader = new CSVReader();

        reader.LoadText("Config/Disassemblygirl_Skill.txt", 3);

        int rows = reader.GetRowCount();

        for (int r = 0; r < rows; ++r)

        {
            string[] row = reader.GetRow(r);

            DisassemblygirlSkillConfig ac = ConfigProcess(row) as DisassemblygirlSkillConfig;

            configs.Add(ac.id, ac);
        }
    }