sector_maker 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/Gemfile.lock +8 -2
- data/lib/sector_maker/constants.rb +8 -0
- data/lib/sector_maker/rollable.rb +8 -4
- data/lib/sector_maker/sector.rb +12 -0
- data/lib/sector_maker/system.rb +6 -6
- data/lib/sector_maker/version.rb +1 -1
- data/lib/sector_maker/world.rb +21 -25
- data/lib/sector_maker.rb +1 -0
- metadata +18 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cb8c89ea59eab1da9cb16956c855bbb90bc71ac0e6da5a8a072e84fbe2a14205
|
|
4
|
+
data.tar.gz: ce4188779344eb9810670ef47fc899a08ba57986c968bcf56b09a300628f4acb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a0d8496148c2614aacdb1bd20b6c4542594ba730872a1b5bb835975c88599ebf5f76c118d502acefcff0a726f4e6059b9c0516074d32312967a6780d7e3cd493
|
|
7
|
+
data.tar.gz: a77f76f8bbf9961450d69819f831ebaba9e95c95c74b3aa4dcea57bdf8fd629c8196ceffcd62fe26cb986d8a9b5d1ebfe8b0841cdb722e65da3c54d61264b8fa
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
sector_maker (0.1.
|
|
4
|
+
sector_maker (0.1.1)
|
|
5
|
+
markov_namegen (~> 0.1.4)
|
|
5
6
|
|
|
6
7
|
GEM
|
|
7
8
|
remote: https://rubygems.org/
|
|
8
9
|
specs:
|
|
9
10
|
ast (2.4.2)
|
|
10
11
|
diff-lcs (1.5.0)
|
|
12
|
+
faraday (2.5.2)
|
|
13
|
+
faraday-net_http (>= 2.0, < 3.1)
|
|
14
|
+
ruby2_keywords (>= 0.0.4)
|
|
15
|
+
faraday-net_http (3.0.0)
|
|
11
16
|
json (2.6.2)
|
|
12
17
|
markov_namegen (0.1.4)
|
|
13
18
|
parallel (1.22.1)
|
|
@@ -47,6 +52,7 @@ GEM
|
|
|
47
52
|
rubocop-rspec (2.12.1)
|
|
48
53
|
rubocop (~> 1.31)
|
|
49
54
|
ruby-progressbar (1.11.0)
|
|
55
|
+
ruby2_keywords (0.0.5)
|
|
50
56
|
unicode-display_width (2.2.0)
|
|
51
57
|
|
|
52
58
|
PLATFORMS
|
|
@@ -54,7 +60,7 @@ PLATFORMS
|
|
|
54
60
|
x86_64-linux
|
|
55
61
|
|
|
56
62
|
DEPENDENCIES
|
|
57
|
-
|
|
63
|
+
faraday (~> 2.5)
|
|
58
64
|
rake (~> 13.0)
|
|
59
65
|
rspec (~> 3.0)
|
|
60
66
|
rubocop (~> 1.21)
|
|
@@ -7,6 +7,14 @@ module SectorMaker
|
|
|
7
7
|
# values 1-33 mapped to 0-9, A-Z, excluding I and O.
|
|
8
8
|
EHEX = [*(0..9)].zip([*("0".."9")]).to_h
|
|
9
9
|
.merge([*(10..33)].zip([*("A".."Z")] - %w[I O]).to_h)
|
|
10
|
+
ENDPOINTS = { poster: "https://travellermap.com/api/poster",
|
|
11
|
+
jump: "https://travellermap.com/api/jumpmap?x=x&y=y&jump=jump" }.freeze
|
|
12
|
+
|
|
13
|
+
DEFAULT_HEADER = { "Content-Type" => "text/plain" }.freeze
|
|
14
|
+
DEFAULT_PARAMS = { scale: "128",
|
|
15
|
+
accept: "application/pdf",
|
|
16
|
+
options: "25591",
|
|
17
|
+
style: "poster" }.freeze
|
|
10
18
|
|
|
11
19
|
# PLACEHOLDER NAMELIST FOR NAMEGENERATOR
|
|
12
20
|
DEFAULT_NAMES = ["Alabama", "Alaska", "American Samoa", "Arizona", "Arkansas",
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
module SectorMaker
|
|
4
4
|
# Dice rolling methods
|
|
5
5
|
module Rollable
|
|
6
|
+
def adjust_to_range(number, min_value: 0, max_value: 10)
|
|
7
|
+
[[number, min_value].max, max_value].min
|
|
8
|
+
end
|
|
9
|
+
|
|
6
10
|
def roll(dice_quantity = 1)
|
|
7
11
|
Array.new(dice_quantity) { rand(1..6) }.sum
|
|
8
12
|
end
|
|
@@ -13,12 +17,12 @@ module SectorMaker
|
|
|
13
17
|
end
|
|
14
18
|
# rubocop:enable Lint/BinaryOperatorWithIdenticalOperands
|
|
15
19
|
|
|
16
|
-
def roll_over?(target = 8)
|
|
17
|
-
roll(
|
|
20
|
+
def roll_over?(target = 8, dice: 2)
|
|
21
|
+
roll(dice) >= target
|
|
18
22
|
end
|
|
19
23
|
|
|
20
|
-
def roll_under?(target = 8)
|
|
21
|
-
roll(
|
|
24
|
+
def roll_under?(target = 8, dice: 2)
|
|
25
|
+
roll(dice) <= target
|
|
22
26
|
end
|
|
23
27
|
end
|
|
24
28
|
end
|
data/lib/sector_maker/sector.rb
CHANGED
|
@@ -22,6 +22,17 @@ module SectorMaker
|
|
|
22
22
|
File.write("#{filename}.txt", to_s)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
+
def to_pdf(filename = @sector_name)
|
|
26
|
+
conn = Faraday.new(
|
|
27
|
+
url: ENDPOINTS[:poster],
|
|
28
|
+
params: DEFAULT_PARAMS,
|
|
29
|
+
headers: DEFAULT_HEADER
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
response = conn.post(ENDPOINTS[:poster], to_s)
|
|
33
|
+
File.write("#{filename}.pdf", response.body)
|
|
34
|
+
end
|
|
35
|
+
|
|
25
36
|
def generate_sector
|
|
26
37
|
SUBSECTOR_LIST.each do |letter|
|
|
27
38
|
generate_subsector(letter)
|
|
@@ -31,6 +42,7 @@ module SectorMaker
|
|
|
31
42
|
def generate_subsector(letter = A)
|
|
32
43
|
col_min = COORDINATE_RANGE[letter][:col_min]
|
|
33
44
|
row_min = COORDINATE_RANGE[letter][:row_min]
|
|
45
|
+
|
|
34
46
|
col_min.upto(col_min + 7) do |col|
|
|
35
47
|
row_min.upto(row_min + 9) do |row|
|
|
36
48
|
hex = [col, row]
|
data/lib/sector_maker/system.rb
CHANGED
|
@@ -4,13 +4,13 @@ module SectorMaker
|
|
|
4
4
|
# A Traveller5 star system
|
|
5
5
|
class System
|
|
6
6
|
include Rollable
|
|
7
|
-
attr_reader :
|
|
7
|
+
attr_reader :names, :hex, :uwp, :bases, :trade_codes, :travel_code, :pbg,
|
|
8
8
|
:allegiance
|
|
9
9
|
|
|
10
|
-
def initialize(sector_name: "----",
|
|
11
|
-
uwp: World.new(main
|
|
12
|
-
@
|
|
13
|
-
|
|
10
|
+
def initialize(sector_name: "----", hex: "0101", mainworld_name: hex,
|
|
11
|
+
uwp: World.new(:main), pbg: random_pbg)
|
|
12
|
+
@names = { sector: sector_name,
|
|
13
|
+
main_world: mainworld_name }
|
|
14
14
|
@hex = hex
|
|
15
15
|
@uwp = uwp
|
|
16
16
|
@pbg = pbg
|
|
@@ -21,7 +21,7 @@ module SectorMaker
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def to_s
|
|
24
|
-
"#{
|
|
24
|
+
"#{names[:main_world].ljust(17)} #{hex} #{uwp} #{bases} " \
|
|
25
25
|
"#{trade_codes.ljust(19)} #{travel_code} #{pbg} #{allegiance[0..1]}"
|
|
26
26
|
end
|
|
27
27
|
|
data/lib/sector_maker/version.rb
CHANGED
data/lib/sector_maker/world.rb
CHANGED
|
@@ -23,17 +23,13 @@ module SectorMaker
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def attributes_to_ehex
|
|
26
|
-
[
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def adjust_to_range(number, min_value: 0, max_value: 10)
|
|
36
|
-
[[number, min_value].max, max_value].min
|
|
26
|
+
[size,
|
|
27
|
+
atmosphere,
|
|
28
|
+
hydrographics,
|
|
29
|
+
population,
|
|
30
|
+
government,
|
|
31
|
+
law_level,
|
|
32
|
+
tech_level].map { |value| EHEX[value] }.join.insert(6, "-")
|
|
37
33
|
end
|
|
38
34
|
|
|
39
35
|
def random_starport
|
|
@@ -51,21 +47,21 @@ module SectorMaker
|
|
|
51
47
|
end
|
|
52
48
|
|
|
53
49
|
def random_atmosphere
|
|
54
|
-
return 0 if
|
|
50
|
+
return 0 if size < 2
|
|
55
51
|
|
|
56
|
-
result = flux +
|
|
52
|
+
result = flux + size
|
|
57
53
|
|
|
58
54
|
adjust_to_range(result, max_value: 15)
|
|
59
55
|
end
|
|
60
56
|
|
|
61
57
|
def atmosphere_mod
|
|
62
|
-
return
|
|
58
|
+
return atmosphere unless atmosphere < 2 || atmosphere > 9
|
|
63
59
|
|
|
64
|
-
|
|
60
|
+
atmosphere - 4
|
|
65
61
|
end
|
|
66
62
|
|
|
67
63
|
def random_hydrographics
|
|
68
|
-
return 0 if
|
|
64
|
+
return 0 if size < 2
|
|
69
65
|
|
|
70
66
|
adjust_to_range(flux + atmosphere_mod)
|
|
71
67
|
end
|
|
@@ -81,23 +77,23 @@ module SectorMaker
|
|
|
81
77
|
end
|
|
82
78
|
|
|
83
79
|
def random_government
|
|
84
|
-
return 0 if
|
|
80
|
+
return 0 if population.zero?
|
|
85
81
|
|
|
86
|
-
adjust_to_range(flux +
|
|
82
|
+
adjust_to_range(flux + population, max_value: 15)
|
|
87
83
|
end
|
|
88
84
|
|
|
89
85
|
def random_law_level
|
|
90
|
-
adjust_to_range(flux +
|
|
86
|
+
adjust_to_range(flux + government, max_value: 18)
|
|
91
87
|
end
|
|
92
88
|
|
|
93
89
|
def random_tech_level
|
|
94
90
|
calculation = [roll,
|
|
95
|
-
STARPORT_TECH_MOD.fetch(
|
|
96
|
-
SIZE_TECH_MOD.fetch(
|
|
97
|
-
ATMOSPHERE_TECH_MOD.fetch(
|
|
98
|
-
HYDROGRAPHICS_TECH_MOD.fetch(
|
|
99
|
-
POPULATION_TECH_MOD.fetch(
|
|
100
|
-
GOVERNMENT_TECH_MOD.fetch(
|
|
91
|
+
STARPORT_TECH_MOD.fetch(starport, 0),
|
|
92
|
+
SIZE_TECH_MOD.fetch(size, 0),
|
|
93
|
+
ATMOSPHERE_TECH_MOD.fetch(atmosphere, 0),
|
|
94
|
+
HYDROGRAPHICS_TECH_MOD.fetch(hydrographics, 0),
|
|
95
|
+
POPULATION_TECH_MOD.fetch(population, 0),
|
|
96
|
+
GOVERNMENT_TECH_MOD.fetch(government, 0)].sum
|
|
101
97
|
|
|
102
98
|
adjust_to_range(calculation, max_value: 33)
|
|
103
99
|
end
|
data/lib/sector_maker.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sector_maker
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jack Kellenberger
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-09-
|
|
12
|
-
dependencies:
|
|
11
|
+
date: 2022-09-04 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: markov_namegen
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.1.4
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 0.1.4
|
|
13
27
|
description:
|
|
14
28
|
email:
|
|
15
29
|
- jackson@kellenberger.io
|
|
@@ -38,7 +52,7 @@ licenses:
|
|
|
38
52
|
- MIT
|
|
39
53
|
metadata:
|
|
40
54
|
homepage_uri: https://github.com/jmkellenberger
|
|
41
|
-
source_code_uri: https://github.com/jmkellenberger
|
|
55
|
+
source_code_uri: https://github.com/jmkellenberger/SectorMaker
|
|
42
56
|
rubygems_mfa_required: 'true'
|
|
43
57
|
post_install_message:
|
|
44
58
|
rdoc_options: []
|