From e532c47753c112f8168de7354d255efb95f1f0b8 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 12 Mar 2018 03:08:43 +0100 Subject: split --- internal/character/character.go | 101 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 internal/character/character.go (limited to 'internal/character/character.go') 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`, +} -- cgit v1.2.3