コード例 #1
0
        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);
        }
コード例 #2
0
        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
            });
        }
コード例 #3
0
        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);
        }