amar-rpg 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +675 -0
  3. data/README.md +155 -0
  4. data/amar-tui.rb +8195 -0
  5. data/cli_enc_output.rb +87 -0
  6. data/cli_enc_output_new.rb +433 -0
  7. data/cli_enc_output_new_3tier.rb +198 -0
  8. data/cli_enc_output_new_compact.rb +238 -0
  9. data/cli_name_gen.rb +21 -0
  10. data/cli_npc_output.rb +279 -0
  11. data/cli_npc_output_new.rb +700 -0
  12. data/cli_town_output.rb +39 -0
  13. data/cli_weather_output.rb +36 -0
  14. data/includes/class_enc.rb +341 -0
  15. data/includes/class_enc_new.rb +512 -0
  16. data/includes/class_monster_new.rb +551 -0
  17. data/includes/class_npc.rb +1378 -0
  18. data/includes/class_npc_new.rb +1187 -0
  19. data/includes/class_npc_new.rb.backup +706 -0
  20. data/includes/class_npc_new_skills.rb +153 -0
  21. data/includes/class_town.rb +237 -0
  22. data/includes/d6s.rb +40 -0
  23. data/includes/equipment_tables.rb +120 -0
  24. data/includes/functions.rb +67 -0
  25. data/includes/includes.rb +30 -0
  26. data/includes/randomizer.rb +15 -0
  27. data/includes/spell_catalog.rb +441 -0
  28. data/includes/tables/armour.rb +13 -0
  29. data/includes/tables/chartype.rb +4412 -0
  30. data/includes/tables/chartype_new.rb +765 -0
  31. data/includes/tables/chartype_new_full.rb +2713 -0
  32. data/includes/tables/enc_specific.rb +168 -0
  33. data/includes/tables/enc_type.rb +17 -0
  34. data/includes/tables/encounters.rb +99 -0
  35. data/includes/tables/magick.rb +169 -0
  36. data/includes/tables/melee.rb +36 -0
  37. data/includes/tables/missile.rb +17 -0
  38. data/includes/tables/monster_stats_new.rb +264 -0
  39. data/includes/tables/month.rb +18 -0
  40. data/includes/tables/names.rb +21 -0
  41. data/includes/tables/personality.rb +12 -0
  42. data/includes/tables/race_templates.rb +318 -0
  43. data/includes/tables/religions.rb +266 -0
  44. data/includes/tables/spells_new.rb +496 -0
  45. data/includes/tables/tier_system.rb +104 -0
  46. data/includes/tables/town.rb +71 -0
  47. data/includes/tables/weather.rb +41 -0
  48. data/includes/town_relations.rb +127 -0
  49. data/includes/weather.rb +108 -0
  50. data/includes/weather2latex.rb +114 -0
  51. data/lib/rcurses.rb +33 -0
  52. metadata +157 -0
