Пример #1
0
        public static void OnGotBuff(Event e)
        {
            HasGuidEvent <BuffNames> buffEvent = e as HasGuidEvent <BuffNames>;

            Dictionary <ulong, bool> sims;

            if (!sBuffChecks.TryGetValue(buffEvent.Guid, out sims))
            {
                sims = new Dictionary <ulong, bool>();
                sBuffChecks.Add(buffEvent.Guid, sims);
            }

            if (sims.ContainsKey(e.Actor.SimDescription.SimDescriptionId))
            {
                return;
            }
            sims.Add(e.Actor.SimDescription.SimDescriptionId, true);

            List <Homemaker> careers = GetCareerForSim(e);

            if (careers != null)
            {
                switch (buffEvent.Guid)
                {
                case BuffNames.StirCrazy:
                    if (careers[0].ImmuneToStirCrazy)
                    {
                        e.Actor.BuffManager.RemoveElement(buffEvent.Guid);
                    }
                    break;
                }

                if (HomemakerGoodParentMoodletBooter.IsBuff(buffEvent.Guid))
                {
                    Homemaker.AddMarks(careers, Homemaker.StipendValue.GoodMoodlet, 1);
                }
            }

            careers = GetCareerOfGuardian(e, false);
            if (careers != null)
            {
                if (HomemakerGoodChildMoodletBooter.IsBuff(buffEvent.Guid))
                {
                    Homemaker.AddMarks(careers, Homemaker.StipendValue.GoodMoodlet, 1);
                }
                else if (HomemakerBadMoodletBooter.IsBuff(buffEvent.Guid))
                {
                    Homemaker.AddMarks(careers, Homemaker.StipendValue.BadMoodlet, 1);
                }
            }

            if (HomemakerBadLotMoodletBooter.IsBuff(buffEvent.Guid))
            {
                Homemaker.AddMarks(GetCareerForHousehold(e.Actor.LotCurrent.Household), Homemaker.StipendValue.BadMoodlet, 1);
            }
            else if (HomemakerGoodLotMoodletBooter.IsBuff(buffEvent.Guid))
            {
                Homemaker.AddMarks(GetCareerForHousehold(e.Actor.LotCurrent.Household), Homemaker.StipendValue.GoodMoodlet, 1);
            }
        }
Пример #2
0
        public static void OnReadBook(Event e)
        {
            Sim actor = e.Actor as Sim;

            if (actor == null)
            {
                return;
            }

            Book book = e.TargetObject as Book;

            if (book == null)
            {
                return;
            }

            if (book is BookToddler)
            {
                Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.ReadBook, 1);
            }
            else if ((book.Data.ID == "PregnancyEricHW") || (book.Data.ID == "MorePregnancyEricHW"))
            {
                Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.ReadBook, 1);
            }
        }
Пример #3
0
        public static void OnNegativeEnvironment(Event e)
        {
            Sim actor = e.Actor as Sim;

            if (actor == null)
            {
                return;
            }

            if (actor.LotCurrent == null)
            {
                return;
            }

            Household house = actor.LotCurrent.Household;

            if (house == null)
            {
                return;
            }

            if (actor.Occupation is Homemaker)
            {
                return;
            }

            Homemaker.AddMarks(GetCareerForHousehold(house), Homemaker.StipendValue.NegativeEnvironment, 1);
        }
Пример #4
0
        public static void OnImprovedHygieneOneADay(Event e)
        {
            if (sHygiene.ContainsKey(e.Actor.SimDescription.SimDescriptionId))
            {
                return;
            }
            sHygiene.Add(e.Actor.SimDescription.SimDescriptionId, true);

            Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.ImprovedHygiene, 1);
            Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.ImprovedHygiene, 1);
        }
