manasimu 0.0.13 → 0.0.14
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 +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
|