示例#1
0
        /// <summary>
        /// Gets a group by its name
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static StaticSkillGroup GetGroupByName(string name)
        {
            StaticSkillGroup group = null;

            m_allGroupsByName.TryGetValue(name, out group);
            return(group);
        }
示例#2
0
        /// <summary>
        /// Initialize static skills
        /// </summary>
        internal static void Load()
        {
            SkillsDatafile datafile = Util.DeserializeDatafile <SkillsDatafile>(DatafileConstants.SkillsDatafile);

            // Fetch deserialized data
            m_arrayIndicesCount = 0;
            var prereqs = new List <SerializableSkillPrerequisite[]>();

            foreach (var srcGroup in datafile.Groups)
            {
                var group = new StaticSkillGroup(srcGroup, ref m_arrayIndicesCount);
                m_allGroupsByName[group.Name] = group;

                // Store skills
                foreach (var skill in group)
                {
                    m_skillsById[skill.ID]     = skill;
                    m_skillsByName[skill.Name] = skill;
                }

                // Store prereqs
                foreach (var serialSkill in srcGroup.Skills)
                {
                    prereqs.Add(serialSkill.Prereqs);
                }
            }

            // Complete initialization
            m_skills = new StaticSkill[m_arrayIndicesCount];
            foreach (var ss in m_skillsById.Values)
            {
                ss.CompleteInitialization(prereqs[ss.ArrayIndex]);
                m_skills[ss.ArrayIndex] = ss;
            }
        }
示例#3
0
        /// <summary>
        /// Gets a group by its name
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static StaticSkillGroup GetGroupByID(int groupId)
        {
            StaticSkillGroup group = null;

            m_allGroupsById.TryGetValue(groupId, out group);
            return(group);
        }
示例#4
0
        /// <summary>
        /// Initialize static skills.
        /// </summary>
        internal static void Load()
        {
            SkillsDatafile datafile = Util.DeserializeDatafile <SkillsDatafile>(DatafileConstants.SkillsDatafile,
                                                                                Util.LoadXslt(Properties.Resources.DatafilesXSLT));

            // Fetch deserialized data
            s_arrayIndicesCount = 0;
            List <Collection <SerializableSkillPrerequisite> > prereqs = new List <Collection <SerializableSkillPrerequisite> >();

            foreach (SerializableSkillGroup srcGroup in datafile.SkillGroups)
            {
                StaticSkillGroup group = new StaticSkillGroup(srcGroup, ref s_arrayIndicesCount);
                s_skillGroupsByID[@group.ID] = @group;

                // Store skills
                foreach (StaticSkill skill in @group)
                {
                    s_skillsByID[skill.ID]     = skill;
                    s_skillsByName[skill.Name] = skill;
                }

                // Store prereqs
                prereqs.AddRange(srcGroup.Skills.Select(serialSkill => serialSkill.SkillPrerequisites));
            }

            // Complete initialization
            s_skills = new StaticSkill[s_arrayIndicesCount];
            foreach (StaticSkill staticSkill in s_skillsByID.Values)
            {
                staticSkill.CompleteInitialization(prereqs[staticSkill.ArrayIndex]);
                s_skills[staticSkill.ArrayIndex] = staticSkill;
            }

            GlobalDatafileCollection.OnDatafileLoaded();
        }
示例#5
0
 /// <summary>
 /// Deserialization constructor from datafiles.
 /// </summary>
 /// <param name="group"></param>
 /// <param name="src"></param>
 /// <param name="arrayIndex"></param>
 internal StaticSkill(StaticSkillGroup group, SerializableSkill src, int arrayIndex)
 {
     m_id                      = src.ID;
     m_cost                    = src.Cost;
     m_rank                    = src.Rank;
     m_public                  = src.Public;
     m_name                    = src.Name;
     m_description             = src.Description;
     m_descriptionNL           = null;
     m_primaryAttribute        = src.PrimaryAttribute;
     m_secondaryAttribute      = src.SecondaryAttribute;
     m_trainableOnTrialAccount = src.CanTrainOnTrial;
     m_arrayIndex              = arrayIndex;
     m_group                   = group;
 }
