manasimu 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- 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
|