chichilku3 15.0.2 → 15.0.3

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: 13aef9c6c22c8ded3b9c9857f4e9c50a9e4ce83efb7067f1f4fe8ca82635a35d
4
- data.tar.gz: 80ed6e70c0ab3d6daf7f44a540b209a6a418e7960d10259ce54530059b829713
3
+ metadata.gz: f68501431c234014c55d50ecf62ad13d9cc923354d4a5389d06f6172bcccaf27
4
+ data.tar.gz: 9e1f59900648b0cabf586a002ac1ea132592e000e50722d4d2add2545d811cd0
5
5
  SHA512:
6
- metadata.gz: 7112fcb7ac6b3dd34f4724a5079898583e47fb613450d4b0773db48831974881e5f8f1eb2b3bfdcb744b47ac5de9bbbd494a25158ba7c22b483850b933bbe101
7
- data.tar.gz: fc5c6371d73ed88ef6dfa2d7a0e1d4881e9746fb644564705743c3724fb56129f692f89feb990f826a393d99ece0a3edf064f5b9939ccb3ca730a3af182a93a9
6
+ metadata.gz: e588e44b4a93cc846ecf4d3b9eac59ddb265ea8501792a105bf2a1b68d586d0022c798a72d523e123ce29c93b5e42b64be3c528e1ddff9cbfc8dfa93d02b6b99
7
+ data.tar.gz: 542b61fc91fd62af1dd92c71a3b046b2558ded0f5edfd59a2ad5710c814b82c869e63af7f3a4524864ce1e400db6be83f862176ed133f9a15b9bc8c545f6372e
data/lib/client/client.rb CHANGED
@@ -95,14 +95,14 @@ class Client
95
95
  @recording_file = 'autorec.txt'
96
96
  rec_file = "#{@cfg.chichilku3_dir}recordings/#{@recording_file}"
97
97
  @is_recording = true
98
- File.delete(rec_file) if File.exist? rec_file
98
+ FileUtils.rm_rf(rec_file)
99
99
  end
100
100
 
101
101
  def recording_record_tick(data)
102
102
  return unless @is_recording
103
103
 
104
104
  recording_file = "#{@cfg.chichilku3_dir}recordings/#{@recording_file}"
105
- IO.write(recording_file, "#{data}\n", mode: 'a')
105
+ File.write(recording_file, "#{data}\n", mode: 'a')
106
106
  end
107
107
 
108
108
  def recording_playback_tick
@@ -117,7 +117,7 @@ class Client
117
117
  @flags[:skip] = false
118
118
 
119
119
  # save protocol and cut it off
120
- msg = handle_protocol(data[0].to_i, data[1], data[2..-1])
120
+ msg = handle_protocol(data[0].to_i, data[1], data[2..])
121
121
  [@players, @flags, msg, [@tick, @recording_ticks_len]]
122
122
  end
123
123
 
@@ -138,7 +138,7 @@ class Client
138
138
  recording_record_tick(data)
139
139
 
140
140
  # save protocol and cut it off
141
- msg = handle_protocol(data[0].to_i, data[1], data[2..-1])
141
+ msg = handle_protocol(data[0].to_i, data[1], data[2..])
142
142
  [@players, @flags, msg, @extra]
143
143
  end
144
144
 
@@ -154,7 +154,7 @@ class Client
154
154
  case protocol
155
155
  when 0 # error packet
156
156
  code = data[0..2]
157
- error_msg = data[3..-1]
157
+ error_msg = data[3..]
158
158
  case code
159
159
  when NET_ERR_FULL
160
160
  @console.log 'server is full.'
@@ -194,7 +194,7 @@ class Client
194
194
  @game_map = GameMap.new(@console, @cfg, nil, method(:finished_download_callback), checksum)
195
195
  when 6 # map download init
196
196
  size = net_unpack_bigint(data[0..5])
197
- mapname = data[6..-1].strip
197
+ mapname = data[6..].strip
198
198
  @game_map.set_name(mapname)
199
199
  @game_map.set_size(size)
200
200
  accept = '0'
@@ -246,7 +246,7 @@ class Client
246
246
  @force_send = nil
247
247
  end
248
248
 
249
- data = "#{protocol}l#{@id.to_s(16)}#{data.join('')}"
249
+ data = "#{protocol}l#{@id.to_s(16)}#{data.join}"
250
250
  net_write(data)
251
251
  end
252
252
 
@@ -322,7 +322,7 @@ class Client
322
322
  # 3 0 00 00000 00 00000 00 00000 000
