Exemple #1
0
 public override float RandomSelectionWeight(Pawn initiator, Pawn recipient)
 {
     if (!initiator.health.hediffSet.HasHediff(CultManager.CommittedHediffdef) ||
         recipient.health.hediffSet.HasHediff(CultManager.CommittedHediffdef))
     {
         return(0);
     }
     if (Hediff_Committed.GetHediffForPawn(initiator).CurStageIndex <= 1)
     {
         return(0);
     }
     return(10000000f);
     // Get my opinion of cultleader
     //
 }
Exemple #2
0
        public override void TransformValue(StatRequest req, ref float val)
        {
            var   pawn   = req.Thing as Pawn;
            var   opawns = Find.VisibleMap.mapPawns.FreeColonists;
            var   cache  = CultManager.OpinionCacheLookup[pawn.GetHashCode()];
            float totalOpinionFactored = 0;
            int   numOpawns            = 0;

            foreach (var opawn in opawns)
            {
                if (!(opawn.GetHashCode() == pawn.GetHashCode()) && opawn.GetHashCode() != CultManager.Leader.GetHashCode())
                {
                    totalOpinionFactored += cache.GetOpinionOfOther(opawn) * Hediff_Committed.GetSeverityForPawn(opawn);
                    numOpawns++;
                }
            }
            totalOpinionFactored /= numOpawns / 4f;
            if (totalOpinionFactored < 0)
            {
            }
            else if (totalOpinionFactored < 10)
            {
                val = .1f;
            }
            else if (totalOpinionFactored < 20)
            {
                val = .3f;
            }
            else if (totalOpinionFactored < 40)
            {
                val = .5f;
            }
            else if (totalOpinionFactored >= 50)
            {
                val = .7f;
            }
        }