kittyverse 0.3.0 → 0.4.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.
@@ -1,6 +1,13 @@
1
1
  # encoding: utf-8
2
2
 
3
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
+
4
11
  class Cattribute
5
12
 
6
13
  def self.cattributes_by_name() @@cattributes_by_name ||= {}; end
@@ -26,6 +33,7 @@ class Cattribute
26
33
 
27
34
 
28
35
  attr_accessor :type,
36
+ :key,
29
37
  :name,
30
38
  :traits,
31
39
  :recipe
@@ -44,45 +52,43 @@ class Cattribute
44
52
 
45
53
 
46
54
  ## autofill cattributes
47
- TRAITS.each do |key, h|
48
- puts "key: #{key}"
55
+ TraitType.each do |tt|
56
+ key = tt.key
57
+ puts "key: #{key}"
49
58
 
50
- tt = Traits[ key ]
51
59
  tt.cattributes ||= [] ## if nil make sure it's an empty array when starting
52
60
  ## pp tt
53
61
 
54
62
  next if [:secret, :prestige].include?( key)
55
63
 
56
- h[:kai].each do |kai, trait_name|
64
+ tt.traits.each do |t|
57
65
  ## 1) skip "unnamed" traits
58
- next if trait_name =~ /_[1-9a-z]$/
66
+ next if t.name.nil?
59
67
 
68
+ pp t.name
60
69
 
61
-
62
-
63
- ## 2) special case for totebasic - one cattribute, three traits
64
- ## (that is, totesbasic 1, totesbasic 2, totesbasic 3)
65
- if TOTESBASIC.include?( trait_name )
66
- if trait_name == TOTESBASIC.first
70
+ ## 2) special case for totesbasic - one cattribute, three traits
71
+ ## (that is, Totesbasic 1, Totesbasic 2, Totesbasic 3)
72
+ if TOTESBASIC.include?( t.name )
73
+ if t.name == TOTESBASIC.first
67
74
  t1 = Traits[ TOTESBASIC[0] ]
68
75
  t2 = Traits[ TOTESBASIC[1] ]
69
76
  t3 = Traits[ TOTESBASIC[2] ]
70
77
 
71
78
  cattribute = Cattribute.new(
72
- name: 'totesbasic',
73
- type: tt,
79
+ key: 'totesbasic'.to_sym,
80
+ name: 'Totesbasic',
81
+ type: tt,
74
82
  traits: [t1,t2,t3]
75
83
  )
76
84
  else
77
85
  next ## skip all other totesbasic traits
78
86
  end
79
87
  else
80
- t = Traits[trait_name]
81
- pp t.name
82
-
83
88
  cattribute = Cattribute.new(
84
- name: trait_name,
85
- type: tt,
89
+ key: t.name.to_sym,
90
+ name: t.name,
91
+ type: tt,
86
92
  traits: [t]
87
93
  )
88
94
  ## pp cattribute
@@ -90,7 +96,7 @@ class Cattribute
90
96
 
91
97
  tt.cattributes << cattribute
92
98
 
93
- cattributes_by_name[ cattribute.name ] = cattribute
99
+ cattributes_by_name[ cattribute.name.downcase ] = cattribute
94
100
  end
95
101
  end
96
102
 
@@ -102,14 +108,15 @@ class Cattribute
102
108
  pp h
103
109
 
104
110
  cattribute = Cattribute.new(
105
- name: key.to_s,
106
- type: tt,
111
+ key: key,
112
+ name: h[:name],
113
+ type: tt,
107
114
  traits: [], ## empty traits
108
115
  recipe: h[:recipe] ## todo/fix: add recipe as a struct (NOT as a hash)
109
116
  )
110
117
  tt.cattributes << cattribute
111
118
 
112
- cattributes_by_name[ cattribute.name ] = cattribute
119
+ cattributes_by_name[ cattribute.name.downcase ] = cattribute
113
120
  end
114
121
 
115
122
 
@@ -0,0 +1,550 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ #
5
+ # for latest updates on new fancies/exclusives see:
6
+ # https://updates.cryptokitties.co (official latest updates/timeline)
7
+ #
8
+ # or see
9
+ # https://blog.kotobaza.co/timeline/
10
+
11
+
12
+ ##
13
+ ## todo/fix:
14
+ ## use count: for time-limited fancies do NOT use limit!!! change limit to count!!!
15
+
16
+ ##
17
+ ## note:
18
+ ## for time limits for fancies use:
19
+ ## e.g. time: { end: '2018-12-07' } # until dec/7
20
+ ##
21
+ ## for overflows for limited edition use:
22
+ ## e.g. overflow: 1 # 888+1 (=889)
23
+
24
+
25
+ ### todo/fix:
26
+ ## split into EXCLUSIVES
27
+ ## and into SPECIAL_EDITIONS (SPECIALS?) - why? why not?
28
+
29
+
30
+
31
+ FANCIES =
32
+ {
33
+ # Apr 27, 2019
34
+ # Krakitten Fancy Cat is discovered. Fancy Cat
35
+ krakitten: { name: 'Krakitten',
36
+ recipe: {
37
+ time: { start: '2019-04-27', end: '2019-05-06' },
38
+ traits: ['cobalt', 'ducky', 'salty', 'splat']}
39
+ },
40
+ # Apr 13, 2019
41
+ # Furbeard Fancy Cat is discovered. Fancy Cat
42
+ furbeard: { name: 'Furbeard', date: '2019-04-13',
43
+ recipe: {
44
+ limit: 3733, ### todo -check if furbear was time windowed???
45
+ traits: ['inflatablepool', 'hanauma', 'neckbeard']}
46
+ },
47
+
48
+ # Apr 10, 2019
49
+ # Sparkles Special Edition Cat is released.Special Edition Cat
50
+ sparkles: { name: 'Sparkles', date: '2019-04-10',
51
+ specialedition: {
52
+ limit: 100 },
53
+ desc: 'Freebie for CryptoKitties Community Events'
54
+ },
55
+
56
+ papacatuanuku: { name: 'Papacatuanuku', date: '2019-03-31',
57
+ exclusive: {
58
+ limit: 1, ids: [1500000] },
59
+ desc: 'Kitty #1500000'
60
+ },
61
+
62
+ # Mar 30, 2019
63
+ # Glitter Fancy Cat is discovered. Fancy Cat
64
+ glitter: { name: 'Glitter',
65
+ recipe: {
66
+ time: { start: '2019-03-30', end: '2019-11-30'},
67
+ traits: ['rorschach', 'juju', 'unicorn', 'hyacinth'] }
68
+ },
69
+
70
+
71
+ # Mar 26, 2019
72
+ # Sir Meowsalot Exclusive Cat is released. Exclusive Cat
73
+ sirmeowsalot: { name: 'Sir Meowsalot', date: '2019-03-26',
74
+ exclusive: {
75
+ limit: 21, ids: (201..221).to_a }
76
+ },
77
+
78
+ # Mar 16, 2019
79
+ # Clover Fancy Cat is discovered. Fancy Cat
80
+ clover: { name: 'Clover', date: '2019-03-16',
81
+ recipe: {
82
+ limit: 2506,
83
+ traits: ['shamrock', 'emeraldgreen', 'roadtogold', 'PU27'] },
84
+ desc: "Celebrating St. Patrick's Day 2019 (March/19th)"
85
+ },
86
+
87
+ # Mar 2, 2019
88
+ # Glasswalker Fancy Cat is discovered. Fancy Cat
89
+ glasswalker: { name: 'Glasswalker', date: '2019-03-02',
90
+ recipe: {
91
+ limit: 1230,
92
+ traits: ['cloudwhite', 'henna', 'pearl', 'firedup'] },
93
+ desc: "Ninja Fancy Cat"
94
+ },
95
+
96
+ cyberberry: { name: 'Cyber Berry', date: '2019-03-02',
97
+ exclusive: {
98
+ limit: 1, ids: [282] },
99
+ desc: "Winner of the NFTme Sweetstakes"
100
+ },
101
+
102
+ # Mar 1, 2019
103
+ # Hinecatone Exclusive Cat is discovered. Exclusive Cat
104
+ hinecatone: { name: 'Hinecatone', date: '2019-03-01',
105
+ exclusive: {
106
+ limit: 15, ids: [1423547, 1433380, 1433486, 1440835, 1453366, 1456935, 1456973, 1459319, 1463197, 1466118, 1474082, 1484593, 1484982, 1492154, 1498885]}
107
+ },
108
+
109
+
110
+ # Feb 21, 2019
111
+ # Ande Fancy Cat is discovered. Fancy Cat
112
+ ande: { name: 'Ande', date: '2019-02-21',
113
+ recipe: {
114
+ limit: 440,
115
+ traits: ['munchkin', 'cashewmilk', 'moue', 'PU30', 'WE10'] }
116
+ },
117
+ # Feb 17, 2019
118
+ # Al Fancy Cat is discovered. Fancy Cat
119
+ al: { name: 'Al',
120
+ recipe: {
121
+ time: { start: '2019-02-17', end: '2019-12-01'},
122
+ traits: ['munchkin','moue','cashewmilk','brownies'] }
123
+ },
124
+ # Feb 16, 2019
125
+ # Pizzazz Fancy Cat is discovered.Fancy Cat
126
+ pizzazz: { name: 'Pizzazz',
127
+ recipe: {
128
+ time: { start: '2019-02-16', end: '2019-12-01'},
129
+ traits: ['mekong', 'scarlet', 'spangled', 'wonky'] }
130
+ },
131
+
132
+ # Feb 15, 2019
133
+ # Felono Exclusive Cat is discovered. Exclusive Cat
134
+ felono: { name: 'Felono', date: '2019-02-15',
135
+ exclusive: {
136
+ limit: 30, ids: [1394641, 1404595, 1406021, 1413065, 1414375, 1420553, 1421315, 1421864, 1424104 ,1425433, 1431823, 1435517, 1436333, 1449860, 1451482, 1455458, 1459320, 1462952, 1463069, 1476999, 1483225, 1487210, 1487551, 1489681, 1490345, 1491632, 1492206, 1492739, 1492817, 1498778]}
137
+ },
138
+
139
+ # Feb 9, 2019
140
+ # Miss Purrfect Fancy Cat is discovered.Fancy Cat
141
+ misspurrfect: { name: 'Miss Purrfect', date: '2019-02-09',
142
+ recipe: {
143
+ limit: 1298,
144
+ traits: ['allyouneed', 'butterscotch', 'asif', 'satiated', 'flapflap']},
145
+ desc: "Celebrating St. Valentine's Day 2019 (Feb/14th)"
146
+ },
147
+
148
+ ## 2019
149
+ ## January
150
+
151
+ # Jan 26, 2019
152
+ # Squib Fancy Cat is discovered. Fancy Cat
153
+ squib: { name: 'Squib', date: '2019-01-26',
154
+ recipe: {
155
+ limit: 1443,
156
+ traits: ['oldlace', 'razzledazzle', 'buzzed', 'rollercoaster']},
157
+ desc: 'Celebrating American Football Super Bowl LIII in 2019'
158
+ },
159
+
160
+ tallythepurrocious: { name: 'Tally The Purrocious',
161
+ recipe: {
162
+ time: { start: '2019-01-10', end: '2019-01-21' }, count: 3992,
163
+ traits: ['selkirk', 'koala', 'arcreactor', 'sully'] },
164
+ desc: 'Gods Unchained Promotion - Mystical Cat Talisman'
165
+ },
166
+ ## date: '2019-01-10 ??? -- use for date "announced" or something - why? why not?
167
+ aeoncat: { name: 'Aeoncat',
168
+ specialedition: {
169
+ time: { start: '2019-01-17', end: '2019-01-28' },
170
+ limit: 380 }, ## Don't sleep - there's only 380 up for grabs!
171
+ desc: 'Goddess Aeona - Goddess of Nature - Gods Unchained Promotion'
172
+ },
173
+ hypurrion: { name: 'Hypurrion', date: '2019-01-10',
174
+ exclusive: {
175
+ limit: 1, ids: [269]},
176
+ desc: 'Hyperion - Mythic Titan of Light - Gods Unchained Promotion'
177
+ },
178
+
179
+ ## 2018
180
+ ## December
181
+ catzy: { name: 'Catzy', date: '2018-12-31',
182
+ specialedition: {
183
+ limit: 10, ids: (1137653..1137662).to_a },
184
+ desc: 'Changpeng "CZ" Zhao - CEO of Binance - Top 10 Blockchain Influencer of the Year 2018 by CoinDesk'
185
+ },
186
+ purremyallaire: { name: 'Purremy Allaire', date: '2018-12-31',
187
+ specialedition: {
188
+ limit: 10, ids: (1137663..1137672).to_a },
189
+ desc: 'Jeremy Allaire - Top 10 Blockchain Influencer of the Year 2018 by CoinDesk'
190
+ },
191
+ genedough: { name: 'Gene Dough',
192
+ recipe: {
193
+ time: { start: '2018-12-23', end: '2019-01-07' }, count: 1376,
194
+ traits: ['hotcocoa', 'mittens', 'frosting'] }
195
+ },
196
+ pawrula: { name: 'Pawrula the Bright',
197
+ recipe: {
198
+ time: { start: '2018-12-15', end: '2019-11-30' },
199
+ traits: ['camo', 'butterscotch', 'fox'] },
200
+ desc: 'Neha Narula - Director of the Digital Currency Initiative at the MIT Media Lab'
201
+ },
202
+
203
+ ## November
204
+ draco: { name: 'Draco',
205
+ recipe: {
206
+ time: { start: '2018-11-30', end: '2018-12-07' }, count: 1115,
207
+ traits: ['toyger', 'martian', 'peppermint', 'dragonwings', 'SE03'] }
208
+ },
209
+ dracothemagnificent: { name: 'Draco The Magnificent', date: '2018-11-27',
210
+ exclusive: {
211
+ limit: 12, ids: (270..281).to_a }
212
+ },
213
+ bugcatv2: { name: 'Bug Cat V2', date: '2018-11-27',
214
+ exclusive: {
215
+ limit: 20, ids: (167..186).to_a },
216
+ desc: 'Bug Bounty II (Offers Contract) Kitty'
217
+ },
218
+ dracojunior: { name: 'Draco Junior',
219
+ recipe: {
220
+ time: { start: '2018-11-26', end: '2018-12-07' }, count: 1398,
221
+ traits: ['lynx', 'verdigris', 'dragontail', 'SE03']}
222
+ },
223
+ dreggo: { name: 'Dreggo',
224
+ recipe: {
225
+ time: { start: '2018-11-21', end: '2018-12-07' }, count: 3624,
226
+ traits: ['siberian', 'bananacream', 'SE03'] }
227
+ },
228
+ pickles: { name: 'Pickles', date: '2018-11-14',
229
+ recipe: {
230
+ limit: 303,
231
+ traits: ['lynx', 'martian', 'highsociety', 'emeraldgreen']}
232
+ },
233
+ lilbub: { name: 'Lil Bub Ub Bub (BUB)', date: '2018-11-13',
234
+ specialedition: {
235
+ limit: 468 }
236
+ },
237
+
238
+ lilbubthemagicalspacecat: { name: 'Lil Bub Ub Bub (BUB) The Magical Space Cat', date: '2018-11-13',
239
+ exclusive: {
240
+ limit: 3, ids: [266,267,268]}
241
+ },
242
+
243
+ ## October
244
+ dukecat: { name: 'Dukecat', date: '2018-10-18',
245
+ recipe: {
246
+ limit: 1366,
247
+ traits: ['cymric', 'periwinkle', 'simple', 'tongue']}
248
+ },
249
+ sheilapurren: { name: 'Sheila Purren', date: '2018-10-04',
250
+ recipe: {
251
+ limit: 1971,
252
+ traits: ['mauveover', 'icy', 'wingtips', 'fangtastic']},
253
+ desc: 'Sheila Warren Kitty-fied - Head of Blockchain and Distributed Ledger Technology at the World Economic Forum (WEF)'
254
+ },
255
+
256
+ ## September
257
+ pawzilla: { name: 'Pawzilla', date: '2018-09-22',
258
+ recipe: {
259
+ limit: 1185,
260
+ traits: ['jaguar', 'universe', 'atlantis', 'littlefoot']}
261
+ },
262
+ vulcat: { name: 'Vulcat', date: '2018-09-12',
263
+ exclusive: {
264
+ limit: 1, ids: [1000000] },
265
+ desc: '1 000 000th Kitty'
266
+ },
267
+ meowstro: { name: 'Meowstro', date: '2018-09-09',
268
+ recipe: {
269
+ limit: 1698,
270
+ traits: ['onyx', 'wowza', 'eclipse']}
271
+ },
272
+ atlas: { name: 'Atlas', date: '2018-09-07',
273
+ recipe: {
274
+ limit: 998,
275
+ traits: ['highlander', 'kittencream', 'swarley', 'topoftheworld']}
276
+ },
277
+
278
+ ## August
279
+ vulcant: { name: 'Vulcant', date: '2018-08-31',
280
+ exclusive: {
281
+ limit: 20, ids: [932914,937360,938299,946526,948925,949058,950617,952280,952981,956374,956908,958570,964205,967234,983046,984451,990713,992861,995745,997469] }
282
+ },
283
+ purrity: { name: 'Purrity', date: '2018-08-23',
284
+ recipe: {
285
+ limit: 5984,
286
+ traits: ['selkirk', 'chronic', 'cloudwhite', 'cheeky'] }
287
+ },
288
+ rabbidkitty: { name: 'Rabbid Kitty', date: '2018-08-23',
289
+ exclusive: {
290
+ limit: 6, ids: (260..265).to_a },
291
+ desc: 'Ubisoft Blockchain Heroes Hackathon'
292
+ },
293
+ squiddlesworth: { name: 'Squiddlesworth', date: '2018-08-16',
294
+ recipe: {
295
+ limit: 1510,
296
+ traits: ['sphynx', 'redvelvet', 'patrickstarfish', 'dragontail'] },
297
+ desc: 'Lava Squid Cat'
298
+ },
299
+
300
+ ## July
301
+ purrspero: { name: 'Purrspero', date: '2018-07-27',
302
+ recipe: {
303
+ limit: 4448,
304
+ traits: ['dippedcone', 'googly', 'royalpurple', 'beard']}
305
+ },
306
+ catbury: { name: 'Catbury', date: '2018-07-25',
307
+ recipe: {
308
+ limit: 76,
309
+ traits: ['ragdoll', 'crazy', 'chocolate', 'mintmacaron', 'yokel', 'WE02']}
310
+ },
311
+ honu: { name: 'Honu', date: '2018-07-20',
312
+ exclusive: {
313
+ limit: 1, ids: [251] },
314
+ desc: 'Kitties for Good - Save Turtle Habitats'
315
+ },
316
+ victoire: { name: 'Victoire', date: '2018-07-18',
317
+ exclusive: {
318
+ limit: 1, ids: [402] },
319
+ desc: 'France Football World Cup Champion'
320
+ },
321
+ lulu: { name: 'Lulu', date: '2018-07-13',
322
+ recipe: {
323
+ limit: 999,
324
+ traits: ['cyan', 'verdigris', 'turtleback', 'salty']}
325
+ },
326
+ boot: { name: 'Boot', date: '2018-07-05',
327
+ recipe: {
328
+ limit: 1440,
329
+ traits: ['ganado', 'wiley', 'cerulian', 'rollercoaster'],
330
+ variants: {
331
+ belgium: { name: 'Belgium', count: 97, traits: [['orangesoda','onyx']]}, ## Base Color: Orangesoda / Onyx
332
+ brazil: { name: 'Brazil', count: 195, traits: [['hintomint','bananacream','verdigris']]}, ## Base Color: Hintomint / Bananacream / Verdigris
333
+ croatia: { name: 'Croatia', count: 253, traits: [['cottoncandy','mauveover','oldlace']]}, ## Base Color: Cottoncandy / Mauveover / Oldlace
334
+ england: { name: 'England', count: 168, traits: [['greymatter','martian']]}, ## Base Color: Greymatter / Martian
335
+ france: { name: 'France', count: 317, traits: [['harbourfog','cinderella','lavender']]}, ## Base Color: Harbourfog / Cinderella / Lavender
336
+ russia: { name: 'Russia', count: 94, traits: [['shadowgrey','salmon','cloudwhite']]}, ## Base Color: Shadowgrey / Salmon/ Cloudwhite
337
+ sweden: { name: 'Sweden', count: 123, traits: [['brownies','dragonfruit','redvelvet']]}, ## Base Color: Brownies / Dragonfruit / Redvelvet
338
+ uruguay: { name: 'Uruguay', count: 193, traits: [['aquamarine','nachocheez','koala']]}, ## Base Color: Aquamarine / Nachocheez / Koala
339
+ }},
340
+ desc: 'Football World Cup',
341
+ },
342
+ ## note: boot - different variants for world cup teams
343
+ ## Although there are 8 unique Fancies, they're actually each a variant on the same Fancy - Boot.
344
+ ## Their colours are different, and you can collect all 8 as a set
345
+
346
+ ## June
347
+ raspoutine: { name: 'Raspoutine', date: '2018-06-28',
348
+ recipe: {
349
+ limit: 1867,
350
+ traits: ['buzzed', 'nachocheez', 'sandalwood', 'belch']}
351
+ },
352
+ furlin: { name: 'Furlin', date: '2018-06-26',
353
+ exclusive: {
354
+ limit: 52, ids: (115..126).to_a + (128..166).to_a }
355
+ },
356
+ kittypride: { name: 'Kitty Pride', date: '2018-06-21',
357
+ recipe: {
358
+ limit: 1316,
359
+ traits: ['fabulous','cinderella','garnet']}
360
+ },
361
+ furrmingo: { name: 'Furrmingo', date: '2018-06-14',
362
+ recipe: {
363
+ limit: 333,
364
+ traits: ['bobtail', 'egyptiankohl', 'flamingo', 'whixtensions']}
365
+ },
366
+
367
+ ## May
368
+ page: { name: 'Page', date: '2018-05-31',
369
+ recipe: {
370
+ limit: 50_000,
371
+ traits: ['rascal', 'peach', 'wasntme' ]}
372
+ },
373
+ "schrödingerscat": { name: "Schrödinger's Cat", date: '2018-05-20',
374
+ recipe: {
375
+ limit: 73,
376
+ traits: ['forgetmenot','tinybox','PU20','SE25']}
377
+ },
378
+ chatplongeur: { name: 'Chat Plongeur', date: '2018-05-19',
379
+ recipe: {
380
+ limit: 1910,
381
+ traits: ['aquamarine', 'skyblue', 'seafoam'] }
382
+ },
383
+ docpurr: { name: 'Doc Purr', date: '2018-05-16',
384
+ recipe: {
385
+ limit: 250,
386
+ traits: ['persian','spock','raisedbrow','violet','tongue'] }
387
+ },
388
+ celestialcyberdimension: { name: 'Celestial Cyber Dimension', date: '2018-05-12',
389
+ exclusive: {
390
+ limit: 1, ids: [127] }
391
+ },
392
+ swish: { name: 'Swish', date: '2018-05-08',
393
+ recipe: {
394
+ limit: 2880,
395
+ traits: ['norwegianforest', 'luckystripe', 'thicccbrowz', 'orangesoda'] }
396
+ },
397
+
398
+ ## April
399
+ flutterbee: { name: 'Flutterbee', date: '2018-04-28',
400
+ recipe: {
401
+ limit: 275,
402
+ traits: ['cloudwhite','jaguar','lemonade','azaleablush','WE14'] }
403
+ },
404
+ vernon: { name: 'Vernon', date: '2018-04-16',
405
+ recipe: {
406
+ limit: 320,
407
+ traits: ['amur','fabulous','cottoncandy','springcrocus','belleblue','soserious']},
408
+ desc: 'Spring Equinox Kitty' ## first, see https://www.cryptokitties.co/kitty/696398
409
+ },
410
+
411
+ ## March
412
+ berry: { name: 'Berry', date: '2018-03-16',
413
+ recipe: {
414
+ limit: 200,
415
+ traits: ['dragonfruit','thunderstruck','emeraldgreen','apricot','simple'] }
416
+ },
417
+ pussforprogress: { name: 'Puss For Progress', date: '2018-03-08',
418
+ recipe: {
419
+ limit: 1920,
420
+ traits: ['himalayan','peach','safetyvest','gerbil'] },
421
+ desc: "Women's Day"
422
+ },
423
+ fortunecat: { name: 'Fortune Cat', name_cn: '红包喵', date: '2018-03-08',
424
+ recipe: {
425
+ limit: 888,
426
+ traits: ['harbourfog','calicool','swampgreen','sapphire','beard']}
427
+ }, ## todo: check date for china launch specials!!!
428
+ goldendragoncat: { name: 'Golden Dragon Cat', name_cn: '帝龙喵', date: '2018-03-08',
429
+ exclusive: {
430
+ limit: 1, ids: [888] },
431
+ desc: 'China Launch'
432
+ }, ## todo: check date for china launch specials!!!
433
+ goldendogcat: { name: 'Golden Dog Cat', name_cn: '旺财汪', date: '2018-03-08',
434
+ exclusive: {
435
+ limit: 11, ids: [1802,1803,1805,1806,1808,1809,1812,1816]+(1825..1828).to_a },
436
+ desc: 'China Launch'
437
+ }, ## todo: check date for china launch specials!!!
438
+ liondance: { name: 'Lion Dance', name_cn: '咚咚锵', date: '2018-03-07',
439
+ recipe: {
440
+ limit: 888, overflow: 1, ## use count 889 ?? - why? why not?
441
+ traits: ['manx','royalblue','googly','starstruck']}
442
+ },
443
+ dogcat: { name: 'Dog Cat', name_cn: '汪星爷', date: '2018-03-02',
444
+ recipe: {
445
+ limit: 88,
446
+ traits: ['tigerpunk','periwinkle','barkbrown','sweetmeloncakes','yokel']},
447
+ desc: 'Year of the Dog (Greater China)'
448
+ },
449
+ knightkitty: { name: 'Knight Kitty', date: '2018-03-01',
450
+ exclusive: {
451
+ limit: 11, ids: (104..114).to_a }
452
+ },
453
+
454
+ ## February
455
+ tabby: { name: 'Tabby', date: '2018-02-26',
456
+ recipe: {
457
+ limit: 250,
458
+ traits: ['ragamuffin','morningglory','otaku','cheeky'] }
459
+ },
460
+ yuricatsuki: { name: 'Yuri Catsuki', date: '2018-02-20',
461
+ recipe: {
462
+ limit: 250,
463
+ traits: ['cymric','tiger','neckbeard','elk'] },
464
+ desc: 'Figure Scating Kitty - Winter Olympics (Korea)'
465
+ },
466
+ misterpurrfect: { name: 'Mister Purrfect', date: '2018-02-14',
467
+ recipe: {
468
+ limit: 1000,
469
+ traits: ['chocolate','baddate','strawberry','wuvme'] },
470
+ desc: "Valentine's Day"
471
+ },
472
+ earnie: { name: 'Earnie', date: '2018-02-13',
473
+ recipe: {
474
+ limit: 500,
475
+ traits: ['birman','orangesoda','hotrod','grim'] },
476
+ desc: 'Earn.com - Golden Kitty Award (Product Hunt)'
477
+ },
478
+ cathena: { name: 'Cathena', date: '2018-02-06',
479
+ exclusive: {
480
+ limit: 1, ids: [500000] },
481
+ desc: '500 000th Kitty'
482
+ },
483
+
484
+ ## January
485
+ 'momo-chan': { name: 'Momo-chan', date: '2018-01-31',
486
+ recipe: {
487
+ limit: 500,
488
+ traits: ['onyx','henna','bloodred','wolfgrey','sass'] },
489
+ desc: 'Ninja Kitty'
490
+ },
491
+ negato: { name: 'Negato', date: '2018-01-29',
492
+ recipe: {
493
+ limit: 500,
494
+ traits: ['onyx','henna','wolfgrey','slyboots'] },
495
+ desc: 'Ninja Kitty'
496
+ },
497
+ stitches: { name: 'Stitches', date: '2018-01-10',
498
+ recipe: {
499
+ limit: 500,
500
+ traits: ['hintomint','seafoam','swampgreen','saycheese'] },
501
+ desc: 'Zombie Kitty'
502
+ },
503
+
504
+ ## 2017
505
+ ## December
506
+ phuziqaat: { name: 'Phu Ziqaat', date: '2017-12-31',
507
+ recipe: {
508
+ limit: 1000,
509
+ traits: ['chartreux','spock','alien','pouty'] },
510
+ desc: 'Alien Kitty'
511
+ },
512
+ santaclaws: { name: 'Santa Claws', date: '2017-12-12',
513
+ recipe: {
514
+ limit: 1000, overflow: 2,
515
+ traits: ['cloudwhite','scarlet','beard','wild_d'] },
516
+ desc: 'Ho Ho Ho - Santa Claus Kitty'
517
+ },
518
+ mistletoe: { name: 'Mistletoe', date: '2017-12-09',
519
+ recipe: {
520
+ limit: 2000,
521
+ traits: ['oldlace','crazy','gerbil'] },
522
+ desc: "XMas Kitty"
523
+ },
524
+ dracula: { name: 'Dracula', date: '2017-12-01',
525
+ recipe: {
526
+ limit: 2000,
527
+ traits: ['laperm','spock','strawberry','WE01'] }
528
+ },
529
+
530
+ ## November
531
+ ducat: { name: 'Du Cat', date: '2017-11-29',
532
+ recipe: {
533
+ limit: 10_000,
534
+ traits: ['cymric','tongue']}
535
+ },
536
+ genesis: { name: 'Genesis', date: '2017-11-24',
537
+ exclusive: {
538
+ limit: 1, ids: [1] },
539
+ desc: '1st Kitty'
540
+ },
541
+ shipcat: { name: 'Ship Cat', date: '2017-11-23',
542
+ recipe: {
543
+ limit: 2000,
544
+ traits: ['sphynx','orangesoda','luckystripe','crazy']}
545
+ },
546
+ bugcat: { name: 'Bug Cat', date: '2017-11-23',
547
+ exclusive: {
548
+ limit: 3, ids: [101,102,103] },
549
+ desc: 'Bug Bounty Kitty' }
550
+ }