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); }
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()); }