-
Notifications
You must be signed in to change notification settings - Fork 0
/
person.go
52 lines (42 loc) · 1019 Bytes
/
person.go
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
// To create a basic 2d6 OGL character
// With acknowledgement of Marc Miller of FFE,
// Jason "Flynn" Kemp of Cepheus Engine,
// Rob Pike and the Google Go team,
// and Freenode#go-nuts.
package go_tools
import (
"strconv"
"strings"
)
type Person struct {
Name string
UPP [6]int
Gender string
PSR int
Age int
Terms int
Career string
}
func MakePerson(options map[string]string) Person {
terms, _ := strconv.Atoi(options["terms"])
gender := options["gender"]
db_name := options["db_name"]
var character Person
// Need to figure out pre-adult characters
if terms <= 0 {
character.Terms = NumTerms()
} else {
character.Terms = terms
}
var genders []string = []string{"F", "M"}
input_gender := strings.ToUpper(gender)
if !StringInArray(input_gender, genders) {
character.Gender = Gender()
} else {
character.Gender = input_gender
}
character.Name = GetName(character.Gender, db_name)
character.UPP = RollUPP()
character.Age = Age(character.Terms)
return character
}