Reading Bonus

From RimWorld Wiki
Revision as of 02:45, 24 September 2024 by JuliaCat (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Reading Bonus is a stat: Provides a bonus to research speed, XP gained from reading, and recreation gained from reading in the same room as the bookcase. This is increased by placing more and higher quality books in the bookcase. Its minimum allowed value is 100%. Its default value is 100%.

This is only used to communicate information in the special stats page for bookcases.

It depends entirely on the following room stat:

Room Stat Custom Label
Reading bonus Reading bonus

Reading Bonus is determined by the number of books in bookcases in a room. Books on the floor do not count towards this stat.

There are diminishing returns on reading bonus for the number of books:

Books Reading Bonus Offset Per Book
1-5 +0.8%
6-10 +0.4%
11-15 +0.2%
16+ +0.1%

Books 1-5 give a total of +4%, books 6-10 a total +2, 11-15 a total +1%, and 16+ a mere +0.1% per book. To reach the maximum bonus of 120%, it would require a total of 155 books.

Although the stat description might imply that higher quality books give higher reading bonuses, there is no evidence within the code that supports that case. However, there are several factors that do depend on book quality when reading a book:

Schematic Schematic research experience gain:

Quality Research
Exp/Tick
60 ticks (1 sec) 2,500 ticks (1 in-game hour) 60,000 ticks (1 in-game day)
Awful 0.008 0.48 20 480
Poor 0.012 0.72 30 720
Normal 0.016 0.96 40 960
Good 0.02 1.2 50 1200
Excellent 0.024 1.44 60 1440
Masterwork 0.028 1.68 70 1680
Legendary 0.032 1.92 80 1920

Tome Tome Content added by the Anomaly DLC Knowledge Content added by the Anomaly DLC experience gain:

Quality Knowledge
Exp/Tick
60 ticks (1 sec) 2,500 ticks (1 in-game hour) 60,000 ticks (1 in-game day)
Awful 0.00003 0.0018 0.075 1.8
Poor 0.00006 0.0036 0.15 3.6
Normal 0.00009 0.0054 0.225 5.4
Good 0.00012 0.0072 0.3 7.2
Excellent 0.00015 0.009 0.375 9
Masterwork 0.00018 0.0108 0.45 10.8
Legendary 0.00021 0.0126 0.525 12.6

Textbook Textbook skill experience gain:

Quality Skill
Exp/Tick
60 ticks (1 sec) 2,500 ticks (1 in-game hour) 60,000 ticks (1 in-game day)
Awful 0.05 3 125 3000
Poor 0.075 4.5 187.5 4500
Normal 0.1 6 250 6000
Good 0.125 7.5 312.5 7500
Excellent 0.15 9 375 9000
Masterwork 0.175 10.5 437.5 10500
Legendary 0.2 12 500 12000

Novel Novel recreation factor:

Quality Joy
Factor
Awful 1.2
Poor 1.4
Normal 1.6
Good 1.8
Excellent 2
Masterwork 2.25
Legendary 2.5

All of these factors are further multiplied by the Reading Bonus of the room.

Calculating Reading Bonus

For reference, bookcases hold 5 books per cell, where Bookcases have 2 cells and Small bookcases have 1. Cells Filled Percentage refers to the ratio of books held within a bookcase cell to the maximum, i.e. 5, so each book adds 20%.

Since Reading Bonus depends on Room Reading Bonus, they are essentially the same thing.

Room Reading Bonus is calculated with:

num = 0

num2 = 0

for each bookcase in the room: add Cells Filled Percentage for each cell to num2

num2 = sum of all bookcase cells filled percentages.

num4 = 0

while num2 > 0 and num < 0.2:

  1. num5 = num2, or 1 if num2 is >= 1
  2. subtract num5 from num2
  3. add (num5 * CellFilledFactor[index = the smaller of num4 and 3]) to num
    • add 1 to num4
Index Factor
0 0.04
1 0.02
2 0.01
3 0.005

Room Reading Bonus = 1 + the smaller of num and 0.2

So if you have 20 cells worth of full bookcases (100 total books):

num2 = 20

Iteration num5 num2 num
1 1 19 0.04 (0 + 0.04)
2 1 18 0.06 (0.04 + 0.02)
3 1 17 0.07 (0.06 + 0.01)
4 1 16 0.075 (0.07 + 0.005)
5 1 15 0.08 (0.075 + 0.005)
6 1 14 0.085 (0.08 + 0.005)

With our current example, this would be repeated 14 more times, to where num = 0.155

The Room Reading Bonus would therefore be 1.155, or 115.5%, for 100 books.

Here is a table with the total number of books (in bookcases) in a room, and the resulting room reading bonus:

Books Room
Reading
Bonus
0 1
1 1.008
2 1.016
3 1.024
4 1.032
5 1.04
6 1.044
7 1.048
8 1.052
9 1.056
10 1.06
11 1.062
12 1.064
13 1.066
14 1.068
15 1.07
16 1.071
17 1.072
18 1.073
19 1.074
20 1.075
25 1.08
100 1.155
155 1.2

Stat Def Data

Def Name
Label
Label For Full Stat List
Offset Label
Attributes
Description Category Parameters Complex
Parameters
Display
Priority
In
Category
  • Def Name:
    RoomReadingBonus
  • Label:
    reading bonus
Provides a bonus to research speed, XP gained from reading, and recreation gained from reading in the same room as the bookcase. This is increased by placing more and higher quality books in the bookcase.
  • Display Order:
    50
  • Def Name:
    Building
  • Label:
    Building
  • Display All By Default:
    false
  • Worker Class: StatWorker_RoomReadingBonus
  • Default Base Value: 100%
  • Min Value: 100%
  • To String Style: PercentZero
  • Parts:
    • StatPart_RoomStat:
4200

Version history