コード例 #1
0
 public override bool IsViolationOnPawn(Pawn pawn, BodyPartRecord part, Faction billDoerFaction)
 {
     if (BloodItemUtility.ExtractionWillKill(pawn, BloodExtractType.Vial))
     {
         Messages.Message("ROMV_DeadlyOperation".Translate(pawn.Label), MessageTypeDefOf.NegativeEvent);
     }
     return(pawn.Faction != billDoerFaction); //&& HealthUtility.PartRemovalIntent(pawn, part) == BodyPartRemovalIntent.Harvest;
 }
コード例 #2
0
        public override void ApplyOnPawn(Pawn pawn, BodyPartRecord part, Pawn billDoer, List <Thing> ingredients, Bill bill)
        {
            bool flag  = IsClean(pawn, part);
            bool flag2 = IsViolationOnPawn(pawn, part, Faction.OfPlayer);

            if (billDoer != null)
            {
                //if (base.CheckSurgeryFail(billDoer, pawn, ingredients, part))
                //{
                //    return;
                //}
                TaleRecorder.RecordTale(TaleDefOf.DidSurgery, new object[]
                {
                    billDoer,
                    pawn
                });
                BloodItemUtility.SpawnBloodFromExtraction(pawn, true);
            }
            pawn.TakeDamage(new DamageInfo(DamageDefOf.Cut, 1, -1f, null, part));
            int badGoodwillAmt = -3;

            if (flag)
            {
                if (pawn.Dead)
                {
                    badGoodwillAmt = -20;

                    VampireThoughtUtility.GiveThoughtsForPawnDiedOfBloodLoss(pawn, billDoer);
                }
                else
                {
                    VampireThoughtUtility.GiveThoughtsForPawnBloodHarvested(pawn); //ThoughtUtility.GiveThoughtsForPawnOrganHarvested(pawn);
                }
            }
            if (flag2)
            {
                pawn.Faction.AffectGoodwillWith(billDoer.Faction, badGoodwillAmt);
            }
        }
コード例 #3
0
 public override string GetLabelWhenUsedOn(Pawn pawn, BodyPartRecord part)
 {
     return(recipe.LabelCap + " (" + BloodTypeUtility.BloodType(pawn).GetLabel() + ")" + ((BloodItemUtility.ExtractionWillKill(pawn, BloodExtractType.Vial)) ? " (" + ("ROMV_DeadlyOperationShort".Translate()).RawText + ")"  : ""));
 }