323
323
  playercount = net_unpack_int(data[0])
324
324
  @flags[:gamestate] = data[1]
325
- data = data[2..-1]
325
+ data = data[2..]
326
326
  p_strs = protocol_names_to_player_strs(playercount, data)
327
327
  protocol_names_strs_to_objs(p_strs)
328
328
  end
@@ -331,7 +331,7 @@ class Client
331
331
  players = []
332
332
  used_slots.times do |index|
333
333
  size = NAME_LEN + 2 # id|score|name
334
- players[index] = data[index * size..index * size + size - 1]
334
+ players[index] = data[index * size..(index * size) + size - 1]
335
335
  end
336
336
  players
337
337
  end
@@ -341,7 +341,7 @@ class Client
341
341
  player_strs.each do |player_str|
342
342
  id = player_str[0].to_i(16)
343
343
  score = net_unpack_int(player_str[1])
344
- name = player_str[2..-1].strip
344
+ name = player_str[2..].strip
345
345
  players << Player.new(id, 0, 0, score, name) unless id.zero?
346
346
  end
347
347
  # debug
@@ -359,7 +359,7 @@ class Client
359
359
  # gamestate = data[1].to_i # save gamestate
360
360
  @flags[:gamestate] = data[1]
361
361
  # @console.log "gamestate: " + @flags[:gamestate]
362
- data = data[2..-1] # cut slots and gamestate off
362
+ data = data[2..] # cut slots and gamestate off
363
363
  players = server_package_to_player_strs(used_slots, data)
364
364
  # @console.log "players: \n#{players}"
365
365
  player_strs_to_objects(players)
@@ -368,7 +368,7 @@ class Client
368
368
  def server_package_to_player_strs(used_slots, data)
369
369
  players = []
370
370
  used_slots.times do |index|
371
- players[index] = data[index * PLAYER_PACKAGE_LEN..index * PLAYER_PACKAGE_LEN + PLAYER_PACKAGE_LEN - 1]
371
+ players[index] = data[index * PLAYER_PACKAGE_LEN..(index * PLAYER_PACKAGE_LEN) + PLAYER_PACKAGE_LEN - 1]
372
372
  end
373
373
  players
374
374
  end
data/lib/client/gui.rb CHANGED
@@ -250,7 +250,7 @@ class Gui < Gosu::Window
250
250
  return
251
251
  end
252
252
  end
253
- net_request = '0000'.split('')
253
+ net_request = '0000'.chars
254
254
  net_request << '!!!!'
255
255
  protocol = 2
256
256
 
@@ -259,7 +259,7 @@ class Gui < Gosu::Window
259
259
  unless msg.nil?
260
260
  # @console.dbg "rawmsg: #{msg}"
261
261
  msg = msg.ljust(8, ' ')
262
- net_request = msg[0..CMD_LEN].split('')
262
+ net_request = msg[0..CMD_LEN].chars
263
263
  # @console.dbg "prepedmsg: #{net_request}"
264
264
  protocol = 4
265
265
  end
@@ -305,7 +305,7 @@ class Gui < Gosu::Window
305
305
  type = msg[0]
306
306
  case type
307
307
  when 0
308
- @net_err = msg[1..-1]
308
+ @net_err = msg[1..]
309
309
  @state = STATE_ERROR
310
310
  when 1
311
311
  @server_chat_msg = msg[1]
@@ -384,7 +384,7 @@ class Gui < Gosu::Window
384
384
  return unless @is_debug
385
385
 
386
386
  draw_rect(x, y, 4 * s, 4 * s, 0xFFFF0000, 1)
387
- draw_rect(x + 1 * s, y + 1 * s, 2 * s, 2 * s, 0xFF00FF00, 1)
387
+ draw_rect(x + (1 * s), y + (1 * s), 2 * s, 2 * s, 0xFF00FF00, 1)
388
388
  end
389
389
 
390
390
  def draw_debug_gametiles
@@ -449,10 +449,10 @@ class Gui < Gosu::Window
449
449
  @stick_images[player.img_index].draw(player.x, player.y, 0, 0.5, 0.5)
450
450
  x = player.aim_x - player.x
451
451
  y = player.aim_y - player.y
