/// <summary> /// called every tick /// </summary> public override void CompTick() { if (!MutagenDefOf.defaultMutagen.CanInfect(Pawn)) { return; //tracker is added on some kinds of pawns that can't get mutations, like mechanoids } if (InfluencesDirty) { RecalcInfluences(); InfluencesDirty = false; } if (Pawn.IsHashIntervalTick(MutationRuleDef.CHECK_RATE)) { MutationRuleUtilities.TryExecuteRulesOn(Pawn); } if (Pawn.IsHashIntervalTick(4400) && CanRaceCheckNow) { RecalcIfNeeded(); if (TotalNormalizedInfluence < 0 || TotalNormalizedInfluence > 1) { Log.Warning(nameof(TotalNormalizedInfluence) + $" is {TotalNormalizedInfluence}, recalculating mutation influences for {Pawn.Name}"); RecalculateMutationInfluences(); } Pawn.CheckRace(false); //check the race every so often, but not too often } }
/// <summary> /// called every tick /// </summary> public override void CompTick() { if (Pawn.IsHashIntervalTick(MutationRuleDef.CHECK_RATE)) { MutationRuleUtilities.TryExecuteRulesOn(Pawn); } if (Pawn.IsHashIntervalTick(4400) && CanRaceCheckNow) { RecalcIfNeeded(); if (TotalNormalizedInfluence < 0 || TotalNormalizedInfluence > 1) { Log.Warning(nameof(TotalNormalizedInfluence) + $" is {TotalNormalizedInfluence}, recalculating mutation influences for {Pawn.Name}"); RecalculateMutationInfluences(); } Pawn.CheckRace(false); //check the race every so often, but not too often } }
/// <summary> /// called every tick /// </summary> public override void CompTick() { if (!MutagenDefOf.defaultMutagen.CanInfect(Pawn)) { return; //tracker is added on some kinds of pawns that can't get mutations, like mechanoids } if (InfluencesDirty) { RecalcInfluences(); InfluencesDirty = false; } if (Pawn.IsHashIntervalTick(MutationRuleDef.CHECK_RATE)) { MutationRuleUtilities.TryExecuteRulesOn(Pawn); } if (Pawn.IsHashIntervalTick(4400) && CanRaceCheckNow) { CheckPawnRace(); } }