rtanque 0.1.1 → 0.1.2

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: f5f4b4408532ba416d2572aac6a6173f412fd99a
4
- data.tar.gz: 1d4995cb500186090ceb317fac267fb65ea21a3b
3
+ metadata.gz: b5b5b5c762071e699e291d5fb2eee0b3fbde3969
4
+ data.tar.gz: 7024d13b01047e8e8ed0108419105e4c6ff00580
5
5
  SHA512:
6
- metadata.gz: 1461a7bc912bc9eb9546042d6972695d27a1339639c5a6859c05b2799cf229f00fd4987042d750d4d7ba68bf067cd5ab5a551795a1b65c70058e89b0a8cf5689
7
- data.tar.gz: 4787e52d89f835655e7ef722d628554bc9bf9371dd4a75e7235cd219d60f72c4b5dd3dc45f871c0372e72a65e57146499684511dac70f39cbbe8944c7c6b2c73
6
+ metadata.gz: 8e61aa1c443deaaba2127306671699c76e2753d06c911073b71e6811fba2a8975a472b9ac66b3a0b24aa20f7c12922dcf6d0af8c85b67d4cb62cecd0a37c4915
7
+ data.tar.gz: 30d528d916bf3b267bee41bbc6528d8c0ce2666d19dbb0755b83b673c9f138069773b9c9deb495d8be40c976390bc67ff49b7ee457ae85b8052408a7bf4cba88
@@ -0,0 +1 @@
1
+ RTanque
@@ -0,0 +1 @@
1
+ 2.0.0
data/README.md CHANGED
@@ -3,6 +3,8 @@
3
3
  **What is this?**
4
4
  RTanque is a game for ( *Ruby* ) programmers. Players program the brain of a tank and then send their tank+brain into battle with other tanks. All tanks are otherwise equal.
5
5
 
