Exemple #1
0
        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);
        }