using Audio; using Platform; using System.Collections.Generic; using System.Linq; namespace Harmony.XUiC_QuestTurnInEntryPatches { /*[HarmonyPatch(typeof(XUiC_QuestTurnInRewardsWindow))] [HarmonyPatch("SetupOptions")] public class SetupOptionsPatch { public static bool Prefix(XUiC_QuestTurnInRewardsWindow __instance) { float value = EffectManager.GetValue(PassiveEffects.QuestRewardOptionCount, null, (float)__instance.currentQuest.QuestClass.RewardChoicesCount, __instance.xui.playerUI.entityPlayer, null, default(FastTags), true, true, true, true, true, 1, true, false); __instance.optionCount = 0; int num = 0; if (__instance.selectedEntry != null) { __instance.SelectedEntry = null; } __instance.selectedEntryList.Clear(); __instance.rewardList.Clear(); for (int i = 0; i < __instance.entryList.Length; i++) { __instance.entryList[i].OnPress -= __instance.TurnInEntryPressed; __instance.entryList[i].SetBaseReward(null); } Log.Out("XUiC_QuestTurnInEntryPatches-SetupOptions __instance.currentQuest.QuestClass.ID: " + __instance.currentQuest.QuestClass.ID); Log.Out("XUiC_QuestTurnInEntryPatches-SetupOptions __instance.currentQuest.QuestClass.DifficultyTier: " + __instance.currentQuest.QuestClass.DifficultyTier); for (int j = 0; j < __instance.currentQuest.Rewards.Count; j++) { Log.Out("XUiC_QuestTurnInEntryPatches-SetupOptions Reward [" + j + "]: " + __instance.currentQuest.Rewards[j].ID); __instance.rewardList.Add(__instance.currentQuest.Rewards[j]); } //__instance.rewardList = __instance.rewardList.OrderBy((Func)(o => o.RewardIndex)).ToList(); __instance.rewardList = (from o in __instance.rewardList orderby o.RewardIndex select o).ToList(); for (int k = 0; k < __instance.rewardList.Count; k++) { BaseReward baseReward = __instance.rewardList[k]; Log.Out("XUiC_QuestTurnInEntryPatches-SetupOptions Reward [" + k + "]: " + __instance.rewardList[k].ID); string itemName = "EMPTY GetRewardItem()"; if (baseReward.GetRewardItem() != null) { if (baseReward.GetRewardItem().itemValue != null) { if (baseReward.GetRewardItem().itemValue.ItemClass != null) { itemName = baseReward.GetRewardItem().itemValue.ItemClass.GetItemName(); } else { itemName = "EMPTY ItemClass"; } } else { itemName = "EMPTY itemValue"; } } Log.Out("XUiC_QuestTurnInEntryPatches-SetupOptions itemName[" + k + "]: " + itemName); } for (int k = 0; k < __instance.rewardList.Count; k++) { BaseReward baseReward = __instance.rewardList[k]; __instance.entryList[num].OnPress -= __instance.TurnInEntryPressed; if (baseReward.isChosenReward) { __instance.entryList[num].SetBaseReward(baseReward); __instance.entryList[num].Chosen = false; __instance.entryList[num++].OnPress += __instance.TurnInEntryPressed; __instance.optionCount++; if (value == (float)num || num >= __instance.entryList.Length) { break; } } } __instance.entryList[0].SelectCursorElement(true); if (__instance.optionCount == 1) { XUiC_QuestTurnInEntry xuiC_QuestTurnInEntry = __instance.entryList[0]; __instance.SelectedEntry = xuiC_QuestTurnInEntry; __instance.RefreshBindings(false); } return false; } }*/ [HarmonyPatch(typeof(XUiC_QuestTurnInEntry))] [HarmonyPatch("GetBindingValue")] public class GetBindingValuePatch { /*public static bool Prefix(XUiC_QuestTurnInEntry __instance, ref bool __result, ref string value, string bindingName) { if (bindingName == "rewardicon") { if (__instance.reward == null) { value = ""; } else { if (__instance.item == null || __instance.item.IsEmpty()) { value = __instance.reward.Icon; } else { value = __instance.item.itemValue.ItemClass.GetIconName(); } } __result = true; return false; } return true; }*/ public static void Postfix(XUiC_QuestTurnInEntry __instance, ref bool __result, ref string value, string bindingName) { if (RebirthUtilities.ScenarioSkip()) { if (bindingName == "durabilityvalue") { value = ""; __result = true; } else if (bindingName == "itemtypeicon") { ItemValue itemValue = __instance.Item.itemValue; //Log.Out("XUiC_QuestTurnInEntryPatches-GetBindingValue POST, Item: " + itemValue.ItemClass.Name); if (itemValue != null && itemValue.HasMetadata("bonus") && itemValue.HasMetadata("level") && itemValue.HasMetadata("type") && itemValue.HasMetadata("active")) { //Log.Out("XUiC_QuestTurnInEntryPatches-GetBindingValue IS SPECIAL"); value = (string)itemValue.GetMetadata("bonus"); __result = true; return; } } else if (bindingName == "hasitemtypeicon") { ItemValue itemValue = __instance.Item.itemValue; //Log.Out("XUiC_QuestTurnInEntryPatches-GetBindingValue POST, Item: " + itemValue.ItemClass.Name); if (itemValue != null && itemValue.HasMetadata("bonus") && itemValue.HasMetadata("level") && itemValue.HasMetadata("type") && itemValue.HasMetadata("active")) { //Log.Out("XUiC_QuestTurnInEntryPatches-GetBindingValue IS SPECIAL"); value = "true"; __result = true; return; } } } } } }