Files
7d2dXG/Mods/zzz_REBIRTH__Utils/Harmony/Harmony_XUiC_QuestTurnInEntry.cs
Nathaniel Cosford 062dfab2cd Patched
2025-05-30 01:04:40 +09:30

182 lines
7.3 KiB
C#

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<TagGroup.Global>), 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<BaseReward, byte>((Func<BaseReward, byte>)(o => o.RewardIndex)).ToList<BaseReward>();
__instance.rewardList = (from o in __instance.rewardList
orderby o.RewardIndex
select o).ToList<BaseReward>();
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;
}
}
}
}
}
}