kittyverse 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,45 +1,186 @@
1
- # encoding: utf-8
2
-
3
1
  ###########################################
4
2
  ## Purrstige Traits / Cattributes
5
3
 
4
+
5
+ ## trait recipe helpers / shortcuts
6
+ EN00_EN15 = ['EN00','EN01','EN02','EN03',
7
+ 'EN04','EN05','EN06','EN07',
8
+ 'EN08','EN09','EN10','EN11',
9
+ 'EN12','EN13','EN14','EN15'] # Any non-visible Env (EN00-EN15)
10
+
11
+ PU16_PU29 = ['PU16','PU17','PU18','PU19',
12
+ 'PU20','PU21','PU22','PU23',
13
+ 'PU24','PU25','PU26','PU27',
14
+ 'PU28','PU29' ]
15
+ PU24_PU27 = ['PU24','PU25','PU26','PU27']
16
+ PU24_PU30 = ['PU24','PU25','PU26','PU27',
17
+ 'PU28','PU29','PU30']
18
+ PU28_PU29 = ['PU28','PU29']
19
+ PU28_PU30 = ['PU28','PU29','PU30']
20
+
21
+
22
+ WE00_WE07 = ['WE00', 'WE01', 'WE02', 'WE03',
23
+ 'WE04', 'WE05', 'WE06', 'WE07']
24
+ WE00_WE15 = ['WE00', 'WE01', 'WE02', 'WE03',
25
+ 'WE04', 'WE05', 'WE06', 'WE07',
26
+ 'WE08', 'WE09', 'WE10', 'WE11',
27
+ 'WE12', 'WE13', 'WE14', 'WE15']
28
+
29
+
30
+
31
+ PURRSTIGES_HACKATAO = {
32
+ # This weekend a set of Hackatao Purrstige traits are making
33
+ # their way into CryptoKitties.
34
+ # The "HaCKittieZ" will be breedable for a limited time from October 24th - 31st.
35
+ #
36
+ # Hackatao are decentralized artists widely known for
37
+ # their beautiful illustrations and collected among cool cats in the community.
38
+ #
39
+ # HaCKittieZ is our collaboration with renowned artist Hackatao and Async Art
40
+ # to give you incredible ways to personalize your CryptoKitties
41
+ # and push the boundaries of programmable art.
42
+ # A set of Purrstige traits designed by Hackatao will be breedable for a limited time.
43
+ # The HaCKittieZ traits can be mixed and matched to personalize
44
+ # your Kitties and create exciting permutations!
45
+
46
+ # 24.10.20 - New Purrstige - Meowfoolest
47
+ meowfoolest: { name: 'Meowfoolest',
48
+ recipe: {
49
+ time: { start: '2020-10-24', end: '2020-10-31'}, count: 254,
50
+ traits: ['liger', 'shale', 'PU30', 'daemonwings'] },
51
+ },
52
+ # 24.10.20 - New Purrstige - Meowfool
53
+ meowfool: { name: 'Meowfool',
54
+ recipe: {
55
+ time: { start: '2020-10-24', end: '2020-10-31'}, count: 388,
56
+ traits: ['shale', 'daemonwings', PU28_PU29] },
57
+ },
58
+ # 24.10.20 - New Purrstige - Meownificent
59
+ meownificent: { name: 'Meownificent',
60
+ recipe: {
61
+ time: { start: '2020-10-24', end: '2020-10-31'}, count: 260,
62
+ traits: [ 'liger', 'shale', 'PU30', WE00_WE15] },
63
+ },
64
+ # 24.10.20 - New Purrstige - Meowthulhu
65
+ meowthulhu: { name: 'Meowthulhu',
66
+ recipe: {
67
+ time: { start: '2020-10-24', end: '2020-10-31'}, count: 950,
68
+ traits: [ 'daemonwings', PU28_PU30] },
69
+ },
70
+ # 24.10.20 - New Purrstige - Meownique
71
+ meownique: { name: 'Meownique',
72
+ recipe: {
73
+ time: { start: '2020-10-24', end: '2020-10-31'}, count: 557,
74
+ traits: [ 'shale', PU28_PU29, WE00_WE15] },
75
+ },
76
+ }
77
+
78
+
79
+
80
+ PURRSTIGES_KITTENHEIM = {
81
+ # 07.11.19 - New Purrstige - Purrior
82
+ purrior: { name: 'Purrior',
83
+ recipe: {
84
+ time: { start: '2019-11-07', end: '2019-12-01' }, count: 120,
85
+ traits: [] },
86
+ },
87
+ # 06.11.19 - New Purrstige - Centurion
88
+ centurion: { name: 'Centurion',
89
+ recipe: {
90
+ time: { start: '2019-11-06', end: '2019-12-01' }, count: 144,
91
+ traits: [] },
92
+ },
93
+ # 03.11.19 - New Purrstige - Explorer
94
+ explorer: { name: 'Explorer',
95
+ recipe: {
96
+ time: { start: '2019-11-03', end: '2019-12-01' }, count: 162,
97
+ traits: ['lykoi', 'daemonhorns', ['rascal', 'camo'], 'PU28'] },
98
+ },
99
+ # 02.11.19 - New Purrstige - Guard
100
+ guard: { name: 'Guard',
101
+ recipe: {
102
+ time: { start: '2019-11-02', end: '2019-12-01' }, count: 220,
103
+ traits: [] },
104
+ },
105
+ # 01.11.19 - New Purrstige - Velite
106
+ velite: { name: 'Velite',
107
+ recipe: {
108
+ time: { start: '2019-11-01', end: '2019-12-01' }, count: 273,
109
+ traits: [] },
110
+ },
111
+ # 01.11.19 - New Purrstige - Scout
112
+ scout: { name: 'Scout',
113
+ recipe: {
114
+ time: { start: '2019-11-01', end: '2019-12-01' }, count: 140,
115
+ traits: [] },
116
+ },
117
+ # 02.11.19 - New Purrstige - Dominator
118
+ dominator: { name: 'Dominator',
119
+ recipe: {
120
+ time: { start: '2019-11-02', end: '2019-12-01' }, count: 141,
121
+ traits: ['lykoi', 'daemonhorns', PU24_PU27] },
122
+ },
123
+
124
+ # Nov 1, 2019 - Brassard trait is discovered. Purrstige
125
+ brassard: { name: 'Brassard',
126
+ recipe: {
127
+ time: { start: '2019-11-01', end: '2019-12-01' }, count: 793,
128
+ traits: [WE00_WE07, PU24_PU27] },
129
+ },
130
+
131
+ # Nov 1, 2019 - Aegis trait is discovered. Purrstige
132
+ aegis: { name: 'Aegis',
133
+ recipe: {
134
+ time: { start: '2019-11-01', end: '2019-12-01' }, count: 617,
135
+ traits: [] },
136
+ },
137
+ }
138
+
139
+
6
140
  PURRSTIGES_ROBOKITTY = {
7
141
  ###
8
142
  # May 1, 2019
9
143
  # 7 Robokitty Purrstiges
144
+
145
+ # 12.12.19 - New Purrstige - Driver
146
+ driver: { name: 'Driver',
147
+ recipe: {
148
+ time: { start: '2019-12-12', end: '2019-12-13' }, count: 257,
149
+ traits: ['ragdoll', TOTESBASIC, WE00_WE15, 'drift', PU24_PU30] },
150
+ },
10
151
  bionic: { name: 'Bionic',
11
152
  recipe: {
12
- time: { start: '2019-05-01', end: '2019-08-31' },
153
+ time: { start: '2019-05-01', end: '2019-08-31' }, count: 624,
13
154
  traits: ['ragdoll', 'WE05', TOTESBASIC, 'PU30'] }
14
155
  },
15
156
  fileshare: { name: 'Fileshare',
16
157
  recipe: {
17
- time: { start: '2019-05-01', end: '2019-08-31' },
158
+ time: { start: '2019-05-01', end: '2019-08-31' }, count: 683,
18
159
  traits: ['ragdoll', 'WE05', TOTESBASIC, 'PU29'] }
19
160
  },
20
161
  pawsfree: { name: 'Pawsfree',
21
162
  recipe: {
22
- time: { start: '2019-05-01', end: '2019-08-31' },
163
+ time: { start: '2019-05-01', end: '2019-08-31' }, count: 430,
23
164
  traits: ['ragdoll', 'WE05', TOTESBASIC, 'PU28'] }
24
165
  },
25
166
  uplink: { name: 'Uplink',
26
167
  recipe: {
27
- time: { start: '2019-05-01', end: '2019-08-31' },
168
+ time: { start: '2019-05-01', end: '2019-08-31' }, count: 1151,
28
169
  traits: ['ragdoll', 'WE05', TOTESBASIC, 'PU27'] }
29
170
  },
30
171
  gaunlet: { name: 'Gauntlet',
31
172
  recipe: {
32
- time: { start: '2019-05-01', end: '2019-08-31' },
173
+ time: { start: '2019-05-01', end: '2019-08-31' }, count: 905,
33
174
  traits: ['ragdoll', 'WE05', TOTESBASIC, 'PU26'] }
34
175
  },
35
176
  catterypack: { name: 'Catterypack',
36
177
  recipe: {
37
- time: { start: '2019-05-01', end: '2019-08-31' },
178
+ time: { start: '2019-05-01', end: '2019-08-31' }, count: 513,
38
179
  traits: ['ragdoll', 'WE05', TOTESBASIC, 'PU25'] }
39
180
  },
40
181
  squelch: { name: 'Squelch',
41
182
  recipe: {
42
- time: { start: '2019-05-01', end: '2019-08-31' },
183
+ time: { start: '2019-05-01', end: '2019-08-31' }, count: 828,
43
184
  traits: ['ragdoll', 'WE05', TOTESBASIC, 'PU24'] }
44
185
  }
45
186
  }
