public void CopyHomeCharaInfo(CharaInfo info, StageObjectManager.CreatePlayerInfo.ExtentionInfo extentionInfo)
        {
            info.level = (int)lv;
            info.hp    = hp;
            info.atk   = atk;
            info.def   = def;
            int i = 0;

            for (int num = equipItems.Length; i < num; i++)
            {
                CharaInfo.EquipItem equipItem = equipItems[i];
                if (equipItem.eId > 0)
                {
                    info.equipSet.Add(equipItem);
                    if (extentionInfo != null && i >= 0 && i < 3)
                    {
                        int item = info.equipSet.Count - 1;
                        extentionInfo.weaponIndexList.Add(item);
                    }
                }
            }
            if (extentionInfo != null)
            {
                int index = Utility.Random(extentionInfo.weaponIndexList.Count);
                int value = extentionInfo.weaponIndexList[0];
                extentionInfo.weaponIndexList[0]     = extentionInfo.weaponIndexList[index];
                extentionInfo.weaponIndexList[index] = value;
            }
        }
    public EquipItemInfo(CharaInfo.EquipItem home_chara_equip_data)
    {
        EquipItem equipItem = new EquipItem
        {
            uniqId      = "0",
            equipItemId = home_chara_equip_data.eId,
            level       = (XorInt)home_chara_equip_data.lv,
            exceed      = home_chara_equip_data.exceed,
            price       = 0,
            is_locked   = 0,
            ability     = new List <EquipItem.Ability>()
        };
        int i = 0;

        for (int count = home_chara_equip_data.aIds.Count; i < count; i++)
        {
            EquipItem.Ability item = new EquipItem.Ability
            {
                id = home_chara_equip_data.aIds[i],
                pt = home_chara_equip_data.aPts[i]
            };
            equipItem.ability.Add(item);
        }
        equipItem.abilityItem = home_chara_equip_data.ai;
        SetValue(equipItem);
    }
    public void SetEquipItem(CharaInfo.EquipItem item, int index)
    {
        if (object.ReferenceEquals(item, null))
        {
            if (index != -1)
            {
                equipValues[index] = null;
                dirtyFlag          = eDirtyState.Dirty;
            }
        }
        else
        {
            EquipItemTable.EquipItemData equipItemData = Singleton <EquipItemTable> .I.GetEquipItemData((uint)item.eId);

            if (!object.ReferenceEquals(equipItemData, null))
            {
                if (index == -1)
                {
                    switch (equipItemData.type)
                    {
                    default:
                        return;

                    case EQUIPMENT_TYPE.ONE_HAND_SWORD:
                    case EQUIPMENT_TYPE.TWO_HAND_SWORD:
                    case EQUIPMENT_TYPE.SPEAR:
                    case EQUIPMENT_TYPE.PAIR_SWORDS:
                    case EQUIPMENT_TYPE.ARROW:
                        index = 0 + setWeaponIndex;
                        setWeaponIndex++;
                        break;

                    case EQUIPMENT_TYPE.ARMOR:
                        index = 3;
                        break;

                    case EQUIPMENT_TYPE.HELM:
                        index = 4;
                        break;

                    case EQUIPMENT_TYPE.ARM:
                        index = 5;
                        break;

                    case EQUIPMENT_TYPE.LEG:
                        index = 6;
                        break;
                    }
                }
                EquipValue equipValue = new EquipValue();
                equipValue.Parse(item, equipItemData);
                equipValues[index] = equipValue;
                dirtyFlag          = eDirtyState.Dirty;
            }
        }
    }
    public List <CharaInfo.EquipItem> ConvertSelfEquipSetItemList(int setNo = -1, bool isAddNull = false)
    {
        List <CharaInfo.EquipItem> list = new List <CharaInfo.EquipItem>();
        int i = 0;

        for (int num = item.Length; i < num; i++)
        {
            CharaInfo.EquipItem objA = ConvertSelfEquipSetItem(i, setNo);
            if (!object.ReferenceEquals(objA, null) || isAddNull)
            {
                list.Add(objA);
            }
        }
        return(list);
    }
 public void OnApplyChangeWeapon(CharaInfo.EquipItem item, int weapon_index)
 {
     if (base.enableSend && base.owner.IsOriginal())
     {
         Coop_Model_PlayerApplyChangeWeapon coop_Model_PlayerApplyChangeWeapon = new Coop_Model_PlayerApplyChangeWeapon();
         coop_Model_PlayerApplyChangeWeapon.id    = base.owner.id;
         coop_Model_PlayerApplyChangeWeapon.item  = item;
         coop_Model_PlayerApplyChangeWeapon.index = weapon_index;
         SendBroadcast(coop_Model_PlayerApplyChangeWeapon, true, null, delegate(Coop_Model_Base send_model)
         {
             if (player == null)
             {
                 return(false);
             }
             Coop_Model_PlayerApplyChangeWeapon coop_Model_PlayerApplyChangeWeapon2 = send_model as Coop_Model_PlayerApplyChangeWeapon;
             if (coop_Model_PlayerApplyChangeWeapon2.item.eId != player.weaponData.eId || coop_Model_PlayerApplyChangeWeapon2.index != player.weaponIndex)
             {
                 return(false);
             }
             return(true);
         });
     }
     ClearActionHistory();
 }
    public CharaInfo.EquipItem ConvertSelfEquipSetItem(int index, int setNo)
    {
        if (index >= item.Length || object.ReferenceEquals(item[index], null))
        {
            return(null);
        }
        CharaInfo.EquipItem equipItem = new CharaInfo.EquipItem();
        equipItem.eId    = (int)item[index].tableID;
        equipItem.lv     = item[index].level;
        equipItem.exceed = item[index].exceed;
        int i = 0;

        for (int maxSlot = item[index].GetMaxSlot(); i < maxSlot; i++)
        {
            SkillItemInfo skillItemInfo = (setNo != -1) ? item[index].GetSkillItem(i, setNo) : item[index].GetSkillItem(i);
            if (skillItemInfo != null)
            {
                equipItem.sIds.Add((int)skillItemInfo.tableID);
                equipItem.sLvs.Add(skillItemInfo.level);
                equipItem.sExs.Add(skillItemInfo.exceedCnt);
            }
        }
        return(equipItem);
    }
    public void Parse(CharaInfo.EquipItem item, EquipItemTable.EquipItemData data)
    {
        _Reset();
        type         = data.type;
        spAttackType = data.spAttackType;
        GrowEquipItemTable.GrowEquipItemData growEquipItemData = Singleton <GrowEquipItemTable> .I.GetGrowEquipItemData(data.growID, (uint)item.lv);

        if (object.ReferenceEquals(growEquipItemData, null))
        {
            baseStatus.hp          = data.baseHp;
            baseStatus.attacks[0]  = data.baseAtk;
            baseStatus.defences[0] = data.baseDef;
            for (int i = 0; i < 6; i++)
            {
                baseStatus.attacks[i + 1] = data.atkElement[i];
                baseStatus.tolerances[i]  = data.defElement[i];
            }
        }
        else
        {
            baseStatus.hp          = growEquipItemData.GetGrowParamHp(data.baseHp);
            baseStatus.attacks[0]  = growEquipItemData.GetGrowParamAtk(data.baseAtk);
            baseStatus.defences[0] = growEquipItemData.GetGrowParamDef(data.baseDef);
            int[] growParamElemAtk = growEquipItemData.GetGrowParamElemAtk(data.atkElement);
            int[] growParamElemDef = growEquipItemData.GetGrowParamElemDef(data.defElement);
            for (int j = 0; j < 6; j++)
            {
                baseStatus.attacks[j + 1] = growParamElemAtk[j];
                baseStatus.tolerances[j]  = growParamElemDef[j];
            }
        }
        EquipItemExceedParamTable.EquipItemExceedParamAll exceedParam = data.GetExceedParam((uint)item.exceed);
        if (!object.ReferenceEquals(exceedParam, null))
        {
            baseStatus.hp          += exceedParam.hp;
            baseStatus.attacks[0]  += exceedParam.atk;
            baseStatus.defences[0] += exceedParam.def;
            for (int k = 0; k < 6; k++)
            {
                baseStatus.attacks[k + 1] += exceedParam.atkElement[k];
                baseStatus.tolerances[k]  += exceedParam.defElement[k];
            }
        }
        int l = 0;

        for (int count = item.sIds.Count; l < count; l++)
        {
            SkillItemTable.SkillItemData skillItemData = Singleton <SkillItemTable> .I.GetSkillItemData((uint)item.sIds[l]);

            GrowSkillItemTable.GrowSkillItemData growSkillItemData = Singleton <GrowSkillItemTable> .I.GetGrowSkillItemData(skillItemData.growID, item.sLvs[l]);

            constHp      += growSkillItemData.GetGrowParamHp(skillItemData.baseHp);
            constAtks[0] += growSkillItemData.GetGrowParamAtk(skillItemData.baseAtk);
            constDefs[0] += growSkillItemData.GetGrowParamDef(skillItemData.baseDef);
            int[] growParamElemAtk2 = growSkillItemData.GetGrowParamElemAtk(skillItemData.atkElement);
            int[] growParamElemDef2 = growSkillItemData.GetGrowParamElemDef(skillItemData.defElement);
            for (int m = 0; m < 6; m++)
            {
                constAtks[m + 1] += growParamElemAtk2[m];
                constTols[m]     += growParamElemDef2[m];
            }
            if (skillItemData.IsPassive())
            {
                int n = 0;
                for (int num = skillItemData.supportType.Length; n < num; n++)
                {
                    if (skillItemData.supportType[n] != BuffParam.BUFFTYPE.NONE)
                    {
                        skillSupport.Add(new SkillSupport(skillItemData.supportPassiveEqType[n], skillItemData.supportType[n], growSkillItemData.GetGrowParamSupprtValue(skillItemData.supportValue, n), skillItemData.supportPassiveSpAttackType));
                    }
                }
            }
        }
        int num2 = 0;

        for (int count2 = item.aIds.Count; num2 < count2; num2++)
        {
            int num3 = item.aIds[num2];
            int num4 = item.aPts[num2];
            if (this.ability.ContainsKey(num3))
            {
                Dictionary <int, int> dictionary;
                Dictionary <int, int> dictionary2 = dictionary = this.ability;
                int key;
                int key2 = key = num3;
                key = dictionary[key];
                dictionary2[key2] = key + num4;
            }
            else
            {
                this.ability.Add(num3, num4);
            }
        }
        int num5 = 0;

        for (int num6 = data.fixedAbility.Length; num5 < num6; num5++)
        {
            EquipItem.Ability ability = data.fixedAbility[num5];
            if (this.ability.ContainsKey(ability.id))
            {
                Dictionary <int, int> dictionary3;
                Dictionary <int, int> dictionary4 = dictionary3 = this.ability;
                int key;
                int key3 = key = ability.id;
                key = dictionary3[key];
                dictionary4[key3] = key + ability.pt;
            }
            else
            {
                this.ability.Add(ability.id, ability.pt);
            }
        }
        if (!object.ReferenceEquals(exceedParam, null))
        {
            int num7 = 0;
            for (int num8 = exceedParam.ability.Length; num7 < num8; num7++)
            {
                EquipItem.Ability ability2 = exceedParam.ability[num7];
                if (this.ability.ContainsKey(ability2.id))
                {
                    Dictionary <int, int> dictionary5;
                    Dictionary <int, int> dictionary6 = dictionary5 = this.ability;
                    int key;
                    int key4 = key = ability2.id;
                    key = dictionary5[key];
                    dictionary6[key4] = key + ability2.pt;
                }
                else
                {
                    this.ability.Add(ability2.id, ability2.pt);
                }
            }
        }
    }