Esempio n. 1
0
    // 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);
    }