@@ -143,6 +284,9 @@ inaband: { name: 'Inaband',
143
284
  }
144
285
 
145
286
 
287
+
288
+
289
+
146
290
  ###############
147
291
  ## todo:
148
292
  ## - use PURRSTIGES_XMAS?! and other themes too - why? why not?
@@ -157,15 +301,36 @@ inaband: { name: 'Inaband',
157
301
  PRESTIGES = PURRSTIGES =
158
302
  {
159
303
 
304
+ # 01.01.20 - New Purrstige - Confettibox
305
+ confettibox: { name: 'Confettibox',
306
+ recipe: {
307
+ time: { start: '2020-01-01', end: '2020-01-15' }, count: 554,
308
+ traits: ['tinybox', 'PU26'] },
309
+ },
310
+ # 01.12.19 - New Purrstige - Celebration
311
+ celebration: { name: 'Celebration',
312
+ recipe: {
313
+ time: { start: '2019-12-01', end: '?' }, count: 1080,
314
+ traits: [EN00_EN15, PU16_PU29] },
315
+ },
316
+ # 01.12.19 - New Purrstige - Grandfinale
317
+ grandfinale: { name: 'Grandfinale',
318
+ recipe: {
319
+ time: { start: '2019-12-01', end: '?' }, count: 520,
320
+ traits: [EN00_EN15, 'PU30'] },
321
+ },
322
+
323
+
324
+
160
325
  # Jun 28, 2019 - Werekitty trait is discovered. Purrstige
161
326
  werekitty: { name: 'Werekitty',
162
327
  recipe: {
163
328
  time: { start: '2019-06-28', end: '2019-07-27' }, count: 438,
164
329
  traits: ['moonrise', 'littlefoot', 'PU24',
165
- ['EN00','EN01','EN02','EN03','EN04','EN05','EN06','EN07','EN08','EN09','EN10','EN11','EN12','EN13','EN14','EN15']] }, # Any non-visible Env (EN00-EN15)
330
+ EN00_EN15] },
166
331
  desc: 'Monster Month Purrstige Trait'
167
332
  },
