182 lines
7.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|