1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54module Duets.Data.Items.Book
open Duets.Common
open Duets.Data
open Duets.Entities
type DataBook = { Title: string; Author: string }
let private specialBooks =
[
(* Music Theory volumes. *)
{ Title = "Music Theory Vol. I"
Author = "Duets Academy"
BookEffects = [ SkillGain(SkillId.Composition, 5) ]
ReadProgress = 0<percent> },
30m<dd>
{ Title = "Music Theory Vol. II"
Author = "Duets Academy"
BookEffects = [ SkillGain(SkillId.Composition, 10) ]
ReadProgress = 0<percent> },
60m<dd>
(* Music production volumes. *)
{ Title = "Music Production Vol. I"
Author = "Duets Academy"
BookEffects = [ SkillGain(SkillId.MusicProduction, 3) ]
ReadProgress = 0<percent> },
30m<dd>
{ Title = "Music Production Vol. II"
Author = "Duets Academy"
BookEffects = [ SkillGain(SkillId.MusicProduction, 8) ]
ReadProgress = 0<percent> },
30m<dd> ]
/// Returns all literary books and special books in the game.
let all: PurchasableItem list =
let dataBooks: DataBook list = ResourceLoader.load Files.Books
dataBooks
|> List.map (fun dataBook ->
{ Title = dataBook.Title
Author = dataBook.Author
BookEffects = []
ReadProgress = 0<percent> },
15m<dd>)
|> (@) specialBooks
|> List.map (fun (book, price) ->
{ Brand = book.Author
Name = book.Title
Properties = [ Book(book) |> Readable; PlaceableInStorage(Shelf) ] },
price)