6
+ [Getting started guide](http://awilliams.github.io/articles/rtanque-getting-started/)
7
+
6
8
  Rules of the game are simple: Last bot standing wins. Gameplay is also pretty simple. Each tank has a **base**, **turret** and **radar**, each of which rotate independently. The base moves the tank, the turret has a gun mounted to it which can fire at other tanks, and the radar detects other tanks in its field of vision.
7
9
 
8
10
  Have fun competing against friends' tanks or the sample ones included. Maybe you'll start a small league at your local Ruby meetup. CLI provides easy way to download bots from gists.
@@ -11,8 +13,11 @@ Sound difficult or time consuming? It's not! Check out the included sample tank
11
13
 
12
14
  This is not an original idea, see [influences](https://github.com/awilliams/RTanque#influences). There's a lot of resources out there around tank design and tactics that could be applied to RTanque.
13
15
 
14
- How does it look? Here's a [video](https://www.youtube.com/watch?v=G7i5X8pI6dk&hd=1) and screenshot of the game:
15
- ![Battle](https://raw.github.com/awilliams/RTanque/master/screenshots/battle_1.png)
16
+ How does it look? Here's a video of a battle:
17
+
18
+ <a href="http://www.youtube.com/watch?feature=player_embedded&v=UPBqwOgGlVY
19
+ " target="_blank"><img src="http://img.youtube.com/vi/UPBqwOgGlVY/0.jpg"
20
+ alt="RTanque Demo" width="640" height="480" border="10" /></a>
16
21
 
17
22
  #### Influences
18
23
  RTanque is based on the Java project [Robocode](http://robocode.sourceforge.net/) and inspired by other Ruby ports. Thanks and credit go to them both.
@@ -96,10 +96,16 @@ LONGDESC
96
96
  end
97
97
 
98
98
  def download_gist(gist_id, options)
99
- gist = Octokit.gist(gist_id)
100
- gist.files.values.map do |gist_file|
101
- gist_path = "#{BOT_DIR}/#{gist.user.login}.#{gist_id}/#{gist_file.filename}"
102
- create_file(gist_path, gist_file.content, options)
99
+ client = Octokit::Client.new
100
+ begin
101
+ gist = client.gist(gist_id)
102
+ rescue Octokit::NotFound
103
+ puts set_color("Error! Gist #{gist_id} not found. Please ensure the gist id is correct.", :red)
104
+ else
105
+ gist.files.attrs.each do |name, gist_file|
106
+ gist_path = "#{BOT_DIR}/#{gist.user.login}.#{gist_id}/#{name}"
107
+ create_file(gist_path, gist_file.content, options)
108
+ end
103
109
  end
104
110
  end
105
111
 
@@ -108,4 +114,4 @@ LONGDESC
108
114
  end
109
115
  end
110
116
 
111
- RTanqueCLI.start
117
+ RTanqueCLI.start
@@ -5,16 +5,27 @@ module RTanque
5
5
  class Shell
6
6
  attr_reader :shell
7
7
 
8
+ DEBUG = ENV["DEBUG_SHELLS"]
9
+
8
10
  def initialize(window, shell)
9
11
  @window = window
10
12
  @shell = shell
13
+ @x0 = shell.position.x
14
+ @y0 = @window.height - shell.position.y
11
15
  @shell_image = Gosu::Image.new(@window, Gui.resource_path("images/bullet.png"))
12
16
  end
13
17
 
14
18
  def draw
15
19
  position = [self.shell.position.x, @window.height - self.shell.position.y]
16
20
  @shell_image.draw_rot(position[0], position[1], ZOrder::SHELL, 0, 0.5, 0.5)
21
+
22
+ if DEBUG then
23
+ white = Gosu::Color::WHITE
24
+ pos = shell.position
25
+ x1, y1 = pos.x, @window.height - pos.y
26
+ @window.draw_line @x0, @y0, white, x1, y1, white, ZOrder::SHELL
27
+ end
17
28
  end
18
29
  end
19
30
  end
20
- end
31
+ end
@@ -26,6 +26,8 @@ module RTanque
26
26
  super(@arena.width, @arena.height, false, UPDATE_INTERVAL)
27
27
  self.caption = self.class.name.split('::').first
28
28
  @background = Gosu::Image.new(self, Gui.resource_path("images/grass.png"))
29
+
30
+ @draw_procs = []
29
31
  end
30
32
 
31
33
  def update
@@ -46,7 +48,17 @@ module RTanque
46
48
  self.gui_bots.draw
47
49
  self.gui_shells.draw
48
50
  self.gui_explosions.draw
51
+
52
+ @draw_procs.each do |proc|
53
+ proc.call self
54
+ end
55
+
56
+ @draw_procs.clear
57
+ end
58
+
59
+ def add_draw_proc &b
60
+ @draw_procs << b
49
61
  end
50
62
  end
51
63
  end
52
- end
64
+ end
@@ -16,6 +16,10 @@ module RTanque
16
16
  @stopped = false
17
17
  end
18
18
 
19
+ def teams=(bool)
20
+ @teams = bool
21
+ end
22
+
19
23
  def max_ticks_reached?
20
24
  self.max_ticks && self.ticks >= self.max_ticks
21
25
  end
@@ -1,3 +1,3 @@
1
1
  module RTanque
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
@@ -24,7 +24,7 @@ Have fun competing against friends' tanks or the sample ones included. Maybe you
24
24
 
25
25
  gem.add_dependency 'gosu', '~> 0.7.45'
26
26
  gem.add_dependency 'configuration', '~> 1.3.2'
27
- gem.add_dependency 'octokit', '~> 1.23.0'
27
+ gem.add_dependency 'octokit', '~> 2.7.0'
28
28
  gem.add_dependency 'thor', '~> 0.17.0'
29
29
  gem.add_dependency 'texplay'
30
30
 
@@ -28,6 +28,7 @@ describe RTanque::Match do
28
28
  end
29
29
 
30
30
  it 'should be true if two or more bots left w/ same name' do
31
+ @instance.teams = true
31
32
  bot1 = double('bot', :name => "bot1")
32
33
  bot2 = double('bot', :name => "bot1")
33
34
  @instance.add_bots(bot1, bot2)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtanque
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-26 00:00:00.000000000 Z
11
+ date: 2014-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: 1.23.0
47
+ version: 2.7.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 1.23.0
54
+ version: 2.7.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: thor
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -137,7 +137,8 @@ extra_rdoc_files: []
137
137
  files:
138
138
  - .gitignore
139
139
  - .rspec
140
- - .rvmrc
140
+ - .ruby-gemset
141
+ - .ruby-version
141
142
  - .travis.yml
142
143
  - .yardopts
143
144
  - Gemfile
@@ -285,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
285
286
  version: '0'
286
287
  requirements: []
287
288
  rubyforge_project:
288
- rubygems_version: 2.0.0
289
+ rubygems_version: 2.2.1
289
290
  signing_key:
290
291
  specification_version: 4
291
292
  summary: RTanque is a game for programmers. Players program the brain of a tank and
@@ -300,4 +301,3 @@ test_files:
300
301
  - spec/rtanque/shell_spec.rb
301
302
  - spec/rtanque_spec.rb
302
303
  - spec/spec_helper.rb
303
- has_rdoc:
data/.rvmrc DELETED
@@ -1,34 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
- # development environment upon cd'ing into the directory
5
-
6
- # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
7
- # Only full ruby name is supported here, for short names use:
8
- # echo "rvm use 1.9.3" > .rvmrc
9
- environment_id="ruby-2.0.0@RTanque"
10
-
11
- # Uncomment the following lines if you want to verify rvm version per project
12
- # rvmrc_rvm_version="1.17.2 (stable)" # 1.10.1 seams as a safe start
13
- # eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
14
- # echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
15
- # return 1
16
- # }
17
-
18
- # First we attempt to load the desired environment directly from the environment
19
- # file. This is very fast and efficient compared to running through the entire
20
- # CLI and selector. If you want feedback on which environment was used then
21
- # insert the word 'use' after --create as this triggers verbose mode.
22
- if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
23
- && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
24
- then
25
- \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
26
- [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
27
- \. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
28
- else
29
- # If the environment file has not yet been created, use the RVM CLI to select.
30
- rvm --create "$environment_id" || {
31
- echo "Failed to create RVM environment '${environment_id}'."
32
- return 1
33
- }
34
- fi