pirate_game 0.0.1
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.
- data/.autotest +8 -0
- data/.gemtest +0 -0
- data/History.rdoc +5 -0
- data/Manifest.txt +37 -0
- data/README.md +88 -0
- data/Rakefile +24 -0
- data/bin/game_master +6 -0
- data/bin/pirate_game +5 -0
- data/config.json +4 -0
- data/imgs/jolly_roger.jpg +0 -0
- data/imgs/jolly_roger_sm.png +0 -0
- data/imgs/pirate_ship.png +0 -0
- data/imgs/pirate_ship_sm.png +0 -0
- data/lib/pirate_game.rb +21 -0
- data/lib/pirate_game/animation.rb +35 -0
- data/lib/pirate_game/background.rb +95 -0
- data/lib/pirate_game/boot.rb +68 -0
- data/lib/pirate_game/bridge.rb +21 -0
- data/lib/pirate_game/bridge_button.rb +38 -0
- data/lib/pirate_game/client.rb +163 -0
- data/lib/pirate_game/client_app.rb +342 -0
- data/lib/pirate_game/game_master.rb +208 -0
- data/lib/pirate_game/image.rb +23 -0
- data/lib/pirate_game/log_book.rb +39 -0
- data/lib/pirate_game/master_app.rb +103 -0
- data/lib/pirate_game/protocol.rb +10 -0
- data/lib/pirate_game/shoes4_patch.rb +30 -0
- data/lib/pirate_game/stage.rb +96 -0
- data/lib/pirate_game/timeout_renewer.rb +30 -0
- data/lib/pirate_game/wave.rb +46 -0
- data/lib/pirate_game/waving_item.rb +17 -0
- data/state_diagram.graffle +2689 -0
- data/test/test_pirate_game_bridge.rb +14 -0
- data/test/test_pirate_game_client.rb +148 -0
- data/test/test_pirate_game_game_master.rb +107 -0
- data/test/test_pirate_game_log_book.rb +34 -0
- data/test/test_pirate_game_stage.rb +116 -0
- data/test/test_pirate_game_timeout_renewer.rb +15 -0
- metadata +204 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'pirate_game'
|
3
|
+
|
4
|
+
class TestPirateGameBridge < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@bridge = PirateGame::Bridge.new(%w[Foo Bar], %w[Foo Bar Baz Buz])
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_initialize
|
11
|
+
assert_equal 2, @bridge.items.length
|
12
|
+
assert_equal 4, @bridge.stage_items.length
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'pirate_game'
|
3
|
+
|
4
|
+
class TestPirateGameClient < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@ts = Rinda::TupleSpace.new
|
8
|
+
|
9
|
+
@client = PirateGame::Client.new(name: 'foo')
|
10
|
+
|
11
|
+
@client.instance_variable_set :@mothership, @ts
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_initialize
|
15
|
+
assert_empty @client.log_book
|
16
|
+
assert_nil @client.bridge
|
17
|
+
assert_equal :select_game, @client.state
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_set_state
|
21
|
+
@client.set_state :pub
|
22
|
+
|
23
|
+
assert_equal :pub, @client.state
|
24
|
+
|
25
|
+
assert_raises RuntimeError do
|
26
|
+
@client.set_state :foobar
|
27
|
+
end
|
28
|
+
|
29
|
+
assert_equal :pub, @client.state
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_action_time_left
|
33
|
+
assert_equal 0, @client.action_time_left
|
34
|
+
|
35
|
+
@client.issue_command 'Test'
|
36
|
+
|
37
|
+
assert_in_epsilon 8, @client.action_time_left, 0.1
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_clicked
|
41
|
+
make_services
|
42
|
+
|
43
|
+
@client.clicked 'Test'
|
44
|
+
|
45
|
+
tuple = @ts.read [:button, nil, nil, nil]
|
46
|
+
|
47
|
+
assert_equal :button, tuple.shift
|
48
|
+
assert_equal 'Test', tuple.shift
|
49
|
+
assert_includes (Time.now.to_i - 1..Time.now.to_i), tuple.shift
|
50
|
+
assert_equal DRb.uri, tuple.shift
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_issue_command
|
54
|
+
@client.issue_command 'Test'
|
55
|
+
|
56
|
+
assert @client.waiting?
|
57
|
+
assert_match /Test/, @client.current_action
|
58
|
+
|
59
|
+
@client.clicked 'Test'
|
60
|
+
|
61
|
+
Thread.pass while @client.command_start
|
62
|
+
|
63
|
+
refute @client.waiting?
|
64
|
+
assert_nil @client.current_action
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_start_stage
|
68
|
+
assert_nil @client.bridge
|
69
|
+
|
70
|
+
@client.start_stage(%w[foo bar], %w[foo bar baz buz])
|
71
|
+
|
72
|
+
assert @client.bridge
|
73
|
+
|
74
|
+
assert_includes @client.bridge.items, 'foo'
|
75
|
+
assert_includes @client.bridge.items, 'bar'
|
76
|
+
assert_equal 4, @client.bridge.stage_items.length
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_renewer
|
80
|
+
renewer = @client.renewer
|
81
|
+
|
82
|
+
assert_equal 8, renewer.renew
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_return_to_pub
|
86
|
+
@client.start_stage(%w[foo bar], %w[foo bar baz buz])
|
87
|
+
|
88
|
+
assert @client.bridge
|
89
|
+
|
90
|
+
@client.return_to_pub
|
91
|
+
|
92
|
+
assert_nil @client.bridge
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_teammates
|
96
|
+
make_services
|
97
|
+
|
98
|
+
assert_includes @client.teammates, 'Davy'
|
99
|
+
assert_includes @client.teammates, 'Eric'
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_broadcast
|
103
|
+
make_services
|
104
|
+
|
105
|
+
@client.broadcast 'Hello'
|
106
|
+
|
107
|
+
refute_empty @client.log_book
|
108
|
+
|
109
|
+
assert_equal 2, @client.log_book.length
|
110
|
+
assert_includes @client.log_book.collect{|msg, name| msg}, 'Hello'
|
111
|
+
assert_includes @client.log_book.collect{|msg, name| name}, @client.name
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_wait_for_action
|
115
|
+
@client.clicked 'Test'
|
116
|
+
|
117
|
+
@client.wait_for_action 'Test'
|
118
|
+
|
119
|
+
action = @ts.read [:action, nil, nil, nil]
|
120
|
+
|
121
|
+
action.shift
|
122
|
+
|
123
|
+
assert_equal 'Test', action.shift
|
124
|
+
assert_kind_of Time, action.shift
|
125
|
+
assert_equal DRb.uri, action.shift
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_wait_for_action_expired
|
129
|
+
@client.completion_time = 0
|
130
|
+
@client.wait_for_action 'Test'
|
131
|
+
|
132
|
+
assert true, 'did not hang up'
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_waiting_eh
|
136
|
+
refute @client.waiting?
|
137
|
+
|
138
|
+
@client.issue_command 'Test'
|
139
|
+
|
140
|
+
assert @client.waiting?
|
141
|
+
end
|
142
|
+
|
143
|
+
def make_services
|
144
|
+
def @client.registered_services
|
145
|
+
[['Davy', DRb.uri], ['Eric', DRb.uri]]
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'pirate_game'
|
3
|
+
|
4
|
+
class TestPirateGameGameMaster < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@client = PirateGame::Client.new name: 'user'
|
8
|
+
|
9
|
+
@game_master = PirateGame::GameMaster.new(name: 'Foo')
|
10
|
+
|
11
|
+
DRb.stop_service if DRb.primary_server
|
12
|
+
DRb.start_service nil, @client
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_initialize
|
16
|
+
assert_nil @game_master.stage
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_increment_stage
|
20
|
+
assert_nil @game_master.stage
|
21
|
+
assert_empty @game_master.stage_ary
|
22
|
+
|
23
|
+
@game_master.increment_stage
|
24
|
+
|
25
|
+
refute_nil @game_master.stage
|
26
|
+
assert_equal 1, @game_master.stage.level
|
27
|
+
assert_equal 1, @game_master.stage_ary.length
|
28
|
+
|
29
|
+
@game_master.increment_stage
|
30
|
+
|
31
|
+
refute_nil @game_master.stage
|
32
|
+
assert_equal 2, @game_master.stage.level
|
33
|
+
assert_equal 2, @game_master.stage_ary.length
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_startable_eh
|
37
|
+
|
38
|
+
# should not be startable when no players exist
|
39
|
+
assert_equal 0, @game_master.num_players
|
40
|
+
refute @game_master.startable?
|
41
|
+
refute @game_master.start
|
42
|
+
assert_nil @game_master.stage
|
43
|
+
|
44
|
+
# should be startable after making services
|
45
|
+
make_services
|
46
|
+
|
47
|
+
assert @game_master.startable?
|
48
|
+
assert @game_master.start
|
49
|
+
|
50
|
+
# should not be startable when stage is failed
|
51
|
+
@game_master.stage.begin_time = Time.at 0
|
52
|
+
|
53
|
+
assert @game_master.stage.failure?
|
54
|
+
refute @game_master.startable?
|
55
|
+
refute @game_master.start
|
56
|
+
|
57
|
+
# should be startable when stage is success
|
58
|
+
10.times do
|
59
|
+
@game_master.stage.complete 'test', 'test'
|
60
|
+
end
|
61
|
+
|
62
|
+
assert @game_master.stage.success?
|
63
|
+
assert @game_master.startable?
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_start
|
67
|
+
make_services
|
68
|
+
assert @game_master.start
|
69
|
+
|
70
|
+
assert @game_master.stage
|
71
|
+
assert_equal 1, @game_master.stage.level
|
72
|
+
assert_equal 1, @game_master.stage_ary.length
|
73
|
+
|
74
|
+
10.times do
|
75
|
+
@game_master.stage.complete 'test', 'test'
|
76
|
+
end
|
77
|
+
@game_master.stage.begin_time = Time.at 0
|
78
|
+
|
79
|
+
assert @game_master.start
|
80
|
+
assert_equal 2, @game_master.stage.level
|
81
|
+
assert_equal 2, @game_master.stage_ary.length
|
82
|
+
|
83
|
+
assert_equal [1,2], @game_master.stage_ary.collect{|s| s.level}
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_update
|
87
|
+
assert_equal 0, @game_master.num_players
|
88
|
+
assert_empty @game_master.player_names
|
89
|
+
|
90
|
+
make_services
|
91
|
+
|
92
|
+
assert_equal 0, @game_master.num_players
|
93
|
+
assert_empty @game_master.player_names
|
94
|
+
|
95
|
+
assert @game_master.update
|
96
|
+
|
97
|
+
assert_equal 2, @game_master.num_players
|
98
|
+
assert_equal %w[Davy Eric], @game_master.player_names.sort
|
99
|
+
end
|
100
|
+
|
101
|
+
def make_services
|
102
|
+
def @game_master.read_registered_services
|
103
|
+
[['Davy', DRb.uri], ['Eric', DRb.uri]]
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'pirate_game'
|
3
|
+
|
4
|
+
class TestPirateGameLogBook < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@log_book = PirateGame::LogBook.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_initialize
|
11
|
+
assert_empty @log_book
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_add
|
15
|
+
@log_book.add 'Day One', 'Davy'
|
16
|
+
|
17
|
+
assert_equal 1, @log_book.length
|
18
|
+
assert_equal ['Day One', 'Davy'], @log_book.first
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_maintain_size
|
22
|
+
10.times do |i|
|
23
|
+
@log_book.add "Day #{i+1}", 'Davy'
|
24
|
+
end
|
25
|
+
|
26
|
+
assert_equal 10, @log_book.length
|
27
|
+
|
28
|
+
@log_book.add "Another Day", 'Eric'
|
29
|
+
|
30
|
+
assert_equal 10, @log_book.length
|
31
|
+
assert_equal ['Day 2', 'Davy'], @log_book.first
|
32
|
+
assert @log_book.detect{|msg,auth| auth == 'Eric'}
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'pirate_game'
|
3
|
+
|
4
|
+
class TestPirateGameStage < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@stage = PirateGame::Stage.new 1, 3
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_increment
|
11
|
+
@inc = @stage.increment
|
12
|
+
|
13
|
+
assert_equal 2, @inc.level
|
14
|
+
assert_equal @stage.players, @inc.players
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_time_left
|
18
|
+
assert_operator 30, :>=, @stage.time_left
|
19
|
+
assert_operator 28, :<, @stage.time_left
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_status_in_progress
|
23
|
+
assert_equal 'In Progress', @stage.status
|
24
|
+
assert @stage.in_progress?
|
25
|
+
refute @stage.failure?
|
26
|
+
refute @stage.success?
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_status_success
|
30
|
+
10.times { @stage.complete 'foo', 'bar' }
|
31
|
+
|
32
|
+
complete_stage
|
33
|
+
|
34
|
+
assert_equal 'Success', @stage.status
|
35
|
+
assert @stage.success?
|
36
|
+
refute @stage.in_progress?
|
37
|
+
refute @stage.failure?
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_status_failed
|
41
|
+
complete_stage
|
42
|
+
|
43
|
+
assert_equal 'Failure', @stage.status
|
44
|
+
assert @stage.failure?
|
45
|
+
refute @stage.success?
|
46
|
+
refute @stage.in_progress?
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_generate_all_items
|
50
|
+
assert_equal 18, @stage.all_items.uniq.length
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_bridge_for_player
|
54
|
+
bridge = @stage.bridge_for_player
|
55
|
+
|
56
|
+
assert_equal 6, bridge.length
|
57
|
+
|
58
|
+
@stage.bridge_for_player
|
59
|
+
@stage.bridge_for_player
|
60
|
+
|
61
|
+
assert_nil @stage.bridge_for_player
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_actions_completed
|
65
|
+
assert_equal 0, @stage.actions_completed
|
66
|
+
|
67
|
+
@stage.complete 'Foo', 'from bob'
|
68
|
+
|
69
|
+
assert_equal 1, @stage.actions_completed
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_required_actions
|
73
|
+
assert_equal 10, @stage.required_actions
|
74
|
+
|
75
|
+
@stage = PirateGame::Stage.new(5, 4)
|
76
|
+
|
77
|
+
assert_equal 29, @stage.required_actions
|
78
|
+
|
79
|
+
@stage = PirateGame::Stage.new(10, 2)
|
80
|
+
|
81
|
+
assert_equal 25, @stage.required_actions
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_stage_passed_eh
|
85
|
+
refute @stage.passed?
|
86
|
+
|
87
|
+
9.times do
|
88
|
+
@stage.complete 'foo', 'bar'
|
89
|
+
end
|
90
|
+
|
91
|
+
refute @stage.passed?
|
92
|
+
|
93
|
+
@stage.complete 'for', 'the win'
|
94
|
+
|
95
|
+
assert @stage.passed?
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_rundown
|
99
|
+
10.times { @stage.complete 'foo', 'bar' }
|
100
|
+
|
101
|
+
assert_nil @stage.rundown
|
102
|
+
|
103
|
+
complete_stage
|
104
|
+
|
105
|
+
rundown = {:stage => 1, :total_actions => 10, :player_breakdown => {'bar' => 10}}
|
106
|
+
|
107
|
+
assert_equal rundown, @stage.rundown
|
108
|
+
end
|
109
|
+
|
110
|
+
def complete_stage
|
111
|
+
def @stage.begin_time
|
112
|
+
Time.now - 360
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'pirate_game'
|
3
|
+
|
4
|
+
class TestPirateGameTimeoutRenewer < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def test_renew
|
7
|
+
r = PirateGame::TimeoutRenewer.new 5
|
8
|
+
|
9
|
+
assert_equal 5, r.renew
|
10
|
+
|
11
|
+
assert_equal true, r.renew
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
metadata
ADDED
@@ -0,0 +1,204 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pirate_game
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Davy Stevenson
|
9
|
+
- Eric Hodel
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2013-11-09 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: json
|
17
|
+
version_requirements: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.8.0
|
22
|
+
none: false
|
23
|
+
requirement: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 1.8.0
|
28
|
+
none: false
|
29
|
+
prerelease: false
|
30
|
+
type: :runtime
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: pirate_command
|
33
|
+
version_requirements: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0.0'
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.2
|
41
|
+
none: false
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.0'
|
47
|
+
- - '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.0.2
|
50
|
+
none: false
|
51
|
+
prerelease: false
|
52
|
+
type: :runtime
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: shuttlecraft
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0.0'
|
60
|
+
none: false
|
61
|
+
requirement: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0.0'
|
66
|
+
none: false
|
67
|
+
prerelease: false
|
68
|
+
type: :runtime
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '4.7'
|
76
|
+
none: false
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ~>
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '4.7'
|
82
|
+
none: false
|
83
|
+
prerelease: false
|
84
|
+
type: :development
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: rdoc
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ~>
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '4.0'
|
92
|
+
none: false
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '4.0'
|
98
|
+
none: false
|
99
|
+
prerelease: false
|
100
|
+
type: :development
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: hoe
|
103
|
+
version_requirements: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ~>
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '3.7'
|
108
|
+
none: false
|
109
|
+
requirement: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ~>
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '3.7'
|
114
|
+
none: false
|
115
|
+
prerelease: false
|
116
|
+
type: :development
|
117
|
+
description: |-
|
118
|
+
You insouciant scalawags will share the experience of a lifetime as you play a game built atop DRb and Shoes based generally upon the phenomenon known as Spaceteam! Except with Pirates!!
|
119
|
+
|
120
|
+
Team up with your fellow pirates to plunder the high seas! Yarrrr….☠
|
121
|
+
email:
|
122
|
+
- davy.stevenson@gmail.com
|
123
|
+
- drbrain@segment7.net
|
124
|
+
executables:
|
125
|
+
- game_master
|
126
|
+
- pirate_game
|
127
|
+
extensions: []
|
128
|
+
extra_rdoc_files:
|
129
|
+
- History.rdoc
|
130
|
+
- Manifest.txt
|
131
|
+
- README.md
|
132
|
+
files:
|
133
|
+
- .autotest
|
134
|
+
- History.rdoc
|
135
|
+
- Manifest.txt
|
136
|
+
- README.md
|
137
|
+
- Rakefile
|
138
|
+
- bin/game_master
|
139
|
+
- bin/pirate_game
|
140
|
+
- config.json
|
141
|
+
- imgs/jolly_roger.jpg
|
142
|
+
- imgs/jolly_roger_sm.png
|
143
|
+
- imgs/pirate_ship.png
|
144
|
+
- imgs/pirate_ship_sm.png
|
145
|
+
- lib/pirate_game.rb
|
146
|
+
- lib/pirate_game/animation.rb
|
147
|
+
- lib/pirate_game/background.rb
|
148
|
+
- lib/pirate_game/boot.rb
|
149
|
+
- lib/pirate_game/bridge.rb
|
150
|
+
- lib/pirate_game/bridge_button.rb
|
151
|
+
- lib/pirate_game/client.rb
|
152
|
+
- lib/pirate_game/client_app.rb
|
153
|
+
- lib/pirate_game/game_master.rb
|
154
|
+
- lib/pirate_game/image.rb
|
155
|
+
- lib/pirate_game/log_book.rb
|
156
|
+
- lib/pirate_game/master_app.rb
|
157
|
+
- lib/pirate_game/protocol.rb
|
158
|
+
- lib/pirate_game/shoes4_patch.rb
|
159
|
+
- lib/pirate_game/stage.rb
|
160
|
+
- lib/pirate_game/timeout_renewer.rb
|
161
|
+
- lib/pirate_game/wave.rb
|
162
|
+
- lib/pirate_game/waving_item.rb
|
163
|
+
- state_diagram.graffle
|
164
|
+
- test/test_pirate_game_bridge.rb
|
165
|
+
- test/test_pirate_game_client.rb
|
166
|
+
- test/test_pirate_game_game_master.rb
|
167
|
+
- test/test_pirate_game_log_book.rb
|
168
|
+
- test/test_pirate_game_stage.rb
|
169
|
+
- test/test_pirate_game_timeout_renewer.rb
|
170
|
+
- .gemtest
|
171
|
+
homepage: https://github.com/davy/pirate_game
|
172
|
+
licenses:
|
173
|
+
- MIT
|
174
|
+
post_install_message:
|
175
|
+
rdoc_options:
|
176
|
+
- --main
|
177
|
+
- README.md
|
178
|
+
require_paths:
|
179
|
+
- lib
|
180
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
181
|
+
requirements:
|
182
|
+
- - '>='
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: '0'
|
185
|
+
none: false
|
186
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
|
+
requirements:
|
188
|
+
- - '>='
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '0'
|
191
|
+
none: false
|
192
|
+
requirements: []
|
193
|
+
rubyforge_project: pirate_game
|
194
|
+
rubygems_version: 1.8.24
|
195
|
+
signing_key:
|
196
|
+
specification_version: 3
|
197
|
+
summary: You insouciant scalawags will share the experience of a lifetime as you play a game built atop DRb and Shoes based generally upon the phenomenon known as Spaceteam! Except with Pirates!! Team up with your fellow pirates to plunder the high seas! Yarrrr….☠
|
198
|
+
test_files:
|
199
|
+
- test/test_pirate_game_bridge.rb
|
200
|
+
- test/test_pirate_game_client.rb
|
201
|
+
- test/test_pirate_game_game_master.rb
|
202
|
+
- test/test_pirate_game_log_book.rb
|
203
|
+
- test/test_pirate_game_stage.rb
|
204
|
+
- test/test_pirate_game_timeout_renewer.rb
|