protected override Job TryGiveJob(Pawn pawn) { MentalState_MurderousRage mentalState_MurderousRage = pawn.MentalState as MentalState_MurderousRage; if (mentalState_MurderousRage != null && mentalState_MurderousRage.target != null && pawn.CanReach(mentalState_MurderousRage.target, PathEndMode.Touch, Danger.Deadly, true, TraverseMode.ByPawn)) { Job job = new Job(JobDefOf.AttackMelee, mentalState_MurderousRage.target); job.canBash = true; job.killIncappedTarget = true; return(job); } return(null); }
protected override Job TryGiveJob(Pawn pawn) { MentalState_MurderousRage mentalState_MurderousRage = pawn.MentalState as MentalState_MurderousRage; if (mentalState_MurderousRage == null || mentalState_MurderousRage.target == null || !pawn.CanReach(mentalState_MurderousRage.target, PathEndMode.Touch, Danger.Deadly, true, TraverseMode.ByPawn)) { return(null); } return(new Job(JobDefOf.AttackMelee, mentalState_MurderousRage.target) { canBash = true, killIncappedTarget = true }); }
protected override Job TryGiveJob(Pawn pawn) { MentalState_MurderousRage mentalState_MurderousRage = pawn.MentalState as MentalState_MurderousRage; if (mentalState_MurderousRage == null || !mentalState_MurderousRage.IsTargetStillValidAndReachable()) { return(null); } Thing spawnedParentOrMe = mentalState_MurderousRage.target.SpawnedParentOrMe; Job job = new Job(JobDefOf.AttackMelee, spawnedParentOrMe); job.canBash = true; job.killIncappedTarget = true; if (spawnedParentOrMe != mentalState_MurderousRage.target) { job.maxNumMeleeAttacks = 2; } return(job); }