zyps 0.3.1 → 0.4.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/bin/zyps +22 -346
- data/bin/zyps_demo +116 -188
- data/doc/classes/AccelerateAction.html +182 -0
- data/doc/classes/{Vector.src/M000006.html → AccelerateAction.src/M000009.html} +5 -5
- data/doc/classes/AccelerateAction.src/M000010.html +18 -0
- data/doc/classes/Action.html +118 -0
- data/doc/classes/AgeCondition.html +181 -0
- data/doc/classes/AgeCondition.src/M000039.html +18 -0
- data/doc/classes/AgeCondition.src/M000040.html +18 -0
- data/doc/classes/ApproachAction.html +189 -0
- data/doc/classes/ApproachAction.src/M000048.html +19 -0
- data/doc/classes/ApproachAction.src/M000049.html +38 -0
- data/doc/classes/Behavior.html +23 -26
- data/doc/classes/Behavior.src/{M000003.html → M000001.html} +1 -1
- data/doc/classes/Behavior.src/{M000004.html → M000002.html} +2 -2
- data/doc/classes/BlendAction.html +181 -0
- data/doc/classes/BlendAction.src/M000043.html +18 -0
- data/doc/classes/BlendAction.src/M000044.html +18 -0
- data/doc/classes/Clock.html +10 -10
- data/doc/classes/Clock.src/{M000026.html → M000041.html} +0 -0
- data/doc/classes/Clock.src/{M000027.html → M000042.html} +0 -0
- data/doc/classes/CollisionCondition.html +148 -0
- data/doc/classes/CollisionCondition.src/M000053.html +18 -0
- data/doc/classes/Color.html +36 -36
- data/doc/classes/Color.src/{M000015.html → M000022.html} +0 -0
- data/doc/classes/Color.src/{M000016.html → M000023.html} +0 -0
- data/doc/classes/Color.src/{M000017.html → M000024.html} +0 -0
- data/doc/classes/Color.src/{M000018.html → M000025.html} +0 -0
- data/doc/classes/Color.src/{M000019.html → M000026.html} +0 -0
- data/doc/classes/Color.src/{M000020.html → M000027.html} +3 -3
- data/doc/classes/Condition.html +118 -0
- data/doc/classes/Creature.html +28 -13
- data/doc/classes/Creature.src/{M000005.html → M000011.html} +4 -4
- data/doc/classes/{Responsive.src/M000030.html → Creature.src/M000012.html} +2 -2
- data/doc/classes/DestroyAction.html +181 -0
- data/doc/classes/DestroyAction.src/M000030.html +18 -0
- data/doc/classes/DestroyAction.src/M000031.html +18 -0
- data/doc/classes/EatAction.html +149 -0
- data/doc/classes/EatAction.src/M000045.html +21 -0
- data/doc/classes/Enclosure.html +206 -0
- data/doc/classes/Enclosure.src/M000005.html +18 -0
- data/doc/classes/Enclosure.src/M000006.html +31 -0
- data/doc/classes/Environment.html +11 -11
- data/doc/classes/Environment.src/{M000028.html → M000046.html} +1 -1
- data/doc/classes/Environment.src/{M000029.html → M000047.html} +0 -0
- data/doc/classes/EnvironmentalFactor.html +2 -51
- data/doc/classes/{Responsive.html → FaceAction.html} +21 -16
- data/doc/classes/FaceAction.src/M000052.html +18 -0
- data/doc/classes/FleeAction.html +189 -0
- data/doc/classes/FleeAction.src/M000054.html +19 -0
- data/doc/classes/FleeAction.src/M000055.html +38 -0
- data/doc/classes/GameObject.html +47 -21
- data/doc/classes/GameObject.src/{M000022.html → M000032.html} +3 -4
- data/doc/classes/GameObject.src/M000033.html +16 -0
- data/doc/classes/GameObject.src/{M000023.html → M000034.html} +1 -1
- data/doc/classes/GameObject.src/{M000024.html → M000035.html} +1 -1
- data/doc/classes/GameObject.src/{M000025.html → M000036.html} +1 -1
- data/doc/classes/Location.html +5 -5
- data/doc/classes/Location.src/{M000014.html → M000021.html} +1 -1
- data/doc/classes/ProximityCondition.html +182 -0
- data/doc/classes/ProximityCondition.src/M000037.html +18 -0
- data/doc/classes/ProximityCondition.src/M000038.html +18 -0
- data/doc/classes/TagAction.html +181 -0
- data/doc/classes/{EnvironmentalFactor.src/M000021.html → TagAction.src/M000028.html} +4 -4
- data/doc/classes/TagAction.src/M000029.html +18 -0
- data/doc/classes/TagCondition.html +181 -0
- data/doc/classes/TagCondition.src/M000007.html +18 -0
- data/doc/classes/TagCondition.src/M000008.html +18 -0
- data/doc/classes/TrailsView.html +13 -21
- data/doc/classes/TrailsView.src/{M000001.html → M000003.html} +3 -3
- data/doc/classes/TrailsView.src/{M000002.html → M000004.html} +4 -2
- data/doc/classes/TurnAction.html +182 -0
- data/doc/classes/TurnAction.src/M000050.html +19 -0
- data/doc/classes/TurnAction.src/M000051.html +18 -0
- data/doc/classes/Utility.html +48 -48
- data/doc/classes/Utility.src/{M000031.html → M000056.html} +0 -0
- data/doc/classes/Utility.src/{M000032.html → M000057.html} +0 -0
- data/doc/classes/Utility.src/{M000033.html → M000058.html} +0 -0
- data/doc/classes/Utility.src/{M000034.html → M000059.html} +0 -0
- data/doc/classes/Utility.src/{M000035.html → M000060.html} +0 -0
- data/doc/classes/Utility.src/{M000036.html → M000061.html} +0 -0
- data/doc/classes/Utility.src/M000062.html +21 -0
- data/doc/classes/Vector.html +41 -41
- data/doc/classes/Vector.src/M000013.html +5 -11
- data/doc/classes/Vector.src/{M000007.html → M000014.html} +0 -0
- data/doc/classes/Vector.src/{M000008.html → M000015.html} +0 -0
- data/doc/classes/Vector.src/{M000009.html → M000016.html} +0 -0
- data/doc/classes/Vector.src/{M000010.html → M000017.html} +0 -0
- data/doc/classes/Vector.src/{M000011.html → M000018.html} +0 -0
- data/doc/classes/Vector.src/{M000012.html → M000019.html} +0 -0
- data/doc/classes/Vector.src/M000020.html +25 -0
- data/doc/created.rid +1 -1
- data/doc/files/COPYING_LESSER_txt.html +1 -1
- data/doc/files/COPYING_txt.html +1 -1
- data/doc/files/README_txt.html +1 -1
- data/doc/files/lib/zyps/actions_rb.html +134 -0
- data/doc/files/lib/zyps/conditions_rb.html +134 -0
- data/doc/files/lib/zyps/environmental_factors_rb.html +134 -0
- data/doc/files/lib/zyps/views/trails_rb.html +1 -1
- data/doc/files/lib/zyps_rb.html +1 -1
- data/doc/fr_class_index.html +16 -1
- data/doc/fr_file_index.html +3 -0
- data/doc/fr_method_index.html +62 -37
- data/doc/index.html +2 -2
- data/lib/zyps.rb +46 -47
- data/lib/zyps/actions.rb +186 -0
- data/lib/zyps/conditions.rb +69 -0
- data/lib/zyps/environmental_factors.rb +55 -0
- data/lib/zyps/views/trails.rb +6 -6
- data/test/test_zyps.rb +159 -69
- data/test/zyps/test_actions.rb +183 -0
- data/test/zyps/test_conditions.rb +83 -0
- data/test/zyps/test_environmental_factors.rb +88 -0
- metadata +137 -75
- data/doc/classes/Utility.src/M000037.html +0 -22
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Copyright 2007 Jay McGavren, jay@mcgavren.com.
|
|
2
|
+
#
|
|
3
|
+
# This file is part of Zyps.
|
|
4
|
+
#
|
|
5
|
+
# Zyps is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
require 'zyps'
|
|
20
|
+
require 'zyps/actions'
|
|
21
|
+
require 'test/unit'
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
#Redefine Clock to return a predictable time.
|
|
25
|
+
class Clock
|
|
26
|
+
def elapsed_time; 0.1; end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TestActions < Test::Unit::TestCase
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def setup
|
|
34
|
+
@actor = Creature.new('name', Location.new(0, 0))
|
|
35
|
+
@target = GameObject.new('name', Location.new(1, 1))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_face_action
|
|
40
|
+
FaceAction.new.do(@actor, @target)
|
|
41
|
+
assert_equal(45, @actor.vector.pitch)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def test_accelerate_action
|
|
46
|
+
#Accelerate 1 unit per second.
|
|
47
|
+
AccelerateAction.new(1).do(@actor, @target)
|
|
48
|
+
#Clock always returns 0.1 seconds, so actor should be moving 0.1 unit/second faster.
|
|
49
|
+
assert_equal(0.1, @actor.vector.speed)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_turn_action
|
|
54
|
+
#Turn 1 degree per second.
|
|
55
|
+
TurnAction.new(1).do(@actor, @target)
|
|
56
|
+
#Clock always returns 0.1 seconds, so actor should be turned 0.1 degrees.
|
|
57
|
+
assert_equal(0.1, @actor.vector.pitch)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def test_approach_action
|
|
62
|
+
|
|
63
|
+
#Create an ApproachAction with a 0-degree vector, turn rate of 40 degrees/sec.
|
|
64
|
+
@actor.vector = Vector.new(1, 0)
|
|
65
|
+
action = ApproachAction.new(Vector.new(1, 0), 40)
|
|
66
|
+
#Act.
|
|
67
|
+
action.do(@actor, @target)
|
|
68
|
+
#Ensure action's thrust vector is correct for 0.1 seconds.
|
|
69
|
+
assert_equal(1.0, action.heading.speed)
|
|
70
|
+
assert_equal(4.0, action.heading.pitch)
|
|
71
|
+
#Ensure actor's resulting vector is correct.
|
|
72
|
+
assert_in_delta(1.997, @actor.vector.x, 0.001)
|
|
73
|
+
assert_in_delta(0.069, @actor.vector.y, 0.001)
|
|
74
|
+
|
|
75
|
+
#Create an ApproachAction with a 0-degree vector, turn rate high enough to turn more than 45 degrees in 0.1 seconds.
|
|
76
|
+
#Action should only turn as far as target.
|
|
77
|
+
@actor.vector = Vector.new(1, 0)
|
|
78
|
+
action = ApproachAction.new(Vector.new(1, 0), 500)
|
|
79
|
+
#Act.
|
|
80
|
+
action.do(@actor, @target)
|
|
81
|
+
#Ensure actor is approaching target directly.
|
|
82
|
+
assert_equal(1.0, action.heading.speed)
|
|
83
|
+
assert_equal(45, action.heading.pitch)
|
|
84
|
+
#Ensure actor's resulting vector is correct.
|
|
85
|
+
assert_in_delta(1.707, @actor.vector.x, 0.001)
|
|
86
|
+
assert_in_delta(0.707, @actor.vector.y, 0.001)
|
|
87
|
+
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def test_flee_action
|
|
92
|
+
|
|
93
|
+
#Create a FleeAction with a 0-degree vector, turn rate of 40 degrees/sec.
|
|
94
|
+
@actor.vector = Vector.new(1, 0)
|
|
95
|
+
action = FleeAction.new(Vector.new(1, 0), 40)
|
|
96
|
+
#Act.
|
|
97
|
+
action.do(@actor, @target)
|
|
98
|
+
#Ensure action's thrust vector is correct for 0.1 seconds.
|
|
99
|
+
assert_equal(1.0, action.heading.speed)
|
|
100
|
+
assert_equal(356.0, action.heading.pitch) #Should be heading away.
|
|
101
|
+
#Ensure actor's resulting vector is correct.
|
|
102
|
+
assert_in_delta(1.997, @actor.vector.x, 0.001)
|
|
103
|
+
assert_in_delta(-0.069, @actor.vector.y, 0.001)
|
|
104
|
+
|
|
105
|
+
#Create a FleeAction with a 0-degree vector, turn rate high enough to turn more than 135 degrees in 0.1 seconds.
|
|
106
|
+
#Action should turn directly away from target, but no farther.
|
|
107
|
+
@actor.vector = Vector.new(1, 0)
|
|
108
|
+
action = FleeAction.new(Vector.new(1, 0), 1400)
|
|
109
|
+
#Act.
|
|
110
|
+
action.do(@actor, @target)
|
|
111
|
+
#Ensure actor is fleeing directly away from target.
|
|
112
|
+
assert_equal(1.0, action.heading.speed)
|
|
113
|
+
assert_equal(225, action.heading.pitch)
|
|
114
|
+
#Ensure actor's resulting vector is correct.
|
|
115
|
+
assert_in_delta(0.293, @actor.vector.x, 0.001)
|
|
116
|
+
assert_in_delta(-0.707, @actor.vector.y, 0.001)
|
|
117
|
+
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def test_destroy_action
|
|
122
|
+
#Create an environment, and add the objects.
|
|
123
|
+
environment = Environment.new
|
|
124
|
+
environment.objects << @actor << @target
|
|
125
|
+
#Create a DestroyAction, linked to the environment.
|
|
126
|
+
action = DestroyAction.new(environment)
|
|
127
|
+
#Act.
|
|
128
|
+
action.do(@actor, @target)
|
|
129
|
+
#Verify target is removed from environment.
|
|
130
|
+
assert(! environment.objects.include?(@target))
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def test_eat_action
|
|
135
|
+
#Create an environment, and add the objects.
|
|
136
|
+
environment = Environment.new
|
|
137
|
+
environment.objects << @actor << @target
|
|
138
|
+
#Create an EatAction, linked to the environment.
|
|
139
|
+
action = EatAction.new(environment)
|
|
140
|
+
#Act.
|
|
141
|
+
@actor.size = 1
|
|
142
|
+
@target.size = 1
|
|
143
|
+
action.do(@actor, @target)
|
|
144
|
+
#Verify target is removed from environment.
|
|
145
|
+
assert(! environment.objects.include?(@target))
|
|
146
|
+
#Verify creature has grown by the appropriate amount.
|
|
147
|
+
assert_equal(2, @actor.size)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def test_tag_action
|
|
152
|
+
#Create a TagAction, and act.
|
|
153
|
+
TagAction.new("tag").do(@actor, @target)
|
|
154
|
+
#Verify target has appropriate tag.
|
|
155
|
+
assert(@target.tags.include?("tag"))
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def test_blend_action
|
|
160
|
+
#Create a BlendAction that blends to black.
|
|
161
|
+
action = BlendAction.new(Color.new(0, 0, 0))
|
|
162
|
+
#Set the target's color.
|
|
163
|
+
@target.color = Color.new(0.5, 0.5, 0.5)
|
|
164
|
+
#Act.
|
|
165
|
+
action.do(@actor, @target)
|
|
166
|
+
#Verify the target's new color.
|
|
167
|
+
assert_equal(0.25, @target.color.red)
|
|
168
|
+
assert_equal(0.25, @target.color.green)
|
|
169
|
+
assert_equal(0.25, @target.color.blue)
|
|
170
|
+
#Create a BlendAction that blends to white.
|
|
171
|
+
action = BlendAction.new(Color.new(1, 1, 1))
|
|
172
|
+
#Set the target's color.
|
|
173
|
+
@target.color = Color.new(0.5, 0.5, 0.5)
|
|
174
|
+
#Act.
|
|
175
|
+
action.do(@actor, @target)
|
|
176
|
+
#Verify the target's new color.
|
|
177
|
+
assert_equal(0.75, @target.color.red)
|
|
178
|
+
assert_equal(0.75, @target.color.green)
|
|
179
|
+
assert_equal(0.75, @target.color.blue)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Copyright 2007 Jay McGavren, jay@mcgavren.com.
|
|
2
|
+
#
|
|
3
|
+
# This file is part of Zyps.
|
|
4
|
+
#
|
|
5
|
+
# Zyps is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
require 'zyps'
|
|
20
|
+
require 'zyps/conditions'
|
|
21
|
+
require 'test/unit'
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
#Redefine Clock to return a predictable time.
|
|
25
|
+
class Clock
|
|
26
|
+
def elapsed_time; 0.1; end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TestConditions < Test::Unit::TestCase
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def setup
|
|
34
|
+
@actor = Creature.new('name', Location.new(1, 1))
|
|
35
|
+
@target = GameObject.new('name', Location.new(2, 2))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_tag_condition
|
|
40
|
+
condition = TagCondition.new("tag")
|
|
41
|
+
#Test for falsehood.
|
|
42
|
+
assert(! condition.test(@actor, @target))
|
|
43
|
+
#Test for truth.
|
|
44
|
+
@target.tags << "tag"
|
|
45
|
+
assert(condition.test(@actor, @target))
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def test_age_condition
|
|
50
|
+
condition = AgeCondition.new(0.2)
|
|
51
|
+
#Test for falsehood.
|
|
52
|
+
@target.age = 0.1
|
|
53
|
+
assert(! condition.test(@actor, @target))
|
|
54
|
+
#Test for truth.
|
|
55
|
+
@target.age = 0.2
|
|
56
|
+
assert(condition.test(@actor, @target))
|
|
57
|
+
@target.age = 0.3
|
|
58
|
+
assert(condition.test(@actor, @target))
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def test_proximity_condition
|
|
63
|
+
condition = ProximityCondition.new(1)
|
|
64
|
+
#Test for falsehood.
|
|
65
|
+
assert(! condition.test(@actor, @target))
|
|
66
|
+
#Test for truth.
|
|
67
|
+
@target.location = Location.new(0.5, 0.5)
|
|
68
|
+
assert(condition.test(@actor, @target))
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def test_collision_condition
|
|
73
|
+
condition = CollisionCondition.new
|
|
74
|
+
#Test for falsehood.
|
|
75
|
+
@actor.size, @target.size = 0.196, 0.196 #Radius = 0.25
|
|
76
|
+
assert(! condition.test(@actor, @target))
|
|
77
|
+
#Test for truth.
|
|
78
|
+
@actor.size, @target.size = 1.766, 1.766 #Radius = 0.75
|
|
79
|
+
assert(condition.test(@actor, @target))
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Copyright 2007 Jay McGavren, jay@mcgavren.com.
|
|
2
|
+
#
|
|
3
|
+
# This file is part of Zyps.
|
|
4
|
+
#
|
|
5
|
+
# Zyps is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
require 'zyps'
|
|
20
|
+
require 'zyps/environmental_factors'
|
|
21
|
+
require 'test/unit'
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
#Redefine Clock to return a predictable time.
|
|
25
|
+
class Clock
|
|
26
|
+
def elapsed_time; 0.1; end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TestEnclosure < Test::Unit::TestCase
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def test_enclosure
|
|
34
|
+
|
|
35
|
+
creature = Creature.new
|
|
36
|
+
|
|
37
|
+
#Create an enclosure.
|
|
38
|
+
enclosure = Enclosure.new
|
|
39
|
+
enclosure.left = 1
|
|
40
|
+
enclosure.top = 3
|
|
41
|
+
enclosure.right = 3
|
|
42
|
+
enclosure.bottom = 1
|
|
43
|
+
|
|
44
|
+
#Place creature outside the walls, and act on it.
|
|
45
|
+
#Ensure it's moved inside and its heading reflects off the walls.
|
|
46
|
+
creature.location = Location.new(0, 2) #Too far left.
|
|
47
|
+
creature.vector.pitch = 170
|
|
48
|
+
enclosure.act(creature)
|
|
49
|
+
assert_equal(1, creature.location.x)
|
|
50
|
+
assert_equal(2, creature.location.y)
|
|
51
|
+
assert_equal(10, creature.vector.pitch)
|
|
52
|
+
|
|
53
|
+
creature.location = Location.new(4, 2) #Too far right.
|
|
54
|
+
creature.vector.pitch = 10
|
|
55
|
+
enclosure.act(creature)
|
|
56
|
+
assert_equal(3, creature.location.x)
|
|
57
|
+
assert_equal(2, creature.location.y)
|
|
58
|
+
assert_equal(170, creature.vector.pitch)
|
|
59
|
+
|
|
60
|
+
creature.location = Location.new(2, 0) #Too far down.
|
|
61
|
+
creature.vector.pitch = 280
|
|
62
|
+
enclosure.act(creature)
|
|
63
|
+
assert_equal(2, creature.location.x)
|
|
64
|
+
assert_equal(1, creature.location.y)
|
|
65
|
+
assert_equal(80, creature.vector.pitch)
|
|
66
|
+
|
|
67
|
+
creature.location = Location.new(2, 4) #Too far up.
|
|
68
|
+
creature.vector.pitch = 80
|
|
69
|
+
enclosure.act(creature)
|
|
70
|
+
assert_equal(2, creature.location.x)
|
|
71
|
+
assert_equal(3, creature.location.y)
|
|
72
|
+
assert_equal(280, creature.vector.pitch)
|
|
73
|
+
|
|
74
|
+
#Place creature inside the walls, and ensure it's unaffected.
|
|
75
|
+
creature.location = Location.new(2, 2) #Inside.
|
|
76
|
+
creature.vector.pitch = 45
|
|
77
|
+
enclosure.act(creature)
|
|
78
|
+
assert_equal(2, creature.location.x)
|
|
79
|
+
assert_equal(2, creature.location.y)
|
|
80
|
+
assert_equal(45, creature.vector.pitch)
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
metadata
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
|
-
rubygems_version: 0.9.
|
|
2
|
+
rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
|
4
4
|
name: zyps
|
|
5
5
|
version: !ruby/object:Gem::Version
|
|
6
|
-
version: 0.
|
|
7
|
-
date: 2007-08-
|
|
8
|
-
summary: A
|
|
6
|
+
version: 0.4.1
|
|
7
|
+
date: 2007-08-26 00:00:00 -07:00
|
|
8
|
+
summary: A game library for Ruby
|
|
9
9
|
require_paths:
|
|
10
10
|
- lib
|
|
11
11
|
email: jay@mcgavren.com
|
|
@@ -35,92 +35,154 @@ files:
|
|
|
35
35
|
- bin/zyps
|
|
36
36
|
- bin/zyps_demo
|
|
37
37
|
- lib/zyps
|
|
38
|
-
- lib/zyps.rb
|
|
38
|
+
- lib/zyps/actions.rb
|
|
39
|
+
- lib/zyps/conditions.rb
|
|
40
|
+
- lib/zyps/environmental_factors.rb
|
|
39
41
|
- lib/zyps/views
|
|
40
42
|
- lib/zyps/views/trails.rb
|
|
43
|
+
- lib/zyps.rb
|
|
41
44
|
- test/test_zyps.rb
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
+
- test/zyps
|
|
46
|
+
- test/zyps/test_actions.rb
|
|
47
|
+
- test/zyps/test_conditions.rb
|
|
48
|
+
- test/zyps/test_environmental_factors.rb
|
|
45
49
|
- doc/classes
|
|
46
|
-
- doc/
|
|
47
|
-
- doc/
|
|
48
|
-
- doc/
|
|
49
|
-
- doc/
|
|
50
|
-
- doc/
|
|
51
|
-
- doc/
|
|
52
|
-
- doc/
|
|
53
|
-
- doc/
|
|
54
|
-
- doc/
|
|
55
|
-
- doc/
|
|
56
|
-
- doc/
|
|
57
|
-
- doc/
|
|
58
|
-
- doc/classes/
|
|
50
|
+
- doc/classes/AccelerateAction.html
|
|
51
|
+
- doc/classes/AccelerateAction.src
|
|
52
|
+
- doc/classes/AccelerateAction.src/M000009.html
|
|
53
|
+
- doc/classes/AccelerateAction.src/M000010.html
|
|
54
|
+
- doc/classes/Action.html
|
|
55
|
+
- doc/classes/AgeCondition.html
|
|
56
|
+
- doc/classes/AgeCondition.src
|
|
57
|
+
- doc/classes/AgeCondition.src/M000039.html
|
|
58
|
+
- doc/classes/AgeCondition.src/M000040.html
|
|
59
|
+
- doc/classes/ApproachAction.html
|
|
60
|
+
- doc/classes/ApproachAction.src
|
|
61
|
+
- doc/classes/ApproachAction.src/M000048.html
|
|
62
|
+
- doc/classes/ApproachAction.src/M000049.html
|
|
63
|
+
- doc/classes/Behavior.html
|
|
59
64
|
- doc/classes/Behavior.src
|
|
60
|
-
- doc/classes/
|
|
61
|
-
- doc/classes/
|
|
62
|
-
- doc/classes/
|
|
63
|
-
- doc/classes/
|
|
64
|
-
- doc/classes/
|
|
65
|
-
- doc/classes/
|
|
65
|
+
- doc/classes/Behavior.src/M000001.html
|
|
66
|
+
- doc/classes/Behavior.src/M000002.html
|
|
67
|
+
- doc/classes/BlendAction.html
|
|
68
|
+
- doc/classes/BlendAction.src
|
|
69
|
+
- doc/classes/BlendAction.src/M000043.html
|
|
70
|
+
- doc/classes/BlendAction.src/M000044.html
|
|
71
|
+
- doc/classes/Clock.html
|
|
66
72
|
- doc/classes/Clock.src
|
|
67
|
-
- doc/classes/
|
|
68
|
-
- doc/classes/
|
|
69
|
-
- doc/classes/
|
|
70
|
-
- doc/classes/
|
|
71
|
-
- doc/classes/
|
|
72
|
-
- doc/classes/Creature.html
|
|
73
|
-
- doc/classes/Vector.html
|
|
74
|
-
- doc/classes/Location.html
|
|
73
|
+
- doc/classes/Clock.src/M000041.html
|
|
74
|
+
- doc/classes/Clock.src/M000042.html
|
|
75
|
+
- doc/classes/CollisionCondition.html
|
|
76
|
+
- doc/classes/CollisionCondition.src
|
|
77
|
+
- doc/classes/CollisionCondition.src/M000053.html
|
|
75
78
|
- doc/classes/Color.html
|
|
79
|
+
- doc/classes/Color.src
|
|
80
|
+
- doc/classes/Color.src/M000022.html
|
|
81
|
+
- doc/classes/Color.src/M000023.html
|
|
82
|
+
- doc/classes/Color.src/M000024.html
|
|
83
|
+
- doc/classes/Color.src/M000025.html
|
|
84
|
+
- doc/classes/Color.src/M000026.html
|
|
85
|
+
- doc/classes/Color.src/M000027.html
|
|
86
|
+
- doc/classes/Condition.html
|
|
87
|
+
- doc/classes/Creature.html
|
|
88
|
+
- doc/classes/Creature.src
|
|
89
|
+
- doc/classes/Creature.src/M000011.html
|
|
90
|
+
- doc/classes/Creature.src/M000012.html
|
|
91
|
+
- doc/classes/DestroyAction.html
|
|
92
|
+
- doc/classes/DestroyAction.src
|
|
93
|
+
- doc/classes/DestroyAction.src/M000030.html
|
|
94
|
+
- doc/classes/DestroyAction.src/M000031.html
|
|
95
|
+
- doc/classes/EatAction.html
|
|
96
|
+
- doc/classes/EatAction.src
|
|
97
|
+
- doc/classes/EatAction.src/M000045.html
|
|
98
|
+
- doc/classes/Enclosure.html
|
|
99
|
+
- doc/classes/Enclosure.src
|
|
100
|
+
- doc/classes/Enclosure.src/M000005.html
|
|
101
|
+
- doc/classes/Enclosure.src/M000006.html
|
|
102
|
+
- doc/classes/Environment.html
|
|
103
|
+
- doc/classes/Environment.src
|
|
104
|
+
- doc/classes/Environment.src/M000046.html
|
|
105
|
+
- doc/classes/Environment.src/M000047.html
|
|
76
106
|
- doc/classes/EnvironmentalFactor.html
|
|
107
|
+
- doc/classes/FaceAction.html
|
|
108
|
+
- doc/classes/FaceAction.src
|
|
109
|
+
- doc/classes/FaceAction.src/M000052.html
|
|
110
|
+
- doc/classes/FleeAction.html
|
|
111
|
+
- doc/classes/FleeAction.src
|
|
112
|
+
- doc/classes/FleeAction.src/M000054.html
|
|
113
|
+
- doc/classes/FleeAction.src/M000055.html
|
|
77
114
|
- doc/classes/GameObject.html
|
|
78
|
-
- doc/classes/
|
|
79
|
-
- doc/classes/
|
|
80
|
-
- doc/classes/
|
|
115
|
+
- doc/classes/GameObject.src
|
|
116
|
+
- doc/classes/GameObject.src/M000032.html
|
|
117
|
+
- doc/classes/GameObject.src/M000033.html
|
|
118
|
+
- doc/classes/GameObject.src/M000034.html
|
|
119
|
+
- doc/classes/GameObject.src/M000035.html
|
|
120
|
+
- doc/classes/GameObject.src/M000036.html
|
|
121
|
+
- doc/classes/Location.html
|
|
122
|
+
- doc/classes/Location.src
|
|
123
|
+
- doc/classes/Location.src/M000021.html
|
|
124
|
+
- doc/classes/ProximityCondition.html
|
|
125
|
+
- doc/classes/ProximityCondition.src
|
|
126
|
+
- doc/classes/ProximityCondition.src/M000037.html
|
|
127
|
+
- doc/classes/ProximityCondition.src/M000038.html
|
|
128
|
+
- doc/classes/TagAction.html
|
|
129
|
+
- doc/classes/TagAction.src
|
|
130
|
+
- doc/classes/TagAction.src/M000028.html
|
|
131
|
+
- doc/classes/TagAction.src/M000029.html
|
|
132
|
+
- doc/classes/TagCondition.html
|
|
133
|
+
- doc/classes/TagCondition.src
|
|
134
|
+
- doc/classes/TagCondition.src/M000007.html
|
|
135
|
+
- doc/classes/TagCondition.src/M000008.html
|
|
136
|
+
- doc/classes/TrailsView.html
|
|
137
|
+
- doc/classes/TrailsView.src
|
|
138
|
+
- doc/classes/TrailsView.src/M000003.html
|
|
139
|
+
- doc/classes/TrailsView.src/M000004.html
|
|
140
|
+
- doc/classes/TurnAction.html
|
|
141
|
+
- doc/classes/TurnAction.src
|
|
142
|
+
- doc/classes/TurnAction.src/M000050.html
|
|
143
|
+
- doc/classes/TurnAction.src/M000051.html
|
|
81
144
|
- doc/classes/Utility.html
|
|
82
|
-
- doc/classes/
|
|
83
|
-
- doc/classes/
|
|
84
|
-
- doc/classes/
|
|
85
|
-
- doc/classes/
|
|
86
|
-
- doc/classes/
|
|
87
|
-
- doc/classes/
|
|
88
|
-
- doc/classes/
|
|
89
|
-
- doc/classes/
|
|
90
|
-
- doc/classes/Vector.
|
|
91
|
-
- doc/classes/Vector.src
|
|
92
|
-
- doc/classes/Vector.src/M000011.html
|
|
93
|
-
- doc/classes/Vector.src/M000012.html
|
|
145
|
+
- doc/classes/Utility.src
|
|
146
|
+
- doc/classes/Utility.src/M000056.html
|
|
147
|
+
- doc/classes/Utility.src/M000057.html
|
|
148
|
+
- doc/classes/Utility.src/M000058.html
|
|
149
|
+
- doc/classes/Utility.src/M000059.html
|
|
150
|
+
- doc/classes/Utility.src/M000060.html
|
|
151
|
+
- doc/classes/Utility.src/M000061.html
|
|
152
|
+
- doc/classes/Utility.src/M000062.html
|
|
153
|
+
- doc/classes/Vector.html
|
|
154
|
+
- doc/classes/Vector.src
|
|
94
155
|
- doc/classes/Vector.src/M000013.html
|
|
95
|
-
- doc/classes/
|
|
96
|
-
- doc/classes/
|
|
97
|
-
- doc/classes/
|
|
98
|
-
- doc/classes/
|
|
99
|
-
- doc/classes/
|
|
100
|
-
- doc/classes/
|
|
101
|
-
- doc/classes/
|
|
102
|
-
- doc/
|
|
103
|
-
- doc/
|
|
104
|
-
- doc/
|
|
105
|
-
- doc/
|
|
106
|
-
- doc/
|
|
107
|
-
- doc/
|
|
108
|
-
- doc/
|
|
109
|
-
- doc/
|
|
110
|
-
- doc/
|
|
111
|
-
- doc/
|
|
112
|
-
- doc/
|
|
113
|
-
- doc/
|
|
114
|
-
- doc/
|
|
115
|
-
- doc/
|
|
116
|
-
- doc/
|
|
117
|
-
- doc/
|
|
118
|
-
- doc/
|
|
156
|
+
- doc/classes/Vector.src/M000014.html
|
|
157
|
+
- doc/classes/Vector.src/M000015.html
|
|
158
|
+
- doc/classes/Vector.src/M000016.html
|
|
159
|
+
- doc/classes/Vector.src/M000017.html
|
|
160
|
+
- doc/classes/Vector.src/M000018.html
|
|
161
|
+
- doc/classes/Vector.src/M000019.html
|
|
162
|
+
- doc/classes/Vector.src/M000020.html
|
|
163
|
+
- doc/created.rid
|
|
164
|
+
- doc/files
|
|
165
|
+
- doc/files/COPYING_LESSER_txt.html
|
|
166
|
+
- doc/files/COPYING_txt.html
|
|
167
|
+
- doc/files/lib
|
|
168
|
+
- doc/files/lib/zyps
|
|
169
|
+
- doc/files/lib/zyps/actions_rb.html
|
|
170
|
+
- doc/files/lib/zyps/conditions_rb.html
|
|
171
|
+
- doc/files/lib/zyps/environmental_factors_rb.html
|
|
172
|
+
- doc/files/lib/zyps/views
|
|
173
|
+
- doc/files/lib/zyps/views/trails_rb.html
|
|
174
|
+
- doc/files/lib/zyps_rb.html
|
|
175
|
+
- doc/files/README_txt.html
|
|
176
|
+
- doc/fr_class_index.html
|
|
177
|
+
- doc/fr_file_index.html
|
|
178
|
+
- doc/fr_method_index.html
|
|
179
|
+
- doc/index.html
|
|
180
|
+
- doc/rdoc-style.css
|
|
119
181
|
test_files:
|
|
120
182
|
- test/test_zyps.rb
|
|
121
183
|
rdoc_options:
|
|
122
184
|
- --title
|
|
123
|
-
- Zyps - A
|
|
185
|
+
- Zyps - A game library for Ruby
|
|
124
186
|
- --main
|
|
125
187
|
- README.txt
|
|
126
188
|
extra_rdoc_files:
|