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
data/cli_npc_output.rb ADDED
@@ -0,0 +1,279 @@
1
+ # This is the CLI module for Amar Tools
2
+ # where the characters are saved to a file
3
+ #
4
+ # This function outputs the character n to screen,
5
+ # then to a file named "temp.npc",
6
+ # and a file named after the NPC, "<FirstLast>.npc
7
+
8
+ def npc_output(n, cli)
9
+ # Clear screen before displaying character
10
+ if cli == "cli"
11
+ system("clear") || system("cls") # Works on both Unix and Windows
12
+ end
13
+
14
+ mag = n.spell0(0) + n.spell1(0) + n.spell2(0) + n.spell3(0) + n.spell4(0)
15
+ mag += n.spell5(0) + n.spell6(0) + n.spell7(0) + n.spell8(0)
16
+
17
+ f = ""
18
+ f += " (You may want to bookmark this URL for future references to this NPC)\n\n" unless cli == "cli"
19
+ f += "############################<By Amar Tools>############################\n\n"
20
+ f += "Created: #{Date.today.to_s}".rjust(71) + "\n"
21
+ f += "Name:".ljust(9) + n.name
22
+ f += "\n"
23
+ f += "Type:".ljust(9) + (n.type + " (" + n.level.to_s + ")").ljust(23)
24
+ f += "Sex:".ljust(5) + n.sex.ljust(18)
25
+ f += "Height:".ljust(8) + n.height.to_s
26
+ f += "\n"
27
+ f += "Area:".ljust(9) + n.area.ljust(23)
28
+ f += "Age:".ljust(5) + n.age.to_s.ljust(18)
29
+ f += "Weight:".ljust(8) + n.weight.to_s
30
+ f += "\n"
31
+ f += "-----------------------------------------------------------------------\n"
32
+ f += "Description:".ljust(14) + n.description
33
+ f += "\n"
34
+ f += "-----------------------------------------------------------------------\n"
35
+ f += "SIZE:".ljust(9) + n.size.to_s.ljust(11)
36
+ f += "Balance:".ljust(17) + n.balance.to_s.ljust(9)
37
+ f += "Detect Traps:".ljust(17) + n.dtraps.to_s.ljust(9)
38
+ f += "\n"
39
+ f += "STRNG:".ljust(9) + n.strng.to_s.ljust(11)
40
+ f += "Climb:".ljust(17) + n.climb.to_s.ljust(9)
41
+ f += "Reaction Speed:".ljust(17) + n.react.to_s.ljust(9)
42
+ f += "\n"
43
+ f += "ENDUR:".ljust(9) + n.endur.to_s.ljust(11)
44
+ f += "Dodge:".ljust(17) + n.dodge.to_s.ljust(9)
45
+ f += "Tracking:".ljust(17) + n.tracking.to_s.ljust(9)
46
+ f += "\n"
47
+ f += "COORD:".ljust(9) + n.coord.to_s.ljust(11)
48
+ f += "Hide:".ljust(17) + (n.hide.to_s + "/" + n.modhide.to_s).ljust(9)
49
+ f += "*" + (n.percept1 + ":").ljust(16) + n.percept1s.to_s.ljust(9)
50
+ f += "\n"
51
+ f += "LEARN:".ljust(9) + n.learn.to_s.ljust(11)
52
+ f += "Mvqt:".ljust(17) + (n.mvqt.to_s + "/" + n.modmvqt.to_s).ljust(9)
53
+ f += "\n"
54
+ f += "AWARE:".ljust(9) + n.aware.to_s.ljust(11)
55
+ f += "Ride:".ljust(17) + n.ride.to_s.ljust(9)
56
+ f += "Medical lore:".ljust(17) + n.medicall.to_s.ljust(9)
57
+ f += "\n"
58
+ f += "MAGAP:".ljust(9) + n.magap.to_s.ljust(11)
59
+ f += "Sleight:".ljust(17) + n.sleight.to_s.ljust(9)
60
+ f += "Read/write:".ljust(17) + n.readwrite.to_s.ljust(9)
61
+ f += "\n"
62
+ f += " ".ljust(20)
63
+ f += "Swim:".ljust(17) + n.swim.to_s.ljust(9)
64
+ f += "Spoken:".ljust(17) + n.spoken.to_s.ljust(9)
65
+ f += "\n"
66
+ f += "DB:".ljust(9) + n.db.to_s.ljust(11)
67
+ f += "Tumble:".ljust(17) + n.tumble.to_s.ljust(9)
68
+ f += "*" + (n.lore1 + ":").ljust(16) + n.lore1s.to_s.ljust(9)
69
+ f += "\n"
70
+ f += "BP:".ljust(9) + n.bp.to_s.ljust(11)
71
+ f += "*" + (n.physical1 + ":").ljust(16) + n.physical1s.to_s.ljust(9)
72
+ f += "*" + (n.lore2 + ":").ljust(16) + n.lore2s.to_s.ljust(9)
73
+ f += "\n"
74
+ f += "MD:".ljust(9) + n.md.to_s.ljust(11)
75
+ f += "*" + (n.physical2 + ":").ljust(16) + n.physical2s.to_s.ljust(9)
76
+ f += "*" + (n.lore3 + ":").ljust(16) + n.lore3s.to_s.ljust(9)
77
+ f += "\n"
78
+ f += " ".ljust(20)
79
+ f += "*" + (n.physical3 + ":").ljust(16) + n.physical3s.to_s.ljust(9)
80
+ f += "\n"
81
+ f += "-----------------------------------------------------------------------\n"
82
+ f += "Cult:".ljust(9) + n.cult + ", " + n.cultstat1 + " (" + n.cs.to_s + ")"
83
+ f += "\n"
84
+ f += "-----------------------------------------------------------------------\n"
85
+ f += "ENC:".ljust(9) + n.enc.to_s.ljust(11)
86
+ f += "Armour:".ljust(10) + n.armour.ljust(15)
87
+ f += "Social status:".ljust(16) + n.socstatus.ljust(9)
88
+ f += "\n"
89
+ f += "Status:".ljust(9) + n.status.to_s.ljust(11)
90
+ f += "AP:".ljust(10) + n.ap.to_s.ljust(15)
91
+ f += "Money:".ljust(16) + n.money.to_s.ljust(9)
92
+ f += "\n"
93
+ f += "-----------------------------------------------------------------------\n"
94
+ f += "WEAPON SKILL INI OFF DEF DAM HP RANGE\n"
95
+ f += n.melee1.ljust(21)
96
+ f += n.melee1s.to_s.ljust(8)
97
+ f += n.melee1i.to_s.ljust(8)
98
+ f += n.melee1o.to_s.ljust(7)
99
+ f += n.melee1d.to_s.ljust(7)
100
+ f += n.melee1dam.to_s.ljust(6)
101
+ f += n.melee1hp.to_s.ljust(5)
102
+ if n.melee2s != 0
103
+ f += "\n"
104
+ f += n.melee2.ljust(21)
105
+ f += n.melee2s.to_s.ljust(8)
106
+ f += n.melee2i.to_s.ljust(8)
107
+ f += n.melee2o.to_s.ljust(7)
108
+ f += n.melee2d.to_s.ljust(7)
109
+ f += n.melee2dam.to_s.ljust(6)
110
+ f += n.melee2hp.to_s.ljust(5)
111
+ end
112
+ if n.melee3s != 0
113
+ f += "\n"
114
+ f += n.melee3.ljust(21)
115
+ f += n.melee3s.to_s.ljust(8)
116
+ f += n.melee3i.to_s.ljust(8)
117
+ f += n.melee3o.to_s.ljust(7)
118
+ f += n.melee3d.to_s.ljust(7)
119
+ f += n.melee3dam.to_s.ljust(6)
120
+ f += n.melee3hp.to_s.ljust(5)
121
+ end
122
+ f += "\n"
123
+ f += "> "
124
+ f += n.missile1.ljust(19)
125
+ f += n.missile1s.to_s.ljust(8)
126
+ f += n.missile1i.to_s.ljust(8)
127
+ f += n.missile1o.to_s.ljust(7)
128
+ f += "-".ljust(7)
129
+ f += n.missile1dam.to_s.ljust(6)
130
+ f += "-".ljust(6)
131
+ f += n.missile1rng.to_s + "/" + n.missile1rmax.to_s
132
+ if n.missile2s != 0
133
+ f += "\n"
134
+ f += "> "
135
+ f += n.missile2.ljust(19)
136
+ f += n.missile2s.to_s.ljust(8)
137
+ f += n.missile2i.to_s.ljust(8)
138
+ f += n.missile2o.to_s.ljust(7)
139
+ f += "-".ljust(7)
140
+ f += n.missile2dam.to_s.ljust(6)
141
+ f += "-".ljust(6)
142
+ f += n.missile2rng.to_s + "/" + n.missile2rmax.to_s
143
+ end
144
+ if n.maglore != 0
145
+ f += "\n"
146
+ f += "-----------------------------------------------------------------------\n"
147
+ f += "Magick lore:".ljust(14) + n.maglore.to_s.ljust(6)
148
+ f += "Magick type:".ljust(14) + n.magtype1.ljust(12)
149
+ f += "Spell lore:".ljust(14) + n.splore.to_s.ljust(6)
150
+ f += "\n"
151
+ end
152
+ if mag != 0
153
+ f += "\n"
154
+ f += "SPELL LEVEL DR A? R? CT DUR RNG WT AoE"
155
+ end
156
+ if n.spell0(0) != 0
157
+ f += "\n"
158
+ f += n.spell0(1).ljust(22)
159
+ f += n.spell0(0).to_s.ljust(5)
160
+ f += n.spell0(5).to_s.ljust(4)
161
+ f += n.spell0(2).ljust(4)
162
+ f += n.spell0(3).ljust(4)
163
+ f += n.spell0(4).ljust(4)
164
+ f += n.spell0(6).ljust(5)
165
+ f += n.spell0(7).ljust(5)
166
+ f += n.spell0(8).ljust(6)
167
+ f += n.spell0(9)
168
+ end
169
+ if n.spell1(0) != 0
170
+ f += "\n"
171
+ f += n.spell1(1).ljust(22)
172
+ f += n.spell1(0).to_s.ljust(5)
173
+ f += n.spell1(5).to_s.ljust(4)
174
+ f += n.spell1(2).ljust(4)
175
+ f += n.spell1(3).ljust(4)
176
+ f += n.spell1(4).ljust(4)
177
+ f += n.spell1(6).ljust(5)
178
+ f += n.spell1(7).ljust(5)
179
+ f += n.spell1(8).ljust(6)
180
+ f += n.spell1(9)
181
+ end
182
+ if n.spell2(0) != 0
183
+ f += "\n"
184
+ f += n.spell2(1).ljust(22)
185
+ f += n.spell2(0).to_s.ljust(5)
186
+ f += n.spell2(5).to_s.ljust(4)
187
+ f += n.spell2(2).ljust(4)
188
+ f += n.spell2(3).ljust(4)
189
+ f += n.spell2(4).ljust(4)
190
+ f += n.spell2(6).ljust(5)
191
+ f += n.spell2(7).ljust(5)
192
+ f += n.spell2(8).ljust(6)
193
+ f += n.spell2(9)
194
+ end
195
+ if n.spell3(0) != 0
196
+ f += "\n"
197
+ f += n.spell3(1).ljust(22)
198
+ f += n.spell3(0).to_s.ljust(5)
199
+ f += n.spell3(5).to_s.ljust(4)
200
+ f += n.spell3(2).ljust(4)
201
+ f += n.spell3(3).ljust(4)
202
+ f += n.spell3(4).ljust(4)
203
+ f += n.spell3(6).ljust(5)
204
+ f += n.spell3(7).ljust(5)
205
+ f += n.spell3(8).ljust(6)
206
+ f += n.spell3(9)
207
+ end
208
+ if n.spell4(0) != 0
209
+ f += "\n"
210
+ f += n.spell4(1).ljust(22)
211
+ f += n.spell4(0).to_s.ljust(5)
212
+ f += n.spell4(5).to_s.ljust(4)
213
+ f += n.spell4(2).ljust(4)
214
+ f += n.spell4(3).ljust(4)
215
+ f += n.spell4(4).ljust(4)
216
+ f += n.spell4(6).ljust(5)
217
+ f += n.spell4(7).ljust(5)
218
+ f += n.spell4(8).ljust(6)
219
+ f += n.spell4(9)
220
+ end
221
+ if n.spell5(0) != 0
222
+ f += "\n"
223
+ f += n.spell5(1).ljust(22)
224
+ f += n.spell5(0).to_s.ljust(5)
225
+ f += n.spell5(5).to_s.ljust(4)
226
+ f += n.spell5(2).ljust(4)
227
+ f += n.spell5(3).ljust(4)
228
+ f += n.spell5(4).ljust(4)
229
+ f += n.spell5(6).ljust(5)
230
+ f += n.spell5(7).ljust(5)
231
+ f += n.spell5(8).ljust(6)
232
+ f += n.spell5(9)
233
+ end
234
+ if n.spell6(0) != 0
235
+ f += "\n"
236
+ f += n.spell6(1).ljust(22)
237
+ f += n.spell6(0).to_s.ljust(5)
238
+ f += n.spell6(5).to_s.ljust(4)
239
+ f += n.spell6(2).ljust(4)
240
+ f += n.spell6(3).ljust(4)
241
+ f += n.spell6(4).ljust(4)
242
+ f += n.spell6(6).ljust(5)
243
+ f += n.spell6(7).ljust(5)
244
+ f += n.spell6(8).ljust(6)
245
+ f += n.spell6(9)
246
+ end
247
+ if n.spell7(0) != 0
248
+ f += "\n"
249
+ f += n.spell7(1).ljust(22)
250
+ f += n.spell7(0).to_s.ljust(5)
251
+ f += n.spell7(5).to_s.ljust(4)
252
+ f += n.spell7(2).ljust(4)
253
+ f += n.spell7(3).ljust(4)
254
+ f += n.spell7(4).ljust(4)
255
+ f += n.spell7(6).ljust(5)
256
+ f += n.spell7(7).ljust(5)
257
+ f += n.spell7(8).ljust(6)
258
+ f += n.spell7(9)
259
+ end
260
+ if n.spell8(0) != 0
261
+ f += "\n"
262
+ f += n.spell8(1).ljust(22)
263
+ f += n.spell8(0).to_s.ljust(5)
264
+ f += n.spell8(5).to_s.ljust(4)
265
+ f += n.spell8(2).ljust(4)
266
+ f += n.spell8(3).ljust(4)
267
+ f += n.spell8(4).ljust(4)
268
+ f += n.spell8(6).ljust(5)
269
+ f += n.spell8(7).ljust(5)
270
+ f += n.spell8(8).ljust(6)
271
+ f += n.spell8(9)
272
+ end
273
+ f += "\n\n#######################################################################"
274
+
275
+ # from functions.rb - save to temp file and named file
276
+ save_temp_file(f, "temp", cli)
277
+ save_named_file(f, n.name.delete(' '), cli)
278
+
279
+ end