summaryrefslogtreecommitdiff
path: root/internal/character
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-03-12 03:08:43 +0100
committerDimitri Sokolyuk <demon@dim13.org>2018-03-12 03:08:43 +0100
commite532c47753c112f8168de7354d255efb95f1f0b8 (patch)
tree5adc7b837d9bb06bafaaf5cfef27ae5bfede802c /internal/character
parent3f3bc476993e9ca4e64404cef1fdc4bd1aed4d97 (diff)
split
Diffstat (limited to 'internal/character')
-rw-r--r--internal/character/character.go101
1 files changed, 101 insertions, 0 deletions
diff --git a/internal/character/character.go b/internal/character/character.go
new file mode 100644
index 0000000..5be6d68
--- /dev/null
+++ b/internal/character/character.go
@@ -0,0 +1,101 @@
+package character
+
+import "math/rand"
+
+//go:generate stringer -type=Attr
+
+type Attr int
+
+const (
+ CHA Attr = iota
+ CON
+ DEX
+ HPMax
+ INT
+ MPMax
+ STR
+ WIS
+ Nattr
+)
+
+type Character struct {
+ Name string
+ Attr []Attr
+}
+
+type Characters []Character
+
+func (c Characters) Pick() Character {
+ return c[rand.Intn(len(c))]
+}
+
+var Races = Characters{
+ {`Half Orc`, []Attr{HPMax}},
+ {`Half Man`, []Attr{CHA}},
+ {`Half Halfling`, []Attr{DEX}},
+ {`Double Hobbit`, []Attr{STR}},
+ {`Hob-Hobbit`, []Attr{DEX, CON}},
+ {`Low Elf`, []Attr{CON}},
+ {`Dung Elf`, []Attr{WIS}},
+ {`Talking Pony`, []Attr{MPMax, INT}},
+ {`Gyrognome`, []Attr{DEX}},
+ {`Lesser Dwarf`, []Attr{CON}},
+ {`Crested Dwarf`, []Attr{CHA}},
+ {`Eel Man`, []Attr{DEX}},
+ {`Panda Man`, []Attr{CON, STR}},
+ {`Trans-Kobold`, []Attr{WIS}},
+ {`Enchanted Motorcycle`, []Attr{MPMax}},
+ {`Will o' the Wisp`, []Attr{WIS}},
+ {`Battle-Finch`, []Attr{DEX, INT}},
+ {`Double Wookiee`, []Attr{STR}},
+ {`Skraeling`, []Attr{WIS}},
+ {`Demicanadian`, []Attr{CON}},
+ {`Land Squid`, []Attr{STR, HPMax}},
+}
+
+var Klasses = Characters{
+ {`Ur-Paladin`, []Attr{WIS, CON}},
+ {`Voodoo Princess`, []Attr{INT, CHA}},
+ {`Robot Monk`, []Attr{STR}},
+ {`Mu-Fu Monk`, []Attr{DEX}},
+ {`Mage Illusioner`, []Attr{INT, MPMax}},
+ {`Shiv-Knight`, []Attr{DEX}},
+ {`Inner Mason`, []Attr{CON}},
+ {`Fighter/Organist`, []Attr{CHA, STR}},
+ {`Puma Burgular`, []Attr{DEX}},
+ {`Runeloremaster`, []Attr{WIS}},
+ {`Hunter Strangler`, []Attr{DEX, INT}},
+ {`Battle-Felon`, []Attr{STR}},
+ {`Tickle-Mimic`, []Attr{WIS, INT}},
+ {`Slow Poisoner`, []Attr{CON}},
+ {`Bastard Lunatic`, []Attr{CON}},
+ {`Jungle Clown`, []Attr{DEX, CHA}},
+ {`Birdrider`, []Attr{WIS}},
+ {`Vermineer`, []Attr{INT}},
+}
+
+var Titles = []string{
+ `Mr.`,
+ `Mrs.`,
+ `Sir`,
+ `Sgt.`,
+ `Ms.`,
+ `Captain`,
+ `Chief`,
+ `Admiral`,
+ `Saint`,
+}
+
+var ImpressiveTitles = []string{
+ `King`,
+ `Queen`,
+ `Lord`,
+ `Lady`,
+ `Viceroy`,
+ `Mayor`,
+ `Prince`,
+ `Princess`,
+ `Chief`,
+ `Boss`,
+ `Archbishop`,
+}