static float OldAddictionSeverityOffset(ThingDef d) { if (IsDrug(d)) { return(DrugStatsUtility.GetDrugComp(d).existingAddictionSeverityOffset); } return(-1f); }
static FloatRange OverdoseSeverity(ThingDef d) { if (IsDrug(d)) { return(DrugStatsUtility.GetDrugComp(d).overdoseSeverityOffset); } return(FloatRange.Zero); }
static float NewAddictionChance(ThingDef d) { if (IsDrug(d)) { return(DrugStatsUtility.GetDrugComp(d).addictiveness); } return(-1f); }
static float NewAddictionSeverity(ThingDef d) { if (IsDrug(d)) { return(DrugStatsUtility.GetChemical(d).addictionHediff.initialSeverity); } return(-1f); }
static float MinToleranceToAddict(ThingDef d) { if (IsDrug(d)) { return(DrugStatsUtility.GetDrugComp(d).minToleranceToAddict); } return(-1f); }
static float LargeOverdoseChance(ThingDef d) { if (IsDrug(d)) { return(DrugStatsUtility.GetDrugComp(d).largeOverdoseChance); } return(-1f); }
static bool Addictive(ThingDef d) { if (!IsDrug(d)) { return(false); } return(DrugStatsUtility.GetDrugComp(d).Addictive); }
static HediffDef Addiction(ThingDef d) { if (!Addictive(d)) { return(null); } return(DrugStatsUtility.GetChemical(d).addictionHediff); }
public static void Drugs() { DebugTables.MakeTablesDialog(DefDatabase <ThingDef> .AllDefs.Where((ThingDef d) => d.IsWithinCategory(ThingCategoryDefOf.Medicine) || d.IsWithinCategory(ThingCategoryDefOf.Drugs)), new TableDataGetter <ThingDef>("name", (ThingDef d) => d.defName), new TableDataGetter <ThingDef>("market\nvalue", (ThingDef d) => d.BaseMarketValue.ToStringMoney()), new TableDataGetter <ThingDef>("ingredients", (ThingDef d) => CostListString(d, divideByVolume : true, starIfOnlyBuyable : true)), new TableDataGetter <ThingDef>("work\namount", (ThingDef d) => (!(WorkToProduceBest(d) > 0f)) ? "-" : WorkToProduceBest(d).ToString("F0")), new TableDataGetter <ThingDef>("real\ningredient cost", (ThingDef d) => RealIngredientCost(d).ToString("F1")), new TableDataGetter <ThingDef>("real\nsell price", (ThingDef d) => RealSellPrice(d).ToStringMoney()), new TableDataGetter <ThingDef>("real\nprofit\nper item", (ThingDef d) => (RealSellPrice(d) - RealIngredientCost(d)).ToStringMoney()), new TableDataGetter <ThingDef>("real\nprofit\nper day's work", (ThingDef d) => ((RealSellPrice(d) - RealIngredientCost(d)) / WorkToProduceBest(d) * 30000f).ToStringMoney()), new TableDataGetter <ThingDef>("real\nbuy price", (ThingDef d) => RealBuyPrice(d).ToStringMoney()), new TableDataGetter <ThingDef>("for\npleasure", (ThingDef d) => d.IsPleasureDrug.ToStringCheckBlank()), new TableDataGetter <ThingDef>("non\nmedical", (ThingDef d) => d.IsNonMedicalDrug.ToStringCheckBlank()), new TableDataGetter <ThingDef>("joy", (ThingDef d) => (!d.IsPleasureDrug) ? "-" : d.ingestible.joy.ToString()), new TableDataGetter <ThingDef>("high\ngain", delegate(ThingDef d) { if (DrugStatsUtility.GetDrugHighGiver(d) == null) { return("-"); } return((!(DrugStatsUtility.GetDrugHighGiver(d).severity > 0f)) ? "-" : DrugStatsUtility.GetDrugHighGiver(d).severity.ToString()); }), new TableDataGetter <ThingDef>("high\noffset\nper day", (ThingDef d) => (DrugStatsUtility.GetDrugHighGiver(d)?.hediffDef == null) ? "-" : DrugStatsUtility.GetHighOffsetPerDay(d).ToString()), new TableDataGetter <ThingDef>("high\ndays\nper dose", (ThingDef d) => (DrugStatsUtility.GetDrugHighGiver(d)?.hediffDef == null) ? "-" : (DrugStatsUtility.GetDrugHighGiver(d).severity / (0f - DrugStatsUtility.GetHighOffsetPerDay(d))).ToString("F2")), new TableDataGetter <ThingDef>("tolerance\ngain", (ThingDef d) => (!(DrugStatsUtility.GetToleranceGain(d) > 0f)) ? "-" : DrugStatsUtility.GetToleranceGain(d).ToStringPercent()), new TableDataGetter <ThingDef>("tolerance\noffset\nper day", (ThingDef d) => (DrugStatsUtility.GetTolerance(d) == null) ? "-" : DrugStatsUtility.GetToleranceOffsetPerDay(d).ToStringPercent()), new TableDataGetter <ThingDef>("tolerance\ndays\nper dose", (ThingDef d) => (DrugStatsUtility.GetTolerance(d) == null) ? "-" : (DrugStatsUtility.GetToleranceGain(d) / (0f - DrugStatsUtility.GetToleranceOffsetPerDay(d))).ToString("F2")), new TableDataGetter <ThingDef>("addiction\nmin tolerance", (ThingDef d) => (!Addictive(d)) ? "-" : MinToleranceToAddict(d).ToString()), new TableDataGetter <ThingDef>("addiction\nnew chance", (ThingDef d) => (!Addictive(d)) ? "-" : NewAddictionChance(d).ToStringPercent()), new TableDataGetter <ThingDef>("addiction\nnew severity", (ThingDef d) => (!Addictive(d)) ? "-" : NewAddictionSeverity(d).ToString()), new TableDataGetter <ThingDef>("addiction\nold severity gain", (ThingDef d) => (!Addictive(d)) ? "-" : OldAddictionSeverityOffset(d).ToString()), new TableDataGetter <ThingDef>("addiction\noffset\nper day", (ThingDef d) => (Addiction(d) == null) ? "-" : DrugStatsUtility.GetAddictionOffsetPerDay(d).ToString()), new TableDataGetter <ThingDef>("addiction\nrecover\nmin days", (ThingDef d) => (Addiction(d) == null) ? "-" : (NewAddictionSeverity(d) / (0f - DrugStatsUtility.GetAddictionOffsetPerDay(d))).ToString("F2")), new TableDataGetter <ThingDef>("need fall\nper day", (ThingDef d) => (DrugStatsUtility.GetNeed(d) == null) ? "-" : DrugStatsUtility.GetNeed(d).fallPerDay.ToString("F2")), new TableDataGetter <ThingDef>("need cost\nper day", (ThingDef d) => (DrugStatsUtility.GetNeed(d) == null) ? "-" : DrugStatsUtility.GetAddictionNeedCostPerDay(d).ToStringMoney()), new TableDataGetter <ThingDef>("overdose\nseverity gain", (ThingDef d) => (!IsDrug(d)) ? "-" : OverdoseSeverity(d).ToString()), new TableDataGetter <ThingDef>("overdose\nrandom-emerg\nchance", (ThingDef d) => (!IsDrug(d)) ? "-" : LargeOverdoseChance(d).ToStringPercent()), new TableDataGetter <ThingDef>("combat\ndrug", (ThingDef d) => (IsDrug(d) && d.GetCompProperties <CompProperties_Drug>().isCombatEnhancingDrug).ToStringCheckBlank()), new TableDataGetter <ThingDef>("safe dose\ninterval", (ThingDef d) => DrugStatsUtility.GetSafeDoseIntervalReadout(d)));