public bool AssignEntertainerToBuilding(Pawn entertainer, Building_Carn building, bool relieveExistingPawn = false) { if (entertainer == null || building == null) { return(false); } var cell = building.GetAnnouncerCell(); if (cell.IsValid) { if (building.assignedPawn != null) { if (relieveExistingPawn) { rememberedPositions.Remove(building.assignedPawn); building.assignedPawn = entertainer; rememberedPositions.Add(entertainer, cell); guardPositions.Add(cell); return(true); } else { return(false); } } else { building.assignedPawn = entertainer; rememberedPositions.Add(entertainer, cell); guardPositions.Add(cell); return(true); } } return(false); }