Пример #5
0
        public static void OnSawDirtyObject(Event e)
        {
            Sim actor = e.Actor as Sim;

            if (actor == null)
            {
                return;
            }

            if (actor.LotCurrent == null)
            {
                return;
            }

            Household house = actor.LotCurrent.Household;

            if (house == null)
            {
                return;
            }

            if (actor.Occupation is Homemaker)
            {
                return;
            }

            if (e.TargetObject != null)
            {
                List <Homemaker> careers = GetCareerForHousehold(house);
                if (careers != null)
                {
                    Dictionary <ulong, bool> observers;
                    if (!sDirtyChecks.TryGetValue(e.TargetObject.ObjectId, out observers))
                    {
                        observers = new Dictionary <ulong, bool>();
                        sDirtyChecks.Add(e.TargetObject.ObjectId, observers);
                    }

                    if (!observers.ContainsKey(e.Actor.SimDescription.SimDescriptionId))
                    {
                        observers.Add(e.Actor.SimDescription.SimDescriptionId, true);

                        Homemaker.AddMarks(careers, Homemaker.StipendValue.DirtyObject, 1);
                    }
                }
            }
            else
            {
                Homemaker.AddMarks(GetCareerForHousehold(house), Homemaker.StipendValue.NegativeEnvironment, 1);
            }
        }
Пример #6
0
            public override bool Test(Sim a, Computer target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
            {
                Homemaker career = a.Occupation as Homemaker;

                if (career == null)
                {
                    return(false);
                }

                if (!target.IsComputerUsable(a, true, false, isAutonomous))
                {
                    return(false);
                }

                return(true);
            }
Пример #7
0
        public static void OnCookedMeal(Event e)
        {
            IDish dish = e.TargetObject as IDish;

            if (dish == null)
            {
                return;
            }

            if (dish.GetNumServingsLeft() <= 1)
            {
                return;
            }

            Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.CookedMeal, 1);
        }
Пример #8
0
        protected static List <Homemaker> GetCareerForSim(Event e)
        {
            Sim actor = e.Actor as Sim;

            if (actor != null)
            {
                Homemaker career = actor.Occupation as Homemaker;
                if (career != null)
                {
                    List <Homemaker> careers = new List <Homemaker>();
                    careers.Add(career);
                    return(careers);
                }
            }

            return(null);
        }
Пример #9
0
        public static void OnSkillLearned(Event e)
        {
            HasGuidEvent <SkillNames> skillEvent = e as HasGuidEvent <SkillNames>;

            if (HomemakerTaughtSkillBooter.IsSkill(skillEvent.Guid))
            {
                Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.TaughtChildSkill, 1);
            }

            if (HomemakerChildSkillBooter.IsSkill(skillEvent.Guid))
            {
                Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.ChildLearnedSkill, 1);
            }

            if (HomemakerParentSkillBooter.IsSkill(skillEvent.Guid))
            {
                Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.ParentLearnedSkill, 1);
            }
        }
Пример #10
0
        public override bool Run()
        {
            try
            {
                StandardEntry();
                try
                {
                    if (!Target.StartComputing(this, SurfaceHeight.Table, true))
                    {
                        StandardExit();
                        return(false);
                    }

                    AnimateSim("GenericTyping");

                    Homemaker career = Actor.Occupation as Homemaker;

                    string notice = career.GetNotice();

                    Common.Notify(notice);

                    Common.DebugWriteLog(notice);

                    Target.StopComputing(this, Computer.StopComputingAction.TurnOff, false);
                }
                finally
                {
                    StandardExit();
                }
                return(true);
            }
            catch (ResetException)
            {
                throw;
            }
            catch (Exception e)
            {
                Common.Exception(Actor, Target, e);
                return(false);
            }
        }
Пример #11
0
        protected static List <Homemaker> GetCareerForHousehold(Household house)
        {
            if (house != null)
            {
                List <Homemaker> careers = new List <Homemaker>();

                foreach (SimDescription parent in Households.Humans(house))
                {
                    Homemaker career = parent.Occupation as Homemaker;
                    if (career == null)
                    {
                        continue;
                    }

                    careers.Add(career);
                }

                return(careers);
            }

            return(null);
        }
