public override PrepareItemResult PrepareItemForSet(FullRareSetManagerSettings settings) { var lowFirst = LowLvlItems.Count > 0 && LowLvlItems[0].BInPlayerInventory; if (lowFirst) { var result = LowProcess(); if (result != null) { return(result); } result = HighProcess(); if (result != null) { return(result); } } else { var result = HighProcess(); if (result != null) { return(result); } result = LowProcess(); if (result != null) { return(result); } } return(null); }
public override PrepareItemResult PrepareItemForSet(FullRareSetManagerSettings settings) { var oneHandedFirst = settings.WeaponTypePriority.Value == "One handed"; if (!oneHandedFirst) { if (OneHandedHighLvlItems.Count > 0 && OneHandedHighLvlItems[0].BInPlayerInventory) { oneHandedFirst = true; } else if (OneHandedLowLvlItems.Count > 0 && OneHandedLowLvlItems[0].BInPlayerInventory) { oneHandedFirst = true; } } else { if (TwoHandedHighLvlItems.Count > 0 && TwoHandedHighLvlItems[0].BInPlayerInventory) { oneHandedFirst = false; } else if (TwoHandedLowLvlItems.Count > 0 && TwoHandedLowLvlItems[0].BInPlayerInventory) { oneHandedFirst = false; } } var invokeList = new Func <PrepareItemResult> [5]; if (oneHandedFirst) { invokeList[0] = Prepahe_OH; invokeList[1] = Prepahe_OHOL; invokeList[2] = Prepahe_OL; invokeList[3] = Prepahe_TH; invokeList[4] = Prepahe_TL; } else { invokeList[0] = Prepahe_TH; invokeList[1] = Prepahe_TL; invokeList[2] = Prepahe_OHOL; invokeList[3] = Prepahe_OH; invokeList[4] = Prepahe_OL; } foreach (var t in invokeList) { var result = t(); if (result != null) { return(result); } } return(null); }
public override PrepareItemResult PrepareItemForSet(FullRareSetManagerSettings settings) { var oneHandedFirst = settings.WeaponTypePriority.Value == "One handed"; if (!oneHandedFirst) { if (OneHandedHighLvlItems.Count > 0 && OneHandedHighLvlItems[0].BInPlayerInventory) oneHandedFirst = true; else if (OneHandedLowLvlItems.Count > 0 && OneHandedLowLvlItems[0].BInPlayerInventory) oneHandedFirst = true; } else { if (TwoHandedHighLvlItems.Count > 0 && TwoHandedHighLvlItems[0].BInPlayerInventory) oneHandedFirst = false; else if (TwoHandedLowLvlItems.Count > 0 && TwoHandedLowLvlItems[0].BInPlayerInventory) oneHandedFirst = false; } var invokeList = new Func<PrepareItemResult>[5]; if (oneHandedFirst) { invokeList[0] = Prepahe_OH; invokeList[1] = Prepahe_OHOL; invokeList[2] = Prepahe_OL; invokeList[3] = Prepahe_TH; invokeList[4] = Prepahe_TL; } else { invokeList[0] = Prepahe_TH; invokeList[1] = Prepahe_TL; invokeList[2] = Prepahe_OHOL; invokeList[3] = Prepahe_OH; invokeList[4] = Prepahe_OL; } var rezults = new List<Tuple<PrepareItemResult, Func<PrepareItemResult>>>(); foreach (var t in invokeList) { var result = t(); if (result != null) { var func = t; rezults.Add(new Tuple<PrepareItemResult, Func<PrepareItemResult>>(result, func)); } } if (rezults.Count > 0) { var inPlayerInv = rezults.Find(x => x.Item1.BInPlayerInvent); if (inPlayerInv != null) { inPlayerInv.Item2(); return inPlayerInv.Item1; } rezults[0].Item2(); return rezults[0].Item1; } return null; }
public override PrepareItemResult PrepareItemForSet(FullRareSetManagerSettings settings) { var anyHighInInvent = HighLvlItems.Count >= 1 && HighLvlItems[0].BInPlayerInventory; var anyLowInInvent = LowLvlItems.Count >= 1 && LowLvlItems[0].BInPlayerInventory; if (anyHighInInvent && settings.OptimizeChaosSets.Value) { var allHighInInvent = HighLvlItems.Count >= 2 && HighLvlItems[1].BInPlayerInventory; if (allHighInInvent) { _currentSetItems = new[] { HighLvlItems[0], HighLvlItems[1] }; return(new PrepareItemResult { AllowedReplacesCount = LowLvlItems.Count, LowSet = false, BInPlayerInvent = true }); } var result = PrepareHigh(); if (result != null) { return(result); } result = PrepareMixedHl(); if (result != null) { return(result); } } if (anyHighInInvent && anyLowInInvent) { _currentSetItems = new[] { HighLvlItems[0], LowLvlItems[0] }; return(new PrepareItemResult { AllowedReplacesCount = LowLvlItems.Count - 1, LowSet = true, BInPlayerInvent = true }); } if (anyHighInInvent) { var allHighInInvent = HighLvlItems.Count >= 2 && HighLvlItems[1].BInPlayerInventory; if (allHighInInvent) { _currentSetItems = new[] { HighLvlItems[0], HighLvlItems[1] }; return(new PrepareItemResult { AllowedReplacesCount = LowLvlItems.Count, LowSet = false, BInPlayerInvent = true }); } var result = PrepareHigh(); if (result != null) { return(result); } result = PrepareMixedHl(); if (result != null) { return(result); } } else if (anyLowInInvent) { var allLowInInvent = LowLvlItems.Count >= 2 && LowLvlItems[1].BInPlayerInventory; if (allLowInInvent) { _currentSetItems = new[] { LowLvlItems[0], LowLvlItems[1] }; return(new PrepareItemResult { AllowedReplacesCount = LowLvlItems.Count - 2, LowSet = true, BInPlayerInvent = true }); } var result = PrepareMixedHl() ?? PrepareLow(); if (result != null) { return(result); } } else { var result = PrepareHigh(); if (result != null) { return(result); } result = PrepareMixedHl(); if (result != null) { return(result); } result = PrepareLow(); if (result != null) { return(result); } } return(new PrepareItemResult()); //Code should never get here }
public abstract PrepareItemResult PrepareItemForSet(FullRareSetManagerSettings settings);