manasimu 0.0.12 → 0.0.13

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: 8f369c20d49bd696fd184cd0874385b5072f3b66b4371a8a1698e6a6dd9cc2ff
4
- data.tar.gz: 34b0f4b9bacb5cfa05b6e549a06576c0f07d1f904b79a8d36c8cd55e4a763c8c
3
+ metadata.gz: 15aafb1d5f12798204ce6bc38d36acbc1ab98937f7ff4f25ee43eb46bfde71e9
4
+ data.tar.gz: cd22e5a0e1773ae2a1d2ebdfde87665a187c57fde927cf22ef950e4888a9568b
5
5
  SHA512:
6
- metadata.gz: f84f7ede021935431da0b01f3554e77473f56146ca67bdd6036c1e7401c704ade04414cc404ebdf5fb214e2238613ae6112cb38cc2eeeb27c1846b147f21598f
7
- data.tar.gz: f9db31ef0e7aebbc74e7bcd389bf64a04c076d2b9e5fab389785e5abbf5665e91c546b9c34fce28f97f936e2b15785422d8c13c2513dee27d2c6773eae726452
6
+ metadata.gz: c74b8a9b11f5fb2194b2338923e5b2a765f1f9e60110397ecbdd82d2f34aba61f5b8b1024ba94bdd4b3ffef66a961d179dcc458e1736bec8865aafd3cb320c86
7
+ data.tar.gz: 8015c756b8f118a6df781c50239f5364efd63f026611a84621bf50f83d1fe248a0c6c2f4bce56a0f1fea58909c8f97afec3164ee75e3c99c4d1379cee1171f8f
@@ -0,0 +1,29 @@
1
+ class SlowLandCard < Card
2
+
3
+ def resolve(side, hands, plays)
4
+ num = 0
5
+ for card in plays do
6
+ next if card == self
7
+ num += 1 if card.is_land?
8
+ break if num >= 2
9
+ end
10
+
11
+ if num == 2
12
+ @tapped = false
13
+ else
14
+ @tapped = true
15
+ end
16
+ end
17
+
18
+ def step(turn)
19
+ @tapped = false
20
+ end
21
+
22
+ def tapped?
23
+ @tapped
24
+ end
25
+
26
+ def reset
27
+ @tapped = false
28
+ end
29
+ end
@@ -4,12 +4,15 @@ class TapLandCard < Card
4
4
  @tapped
5
5
  end
6
6
 
7
- def drawed(turn)
8
- super(turn)
7
+ def resolve(side, hands, plays)
9
8
  @tapped = true
10
9
  end
11
10
 
12
11
  def step(turn)
13
12
  @tapped = false
14
13
  end
14
+
15
+ def reset
16
+ @tapped = false
17
+ end
15
18
  end
data/lib/manasimu/card.rb CHANGED
@@ -22,6 +22,9 @@ class Card
22
22
  @card_type.played(turn)
23
23
  end
24
24
 
25
+ def resolve(side = "a", hands, plays)
26
+ end
27
+
25
28
  def played?
26
29
  @played.nil?
27
30
  end
@@ -74,6 +77,11 @@ class Card
74
77
 
75
78
  def reset
76
79
  @side = nil
80
+ @tapped = nil
81
+ end
82
+
83
+ def is_land?
84
+ @card_type.is_land? @side
77
85
  end
78
86
 
79
87
  def max_flow(lands, capas)
@@ -207,6 +215,19 @@ class CardType
207
215
  converted_mana_cost
208
216
  end
209
217
 
218
+ def is_land?(side = nil)
219
+ arr = if side == 'a'
220
+ [0]
221
+ elsif side == 'b'
222
+ [1]
223
+ else
224
+ [0,1]
225
+ end
226
+ arr.select do |i|
227
+ @contents[i] and @contents[i].types == "Land"
228
+ end.length > 0
229
+ end
230
+
210
231
  def playable?(lands, capas)
211
232
  return [false, [], []] if lands.empty?
212
233
  return [false, [], []] if converted_mana_cost > lands.length
data/lib/manasimu/data.rb CHANGED
@@ -72,9 +72,12 @@ class Deck
72
72
  card_types << clone
73
73
  if clone.name =~ /.*Pathway$/ and clone.mana_source?
74
74
  card = PathwayCard.new(clone)
75
- elsif clone.types[0] == "Land" and
75
+ elsif clone.is_land? and
76
76
  clone.contents[0].text =~ /enters the battlefield tapped\./
77
77
  card = TapLandCard.new(clone)
78
+ elsif clone.is_land? and
79
+ clone.contents[0].text =~ /enters the battlefield tapped unless you control two or more other lands./
80
+ card = SlowLandCard.new(clone)
78
81
  else
79
82
  card = Card.new(clone)
80
83
  end
data/lib/manasimu/game.rb CHANGED
@@ -42,7 +42,8 @@ class Game
42
42
 
43
43
  def play(card, turn)
44
44
  # puts "play #{card}"
45
- card.played(turn)
45
+ card.resolve(nil, @hands, @plays)
46
+ card.played(turn, nil)
46
47
  @plays << card
47
48
  @hands.delete card
48
49
  end
@@ -18,6 +18,7 @@ class Planner
18
18
  # play the land
19
19
  current_hands.delete play_land
20
20
  current_fields << play_land
21
+ play_land.resolve(nil, current_hands, current_fields)
21
22
 
22
23
  # search_opt_spells
23
24
  price, spells, symbols, lands =
@@ -29,6 +30,8 @@ class Planner
29
30
  max_symbols = symbols
30
31
  max_lands = lands
31
32
  end
33
+
34
+ play_land.reset
32
35
  end
33
36
  else
34
37
  # search_opt_spells
data/lib/manasimu.rb CHANGED
@@ -4,6 +4,7 @@ Bundler.require
4
4
  require_relative './manasimu/card.rb'
5
5
  require_relative './manasimu/card/pathway.rb'
6
6
  require_relative './manasimu/card/tapland.rb'
7
+ require_relative './manasimu/card/slowland.rb'
7
8
  require_relative './manasimu/planner.rb'
8
9
  require_relative './manasimu/game.rb'
9
10
  require_relative './manasimu/simulator.rb'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manasimu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - so1itaryrove
@@ -21,6 +21,7 @@ files:
21
21
  - lib/manasimu.rb
22
22
  - lib/manasimu/card.rb
23
23
  - lib/manasimu/card/pathway.rb
24
+ - lib/manasimu/card/slowland.rb
24
25
  - lib/manasimu/card/tapland.rb
25
26
  - lib/manasimu/data.rb
26
27
  - lib/manasimu/game.rb