manasimu 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b6082f731a818265c066a58b3ff0e1c92df1444c5f08982cba8a80fd0ad73e41
4
- data.tar.gz: 722690804b9fd37604dd44953678bbddfef4695c0a2d4f8d8bbba80738dc7a33
3
+ metadata.gz: c10108a002d93f461dfc63c6a64117c114507bb1801ca6b70bd26c597c84303f
4
+ data.tar.gz: aa970e39f4b26769c1bb7cf26e09bdb5f87cf953b003c88b1f26fa3ec387d663
5
5
  SHA512:
6
- metadata.gz: 5bca43f6174a91ed763000757d517ee793042e2d84223eb14d58374ec8dbb8bec98e0ba3da79b85472cbeded392006dbf016ef882c2b80d803e51203453f0d5f
7
- data.tar.gz: 6c533f61fd8832391d9a3b9bf8fd682302b0b9bf54ab07a52d3d6491f69ad3124f150d9ab7482297a9704fb2df924864cf184e452cf6bfca6b731218bbf1fb75
6
+ metadata.gz: ffbcbb854d2e412b83aeb4e337d6d5b8ffab87585df7c1f4c080061f29137e568574fb3463920363d86436d0b9e2ac30f788ed218dc4d671cda5e1a311adfa6f
7
+ data.tar.gz: 29c05419b9c7097f9413661c79c62b904e9a734b8ebdd35cb8e8ab5229e7edb0512eca3dfc5616f9dd8889e35f8820f2359658ea4910fc8e94ee006ba104e107
Binary file
data/lib/manasimu/card.rb CHANGED
@@ -294,6 +294,10 @@ class CardType
294
294
  return @is_land
295
295
  end
296
296
 
297
+ def names
298
+ @contents[0].names
299
+ end
300
+
297
301
  def playable?(lands, capas)
298
302
  return [false, [], []] if lands.empty?
299
303
  return [false, [], []] if converted_mana_cost > lands.length
@@ -391,17 +395,27 @@ class CardType
391
395
  end
392
396
 
393
397
  class CardTypeAggregate
398
+ def initialize
399
+ @memo = []
400
+ end
394
401
 
395
402
  def find(set_code, number)
396
- @memo ||= []
397
- @memo.find do |c|
403
+ ret = @memo.bsearch do |c|
398
404
  a = c.contents[0]
399
- a and a.set_code == set_code and a.number == number
405
+ if set_code == a.set_code
406
+ number.to_i <= a.number
407
+ else
408
+ set_code < a.set_code
409
+ end
410
+ end
411
+ if ret and ret.set_code == set_code and ret.number == number.to_i
412
+ ret
413
+ else
414
+ nil
400
415
  end
401
416
  end
402
417
 
403
418
  def add(card_type)
404
- @memo ||= []
405
419
  @memo << card_type
406
420
  end
407
421
 
@@ -420,10 +434,11 @@ class CardTypeAggregate
420
434
  end
421
435
 
422
436
  class Content
423
- attr_accessor :name, :number, :side, :set_code, :mana_cost, :type, :types, :color_identity, :converted_mana_cost, :text
437
+ attr_accessor :name, :names, :number, :side, :set_code, :mana_cost, :type, :types, :color_identity, :converted_mana_cost, :text
424
438
 
425
439
  def initialize(hash)
426
440
  @name = hash[:name]
441
+ @names = hash[:names]
427
442
  @number = hash[:number]
428
443
  @side = hash[:side]
429
444
  @set_code = hash[:set_code]
@@ -447,6 +462,7 @@ class Content
447
462
  <<EOF
448
463
  factory '#{@name.underscore}_content', class: Content do
449
464
  name {'#{@name}'}
465
+ names {'#{@names}'}
450
466
  number {'#{@number}'}
451
467
  side {'#{@side}'}
452
468
  set_code { '#{@set_code}'}
data/lib/manasimu/data.rb CHANGED
@@ -79,33 +79,41 @@ class Deck
79
79
  ret = []
80
80
  lines.each do |line|
81
81
  line.chomp!
82
- search_type = distinct_types.bsearch do |type|
83
- name = type.name.split(' // ')[0]
84
- flag = true
85
- name.chars.each_with_index do |nc,i|
82
+ [-1, 4].each do |i|
83
+ search_type = distinct_types.bsearch do |type|
84
+ if i == -1
85
+ name = type.name.split(' // ')[0]
86
+ else
87
+ next if not type.names[i]
88
+ name = type.names[i].split(' // ')[0]
89
+ end
86
90
 
87
- if line.length > i
88
- lc = line.chars[i]
89
- if nc > lc
91
+ flag = true
92
+ name.chars.each_with_index do |nc,i|
93
+ if line.length > i
94
+ lc = line.chars[i]
95
+ if nc > lc
96
+ flag = true
97
+ break
98
+ elsif nc < lc
99
+ flag = false
100
+ break
101
+ else
102
+ # continue
103
+ end
104
+ else
90
105
  flag = true
91
106
  break
92
- elsif nc < lc
93
- flag = false
94
- break
95
- else
96
- # continue
97
107
  end
98
- else
99
- flag = true
100
- break
101
108
  end
109
+ flag
102
110
  end
103
- flag
104
- end
105
- if search_type
106
- a = search_type.name.split(' // ')[0]
107
- if line =~ /^#{a}.*$/ and a != 'X'
108
- ret << search_type
111
+ if search_type
112
+ a = search_type.name.split(' // ')[0]
113
+ if line =~ /^#{a}.*$/ and a != 'X'
114
+ ret << search_type
115
+ break
116
+ end
109
117
  end
110
118
  end
111
119
  end
@@ -0,0 +1,3 @@
1
+ class Expansion
2
+ attr_accessor :code, :name, :exists
3
+ end
data/lib/manasimu.rb CHANGED
@@ -13,4 +13,5 @@ require_relative './manasimu/planner.rb'
13
13
  require_relative './manasimu/game.rb'
14
14
  require_relative './manasimu/simulator.rb'
15
15
  require_relative './manasimu/data.rb'
16
+ require_relative './manasimu/expansion.rb'
16
17
  require_relative '../ext/ford_fulkerson.so'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manasimu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.23
4
+ version: 0.0.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - so1itaryrove
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-28 00:00:00.000000000 Z
11
+ date: 2022-06-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: mtg arrena mana curve simulator
14
14
  email: so1itaryrove@gmail.com
@@ -27,6 +27,7 @@ files:
27
27
  - lib/manasimu/card/snc_fetchland.rb
28
28
  - lib/manasimu/card/tapland.rb
29
29
  - lib/manasimu/data.rb
30
+ - lib/manasimu/expansion.rb
30
31
  - lib/manasimu/game.rb
31
32
  - lib/manasimu/hello.rb
32
33
  - lib/manasimu/mana_type.rb