t-bag 0.0.4

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cf302fa7c2f18d90737044c46ba9ec78e06fd45d
4
+ data.tar.gz: eb61e19872f242cd77f6a0043c252ff4ddde4e1d
5
+ SHA512:
6
+ metadata.gz: de4cd7eb3eda6c6d8eeeda67b219b428d00169957fd849dbfb4217bc097486056565b41fb9efef113d8f52cad1414da4ca163147fca9d1ece96e4a3a62687dfc
7
+ data.tar.gz: 8586e0060c3fc2a5f3eebda88dc9c3987aaa21806d7b0e8252531c3efa84bea507e6775234cfef95deac16e16975286c5926b660b852bcf9d2e239aa8391db9f
@@ -0,0 +1,71 @@
1
+ =begin
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2015 Benjamin Meyers as Lion Logic <lion.logic.org@gmail.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ =end
24
+ require_relative '../lib/tbag'
25
+ include T_BAG
26
+
27
+ game 'Zork', 'Infocom' do
28
+ start :scene1
29
+ scene :scene1, 'West of House' do
30
+ text 'You are standing in an open field west of a white house, with a boarded front door.'
31
+ pause
32
+ text 'There is a small mailbox here.'
33
+ pause
34
+ prompt 'What would you like to do?', String, 'I don\'t know that word.' do
35
+ choice 'open' do
36
+ puts 'The door cannot be opened.'
37
+ end
38
+ choice 'open mailbox' do
39
+ puts 'Opening the small mailbox reveals a leaflet.'
40
+ end
41
+ end
42
+ prompt 'What would you like to do?', String, 'I don\'t know that word.' do
43
+ choice 'read leaflet' do
44
+ scene_change :scene2
45
+ end
46
+ end
47
+ end
48
+ scene :scene2, 'WELCOME TO ZORK!' do
49
+ text 'WELCOME TO ZORK!'
50
+ pause
51
+ text 'ZORK is a game of adventure, danger, and low cunning.'
52
+ text 'In it you will explore some of the most amazing territory ever seen by mortals.'
53
+ text 'No computer should be without one!'
54
+ pause
55
+ scene_change :endgame
56
+ end
57
+ game_over do
58
+ text 'You were eaten by a grue.'
59
+ pause
60
+ prompt 'Would you like to start over?', String, 'I\'m afraid I don\'t like that answer...' do
61
+ choice 'yes' do
62
+ $game.reset
63
+ end
64
+ choice 'no' do
65
+ $game.quit
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ run
@@ -0,0 +1,53 @@
1
+ =begin
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2015 Benjamin Meyers as Lion Logic <lion.logic.org@gmail.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ =end
24
+
25
+ require_relative 'tbag/game'
26
+ require_relative 'tbag/prompt'
27
+ require_relative 'tbag/scene'
28
+ require_relative 'tbag/game_over'
29
+ require_relative 'tbag/main_menu'
30
+
31
+ require 'docile'
32
+
33
+ # A framework for writing text-based adventure games.
34
+ # @author Benjamin S. Meyers
35
+ module T_BAG
36
+ # The version number.
37
+ VERSION = '0.0.4'
38
+
39
+ # @param [String] title the game title
40
+ # @param [String] author the game author
41
+ # @param [Block] block
42
+ def game(title, author, &block)
43
+ $game = T_BAG::Game.new(title, author)
44
+
45
+ Docile.dsl_eval($game, &block)
46
+ end
47
+
48
+ # Run the game.
49
+ # @return [Void]
50
+ def run
51
+ $game.run
52
+ end
53
+ end
@@ -0,0 +1,175 @@
1
+ =begin
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2015 Benjamin Meyers as Lion Logic <lion.logic.org@gmail.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ =end
24
+
25
+ require_relative '../tbag'
26
+
27
+ require 'docile'
28
+
29
+ module T_BAG
30
+ # Defines a game and its run behavior.
31
+ class Game
32
+ # @param [String] title the game title
33
+ # @param [String] author the game author
34
+ def initialize(title, author)
35
+ @title = title
36
+ @author = author
37
+ @scenes = {}
38
+ @current_scene = nil
39
+ @start_scene = nil
40
+ @next_scene = nil
41
+ @menu_scene = nil
42
+ @called = false
43
+ end
44
+
45
+ # Add a scene to the scene queue.
46
+ # @param [String] name the name of the scene
47
+ # @param [String] title the title of the scene
48
+ # @param [Block] block
49
+ # @return [Void]
50
+ def scene(name, title, &block)
51
+ scene = T_BAG::Scene.new(name, title)
52
+ @scenes[name] = scene
53
+ Docile.dsl_eval(scene, &block)
54
+ end
55
+
56
+ # Add a game over scene to the scene queue.
57
+ # @param [Block] block
58
+ # @return [Void]
59
+ def game_over(&block)
60
+ game_over = T_BAG::Game_Over.new
61
+ @scenes[:endgame] = game_over
62
+ Docile.dsl_eval(game_over, &block)
63
+ end
64
+
65
+ # Add a main menu scene to the scene queue.
66
+ # @param [Block] block
67
+ # @return [Void]
68
+ def main_menu(&block)
69
+ main_menu = T_BAG::Main_Menu.new
70
+ @scenes[:menu] = main_menu
71
+ Docile.dsl_eval(main_menu, &block)
72
+ end
73
+
74
+ # Save the given scene as the starting scene and start the scene.
75
+ # @param [Symbol] scene a scene
76
+ # @return [Void]
77
+ def start(scene)
78
+ if @called == false
79
+ @current_scene = scene
80
+ @start_scene = scene
81
+ @called = true
82
+ else
83
+ @start_scene = scene
84
+ end
85
+ end
86
+
87
+ # Save the given scene as the menu scene.
88
+ # @param [Symbol] scene a scene
89
+ # @return [Void]
90
+ def menu(scene)
91
+ @menu_scene = scene
92
+ end
93
+
94
+ # Run the scenes in chronological order until it finds a nil scene.
95
+ # @return [Void]
96
+ def run
97
+ until @current_scene.nil?
98
+ scene = @scenes[@current_scene]
99
+ if scene.nil?
100
+ $stderr.puts "[GAME] Scene '#{@current_scene}' does not exist"
101
+ end
102
+ scene.run
103
+ @current_scene = @next_scene
104
+ end
105
+ end
106
+
107
+ # Set the given scene to the next scene in the game.
108
+ # @param [Symbol] scene a scene
109
+ # @return [Void]
110
+ def next_scene(scene)
111
+ @next_scene = scene
112
+ end
113
+
114
+ # Reset the game by going back to the starting scene.
115
+ # @return [Void]
116
+ def reset
117
+ @next_scene = @start_scene
118
+ end
119
+
120
+ # Reset the game by going back to the menu scene.
121
+ # @return [Void]
122
+ def tomenu
123
+ @next_scene = @menu_scene
124
+ end
125
+
126
+ # Quit the game.
127
+ # @return [Void]
128
+ def quit
129
+ puts 'Goodbye!'
130
+ exit
131
+ end
132
+
133
+ # Save the current game state as outfile.
134
+ # @param [String] outfile the name of the file to save to
135
+ # @return [Void]
136
+ def save_game(outfile)
137
+ begin
138
+ if File.exist? outfile
139
+ out_file = File.open(outfile, 'r+')
140
+ out_file.puts @current_scene
141
+ out_file.close
142
+ puts 'Save Successful!'
143
+ else
144
+ out_file = File.new(outfile, 'w')
145
+ puts 'Created New Save File...'
146
+ out_file.puts @current_scene
147
+ out_file.close
148
+ puts 'Save Successful!'
149
+ end
150
+ rescue Exception => ex
151
+ puts 'Save Failed!'
152
+ end
153
+ end
154
+
155
+ # Load a game state from infile.
156
+ # @param [String] infile the name of the file to load from
157
+ # @return [Void]
158
+ def load_game(infile)
159
+ begin
160
+ if File.exist? infile
161
+ in_file = File.open(infile, 'r+')
162
+ state = in_file.gets.chomp.intern
163
+ #print state
164
+ next_scene state
165
+ puts 'Load Successful!'
166
+ else
167
+ puts 'File ' + String(infile) + ' not found.'
168
+ reset
169
+ end
170
+ rescue
171
+ puts 'Load Failed!'
172
+ end
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,43 @@
1
+ =begin
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2015 Benjamin Meyers as Lion Logic <lion.logic.org@gmail.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ =end
24
+
25
+ require_relative '../tbag'
26
+
27
+ require 'docile'
28
+
29
+ module T_BAG
30
+ # Defines a special Game Over scene and its run behavior.
31
+ class Game_Over < T_BAG::Scene
32
+ # Returns an instance of a special Game Over scene.
33
+ def initialize
34
+ super(:endgame, 'Game Over')
35
+ end
36
+
37
+ # Run with the same behavior as a scene.
38
+ # @return [Void]
39
+ def run
40
+ super
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,42 @@
1
+ =begin
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2015 Benjamin Meyers as Lion Logic <lion.logic.org@gmail.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ =end
24
+
25
+ require_relative '../tbag'
26
+
27
+ require 'docile'
28
+
29
+ module T_BAG
30
+ # Defines a special Main Menu scene and its run behavior.
31
+ class Main_Menu < T_BAG::Scene
32
+ # Returns an instance of a special Main Menu scene.
33
+ def initialize
34
+ super(:menu, 'Main Menu')
35
+ end
36
+
37
+ # Run with the same behavior as a scene.
38
+ def run
39
+ super
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,79 @@
1
+ =begin
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2015 Benjamin Meyers as Lion Logic <lion.logic.org@gmail.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ =end
24
+
25
+ require_relative '../tbag'
26
+
27
+ require 'docile'
28
+
29
+ module T_BAG
30
+ # Defines a prompt and its run behavior.
31
+ class Prompt
32
+ # @param [String] question the prompt for the User
33
+ # @param [ANY] type the type of the expected User input
34
+ # @param [String] error the error to display if User input is invalid
35
+ def initialize(question, type, error)
36
+ @question = question
37
+ @type = type
38
+ @choices = {}
39
+ @error = error
40
+ end
41
+
42
+ # Capture the User's answer to a prompt
43
+ # @param [String] value the User input
44
+ # @param [Block] block
45
+ def choice(value, &block)
46
+ if value.is_a? String
47
+ value.downcase!
48
+ end
49
+ @choices[value] = Proc.new &block
50
+ end
51
+
52
+ # Define how to interpret prompt input.
53
+ def run
54
+ puts @question
55
+ done = false
56
+ until done
57
+ answer = gets.strip
58
+
59
+ if @type == Integer
60
+ unless answer.to_i == 0
61
+ answer = answer.to_i
62
+ end
63
+ elsif @type == String
64
+ answer.downcase!
65
+ end
66
+ if answer.is_a? @type and (@choices[answer] or @choices[:any])
67
+ if @choices[answer]
68
+ @choices[answer].call(answer)
69
+ else
70
+ @choices[:any].call(answer)
71
+ end
72
+ done = true
73
+ else
74
+ puts @error
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,114 @@
1
+ =begin
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2015 Benjamin Meyers as Lion Logic <lion.logic.org@gmail.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
23
+ =end
24
+
25
+ module T_BAG
26
+ # Defines a scene and its run behavior.
27
+ class Scene
28
+ # @param [String] name the name of the scene
29
+ # @param [String] title the title of the scene
30
+ def initialize(name, title)
31
+ @name = name
32
+ @title = title
33
+ @actions = []
34
+ end
35
+
36
+ # Add a pause to the action queue.
37
+ def pause
38
+ @actions << {type: :pause}
39
+ end
40
+
41
+ # Add a scene change to the action queue.
42
+ # @param [Symbol] scene a scene
43
+ def scene_change( scene )
44
+ @actions << {type: :scene_change, scene: scene}
45
+ end
46
+
47
+ # Add a set of text to the action queue.
48
+ # @param [String] dialog the text to be output to the User
49
+ def text(dialog)
50
+ @actions << {type: :text, dialog: dialog}
51
+ end
52
+
53
+ # Add a prompt to the action queue.
54
+ # @param [String] question the prompt for the User
55
+ # @param [ANY] type the type of the expected User input
56
+ # @param [String] error the error to display if User input is invalid
57
+ # @param [Block] block
58
+ def prompt(question, type, error, &block)
59
+ prompt = T_BAG::Prompt.new(question, type, error)
60
+ @actions << {type: :prompt, prompt: prompt}
61
+ Docile.dsl_eval(prompt, &block)
62
+ end
63
+
64
+ # Add a save to the action queue.
65
+ # @param [String] outfile the name of the file to save to
66
+ def save_game(outfile)
67
+ @actions << {type: :save, filename: outfile}
68
+ end
69
+
70
+ # Add a load to the action queue.
71
+ # @param [String] infile the name of the file to load from
72
+ def load_game(infile)
73
+ @actions << {type: :load, filename: infile}
74
+ end
75
+
76
+ # Create a scene change for the game over scene.
77
+ def game_over
78
+ scene_change :endgame
79
+ end
80
+
81
+ # Create a scene change for the main menu scene.
82
+ def main_menu
83
+ scene_change :menu
84
+ end
85
+
86
+ # Define how a scene runs.
87
+ def run
88
+ @actions.each do |a|
89
+ case a[:type]
90
+ when :pause
91
+ print 'Continue...'
92
+ gets
93
+ puts
94
+ when :scene_change
95
+ $game.next_scene a[:scene]
96
+ when :text
97
+ a[:dialog].bytes.each do |c|
98
+ putc c
99
+ sleep(0.05)
100
+ end
101
+ putc "\n"
102
+ when :prompt
103
+ a[:prompt].run
104
+ when :save
105
+ $game.save_game a[:filename]
106
+ when :load
107
+ $game.load_game a[:filename]
108
+ else
109
+ $stderr.puts '[SCENE] Action not allowed'
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: t-bag
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Benjamin S. Meyers
8
+ - Bryan T. Meyers
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-08-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: docile
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.1'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.1.5
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '1.1'
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.5
34
+ description: A framework for implementing domain-specific languages for text-based
35
+ adventure games.
36
+ email:
37
+ - lion.logic.org@gmail.com
38
+ - bmeyers@datadrake.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - examples/sample.rb
44
+ - lib/tbag.rb
45
+ - lib/tbag/game.rb
46
+ - lib/tbag/game_over.rb
47
+ - lib/tbag/main_menu.rb
48
+ - lib/tbag/prompt.rb
49
+ - lib/tbag/scene.rb
50
+ homepage: https://github.com/meyersbs/t-bag
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.2.2
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: Text-Based Adventure Game Framework
74
+ test_files: []
75
+ has_rdoc: