Exemple #1
0
        public static void PostFix(ref Pawn_HealthTracker __instance, ref Hediff __result, ref Pawn ___pawn,
                                   HediffDef def, BodyPartRecord part = null, DamageInfo?dinfo = null,
                                   DamageWorker.DamageResult result   = null)
        {
            if (!Controller.Settings.DoAilments || GenDate.DaysPassed < Controller.Settings.CAStartDays ||
                __result == null || Controller.Settings.CAChance <= 0 || ___pawn == null || part == null ||
                !CommonAilments.PawnCanAcceptCA(___pawn) || def?.addedPartProps == null ||
                !def.addedPartProps.solid)
            {
                return;
            }

            var offset = CommonAilmentsUtility.AugmentOffset(___pawn);

            if (!CommonAilments.CanAddCA(Math.Max(12, Controller.Settings.CAChance * 2), offset))
            {
                return;
            }

            var hdef = DefDatabase <HediffDef> .GetNamed("CA_PhantomPain", false);

            if (hdef == null)
            {
                return;
            }

            var sev = CommonAilmentsUtility.RandNum(0.5f, 3f);

            if (CommonAilmentsUtility.HediffEffect(hdef, sev, ___pawn, part, out _))
            {
                CommonAilments.SendCAMsg(___pawn, hdef);
            }
        }
        // Token: 0x06000004 RID: 4 RVA: 0x00002144 File Offset: 0x00000344
        public static void Setup()
        {
            var allDefsListForReading = DefDatabase <HediffDef> .AllDefsListForReading;
            var ComAilDefNames        = CommonAilmentsUtility.GetComAilDefNames();
            var SymptomaticList       = CommonAilmentsUtility.Symptomatic();
            var symptomatic           = 0;

            checked
            {
                foreach (var hediffDef in allDefsListForReading)
                {
                    if (ComAilDefNames.Contains(hediffDef.defName))
                    {
                        hediffDef.scenarioCanAdd = Controller.Settings.CACanAddScenario;
                    }

                    if (SymptomaticList.Contains(hediffDef.defName))
                    {
                        ApplySymptoms(hediffDef, typeof(HediffCompProperties_CASymptom),
                                      ref symptomatic);
                    }
                }

                if (symptomatic > 0)
                {
                    Log.Message("ComAil.Symptomatic".Translate(symptomatic.ToString()));
                }
            }
        }
        // Token: 0x06000008 RID: 8 RVA: 0x00002660 File Offset: 0x00000860
        public static bool TryApplyAilment(HediffDef h, float s, Pawn p, BodyPartRecord b, out bool i)
        {
            i = false;
            if (HasCA(p, h))
            {
                return(false);
            }

            if (CommonAilmentsUtility.HediffEffect(h, s, p, b, out var i2))
            {
                SendCAMsg(p, h);
                return(true);
            }

            i = i2;

            return(false);
        }
        // Token: 0x06000038 RID: 56 RVA: 0x00003BC0 File Offset: 0x00001DC0
        public override void CompPostTick(ref float severityAdjustment)
        {
            if (!Controller.Settings.DoSymptoms || !CommonAilments.PawnCanAcceptCA(Pawn) ||
                !Controller.Settings.DoAilments || GenDate.DaysPassed < Controller.Settings.CAStartDays ||
                !Pawn.IsHashIntervalTick(2501))
            {
                return;
            }

            var chance = (int)(CAProps.symptomChance + Controller.Settings.CAChance);

            CommonAilments.CurSituation(Pawn, out var offset, out _, out _, out _, out _,
                                        out _);
            offset += Math.Max(-20, Math.Min(10, CommonAilments.GetImmunityOS(Pawn)));
            if (CommonAilments.CanAddCA(chance, offset))
            {
                CommonAilmentsUtility.ApplySymptom(Pawn);
            }
        }
        // Token: 0x06000007 RID: 7 RVA: 0x00002624 File Offset: 0x00000824
        public static bool GetEitherProtected(Pawn partner, Pawn p)
        {
            var Condom = DefDatabase <HediffDef> .GetNamed("MSCondom_High", false);

            if (Condom == null)
            {
                return(false);
            }

            if (partner != null && CommonAilmentsUtility.HasHediff(partner, Condom))
            {
                return(true);
            }

            if (p != null && CommonAilmentsUtility.HasHediff(p, Condom))
            {
                return(true);
            }

            return(false);
        }
Exemple #6
0
        // Token: 0x06000033 RID: 51 RVA: 0x00003A74 File Offset: 0x00001C74
        public override void CompPostTick(ref float severityAdjustment)
        {
            if (curing && ticksToCure > 0)
            {
                ticksToCure--;
                return;
            }

            if (curing)
            {
                parent.Severity = 0f;
                Messages.Message(
                    "ComAil.CureMsg".Translate(Pawn.LabelShort.CapitalizeFirst(), Def.label.CapitalizeFirst()), Pawn,
                    MessageTypeDefOf.PositiveEvent);
                return;
            }

            if (!CommonAilmentsUtility.ImmuneTo(Pawn, Def, out var Immunities))
            {
                return;
            }

            var ImmunitiesAsCure = 0;

            foreach (var s in Immunities)
            {
                if (s != "MSCondom_High")
                {
                    ImmunitiesAsCure++;
                }
            }

            if (ImmunitiesAsCure <= 0)
            {
                return;
            }

            SetTicksToCure();
            curing = true;
        }