// Get a copy of the weapons public List <Weapon> GetWeapons(List <Rune> runes, SkillBuild build) { // Create runes for each skill foreach (var skill in runeDetonators.skills) { runes.Add(new Rune(skill)); } // Weapon list var weapons = new List <Weapon>(); foreach (var weaponBuild in build.weapons) { LogManager.Spam.Log("Trying to find weapon ID " + weaponBuild.weaponId); var originalWeapon = Weapon.idToWeapon[weaponBuild.weaponId]; var weapon = new Weapon(originalWeapon); LogManager.Spam.Log("Registered weapon " + weapon.name); weapons.Add(weapon); // Add attunements from attunement IDs foreach (var attunementBuild in weaponBuild.attunements) { var originalAttunement = Attunement.idToAttunement[attunementBuild.attunementId]; var attunement = new Attunement( originalAttunement.name, originalAttunement.id, null ); // Add skills from skill IDs foreach (var skillId in attunementBuild.skills) { try { var skill = Skill.idToSkill[skillId]; attunement.AddSkill(Skill.Copy(skill)); } catch (KeyNotFoundException) { LogManager.General.LogError("Could not find skill with ID: " + skillId); } } weapon.AddAttunement(attunement); } } return(weapons); }