223 lines
8.0 KiB
C#
Raw Normal View History

2022-07-09 12:15:57 +01:00
using Aki.Common.Http;
2022-05-14 20:06:24 +01:00
using Aki.Common.Utils;
using EFT.InventoryLogic;
using System;
using System.Collections.Generic;
2022-07-09 12:15:57 +01:00
using System.Reflection;
using UnityEngine;
using System.IO;
2023-10-20 20:29:04 +01:00
using System.Linq;
using Comfort.Common;
2022-05-14 20:06:24 +01:00
namespace itemValueMod
{
public class ItemValue
{
2023-10-20 20:29:04 +01:00
public static void AddItemValue<T>(ref T __instance, ItemTemplate template) where T : Item
2022-05-14 20:06:24 +01:00
{
2023-10-20 20:29:04 +01:00
__instance.SetupShit();
//var atts = new List<ItemAttributeClass>();
//atts.AddRange(__instance.Attributes);
//__instance.Attributes = atts;
//var attr1 = new ItemAttributeClass(EItemAttributeId.MoneySum)
//{
// StringValue = __instance.TraderPrice(template),
// FullStringValue = __instance.TraderName,
// Name = "TRADER",
// DisplayType = () => EItemAttributeDisplayType.Compact
//};
//__instance.Attributes.Add(attr1);
2022-05-14 20:06:24 +01:00
}
}
public static class ValueExtension
{
2023-10-20 20:29:04 +01:00
public static ItemFactory ItemFactoryInstance;
2022-06-25 22:30:13 +01:00
2023-10-20 20:29:04 +01:00
public static void SetupShit(this Item item)
{
2023-10-20 20:29:04 +01:00
ItemFactoryInstance = Singleton<ItemFactory>.Instance;
var itemTemplate = ItemFactoryInstance.ItemTemplates.Values.First(x => x._id == item.TemplateId).Name;
2023-10-20 20:29:04 +01:00
2023-10-20 20:29:04 +01:00
Debug.LogError($"[itemTemplate] {itemTemplate}");
}
2023-10-20 20:29:04 +01:00
//public static Func<string> TraderPrice(this Item item, ItemTemplate template)
//{
// string itemId = item.Template._id;
// JsonClass jsonClass;
// double alteredPrice = 1;
2023-10-20 20:29:04 +01:00
// if (jsonClass.price != 1)
// {
// alteredPrice = DurabilityCheck(item, jsonClass);
// }
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// double _price = alteredPrice * jsonClass.multiplier;
2023-10-20 20:29:04 +01:00
// return Math.Round(_price).ToString();
//}
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
//public static string TraderName(this Item item)
//{
// string itemId = item.Template._id;
// JsonClass jsonClass;
2023-10-20 20:29:04 +01:00
// return jsonClass.traderName;
//}
2023-10-20 20:29:04 +01:00
//public static double DurabilityCheck(this Item item, JsonClass jsonClass)
//{
// double editedPrice = jsonClass.price;
// double originalMax = jsonClass.originalMax;
2023-10-20 20:29:04 +01:00
// DebugMode($" Entered DurabilityCheck() - starting price is: {editedPrice}");
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// var medKit = item.GetItemComponent<MedKitComponent>();
// if (medKit != null && medKit.HpResource != 0 && medKit.MaxHpResource != 0)
// {
// DebugMode($" Medkit Check - HpResource is: {medKit.HpResource}");
// DebugMode($" Medkit Check - MaxHpResource is: {medKit.MaxHpResource}");
2023-10-20 20:29:04 +01:00
// editedPrice *= medKit.HpResource / medKit.MaxHpResource;
// }
2023-10-20 20:29:04 +01:00
// DebugMode($" After Medkit Check - price is: {editedPrice}");
2022-05-14 20:06:24 +01:00
2023-10-20 20:29:04 +01:00
// var repair = item.GetItemComponent<RepairableComponent>();
// if (repair != null)
// {
// if (repair.Durability > 0)
// {
// DebugMode($" repairable Check - Durability is: {repair.Durability}");
// DebugMode($" Medkit Check - originalMax is: {originalMax}");
2023-10-20 20:29:04 +01:00
// editedPrice *= repair.Durability / originalMax;
// }
// else
// {
// DebugMode($" repairable Check - Durability is 0");
2023-10-20 20:29:04 +01:00
// editedPrice = 1;
// }
// }
2023-10-20 20:29:04 +01:00
// DebugMode($" After repairable Check - price is: {editedPrice}");
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// var dogtag = item.GetItemComponent<DogtagComponent>();
// if (dogtag != null && dogtag.Level != 0)
// {
// DebugMode($" dogtag Check - level is: {dogtag.Level}");
2023-10-20 20:29:04 +01:00
// editedPrice *= dogtag.Level;
// }
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// DebugMode($" After dogtag Check - price is: {editedPrice}");
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// var repairKit = item.GetItemComponent<RepairKitComponent>();
// if (repairKit != null)
// {
// if (repairKit.Resource > 0)
// {
// DebugMode($" repairkit Check - Resource is: {repairKit.Resource}");
// DebugMode($" repairkit Check - originalMax is: {originalMax}");
2023-10-20 20:29:04 +01:00
// editedPrice *= repairKit.Resource / originalMax;
// }
// else
// {
// DebugMode($" repairkit Check - Resource is 0");
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// editedPrice = 1;
// }
// }
2023-10-20 20:29:04 +01:00
// DebugMode($" After repairkit Check - price is: {editedPrice}");
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// var resource = item.GetItemComponent<ResourceComponent>();
// if (resource != null && resource.Value != 0 && resource.MaxResource != 0)
// {
// DebugMode($" resource Check - Resource is: {resource.Value}");
// DebugMode($" resource Check - MaxResource is: {resource.MaxResource}");
2023-10-20 20:29:04 +01:00
// editedPrice *= resource.Value / resource.MaxResource;
// }
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// DebugMode($" After resource Check - price is: {editedPrice}");
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// var foodDrink = item.GetItemComponent<FoodDrinkComponent>();
// if (foodDrink != null && foodDrink.HpPercent != 0)
// {
// GInterface234 ginterface234_0 = (GInterface234)foodDrink.GetType().GetField("ginterface234_0", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(foodDrink);
2023-10-20 20:29:04 +01:00
// DebugMode($" foodDrink Check - HpPercent is: {foodDrink.HpPercent}");
// DebugMode($" foodDrink Check - MaxResource is: {ginterface234_0.MaxResource}");
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// editedPrice *= foodDrink.HpPercent / ginterface234_0.MaxResource;
// }
2023-10-20 20:29:04 +01:00
// DebugMode($" After foodDrink Check - price is: {editedPrice}");
2023-10-20 20:29:04 +01:00
// var keys = item.GetItemComponent<KeyComponent>();
// if (keys != null)
// {
// GInterface238 template = (GInterface238)keys.GetType().GetField("Template", BindingFlags.Public | BindingFlags.Instance).GetValue(keys);
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// if (keys.NumberOfUsages > 0)
// {
// double totalMinusUsed = Convert.ToDouble(template.MaximumNumberOfUsage - keys.NumberOfUsages);
// double multi = totalMinusUsed / template.MaximumNumberOfUsage;
2023-10-20 20:29:04 +01:00
// DebugMode($" foodDrink Check - totalMinusUsed is: {totalMinusUsed}");
// DebugMode($" foodDrink Check - multi is: {multi}");
2022-07-09 12:15:57 +01:00
2023-10-20 20:29:04 +01:00
// editedPrice *= multi;
// }
// }
2023-10-20 20:29:04 +01:00
// DebugMode($" After keys Check - price is: {editedPrice}");
2023-10-20 20:29:04 +01:00
// var sideEffect = item.GetItemComponent<SideEffectComponent>();
// if (sideEffect != null && sideEffect.Value != 0)
// {
// DebugMode($" sideEffect Check - resource is: {sideEffect.Value}");
// DebugMode($" sideEffect Check - MaxResource is: {sideEffect.MaxResource}");
2023-10-20 20:29:04 +01:00
// editedPrice *= sideEffect.Value / sideEffect.MaxResource;
// }
2023-10-20 20:29:04 +01:00
// DebugMode($" After sideEffect Check - price is: {editedPrice}");
2023-10-20 20:29:04 +01:00
// DebugMode($"Ending price: {editedPrice}");
// return editedPrice;
//}
//public static void DebugMode(String str)
//{
// var directory = Directory.GetCurrentDirectory();
// var modDirectory = new DirectoryInfo(directory + "/user/mods/");
// DirectoryInfo[] dirsInDir = modDirectory.GetDirectories("*" + "SeeItemValue" + "*.*");
// if (dirsInDir.Length == 1)
// {
// var json = File.ReadAllText(dirsInDir[0].ToString() + "/src/config.json");
// var configJson = Json.Deserialize<ConfigClass>(json);
// if (configJson != null && configJson.DebugMode)
// {
// Debug.LogError(str);
// }
// }
//}
2022-05-14 20:06:24 +01:00
}
}