452
- rot = Math.atan2(x, y) * 180 / Math::PI * -1 + 90 * -1
453
- rot2 = Math.atan2(x, y) * 180 / Math::PI * -1 + 270 * -1
454
- stick_center_x = player.x + TILE_SIZE / 4
455
- stick_center_y = player.y + TILE_SIZE / 2
452
+ rot = (Math.atan2(x, y) * 180 / Math::PI * -1) + (90 * -1)
453
+ rot2 = (Math.atan2(x, y) * 180 / Math::PI * -1) + (270 * -1)
454
+ stick_center_x = player.x + (TILE_SIZE / 4)
455
+ stick_center_y = player.y + (TILE_SIZE / 2)
456
456
  d = -8
457
457
  d += player.state[:fire] * 3
458
458
  arr_x = stick_center_x + (d * Math.cos((rot2 + 180) / 180 * Math::PI))
@@ -497,7 +497,7 @@ class Gui < Gosu::Window
497
497
  next unless @net_client.game_map&.ready
498
498
 
499
499
  unless @net_client.game_map.grass?(player.x / TILE_SIZE, player.y / TILE_SIZE)
500
- @font.draw_text(player.name, player.x - (TILE_SIZE / 6), player.y - TILE_SIZE / 2, 0, 1, 1, 0xff_000000)
500
+ @font.draw_text(player.name, player.x - (TILE_SIZE / 6), player.y - (TILE_SIZE / 2), 0, 1, 1, 0xff_000000)
501
501
  end
502
502
  end
503
503
 
@@ -538,6 +538,11 @@ class Gui < Gosu::Window
538
538
 
539
539
  draw_events
540
540
 
541
+ if @flags[:gamestate] == 'e'
542
+ @font.draw_text('GAME OVER', (WINDOW_SIZE_X / 2) - 160, 20, 0, 3, 3)
543
+ @is_scoreboard = true
544
+ end
545
+
541
546
  draw_scoreboard(WINDOW_SIZE_X, WINDOW_SIZE_Y, @players, @font, @is_debug) if @is_scoreboard
542
547
  if @state == STATE_REC_PLAYBACK && !@demo_ticks.nil?
543
548
  @font.draw_text("#{@demo_ticks[0]}/#{@demo_ticks[1]}", 10, WINDOW_SIZE_Y - 20, 0)
@@ -548,7 +553,7 @@ class Gui < Gosu::Window
548
553
  @connecting_image.draw(0, 0, 0)
549
554
  if [NET_ERR_SERVER_OUTDATED, NET_ERR_CLIENT_OUTDATED].include?(net_err_code)
550
555
  server_version = net_err_msg[0..4]
551
- net_err_msg = net_err_msg[5..-1]
556
+ net_err_msg = net_err_msg[5..]
552
557
  @font.draw_text("Server version: #{server_version} Your version: #{GAME_VERSION}", 50, 150, 0, 2, 2)
553
558
  end
554
559
  @font.draw_text((NET_ERR[net_err_code]).to_s, 50, 30, 0, 5, 5)
@@ -18,6 +18,7 @@ def draw_scoreboard(win_size_x, win_size_y, players, font, debug)
18
18
  # row borders
19
19
  draw_rect(pad_x + 3, pad_y + (i * slot_height), size_x - 6, 3, 0xaa000000)
20
20
  end
21
+ players.sort_by! { |player| -player.score }
21
22
  players.each_with_index do |player, i|
22
23
  score_offset = text_scale * 10 * player.score.to_s.length
23
24
  dbg = 0
@@ -45,9 +45,10 @@ class TextField < Gosu::TextInput
45
45
  INACTIVE_COLOR
46
46
  end
47
47
  # ChillerDragon's epic shadow to at least have edited the stolen sample a lil bit
48
- Gosu.draw_rect (x - PADDING) + 5, (y - PADDING) + 5, WIDTH + 2 * PADDING, height + 2 * PADDING, INACTIVE_COLOR, z
49
- Gosu.draw_rect x - PADDING, y - PADDING, WIDTH + 2 * PADDING, height + 2 * PADDING, color, z
50
- Gosu.draw_rect x - PADDING, y - PADDING, WIDTH + 2 * PADDING, height + 2 * PADDING, color, z
48
+ Gosu.draw_rect (x - PADDING) + 5, (y - PADDING) + 5, WIDTH + (2 * PADDING), height + (2 * PADDING), INACTIVE_COLOR,
49
+ z
50
+ Gosu.draw_rect x - PADDING, y - PADDING, WIDTH + (2 * PADDING), height + (2 * PADDING), color, z
51
+ Gosu.draw_rect x - PADDING, y - PADDING, WIDTH + (2 * PADDING), height + (2 * PADDING), color, z
51
52
 
52
53
  # Calculate the position of the caret and the selection start.
