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 +4 -4
- data/lib/manasimu/card/slowland.rb +29 -0
- data/lib/manasimu/card/tapland.rb +5 -2
- data/lib/manasimu/card.rb +21 -0
- data/lib/manasimu/data.rb +4 -1
- data/lib/manasimu/game.rb +2 -1
- data/lib/manasimu/planner.rb +3 -0
- data/lib/manasimu.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15aafb1d5f12798204ce6bc38d36acbc1ab98937f7ff4f25ee43eb46bfde71e9
|
4
|
+
data.tar.gz: cd22e5a0e1773ae2a1d2ebdfde87665a187c57fde927cf22ef950e4888a9568b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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.
|
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
data/lib/manasimu/planner.rb
CHANGED
@@ -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.
|
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
|