private static void SetRequirement(string gearName, int numberRequired, Action_WhiteoutGearRequirements instance, string journalDisplayName = null) { var itemRequirements = instance.requiredItemsList.value; var displayNames = instance.requiredItemsHeaderList; //var itemRequirement = itemRequirements.FirstOrDefault(i => i.name == gearName); var itemRequirement = FirstRequirementWithSameName(itemRequirements, gearName); if (itemRequirement != null) { if (numberRequired == 0) { var index = itemRequirements.IndexOf(itemRequirement); itemRequirements.RemoveAt(index); displayNames.RemoveAt(index); } else { itemRequirement.amount = numberRequired; } } else { if (numberRequired == 0) { return; } // TODO: Condition required? var newItemRequirement = new InventoryItemRequirement(gearName, numberRequired, false, null, null); itemRequirements.Add(newItemRequirement); displayNames.Add(journalDisplayName); } }
private static void Postfix(Action_WhiteoutGearRequirements __instance) { if (Dictionaries.NeedsPopulated()) { Dictionaries.PopulateDictionaries(); } __instance.daysOfFoodRequired = Settings.options.daysOfFoodRequired; __instance.numLitersPotableWater = Settings.options.litersWaterRequired; __instance.numLitersKerosene = Settings.options.litersKeroseneRequired; __instance.sceneToStockpileItems = Dictionaries.locationNamesByWhiteoutLocation[Settings.options.stockpileLocation]; // Implementation.Log("Required location: " + __instance.sceneToStockpileItems); // SetRequirement("GEAR_Softwood,GEAR_Hardwood", Settings.options.hardSoftWoodRequired, __instance); // SetRequirement("GEAR_BearSkinBedRoll", Settings.options.bearSkillBedrollRequired, __instance, "Bearskin Bedroll"); // Implementation.Log("Required items now: " + __instance.requiredItemsList.value.Count); ClearItemRequirements(__instance); AddRequirement(Settings.options.item1, Settings.options.item1amount, __instance); AddRequirement(Settings.options.item2, Settings.options.item2amount, __instance); AddRequirement(Settings.options.item3, Settings.options.item3amount, __instance); AddRequirement(Settings.options.item4, Settings.options.item4amount, __instance); AddRequirement(Settings.options.item5, Settings.options.item5amount, __instance); AddRequirement(Settings.options.item6, Settings.options.item6amount, __instance); AddRequirement(Settings.options.item7, Settings.options.item7amount, __instance); AddRequirement(Settings.options.item8, Settings.options.item8amount, __instance); AddRequirement(Settings.options.item9, Settings.options.item9amount, __instance); AddRequirement(Settings.options.item10, Settings.options.item10amount, __instance); AddRequirement(Settings.options.item11, Settings.options.item11amount, __instance); AddRequirement(Settings.options.item12, Settings.options.item12amount, __instance); }
private static void Postfix(Action_WhiteoutGearRequirements __instance) { PopulateDictionaries(); var settings = WhiteoutGearSettings.Instance; __instance.daysOfFoodRequired = settings.daysOfFoodRequired; __instance.numLitersPotableWater = settings.litersWaterRequired; __instance.numLitersKerosene = settings.litersKeroseneRequired; __instance.sceneToStockpileItems = locationNamesByWhiteoutLocation[settings.stockpileLocation]; // Debug.Log("[WHITEOUT] Required location: " + __instance.sceneToStockpileItems); // SetRequirement("GEAR_Softwood,GEAR_Hardwood", settings.hardSoftWoodRequired, __instance); // SetRequirement("GEAR_BearSkinBedRoll", settings.bearSkillBedrollRequired, __instance, "Bearskin Bedroll"); // Debug.Log("[WHITEOUT] Required items now: " + __instance.requiredItemsList.value.Count); ClearItemRequirements(__instance); AddRequirement(settings.item1, settings.item1amount, __instance); AddRequirement(settings.item2, settings.item2amount, __instance); AddRequirement(settings.item3, settings.item3amount, __instance); AddRequirement(settings.item4, settings.item4amount, __instance); AddRequirement(settings.item5, settings.item5amount, __instance); AddRequirement(settings.item6, settings.item6amount, __instance); AddRequirement(settings.item7, settings.item7amount, __instance); AddRequirement(settings.item8, settings.item8amount, __instance); AddRequirement(settings.item9, settings.item9amount, __instance); AddRequirement(settings.item10, settings.item10amount, __instance); AddRequirement(settings.item11, settings.item11amount, __instance); AddRequirement(settings.item12, settings.item11amount, __instance); }
private static void ClearItemRequirements(Action_WhiteoutGearRequirements instance) { for (int i = 0; i < instance.requiredItemsList.value.Count; i++) { Implementation.Log("Required items: " + instance.requiredItemsList.value[i].name + " (" + instance.requiredItemsList.value[i].amount + ")"); Implementation.Log("Header: " + instance.requiredItemsHeaderList[i]); } instance.requiredItemsList.value.Clear(); instance.requiredItemsHeaderList.Clear(); }
private static void AddRequirement(WhiteoutItem item, int numberRequired, Action_WhiteoutGearRequirements instance) { if (item == WhiteoutItem.None) { return; } var displayName = item.ToString().Replace('_', ' '); var gearName = gearItemNamesByWhiteoutItem[item]; SetRequirement(gearName, numberRequired, instance, displayName); }
private static void SetRequirement(string gearName, bool required, Action_WhiteoutGearRequirements instance, string journalDisplayName = null) { SetRequirement(gearName, required ? 1 : 0, instance, journalDisplayName); }