File size: 9,070 Bytes
760ff9a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
const _ = require('lodash');
const dedent = require('dedent-tabs').default;

const features = [
	'Astrological Botany',   'Biochemical Sorcery',   'Civil Divination',
	'Consecrated Augury',    'Demonic Anthropology',  'Divinatory Mineralogy',
	'Exo Interfacer',        'Genetic Banishing',     'Gunpowder Torturer',
	'Gunslinger Corruptor',  'Hermetic Geography',    'Immunological Cultist',
	'Malefic Chemist',       'Mathematical Pharmacy', 'Nuclear Biochemistry',
	'Orbital Gravedigger',   'Pharmaceutical Outlaw', 'Phased Linguist',
	'Plasma Gunslinger',     'Police Necromancer',    'Ritual Astronomy',
	'Sixgun Poisoner',       'Seismological Alchemy', 'Spiritual Illusionism',
	'Statistical Occultism', 'Spell Analyst',         'Torque Interfacer'
].map((f)=>_.padEnd(f, 21)); // Pad to equal length of 21 chars long

const classnames = [
	'Ackerman', 'Berserker-Typist', 'Concierge', 'Fishmonger',
	'Haberdasher', 'Manicurist', 'Netrunner', 'Weirkeeper'
];

module.exports = {
	non : function(snippetClasses){
		return dedent`
		{{${snippetClasses}
		##### The ${_.sample(classnames)}
		| Level | Proficiency Bonus | Features | ${_.sample(features)} |
		|:-----:|:-----------------:|:---------|:---------------------:|
		|  1st  |  +2  | ${_.sample(features)} |          2            |
		|  2nd  |  +2  | ${_.sample(features)} |          2            |
		|  3rd  |  +2  | ${_.sample(features)} |          3            |
		|  4th  |  +2  | ${_.sample(features)} |          3            |
		|  5th  |  +3  | ${_.sample(features)} |          3            |
		|  6th  |  +3  | ${_.sample(features)} |          4            |
		|  7th  |  +3  | ${_.sample(features)} |          4            |
		|  8th  |  +3  | ${_.sample(features)} |          4            |
		|  9th  |  +4  | ${_.sample(features)} |          4            |
		| 10th  |  +4  | ${_.sample(features)} |          4            |
		| 11th  |  +4  | ${_.sample(features)} |          4            |
		| 12th  |  +4  | ${_.sample(features)} |          5            |
		| 13th  |  +5  | ${_.sample(features)} |          5            |
		| 14th  |  +5  | ${_.sample(features)} |          5            |
		| 15th  |  +5  | ${_.sample(features)} |          5            |
		| 16th  |  +5  | ${_.sample(features)} |          5            |
		| 17th  |  +6  | ${_.sample(features)} |          6            |
		| 18th  |  +6  | ${_.sample(features)} |          6            |
		| 19th  |  +6  | ${_.sample(features)} |          6            |
		| 20th  |  +6  | ${_.sample(features)} |      unlimited        |
		}}\n\n`;
	},

	full : function(snippetClasses){
		return dedent`
		{{${snippetClasses}
		##### The ${_.sample(classnames)}
		| Level | Proficiency | Features     | Cantrips | --- Spell Slots Per Spell Level ---|||||||||
		|      ^| Bonus      ^|             ^| Known   ^|1st |2nd |3rd |4th |5th |6th |7th |8th |9th |
		|:-----:|:-----------:|:-------------|:--------:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
		|  1st  | +2 | ${_.sample(features)} |    2     | 2  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  |
		|  2nd  | +2 | ${_.sample(features)} |    2     | 3  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  |
		|  3rd  | +2 | ${_.sample(features)} |    2     | 4  | 2  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  |
		|  4th  | +2 | ${_.sample(features)} |    3     | 4  | 3  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  |
		|  5th  | +3 | ${_.sample(features)} |    3     | 4  | 3  | 2  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  |
		|  6th  | +3 | ${_.sample(features)} |    3     | 4  | 3  | 3  | β€”  | β€”  | β€”  | β€”  | β€”  | β€”  |
		|  7th  | +3 | ${_.sample(features)} |    3     | 4  | 3  | 3  | 1  | β€”  | β€”  | β€”  | β€”  | β€”  |
		|  8th  | +3 | ${_.sample(features)} |    3     | 4  | 3  | 3  | 2  | β€”  | β€”  | β€”  | β€”  | β€”  |
		|  9th  | +4 | ${_.sample(features)} |    3     | 4  | 3  | 3  | 2  | 1  | β€”  | β€”  | β€”  | β€”  |
		| 10th  | +4 | ${_.sample(features)} |    3     | 4  | 3  | 3  | 2  | 1  | β€”  | β€”  | β€”  | β€”  |
		| 11th  | +4 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 2  | 1  | 1  | β€”  | β€”  | β€”  |
		| 12th  | +4 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 2  | 1  | 1  | β€”  | β€”  | β€”  |
		| 13th  | +5 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 2  | 1  | 1  | 1  | β€”  | β€”  |
		| 14th  | +5 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 2  | 1  | 1  | 1  | β€”  | β€”  |
		| 15th  | +5 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 2  | 1  | 1  | 1  | 1  | β€”  |
		| 16th  | +5 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 2  | 1  | 1  | 1  | 1  | β€”  |
		| 17th  | +6 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 2  | 1  | 1  | 1  | 1  | 1  |
		| 18th  | +6 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 3  | 1  | 1  | 1  | 1  | 1  |
		| 19th  | +6 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 3  | 2  | 2  | 1  | 1  | 1  |
		| 20th  | +6 | ${_.sample(features)} |    4     | 4  | 3  | 3  | 3  | 2  | 2  | 2  | 1  | 1  |
		}}\n\n`;
	},

	half : function(snippetClasses){
		return dedent`
		{{${snippetClasses}
		##### The ${_.sample(classnames)}
		| Level | Proficiency | Features     | Spells |--- Spell Slots Per Spell Level ---|||||
		|      ^| Bonus      ^|             ^| Known ^|  1st  |  2nd  |  3rd  |  4th  |  5th  |
		|:-----:|:-----------:|:-------------|:------:|:-----:|:-----:|:-----:|:-----:|:-----:|
		|  1st  | +2 | ${_.sample(features)} |   β€”    |   β€”   |   β€”   |   β€”   |   β€”   |   β€”   |
		|  2nd  | +2 | ${_.sample(features)} |   2    |   2   |   β€”   |   β€”   |   β€”   |   β€”   |
		|  3rd  | +2 | ${_.sample(features)} |   3    |   3   |   β€”   |   β€”   |   β€”   |   β€”   |
		|  4th  | +2 | ${_.sample(features)} |   3    |   3   |   β€”   |   β€”   |   β€”   |   β€”   |
		|  5th  | +3 | ${_.sample(features)} |   4    |   4   |   2   |   β€”   |   β€”   |   β€”   |
		|  6th  | +3 | ${_.sample(features)} |   4    |   4   |   2   |   β€”   |   β€”   |   β€”   |
		|  7th  | +3 | ${_.sample(features)} |   5    |   4   |   3   |   β€”   |   β€”   |   β€”   |
		|  8th  | +3 | ${_.sample(features)} |   5    |   4   |   3   |   β€”   |   β€”   |   β€”   |
		|  9th  | +4 | ${_.sample(features)} |   6    |   4   |   3   |   2   |   β€”   |   β€”   |
		| 10th  | +4 | ${_.sample(features)} |   6    |   4   |   3   |   2   |   β€”   |   β€”   |
		| 11th  | +4 | ${_.sample(features)} |   7    |   4   |   3   |   3   |   β€”   |   β€”   |
		| 12th  | +4 | ${_.sample(features)} |   7    |   4   |   3   |   3   |   β€”   |   β€”   |
		| 13th  | +5 | ${_.sample(features)} |   8    |   4   |   3   |   3   |   1   |   β€”   |
		| 14th  | +5 | ${_.sample(features)} |   8    |   4   |   3   |   3   |   1   |   β€”   |
		| 15th  | +5 | ${_.sample(features)} |   9    |   4   |   3   |   3   |   2   |   β€”   |
		| 16th  | +5 | ${_.sample(features)} |   9    |   4   |   3   |   3   |   2   |   β€”   |
		| 17th  | +6 | ${_.sample(features)} |   10   |   4   |   3   |   3   |   3   |   1   |
		| 18th  | +6 | ${_.sample(features)} |   10   |   4   |   3   |   3   |   3   |   1   |
		| 19th  | +6 | ${_.sample(features)} |   11   |   4   |   3   |   3   |   3   |   2   |
		| 20th  | +6 | ${_.sample(features)} |   11   |   4   |   3   |   3   |   3   |   2   |
		}}\n\n`;
	},

	third : function(snippetClasses){
		return dedent`
		{{${snippetClasses}
		##### ${_.sample(classnames)} Spellcasting
		| Level | Cantrips | Spells |--- Spells Slots per Spell Level ---||||
		|      ^| Known   ^| Known ^|   1st   |   2nd   |   3rd   |   4th   |
		|:-----:|:--------:|:------:|:-------:|:-------:|:-------:|:-------:|
		|  3rd  |    2     |   3    |    2    |    β€”    |    β€”    |    β€”    |
		|  4th  |    2     |   4    |    3    |    β€”    |    β€”    |    β€”    |
		|  5th  |    2     |   4    |    3    |    β€”    |    β€”    |    β€”    |
		|  6th  |    2     |   4    |    3    |    β€”    |    β€”    |    β€”    |
		|  7th  |    2     |   5    |    4    |    2    |    β€”    |    β€”    |
		|  8th  |    2     |   6    |    4    |    2    |    β€”    |    β€”    |
		|  9th  |    2     |   6    |    4    |    2    |    β€”    |    β€”    |
		| 10th  |    3     |   7    |    4    |    3    |    β€”    |    β€”    |
		| 11th  |    3     |   8    |    4    |    3    |    β€”    |    β€”    |
		| 12th  |    3     |   8    |    4    |    3    |    β€”    |    β€”    |
		| 13th  |    3     |   9    |    4    |    3    |    2    |    β€”    |
		| 14th  |    3     |   10   |    4    |    3    |    2    |    β€”    |
		| 15th  |    3     |   10   |    4    |    3    |    2    |    β€”    |
		| 16th  |    3     |   11   |    4    |    3    |    3    |    β€”    |
		| 17th  |    3     |   11   |    4    |    3    |    3    |    β€”    |
		| 18th  |    3     |   11   |    4    |    3    |    3    |    β€”    |
		| 19th  |    3     |   12   |    4    |    3    |    3    |    1    |
		| 20th  |    3     |   13   |    4    |    3    |    3    |    1    |
		}}\n\n`;
	}
};