Exemplo n.º 1
0
        public override float OpinionOffset()
        {
            if (ThoughtUtility.ThoughtNullified(pawn, def))
            {
                return(0f);
            }
            Predicate <Tale_DoublePawn> validator = delegate(Tale_DoublePawn tale)
            {
                return(otherPawn == tale.secondPawnData?.pawn && OpinionOf(tale.firstPawnData.pawn) >= 20);
            };
            Tale latestTale = VSIE_Utils.GetLatestDoublePawnTale(def.taleDef, validator);

            if (latestTale != null)
            {
                float num = 1f;
                if (latestTale.def.type == TaleType.Expirable)
                {
                    float value = (float)latestTale.AgeTicks / (latestTale.def.expireDays * 60000f);
                    num = Mathf.InverseLerp(1f, def.lerpOpinionToZeroAfterDurationPct, value);
                }
                var value2 = base.CurStage.baseOpinionOffset * num;
                return(value2);
            }
            return(0f);
        }
Exemplo n.º 2
0
 public override float OpinionOffset()
 {
     if (ThoughtUtility.ThoughtNullified(pawn, def))
     {
         return(0f);
     }
     return(LovePartnerRelationUtility.IncestOpinionOffsetFor(otherPawn, pawn));
 }
Exemplo n.º 3
0
        public override float OpinionOffset()
        {
            if (ThoughtUtility.ThoughtNullified(pawn, def))
            {
                return(0f);
            }

            if (otherPawn.story.traits.HasTrait(MyDefOf.MLRP_BronyTrait))
            {
                return(25f);
            }
            return(0f);
        }
Exemplo n.º 4
0
        public override float OpinionOffset()
        {
            if (ThoughtUtility.ThoughtNullified(pawn, def))
            {
                return(0f);
            }
            int num = pawn.story.traits.DegreeOfTrait(TraitDefOf.DrugDesire);

            if (otherPawn.story.traits.DegreeOfTrait(TraitDefOf.DrugDesire) >= 0)
            {
                return(0f);
            }
            if (num == 1)
            {
                return(-20f);
            }
            return(-30f);
        }
        public override float OpinionOffset()
        {
            if (ThoughtUtility.ThoughtNullified(pawn, def))
            {
                return(0f);
            }
            int num = otherPawn.story.traits.DegreeOfTrait(TraitDefOf.Industriousness);

            if (num > 0)
            {
                return(0f);
            }
            return(num switch
            {
                0 => - 5f,
                -1 => - 20f,
                _ => - 30f,
            });
        public override float OpinionOffset()
        {
            if (ThoughtUtility.ThoughtNullified(pawn, def))
            {
                return(0f);
            }
            Predicate <Tale> validator = delegate(Tale tale)
            {
                return(tale.DominantPawn == otherPawn);
            };
            Tale latestTale = VSIE_Utils.GetLatestTale(def.taleDef, validator);

            if (latestTale != null)
            {
                float num = 1f;
                if (latestTale.def.type == TaleType.Expirable)
                {
                    float value = (float)latestTale.AgeTicks / (latestTale.def.expireDays * 60000f);
                    num = Mathf.InverseLerp(1f, def.lerpOpinionToZeroAfterDurationPct, value);
                }
                return(base.CurStage.baseOpinionOffset * num);
            }
            return(0f);
        }
Exemplo n.º 7
0
        public override float OpinionOffset()
        {
            if (ThoughtUtility.ThoughtNullified(pawn, def))
            {
                return(0f);
            }
            int num = otherPawn.story.traits.DegreeOfTrait(TraitDefOf.Industriousness);

            if (num > 0)
            {
                return(0f);
            }
            switch (num)
            {
            case 0:
                return(-5f);

            case -1:
                return(-20f);

            default:
                return(-30f);
            }
        }