manasimu 0.0.21 → 0.0.24

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d4db0246c7f34cf99927e808cacf763ecef39cc7fd4c78d7eabce355df73027
4
- data.tar.gz: 1ae2ad5dbf8028182017b1604ca42e2064b486340574d7aedf51f9927b9aa2a0
3
+ metadata.gz: c10108a002d93f461dfc63c6a64117c114507bb1801ca6b70bd26c597c84303f
4
+ data.tar.gz: aa970e39f4b26769c1bb7cf26e09bdb5f87cf953b003c88b1f26fa3ec387d663
5
5
  SHA512:
6
- metadata.gz: bac30b6f724b6dc316326622cdf83c3987cbdbebf1475ba8340b359ffd3207de9d0810341ff3058a1e764efd9d582a50ae18697247bb300c0f6b1aeeb46388a0
7
- data.tar.gz: 070a3cbe0da32b3ddac8dc85c742d63603d8993741e50ae075bded47fa88fb609131fbd69fc413740d3be63a4b4d858d99f4319b09c81b5e407549544e56a7b6
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,38 +79,48 @@ 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
84
- flag = true
85
- name.chars.each_with_index do |nc,i|
86
- if line.length > i
87
- lc = line.chars[i]
88
- if nc > lc
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
90
+
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
89
105
  flag = true
90
106
  break
91
- elsif nc < lc
92
- flag = false
93
- break
94
- else
95
- # continue
96
107
  end
97
- else
98
- flag = true
99
- break
100
108
  end
109
+ flag
101
110
  end
102
- flag
103
- end
104
- if search_type
105
- a = search_type.name
106
- if line =~ /^#{a}.*$/ and a != 'x'
107
- 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
108
117
  end
109
118
  end
110
119
  end
111
120
 
112
- ret.sort! do |a,b| a.mana_cost <=> b.mana_cost end
121
+ ret.sort! do |a,b| a.converted_mana_cost <=> b.converted_mana_cost end
113
122
  ret.uniq!
123
+ ret
114
124
  end
115
125
 
116
126
  def self.get_card_details(deck_items)
@@ -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.21
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