53
54
  pos_x = x + FONT.text_width(text[0...caret_pos])
@@ -66,9 +66,7 @@ class ServerCore
66
66
  end
67
67
 
68
68
  # protocol 3 name prot
69
- # gamestate
70
- # |
71
- pck = "3l#{net_pack_int(@players.count)}g"
69
+ pck = "3l#{net_pack_int(@players.count)}#{@gamelogic.gamestate}"
72
70
  @players.each do |p|
73
71
  pck += p.to_n_pck
74
72
  end
@@ -103,7 +101,7 @@ class ServerCore
103
101
  def players_to_packet
104
102
  # player count
105
103
  packet = net_pack_int(@players.empty? ? 0 : @players.count)
106
- packet += 'g' # gamestate
104
+ packet += @gamelogic.gamestate
107
105
  @players.each do |player|
108
106
  packet += player.to_s
109
107
  end
@@ -113,7 +111,7 @@ class ServerCore
113
111
  def update_pck(data, dt)
114
112
  id = data[0].to_i(16)
115
113
  @console.dbg "[UPDATE] got player with id: #{id}"
116
- @players = @gamelogic.handle_client_requests(@game_map, data[1..-1], id, @players, dt)
114
+ @players = @gamelogic.handle_client_requests(@game_map, data[1..], id, @players, dt)
117
115
  nil # defaults to normal update pck
118
116
  end
119
117
 
@@ -162,7 +160,7 @@ class ServerCore
162
160
 
163
161
  def command_package(data, client)
164
162
  id = data[0..1].to_i(16)
165
- cmd = data[1..-1].strip
163
+ cmd = data[1..].strip
166
164
  @console.log "[chat] ID=#{id} command='#{cmd}'"
167
165
  msg = "server_recived_cmd: #{cmd}"
168
166
  msg = msg.ljust(SERVER_PACKAGE_LEN - 2, '0')
@@ -243,7 +241,7 @@ class ServerCore
243
241
  end
244
242
 
245
243
  def handle_client_data(client, data, ip, dt)
246
- response = handle_protocol(client, data[0].to_i, data[1], data[2..-1], ip, dt)
244
+ response = handle_protocol(client, data[0].to_i, data[1], data[2..], ip, dt)
247
245
  # the response is a direct respond to an protocol
248
246
  # everything above this could override important responds
249
247
  # like id assignment
@@ -4,9 +4,14 @@ require_relative '../share/math'
4
4
 
5
5
  # high level game logic
6
6
  class GameLogic
7
+ attr_reader :gamestate
8
+
7
9
  def initialize(console)
8
10
  @console = console
9
11
  @alive_players = 0
12
+ @scorelimit = 10
13
+ @gamestate = 'g'
14
+ @ticks_till_new_round = 0
10
15
  end
11
16
 
12
17
  def on_player_connect(client, players)
@@ -34,7 +39,27 @@ class GameLogic
34
39
  end
35
40
  end
36
41
 
42
+ def start_round(players)
43
+ @gamestate = 'g'
44
+ players.each do |player|
45
+ player.score = 0
46
+ player.die
47
+ end
48
+ end
49
+
50
+ def end_round
51
+ @console.log 'round end'
52
+ @gamestate = 'e'
53
+ @ticks_till_new_round = (5 / MAX_TICK_SPEED).to_i
54
+ end
55
+
37
56
  def tick(game_map, players, dt, tick)
57
+ if @gamestate == 'e'
58
+ @ticks_till_new_round -= 1
59
+ return players if @ticks_till_new_round.positive?
60
+
61
+ start_round(players)
62
+ end
38
63
  players.each do |player|
39
64
  # reset values (should stay first)
40
65
  player.reset_collide
@@ -51,7 +76,10 @@ class GameLogic
51
76
  # player collsions works
52
77
  # but it eats performance and delays jumping
53
78
  check_collide(players, player)
79
+
80
+ end_round if player.score >= @scorelimit
54
81
  end
82
+ players
55
83
  end
56
84
 
57
85
  def game_map_collision_vertical(game_map, player)
@@ -153,7 +181,7 @@ class GameLogic
153
181
  dy = (player.aim_y - player.y).clamp(-200, 200) / 20
154
182
  dx *= (player.fire_ticks / 10).clamp(1, 3)
155
183
  dy *= (player.fire_ticks / 10).clamp(1, 3)
156
- player.projectile.fire(player.x + TILE_SIZE / 4, player.y + TILE_SIZE / 2, dx, dy, player)
184
+ player.projectile.fire(player.x + (TILE_SIZE / 4), player.y + (TILE_SIZE / 2), dx, dy, player)
157
185
  end
