Ejemplo n.º 1
0
    public static NTGBattleMemberEquip GetBattleMemberEquip(int equipId)
    {
        if (!cacheMemberEquips.ContainsKey(equipId))
        {
            var newEquipLua = (LuaTable)((LuaTable)data["EquipsData"])[equipId.ToString()];
            var equipLua    = new NTGBattleMemberEquip();

            equipLua.Id   = Convert.ToInt32(newEquipLua["Id"]);
            equipLua.Name = Convert.ToString(newEquipLua["Name"]);
            equipLua.Icon = Convert.ToString(newEquipLua["Icon"]);

            equipLua.Attrs = ConvertToMemberAttrs((LuaTable)newEquipLua["Attr"]);
            {
                var PassiveSkills = (LuaTable)newEquipLua["PassiveSkills"];
                var passiveSkills = PassiveSkills.ToArray();
                equipLua.Skills = new NTGBattleMemberSkill[passiveSkills.Length];
                for (int i = 0; i < passiveSkills.Length; i++)
                {
                    equipLua.Skills[i] = GetBattleMemberSkill(Convert.ToInt32(passiveSkills[i]));
                }
            }

            cacheMemberEquips[equipId] = equipLua;
        }

        return(cacheMemberEquips[equipId]);
    }
    public void RemoveEquip(string equipId)
    {
        NTGBattleMemberEquip remove = null;

        foreach (NTGBattleMemberEquip e in equips)
        {
            if (e.Id.ToString() == equipId)
            {
                remove = e;
                break;
            }
        }

        if (remove != null)
        {
            var skillList = new ArrayList();
            for (int i = 0; i < pSkills.Length; i++)
            {
                skillList.Add(pSkills[i]);
            }

            for (int i = 0; i < remove.Skills.Length; i++)
            {
                for (int j = skillList.Count - 1; j >= 0; j--)
                {
                    var skill = (NTGBattlePassiveSkillController)skillList[j];
                    if (skill.id == remove.Skills[i].Id)
                    {
                        skill.Release();
                        skillList.RemoveAt(j);
                        Destroy(skill.gameObject);

                        break;
                    }
                }
            }
            pSkills = new NTGBattlePassiveSkillController[skillList.Count];
            skillList.CopyTo(pSkills);

            if (pSkills.Length > 1)
            {
                for (int i = 1; i < pSkills.Length; i++)
                {
                    pSkills[i].Respawn();
                }
            }

            MinusAttrs(remove.Attrs);

            equips.Remove(remove);
        }
    }