bool Client::CanIncreaseTradeskill(SkillUseTypes tradeskill) { uint32 rawskill = GetRawSkill(tradeskill); uint16 maxskill = MaxSkill(tradeskill); if (rawskill >= maxskill) //Max skill sanity check return false; uint8 Baking = (GetRawSkill(SkillBaking) > 200) ? 1 : 0; uint8 Smithing = (GetRawSkill(SkillBlacksmithing) > 200) ? 1 : 0; uint8 Brewing = (GetRawSkill(SkillBrewing) > 200) ? 1 : 0; uint8 Fletching = (GetRawSkill(SkillFletching) > 200) ? 1 : 0; uint8 Jewelry = (GetRawSkill(SkillJewelryMaking) > 200) ? 1 : 0; uint8 Pottery = (GetRawSkill(SkillPottery) > 200) ? 1 : 0; uint8 Tailoring = (GetRawSkill(SkillTailoring) > 200) ? 1 : 0; uint8 SkillTotal = Baking + Smithing + Brewing + Fletching + Jewelry + Pottery + Tailoring; //Tradeskills above 200 //New Tanaan AA: Each level allows an additional tradeskill above 200 (first one is free) uint8 aaLevel = spellbonuses.TradeSkillMastery + itembonuses.TradeSkillMastery + aabonuses.TradeSkillMastery; switch (tradeskill) { case SkillBaking: case SkillBlacksmithing: case SkillBrewing: case SkillFletching: case SkillJewelryMaking: case SkillPottery: case SkillTailoring: if (aaLevel == 6) break; //Maxed AA if (SkillTotal == 0) break; //First tradeskill freebie if ((SkillTotal == (aaLevel + 1)) && (rawskill > 200)) break; //One of the tradeskills already allowed to go over 200 if ((SkillTotal >= (aaLevel + 1)) && (rawskill >= 200)) return false; //One or more tradeskills already at or beyond limit break; default: break; //Other skills unchecked and ability to increase assumed true } return true; }
bool Client::CanIncreaseTradeskill(SkillType tradeskill) { uint32 rawskill = GetRawSkill(tradeskill); uint16 maxskill = MaxSkill(tradeskill); if (rawskill >= maxskill) //Max skill sanity check return false; uint8 Baking = (GetRawSkill(BAKING) > 200) ? 1 : 0; uint8 Smithing = (GetRawSkill(BLACKSMITHING) > 200) ? 1 : 0; uint8 Brewing = (GetRawSkill(BREWING) > 200) ? 1 : 0; uint8 Fletching = (GetRawSkill(FLETCHING) > 200) ? 1 : 0; uint8 Jewelry = (GetRawSkill(JEWELRY_MAKING) > 200) ? 1 : 0; uint8 Pottery = (GetRawSkill(POTTERY) > 200) ? 1 : 0; uint8 Tailoring = (GetRawSkill(TAILORING) > 200) ? 1 : 0; uint8 SkillTotal = Baking + Smithing + Brewing + Fletching + Jewelry + Pottery + Tailoring; //Tradeskills above 200 uint32 aaLevel = GetAA(aaNewTanaanCraftingMastery); //New Tanaan AA: Each level allows an additional tradeskill above 200 (first one is free) switch (tradeskill) { case BAKING: case BLACKSMITHING: case BREWING: case FLETCHING: case JEWELRY_MAKING: case POTTERY: case TAILORING: if (aaLevel == 6) break; //Maxed AA if (SkillTotal == 0) break; //First tradeskill freebie if ((SkillTotal == (aaLevel + 1)) && (rawskill > 200)) break; //One of the tradeskills already allowed to go over 200 if ((SkillTotal >= (aaLevel + 1)) && (rawskill >= 200)) return false; //One or more tradeskills already at or beyond limit break; default: break; //Other skills unchecked and ability to increase assumed true } return true; }