158
186
  player.fire_ticks = 0
159
187
  player.state[:fire] = 0
data/lib/share/config.rb CHANGED
@@ -11,9 +11,9 @@ class Config
11
11
  def initialize(console, file)
12
12
  @chichilku3_dir = ''
13
13
  if OS.linux?
14
- @chichilku3_dir = "#{ENV['HOME']}/.chichilku/chichilku3/"
14
+ @chichilku3_dir = "#{Dir.home}/.chichilku/chichilku3/"
15
15
  elsif OS.mac?
16
- @chichilku3_dir = "#{ENV['HOME']}/Library/Application Support/chichilku/chichilku3/"
16
+ @chichilku3_dir = "#{Dir.home}/Library/Application Support/chichilku/chichilku3/"
17
17
  # elsif OS.windows?
18
18
  # @chichilku3_dir = "%APPDATA%\\chichilku\\chichilku3\\"
19
19
  else
@@ -44,9 +44,7 @@ class Config
44
44
  return if File.file?(to)
45
45
 
46
46
  tmp = JSON.parse(File.read(from))
47
- File.open(to, 'w') do |f|
48
- f.write(tmp.to_json)
49
- end
47
+ File.write(to, tmp.to_json)
50
48
  end
51
49
 
52
50
  def sanitize_data(data)
@@ -61,8 +59,6 @@ class Config
61
59
  end
62
60
 
63
61
  def save
64
- File.open(@file, 'w') do |f|
65
- f.write(JSON.pretty_generate(data))
66
- end
62
+ File.write(@file, JSON.pretty_generate(data))
67
63
  end
68
64
  end
data/lib/share/console.rb CHANGED
@@ -32,7 +32,7 @@ class Console
32
32
  hour: t.hour,
33
33
  min: t.min,
34
34
  sec: t.sec,
35
- type: type,
35
+ type:,
36
36
  msg: message)
37
37
  end
38
38
  end
@@ -103,8 +103,8 @@ class GameMap
103
103
  x = 0
104
104
  gamerow.chars.each do |tile|
105
105
  if tile == 'i'
106
- grass[:x2] = x * TILE_SIZE + TILE_SIZE
107
- grass[:y] = y * TILE_SIZE + TILE_SIZE / 2 + 2
106
+ grass[:x2] = (x * TILE_SIZE) + TILE_SIZE
107
+ grass[:y] = (y * TILE_SIZE) + (TILE_SIZE / 2) + 2
108
108
  grass[:x1] = x * TILE_SIZE if grass[:x1].nil?
109
109
  else
110
110
  @grass_rows.push(grass) unless grass == {}
@@ -140,15 +140,15 @@ class GameMap
140
140
  end
141
141
 
142
142
  def death?(x, y)
143
- { x: x, y: y } if @gametiles[y][x] == 'X'
143
+ { x:, y: } if @gametiles[y][x] == 'X'
144
144
  end
145
145
 
146
146
  def collision?(x, y)
147
- { x: x, y: y } if @gametiles[y][x] == 'O'
147
+ { x:, y: } if @gametiles[y][x] == 'O'
148
148
  end
149
149
 
150
150
  def grass?(x, y)
151
- { x: x, y: y } if @gametiles[y][x] == 'i'
151
+ { x:, y: } if @gametiles[y][x] == 'i'
152
152
  end
153
153
 
154
154
  # SERVER
@@ -177,7 +177,7 @@ class GameMap
177
177
  def zip
178
178
  map_dir = "#{@cfg.chichilku3_dir}maps/#{@mapname}"
179
179
  map_zip = "#{@cfg.chichilku3_dir}maps/#{@mapname}.zip"
180
- File.delete map_zip if File.exist? map_zip
180
+ FileUtils.rm_rf map_zip
181
181
 
182
182
  @console.log "archiving map '#{map_zip}' ..."
183
183
  Zip::File.open(map_zip, Zip::File::CREATE) do |zipfile|
@@ -213,7 +213,7 @@ class GameMap
213
213
  return nil if @mapname == '' || @mapname.nil?
214
214
 
215
215
  if offset + size > @b64_size
216
- @b64_data[offset..-1].ljust(size, ' ')
216
+ @b64_data[offset..].ljust(size, ' ')
217
217
  else
218
218
  @b64_data[offset...offset + size]
219
219
  end
@@ -227,14 +227,14 @@ class GameMap
227
227
 
