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,41 @@
1
+ # The weather tables - for weather type, wind strength and wind direction
2
+
3
+ $Weather = Array.new
4
+ $Weather[0] = "Weird weather"
5
+ $Weather[1] = "Clear skies"
6
+ $Weather[2] = "Mainly clear"
7
+ $Weather[3] = "Partly cloudy"
8
+ $Weather[4] = "Mainly cloudy"
9
+ $Weather[5] = "Partly cloudy, some fog"
10
+ $Weather[6] = "Cloudy, but lucid"
11
+ $Weather[7] = "Cloudy"
12
+ $Weather[8] = "Cloudy and gray"
13
+ $Weather[9] = "Fog"
14
+ $Weather[10] = "Misty and overcast"
15
+ $Weather[11] = "Partly cloudy, a bit of rain"
16
+ $Weather[12] = "Partly cloudy, fog and some rain"
17
+ $Weather[13] = "Partly cloudy, pos. lightning"
18
+ $Weather[14] = "Partly cloudy, pos. lightning, rain"
19
+ $Weather[15] = "Cloudy with some rain"
20
+ $Weather[16] = "Cloudy and rainy"
21
+ $Weather[17] = "Cloudy with heavy rain"
22
+ $Weather[18] = "Cloudy with pos. lightning"
23
+ $Weather[19] = "Cloudy and rainy with lightning"
24
+ $Weather[20] = "Cloudy, heavy rain, thunderstorm"
25
+
26
+ $Wind_str = Array.new
27
+ $Wind_str[0] = "No wind"
28
+ $Wind_str[1] = "Soft wind"
29
+ $Wind_str[2] = "Windy"
30
+ $Wind_str[3] = "Very windy"
31
+
32
+ $Wind_dir = Array.new
33
+ $Wind_dir[0] = "N"
34
+ $Wind_dir[1] = "NE"
35
+ $Wind_dir[2] = "E"
36
+ $Wind_dir[3] = "SE"
37
+ $Wind_dir[4] = "S"
38
+ $Wind_dir[5] = "SW"
39
+ $Wind_dir[6] = "W"
40
+ $Wind_dir[7] = "NW"
41
+
@@ -0,0 +1,127 @@
1
+ # The function for generating relationship maps for inhabitants
2
+ # of a castle/village/town/city
3
+
4
+ def town_relations(town_file)
5
+ town_file = fix_town_file(town_file)
6
+
7
+ town = File.read(town_file)
8
+
9
+ if town.match(/#1:/)
10
+ t = town.gsub(/ \[.*/, '')
11
+ t.sub!(/^.*#1:/m, '#1:')
12
+ t.sub!(/\n\n###.*$/, '')
13
+ t.gsub!(/#\d+:.*\n/, '')
14
+ t.gsub!(/ +/, '')
15
+ h = t.split("\n\n")
16
+ house = []
17
+ h.each_with_index do |item, index|
18
+ house[index] = item.split("\n")
19
+ end
20
+ persons = []
21
+ i = 0
22
+ house.each_with_index do |item, index|
23
+ item.each do |p|
24
+ persons[i] = p + "\n##{index+1}"
25
+ i += 1
26
+ end
27
+ end
28
+ persons.map! { |p| p.sub!(/ \(/, "\n(") }
29
+ persons.map! { |p| p.gsub!(/\n/, '\\n') }
30
+ persons.map! { |p| "\"" + p + "\"" }
31
+ else
32
+ persons = town.split("\n")
33
+ end
34
+
35
+ dot_text = <<DOTSTART
36
+ digraph town {
37
+ rankdir="LR"
38
+ splines=true
39
+ overlap=false
40
+ edge [ fontsize=8 len=1 arrowhead="none"]
41
+ fixedsize=true
42
+ DOTSTART
43
+
44
+ i = 0
45
+ persons.length.times do
46
+ p = persons.dup
47
+ cur = p[i]
48
+ p.delete(p[i])
49
+ r = rand(6) - 2
50
+ r = 0 if r < 0
51
+ r.times do
52
+ dot_text += cur
53
+ line = rand(5) - 2
54
+ dot_text += " -> "
55
+ dot_text += p.sample
56
+ dot_text += " [color=\"red\"]" if line < 0
57
+ dot_text += "\n"
58
+ end
59
+ i += 1
60
+ end
61
+ dot_text += "}"
62
+
63
+ $town_png = File.dirname(town_file) + "/" + File.basename(town_file, ".*") + ".png"
64
+ town_dot = File.dirname(town_file) + "/" + File.basename(town_file, ".*") + ".dot"
65
+ File.delete($town_png) if File.exist?($town_png)
66
+ File.delete(town_dot) if File.exist?(town_dot)
67
+
68
+ begin
69
+ File.write(town_dot, dot_text, perm: 0644)
70
+ # Silent - no puts in TUI mode
71
+ rescue
72
+ # Silent error - no puts in TUI mode
73
+ end
74
+ begin
75
+ `dot -Tpng #{town_dot} -o #{$town_png}`
76
+ # Silent - no puts in TUI mode
77
+ rescue
78
+ # Silent error - no puts in TUI mode
79
+ end
80
+ end
81
+
82
+ # Function to generate a text file of the relationships
83
+ def town_dot2txt(town_file)
84
+ town_file = fix_town_file(town_file)
85
+ town_name = File.basename(town_file, ".*").gsub(/([[:upper:]])/, ' \1').sub(/ /, '')
86
+
87
+ town_dot_file = File.dirname(town_file) + "/" + File.basename(town_file, ".*") + ".dot"
88
+ $townrel_file = File.dirname(town_file) + "/" + File.basename(town_file, ".*") + "_relations.txt"
89
+
90
+ townrel = ""
91
+ File.open(town_dot_file) do |fl|
92
+ townrel += fl.read
93
+ end
94
+
95
+ townrel.sub!(/^.*true\n/m, '')
96
+ townrel.gsub!(/\\n/, ', ')
97
+ t = townrel
98
+ t.each_line do |line|
99
+ if / \[color=\"red\"\]/ =~ line
100
+ new_line = line.sub(/ \[color=\"red\"\]/, '')
101
+ else
102
+ new_line = line.sub(/->/, '+>')
103
+ end
104
+ townrel.sub!(line, new_line)
105
+ end
106
+ townrel.gsub!(/\"/, '')
107
+ townrel.gsub!(/\n}/, '')
108
+ townrel = "#{town_name} relationships:\n\n" + townrel
109
+
110
+ File.delete($townrel_file) if File.exist?($townrel_file)
111
+ begin
112
+ File.open($townrel_file, File::CREAT|File::EXCL|File::RDWR, 0644) do |fl|
113
+ fl.write townrel
114
+ end
115
+ # Silent - no puts in TUI mode
116
+ rescue
117
+ # Silent error - no puts in TUI mode
118
+ end
119
+ end
120
+
121
+ # Simple function to ensure proper path and extension of a town input file
122
+ def fix_town_file(town_file)
123
+ town_file = "saved/" + town_file if File.dirname(town_file) == "."
124
+ town_file = File.basename(town_file) + ".npc" if File.basename(town_file, ".*") == File.basename(town_file)
125
+ abort("No such Town file!") unless File.exist?(town_file)
126
+ return town_file
127
+ end
@@ -0,0 +1,108 @@
1
+ # The class that generates arandom weather
2
+
3
+ # Generate random weather for a day
4
+ class Weather_day
5
+
6
+ attr_reader :weather, :wind_dir, :wind_str, :wind, :special
7
+ attr_writer :weather, :wind_dir, :wind_str, :wind, :special
8
+
9
+ def initialize(weather, wind_dir, wind_str, month, day)
10
+ weather += (oD6 - 4) if month == 6 # Juba
11
+ if rand(2) == 0
12
+ weather = (weather + oD6 + oD6 - 7).abs % 41
13
+ weather += 4 if month == 1 and rand(4) == 0 # Walmaer
14
+ weather -= 1 if month == 7 # Taroc
15
+ weather -= 4 if month == 8 and rand(3) == 0 # Man Peggon
16
+ weather += 4 if month == 13 and rand(2) == 0 # Mestronorpha
17
+ weather = 40 - weather if weather > 20
18
+ end
19
+ weather = 11 if month == 1 and day == 0 # Walmaer day
20
+ weather = 1 if month == 7 and day == 14 # Ikalio day
21
+ weather = 1 if month == 13 and day == 27 # Ielina day
22
+ weather = rand(1..5) if month == 6 and day == 9 # Ielina day
23
+
24
+ wind_dir = (wind_dir + (oD6 + oD6 - 7)/3) % 8 if month == 6 # Juba
25
+ if rand(2) == 0
26
+ wind_dir = (wind_dir + (oD6 + oD6 - 7)/3) % 8
27
+ end
28
+
29
+ wind_str = (wind_str + (oD6 + oD6 - 5)/6).abs if month == 6 # Juba
30
+ if rand(2) == 0
31
+ wind_str = (wind_str + (oD6 + oD6 - 7)/6).abs
32
+ wind_str += 1 if month == 1 and rand(3) == 0 # Walmaer
33
+ wind_str += 1 if month == 10 and rand(2) == 0 # Fal Munir
34
+ end
35
+ wind_str = 0 if wind_str < 0
36
+ wind_str = 3 if wind_str > 3
37
+ wind_str = 3 if month == 10 and day == 20 # Shalissa day
38
+
39
+ weather = 1 if weather < 1
40
+ @weather = weather
41
+ @wind_dir = wind_dir
42
+ @wind_str = wind_str
43
+ @wind = (wind_dir + 1) + ((wind_str - 1) * 8)
44
+ @wind = 0 if wind_str == 0
45
+ @special = ""
46
+ end
47
+ end
48
+
49
+
50
+ # Generate random weather for a whole month
51
+ class Weather_month
52
+
53
+ attr_reader :day, :month_n
54
+
55
+ def initialize(month, weather, wind)
56
+
57
+ @month_n = month
58
+
59
+ @weather_n = weather.to_i
60
+ @wind_str_n = ((wind.to_i) / 8).ceil
61
+ @wind_dir_n = (wind.to_i) % 8
62
+
63
+ @day = []
64
+ 28.times do |d|
65
+ @day[d] = Weather_day.new(@weather_n, @wind_dir_n, @wind_str_n, @month_n, d)
66
+ @weather_n = @day[d].weather
67
+ @wind_dir_n = @day[d].wind_dir
68
+ @wind_str_n = @day[d].wind_str
69
+ end
70
+
71
+ case @month_n
72
+ when 1
73
+ @day[0].special = "Walmaer"
74
+ @day[8].special = "Cal Amae"
75
+ when 2
76
+ @day[1].special = "Elesi"
77
+ when 3
78
+ @day[3].special = "Anashina"
79
+ @day[14].special = "Ish Nakil"
80
+ @day[17].special = "Fenimaal"
81
+ @day[20].special = "Fionella"
82
+ when 4
83
+ @day[7].special = "Alesia"
84
+ @day[11].special = "Gwendyll"
85
+ when 5
86
+ @day[12].special = "MacGillan"
87
+ when 6
88
+ @day[9].special = "Juba"
89
+ when 7
90
+ @day[10].special = "Taroc"
91
+ @day[14].special = "Ikalio"
92
+ when 8
93
+ @day[3].special = "Man Peggon"
94
+ when 9
95
+ @day[0].special = "Maleko"
96
+ when 10
97
+ @day[6].special = "Fal Munir"
98
+ @day[20].special = "Shalissa"
99
+ when 11
100
+ @day[2].special = "Moltan"
101
+ when 12
102
+ @day[7].special = "Kraagh"
103
+ when 13
104
+ @day[5].special = "Mestronorpha"
105
+ @day[27].special = "Ielina"
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,114 @@
1
+ # Weather to Latex function - generates a pdf for a month worth of weather
2
+
3
+ def weather_out_latex(w,cli)
4
+
5
+ cli == "web" ? t = "../" : t = ""
6
+
7
+ bgc = ["FFFFFF", "FFFFFF", "FFFFFF", "80D55B", "EAB8F5", "BD98F3", "98E3F3", "AFAFAF", "DCB796", "AD9D8F", "E9E4B0", "FFC37D", "6F6F6F", "525252"]
8
+
9
+ l = <<LATEXSTART
10
+ %Created by npcg, see: https://github.com/isene/npcg
11
+ \\documentclass[14pt,a4paper]{article}
12
+ \\usepackage[margin=2cm]{geometry}
13
+ \\usepackage{graphicx}
14
+ \\usepackage[dvipsnames]{xcolor}
15
+ \\definecolor{#{w.month_n}}{HTML}{#{bgc[w.month_n]}}
16
+ \\usepackage{pdfpages}
17
+ \\pagenumbering{gobble}
18
+ LATEXSTART
19
+
20
+ l += <<LATEXTABLESTART
21
+ \\begin{document}
22
+ \\makeatletter
23
+ \\setlength{\\@fptop}{0pt}
24
+ \\makeatother
25
+ \\begin{table}
26
+ \\begin{center}
27
+ \\fcolorbox{black}{#{w.month_n}}{\\begin{minipage}[c][0.6cm][c]{\\linewidth}\\begin{center}{\\LARGE \\textsf{#{$Month[w.month_n]}}}\\end{center}\\end{minipage}}\\\\
28
+ \\smallskip
29
+ \\fbox{\\begin{tabular}{| p{2cm} | p{2cm} | p{2cm} | p{2cm} | p{2cm} | p{2cm} | p{2cm} |}
30
+ LATEXTABLESTART
31
+
32
+ # Create each cell; tc = table cell
33
+ tc = []
34
+ w.day.each_with_index do |d,i|
35
+ imgflag = false
36
+ tc[i] = "\\vspace{0.02cm}"
37
+ tc[i] += "\\raisebox{1ex}{{\\bfseries{\\large #{i+1}}}}"
38
+ tc[i] += "\\hfill"
39
+ if d.special != ""
40
+ g = d.special.delete(' ').downcase
41
+ tc[i] += "\\includegraphics[width=0.5cm]{#{t}images/gods/#{g}.png}"
42
+ imgflag = true
43
+ end
44
+ unless w.month_n == 0
45
+ if i == 0
46
+ tc[i] += " \\includegraphics[width=0.47cm]{#{t}images/moon/0.png}"; imgflag = true
47
+ elsif i == 7
48
+ tc[i] += " \\includegraphics[width=0.47cm]{#{t}images/moon/1.png}"; imgflag = true
49
+ elsif i == 14
50
+ tc[i] += " \\includegraphics[width=0.47cm]{#{t}images/moon/2.png}"; imgflag = true
51
+ elsif i == 21
52
+ tc[i] += " \\includegraphics[width=0.47cm]{#{t}images/moon/3.png}"; imgflag = true
53
+ end
54
+ end
55
+ tc[i] += "\\includegraphics[width=0.5cm]{#{t}images/weather/blank.png}" if imgflag == false
56
+ tc[i] += "\\vspace{0.3cm}"
57
+ tc[i] += "\\newline"
58
+ tc[i] += "\\includegraphics[width=0.9cm]{#{t}images/weather/weather#{d.weather}.png}"
59
+ tc[i] += "\\hfill"
60
+ tc[i] += "\\includegraphics[width=0.9cm]{#{t}images/weather/wind#{d.wind}.png}"
61
+ end
62
+
63
+ #Display each cell
64
+ j = 0
65
+ l += "\\hline\n"
66
+ 4.times do
67
+ 6.times do
68
+ l += "#{tc[j]} & "
69
+ j += 1
70
+ end
71
+ l += "#{tc[j]} \\\\\n"
72
+ l += "\\hline\n"
73
+ j += 1
74
+ end
75
+
76
+ l += <<LATEXTABLEEND
77
+ \\end{tabular}}
78
+ \\end{center}
79
+ \\end{table}
80
+ LATEXTABLEEND
81
+
82
+ l += "\\noindent\\textbf{{\\large Events this month:}}\n"
83
+ 10.times do
84
+ l += "\\vspace{1.2cm}\n"
85
+ l += "\\hline\n"
86
+ end
87
+
88
+ l += "\\end{document}"
89
+
90
+ File.delete("saved/weather.tex") if File.exist?("saved/weather.tex")
91
+ begin
92
+ File.write("saved/weather.tex", l, perm: 0644)
93
+ rescue
94
+ puts "Error writing file weather.tex"
95
+ end
96
+
97
+ system "clear" if t == ""
98
+
99
+ File.delete("saved/weather.pdf") if File.exist?("saved/weather.pdf")
100
+ if File.exist?("saved/weather.tex")
101
+ `pdflatex -interaction nonstopmode -output-directory saved saved/weather.tex`
102
+ if File.exist?("saved/weather.pdf")
103
+ puts "Weather file created: saved/weather.pdf"
104
+ else
105
+ puts "Weather file not created!"
106
+ end
107
+ end
108
+
109
+ if t == ""
110
+ puts "\nPress ENTER to continue"
111
+ gets
112
+ end
113
+
114
+ end
data/lib/rcurses.rb ADDED
@@ -0,0 +1,33 @@
1
+ # Stub implementation of rcurses for systems without the full gem
2
+ # This provides basic functionality for AMAR Tools
3
+ class String
4
+ def fg(color)
5
+ "\e[38;5;#{color}m#{self}\e[0m"
6
+ end
7
+
8
+ def bg(color)
9
+ "\e[48;5;#{color}m#{self}\e[0m"
10
+ end
11
+
12
+ def b
13
+ "\e[1m#{self}\e[0m"
14
+ end
15
+
16
+ def u
17
+ "\e[4m#{self}\e[0m"
18
+ end
19
+
20
+ def i
21
+ "\e[3m#{self}\e[0m"
22
+ end
23
+
24
+ def pure
25
+ self.gsub(/\e\[[0-9;]*m/, '')
26
+ end
27
+ end
28
+
29
+ module Rcurses
30
+ def self.clear_screen
31
+ print "\e[2J\e[H"
32
+ end
33
+ end
metadata ADDED
@@ -0,0 +1,157 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: amar-rpg
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Geir Isene
8
+ autorequire:
9
+ bindir: "."
10
+ cert_chain: []
11
+ date: 2025-10-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rcurses
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.9'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '13.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '13.0'
55
+ description: A comprehensive terminal UI for the Amar RPG with character generation,
56
+ encounter management, weather generation, and complete campaign tools. Features
57
+ both modern 3-tier and classic 2-tier character systems.
58
+ email:
59
+ - g@isene.com
60
+ executables:
61
+ - amar-tui.rb
62
+ extensions: []
63
+ extra_rdoc_files: []
64
+ files:
65
+ - "./amar-tui.rb"
66
+ - LICENSE
67
+ - README.md
68
+ - amar-tui.rb
69
+ - cli_enc_output.rb
70
+ - cli_enc_output_new.rb
71
+ - cli_enc_output_new_3tier.rb
72
+ - cli_enc_output_new_compact.rb
73
+ - cli_name_gen.rb
74
+ - cli_npc_output.rb
75
+ - cli_npc_output_new.rb
76
+ - cli_town_output.rb
77
+ - cli_weather_output.rb
78
+ - includes/class_enc.rb
79
+ - includes/class_enc_new.rb
80
+ - includes/class_monster_new.rb
81
+ - includes/class_npc.rb
82
+ - includes/class_npc_new.rb
83
+ - includes/class_npc_new.rb.backup
84
+ - includes/class_npc_new_skills.rb
85
+ - includes/class_town.rb
86
+ - includes/d6s.rb
87
+ - includes/equipment_tables.rb
88
+ - includes/functions.rb
89
+ - includes/includes.rb
90
+ - includes/randomizer.rb
91
+ - includes/spell_catalog.rb
92
+ - includes/tables/armour.rb
93
+ - includes/tables/chartype.rb
94
+ - includes/tables/chartype_new.rb
95
+ - includes/tables/chartype_new_full.rb
96
+ - includes/tables/enc_specific.rb
97
+ - includes/tables/enc_type.rb
98
+ - includes/tables/encounters.rb
99
+ - includes/tables/magick.rb
100
+ - includes/tables/melee.rb
101
+ - includes/tables/missile.rb
102
+ - includes/tables/monster_stats_new.rb
103
+ - includes/tables/month.rb
104
+ - includes/tables/names.rb
105
+ - includes/tables/personality.rb
106
+ - includes/tables/race_templates.rb
107
+ - includes/tables/religions.rb
108
+ - includes/tables/spells_new.rb
109
+ - includes/tables/tier_system.rb
110
+ - includes/tables/town.rb
111
+ - includes/tables/weather.rb
112
+ - includes/town_relations.rb
113
+ - includes/weather.rb
114
+ - includes/weather2latex.rb
115
+ - lib/rcurses.rb
116
+ homepage: https://github.com/isene/Amar-Tools
117
+ licenses:
118
+ - Unlicense
119
+ metadata:
120
+ homepage_uri: https://github.com/isene/Amar-Tools
121
+ source_code_uri: https://github.com/isene/Amar-Tools
122
+ changelog_uri: https://github.com/isene/Amar-Tools/blob/master/README.md
123
+ post_install_message: |2+
124
+
125
+ ===========================================
126
+ AMAR RPG Tools v2.0.1 has been installed!
127
+ ===========================================
128
+
129
+ To start the application:
130
+ amar-tui.rb
131
+
132
+ For more information:
133
+ https://github.com/isene/Amar-Tools
134
+
135
+ Enjoy your AMAR RPG adventures!
136
+
137
+ rdoc_options: []
138
+ require_paths:
139
+ - lib
140
+ - includes
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 3.0.0
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ requirements: []
152
+ rubygems_version: 3.4.20
153
+ signing_key:
154
+ specification_version: 4
155
+ summary: AMAR RPG Tools - Terminal UI and utilities for Amar RPG
156
+ test_files: []
157
+ ...