@@ -0,0 +1,264 @@
1
+ # Monster and Animal stats for the new 3-tier system
2
+ # These are simplified templates that create appropriate stat blocks
3
+
4
+ $MonsterStats = {
5
+ # Undead
6
+ "zombie" => {
7
+ "type" => "Undead",
8
+ "base_body" => 3,
9
+ "base_mind" => 1,
10
+ "base_spirit" => 0,
11
+ "weight_range" => [120, 250], # Lions 120-250kg
12
+ "skills" => ["Unarmed combat", "Grappling"],
13
+ "special" => "No fear, No pain, Slow movement",
14
+ "armor" => "Natural (2 AP)",
15
+ "description" => "Shambling undead"
16
+ },
17
+ "skeleton" => {
18
+ "type" => "Undead",
19
+ "base_body" => 2,
20
+ "base_mind" => 1,
21
+ "base_spirit" => 0,
22
+ "weight_range" => [50, 120], # Medium animals
23
+ "skills" => ["Sword", "Shield"],
24
+ "special" => "No fear, No pain, Vulnerable to blunt",
25
+ "armor" => "Natural (1 AP)",
26
+ "description" => "Animated bones"
27
+ },
28
+ "vampire" => {
29
+ "type" => "Undead",
30
+ "base_body" => 5,
31
+ "base_mind" => 4,
32
+ "base_spirit" => 3,
33
+ "weight_range" => [150, 200], # Large humanoids
34
+ "skills" => ["Unarmed combat", "Dodge", "Stealth"],
35
+ "special" => "Regeneration, Blood drain, Sunlight vulnerability",
36
+ "armor" => "Natural (3 AP)",
37
+ "description" => "Powerful undead lord"
38
+ },
39
+ "ghoul" => {
40
+ "type" => "Undead",
41
+ "base_body" => 3,
42
+ "base_mind" => 2,
43
+ "base_spirit" => 0,
44
+ "weight_range" => [100, 150], # Medium-large creatures
45
+ "skills" => ["Claw attacks", "Bite"],
46
+ "special" => "Paralyzing touch, Corpse eater",
47
+ "armor" => "Natural (1 AP)",
48
+ "description" => "Flesh-eating undead"
49
+ },
50
+
51
+ # Monsters
52
+ "troll" => {
53
+ "type" => "Monster",
54
+ "base_body" => 5,
55
+ "base_mind" => 1,
56
+ "base_spirit" => 1,
57
+ "weight_range" => [400, 800], # Trolls
58
+ "skills" => ["Club", "Throwing"],
59
+ "special" => "Regeneration, Fire vulnerability",
60
+ "armor" => "Natural (4 AP)",
61
+ "description" => "Large regenerating humanoid"
62
+ },
63
+ "ogre" => {
64
+ "type" => "Monster",
65
+ "base_body" => 4,
66
+ "base_mind" => 2,
67
+ "base_spirit" => 1,
68
+ "weight_range" => [300, 500], # Ogres
69
+ "skills" => ["Club", "Grappling"],
70
+ "special" => "Strong but slow",
71
+ "armor" => "Natural (2 AP)",
72
+ "description" => "Large brutish humanoid"
73
+ },
74
+ "goblin" => {
75
+ "type" => "Monster",
76
+ "base_body" => 2,
77
+ "base_mind" => 2,
78
+ "base_spirit" => 1,
79
+ "weight_range" => [15, 30], # Wild dogs 15-30kg
80
+ "skills" => ["Dagger", "Sling", "Stealth"],
81
+ "special" => "Pack tactics, Cowardly",
82
+ "armor" => "Leather (1 AP)",
83
+ "description" => "Small cunning humanoid"
84
+ },
85
+ "arax" => {
86
+ "type" => "Monster",
87
+ "base_body" => 3,
88
+ "base_mind" => 2,
89
+ "base_spirit" => 1,
90
+ "weight_range" => [60, 90], # Arax are human-sized
91
+ "skills" => ["Sword", "Spear", "Shield"],
92
+ "special" => "Disciplined warriors",
93
+ "armor" => "Chain (3 AP)",
94
+ "description" => "Grey-skinned warrior race"
95
+ },
96
+ "giant spider" => {
97
+ "type" => "Monster",
98
+ "base_body" => 3,
99
+ "base_mind" => 1,
100
+ "base_spirit" => 0,
101
+ "weight_range" => [40, 200], # Varied undead
102
+ "skills" => ["Bite", "Web"],
103
+ "special" => "Poison, Web entangle",
104
+ "armor" => "Natural (2 AP)",
105
+ "description" => "Large arachnid predator"
106
+ },
107
+ "wyvern" => {
108
+ "type" => "Monster",
109
+ "base_body" => 4,
110
+ "base_mind" => 2,
111
+ "base_spirit" => 1,
112
+ "weight_range" => [300, 600], # Large undead
113
+ "skills" => ["Bite", "Tail sting", "Flight"],
114
+ "special" => "Poison tail, Flight",
115
+ "armor" => "Natural (3 AP)",
116
+ "description" => "Lesser dragon"
117
+ },
118
+ "dragon" => {
119
+ "type" => "Monster",
120
+ "base_body" => 6,
121
+ "base_mind" => 5,
122
+ "base_spirit" => 4,
123
+ "weight_range" => [2000, 5000], # Dragons
124
+ "skills" => ["Bite", "Claw", "Breath weapon", "Flight"],
125
+ "special" => "Breath weapon, Flight, Magic resistance",
126
+ "armor" => "Natural (6 AP)",
127
+ "description" => "Ancient magical beast"
128
+ },
129
+
130
+ # Animals - Predators
131
+ "wolf" => {
132
+ "type" => "Animal",
133
+ "base_body" => 3,
134
+ "base_mind" => 1,
135
+ "base_spirit" => 0,
136
+ "weight_range" => [25, 50], # Adult wolves 25-50kg
137
+ "skills" => ["Bite", "Tracking", "Pack tactics"],
138
+ "special" => "Pack hunter",
139
+ "armor" => "Natural (0 AP)",
140
+ "description" => "Pack hunting canine"
141
+ },
142
+ "bear" => {
143
+ "type" => "Animal",
144
+ "base_body" => 4,
145
+ "base_mind" => 1,
146
+ "base_spirit" => 0,
147
+ "weight_range" => [180, 350], # Brown bears 180-350kg
148
+ "skills" => ["Claw", "Bite", "Grappling"],
149
+ "special" => "Powerful strength",
150
+ "armor" => "Natural (1 AP)",
151
+ "description" => "Large powerful omnivore"
152
+ },
153
+ "lion" => {
154
+ "type" => "Animal",
155
+ "base_body" => 3,
156
+ "base_mind" => 1,
157
+ "base_spirit" => 0,
158
+ "weight_range" => [120, 250], # Lions 120-250kg
159
+ "skills" => ["Bite", "Claw", "Pounce"],
160
+ "special" => "Pounce attack",
161
+ "armor" => "Natural (0 AP)",
162
+ "description" => "Large feline predator"
163
+ },
164
+ "wild dog" => {
165
+ "type" => "Animal",
166
+ "base_body" => 2,
167
+ "base_mind" => 1,
168
+ "base_spirit" => 0,
169
+ "weight_range" => [15, 30], # Wild dogs 15-30kg
170
+ "skills" => ["Bite", "Pack tactics"],
171
+ "special" => "Pack hunter",
172
+ "armor" => "Natural (0 AP)",
173
+ "description" => "Feral canine"
174
+ },
175
+
176
+ # Animals - Prey
177
+ "deer" => {
178
+ "type" => "Animal",
179
+ "base_body" => 2,
180
+ "base_mind" => 1,
181
+ "base_spirit" => 0,
182
+ "weight_range" => [50, 120], # Medium animals
183
+ "skills" => ["Dodge", "Running"],
184
+ "special" => "Fast runner",
185
+ "armor" => "Natural (0 AP)",
186
+ "description" => "Swift herbivore"
187
+ },
188
+ "boar" => {
189
+ "type" => "Animal",
190
+ "base_body" => 3,
191
+ "base_mind" => 1,
192
+ "base_spirit" => 0,
193
+ "weight_range" => [50, 120], # Medium animals
194
+ "skills" => ["Charge", "Tusk attack"],
195
+ "special" => "Aggressive when threatened",
196
+ "armor" => "Natural (1 AP)",
197
+ "description" => "Wild swine"
198
+ },
199
+ "horse" => {
200
+ "type" => "Animal",
201
+ "base_body" => 3,
202
+ "base_mind" => 1,
203
+ "base_spirit" => 0,
204
+ "weight_range" => [180, 350], # Brown bears 180-350kg
205
+ "skills" => ["Kick", "Running"],
206
+ "special" => "Fast runner, Can be tamed",
207
+ "armor" => "Natural (0 AP)",
208
+ "description" => "Large herbivore"
209
+ },
210
+
211
+ # Small animals
212
+ "rat" => {
213
+ "type" => "Animal",
214
+ "base_body" => 1,
215
+ "base_mind" => 1,
216
+ "base_spirit" => 0,
217
+ "weight_range" => [0.5, 2], # Tiny creatures
218
+ "skills" => ["Bite", "Stealth"],
219
+ "special" => "Disease carrier",
220
+ "armor" => "Natural (0 AP)",
221
+ "description" => "Small rodent"
222
+ },
223
+ "snake" => {
224
+ "type" => "Animal",
225
+ "base_body" => 1,
226
+ "base_mind" => 1,
227
+ "base_spirit" => 0,
228
+ "weight_range" => [2, 10], # Small creatures
229
+ "skills" => ["Bite", "Stealth"],
230
+ "special" => "Some poisonous",
231
+ "armor" => "Natural (0 AP)",
232
+ "description" => "Legless reptile"
233
+ },
234
+
235
+ # Default for unknown monsters
236
+ "default" => {
237
+ "type" => "Unknown",
238
+ "base_body" => 2,
239
+ "base_mind" => 2,
240
+ "base_spirit" => 1,
241
+ "weight_range" => [120, 250], # Lions 120-250kg
242
+ "skills" => ["Unarmed"],
243
+ "special" => "Unknown abilities",
244
+ "armor" => "Natural (1 AP)",
245
+ "description" => "Unknown creature"
246
+ }
247
+ }
248
+
249
+ # Function to get monster stats
250
+ def get_monster_stats(monster_name)
251
+ # Clean up the monster name
252
+ clean_name = monster_name.downcase.gsub(/monster:|animal:|small |large /, "").strip
253
+
254
+ # Try to find exact match
255
+ return $MonsterStats[clean_name] if $MonsterStats[clean_name]
256
+
257
+ # Try partial matches
258
+ $MonsterStats.each do |key, stats|
259
+ return stats if clean_name.include?(key) || key.include?(clean_name)
260
+ end
261
+
262
+ # Return default if no match
263
+ $MonsterStats["default"]
264
+ end
@@ -0,0 +1,18 @@
1
+ # The table of the Amar months
2
+
3
+ $Month = Array.new
4
+
5
+ $Month[0] = "Unspecified"
6
+ $Month[1] = "Cal Amae"
7
+ $Month[2] = "Elesi"
8
+ $Month[3] = "Anashina"
9
+ $Month[4] = "Gwendyll"
10
+ $Month[5] = "MacGillan"
11
+ $Month[6] = "Juba"
12
+ $Month[7] = "Taroc"
13
+ $Month[8] = "Man Peggon"
14
+ $Month[9] = "Maleko"
15
+ $Month[10] = "Fal Munir"
16
+ $Month[11] = "Moltan"
17
+ $Month[12] = "Kraagh"
18
+ $Month[13] = "Mestronorpha"
@@ -0,0 +1,21 @@
1
+ # The names table
2
+
3
+ $Names = Array.new
4
+
5
+ # Index Indicator File: first name File: last name Sex Matches
6
+ $Names[0] = [ "Human male", "human_male_first.txt", "human_last.txt", "M", "human, half-elf, half-giant" ]
7
+ $Names[1] = [ "Human female", "human_female_first.txt", "human_last.txt", "F", "human, half-elf, half-giant" ]
8
+ $Names[2] = [ "Dwarven male", "dwarven_male.txt", "dwarven_male.txt", "M", "dwarf, dwarven" ]
9
+ $Names[3] = [ "Dwarven female", "dwarven_female.txt", "dwarven_female.txt", "F", "dwarf, dwarven" ]
10
+ $Names[4] = [ "Elven male", "elven_male.txt", "elven_male.txt", "M", "elf, elven, faerie, faery, pixie, brownie, goblin" ]
11
+ $Names[5] = [ "Elven female", "elven_female.txt", "elven_female.txt", "F", "elf, elven, faerie, faery, pixie, brownie, goblin" ]
12
+ $Names[6] = [ "Lizardfolk", "lizardfolk.txt", "", "M, F", "lizard, lizardman, lizardfolk" ]
13
+ $Names[7] = [ "Troll", "troll.txt", "", "M, F", "troll, lesser troll, trollkin, ogre" ]
14
+ $Names[8] = [ "Araxi", "araxi.txt", "", "M, F", "araxi, arax, anaraxi, anarax" ]
15
+ $Names[9] = [ "Generic male", "fantasy_male.txt", "", "M", "generic, fantasy, monster, other" ]
16
+ $Names[10] = [ "Generic female", "fantasy_female.txt", "", "F", "generic, fantasy, monster, other" ]
17
+ $Names[11] = [ "Castle", "castle_names.txt", "", "", "castle" ]
18
+ $Names[12] = [ "Village", "town_names.txt", "", "", "village" ]
19
+ $Names[13] = [ "Town", "town_names.txt", "", "", "town" ]
20
+ $Names[14] = [ "City", "city_names.txt", "", "", "city, cities" ]
21
+ $Names[15] = [ "Weapon", "weapon_names.txt", "", "", "weapon, sword" ]
@@ -0,0 +1,12 @@
1
+ # Personality randomizer
2
+
3
+ $Personality = {
4
+ "Generous, empathetic" => 7,
5
+ "Friendly, service minded" => 10,
6
+ "Conservative, structured" => 10,
7
+ "Indifferent, unstructured" => 7,
8
+ "Greedy, self-centered" => 7,
9
+ "Antagonistic, combattive" => 4,
10
+ "Cautious, fearful" => 3,
11
+ "Sad, gloomy" => 2
12
+ }
@@ -0,0 +1,318 @@
1
+ # Race-based character templates for encounters in Amar
2
+ # Based on the demographics: Elves, Dwarves, Goblins, Lizardmen, Centaurs, Ogres, Trollkins, Trolls, Araxi, Faeries
3
+
4
+ $RaceTemplates = {
5
+ "Elf: Warrior" => {
6
+ "characteristics" => {
7
+ "BODY" => 2, # Elves are agile but not as strong
8
+ "MIND" => 3, # More intelligent than average
9
+ "SPIRIT" => 1 # Some magical affinity
10
+ },
11
+ "attributes" => {
12
+ "BODY/Strength" => 2,
13
+ "BODY/Endurance" => 2,
14
+ "BODY/Athletics" => 4, # Very agile
15
+ "BODY/Melee Combat" => 3,
16
+ "BODY/Missile Combat" => 4, # Excellent archers
17
+ "MIND/Intelligence" => 3,
18
+ "MIND/Awareness" => 4, # Keen senses
19
+ "MIND/Willpower" => 2
20
+ },
21
+ "skills" => {
22
+ "BODY/Missile Combat/Bow" => 3,
23
+ "BODY/Melee Combat/Sword" => 2,
24
+ "BODY/Athletics/Dodge" => 2,
25
+ "MIND/Awareness/Alertness" => 2
26
+ }
27
+ },
28
+
29
+ "Elf: Ranger" => {
30
+ "characteristics" => {
31
+ "BODY" => 2,
32
+ "MIND" => 3,
33
+ "SPIRIT" => 1
34
+ },
35
+ "attributes" => {
36
+ "BODY/Athletics" => 4,
37
+ "BODY/Missile Combat" => 4,
38
+ "MIND/Nature Knowledge" => 3,
39
+ "MIND/Practical Knowledge" => 3,
40
+ "MIND/Awareness" => 4
41
+ },
42
+ "skills" => {
43
+ "BODY/Missile Combat/Bow" => 3,
44
+ "BODY/Athletics/Move Quietly" => 3,
45
+ "MIND/Awareness/Tracking" => 3,
46
+ "MIND/Practical Knowledge/Survival Lore" => 2
47
+ }
48
+ },
49
+
50
+ "Elf: Mage" => {
51
+ "characteristics" => {
52
+ "BODY" => 1,
53
+ "MIND" => 3,
54
+ "SPIRIT" => 3 # High magical affinity
55
+ },
56
+ "attributes" => {
57
+ "BODY/Athletics" => 3,
58
+ "MIND/Intelligence" => 4,
59
+ "MIND/Nature Knowledge" => 4,
60
+ "SPIRIT/Casting" => 3,
61
+ "SPIRIT/Attunement" => 3
62
+ },
63
+ "skills" => {
64
+ "SPIRIT/Attunement/Life" => 2,
65
+ "SPIRIT/Attunement/Mind" => 2,
66
+ "MIND/Nature Knowledge/Magick Rituals" => 2
67
+ }
68
+ },
69
+
70
+ "Dwarf: Warrior" => {
71
+ "characteristics" => {
72
+ "BODY" => 3, # Strong and sturdy
73
+ "MIND" => 2,
74
+ "SPIRIT" => 0 # No magic
75
+ },
76
+ "attributes" => {
77
+ "BODY/Strength" => 4,
78
+ "BODY/Endurance" => 5, # Very tough
79
+ "BODY/Melee Combat" => 4,
80
+ "BODY/Missile Combat" => 2,
81
+ "MIND/Practical Knowledge" => 3,
82
+ "MIND/Willpower" => 4 # Stubborn
83
+ },
84
+ "skills" => {
85
+ "BODY/Melee Combat/Axe" => 3,
86
+ "BODY/Melee Combat/Shield" => 2,
87
+ "BODY/Endurance/Fortitude" => 2
88
+ }
89
+ },
90
+
91
+ "Dwarf: Smith" => {
92
+ "characteristics" => {
93
+ "BODY" => 3,
94
+ "MIND" => 2,
95
+ "SPIRIT" => 0
96
+ },
97
+ "attributes" => {
98
+ "BODY/Strength" => 5,
99
+ "BODY/Endurance" => 4,
100
+ "BODY/Sleight" => 3, # Craftsmanship
101
+ "MIND/Intelligence" => 2,
102
+ "MIND/Practical Knowledge" => 4
103
+ },
104
+ "skills" => {
105
+ "BODY/Melee Combat/Hammer" => 2,
106
+ "BODY/Strength/Weight lifting" => 2,
107
+ "MIND/Practical Knowledge/Smithing" => 4
108
+ }
109
+ },
110
+
111
+ "Dwarf: Guard" => {
112
+ "characteristics" => {
113
+ "BODY" => 3,
114
+ "MIND" => 2,
115
+ "SPIRIT" => 0
116
+ },
117
+ "attributes" => {
118
+ "BODY/Strength" => 4,
119
+ "BODY/Endurance" => 5,
120
+ "BODY/Melee Combat" => 3,
121
+ "MIND/Awareness" => 3,
122
+ "MIND/Willpower" => 4
123
+ },
124
+ "skills" => {
125
+ "BODY/Melee Combat/Spear" => 2,
126
+ "BODY/Melee Combat/Shield" => 3,
127
+ "MIND/Awareness/Alertness" => 3
128
+ }
129
+ },
130
+
131
+ "Araxi: Warrior" => {
132
+ "characteristics" => {
133
+ "BODY" => 4, # Savage and strong
134
+ "MIND" => 1, # Not very intelligent
135
+ "SPIRIT" => 0 # No magic
136
+ },
137
+ "attributes" => {
138
+ "BODY/Strength" => 4,
139
+ "BODY/Endurance" => 3,
140
+ "BODY/Athletics" => 3,
141
+ "BODY/Melee Combat" => 4,
142
+ "MIND/Awareness" => 3, # Good hunters
143
+ "MIND/Willpower" => 2
144
+ },
145
+ "skills" => {
146
+ "BODY/Melee Combat/Unarmed" => 3, # Claws/teeth
147
+ "BODY/Athletics/Hide" => 2,
148
+ "MIND/Awareness/Tracking" => 2
149
+ }
150
+ },
151
+
152
+ "Troll: Warrior" => {
153
+ "characteristics" => {
154
+ "BODY" => 5, # Very large and strong
155
+ "MIND" => 1,
156
+ "SPIRIT" => 0
157
+ },
158
+ "attributes" => {
159
+ "BODY/Strength" => 6,
160
+ "BODY/Endurance" => 5,
161
+ "BODY/Melee Combat" => 3,
162
+ "MIND/Willpower" => 1
163
+ },
164
+ "skills" => {
165
+ "BODY/Melee Combat/Club" => 3,
166
+ "BODY/Strength/Carrying" => 3
167
+ }
168
+ },
169
+
170
+ "Ogre: Warrior" => {
171
+ "characteristics" => {
172
+ "BODY" => 4,
173
+ "MIND" => 1,
174
+ "SPIRIT" => 0
175
+ },
176
+ "attributes" => {
177
+ "BODY/Strength" => 5,
178
+ "BODY/Endurance" => 4,
179
+ "BODY/Melee Combat" => 3,
180
+ "MIND/Awareness" => 2
181
+ },
182
+ "skills" => {
183
+ "BODY/Melee Combat/Club" => 2,
184
+ "BODY/Melee Combat/Unarmed" => 2
185
+ }
186
+ },
187
+
188
+ "Lizard Man: Warrior" => {
189
+ "characteristics" => {
190
+ "BODY" => 3,
191
+ "MIND" => 2,
192
+ "SPIRIT" => 0
193
+ },
194
+ "attributes" => {
195
+ "BODY/Strength" => 3,
196
+ "BODY/Endurance" => 3,
197
+ "BODY/Athletics" => 3, # Good swimmers
198
+ "BODY/Melee Combat" => 3,
199
+ "MIND/Awareness" => 3
200
+ },
201
+ "skills" => {
202
+ "BODY/Melee Combat/Spear" => 2,
203
+ "BODY/Athletics/Swim" => 3,
204
+ "BODY/Athletics/Hide" => 2
205
+ }
206
+ },
207
+
208
+ "Goblin: Warrior" => {
209
+ "characteristics" => {
210
+ "BODY" => 2,
211
+ "MIND" => 2,
212
+ "SPIRIT" => 0
213
+ },
214
+ "attributes" => {
215
+ "BODY/Strength" => 2,
216
+ "BODY/Endurance" => 2,
217
+ "BODY/Athletics" => 3,
218
+ "BODY/Melee Combat" => 2,
219
+ "BODY/Missile Combat" => 2,
220
+ "MIND/Awareness" => 3
221
+ },
222
+ "skills" => {
223
+ "BODY/Melee Combat/Sword" => 1,
224
+ "BODY/Athletics/Hide" => 2,
225
+ "BODY/Athletics/Move Quietly" => 2
226
+ }
227
+ },
228
+
229
+ "Goblin: Thief" => {
230
+ "characteristics" => {
231
+ "BODY" => 2,
232
+ "MIND" => 2,
233
+ "SPIRIT" => 0
234
+ },
235
+ "attributes" => {
236
+ "BODY/Athletics" => 4,
237
+ "BODY/Sleight" => 3,
238
+ "MIND/Awareness" => 3,
239
+ "MIND/Practical Knowledge" => 2
240
+ },
241
+ "skills" => {
242
+ "BODY/Athletics/Hide" => 3,
243
+ "BODY/Athletics/Move Quietly" => 3,
244
+ "BODY/Sleight/Pick pockets" => 2,
245
+ "MIND/Awareness/Alertness" => 2
246
+ }
247
+ },
248
+
249
+ "Centaur: Warrior" => {
250
+ "characteristics" => {
251
+ "BODY" => 4, # Horse body = strong
252
+ "MIND" => 2,
253
+ "SPIRIT" => 0
254
+ },
255
+ "attributes" => {
256
+ "BODY/Strength" => 4,
257
+ "BODY/Endurance" => 4,
258
+ "BODY/Athletics" => 3, # Fast runners
259
+ "BODY/Melee Combat" => 3,
260
+ "BODY/Missile Combat" => 3,
261
+ "MIND/Nature Knowledge" => 2
262
+ },
263
+ "skills" => {
264
+ "BODY/Melee Combat/Spear" => 2,
265
+ "BODY/Missile Combat/Bow" => 2,
266
+ "BODY/Endurance/Running" => 3
267
+ }
268
+ },
269
+
270
+ "Centaur: Ranger" => {
271
+ "characteristics" => {
272
+ "BODY" => 3,
273
+ "MIND" => 2,
274
+ "SPIRIT" => 1
275
+ },
276
+ "attributes" => {
277
+ "BODY/Athletics" => 4,
278
+ "BODY/Missile Combat" => 4,
279
+ "MIND/Nature Knowledge" => 3,
280
+ "MIND/Awareness" => 3
281
+ },
282
+ "skills" => {
283
+ "BODY/Missile Combat/Bow" => 3,
284
+ "BODY/Endurance/Running" => 3,
285
+ "MIND/Awareness/Tracking" => 2,
286
+ "MIND/Nature Knowledge/Plant Lore" => 2
287
+ }
288
+ },
289
+
290
+ "Faerie: Mage" => {
291
+ "characteristics" => {
292
+ "BODY" => 1, # Tiny and weak
293
+ "MIND" => 3,
294
+ "SPIRIT" => 4 # Highly magical
295
+ },
296
+ "attributes" => {
297
+ "BODY/Athletics" => 5, # Can fly
298
+ "MIND/Intelligence" => 3,
299
+ "MIND/Nature Knowledge" => 4,
300
+ "SPIRIT/Casting" => 4,
301
+ "SPIRIT/Attunement" => 4,
302
+ "SPIRIT/Innate" => 3
303
+ },
304
+ "skills" => {
305
+ "SPIRIT/Innate/Flying" => 5,
306
+ "SPIRIT/Attunement/Life" => 3,
307
+ "BODY/Athletics/Dodge" => 3,
308
+ "MIND/Nature Knowledge/Plant Lore" => 3
309
+ }
310
+ }
311
+ }
312
+
313
+ # Merge race templates into the main character type table
314
+ if defined?($ChartypeNew)
315
+ $ChartypeNew.merge!($RaceTemplates)
316
+ else
317
+ $ChartypeNew = $RaceTemplates
318
+ end