public override bool StateCanOccur(Pawn pawn) { bool result; if (!base.StateCanOccur(pawn)) { result = false; } else { Building_Bed ownedBed = pawn.ownership.OwnedBed; if (ownedBed == null || ownedBed.GetRoom(RegionType.Set_Passable) == null || ownedBed.GetRoom(RegionType.Set_Passable).PsychologicallyOutdoors) { result = false; } else { MentalStateWorker_BedroomTantrum.tmpThings.Clear(); TantrumMentalStateUtility.GetSmashableThingsIn(ownedBed.GetRoom(RegionType.Set_Passable), pawn, MentalStateWorker_BedroomTantrum.tmpThings, null, 0); bool flag = MentalStateWorker_BedroomTantrum.tmpThings.Any <Thing>(); MentalStateWorker_BedroomTantrum.tmpThings.Clear(); result = flag; } } 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) { if (!base.StateCanOccur(pawn)) { return(false); } Building_Bed ownedBed = pawn.ownership.OwnedBed; if (ownedBed == null || ownedBed.GetRoom() == null || ownedBed.GetRoom().PsychologicallyOutdoors) { return(false); } tmpThings.Clear(); TantrumMentalStateUtility.GetSmashableThingsIn(ownedBed.GetRoom(), pawn, tmpThings); bool result = tmpThings.Any(); tmpThings.Clear(); return(result); }