예제 #1
0
        public static ObjectGuid CreateBookWrittenCallback(object customData, ref Simulator.ObjectInitParameters initData, Quality quality)
        {
            BookWrittenData data = customData as BookWrittenData;

            if (data == null)
            {
                return(ObjectGuid.InvalidObjectGuid);
            }

            try
            {
                Notify(data.Title);

                BookWritten book = GlobalFunctions.CreateObjectOutOfWorld("BookWritten") as BookWritten;
                if (book == null)
                {
                    return(ObjectGuid.InvalidObjectGuid);
                }

                book.InitBookCommon(data);

                return(book.ObjectId);
            }
            catch (Exception e)
            {
                Common.Exception(data.ID, e);
                return(ObjectGuid.InvalidObjectGuid);
            }
        }
예제 #2
0
        protected override bool PrivateUpdate(ScenarioFrame frame)
        {
            List <BookWritten> allBooks = new List <BookWritten>(Lot.GetObjects <BookWritten>());

            Dictionary <BookWrittenData, int> books = new Dictionary <BookWrittenData, int>();

            foreach (BookWritten book in allBooks)
            {
                BookWrittenData data = book.Data as BookWrittenData;
                if (data == null)
                {
                    IncStat("Bad Removed");

                    book.FadeOut(false, true);
                }
                else
                {
                    if (!books.ContainsKey(data))
                    {
                        books.Add(data, 1);
                    }
                    else
                    {
                        books[data]++;
                    }
                }
            }

            foreach (KeyValuePair <BookWrittenData, int> data in books)
            {
                if (data.Value <= 1)
                {
                    continue;
                }

                List <BookWritten> bookList = new List <BookWritten>();

                foreach (BookWritten book in allBooks)
                {
                    if (book.Data == data.Key)
                    {
                        bookList.Add(book);
                    }
                }

                if (bookList.Count > 1)
                {
                    BookWritten save = RandomUtil.GetRandomObjectFromList(bookList);
                    bookList.Remove(save);

                    foreach (BookWritten book in bookList)
                    {
                        IncStat("Removed");

                        book.FadeOut(false, true);
                    }
                }
            }
            return(false);
        }
예제 #3
0
        public static ObjectGuid CreateWrittenBookCallback(object customData, ref Simulator.ObjectInitParameters initData, Quality quality)
        {
            BookWrittenData bookWrittenData = customData as BookWrittenData;

            if (bookWrittenData == null)
            {
                return(ObjectGuid.InvalidObjectGuid);
            }
            ObjectGuid result;

            try
            {
                BookWritten bookWritten = GlobalFunctions.CreateObjectOutOfWorld("BookWritten") as BookWritten;
                if (bookWritten == null)
                {
                    result = ObjectGuid.InvalidObjectGuid;
                }
                else
                {
                    bookWritten = BookWritten.CreateOutOfWorld(bookWrittenData);
                    result      = bookWritten.ObjectId;
                }
            }
            catch (Exception ex)
            {
                StyledNotification.Show(new StyledNotification.Format("CreateWrittenBookCallback: " + ex.Message, StyledNotification.NotificationStyle.kGameMessagePositive));

                result = ObjectGuid.InvalidObjectGuid;
            }
            return(result);
        }
예제 #4
0
        private static void OnAddBookBuff(Event e)
        {
            Sim actor = e.Actor as Sim;

            if (actor == null)
            {
                return;
            }

            BookWritten target = e.TargetObject as BookWritten;

            if (target == null)
            {
                return;
            }

            BookWrittenData data = target.Data as BookWrittenData;

            if (data == null)
            {
                return;
            }

            if (actor.SimDescription.ChildOrBelow)
            {
                return;
            }

            if (actor.SimDescription.Teen)
            {
                if (!Woohooer.Settings.AllowTeen(true))
                {
                    return;
                }
            }

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

            switch (data.Genre)
            {
            case BookData.BookGenres.Romance:
            //case BookData.BookGenres.Poetry:
            case BookData.BookGenres.Trashy:
                actor.BuffManager.AddElement(BuffNames.InTheMood, sBookOrigin);
                break;
            }
        }
예제 #5
0
        public static void ProcessWrittenBookCallback(object customData, IGameObject book)
        {
            BookWrittenData bookWrittenData = customData as BookWrittenData;

            if (bookWrittenData == null)
            {
                return;
            }
            try
            {
                BookWritten.ProcessCallback(bookWrittenData, book as BookWritten);
            }
            catch (Exception ex)
            {
                StyledNotification.Show(new StyledNotification.Format("ProcessWrittenBookCallback: " + ex.Message, StyledNotification.NotificationStyle.kGameMessagePositive));
            }
        }
예제 #6
0
        public static void ProcessBookWrittenCallback(object customData, IGameObject book)
        {
            BookWrittenData data = customData as BookWrittenData;

            if (data == null)
            {
                return;
            }

            try
            {
                BookWritten.ProcessCallback(data, book as BookWritten);
            }
            catch (Exception e)
            {
                Common.Exception(data.ID, e);
            }
        }