Battlecity 0.0.2 → 0.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
  SHA1:
3
- metadata.gz: f5c57043a068e9d86f83544fff09e2c6efff74dc
4
- data.tar.gz: 781b99c3a4008950c40222633d807c3345960e3e
3
+ metadata.gz: 65fea14dc02f115ac203dbe4261d0456b62005ea
4
+ data.tar.gz: 759052b6851397734ef1f1925cd6d37e74af6c91
5
5
  SHA512:
6
- metadata.gz: b88914f4c3f371f8f2894a7dc474ecf64503b63c7713b7135d3820a7a8533adbb881c768f22a0aea34631d3f21bcadd7a6eece4894bef10c0bdb7a2ceef98e21
7
- data.tar.gz: e5b8346f0ee2097e910a47c4188e75cc0485295002d9946594545c32f563517c82e84305a32bc4d9c59ec48888f17410e36b04c4632937c93f4c932a415b7dfb
6
+ metadata.gz: a16c7d9fc3fd61a66a025435ab9bee39ed709623738038b49a0178c717ae5de6abde432e047d987433ac3cd68bf9153153193b18ba472d6da6b68de7055b239e
7
+ data.tar.gz: 41c2f6532e188af340dca4a93a11090b02158cc15373d5bff8bf02a69c88a37708d48ec731fa6ab45b415cd3acc1c04983e195d92693372fe080bb6698a9eca9
@@ -1,3 +1,3 @@
1
1
  module Battlecity
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,7 +1,8 @@
1
1
  require_relative 'tank'
2
2
  class Player < Tank
3
3
  attr_reader :bullet
4
-
4
+ attr_reader :level
5
+ attr_reader :speed
5
6
  def initialize(x, y, map, player2=false)
6
7
  super(x, y, :up)
7
8
  @player2 = player2
@@ -0,0 +1,30 @@
1
+ require 'rspec'
2
+
3
+ require_relative 'spec_helper'
4
+ require 'entities/collider'
5
+
6
+ describe Collider do
7
+ context 'Should collide' do
8
+ subject(:collider1) { Collider.new(0, 0, 2, 2) }
9
+ subject(:collider2) { Collider.new(1, 1, 2, 2) }
10
+
11
+ it { expect(collider1.collides?(collider2)).to eq true }
12
+
13
+ end
14
+
15
+ context 'testing width and height - should collide' do
16
+ subject(:collider1) { Collider.new(0, 0, 2, 2) }
17
+ subject(:collider2) { Collider.new(7, 7, 2, 2) }
18
+
19
+ it { expect(collider1.collides?(collider2)).to eq true }
20
+ end
21
+
22
+ context 'testing width and height - should not collide' do
23
+ subject(:collider1) { Collider.new(0, 0, 2, 2) }
24
+ subject(:collider2) { Collider.new(16, 16, 2, 2) }
25
+
26
+ it { expect(collider1.collides?(collider2)).to eq false }
27
+ end
28
+
29
+
30
+ end
data/spec/env_spec.rb ADDED
@@ -0,0 +1,34 @@
1
+ require 'rspec'
2
+
3
+ require_relative 'spec_helper'
4
+ require 'entities/stone'
5
+ require 'entities/bush'
6
+ require 'entities/brick'
7
+ require 'entities/water'
8
+ require 'entities/bullet'
9
+ require 'entities/tank'
10
+ require 'misc/game_window'
11
+ $window = GameWindow.new
12
+
13
+ describe 'Environment behaviour' do
14
+
15
+ context 'Stone has collider' do
16
+ subject(:stone) { Stone.new(0, 0) }
17
+ it { expect(stone.solid?).to eq true }
18
+ end
19
+ context 'Bush has not collider' do
20
+ subject(:bush) { Bush.new(1, 1) }
21
+ #it { expect(stone.collider.collides?(bush.collider)).to eq false }
22
+ it { expect(bush.solid?).to eq false }
23
+ end
24
+
25
+ context 'Brick has collider' do
26
+ subject(:brick) { Brick.new(0, 0) }
27
+ it { expect(brick.solid?).to eq true }
28
+ end
29
+
30
+ context 'Water has collider' do
31
+ subject(:obj) { Water.new(0, 0) }
32
+ it { expect(obj.solid?).to eq true }
33
+ end
34
+ end
@@ -0,0 +1,44 @@
1
+ require 'rspec'
2
+
3
+ require_relative 'spec_helper'
4
+ require 'entities/player'
5
+ require 'entities/upgrade'
6
+ require 'misc/game_window'
7
+ $window = GameWindow.new
8
+
9
+ describe 'Player movement' do
10
+ subject(:pl) { Player.new(0,1,nil) }
11
+ it 'Player can turn into right direction' do
12
+ expect { pl.input([:p1down]) }.to change {
13
+ pl.direction
14
+ }.from(:up).to(:down)
15
+ expect { pl.input([:p1up]) }.to change {
16
+ pl.direction
17
+ }.from(:down).to(:up)
18
+ expect { pl.input([:p1left]) }.to change {
19
+ pl.direction
20
+ }.from(:up).to(:left)
21
+ expect { pl.input([:p1right]) }.to change {
22
+ pl.direction
23
+ }.from(:left).to(:right)
24
+
25
+ end
26
+
27
+ it 'Player can move' do
28
+ expect { pl.move }.to change { pl.y
29
+ }.from(1).to(0)
30
+ end
31
+ it 'Player can level up' do
32
+ expect {pl.level_up}.to change {pl.level}.by(1)
33
+ end
34
+
35
+ it 'Player can increase speed when level up' do
36
+ expect {pl.level_up}.to change {pl.level}.by(1)
37
+ expect {pl.level_up}.to change {pl.speed}.by(0.5)
38
+ end
39
+
40
+ it 'Player levels up when collect star' do
41
+ u = Upgrade.new(0,0,:powerup_star)
42
+ expect {pl.upgrade_taken(u)}.to change {pl.level}.by(1)
43
+ end
44
+ end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ RSpec.configure do |c|
4
+ c.color = true
5
+ c.formatter = :documentation
6
+ c.tty = true
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Battlecity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomáš Šabata
@@ -95,6 +95,10 @@ files:
95
95
  - media/emulogic.ttf
96
96
  - media/sprites.png
97
97
  - media/sprites_transparent.png
98
+ - spec/collider_spec.rb
99
+ - spec/env_spec.rb
100
+ - spec/player_spec.rb
101
+ - spec/spec_helper.rb
98
102
  homepage: ''
99
103
  licenses:
100
104
  - MIT
@@ -119,4 +123,8 @@ rubygems_version: 2.4.5.1
119
123
  signing_key:
120
124
  specification_version: 4
121
125
  summary: Battle city is old NES game. I did remake in ruby for school project
122
- test_files: []
126
+ test_files:
127
+ - spec/collider_spec.rb
128
+ - spec/env_spec.rb
129
+ - spec/player_spec.rb
130
+ - spec/spec_helper.rb