168
-
333
+
169
334
  ##
170
335
  # Mar 15, 2019
171
336
  # Oohshiny trait is discovered. Purrstige
@@ -223,3 +388,5 @@ oohshiny: { name: 'Oohshiny',
223
388
  }.merge( PURRSTIGES_ROBOKITTY )
224
389
  .merge( PURRSTIGES_PIRATE )
225
390
  .merge( PURRSTIGES_ALPACAT )
391
+ .merge( PURRSTIGES_KITTENHEIM )
392
+ .merge( PURRSTIGES_HACKATAO )
@@ -0,0 +1,135 @@
1
+ ###
2
+ ## Special Editions - Crypto Kitties
3
+ ## see https://www.cryptokitties.co/catalogue/special-edition-cats
4
+ ##
5
+ ## These cool Kitties have limited edition art
6
+ ## and are never obtainable through breeding
7
+
8
+
9
+ SPECIAL_EDITIONS = {
10
+
11
+ frostymcwhiskers: { name: 'Frosty McWhiskers', date: '2020-12-14',
12
+ specialedition: {
13
+ limit: 104 },
14
+ },
15
+
16
+ ###
17
+ # The redemption window to claim to your very own Fannie Special Edition Kitty
18
+ # will be closing this Saturday. For each Fannie, you'll need to submit
19
+ # a unique trio of Wild West Kitties (one Pickett, one Reeves and one Dart)
20
+ # to our Kitty Bounty Wallet along with a valid submission form
21
+ # before the deadline on 12/5/2020 at 11:59pm PT
22
+ fannie: { name: 'Fannie', date: '2020-12-14', ## first/lowest id: #1_992_009
23
+ specialedition: {
24
+ limit: 58 },
25
+ },
26
+
27
+ # With transactions getting stuck and costs to gift Kitties soaring through the roofs,
28
+ # we've decided to extend the window to redeem your Katz band members
29
+ # for Special Edition Mascots.
30
+ # The new redemption window ends on September 1st, 11:59pm PT.
31
+ ## Gas prices have slowed down redemption but there are currently
32
+ ## 20 Algies and 30 Eddies earmarked for distribution.
33
+
34
+ algie: { name: 'Algie', date: '2020-10-29', ## first/lowest id: #1_137_676 !! - todo/check - first birthdate?
35
+ specialedition: {
36
+ limit: 179 },
37
+ },
38
+
39
+ eddie: { name: 'Eddie', date: '2020-09-03', # first/lowest id: #1_967_278
40
+ specialedition: {
41
+ limit: 110 },
42
+ },
43
+
44
+ marty: { name: 'Marty', date: '2020-09-01',
45
+ specialedition: {
46
+ limit: 188 },
47
+ desc: 'Collaboration with Muse',
48
+ },
49
+
50
+ pandora: { name: 'Pandora', date: '2020-07-31',
51
+ specialedition: {
52
+ limit: 50 },
53
+ desc: 'CryptoKitty Box Support',
54
+ },
55
+
56
+ holli: { name: 'Holli', date: '2020-07-03', # first/lowest id: #1_949_215
57
+ specialedition: {
58
+ limit: 59 },
59
+ },
60
+
61
+ kikuyu: { name: 'Kikuyu', date: '2020-06-13',
62
+ specialedition: {
63
+ limit: 263 },
64
+ desc: 'For Hunter+Zelig+Bodhi',
65
+ },
66
+
67
+ flowtron: { name: 'Flowtron', date: '2020-05-21',
68
+ specialedition: {
69
+ limit: 303 },
70
+ desc: 'Exchange on Flow Fancy Set',
71
+ },
72
+
73
+ catterina: { name: 'Catterina', date: '2020-05-13',
74
+ specialedition: {
75
+ limit: 100 },
76
+ desc: 'Momo Wang',
77
+ },
78
+
79
+ negabillie: { name: 'Nega Billie', date: '2020-04-27',
80
+ specialedition: {
81
+ limit: 68 },
82
+ },
83
+
84
+ ##############
85
+ # 2019
86
+ carl: { name: 'Carl', date: '2019-08-20', # first/lowest id: #1_680_709
87
+ specialedition: {
88
+ limit: 40 },
89
+ },
90
+
91
+ alice: { name: 'Alice', date: '2019-08-23', # first/lowest id: #1_681_913
92
+ specialedition: {
93
+ limit: 88 },
94
+ },
95
+
96
+
97
+ 'kitt-e': { name: 'KITT-E', date: '2019-05-10',
98
+ specialedition: {
99
+ limit: 500 },
100
+ desc: 'Dapper (Crypto Contract) Wallet Promotion Cat'
101
+ },
102
+ # Apr 10, 2019 - Sparkles Special Edition Cat is released.Special Edition Cat
103
+ sparkles: { name: 'Sparkles', date: '2019-04-10',
104
+ specialedition: {
105
+ limit: 100 },
106
+ desc: 'Freebie for CryptoKitties Community Events'
107
+ },
108
+
109
+ ## date: '2019-01-10 ??? -- use for date "announced" or something - why? why not?
110
+ aeoncat: { name: 'Aeoncat',
111
+ specialedition: {
112
+ time: { start: '2019-01-17', end: '2019-01-28' },
113
+ limit: 380 }, ## Don't sleep - there's only 380 up for grabs!
114
+ desc: 'Goddess Aeona - Goddess of Nature - Gods Unchained Promotion'
115
+ },
116
+
117
+ #############################
118
+ ## 2018
119
+ ## December
120
+ catzy: { name: 'Catzy', date: '2018-12-31',
121
+ specialedition: {
122
+ limit: 10, ids: (1137653..1137662).to_a },
123
+ desc: 'Changpeng "CZ" Zhao - CEO of Binance - Top 10 Blockchain Influencer of the Year 2018 by CoinDesk'
124
+ },
125
+ purremyallaire: { name: 'Purremy Allaire', date: '2018-12-31',
126
+ specialedition: {
127
+ limit: 10, ids: (1137663..1137672).to_a },
128
+ desc: 'Jeremy Allaire - Top 10 Blockchain Influencer of the Year 2018 by CoinDesk'
129
+ },
130
+ lilbub: { name: 'Lil Bub Ub Bub (BUB)', date: '2018-11-13',
131
+ specialedition: {
132
+ limit: 500 }
133
+ },
134
+ }
135
+
@@ -141,6 +141,9 @@ class Fancy
141
141
  ## auto-fill fancies
