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