示例#6
0
 /// <summary>
 /// Deserialization constructor from datafiles.
 /// </summary>
 /// <param name="group"></param>
 /// <param name="src"></param>
 /// <param name="arrayIndex"></param>
 internal StaticSkill(StaticSkillGroup group, SerializableSkill src, int arrayIndex)
 {
     ID                 = src.ID;
     Cost               = src.Cost;
     Rank               = src.Rank;
     IsPublic           = src.Public;
     Name               = src.Name;
     Description        = src.Description;
     PrimaryAttribute   = src.PrimaryAttribute;
     SecondaryAttribute = src.SecondaryAttribute;
     ArrayIndex         = arrayIndex;
     Group              = group;
     Prerequisites      = new Collection <StaticSkillLevel>();
     FormattedCost      = Cost.ToNumericString(0);
     AlphaLimit         = src.AlphaLimit;
 }
示例#7
0
        /// <summary>
        /// Deserialization constructor from datafiles.
        /// </summary>
        /// <param name="group"></param>
        /// <param name="src"></param>
        /// <param name="arrayIndex"></param>
        internal StaticSkill(StaticSkillGroup group, SerializableSkill src, int arrayIndex)
        {
            m_id                      = src.ID;
            m_cost                    = src.Cost;
            m_rank                    = src.Rank;
            m_public                  = src.Public;
            m_name                    = src.Name;
            m_description             = src.Description;
            m_descriptionNL           = null;
            m_primaryAttribute        = src.PrimaryAttribute;
            m_secondaryAttribute      = src.SecondaryAttribute;
            m_trainableOnTrialAccount = src.CanTrainOnTrial;
            m_arrayIndex              = arrayIndex;
            m_group                   = group;

            switch (m_name)
            {
            case "Analytical Mind":
                m_bonusAttribute = EveAttribute.Intelligence;
                m_learningClass  = LearningClass.LowerTierAttribute;
                break;

            case "Logic":
                m_bonusAttribute = EveAttribute.Intelligence;
                m_learningClass  = LearningClass.UpperTierAttribute;
                break;

            case "Empathy":
                m_bonusAttribute = EveAttribute.Charisma;
                m_learningClass  = LearningClass.LowerTierAttribute;
                break;

            case "Presence":
                m_bonusAttribute = EveAttribute.Charisma;
                m_learningClass  = LearningClass.UpperTierAttribute;
                break;

            case "Instant Recall":
                m_bonusAttribute = EveAttribute.Memory;
                m_learningClass  = LearningClass.LowerTierAttribute;
                break;

            case "Eidetic Memory":
                m_bonusAttribute = EveAttribute.Memory;
                m_learningClass  = LearningClass.UpperTierAttribute;
                break;

            case "Iron Will":
                m_bonusAttribute = EveAttribute.Willpower;
                m_learningClass  = LearningClass.LowerTierAttribute;
                break;

            case "Focus":
                m_bonusAttribute = EveAttribute.Willpower;
                m_learningClass  = LearningClass.UpperTierAttribute;
                break;

            case "Spatial Awareness":
                m_bonusAttribute = EveAttribute.Perception;
                m_learningClass  = LearningClass.LowerTierAttribute;
                break;

            case "Clarity":
                m_bonusAttribute = EveAttribute.Perception;
                m_learningClass  = LearningClass.UpperTierAttribute;
                break;

            case "Learning":
                m_bonusAttribute = EveAttribute.None;
                m_learningClass  = LearningClass.Learning;
                break;

            default:
                m_bonusAttribute = EveAttribute.None;
                m_learningClass  = LearningClass.None;
                break;
            }
        }