142
142
  FANCIES.each do |key,h|
143
143
 
144
+ puts "fancy:"
145
+ pp h
146
+
144
147
  name = h[:name]
145
148
  name_cn = h[:name_cn] # add chinese name if present
146
149
 
@@ -174,7 +177,7 @@ class Fancy
174
177
  variants: h[:recipe][:variants], ## todo/fix: turn variant hash into variant ??? - why? why not?
175
178
  limit: h[:recipe][:limit],
176
179
  time_start: h[:recipe][:time] && h[:recipe][:time][:start] ? Date.strptime( h[:recipe][:time][:start], '%Y-%m-%d' ) : nil,
177
- time_end: h[:recipe][:time] && h[:recipe][:time][:end] ? Date.strptime( h[:recipe][:time][:end], '%Y-%m-%d' ) : nil )
180
+ time_end: h[:recipe][:time] && h[:recipe][:time][:end] && h[:recipe][:time][:end] != '?' ? Date.strptime( h[:recipe][:time][:end], '%Y-%m-%d' ) : nil )
178
181
 
179
182
  ## note: support overflow "shortcut" - overflow+limit => count
180
183
  count = if h[:recipe][:overflow]
@@ -1,10 +1,7 @@
1
- # encoding: utf-8
2
-
3
-
4
1
  class Kittyverse
