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); } }