예제 #1
0
        private void OnStartedPartyFinishes()
        {
            if (!mbPartyFinishedCalled)
            {
                mbPartyFinishedCalled = true;
                Party.PartyOutcomes       partyOutcome        = GetPartyOutcome();
                Party.SpecialPartyOutcome specialPartyOutcome = GetSpecialPartyOutcome();
                bool flag = Host.HasTrait(TraitNames.LegendaryHost);
                switch (specialPartyOutcome)
                {
                case Party.SpecialPartyOutcome.kSpecialConditionsFailed:
                    partyOutcome = Party.PartyOutcomes.kBadParty;
                    break;
                }
                switch (partyOutcome)
                {
                case Party.PartyOutcomes.kBadParty:
                    Host.BuffManager.AddElement(BuffNames.ThrewLameParty, Origin.FromUnhappyGuests);
                    break;

                case Party.PartyOutcomes.kGoodParty:
                    Host.BuffManager.AddElement(BuffNames.ThrewAGreatParty, Origin.FromHappyGuests);
                    break;
                }
                Host.BuffManager.UnpauseBuff(BuffNames.TheLifeOfTheParty);
                Host.BuffManager.UnpauseBuff(BuffNames.AwesomeParty);
                Host.PartyAnimalWooList.Clear();
                foreach (Sim sim in OtherHosts)
                {
                    if (flag)
                    {
                        sim.BuffManager.AddElement(BuffNames.AwesomeParty, Origin.FromLegendaryHost);
                    }
                    sim.BuffManager.UnpauseBuff(BuffNames.TheLifeOfTheParty);
                    sim.BuffManager.UnpauseBuff(BuffNames.AwesomeParty);
                    sim.PartyAnimalWooList.Clear();
                }
                ActiveTopic.AddToSim(Host, "Party Over");
                EventTracker.SendEvent(new PartyEvent(EventTypeId.kPartyOver, Host, Host.SimDescription, this));
                if (specialPartyOutcome == Party.SpecialPartyOutcome.kSpecialConditionsFailed)
                {
                    ShowSpecialFailureTNS();
                }
                else
                {
                    ShowPartyEndTNS(partyOutcome);
                }
            }
        }
예제 #2
0
        public override Party.PartyOutcomes GetPartyOutcomeForSim(Sim sim)
        {
            Party.PartyOutcomes kNeutralParty = Party.PartyOutcomes.kNeutralParty;
            int  simHostedMood = GetSimHostedMood(sim);
            bool flag          = Host.HasTrait(TraitNames.LegendaryHost);

            if ((simHostedMood > HouseParty.kThrewGreatPartyBuffMoodRequirement) || flag)
            {
                return(Party.PartyOutcomes.kGoodParty);
            }
            if (simHostedMood < HouseParty.kThrewLamePartyBuffMoodRequirement)
            {
                kNeutralParty = Party.PartyOutcomes.kBadParty;
            }
            return(kNeutralParty);
        }
예제 #3
0
 public override Party.PartyOutcomes GetPartyOutcome()
 {
     Party.PartyOutcomes kNeutralParty = Party.PartyOutcomes.kNeutralParty;
     if (mNumberOfGuests > 0x0)
     {
         float num  = mPartyMood / ((float)mNumberOfGuests);
         bool  flag = Host.HasTrait(TraitNames.LegendaryHost);
         if ((num > HouseParty.kThrewGreatPartyBuffMoodRequirement) || flag)
         {
             return(Party.PartyOutcomes.kGoodParty);
         }
         if (num < HouseParty.kThrewLamePartyBuffMoodRequirement)
         {
             kNeutralParty = Party.PartyOutcomes.kBadParty;
         }
     }
     return(kNeutralParty);
 }
예제 #4
0
        public override void ShowPartyEndTNS(Party.PartyOutcomes partyResult)
        {
            string str;

            switch (partyResult)
            {
            case Party.PartyOutcomes.kBadParty:
                str = Common.LocalizeEAString(Host.IsFemale, "Gameplay/Notifications/Party:BadFuneral", new object[] { Host.SimDescription });
                break;

            case Party.PartyOutcomes.kGoodParty:
                str = Common.LocalizeEAString(Host.IsFemale, "Gameplay/Notifications/Party:GoodFuneral", new object[] { Host.SimDescription });
                break;

            default:
                str = Common.LocalizeEAString(Host.IsFemale, "Gameplay/Notifications/Party:NormalFuneral", new object[] { Host.SimDescription });
                break;
            }
            StyledNotification.Format format = new StyledNotification.Format(str, ObjectGuid.InvalidObjectGuid, Host.ObjectId, StyledNotification.NotificationStyle.kGameMessagePositive);
            StyledNotification.Show(format, "w_party");
        }
예제 #5
0
        public virtual void ShowPartyEndTNS(Party.PartyOutcomes partyResult)
        {
            if (StoryProgression.Main.Situations.MatchesAlertLevel(Host))
            {
                string str;
                switch (partyResult)
                {
                case Party.PartyOutcomes.kBadParty:
                    str = Common.LocalizeEAString(Host.IsFemale, "Gameplay/Notifications/Party:BadParty", new object[] { Host.SimDescription });
                    break;

                case Party.PartyOutcomes.kGoodParty:
                    str = Common.LocalizeEAString(Host.IsFemale, "Gameplay/Notifications/Party:GoodParty", new object[] { Host.SimDescription });
                    break;

                default:
                    str = Common.LocalizeEAString(Host.IsFemale, "Gameplay/Notifications/Party:NormalParty", new object[] { Host.SimDescription });
                    break;
                }
                StyledNotification.Format format = new StyledNotification.Format(str, ObjectGuid.InvalidObjectGuid, Host.ObjectId, StyledNotification.NotificationStyle.kGameMessagePositive);
                StyledNotification.Show(format, "w_party");
            }
        }