WeaponData.SaveData C# (CSharp) Method

SaveData() public method

public SaveData ( ) : void
return void
    public void SaveData()
    {
        if(name.Length == 0) return;
        ArrayList data = new ArrayList();
        ArrayList subs = new ArrayList();
        Hashtable sv = new Hashtable();

        sv.Add(XMLHandler.NODE_NAME, WeaponData.WEAPONS);

        for(int i=0; i<name[0].Count(); i++)
        {
            Hashtable ht = new Hashtable();
            ArrayList s = new ArrayList();

            ht.Add(XMLHandler.NODE_NAME, WeaponData.WEAPON);
            ht.Add("id", i.ToString());
            if(weapon[i].minimumLevel != 0)
            {
                ht.Add("minimumlevel", weapon[i].minimumLevel.ToString());
            }
            if(weapon[i].minimumClassLevel != 0)
            {
                ht.Add("minimumclasslevel", weapon[i].minimumClassLevel.ToString());
            }
            if(weapon[i].dropable) ht.Add("dropable", "true");
            ht.Add("equipparts", weapon[i].equipPart.Length.ToString());
            ht.Add("equiptype", weapon[i].equipType.ToString());
            ht.Add("buyprice", weapon[i].buyPrice.ToString());
            if(weapon[i].sellable)
            {
                ht.Add("sellprice", weapon[i].sellPrice.ToString());
                ht.Add("sellsetter", weapon[i].sellSetter.ToString());
            }
            if("" != weapon[i].prefabName)
            {
                Hashtable pref = new Hashtable();
                pref.Add(XMLHandler.NODE_NAME, WeaponData.PREFAB);
                pref.Add(XMLHandler.CONTENT, weapon[i].prefabName);
                s.Add(pref);
            }

            Hashtable anims = new Hashtable();
            anims.Add(XMLHandler.NODE_NAME, WeaponData.ANIMATIONS);
            anims.Add("ownbase", weapon[i].ownBaseAnimations.ToString());
            if(weapon[i].ownBaseAnimations)
            {
                anims = weapon[i].battleAnimations.GetData(anims);
            }
            s.Add(anims);

            s = this.SaveLanguages(s, i);

            for(int j=0; j<weapon[i].equipPart.Length; j++)
            {
                if(weapon[i].equipPart[j])
                {
                    Hashtable ep = HashtableHelper.GetTitleHashtable(WeaponData.EQUIPPART, j);
                    ep.Add("enabled", weapon[i].equipPart[j].ToString());
                    s.Add(ep);
                }
                if(weapon[i].blockPart[j])
                {
                    Hashtable ep = HashtableHelper.GetTitleHashtable(WeaponData.BLOCKPART, j);
                    ep.Add("blocked", weapon[i].blockPart[j].ToString());
                    s.Add(ep);
                }
            }

            ht.Add("effects", weapon[i].skillEffect.Length.ToString());
            for(int j=0; j<weapon[i].skillEffect.Length; j++)
            {
                if(weapon[i].skillEffect[j] > 0)
                {
                    Hashtable e = HashtableHelper.GetTitleHashtable(WeaponData.EFFECT, j);
                    e.Add("value", weapon[i].skillEffect[j].ToString());
                    s.Add(e);
                }
            }

            if(weapon[i].equipmentSkill.Length > 0)
            {
                ht.Add("skills", weapon[i].equipmentSkill.Length.ToString());
                for(int j=0; j<weapon[i].equipmentSkill.Length; j++)
                {
                    Hashtable ep = new Hashtable();
                    ep.Add(XMLHandler.NODE_NAME, WeaponData.SKILL);
                    ep.Add("id", j.ToString());
                    ep.Add("skill", weapon[i].equipmentSkill[j].skill.ToString());
                    ep.Add("slvl", weapon[i].equipmentSkill[j].skillLevel.ToString());
                    if(weapon[i].equipmentSkill[j].requireLevel)
                    {
                        ep.Add("level", weapon[i].equipmentSkill[j].level.ToString());
                    }
                    if(weapon[i].equipmentSkill[j].requireClassLevel)
                    {
                        ep.Add("classlevel", weapon[i].equipmentSkill[j].classLevel.ToString());
                    }
                    if(weapon[i].equipmentSkill[j].requireClass)
                    {
                        ep.Add("class", weapon[i].equipmentSkill[j].classNumber.ToString());
                    }

                    ArrayList ss = new ArrayList();
                    for(int k=0; k<weapon[i].equipmentSkill[j].requireStatus.Length; k++)
                    {
                        if(weapon[i].equipmentSkill[j].requireStatus[k])
                        {
                            Hashtable skill = new Hashtable();
                            skill.Add(XMLHandler.NODE_NAME, WeaponData.STATUS);
                            skill.Add("id", k.ToString());
                            skill.Add("value", weapon[i].equipmentSkill[j].statusValue[k]);
                            skill.Add("requirement", weapon[i].equipmentSkill[j].statusRequirement[k]);
                            ss.Add(skill);
                        }
                    }
                    if(ss.Count > 0)
                    {
                        ep.Add(XMLHandler.NODES, ss);
                    }
                    s.Add(ep);
                }
            }

            if(weapon[i].ownAttack)
            {
                ht.Add("element", weapon[i].element.ToString());
                ht.Add("attacks", weapon[i].baseAttack.Length.ToString());
                for(int j=0; j<weapon[i].baseAttack.Length; j++)
                {
                    Hashtable ht2 = HashtableHelper.GetTitleHashtable(WeaponData.ATTACK, j);
                    ht2.Add("id2", weapon[i].baseAttack[j].ToString());
                    s.Add(ht2);
                }
            }

            ht.Add("elements", weapon[i].elementValue.Length.ToString());
            for(int j=0; j<weapon[i].elementValue.Length; j++)
            {
                if(weapon[i].elementValue[j] != 0 || SimpleOperator.SET.Equals(weapon[i].elementOperator[j]))
                {
                    Hashtable e = new Hashtable();
                    e.Add(XMLHandler.NODE_NAME, WeaponData.ELEMENT);
                    e.Add("id", j.ToString());
                    e.Add("value", weapon[i].elementValue[j].ToString());
                    e.Add("operator", weapon[i].elementOperator[j].ToString());
                    s.Add(e);
                }
            }

            ht.Add("races", weapon[i].raceValue.Length.ToString());
            for(int j=0; j<weapon[i].raceValue.Length; j++)
            {
                if(weapon[i].raceValue[j] != 0)
                {
                    Hashtable e = HashtableHelper.GetTitleHashtable(WeaponData.RACE, j);
                    e.Add("value", weapon[i].raceValue[j].ToString());
                    s.Add(e);
                }
            }

            ht.Add("sizes", weapon[i].sizeValue.Length.ToString());
            for(int j=0; j<weapon[i].sizeValue.Length; j++)
            {
                if(weapon[i].sizeValue[j] != 0)
                {
                    Hashtable e = HashtableHelper.GetTitleHashtable(WeaponData.SIZE, j);
                    e.Add("value", weapon[i].sizeValue[j].ToString());
                    s.Add(e);
                }
            }

            s.Add(weapon[i].bonus.GetData(HashtableHelper.GetTitleHashtable(WeaponData.BONUSSETTINGS)));

            ht.Add(XMLHandler.NODES, s);
            subs.Add(ht);
        }
        sv.Add(XMLHandler.NODES, subs);
        data.Add(sv);
        XMLHandler.SaveXML(dir, filename, data);
    }