コード例 #1
0
        public static void LoseTrait(this TraitSet traitSet, Trait trait)
        {
            Pawn pawn = (Pawn)typeof(TraitSet).GetField("pawn", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(traitSet);

            if (!traitSet.HasTrait(trait.def))
            {
                Log.Warning(pawn + " does not have trait " + trait.def);
                return;
            }
            traitSet.allTraits.Remove(trait);
            traitSet.ForceUpdate();
        }
コード例 #2
0
 public static void SetDegreeOfTrait(this TraitSet traitSet, Trait trait, int degree)
 {
     typeof(Trait).GetField("degree", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(trait, degree);
     traitSet.ForceUpdate();
 }