Beispiel #1
0
        public override bool InRabbitHole()
        {
            BeginCommodityUpdates();

            bool succeeded = false;

            try
            {
                Target.StartPlayerConcert();
                StartStages();
                succeeded = DoLoop(~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached));
                Target.EndPlayerConcert();
            }
            finally
            {
                EndCommodityUpdates(succeeded);
            }

            if (succeeded)
            {
                EventTracker.SendEvent(EventTypeId.kPerformedConcert, Actor);

                int level = 10;

                Music job = OmniCareer.Career <Music>(Actor.Occupation);
                if (job != null)
                {
                    job.ConcertsPerformed++;

                    OmniCareer omni = Actor.Occupation as OmniCareer;
                    if (omni != null)
                    {
                        if (omni.PaidForConcerts())
                        {
                            level = 0;
                        }
                    }
                    else
                    {
                        level = Music.LevelToGetPaidForConcerts;
                    }
                }

                SkillBasedCareer career = SkillBasedCareerBooter.GetSkillBasedCareer(Actor, SkillNames.Guitar);
                if (career != null)
                {
                    level = NRaas.Careers.Settings.mBuskerLevelToGetPaidForConcerts;
                }

                if (Actor.Occupation.CareerLevel >= level)
                {
                    int concertPayAmount = Target.ConcertPayAmount;

                    Actor.ModifyFunds(concertPayAmount);

                    Actor.ShowTNSIfSelectable(LocalizeString(Actor.SimDescription, "ConcertPay", new object[] { Actor, concertPayAmount }), StyledNotification.NotificationStyle.kGameMessagePositive, ObjectGuid.InvalidObjectGuid, Actor.ObjectId);
                }
                else
                {
                    Actor.Occupation.ShowOccupationTNS(OmniCareer.LocalizeString(Actor.SimDescription, "PerformTone:ConcertPerformed", "Gameplay/Careers/Music/PerformTone:ConcertPerformed", new object[] { Actor }));
                }
            }
            return(true);
        }