WeaponData.GetCopy C# (CSharp) Method

GetCopy() public method

public GetCopy ( int index ) : Weapon,
index int
return Weapon,
    public Weapon GetCopy(int index)
    {
        Weapon wpn = new Weapon();

        wpn.minimumLevel = weapon[index].minimumLevel;
        wpn.minimumClassLevel = weapon[index].minimumClassLevel;
        wpn.equipType = weapon[index].equipType;
        wpn.buyPrice = weapon[index].buyPrice;
        wpn.sellable = weapon[index].sellable;
        wpn.sellPrice = weapon[index].sellPrice;
        wpn.sellSetter = weapon[index].sellSetter;
        wpn.ownAttack = weapon[index].ownAttack;
        wpn.dropable = weapon[index].dropable;
        wpn.ownBaseAnimations = weapon[index].ownBaseAnimations;
        wpn.battleAnimations = new BattleAnimationSettings(weapon[index].battleAnimations.GetData(new Hashtable()));

        wpn.equipPart = new bool[weapon[index].equipPart.Length];
        wpn.blockPart = new bool[weapon[index].blockPart.Length];
        for(int i=0; i<weapon[index].equipPart.Length; i++)
        {
            wpn.equipPart[i] = weapon[index].equipPart[i];
            wpn.blockPart[i] = weapon[index].blockPart[i];
        }

        wpn.skillEffect = new SkillEffect[weapon[index].skillEffect.Length];
        for(int i=0; i<weapon[index].skillEffect.Length; i++)
        {
            wpn.skillEffect[i] = weapon[index].skillEffect[i];
        }
        wpn.equipmentSkill = new EquipmentSkill[weapon[index].equipmentSkill.Length];
        for(int i=0; i<weapon[index].equipmentSkill.Length; i++)
        {
            wpn.equipmentSkill[i] = new EquipmentSkill(weapon[index].equipmentSkill[i].requireStatus.Length);
            wpn.equipmentSkill[i].skill = weapon[index].equipmentSkill[i].skill;
            wpn.equipmentSkill[i].skillLevel = weapon[index].equipmentSkill[i].skillLevel;
            wpn.equipmentSkill[i].requireLevel = weapon[index].equipmentSkill[i].requireLevel;
            wpn.equipmentSkill[i].level = weapon[index].equipmentSkill[i].level;
            wpn.equipmentSkill[i].requireClassLevel = weapon[index].equipmentSkill[i].requireClassLevel;
            wpn.equipmentSkill[i].classLevel = weapon[index].equipmentSkill[i].classLevel;
            wpn.equipmentSkill[i].requireClass = weapon[index].equipmentSkill[i].requireClass;
            wpn.equipmentSkill[i].classNumber = weapon[index].equipmentSkill[i].classNumber;

            for(int j=0; j<weapon[index].equipmentSkill[i].requireStatus.Length; j++)
            {
                wpn.equipmentSkill[i].requireStatus[j] = weapon[index].equipmentSkill[i].requireStatus[j];
                wpn.equipmentSkill[i].statusValue[j] = weapon[index].equipmentSkill[i].statusValue[j];
                wpn.equipmentSkill[i].statusRequirement[j] = weapon[index].equipmentSkill[i].statusRequirement[j];
            }
        }

        wpn.element = weapon[index].element;
        wpn.baseAttack = new int[weapon[index].baseAttack.Length];
        for(int i=0; i<weapon[index].baseAttack.Length; i++)
        {
            wpn.baseAttack[i] = weapon[index].baseAttack[i];
        }

        wpn.bonus.SetData(weapon[index].bonus.GetData(new Hashtable()));

        wpn.raceValue = new int[weapon[index].raceValue.Length];
        for(int i=0; i<weapon[index].raceValue.Length; i++)
        {
            wpn.raceValue[i] = weapon[index].raceValue[i];
        }

        wpn.sizeValue = new int[weapon[index].sizeValue.Length];
        for(int i=0; i<weapon[index].sizeValue.Length; i++)
        {
            wpn.sizeValue[i] = weapon[index].sizeValue[i];
        }

        wpn.elementValue = new int[weapon[index].elementValue.Length];
        wpn.elementOperator = new SimpleOperator[weapon[index].elementOperator.Length];
        for(int i=0; i<weapon[index].elementValue.Length; i++)
        {
            wpn.elementValue[i] = weapon[index].elementValue[i];
            wpn.elementOperator[i] = weapon[index].elementOperator[i];
        }

        return wpn;
    }