private bool TryFindNewTarget()
		{
			TantrumMentalStateUtility.GetSmashableThingsNear(base.pawn, base.pawn.Position, MentalState_TargetedTantrum.tmpThings, null, 300, 40);
			bool result = ((IEnumerable<Thing>)MentalState_TargetedTantrum.tmpThings).TryRandomElementByWeight<Thing>((Func<Thing, float>)((Thing x) => x.MarketValue * (float)x.stackCount), out base.target);
			MentalState_TargetedTantrum.tmpThings.Clear();
			return result;
		}
        private bool TryFindNewTarget()
        {
            TantrumMentalStateUtility.GetSmashableThingsNear(pawn, pawn.Position, tmpThings, null, 300);
            bool result = tmpThings.TryRandomElementByWeight((Thing x) => x.MarketValue * (float)x.stackCount, out target);

            tmpThings.Clear();
            return(result);
        }
        public override bool StateCanOccur(Pawn pawn)
        {
            if (!base.StateCanOccur(pawn))
            {
                return(false);
            }
            MentalStateWorker_TargetedTantrum.tmpThings.Clear();
            TantrumMentalStateUtility.GetSmashableThingsNear(pawn, pawn.Position, MentalStateWorker_TargetedTantrum.tmpThings, null, 300, 40);
            bool result = MentalStateWorker_TargetedTantrum.tmpThings.Any();

            MentalStateWorker_TargetedTantrum.tmpThings.Clear();
            return(result);
        }
示例#4
0
        public override bool StateCanOccur(Pawn pawn)
        {
            if (!base.StateCanOccur(pawn))
            {
                return(false);
            }
            tmpThings.Clear();
            TantrumMentalStateUtility.GetSmashableThingsNear(pawn, pawn.Position, tmpThings, (Thing x) => TantrumMentalStateUtility.CanAttackPrisoner(pawn, x));
            bool result = tmpThings.Any();

            tmpThings.Clear();
            return(result);
        }
        public override bool StateCanOccur(Pawn pawn)
        {
            if (!base.StateCanOccur(pawn))
            {
                return(false);
            }
            MentalStateWorker_SadisticRageTantrum.tmpThings.Clear();
            TantrumMentalStateUtility.GetSmashableThingsNear(pawn, pawn.Position, MentalStateWorker_SadisticRageTantrum.tmpThings, (Thing x) => TantrumMentalStateUtility.CanAttackPrisoner(pawn, x), 0, 40);
            bool result = MentalStateWorker_SadisticRageTantrum.tmpThings.Any <Thing>();

            MentalStateWorker_SadisticRageTantrum.tmpThings.Clear();
            return(result);
        }
        public override bool StateCanOccur(Pawn pawn)
        {
            if (!base.StateCanOccur(pawn))
            {
                return(false);
            }
            tmpThings.Clear();
            TantrumMentalStateUtility.GetSmashableThingsNear(pawn, pawn.Position, tmpThings);
            bool result = tmpThings.Count >= 2;

            tmpThings.Clear();
            return(result);
        }
        protected override void GetPotentialTargets(List <Thing> outThings)
        {
            outThings.Clear();
            Building_Bed ownedBed = pawn.ownership.OwnedBed;

            if (ownedBed != null)
            {
                if (ownedBed.GetRoom() != null && !ownedBed.GetRoom().PsychologicallyOutdoors)
                {
                    TantrumMentalStateUtility.GetSmashableThingsIn(ownedBed.GetRoom(), pawn, outThings, GetCustomValidator());
                }
                else
                {
                    TantrumMentalStateUtility.GetSmashableThingsNear(pawn, ownedBed.Position, outThings, GetCustomValidator(), 0, 8);
                }
            }
        }
        protected override void GetPotentialTargets(List <Thing> outThings)
        {
            outThings.Clear();
            Building_Bed ownedBed = this.pawn.ownership.OwnedBed;

            if (ownedBed == null)
            {
                return;
            }
            if (ownedBed.GetRoom(RegionType.Set_Passable) != null && !ownedBed.GetRoom(RegionType.Set_Passable).PsychologicallyOutdoors)
            {
                TantrumMentalStateUtility.GetSmashableThingsIn(ownedBed.GetRoom(RegionType.Set_Passable), this.pawn, outThings, this.GetCustomValidator(), 0);
            }
            else
            {
                TantrumMentalStateUtility.GetSmashableThingsNear(this.pawn, ownedBed.Position, outThings, this.GetCustomValidator(), 0, 8);
            }
        }
        public override bool StateCanOccur(Pawn pawn)
        {
            bool result;

            if (!base.StateCanOccur(pawn))
            {
                result = false;
            }
            else
            {
                MentalStateWorker_TantrumAll.tmpThings.Clear();
                TantrumMentalStateUtility.GetSmashableThingsNear(pawn, pawn.Position, MentalStateWorker_TantrumAll.tmpThings, null, 0, 40);
                bool flag = MentalStateWorker_TantrumAll.tmpThings.Count >= 2;
                MentalStateWorker_TantrumAll.tmpThings.Clear();
                result = flag;
            }
            return(result);
        }
 protected override void GetPotentialTargets(List <Thing> outThings)
 {
     TantrumMentalStateUtility.GetSmashableThingsNear(pawn, pawn.Position, outThings, GetCustomValidator());
 }