228
228
  def prepare_download
229
229
  @tmpfile = "#{@cfg.chichilku3_dir}tmp/#{@mapname}"
230
- File.delete @tmpfile if File.exist? @tmpfile
230
+ FileUtils.rm_rf @tmpfile
231
231
  end
232
232
 
233
233
  def download(data)
234
234
  data.strip!
235
235
  @progress += data.size
236
236
  @console.dbg "downloading #{@progress} / #{@b64_size} ..."
237
- IO.write(@tmpfile, data, mode: 'a')
237
+ File.write(@tmpfile, data, mode: 'a')
238
238
  if @progress >= @b64_size
239
239
  @console.log 'finished download'
240
240
  @callback.call(load)
@@ -260,7 +260,7 @@ class GameMap
260
260
  end
261
261
  end
262
262
  end
263
- File.delete map_archive if File.exist? map_archive
263
+ FileUtils.rm_rf map_archive
264
264
  map_dir
265
265
  end
266
266
 
@@ -268,11 +268,7 @@ class GameMap
268
268
  outfile = "#{dl_path}.zip"
269
269
  @console.log 'converting downloaded map ...'
270
270
  File.open(@tmpfile, 'rb') do |map_encoded|
271
- File.open(outfile, 'wb') do |map_png|
272
- map_png.write(
273
- Base64.decode64(map_encoded.read)
274
- )
275
- end
271
+ File.binwrite(outfile, Base64.decode64(map_encoded.read))
276
272
  end
277
273
  unzip
278
274
  end
data/lib/share/network.rb CHANGED
@@ -26,7 +26,7 @@ MAX_MAPNAME_LEN = 43
26
26
  MAX_CLIENTS = 12
27
27
  PLAYER_PACKAGE_LEN = 16
28
28
  CLIENT_PACKAGE_LEN = 11 # used by server
29
- SERVER_PACKAGE_LEN = MAX_CLIENTS * PLAYER_PACKAGE_LEN + 4 # used by client
29
+ SERVER_PACKAGE_LEN = (MAX_CLIENTS * PLAYER_PACKAGE_LEN) + 4 # used by client
30
30
 
31
31
  MAX_TIMEOUT = 5
32
32
  MAX_TICK_SPEED = 0.01 # the lower the faster client and server tick
@@ -135,7 +135,7 @@ def net_unpack_bigint(net_int)
135
135
  if i.zero?
136
136
  sum = net_unpack_int(c)
137
137
  else
138
- sum += net_unpack_int(c) * (NET_MAX_INT + 1)**i
138
+ sum += net_unpack_int(c) * ((NET_MAX_INT + 1)**i)
139
139
  end
140
140
  end
141
141
  sum
data/lib/share/player.rb CHANGED
@@ -64,11 +64,11 @@ class Player
64
64
  return if @tick % 5 != 0
65
65
 
66
66
  new_x = true if @x != @last_x
67
- if @y != @last_y
67
+ if @y == @last_y
68
+ @not_changed_y += 1
69
+ else
68
70
  new_y = true
69
71
  @not_changed_y = 0
70
- else
71
- @not_changed_y += 1
72
72
  end
73
73
 
74
74
  if new_x || new_y
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chichilku3
3
3
  version: !ruby/object:Gem::Version
4
- version: 15.0.2
4
+ version: 15.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ChillerDragon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-26 00:00:00.000000000 Z
11
+ date: 2022-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fileutils
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.2.0
19
+ version: 1.6.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.2.0
26
+ version: 1.6.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gosu
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -150,7 +150,8 @@ files:
150
150
  homepage: https://github.com/chichilku/chichilku3
151
151
  licenses:
152
152
  - Unlicense
153
- metadata: {}
153
+ metadata:
154
+ rubygems_mfa_required: 'true'
154
155
  post_install_message:
155
156
  rdoc_options: []
156
157
  require_paths:
@@ -159,14 +160,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
159
160
  requirements:
160
161
  - - ">="
161
162
  - !ruby/object:Gem::Version
162
- version: 2.5.0
163
+ version: 3.1.2
163
164
  required_rubygems_version: !ruby/object:Gem::Requirement
164
165
  requirements:
165
166
  - - ">="
166
167
  - !ruby/object:Gem::Version
167
168
  version: '0'
168
169
  requirements: []
169
- rubygems_version: 3.2.32
170
+ rubygems_version: 3.3.7
170
171
  signing_key:
171
172
  specification_version: 4
172
173
  summary: Stick battle game