示例#1
0
            public override bool Test(Sim a, Sarcophagus target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
            {
                if ((!target.mLookedIn) && (TombRoomManager.IsObjectInATombRoom(target)))
                {
                    return(false);
                }

                return(base.Test(a, target, isAutonomous, ref greyedOutTooltipCallback));
            }
示例#2
0
        public static void CheckChangeInActiveHousehold(Household newHousehold, bool bForce)
        {
            if (newHousehold == null)
            {
                return;
            }

            if (sCurrentNonNullHousehold == null)
            {
                sCurrentNonNullHousehold          = PlumbBob.sCurrentNonNullHousehold;
                PlumbBob.sCurrentNonNullHousehold = null;
            }

            try
            {
                if (sCurrentNonNullHousehold != newHousehold || bForce)
                {
                    Lot lot = null;
                    if (sCurrentNonNullHousehold != null)
                    {
                        lot = sCurrentNonNullHousehold.LotHome;
                    }
                    if (sCurrentNonNullHousehold != null && sCurrentNonNullHousehold != newHousehold)
                    {
                        Situation.OnActiveHouseholdChanged(sCurrentNonNullHousehold, newHousehold);

                        if (!NiecHelperSituation.__acorewIsnstalled__)
                        {
                            Party.CancelAllHouseParties(sCurrentNonNullHousehold.LotHome);
                        }

                        //sCurrentNonNullHousehold.ResetSocialWorkerTrigger();

                        foreach (Sim allActor in sCurrentNonNullHousehold.AllActors)
                        {
                            try
                            {
                                allActor.OnBecameUnselectable();
                            }
                            catch (Exception)
                            { if (!NiecHelperSituation.__acorewIsnstalled__)
                              {
                                  throw;
                              }
                            }
                        }
                        if (lot != null)
                        {
                            lot.OnBecameUnselected();
                        }
                        sCurrentNonNullHousehold.ResetParentVacationsTrigger();
                    }
                    if (newHousehold != null)
                    {
                        foreach (Sim actor in newHousehold.AllActors)
                        {
                            if (!Household.RoommateManager.IsNPCRoommate(actor))
                            {
                                try
                                {
                                    actor.OnBecameSelectable();
                                }
                                catch (Exception)
                                { if (!NiecHelperSituation.__acorewIsnstalled__)
                                  {
                                      throw;
                                  }
                                }
                            }
                        }
                        if (sCurrentNonNullHousehold != newHousehold)
                        {
                            if (lot != null)
                            {
                                //lot.TryTurnOffHolidayHouseLights();
                            }
                            newHousehold.GiveIngredients();
                        }
                        if (newHousehold.LotHome != null)
                        {
                            newHousehold.LotHome.OnBecameSelected();
                        }

                        Lot.UpdatePlayerNeighbors();

                        TombRoomManager.OnChangeHousehold(newHousehold);

                        try
                        {
                            if (sCurrentNonNullHousehold != newHousehold)
                            {
                                newHousehold.SetParentFreeVacationTrigger(false, false);
                            }
                        }
                        catch (Exception)
                        { if (!NiecHelperSituation.__acorewIsnstalled__)
                          {
                              throw;
                          }
                        }
                    }
                    EventTracker.SendEvent(new HouseholdUpdateEvent(EventTypeId.kHouseholdSelected, newHousehold));
                }
                sCurrentNonNullHousehold          = newHousehold;
                PlumbBob.sCurrentNonNullHousehold = newHousehold;
            }
            catch (Exception ex)
            {
                niec_native_func.OutputDebugString("CheckChangeInActiveHousehold(Household newHousehold, bool bForce) failed.");
                NiecException.SendTextExceptionToDebugger(ex);
            }
        }