delve 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 10c84e05752953cb0e5e97d9d8890c3e6c5b4cf5
4
- data.tar.gz: 7123fda111f93a53aa8eafac8c0897b5323c8dec
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MTJiNDhkOTA5NDM1MzhjMzcyMTcyMWE5YzA1MGZhNDQ5ZGE5NzI3Yw==
5
+ data.tar.gz: !binary |-
6
+ ZmVmOWJhYjU2OWJmYjFjOTUzZjAwZTYwMzMwMTc2ZWVlYzc2NmZkYg==
5
7
  SHA512:
6
- metadata.gz: 81d867799c356368a1db923fb164657f76bc5a8598a6ee5b6d79f9c1e4d037c587b47c602287ac63eb49667d5479c8109b422e7e1576805260177de5518c4508
7
- data.tar.gz: 664fbffcd123832b3a605527025287f413fbb3da691e98778ab4b0ec443c046e6c7ba306b58047d56753d6a4106d751dfaeb56e34187c6cc758473428de64373
8
+ metadata.gz: !binary |-
9
+ M2UzYTljMjkwMDA1OTY2ODY4ZDc3MjM2MTMzOTQ2MzQ1ZDE5YmM4NTE3MmU1
10
+ MmZhYTcwMmY3MzFmNDgwMjU1YjBlMzgwZmZhYTk0NzgwZmE0N2EzZTc2NGM3
11
+ MmQzMzJiMTQ2Nzc2MDhkNDg4ZTAzOTRlNThhMGMwZWFlNmRiYmM=
12
+ data.tar.gz: !binary |-
13
+ YTEzMjE2NjM5NjI2NmM5MGIwYWVmMjA4Y2QyYTdmZjAxZWIzMTMwMzNlMGZj
14
+ MTBjMWFmN2IxOGMzMjFkZTRjNTgwYTU5MjJhNWM5OWFkNmVmNGYzYjdkYTJi
15
+ Y2VhOTUwZTAwYmJlYjEwZjM4OGFlZjhjZWVlOGNiNWJhMzE0NzQ=
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- delve (0.0.7)
5
- perlin_noise
4
+ delve (0.0.8)
5
+ perlin_noise (= 0.1.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -19,6 +19,6 @@ PLATFORMS
19
19
 
20
20
  DEPENDENCIES
21
21
  delve!
22
- minitest
23
- mocha
24
- rake
22
+ minitest (= 5.2.2)
23
+ mocha (= 1.0.0)
24
+ rake (= 10.1.1)
data/README.md CHANGED
@@ -4,3 +4,22 @@ delve
4
4
  Roguelike Library for Ruby. Inspired by libtcod and rot.js
5
5
 
6
6
  Some code ported from Rot.JS, by @ondras. The Rot.js license is included in rot.js.LICENSE
7
+
8
+ ## Installation
9
+
10
+ Delve is packaged as a Ruby gem, so installation is a simple as
11
+
12
+ $ gem install delve
13
+
14
+ ## Bootstrapping a Roguelike
15
+
16
+ Delve allows you to bootstrap your roguelike, with a simple game that includes a main screen and a game screen, with an _@ walking around the world_ demo game that you can extend.
17
+
18
+ To generate your Roguelike, run
19
+
20
+ $ delve -n my-roguelike
21
+
22
+ You can also see the current installed version of delve by running
23
+
24
+ $ delve -v
25
+ $ delve --version
data/ROADMAP.md CHANGED
@@ -19,7 +19,7 @@ Roadmap
19
19
  * Twitter post
20
20
  * Make it work with both Ruby 1.9.3 and 2.x
21
21
 
22
- **v0.0.8**
22
+ **v0.0.9**
23
23
 
24
24
  * Speed Scheduler
25
25
  * Travis CI builds
@@ -28,20 +28,23 @@ Roadmap
28
28
  - Fantasy
29
29
  - SciFi
30
30
 
31
- **v0.0.7** (Initial release)
31
+ **v0.0.8**
32
32
 
33
33
  * Use engine in game gen
34
34
  * Render spaces with default color rather than red question marks if unknown tile
35
35
  * Command line takes params
36
36
  * delve mygame -g dungeon -r curses -s scheduler
37
- * Base FieldOfView class [DONE]
38
37
  * Discrete shadowcasting FoV class
39
- * Base Path class [DONE]
40
- * A* Pathing class [DONE]
41
38
  * Make move/collision component return the item that was in the collision
42
39
 
43
40
  ========================================================================
44
41
 
42
+ **v0.0.7** (Released version)
43
+
44
+ * Base FieldOfView class [DONE]
45
+ * Base Path class [DONE]
46
+ * A* Pathing class [DONE]
47
+
45
48
  **v0.0.6**
46
49
 
47
50
  * Simple Scheduler [Done]
data/bin/delve CHANGED
@@ -1,15 +1,43 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'delve'
4
+ require 'delve/version'
5
+ require 'optparse'
4
6
 
5
- name = ARGV.shift
7
+ options = Hash.new
8
+ banner = "
6
9
 
7
- if name.nil?
8
- puts "Cannot create roguelike without a name"
10
+ ===========
11
+ Delve
12
+ ===========
13
+
14
+ "
15
+
16
+ OptionParser.new do |opts|
17
+ opts.banner = banner
18
+
19
+ opts.on '-n', '--name NAME', 'Name of your new roguelike' do |n|
20
+ options[:name] = n
21
+ end
22
+
23
+ opts.on '-v', '--version', 'Display the current version' do |v|
24
+ options[:version] = true
25
+ end
26
+ end.parse!
27
+
28
+ if options[:version]
29
+ puts "Delve v#{Delve.version}"
9
30
  exit 1
10
31
  end
11
32
 
12
- dir = File.expand_path('.').to_s
33
+ errors = []
34
+ errors << 'Cannot create roguelike without a name' unless options.include? :name
35
+
36
+ errors.each do |err|
37
+ puts "* #{err}\n"
38
+ end
39
+ exit 1 if errors.length > 0
13
40
 
14
- delve = Delve.new name
41
+ dir = File.expand_path('.').to_s
42
+ delve = Delve.new options[:name]
15
43
  delve.create_game dir
@@ -1,6 +1,8 @@
1
+ require File.expand_path('./lib/delve/version', File.dirname(__FILE__))
2
+
1
3
  Gem::Specification.new do |g|
2
4
  g.name = 'delve'
3
- g.version = '0.0.7'
5
+ g.version = Delve.version
4
6
  g.date = '2014-03-24'
5
7
  g.summary = 'Roguelike library inspired by rot.js and libtcod'
6
8
  g.description = 'Roguelike library inspired by rot.js and libtcod. Allows developers to get a jumpstart on their roguelike development, by running a single command to get started with an "@ walking around the world" demo.'
@@ -12,6 +12,6 @@ class CollisionComponent
12
12
  end
13
13
 
14
14
  def free?(x, y)
15
- @detector.free(x, y)
15
+ @detector.free?(x, y)
16
16
  end
17
17
  end
@@ -0,0 +1,5 @@
1
+ class Delve
2
+ def self.version
3
+ '0.0.8'
4
+ end
5
+ end
@@ -26,21 +26,15 @@ class LoadingScreen
26
26
  def update(input)
27
27
  @world = World.new(<%= @new_generator %>)
28
28
  @player = @player_factory.create @world
29
+ randomize_location @player
29
30
  @manager.push_screen GameScreen.new(@world, @player, @manager)
30
31
  false
31
32
  end
32
33
 
33
34
  private
34
- def randomize_player_location
35
- rx = (rand * @world.width).floor
36
- ry = (rand * @world.height).floor
37
-
38
- while !@world.free(rx, ry)
39
- rx = (rand * @world.width).floor
40
- ry = (rand * @world.height).floor
41
- end
42
-
43
- @player.get(:position).set(rx, ry)
35
+ def randomize_location(thing)
36
+ pos = @world.random_free_location
37
+ thing.get(:position).set(pos[:x], pos[:y])
44
38
  end
45
39
 
46
40
  end
@@ -41,8 +41,21 @@ class World
41
41
  @height
42
42
  end
43
43
 
44
- def free(x, y)
45
- at(x, y)[:walkable]
44
+ def free?(x, y)
45
+ item = at(x, y)
46
+ !item.nil? and item[:walkable]
47
+ end
48
+
49
+ def random_free_location
50
+ rx = (rand * @width).floor
51
+ ry = (rand * @height).floor
52
+
53
+ while !free?(rx, ry)
54
+ rx = (rand * @width).floor
55
+ ry = (rand * @height).floor
56
+ end
57
+
58
+ { x: rx, y: ry }
46
59
  end
47
60
 
48
61
  private
@@ -28,12 +28,12 @@ class CollisionComponentTest < Minitest::Test
28
28
  end
29
29
 
30
30
  def test_free_returns_true_if_world_tile_is_free
31
- @detector.expects(:free).with(1, 2).returns(true)
31
+ @detector.expects(:free?).with(1, 2).returns(true)
32
32
  assert @collision.free?(1, 2)
33
33
  end
34
34
 
35
35
  def test_free_returns_false_if_world_tile_is_not_free
36
- @detector.expects(:free).with(2, 1).returns(false)
36
+ @detector.expects(:free?).with(2, 1).returns(false)
37
37
  assert !@collision.free?(2, 1)
38
38
  end
39
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delve
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benny Hallett
@@ -75,7 +75,7 @@ executables:
75
75
  extensions: []
76
76
  extra_rdoc_files: []
77
77
  files:
78
- - ".gitignore"
78
+ - .gitignore
79
79
  - Gemfile
80
80
  - Gemfile.lock
81
81
  - LICENSE
@@ -120,6 +120,7 @@ files:
120
120
  - lib/delve/scheduler/scheduler.rb
121
121
  - lib/delve/scheduler/simple_scheduler.rb
122
122
  - lib/delve/screen_manager.rb
123
+ - lib/delve/version.rb
123
124
  - lib/delve/widgets/border.rb
124
125
  - lib/delve/widgets/key_value.rb
125
126
  - lib/delve/widgets/menu.rb
@@ -176,12 +177,12 @@ require_paths:
176
177
  - lib
177
178
  required_ruby_version: !ruby/object:Gem::Requirement
178
179
  requirements:
179
- - - ">="
180
+ - - ! '>='
180
181
  - !ruby/object:Gem::Version
181
182
  version: '0'
182
183
  required_rubygems_version: !ruby/object:Gem::Requirement
183
184
  requirements:
184
- - - ">="
185
+ - - ! '>='
185
186
  - !ruby/object:Gem::Version
186
187
  version: '0'
187
188
  requirements: []