5
2
 
6
- MAJOR = 0
7
- MINOR = 5
3
+ MAJOR = 1
4
+ MINOR = 0
8
5
  PATCH = 0
9
6
  VERSION = [MAJOR,MINOR,PATCH].join('.')
10
7
 
@@ -13,11 +10,11 @@ class Kittyverse
13
10
  end
14
11
 
15
12
  def self.banner
16
- "kittyverse/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
13
+ "kittyverse/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] in (#{root})"
17
14
  end
18
15
 
19
16
  def self.root
20
- "#{File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )}"
17
+ File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )
21
18
  end
22
19
 
23
20
  end # module Kittyverse
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  ###
4
2
  # to run use
5
3
  # ruby -I ./lib -I ./test test/test_cattributes.rb
data/test/test_fancies.rb CHANGED
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  ###
4
2
  # to run use
5
3
  # ruby -I ./lib -I ./test test/test_fancies.rb
data/test/test_genome.rb CHANGED
@@ -1,4 +1,5 @@
1
1
 
2
+ =begin
2
3
  pp genome[0].class
3
4
  pp genome[0].name
4
5
  pp genome[0].code
@@ -59,4 +60,6 @@ pp genome.fu[0].code
59
60
  pp genome[:body][0].class
60
61
  pp genome[:body][0].name
61
62
  pp genome[:body][0].code
63
+ =end
64
+
62
65