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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15aafb1d5f12798204ce6bc38d36acbc1ab98937f7ff4f25ee43eb46bfde71e9
4
- data.tar.gz: cd22e5a0e1773ae2a1d2ebdfde87665a187c57fde927cf22ef950e4888a9568b
3
+ metadata.gz: 3c73ee6bfefc5a1611b3170d86b8dc27dbf75c58f2dc3f2be7d570679cedfab3
4
+ data.tar.gz: f771ef43cafe46bcc75eed2c0964c42e39f32d7c1ab92a0e09e1a5b6ad6b4845
5
5
  SHA512:
6
- metadata.gz: c74b8a9b11f5fb2194b2338923e5b2a765f1f9e60110397ecbdd82d2f34aba61f5b8b1024ba94bdd4b3ffef66a961d179dcc458e1736bec8865aafd3cb320c86
7
- data.tar.gz: 8015c756b8f118a6df781c50239f5364efd63f026611a84621bf50f83d1fe248a0c6c2f4bce56a0f1fea58909c8f97afec3164ee75e3c99c4d1379cee1171f8f
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 step(turn)
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 step(turn)
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 step(turn)
10
- @card_type.step(turn - 1, self)
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
- @card_type.played(turn)
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
- @tapped = nil
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 step(turn, card)
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
- [played, drawed, can_played]
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
@@ -25,8 +25,8 @@ class Game
25
25
  end
26
26
 
27
27
  def upkeep(turn)
28
- @hands.each { |card| card.step(turn) }
29
- @plays.each { |card| card.step(turn) }
28
+ @hands.each { |card| card.step_in_hands(turn) }
29
+ @plays.each { |card| card.step_in_plays(turn) }
30
30
  end
31
31
 
32
32
  def draw(turn)
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.13
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-14 00:00:00.000000000 Z
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