manasimu 0.0.13 → 0.0.14
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 +4 -1
- data/lib/manasimu/card/tapland.rb +4 -1
- data/lib/manasimu/card.rb +32 -8
- data/lib/manasimu/game.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c73ee6bfefc5a1611b3170d86b8dc27dbf75c58f2dc3f2be7d570679cedfab3
|
4
|
+
data.tar.gz: f771ef43cafe46bcc75eed2c0964c42e39f32d7c1ab92a0e09e1a5b6ad6b4845
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1e61d71e665d98b74a8cfa52d877e2131be56484fdee9d78d85b1e072d5ffa5172444b7c0683c30c94e113f9876048b31d4bbb4af528fac08296d2650bb6ce1
|
7
|
+
data.tar.gz: 5a6ea06c33e3227a1f4f74be5a6d4266069090ecda660e29ad7c9b717891367d4764943726f2a0cd32632fafd6e58e505526c6809ed0da87e67b3b133382dd7d
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class SlowLandCard < Card
|
2
2
|
|
3
3
|
def resolve(side, hands, plays)
|
4
|
+
super(side, hands, plays)
|
4
5
|
num = 0
|
5
6
|
for card in plays do
|
6
7
|
next if card == self
|
@@ -15,7 +16,8 @@ class SlowLandCard < Card
|
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
18
|
-
def
|
19
|
+
def step_in_plays(turn)
|
20
|
+
super(turn)
|
19
21
|
@tapped = false
|
20
22
|
end
|
21
23
|
|
@@ -24,6 +26,7 @@ class SlowLandCard < Card
|
|
24
26
|
end
|
25
27
|
|
26
28
|
def reset
|
29
|
+
super
|
27
30
|
@tapped = false
|
28
31
|
end
|
29
32
|
end
|
@@ -5,14 +5,17 @@ class TapLandCard < Card
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def resolve(side, hands, plays)
|
8
|
+
super(side, hands, plays)
|
8
9
|
@tapped = true
|
9
10
|
end
|
10
11
|
|
11
|
-
def
|
12
|
+
def step_in_plays(turn)
|
13
|
+
super(turn)
|
12
14
|
@tapped = false
|
13
15
|
end
|
14
16
|
|
15
17
|
def reset
|
18
|
+
super
|
16
19
|
@tapped = false
|
17
20
|
end
|
18
21
|
end
|
data/lib/manasimu/card.rb
CHANGED
@@ -6,11 +6,15 @@ class Card
|
|
6
6
|
@playable = false
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
10
|
-
@card_type.
|
9
|
+
def step_in_hands(turn)
|
10
|
+
@card_type.step_in_hands(turn - 1, self)
|
11
11
|
@can_play = false
|
12
12
|
end
|
13
13
|
|
14
|
+
def step_in_plays(turn)
|
15
|
+
@card_type.step_in_plays(turn - 1, self)
|
16
|
+
end
|
17
|
+
|
14
18
|
def drawed(turn)
|
15
19
|
@drawed = turn
|
16
20
|
@card_type.drawed(turn)
|
@@ -19,7 +23,9 @@ class Card
|
|
19
23
|
def played(turn, side = "a")
|
20
24
|
@played = turn
|
21
25
|
@side = side
|
22
|
-
|
26
|
+
if not is_land? or not tapped?
|
27
|
+
@card_type.played(turn)
|
28
|
+
end
|
23
29
|
end
|
24
30
|
|
25
31
|
def resolve(side = "a", hands, plays)
|
@@ -77,7 +83,9 @@ class Card
|
|
77
83
|
|
78
84
|
def reset
|
79
85
|
@side = nil
|
80
|
-
@
|
86
|
+
@played = nil
|
87
|
+
@drawed = nil
|
88
|
+
@can_play = false
|
81
89
|
end
|
82
90
|
|
83
91
|
def is_land?
|
@@ -105,7 +113,7 @@ class Card
|
|
105
113
|
end
|
106
114
|
|
107
115
|
class CardType
|
108
|
-
attr_accessor :contents, :played, :drawed, :name, :can_plays
|
116
|
+
attr_accessor :contents, :played, :drawed, :name, :can_plays, :mana_sources
|
109
117
|
|
110
118
|
def self.create(card_type, name)
|
111
119
|
ret = card_type.dup
|
@@ -113,6 +121,7 @@ class CardType
|
|
113
121
|
ret.played = {}
|
114
122
|
ret.drawed = {}
|
115
123
|
ret.can_plays = {}
|
124
|
+
ret.mana_sources = {}
|
116
125
|
ret.name = name
|
117
126
|
ret
|
118
127
|
end
|
@@ -122,6 +131,7 @@ class CardType
|
|
122
131
|
@played = {}
|
123
132
|
@drawed = {}
|
124
133
|
@can_plays = {}
|
134
|
+
@mana_sources = {}
|
125
135
|
@contents = contents.map {|c| Content.new(c)}
|
126
136
|
end
|
127
137
|
|
@@ -129,13 +139,24 @@ class CardType
|
|
129
139
|
@name ||= @contents[0].name
|
130
140
|
end
|
131
141
|
|
132
|
-
def
|
142
|
+
def step_in_hands(turn, card)
|
133
143
|
if turn >= 0 and card.can_play?
|
134
144
|
@can_plays[turn] ||= 0
|
135
145
|
@can_plays[turn] += 1
|
136
146
|
end
|
137
147
|
end
|
138
148
|
|
149
|
+
def step_in_plays(turn, card)
|
150
|
+
if turn >= 0 and card.mana_source? and not card.tapped?
|
151
|
+
@mana_sources[turn] ||= {}
|
152
|
+
size = card.color_identity.length
|
153
|
+
card.color_identity.each do |c|
|
154
|
+
@mana_sources[turn][c] ||= 0
|
155
|
+
@mana_sources[turn][c] += 1.0 / size
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
139
160
|
def played(turn)
|
140
161
|
@played[turn] ||= 0
|
141
162
|
@played[turn] += 1
|
@@ -216,6 +237,7 @@ class CardType
|
|
216
237
|
end
|
217
238
|
|
218
239
|
def is_land?(side = nil)
|
240
|
+
return @is_land if @is_land
|
219
241
|
arr = if side == 'a'
|
220
242
|
[0]
|
221
243
|
elsif side == 'b'
|
@@ -223,9 +245,10 @@ class CardType
|
|
223
245
|
else
|
224
246
|
[0,1]
|
225
247
|
end
|
226
|
-
arr.select do |i|
|
248
|
+
@is_land = arr.select do |i|
|
227
249
|
@contents[i] and @contents[i].types == "Land"
|
228
250
|
end.length > 0
|
251
|
+
return @is_land
|
229
252
|
end
|
230
253
|
|
231
254
|
def playable?(lands, capas)
|
@@ -311,7 +334,8 @@ class CardType
|
|
311
334
|
drawed += @drawed[i] || 0
|
312
335
|
end
|
313
336
|
can_played = @can_plays[turn] || 0
|
314
|
-
[
|
337
|
+
mana_sources = @mana_sources[turn] || {}
|
338
|
+
[played, drawed, can_played, mana_sources]
|
315
339
|
end
|
316
340
|
|
317
341
|
def to_s
|
data/lib/manasimu/game.rb
CHANGED
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.
|
4
|
+
version: 0.0.14
|
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-
|
11
|
+
date: 2022-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: mtg arrena mana curve simulator
|
14
14
|
email: so1itaryrove@gmail.com
|