kittyverse 0.4.5 → 0.5.0
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/CHANGELOG.md +3 -3
- data/Manifest.txt +3 -2
- data/README.md +428 -240
- data/Rakefile +30 -30
- data/lib/kittyverse.rb +47 -47
- data/lib/kittyverse/api/client.rb +147 -147
- data/lib/kittyverse/api/versions.rb +91 -91
- data/lib/kittyverse/cattributes.rb +131 -131
- data/lib/kittyverse/config/colors.rb +146 -146
- data/lib/kittyverse/config/fancies.rb +84 -6
- data/lib/kittyverse/config/purrstiges.rb +225 -215
- data/lib/kittyverse/config/traits_timeline.rb +288 -288
- data/lib/kittyverse/fancies.rb +205 -205
- data/lib/kittyverse/gene.rb +55 -55
- data/lib/kittyverse/genome.rb +236 -236
- data/lib/kittyverse/mewtations.rb +120 -120
- data/lib/kittyverse/version.rb +23 -23
- data/test/helper.rb +10 -10
- data/test/test_fancies.rb +16 -0
- data/test/test_genome.rb +62 -0
- data/test/test_traits.rb +174 -174
- metadata +13 -6
@@ -1,131 +1,131 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
class Cattributes
|
6
|
-
## add cattributes (traits) type lookup to Cattribute itself - why? why not?
|
7
|
-
def self.[]( key ) TraitType.find_by_key( key ).cattributes; end
|
8
|
-
end
|
9
|
-
|
10
|
-
|
11
|
-
class Cattribute
|
12
|
-
|
13
|
-
def self.cattributes_by_name() @@cattributes_by_name ||= {}; end
|
14
|
-
|
15
|
-
def self.find_by_name( name )
|
16
|
-
## note: allow string AND symbols (thus, use .to_s !!!)
|
17
|
-
## note: downcase name e.g. allow Savannah too (not just savannah)
|
18
|
-
@@cattributes_by_name[ name.downcase.to_s ]
|
19
|
-
end
|
20
|
-
|
21
|
-
## add "generic" convenience find helper
|
22
|
-
def self.find_by( **kwargs )
|
23
|
-
if kwargs[ :name ]
|
24
|
-
find_by_name( kwargs[ :name ] )
|
25
|
-
else
|
26
|
-
## todo/fix: throw argument except!!!
|
27
|
-
nil
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.[]( name ) find_by_name( name ); end
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
attr_accessor :type,
|
36
|
-
:key,
|
37
|
-
:name,
|
38
|
-
:traits,
|
39
|
-
:recipe,
|
40
|
-
:count
|
41
|
-
|
42
|
-
def initialize( **kwargs )
|
43
|
-
update( kwargs )
|
44
|
-
end
|
45
|
-
|
46
|
-
def update( **kwargs )
|
47
|
-
kwargs.each do |name,value|
|
48
|
-
send( "#{name}=", value ) ## use "regular" plain/classic attribute setter
|
49
|
-
end
|
50
|
-
self ## return self for chaining
|
51
|
-
end
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
## autofill cattributes
|
56
|
-
TraitType.each do |tt|
|
57
|
-
key = tt.key
|
58
|
-
puts "key: #{key}"
|
59
|
-
|
60
|
-
tt.cattributes ||= [] ## if nil make sure it's an empty array when starting
|
61
|
-
## pp tt
|
62
|
-
|
63
|
-
next if [:secret, :prestige].include?( key)
|
64
|
-
|
65
|
-
tt.traits.each do |t|
|
66
|
-
## 1) skip "unnamed" traits
|
67
|
-
next if t.name.nil?
|
68
|
-
|
69
|
-
pp t.name
|
70
|
-
|
71
|
-
## 2) special case for totesbasic - one cattribute, three traits
|
72
|
-
## (that is, Totesbasic 1, Totesbasic 2, Totesbasic 3)
|
73
|
-
if TOTESBASIC.include?( t.name )
|
74
|
-
if t.name == TOTESBASIC.first
|
75
|
-
t1 = Traits[ TOTESBASIC[0] ]
|
76
|
-
t2 = Traits[ TOTESBASIC[1] ]
|
77
|
-
t3 = Traits[ TOTESBASIC[2] ]
|
78
|
-
|
79
|
-
cattribute = Cattribute.new(
|
80
|
-
key: 'totesbasic'.to_sym,
|
81
|
-
name: 'Totesbasic',
|
82
|
-
type: tt,
|
83
|
-
traits: [t1,t2,t3]
|
84
|
-
)
|
85
|
-
else
|
86
|
-
next ## skip all other totesbasic traits
|
87
|
-
end
|
88
|
-
else
|
89
|
-
cattribute = Cattribute.new(
|
90
|
-
key: t.name.to_sym,
|
91
|
-
name: t.name,
|
92
|
-
type: tt,
|
93
|
-
traits: [t]
|
94
|
-
)
|
95
|
-
## pp cattribute
|
96
|
-
end
|
97
|
-
|
98
|
-
tt.cattributes << cattribute
|
99
|
-
|
100
|
-
cattributes_by_name[ cattribute.name.downcase ] = cattribute
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
## add purrstiges traits
|
105
|
-
tt = Traits[:prestige]
|
106
|
-
tt.cattributes ||= [] ## if nil make sure it's an empty array when starting
|
107
|
-
PURRSTIGES.each do |key, h|
|
108
|
-
puts "key: #{key}"
|
109
|
-
pp h
|
110
|
-
|
111
|
-
recipe = Recipe.new(
|
112
|
-
traits: h[:recipe][:traits], ## todo/fix: turn strings into trait objs!!!!
|
113
|
-
limit: h[:recipe][:limit],
|
114
|
-
time_start: h[:recipe][:time] && h[:recipe][:time][:start] ? Date.strptime( h[:recipe][:time][:start], '%Y-%m-%d' ) : nil,
|
115
|
-
time_end: h[:recipe][:time] && h[:recipe][:time][:end] ? Date.strptime( h[:recipe][:time][:end], '%Y-%m-%d' ) : nil )
|
116
|
-
|
117
|
-
cattribute = Cattribute.new(
|
118
|
-
key: key,
|
119
|
-
name: h[:name],
|
120
|
-
type: tt,
|
121
|
-
traits: [], ## empty traits
|
122
|
-
count: h[:recipe][:count], # note: add count from recipe hash (NOT incl. in recipe struct)
|
123
|
-
recipe: recipe
|
124
|
-
)
|
125
|
-
tt.cattributes << cattribute
|
126
|
-
|
127
|
-
cattributes_by_name[ cattribute.name.downcase ] = cattribute
|
128
|
-
end
|
129
|
-
|
130
|
-
|
131
|
-
end # class Cattribute
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
class Cattributes
|
6
|
+
## add cattributes (traits) type lookup to Cattribute itself - why? why not?
|
7
|
+
def self.[]( key ) TraitType.find_by_key( key ).cattributes; end
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
class Cattribute
|
12
|
+
|
13
|
+
def self.cattributes_by_name() @@cattributes_by_name ||= {}; end
|
14
|
+
|
15
|
+
def self.find_by_name( name )
|
16
|
+
## note: allow string AND symbols (thus, use .to_s !!!)
|
17
|
+
## note: downcase name e.g. allow Savannah too (not just savannah)
|
18
|
+
@@cattributes_by_name[ name.downcase.to_s ]
|
19
|
+
end
|
20
|
+
|
21
|
+
## add "generic" convenience find helper
|
22
|
+
def self.find_by( **kwargs )
|
23
|
+
if kwargs[ :name ]
|
24
|
+
find_by_name( kwargs[ :name ] )
|
25
|
+
else
|
26
|
+
## todo/fix: throw argument except!!!
|
27
|
+
nil
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.[]( name ) find_by_name( name ); end
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
attr_accessor :type,
|
36
|
+
:key,
|
37
|
+
:name,
|
38
|
+
:traits,
|
39
|
+
:recipe,
|
40
|
+
:count
|
41
|
+
|
42
|
+
def initialize( **kwargs )
|
43
|
+
update( kwargs )
|
44
|
+
end
|
45
|
+
|
46
|
+
def update( **kwargs )
|
47
|
+
kwargs.each do |name,value|
|
48
|
+
send( "#{name}=", value ) ## use "regular" plain/classic attribute setter
|
49
|
+
end
|
50
|
+
self ## return self for chaining
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
## autofill cattributes
|
56
|
+
TraitType.each do |tt|
|
57
|
+
key = tt.key
|
58
|
+
puts "key: #{key}"
|
59
|
+
|
60
|
+
tt.cattributes ||= [] ## if nil make sure it's an empty array when starting
|
61
|
+
## pp tt
|
62
|
+
|
63
|
+
next if [:secret, :prestige].include?( key)
|
64
|
+
|
65
|
+
tt.traits.each do |t|
|
66
|
+
## 1) skip "unnamed" traits
|
67
|
+
next if t.name.nil?
|
68
|
+
|
69
|
+
pp t.name
|
70
|
+
|
71
|
+
## 2) special case for totesbasic - one cattribute, three traits
|
72
|
+
## (that is, Totesbasic 1, Totesbasic 2, Totesbasic 3)
|
73
|
+
if TOTESBASIC.include?( t.name )
|
74
|
+
if t.name == TOTESBASIC.first
|
75
|
+
t1 = Traits[ TOTESBASIC[0] ]
|
76
|
+
t2 = Traits[ TOTESBASIC[1] ]
|
77
|
+
t3 = Traits[ TOTESBASIC[2] ]
|
78
|
+
|
79
|
+
cattribute = Cattribute.new(
|
80
|
+
key: 'totesbasic'.to_sym,
|
81
|
+
name: 'Totesbasic',
|
82
|
+
type: tt,
|
83
|
+
traits: [t1,t2,t3]
|
84
|
+
)
|
85
|
+
else
|
86
|
+
next ## skip all other totesbasic traits
|
87
|
+
end
|
88
|
+
else
|
89
|
+
cattribute = Cattribute.new(
|
90
|
+
key: t.name.to_sym,
|
91
|
+
name: t.name,
|
92
|
+
type: tt,
|
93
|
+
traits: [t]
|
94
|
+
)
|
95
|
+
## pp cattribute
|
96
|
+
end
|
97
|
+
|
98
|
+
tt.cattributes << cattribute
|
99
|
+
|
100
|
+
cattributes_by_name[ cattribute.name.downcase ] = cattribute
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
## add purrstiges traits
|
105
|
+
tt = Traits[:prestige]
|
106
|
+
tt.cattributes ||= [] ## if nil make sure it's an empty array when starting
|
107
|
+
PURRSTIGES.each do |key, h|
|
108
|
+
puts "key: #{key}"
|
109
|
+
pp h
|
110
|
+
|
111
|
+
recipe = Recipe.new(
|
112
|
+
traits: h[:recipe][:traits], ## todo/fix: turn strings into trait objs!!!!
|
113
|
+
limit: h[:recipe][:limit],
|
114
|
+
time_start: h[:recipe][:time] && h[:recipe][:time][:start] ? Date.strptime( h[:recipe][:time][:start], '%Y-%m-%d' ) : nil,
|
115
|
+
time_end: h[:recipe][:time] && h[:recipe][:time][:end] ? Date.strptime( h[:recipe][:time][:end], '%Y-%m-%d' ) : nil )
|
116
|
+
|
117
|
+
cattribute = Cattribute.new(
|
118
|
+
key: key,
|
119
|
+
name: h[:name],
|
120
|
+
type: tt,
|
121
|
+
traits: [], ## empty traits
|
122
|
+
count: h[:recipe][:count], # note: add count from recipe hash (NOT incl. in recipe struct)
|
123
|
+
recipe: recipe
|
124
|
+
)
|
125
|
+
tt.cattributes << cattribute
|
126
|
+
|
127
|
+
cattributes_by_name[ cattribute.name.downcase ] = cattribute
|
128
|
+
end
|
129
|
+
|
130
|
+
|
131
|
+
end # class Cattribute
|
@@ -1,146 +1,146 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
## 31 colors body
|
4
|
-
COLORS_BODY = {
|
5
|
-
meowgarine: "#fcfc95",
|
6
|
-
cornflower: "#7592fc",
|
7
|
-
icicle: "#c5e2ff",
|
8
|
-
hotcocoa: "#5e4a47",
|
9
|
-
firstblush: "#fcd0f8",
|
10
|
-
tundra: "#dbccbf",
|
11
|
-
glacier: "#ccffff",
|
12
|
-
hyacinth: "#a45de2",
|
13
|
-
shamrock: "#50c878",
|
14
|
-
shadowgrey: "#b1b1be",
|
15
|
-
salmon: "#f4a792",
|
16
|
-
orangesoda: "#f7bc56",
|
17
|
-
cottoncandy: "#ecd1eb",
|
18
|
-
mauveover: "#ded0ee",
|
19
|
-
aquamarine: "#add5d2",
|
20
|
-
nachocheez: "#fcda86",
|
21
|
-
harbourfog: "#afb4d5",
|
22
|
-
cinderella: "#5ab0f1",
|
23
|
-
greymatter: "#d1dadf",
|
24
|
-
brownies: "#b78662",
|
25
|
-
dragonfruit: "#ec79f2",
|
26
|
-
hintomint: "#d0ead2",
|
27
|
-
bananacream: "#f8f8e0",
|
28
|
-
cloudwhite: "#ffffff",
|
29
|
-
oldlace: "#ffebe9",
|
30
|
-
koala: "#85828a",
|
31
|
-
lavender: "#bc99ff",
|
32
|
-
redvelvet: "#f77272",
|
33
|
-
verdigris: "#73ffc3",
|
34
|
-
onyx: "#42414c",
|
35
|
-
martian: "#a4ff6f"
|
36
|
-
}
|
37
|
-
|
38
|
-
## 31 colors eyes
|
39
|
-
COLORS_EYES = {
|
40
|
-
olive: "#729100",
|
41
|
-
pinefresh: "#177a25",
|
42
|
-
oasis: "#ccffef",
|
43
|
-
dioscuri: "#0ba09c",
|
44
|
-
isotope: "#e4ff73",
|
45
|
-
bridesmaid: "#ffc2df",
|
46
|
-
downbythebay: "#83b293",
|
47
|
-
gemini: "#ffd150",
|
48
|
-
kaleidoscope: "#bcba5e",
|
49
|
-
thundergrey: "#828282",
|
50
|
-
gold: "#fcdf35",
|
51
|
-
topaz: "#0ba09c",
|
52
|
-
mintgreen: "#43edac",
|
53
|
-
sizzurp: "#7c40ff",
|
54
|
-
chestnut: "#a56429",
|
55
|
-
strawberry: "#ef4b62",
|
56
|
-
sapphire: "#4c7aef",
|
57
|
-
forgetmenot: "#4eb4f9",
|
58
|
-
dahlia: "#b8bdff",
|
59
|
-
coralsunrise: "#ff9088",
|
60
|
-
doridnudibranch: "#fa9fff",
|
61
|
-
parakeet: "#49b749",
|
62
|
-
cyan: "#45f0f4",
|
63
|
-
pumpkin: "#ffa039",
|
64
|
-
limegreen: "#aef72f",
|
65
|
-
bubblegum: "#ef52d1",
|
66
|
-
twilightsparkle: "#ba8aff",
|
67
|
-
palejade: "#c3d8cf",
|
68
|
-
eclipse: "#484c5b",
|
69
|
-
babypuke: "#bcba5e",
|
70
|
-
autumnmoon: "#ffe8bb"
|
71
|
-
}
|
72
|
-
|
73
|
-
## 31 colors secondary
|
74
|
-
COLORS_SECONDARY = {
|
75
|
-
cyborg: "#959cae",
|
76
|
-
ooze: "#daea31",
|
77
|
-
peppermint: "#00a86b",
|
78
|
-
inflatablepool: "#4fb9c5",
|
79
|
-
prairierose: "#e0115f",
|
80
|
-
springcrocus: "#ab7fef",
|
81
|
-
egyptiankohl: "#4a4855",
|
82
|
-
poisonberry: "#773c5f",
|
83
|
-
lilac: "#e5e5f9",
|
84
|
-
apricot: "#f4a45b",
|
85
|
-
royalpurple: "#cf5be8",
|
86
|
-
padparadscha: "#ffd5c7",
|
87
|
-
swampgreen: "#44e192",
|
88
|
-
violet: "#765be8",
|
89
|
-
scarlet: "#ea5f5a",
|
90
|
-
barkbrown: "#886662",
|
91
|
-
coffee: "#756650",
|
92
|
-
lemonade: "#ffef85",
|
93
|
-
chocolate: "#c47e33",
|
94
|
-
butterscotch: "#ffce6c",
|
95
|
-
safetyvest: "#b0f852",
|
96
|
-
turtleback: "#387573",
|
97
|
-
rosequartz: "#ffaefb",
|
98
|
-
wolfgrey: "#737184",
|
99
|
-
cerulian: "#385877",
|
100
|
-
skyblue: "#83d5ff",
|
101
|
-
garnet: "#f4679a",
|
102
|
-
universe: "#494981",
|
103
|
-
royalblue: "#5b6ee8",
|
104
|
-
mertail: "#36f2bc",
|
105
|
-
pearl: "#fff8fa"
|
106
|
-
}
|
107
|
-
|
108
|
-
## 31 colors tertiary
|
109
|
-
COLORS_TERTIARY = {
|
110
|
-
hanauma: "#7accb5",
|
111
|
-
belleblue: "#afd0f7",
|
112
|
-
peach: "#f9cfad",
|
113
|
-
granitegrey: "#b1aeb9",
|
114
|
-
kittencream: "#f7ebda",
|
115
|
-
emeraldgreen: "#8be179",
|
116
|
-
bloodred: "#ff7a7a",
|
117
|
-
daffodil: "#fff09f",
|
118
|
-
sandalwood: "#b8916c",
|
119
|
-
icy: "#eef8f8",
|
120
|
-
flamingo: "#ec87ba",
|
121
|
-
seafoam: "#9eeec5",
|
122
|
-
azaleablush: "#ffccd8",
|
123
|
-
morningglory: "#887cff",
|
124
|
-
purplehaze: "#dad6e1",
|
125
|
-
missmuffett: "#f4b3f0",
|
126
|
-
summerbonnet: "#cbb0ff",
|
127
|
-
mallowflower: "#c170b1",
|
128
|
-
fallspice: "#ff9331",
|
129
|
-
dreamboat: "#fd6cd5",
|
130
|
-
periwinkle: "#cacaff",
|
131
|
-
frosting: "#ffdce6",
|
132
|
-
patrickstarfish: "#ffad97",
|
133
|
-
mintmacaron: "#b0f1f4",
|
134
|
-
shale: "#585666",
|
135
|
-
cashewmilk: "#f9efef",
|
136
|
-
buttercup: "#f4e65d",
|
137
|
-
cobalt: "#5262db",
|
138
|
-
sully: "#70f9f9",
|
139
|
-
kalahari: "#ffcf8a",
|
140
|
-
atlantis: "#2a7f96"
|
141
|
-
}
|
142
|
-
|
143
|
-
COLORS = {}.merge( COLORS_BODY )
|
144
|
-
.merge( COLORS_EYES )
|
145
|
-
.merge( COLORS_SECONDARY )
|
146
|
-
.merge( COLORS_TERTIARY )
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
## 31 colors body
|
4
|
+
COLORS_BODY = {
|
5
|
+
meowgarine: "#fcfc95",
|
6
|
+
cornflower: "#7592fc",
|
7
|
+
icicle: "#c5e2ff",
|
8
|
+
hotcocoa: "#5e4a47",
|
9
|
+
firstblush: "#fcd0f8",
|
10
|
+
tundra: "#dbccbf",
|
11
|
+
glacier: "#ccffff",
|
12
|
+
hyacinth: "#a45de2",
|
13
|
+
shamrock: "#50c878",
|
14
|
+
shadowgrey: "#b1b1be",
|
15
|
+
salmon: "#f4a792",
|
16
|
+
orangesoda: "#f7bc56",
|
17
|
+
cottoncandy: "#ecd1eb",
|
18
|
+
mauveover: "#ded0ee",
|
19
|
+
aquamarine: "#add5d2",
|
20
|
+
nachocheez: "#fcda86",
|
21
|
+
harbourfog: "#afb4d5",
|
22
|
+
cinderella: "#5ab0f1",
|
23
|
+
greymatter: "#d1dadf",
|
24
|
+
brownies: "#b78662",
|
25
|
+
dragonfruit: "#ec79f2",
|
26
|
+
hintomint: "#d0ead2",
|
27
|
+
bananacream: "#f8f8e0",
|
28
|
+
cloudwhite: "#ffffff",
|
29
|
+
oldlace: "#ffebe9",
|
30
|
+
koala: "#85828a",
|
31
|
+
lavender: "#bc99ff",
|
32
|
+
redvelvet: "#f77272",
|
33
|
+
verdigris: "#73ffc3",
|
34
|
+
onyx: "#42414c",
|
35
|
+
martian: "#a4ff6f"
|
36
|
+
}
|
37
|
+
|
38
|
+
## 31 colors eyes
|
39
|
+
COLORS_EYES = {
|
40
|
+
olive: "#729100",
|
41
|
+
pinefresh: "#177a25",
|
42
|
+
oasis: "#ccffef",
|
43
|
+
dioscuri: "#0ba09c",
|
44
|
+
isotope: "#e4ff73",
|
45
|
+
bridesmaid: "#ffc2df",
|
46
|
+
downbythebay: "#83b293",
|
47
|
+
gemini: "#ffd150",
|
48
|
+
kaleidoscope: "#bcba5e",
|
49
|
+
thundergrey: "#828282",
|
50
|
+
gold: "#fcdf35",
|
51
|
+
topaz: "#0ba09c",
|
52
|
+
mintgreen: "#43edac",
|
53
|
+
sizzurp: "#7c40ff",
|
54
|
+
chestnut: "#a56429",
|
55
|
+
strawberry: "#ef4b62",
|
56
|
+
sapphire: "#4c7aef",
|
57
|
+
forgetmenot: "#4eb4f9",
|
58
|
+
dahlia: "#b8bdff",
|
59
|
+
coralsunrise: "#ff9088",
|
60
|
+
doridnudibranch: "#fa9fff",
|
61
|
+
parakeet: "#49b749",
|
62
|
+
cyan: "#45f0f4",
|
63
|
+
pumpkin: "#ffa039",
|
64
|
+
limegreen: "#aef72f",
|
65
|
+
bubblegum: "#ef52d1",
|
66
|
+
twilightsparkle: "#ba8aff",
|
67
|
+
palejade: "#c3d8cf",
|
68
|
+
eclipse: "#484c5b",
|
69
|
+
babypuke: "#bcba5e",
|
70
|
+
autumnmoon: "#ffe8bb"
|
71
|
+
}
|
72
|
+
|
73
|
+
## 31 colors secondary
|
74
|
+
COLORS_SECONDARY = {
|
75
|
+
cyborg: "#959cae",
|
76
|
+
ooze: "#daea31",
|
77
|
+
peppermint: "#00a86b",
|
78
|
+
inflatablepool: "#4fb9c5",
|
79
|
+
prairierose: "#e0115f",
|
80
|
+
springcrocus: "#ab7fef",
|
81
|
+
egyptiankohl: "#4a4855",
|
82
|
+
poisonberry: "#773c5f",
|
83
|
+
lilac: "#e5e5f9",
|
84
|
+
apricot: "#f4a45b",
|
85
|
+
royalpurple: "#cf5be8",
|
86
|
+
padparadscha: "#ffd5c7",
|
87
|
+
swampgreen: "#44e192",
|
88
|
+
violet: "#765be8",
|
89
|
+
scarlet: "#ea5f5a",
|
90
|
+
barkbrown: "#886662",
|
91
|
+
coffee: "#756650",
|
92
|
+
lemonade: "#ffef85",
|
93
|
+
chocolate: "#c47e33",
|
94
|
+
butterscotch: "#ffce6c",
|
95
|
+
safetyvest: "#b0f852",
|
96
|
+
turtleback: "#387573",
|
97
|
+
rosequartz: "#ffaefb",
|
98
|
+
wolfgrey: "#737184",
|
99
|
+
cerulian: "#385877",
|
100
|
+
skyblue: "#83d5ff",
|
101
|
+
garnet: "#f4679a",
|
102
|
+
universe: "#494981",
|
103
|
+
royalblue: "#5b6ee8",
|
104
|
+
mertail: "#36f2bc",
|
105
|
+
pearl: "#fff8fa"
|
106
|
+
}
|
107
|
+
|
108
|
+
## 31 colors tertiary
|
109
|
+
COLORS_TERTIARY = {
|
110
|
+
hanauma: "#7accb5",
|
111
|
+
belleblue: "#afd0f7",
|
112
|
+
peach: "#f9cfad",
|
113
|
+
granitegrey: "#b1aeb9",
|
114
|
+
kittencream: "#f7ebda",
|
115
|
+
emeraldgreen: "#8be179",
|
116
|
+
bloodred: "#ff7a7a",
|
117
|
+
daffodil: "#fff09f",
|
118
|
+
sandalwood: "#b8916c",
|
119
|
+
icy: "#eef8f8",
|
120
|
+
flamingo: "#ec87ba",
|
121
|
+
seafoam: "#9eeec5",
|
122
|
+
azaleablush: "#ffccd8",
|
123
|
+
morningglory: "#887cff",
|
124
|
+
purplehaze: "#dad6e1",
|
125
|
+
missmuffett: "#f4b3f0",
|
126
|
+
summerbonnet: "#cbb0ff",
|
127
|
+
mallowflower: "#c170b1",
|
128
|
+
fallspice: "#ff9331",
|
129
|
+
dreamboat: "#fd6cd5",
|
130
|
+
periwinkle: "#cacaff",
|
131
|
+
frosting: "#ffdce6",
|
132
|
+
patrickstarfish: "#ffad97",
|
133
|
+
mintmacaron: "#b0f1f4",
|
134
|
+
shale: "#585666",
|
135
|
+
cashewmilk: "#f9efef",
|
136
|
+
buttercup: "#f4e65d",
|
137
|
+
cobalt: "#5262db",
|
138
|
+
sully: "#70f9f9",
|
139
|
+
kalahari: "#ffcf8a",
|
140
|
+
atlantis: "#2a7f96"
|
141
|
+
}
|
142
|
+
|
143
|
+
COLORS = {}.merge( COLORS_BODY )
|
144
|
+
.merge( COLORS_EYES )
|
145
|
+
.merge( COLORS_SECONDARY )
|
146
|
+
.merge( COLORS_TERTIARY )
|