Beispiel #1
0
 /// <summary>
 /// Allow the model to update any model specific things about changing professions
 /// <param name="character">The character who the defaults are for.</param>
 /// </summary>
 public virtual void UpdateProfessions(Character character)
 {
     #region Buffs related to Professions to Force Enable
     // Miners should always have this buff activated, others shouldn't have this buff
     if (character.HasProfession(Profession.Mining) & !character.ActiveBuffsContains("Toughness")) {
         character.ActiveBuffsAdd("Toughness");
     } else if (character.ActiveBuffsContains("Toughness") && !character.HasProfession(Profession.Mining)) {
         character.ActiveBuffs.Remove(Buff.GetBuffByName("Toughness"));
     }
     // Skinners should always have this buff activated, others shouldn't have this buff
     if (character.HasProfession(Profession.Skinning) & !character.ActiveBuffsContains("Master of Anatomy")) {
         character.ActiveBuffsAdd("Master of Anatomy");
     } else if (character.ActiveBuffsContains("Master of Anatomy") && !character.HasProfession(Profession.Skinning)) {
         character.ActiveBuffs.Remove(Buff.GetBuffByName("Master of Anatomy"));
     }
     // Herbalists should always have this buff activated, others shouldn't have this buff
     if (character.HasProfession(Profession.Herbalism) & !character.ActiveBuffsContains("Lifeblood")) {
         character.ActiveBuffsAdd("Lifeblood");
     } else if (character.ActiveBuffsContains("Lifeblood") && !character.HasProfession(Profession.Herbalism)) {
         character.ActiveBuffs.Remove(Buff.GetBuffByName("Lifeblood"));
     }
     // Engineers should always have this buff activated IF the Primary is
     if (character.HasProfession(Profession.Engineering))
     {
         List<String> list = new List<string>() {
             "Runic Mana Injector",
             "Runic Healing Injector",
         };
         foreach (String name in list)
         {
             if (character.ActiveBuffs.Contains(Buff.GetBuffByName(name)) &&
                 !character.ActiveBuffs.Contains(Buff.GetBuffByName(name + " (Engineer Bonus)")))
             {
                 character.ActiveBuffs.Add(Buff.GetBuffByName(name + " (Engineer Bonus)"));
             }
         }
     }
     // NOTE: Might do this again for Alchemy and Mixology but
     // there could be conflicts for different specialties,
     // need to investigate first
     #endregion
     for (int i = 0; i < character.CurrentGemmingTemplates.Count; i++)
     {
         if (character.CurrentGemmingTemplates[i].Group.Contains("Jewelcrafter"))
         {
             character.CurrentGemmingTemplates[i].Enabled = character.HasProfession(Profession.Jewelcrafting);
         }
         else if (character.CurrentGemmingTemplates[i].Group.Contains("Engineer"))
         {
             character.CurrentGemmingTemplates[i].Enabled = character.HasProfession(Profession.Engineering);
         }
     }
 }
Beispiel #2
0
 /// <summary>
 /// Hide an enchant that is tie to a profession when:
 /// <para>- You have the Option active in the General Settings</para>
 /// <para>- You do not have the profession</para>
 /// <para>Otherwise, this function returns true so that non-profession enchants are not affected.</para>
 /// <para>NOTE: There is no reason to override this function</para>
 /// </summary>
 /// <param name="enchant">The Enchant to check</param>
 /// <returns>Whether the Enchant should be hidden, defaults to true unless specific conditions are met.</returns>
 public virtual bool IsProfEnchantRelevant(Enchant enchant, Character character) {
     try {
         #region Enchants related to Professions to Hide/Show
         string name = enchant.Name;
         if (Rawr.Properties.GeneralSettings.Default.HideProfEnchants) {
             if (!character.HasProfession(Profession.Enchanting)) 
             {
                 if (enchant.Slot == ItemSlot.Finger)
                 {
                     return false;
                 }
             }
             if (!character.HasProfession(Profession.Engineering))
             {
                 if (name.Contains("Frag Belt") ||
                     name.Contains("Mind Amplification Dish")   ||
                     name.Contains("Flexweave Underlay")        ||
                     name.Contains("Hyperspeed Accelerators")   ||
                     name.Contains("Reticulated Armor Webbing") ||
                     name.Contains("Nitro Boosts") ||
                     name.Contains("Springy Arachnoweave") ||
                     name.Contains("Hand-Mounted") ||
                     name.Contains("Grounded Plasma Shield") ||
                     name.Contains("Quickflip Deflection Plates") ||
                     name.Contains("Spinal Healing Injector") ||
                     name.Contains("Synapse Springs") ||
                     name.Contains("Tazik Shocker") ||
                     name.Contains("Z50 Mana Gulper")
                     )
                 {
                     return false;
                 }
             }
             if (!character.HasProfession(Profession.Inscription))
             {
                 if ((name.Contains("Master's") && !name.Contains("Spellthread")) ||
                     name.Contains("Felfire Inscription") ||
                     name.Contains("Inscription of the Earth Prince") ||
                     name.Contains("Lionsmane Inscription") ||
                     name.Contains("Swiftsteel Inscription"))
                 {
                     return false;
                 }
             }
             if (!character.HasProfession(Profession.Leatherworking))
             {
                 if (name.Contains("Fur Lining") ||
                     name.Contains("Nerubian Leg Reinforcements") ||
                     name.Contains("Draconic Embossment") ||
                     name.Contains("Charscale Leg Reinforcements") ||
                     name.Contains("Dragonbone Leg Reinforcements") ||
                     name.Contains("Drakehide Leg Reinforcements"))
                 {
                     return false;
                 }
             }
             if (!character.HasProfession(Profession.Tailoring))
             {
                 if (name.Contains("Embroidery")
                     || name.Contains("Sanctified Spellthread")
                     || name.Contains("Master's Spellthread"))
                 {
                     return false;
                 }
             }
         }
         #endregion
         return true;
     } catch (Exception) { return true; }
 }
Beispiel #3
0
 /// <summary>
 /// Hide a tinkering that is tied to a profession when:
 /// <para>- You have the Option active in the General Settings</para>
 /// <para>- You do not have the profession</para>
 /// <para>Otherwise, this function returns true so that non-profession tinkerings are not affected.</para>
 /// <para>NOTE: There is no reason to override this function</para>
 /// </summary>
 /// <param name="enchant">The Tinkering to check</param>
 /// <returns>Whether the Tinkering should be hidden, defaults to true unless specific conditions are met.</returns>
 public virtual bool IsProfTinkeringRelevant(Tinkering tinkering, Character character) {
     try {
         #region Tinkerings related to Professions to Hide/Show
         if (Rawr.Properties.GeneralSettings.Default.HideProfEnchants)
         {
             if (!character.HasProfession(Profession.Engineering))
             {
                 return false;
             }
         }
         #endregion
         return true;
     } catch (Exception) { return true; }
 }
Beispiel #4
0
        public virtual bool IsBuffRelevant(Buff buff, Character character)
        {
            try
            {
                // Profession Restrictions Enforcement
                if (character != null && Rawr.Properties.GeneralSettings.Default.HideProfEnchants && !character.HasProfession(buff.Professions))
                    return false;
                // Class Restrictions Enforcement
                else if (character != null && !buff.AllowedClasses.Contains(character.Class))
                    return false;
                // if it's a set bonus and class matches treat it as relevant
                if (!string.IsNullOrEmpty(buff.SetName) && buff.AllowedClasses.Contains(character.Class))
                    return true;

                return HasRelevantStats(buff.GetTotalStats());
            }
            catch (Exception)
            {
                return false;
            }
        }