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,266 @@
1
+ # Religious Affiliations Table for Amar RPG
2
+ # Based on d6gaming.org/index.php/Mythology
3
+
4
+ $ReligionTable = {
5
+ # Primary Gods
6
+ "Alesia" => {
7
+ "domain" => "Earth",
8
+ "portfolio" => "Stability, Protection, Agriculture",
9
+ "worshippers" => ["Farmer", "Guard", "Protector"],
10
+ "alignment" => "Good"
11
+ },
12
+ "Ikalio" => {
13
+ "domain" => "Fire",
14
+ "portfolio" => "Creativity, Passion, Thought",
15
+ "worshippers" => ["Wizard (fire)", "Artist", "Creator", "Mage"],
16
+ "alignment" => "Neutral"
17
+ },
18
+ "Shalissa" => {
19
+ "domain" => "Wind/Air",
20
+ "portfolio" => "Freedom, Speed, Adventure",
21
+ "worshippers" => ["Wizard (air)", "Scout", "Adventurer"],
22
+ "alignment" => "Neutral"
23
+ },
24
+ "Walmaer" => {
25
+ "domain" => "Water",
26
+ "portfolio" => "Sea, Rivers, Maritime",
27
+ "worshippers" => ["Wizard (water)", "Sailor", "Fisher"],
28
+ "alignment" => "Neutral"
29
+ },
30
+ "Ielina" => {
31
+ "domain" => "Moon/Time",
32
+ "portfolio" => "Perception, Wisdom, Time",
33
+ "worshippers" => ["Seer", "Mystic", "Monk"],
34
+ "alignment" => "Neutral"
35
+ },
36
+
37
+ # Lesser Gods
38
+ "Cal Amae" => {
39
+ "domain" => "Good",
40
+ "portfolio" => "Good Deeds, Heroism, Protection",
41
+ "worshippers" => ["Paladin", "Knight", "Priest", "Witch (white)"],
42
+ "alignment" => "Good"
43
+ },
44
+ "Taroc" => {
45
+ "domain" => "War",
46
+ "portfolio" => "Battle, Conflict, Strategy",
47
+ "worshippers" => ["Warrior", "Soldier", "Guard", "Gladiator"],
48
+ "alignment" => "Neutral"
49
+ },
50
+ "Fal Munir" => {
51
+ "domain" => "Knowledge",
52
+ "portfolio" => "Learning, Wisdom, Research",
53
+ "worshippers" => ["Scholar", "Sage", "Scribe", "Monk"],
54
+ "alignment" => "Neutral"
55
+ },
56
+ "Elesi" => {
57
+ "domain" => "Creation",
58
+ "portfolio" => "Art, Craftsmanship, Beauty",
59
+ "worshippers" => ["Artist", "Craftsman", "Witch (white)", "Mage"],
60
+ "alignment" => "Good"
61
+ },
62
+ "Anashina" => {
63
+ "domain" => "Nature",
64
+ "portfolio" => "Wilderness, Animals, Plants",
65
+ "worshippers" => ["Ranger", "Hunter", "Druid", "Barbarian"],
66
+ "alignment" => "Neutral"
67
+ },
68
+ "Gwendyll" => {
69
+ "domain" => "Royalty",
70
+ "portfolio" => "Leadership, Nobility, Authority",
71
+ "worshippers" => ["Noble", "Knight", "Lord"],
72
+ "alignment" => "Neutral"
73
+ },
74
+ "Mailatroz" => {
75
+ "domain" => "Trade",
76
+ "portfolio" => "Commerce, Wealth, Business",
77
+ "worshippers" => ["Merchant", "Trader", "Shopkeeper"],
78
+ "alignment" => "Neutral"
79
+ },
80
+ "Juba" => {
81
+ "domain" => "Entertainment",
82
+ "portfolio" => "Joy, Performance, Festivity",
83
+ "worshippers" => ["Entertainer", "Jester", "Bard"],
84
+ "alignment" => "Good"
85
+ },
86
+ "Kraagh" => {
87
+ "domain" => "Death",
88
+ "portfolio" => "Death, Reincarnation, Afterlife",
89
+ "worshippers" => ["Necromancer", "Summoner", "Witch (black)"],
90
+ "alignment" => "Neutral"
91
+ },
92
+ "Mestronorpha" => {
93
+ "domain" => "Evil",
94
+ "portfolio" => "Darkness, Corruption, Malice",
95
+ "worshippers" => ["Sorcerer", "Witch (black)", "Assassin"],
96
+ "alignment" => "Evil"
97
+ },
98
+ "Tsankili" => {
99
+ "domain" => "Thievery",
100
+ "portfolio" => "Trickery, Stealth, Cunning",
101
+ "worshippers" => ["Thief", "Rogue", "Assassin", "Highwayman"],
102
+ "alignment" => "Neutral"
103
+ },
104
+ "Man Peggon" => {
105
+ "domain" => "Strength",
106
+ "portfolio" => "Physical Power, Athletics",
107
+ "worshippers" => ["Barbarian", "Gladiator", "Body guard"],
108
+ "alignment" => "Neutral"
109
+ },
110
+ "Maleko" => {
111
+ "domain" => "Inner Strength",
112
+ "portfolio" => "Meditation, Self-Control, Discipline",
113
+ "worshippers" => ["Monk", "Mystic"],
114
+ "alignment" => "Good"
115
+ },
116
+ "Recolar" => {
117
+ "domain" => "Sports",
118
+ "portfolio" => "Competition, Athletics, Games",
119
+ "worshippers" => ["Gladiator", "Athlete"],
120
+ "alignment" => "Neutral"
121
+ },
122
+ "Liandra" => {
123
+ "domain" => "Hope",
124
+ "portfolio" => "Dreams, Optimism, Inspiration",
125
+ "worshippers" => ["Clergyman", "Healer"],
126
+ "alignment" => "Good"
127
+ }
128
+ }
129
+
130
+ # Character type to deity mapping with variations
131
+ # Arrays allow for religious diversity - not everyone of a type worships the same god
132
+ $CharacterReligions = {
133
+ # Wizards by element - primary deity but with some variation
134
+ "Wizard (water)" => ["Walmaer", "Walmaer", "Walmaer", "Ielina", "Alesia"], # 60% Walmaer
135
+ "Wizard (fire)" => ["Ikalio", "Ikalio", "Ikalio", "Taroc", "Elesi"], # 60% Ikalio
136
+ "Wizard (air)" => ["Shalissa", "Shalissa", "Shalissa", "Ielina", "Anashina"], # 60% Shalissa
137
+ "Wizard (earth)" => ["Alesia", "Alesia", "Alesia", "Anashina", "Ikalio"], # 60% Alesia
138
+ "Wizard (prot.)" => ["Alesia", "Cal Amae", "Gwendyll", "MacGillan"],
139
+
140
+ # Magic users - diverse religious affiliations
141
+ "Mage" => ["Ikalio", "Elesi", "Ielina", "Taroc", "Shalissa", "Alesia"],
142
+ "Witch (white)" => ["Cal Amae", "Liandra", "Elesi", "Gwendyll", "Alesia"],
143
+ "Witch (black)" => ["Mestronorpha", "Kraagh", "Moltan"],
144
+ "Sorcerer" => ["Mestronorpha", "Kraagh", "Moltan", "Tsankili"],
145
+ "Summoner" => ["Kraagh", "Ielina", "Mestronorpha"],
146
+ "Necromancer" => ["Kraagh", "Kraagh", "Moltan"],
147
+ "Seer" => ["Ielina", "Ielina", "Fal Munir"],
148
+
149
+ # Religious types - broad range of deities
150
+ "Priest" => ["Cal Amae", "Alesia", "Shalissa", "Ielina", "Elesi", "Liandra", "Walmaer", "Ikalio"],
151
+ "Clergyman" => ["Cal Amae", "Liandra", "Elesi", "Alesia", "any"],
152
+ "Monk" => ["Maleko", "Ielina", "Fal Munir", "Cal Amae"],
153
+
154
+ # Warriors - mostly Taroc but variations
155
+ "Warrior" => ["Taroc", "Taroc", "Taroc", "Recolar", "Man Peggon", "Cal Amae"],
156
+ "Soldier" => ["Taroc", "Taroc", "Cal Amae", "nobility"],
157
+ "Guard" => ["Taroc", "Alesia", "Cal Amae", "nobility"],
158
+ "Body guard" => ["Taroc", "Man Peggon", "nobility", "Cal Amae"],
159
+ "Gladiator" => ["Taroc", "Recolar", "Man Peggon", "Juba"],
160
+ "Knight" => ["Cal Amae", "nobility", "Taroc"],
161
+ "Paladin" => ["Cal Amae", "Cal Amae", "Alesia"],
162
+
163
+ # Nature types
164
+ "Ranger" => ["Anashina", "Anashina", "Alesia", "Shalissa"],
165
+ "Hunter" => ["Anashina", "Anashina", "Taroc"],
166
+ "Druid" => ["Anashina", "Anashina", "Anashina", "Alesia"],
167
+ "Barbarian" => ["Man Peggon", "Anashina", "Taroc", "Kraagh"],
168
+
169
+ # Rogues
170
+ "Thief" => ["Tsankili", "Tsankili", "None", "Juba"],
171
+ "Rogue" => ["Tsankili", "Tsankili", "Shalissa"],
172
+ "Assassin" => ["Tsankili", "Mestronorpha", "Kraagh", "None"],
173
+ "Highwayman" => ["Tsankili", "None", "Taroc"],
174
+ "Scout" => ["Shalissa", "Anashina", "Tsankili"],
175
+
176
+ # Scholars
177
+ "Scholar" => ["Fal Munir", "Fal Munir", "Elesi", "Ielina"],
178
+ "Sage" => ["Fal Munir", "Ielina", "Elesi", "any"],
179
+ "Scribe" => ["Fal Munir", "Elesi", "nobility"],
180
+
181
+ # Social types
182
+ "Noble" => ["nobility", "nobility", "Taroc", "Alesia", "Ikalio", "Shalissa", "Walmaer"],
183
+ "Merchant" => ["Mailatroz", "Mailatroz", "Juba", "Alesia", "Walmaer"],
184
+ "Trader" => ["Mailatroz", "Mailatroz", "Juba", "Shalissa"],
185
+ "Entertainer" => ["Juba", "Juba", "Elaari", "Shalissa"],
186
+ "Jester" => ["Juba", "Tsankili", "Elaari"],
187
+
188
+ # Default for commoners
189
+ "Commoner" => ["Alesia", "Ikalio", "Shalissa", "Walmaer", "Cal Amae", "Mailatroz", "None", "any"],
190
+ "Farmer" => ["Alesia", "Alesia", "Cal Amae"],
191
+ "Craftsman" => ["Elesi", "Mailatroz", "Alesia"],
192
+ "Sailor" => ["Walmaer", "Walmaer", "Shalissa"]
193
+ }
194
+
195
+ # Weighted random deity selection for "any"
196
+ $RandomDeityWeights = {
197
+ "Alesia" => 4,
198
+ "Anashina" => 3,
199
+ "Cal Amae" => 2,
200
+ "Elesi" => 1,
201
+ "Elaari" => 1,
202
+ "Fal Munir" => 2,
203
+ "Gwendyll" => 2,
204
+ "Ielina" => 3,
205
+ "Ikalio" => 3,
206
+ "Juba" => 3,
207
+ "Kraagh" => 2,
208
+ "Liandra" => 1,
209
+ "MacGillan" => 2,
210
+ "Mailatroz" => 2,
211
+ "Maleko" => 2,
212
+ "Man Peggon" => 1,
213
+ "Mestronorpha" => 1,
214
+ "Moltan" => 3,
215
+ "Recolar" => 3,
216
+ "Shalissa" => 3,
217
+ "Taroc" => 5,
218
+ "Tsankili" => 2,
219
+ "Walmaer" => 5,
220
+ "None" => 6
221
+ }
222
+
223
+ # Function to get appropriate deity for a character type
224
+ def get_character_religion(type, sex = nil)
225
+ # Check for exact match first
226
+ if $CharacterReligions[type]
227
+ deity = $CharacterReligions[type].sample
228
+ else
229
+ # Check for partial matches (for types with parentheses)
230
+ deity = nil
231
+ $CharacterReligions.each do |key, deities|
232
+ if type.include?(key) || key.include?(type)
233
+ deity = deities.sample
234
+ break
235
+ end
236
+ end
237
+
238
+ # Default to weighted random selection
239
+ deity ||= "any"
240
+ end
241
+
242
+ # Handle special cases
243
+ case deity
244
+ when "nobility"
245
+ # MacGillan for males, Gwendyll for females
246
+ sex == "F" ? "Gwendyll" : "MacGillan"
247
+ when "any"
248
+ # Weighted random selection
249
+ total_weight = $RandomDeityWeights.values.sum
250
+ random_value = rand(total_weight)
251
+ cumulative = 0
252
+
253
+ $RandomDeityWeights.each do |god, weight|
254
+ cumulative += weight
255
+ if random_value < cumulative
256
+ return god
257
+ end
258
+ end
259
+
260
+ "None" # Fallback
261
+ when "None"
262
+ nil # No religious affiliation
263
+ else
264
+ deity
265
+ end
266
+ end