//Honorbuddy API version private static IEnumerable<object> GetNumberPlayerHasInferiorOrEqualTo(GarrMissionReward reward) { var numCarried = Enumerable.Empty<object>(); if (reward.IsItemReward()) { numCarried = HbApi.GetItemCarried((uint)reward.GarrisonButlerRewardId()); } else if (reward.IsCurrencyReward()) { var currency = WoWCurrency.GetCurrencyByType(reward.CurrencyType); numCarried = new List<WoWCurrency>(); if (currency != null) ((List<WoWCurrency>)numCarried).Add(currency); } else if (reward.IsGold()) { var gold = (int)StyxWoW.Me.Gold; numCarried = new List<object>(); ((List<object>)numCarried).Add((object)gold); } return numCarried; }
//Honorbuddy API version public async Task<IEnumerable<object>> GetItemsOrNull(GarrMissionReward reward) { switch (_condition) { case Conditions.NumberPlayerHasSuperiorTo: return GetNumberPlayerHasSuperiorTo(reward); case Conditions.NumberPlayerHasSuperiorOrEqualTo: return GetNumberPlayerHasSuperiorOrEqualTo(reward); case Conditions.NumberPlayerHasInferiorTo: return GetNumberPlayerHasInferiorTo(reward); case Conditions.NumberPlayerHasInferiorOrEqualTo: return GetNumberPlayerHasInferiorOrEqualTo(reward); case Conditions.NumberRewardSuperiorTo: return (IEnumerable<object>)GetNumberRewardSuperiorTo(reward); case Conditions.NumberRewardSuperiorOrEqualTo: return GetNumberRewardSuperiorOrEqualTo(reward); case Conditions.NumberRewardInferiorTo: return GetNumberRewardInferiorTo(reward); case Conditions.NumberRewardInferiorOrEqualTo: return GetNumberRewardInferiorOrEqualTo(reward); //case Conditions.NumberInBagsSuperiorTo: // return GetNumberInBagsSuperiorTo(itemId); //case Conditions.NumberInBagsSuperiorOrEqualTo: // return GetNumberInBagsSuperiorOrEqualTo(itemId); //case Conditions.KeepNumberInBags: // return await GetNumberKeepNumberInBags(itemId, _checkValue); case Conditions.None: return null; default: GarrisonButler.Diagnostic("GetItemsOrNull(GarrMissionReward): This mission rule has not been implemented! Id: {0} Name: {1}", reward.GarrisonButlerRewardId(), reward.Name()); break; } return null; }
//Honorbuddy API version private static bool IsNumberPlayerHasInferiorOrEqualTo(GarrMissionReward reward, int x) { uint numCarried = 0; if (reward.IsItemReward()) { numCarried = (uint)HbApi.GetNumberItemCarried((uint)reward.GarrisonButlerRewardId()); } else if (reward.IsCurrencyReward()) { var currencyInfo = WoWCurrency.GetCurrencyByType(reward.CurrencyType); if (currencyInfo == null) numCarried = 0; else numCarried = currencyInfo.Amount; } else if (reward.IsGold()) { numCarried = (uint)StyxWoW.Me.Gold; } return numCarried != 0 && numCarried <= x; }
//Honorbuddy API version public bool GetCondition(GarrMissionReward reward) { switch (_condition) { case Conditions.NumberPlayerHasSuperiorTo: return IsNumberPlayerHasSuperiorTo(reward, _checkValue); case Conditions.NumberPlayerHasSuperiorOrEqualTo: return IsNumberPlayerHasSuperiorOrEqualTo(reward, _checkValue); case Conditions.NumberPlayerHasInferiorTo: return IsNumberPlayerHasInferiorTo(reward, _checkValue); case Conditions.NumberPlayerHasInferiorOrEqualTo: return IsNumberPlayerHasInferiorOrEqualTo(reward, _checkValue); case Conditions.NumberRewardSuperiorTo: return IsNumberRewardSuperiorTo(reward, _checkValue); case Conditions.NumberRewardSuperiorOrEqualTo: return IsNumberRewardSuperiorOrEqualTo(reward, _checkValue); case Conditions.NumberRewardInferiorTo: return IsNumberRewardInferiorTo(reward, _checkValue); case Conditions.NumberRewardInferiorOrEqualTo: return IsNumberRewardInferiorOrEqualTo(reward, _checkValue); case Conditions.None: return true; default: GarrisonButler.Diagnostic("GetCondition(GarrMissionReward): This mission rule has not been implemented! Id: {0} Name: {1}", reward.GarrisonButlerRewardId(), reward.Name()); break; } return true; }