Пример #1
0
 public void AddBook(IBook book)
 {
     // TODO: handle book duplicates when we handle copying books
     if (!_library.Contains(book))
     {
         _library.Add(book);
     }
 }
Пример #2
0
 public Reading(IBook book, double desire)
 {
     Book = book;
     Desire = desire;
 }
Пример #3
0
 public CopyBook(bool copyQuickly, IBook bookToCopy, Ability exposure, double desire)
     : base(exposure, desire)
 {
     CopyQuickly = copyQuickly;
     Book = bookToCopy;
     Action = Activity.CopyBook;
 }
Пример #4
0
 public virtual bool ValidToRead(IBook book)
 {
     return book.Author != this && (!this._booksRead.Contains(book) || (GetAbility(book.Topic).Value < book.Level));
 }
Пример #5
0
 public virtual void RemoveBookFromCollection(IBook book)
 {
     _booksOwned.Remove(book);
 }
Пример #6
0
 public virtual void ReadBook(IBook book)
 {
     Log.Add("Reading " + book.Title);
     CharacterAbilityBase ability = GetAbility(book.Topic);
     bool previouslyRead = _booksRead.Contains(book);
     if (!previouslyRead || (book.Level != 1000 && ability.Value < book.Level))
     {
         ability.AddExperience(book.Quality, book.Level);
     }
     if (!previouslyRead)
     {
         _booksRead.Add(book);
     }
 }
Пример #7
0
        public double RateLifetimeBookValue(IBook book, CharacterAbilityBase charAbility = null)
        {
            if (book.Level == 1000)
            {
                return RateSeasonalExperienceGain(book.Topic, book.Quality);
            }
            if (charAbility == null)
            {
                charAbility = GetAbility(book.Topic);
            }

            if (charAbility.Value > book.Level)
            {
                return 0;
            }

            double expValue = charAbility.GetExperienceUntilLevel(book.Level);
            double bookSeasons = expValue / book.Quality;
            return RateSeasonalExperienceGain(book.Topic, book.Quality) * bookSeasons;
        }
Пример #8
0
        public virtual double GetBookLevelGain(IBook book)
        {
            if (book == null)
            {
                return 0;
            }

            // determine difference in ability using the new book compared to the old book
            return GetAbility(book.Topic).GetValueGain(book.Quality, book.Level);
        }
Пример #9
0
 public virtual void AddBookToCollection(IBook book)
 {
     _booksOwned.Add(book);
 }
Пример #10
0
 public BookTradeOffer(Magus mage, IBook bookOffered, IBook bookDesired)
 {
     Mage = mage;
     BookOffered = bookOffered;
     BookDesired = bookDesired;
 }
Пример #11
0
 public BookForTrade(IBook book, double minPrice)
 {
     Book = book;
     MinimumPrice = minPrice;
 }
Пример #12
0
 public BookVisOffer(Magus mage, Ability art, double quantity, IBook bookDesired)
 {
     Mage = mage;
     VisArt = art;
     VisQuantity = quantity;
     BookDesired = bookDesired;
 }