public static void CheckValues(DrugPolicy DP, DrugPolicyEntry DPE, ThingDef drug, out DrugPolicyEntry DPEChecked) { DPEChecked = DPE; if (!DrugPolicyUtility.IsAddictive(drug)) { DPEChecked.allowedForAddiction = false; } if (!drug.IsPleasureDrug) { DPEChecked.allowedForJoy = false; } }
public static void AddNewDrugToPolicy(DrugPolicy dp, ThingDef newdrug, DrugCategory DC) { var drugPolicyEntry = new DrugPolicyEntry { drug = newdrug, allowedForAddiction = false, allowedForJoy = false, allowScheduled = false }; if (dp.label == "SocialDrugs".Translate()) { if (DC == DrugCategory.Social) { drugPolicyEntry.allowedForJoy = true; } } else if (dp.label == "Unrestricted".Translate()) { if (newdrug.IsPleasureDrug) { drugPolicyEntry.allowedForJoy = true; } } else if (dp.label == "OneDrinkPerDay".Translate() && (DrugPolicyUtility.IsAlcohol(newdrug) || DrugPolicyUtility.IsSmokey(newdrug)) && newdrug.IsPleasureDrug) { drugPolicyEntry.allowedForJoy = true; } if (DrugPolicyUtility.IsAddictive(newdrug)) { drugPolicyEntry.allowedForAddiction = true; } var list = NonPublicFields.DrugPolicyEntryList(dp); list.AddDistinct(drugPolicyEntry); NonPublicFields.DrugPolicyEntryList(dp) = list; }