protected override Job TryGiveJob(Pawn pawn) { MentalState_Tantrum mentalState_Tantrum = pawn.MentalState as MentalState_Tantrum; if (mentalState_Tantrum == null || mentalState_Tantrum.target == null || !pawn.CanReach(mentalState_Tantrum.target, PathEndMode.Touch, Danger.Deadly)) { return(null); } Verb verb = null; Pawn pawn2 = mentalState_Tantrum.target as Pawn; if (pawn2 != null) { if (pawn2.Downed) { return(null); } if (!InteractionUtility.TryGetRandomVerbForSocialFight(pawn, out verb)) { return(null); } } Job job = JobMaker.MakeJob(JobDefOf.AttackMelee, mentalState_Tantrum.target); job.maxNumMeleeAttacks = 1; job.verbToUse = verb; return(job); }
protected override Job TryGiveJob(Pawn pawn) { MentalState_Tantrum mentalState_Tantrum = pawn.MentalState as MentalState_Tantrum; if (mentalState_Tantrum == null || mentalState_Tantrum.target == null || !pawn.CanReach(mentalState_Tantrum.target, PathEndMode.Touch, Danger.Deadly, false, TraverseMode.ByPawn)) { return(null); } Verb verbToUse = null; Pawn pawn2 = mentalState_Tantrum.target as Pawn; if (pawn2 != null) { if (pawn2.Downed) { return(null); } if (!InteractionUtility.TryGetRandomVerbForSocialFight(pawn, out verbToUse)) { return(null); } } return(new Job(JobDefOf.AttackMelee, mentalState_Tantrum.target) { maxNumMeleeAttacks = 1, verbToUse = verbToUse }); }
protected override Job TryGiveJob(Pawn pawn) { Job result; if (pawn.RaceProps.Humanlike && pawn.story.WorkTagIsDisabled(WorkTags.Violent)) { result = null; } else { Pawn otherPawn = ((MentalState_SocialFighting)pawn.MentalState).otherPawn; Verb verbToUse; if (!InteractionUtility.TryGetRandomVerbForSocialFight(pawn, out verbToUse)) { result = null; } else { result = new Job(JobDefOf.SocialFight, otherPawn) { maxNumMeleeAttacks = 1, verbToUse = verbToUse }; } } return(result); }
protected override Job TryGiveJob(Pawn pawn) { if (pawn.RaceProps.Humanlike && pawn.WorkTagIsDisabled(WorkTags.Violent)) { return(null); } Pawn otherPawn = ((MentalState_SocialFighting)pawn.MentalState).otherPawn; if (!InteractionUtility.TryGetRandomVerbForSocialFight(pawn, out var verb)) { return(null); } Job job = JobMaker.MakeJob(JobDefOf.SocialFight, otherPawn); job.maxNumMeleeAttacks = 1; job.verbToUse = verb; return(job); }