Пример #12
0
        public static void OnBoughtObject(Event e)
        {
            List <Homemaker> careers = GetCareerForHousehold(e);

            if (careers == null)
            {
                return;
            }

            bool discount = false;

            foreach (Homemaker homemaker in careers)
            {
                if (homemaker.HasDiscount)
                {
                    discount = true;
                    break;
                }
            }

            if (HomemakerDiscountObjectsBooter.IsObject(e.TargetObject.GetType()))
            {
                if (discount)
                {
                    float value = e.TargetObject.Value * (NRaas.Careers.Settings.mHomemakerDiscountRate / 100f);

                    GameObject obj = e.TargetObject as GameObject;
                    if (obj != null)
                    {
                        obj.ValueModifier -= (int)value;
                    }

                    careers[0].AddDiscount((int)value);
                }

                Homemaker.AddMarks(GetCareerForHousehold(e), Homemaker.StipendValue.BoughtObject, 1);
            }
        }
Пример #13
0
 public static void OnRecipeLearned(Event e)
 {
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.LearnedRecipe, 1);
 }
Пример #14
0
 public static void OnCleanedUp(Event e)
 {
     Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.ChildCleanedUp, 1);
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.ParentCleanedUp, 1);
 }
Пример #15
0
        public static void OnSocialEvent(Event e)
        {
            SocialEvent socialEvent = e as SocialEvent;

            if (socialEvent == null)
            {
                return;
            }

            if (socialEvent.WasRecipient)
            {
                return;
            }

            if (!socialEvent.WasAccepted)
            {
                return;
            }

            Sim actor = socialEvent.Actor as Sim;

            if (actor == null)
            {
                return;
            }

            Sim target = socialEvent.TargetObject as Sim;

            if (target == null)
            {
                return;
            }

            if (actor.Household != target.Household)
            {
                return;
            }

            if (target.SimDescription == null)
            {
                return;
            }

            List <Homemaker> careers = GetCareerForSim(e);

            if (careers == null)
            {
                careers = GetCareerOfGuardian(e);
            }

            if (careers == null)
            {
                return;
            }

            ActionData data = ActionData.Get(socialEvent.SocialName);

            if (data == null)
            {
                return;
            }

            switch (data.IntendedCommodityString)
            {
            case CommodityTypes.Friendly:
            case CommodityTypes.Funny:
            case CommodityTypes.Amorous:
                Homemaker.AddMarks(careers, Homemaker.StipendValue.PositiveSocial, 1);
                break;

            case CommodityTypes.Creepy:
            case CommodityTypes.Insulting:
            case CommodityTypes.Steamed:
                Homemaker.AddMarks(careers, Homemaker.StipendValue.NegativeSocial, 1);
                break;
            }
        }
Пример #16
0
 public static void OnRepaired(Event e)
 {
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.RepairedObject, 1);
 }
Пример #17
0
 public static void OnMaintainedHome(Event e)
 {
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.MantainedHome, 1);
 }
Пример #18
0
 public static void OnBeingBad(Event e)
 {
     Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.BeingBad, 1);
 }
Пример #19
0
 public static void OnUnsafeConditions(Event e)
 {
     Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.UnsafeConditions, 1);
 }
Пример #20
0
 public static void OnMotiveFailure(Event e)
 {
     Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.MotiveFailure, 1);
 }
Пример #21
0
 public static void OnImprovedHygiene(Event e)
 {
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.ImprovedHygiene, 1);
     Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.ImprovedHygiene, 1);
 }
Пример #22
0
 public static void OnAgedUpWell(Event e)
 {
     Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.AgedUpWell, 1);
 }
Пример #23
0
 public static void OnHelpedWithHomework(Event e)
 {
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.Homework, 1);
 }
Пример #24
0
 public static void OnSignedUpForAfterschoolActivity(Event e)
 {
     Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.AfterschoolActivity, 1);
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.AfterschoolActivity, 1);
 }
Пример #25
0
 public static void OnTutored(Event e)
 {
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.Tutored, 1);
 }
Пример #26
0
 public static void OnPlayedWith(Event e)
 {
     Homemaker.AddMarks(GetCareerForSim(e), Homemaker.StipendValue.PlayedWith, 1);
 }
Пример #27
0
 public static Data GetStipend(Homemaker.StipendValue value)
 {
     return sData[value];
 }
Пример #28
0
 public static void OnFinishedHomework(Event e)
 {
     Homemaker.AddMarks(GetCareerOfGuardian(e), Homemaker.StipendValue.Homework, 1);
 }