public void AddBook(IBook book) { // TODO: handle book duplicates when we handle copying books if (!_library.Contains(book)) { _library.Add(book); } }
public Reading(IBook book, double desire) { Book = book; Desire = desire; }
public CopyBook(bool copyQuickly, IBook bookToCopy, Ability exposure, double desire) : base(exposure, desire) { CopyQuickly = copyQuickly; Book = bookToCopy; Action = Activity.CopyBook; }
public virtual bool ValidToRead(IBook book) { return book.Author != this && (!this._booksRead.Contains(book) || (GetAbility(book.Topic).Value < book.Level)); }
public virtual void RemoveBookFromCollection(IBook book) { _booksOwned.Remove(book); }
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); } }
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; }
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); }
public virtual void AddBookToCollection(IBook book) { _booksOwned.Add(book); }
public BookTradeOffer(Magus mage, IBook bookOffered, IBook bookDesired) { Mage = mage; BookOffered = bookOffered; BookDesired = bookDesired; }
public BookForTrade(IBook book, double minPrice) { Book = book; MinimumPrice = minPrice; }
public BookVisOffer(Magus mage, Ability art, double quantity, IBook bookDesired) { Mage = mage; VisArt = art; VisQuantity = quantity; BookDesired = bookDesired; }