delve 0.0.7 → 0.0.8

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,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: []