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 +13 -5
- data/Gemfile.lock +5 -5
- data/README.md +19 -0
- data/ROADMAP.md +8 -5
- data/bin/delve +33 -5
- data/delve.gemspec +3 -1
- data/lib/delve/component/collision.rb +1 -1
- data/lib/delve/version.rb +5 -0
- data/templates/loading_screen.rb.erb +4 -10
- data/templates/world.rb.erb +15 -2
- data/test/component/collision_test.rb +2 -2
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MTJiNDhkOTA5NDM1MzhjMzcyMTcyMWE5YzA1MGZhNDQ5ZGE5NzI3Yw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZmVmOWJhYjU2OWJmYjFjOTUzZjAwZTYwMzMwMTc2ZWVlYzc2NmZkYg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
M2UzYTljMjkwMDA1OTY2ODY4ZDc3MjM2MTMzOTQ2MzQ1ZDE5YmM4NTE3MmU1
|
10
|
+
MmZhYTcwMmY3MzFmNDgwMjU1YjBlMzgwZmZhYTk0NzgwZmE0N2EzZTc2NGM3
|
11
|
+
MmQzMzJiMTQ2Nzc2MDhkNDg4ZTAzOTRlNThhMGMwZWFlNmRiYmM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YTEzMjE2NjM5NjI2NmM5MGIwYWVmMjA4Y2QyYTdmZjAxZWIzMTMwMzNlMGZj
|
14
|
+
MTBjMWFmN2IxOGMzMjFkZTRjNTgwYTU5MjJhNWM5OWFkNmVmNGYzYjdkYTJi
|
15
|
+
Y2VhOTUwZTAwYmJlYjEwZjM4OGFlZjhjZWVlOGNiNWJhMzE0NzQ=
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
delve (0.0.
|
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.
|
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.
|
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
|
-
|
7
|
+
options = Hash.new
|
8
|
+
banner = "
|
6
9
|
|
7
|
-
|
8
|
-
|
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
|
-
|
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
|
-
|
41
|
+
dir = File.expand_path('.').to_s
|
42
|
+
delve = Delve.new options[:name]
|
15
43
|
delve.create_game dir
|
data/delve.gemspec
CHANGED
@@ -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 =
|
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.'
|
@@ -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
|
35
|
-
|
36
|
-
|
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
|
data/templates/world.rb.erb
CHANGED
@@ -41,8 +41,21 @@ class World
|
|
41
41
|
@height
|
42
42
|
end
|
43
43
|
|
44
|
-
def free(x, y)
|
45
|
-
at(x, y)
|
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.
|
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
|
-
-
|
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: []
|