Difference between revisions of "Reading Bonus"

From RimWorld Wiki
Jump to navigation Jump to search
(Reading Bonus Stat)
 
m
Line 6: Line 6:
 
| default base value = 1
 
| default base value = 1
 
| min value = 1
 
| min value = 1
 +
| effective maximum = 1.2
 
| to string style = PercentZero
 
| to string style = PercentZero
 
| category = Building
 
| category = Building
Line 22: Line 23:
 
|}
 
|}
  
Although the description might imply that higher quality books give higher reading bonuses, there is no evidence within the code that supports that case. However, here are several factors that do depend on book quality when reading a book:
+
[[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:
 +
{| {{STDT}}
 +
! 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.
 +
{{Graph:Chart|width=300|height=150|xAxisTitle=Number of Books|yAxisTitle=Reading Bonus|type=line|x=0, 1, 5, 6, 10, 11, 15, 16, 155, 160|y=1, 1.008, 1.04, 1.044, 1.06, 1.062, 1.07, 1.071, 1.2, 1.2|xGrid=|yGrid=}}
 +
 
 +
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:
  
 
{{Icon Small|Schematic|24}} [[Schematic]] [[research]] experience gain:
 
{{Icon Small|Schematic|24}} [[Schematic]] [[research]] experience gain:
Line 127: Line 149:
 
| 2.5
 
| 2.5
 
|}
 
|}
 +
 +
All of these factors are further multiplied by the [[Reading Bonus]] of the room.
  
 
== Calculating Reading Bonus ==
 
== Calculating Reading Bonus ==
Line 194: Line 218:
 
| 1 || 14 || 0.085 (0.08 + 0.005)
 
| 1 || 14 || 0.085 (0.08 + 0.005)
 
|}
 
|}
 
From this table, we can see that:
 
* The first five books (1-5) add 0.04 (0.008 each)
 
* The second set (6-10) of five adds 0.02 (0.004 each)
 
* The third set (11-15) adds 0.01 (0.002 each)
 
* And the fourth set (16-20) and beyond (16+) adds 0.005 (0.001 each)
 
  
 
With our current example, this would be repeated 14 more times, to where num = 0.155
 
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.
 
The ''Room Reading Bonus'' would therefore be 1.155, or 115.5%, for 100 books.
 
''Room Reading Bonus'' has a maximum offset of 0.2, for a max of 1.2, or 120%.
 
  
 
Here is a table with the total number of books (in bookcases) in a room, and the resulting ''room reading bonus'':
 
Here is a table with the total number of books (in bookcases) in a room, and the resulting ''room reading bonus'':
 
{| {{STDT}}
 
{| {{STDT}}
! Books !! Reading<br />Bonus
+
! Books !! Room<br />Reading<br />Bonus
 
|-
 
|-
 
! 0
 
! 0

Revision as of 02:02, 24 September 2024

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