gamefic-sdk 1.6.0 → 1.7.0
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 +4 -4
- data/html/core/engine.js +89 -20
- data/html/sinatra/engine.js +27 -13
- data/html/skins/hypertext/index.html +0 -2
- data/html/skins/standard/play.js +0 -66
- data/lib/gamefic-sdk.rb +2 -1
- data/lib/gamefic-sdk/build.rb +11 -19
- data/lib/gamefic-sdk/config.rb +126 -0
- data/lib/gamefic-sdk/platform.rb +12 -0
- data/lib/gamefic-sdk/platform/base.rb +35 -33
- data/lib/gamefic-sdk/platform/gfic.rb +5 -18
- data/lib/gamefic-sdk/platform/sinatra.rb +29 -31
- data/lib/gamefic-sdk/platform/web.rb +72 -65
- data/lib/gamefic-sdk/platform/web/app_config.rb +48 -48
- data/lib/gamefic-sdk/platform/web/engine.rb +10 -7
- data/lib/gamefic-sdk/platform/web/user.rb +3 -3
- data/lib/gamefic-sdk/server.rb +17 -19
- data/lib/gamefic-sdk/shell.rb +68 -16
- data/lib/gamefic-sdk/shell/init.rb +3 -19
- data/lib/gamefic-sdk/shell/test.rb +9 -14
- data/lib/gamefic-sdk/version.rb +1 -1
- data/scripts/save-restore-undo.plot.rb +25 -0
- data/scripts/snapshots.plot.rb +16 -14
- data/scripts/standard.plot.rb +3 -5
- data/scripts/standard/actions.plot.rb +1 -11
- data/scripts/standard/actions/drop.plot.rb +1 -1
- data/scripts/standard/actions/enter.plot.rb +4 -16
- data/scripts/standard/actions/go.plot.rb +2 -36
- data/scripts/standard/actions/insert.plot.rb +7 -21
- data/scripts/standard/actions/inventory.plot.rb +2 -1
- data/scripts/standard/actions/leave.plot.rb +7 -18
- data/scripts/standard/actions/look.plot.rb +45 -44
- data/scripts/standard/actions/nil.plot.rb +1 -1
- data/scripts/standard/actions/take.plot.rb +10 -28
- data/scripts/standard/actions/talk.plot.rb +9 -13
- data/scripts/standard/clothing.plot.rb +4 -0
- data/scripts/standard/clothing/actions.plot.rb +4 -0
- data/scripts/{clothing → standard/clothing}/actions/doff.plot.rb +0 -0
- data/scripts/{clothing → standard/clothing}/actions/drop.plot.rb +8 -8
- data/scripts/{clothing → standard/clothing}/actions/inventory.plot.rb +14 -14
- data/scripts/standard/clothing/actions/wear.plot.rb +20 -0
- data/scripts/standard/clothing/entities.plot.rb +7 -0
- data/scripts/{clothing → standard/clothing}/entities/clothing.plot.rb +0 -2
- data/scripts/standard/clothing/entities/coat.plot.rb +3 -0
- data/scripts/standard/clothing/entities/gloves.plot.rb +3 -0
- data/scripts/standard/clothing/entities/hat.plot.rb +3 -0
- data/scripts/standard/clothing/entities/pants.plot.rb +3 -0
- data/scripts/standard/clothing/entities/shirt.plot.rb +3 -0
- data/scripts/standard/clothing/entities/shoes.plot.rb +3 -0
- data/scripts/standard/container.plot.rb +28 -0
- data/scripts/{debug.plot.rb → standard/container/actions.plot.rb} +0 -0
- data/scripts/standard/container/entities.plot.rb +5 -0
- data/scripts/standard/direction.plot.rb +1 -2
- data/scripts/{edible.plot.rb → standard/edible.plot.rb} +5 -3
- data/scripts/standard/entities.plot.rb +3 -3
- data/scripts/standard/entities/character.plot.rb +9 -6
- data/scripts/standard/entities/fixture.plot.rb +1 -1
- data/scripts/standard/entities/item.plot.rb +2 -4
- data/scripts/standard/entities/portal.plot.rb +9 -5
- data/scripts/standard/entities/receptacle.plot.rb +1 -1
- data/scripts/standard/entities/room.plot.rb +5 -5
- data/scripts/standard/entities/scenery.plot.rb +2 -4
- data/scripts/standard/entities/supporter.plot.rb +4 -7
- data/scripts/standard/entities/thing.plot.rb +7 -0
- data/scripts/standard/{actions/give.plot.rb → give.plot.rb} +27 -25
- data/scripts/standard/lockable.plot.rb +79 -0
- data/scripts/standard/modules.plot.rb +2 -4
- data/scripts/standard/modules/attachable.plot.rb +1 -0
- data/scripts/standard/modules/locale_description.plot.rb +20 -0
- data/scripts/standard/{use.plot.rb → modules/use.plot.rb} +51 -47
- data/scripts/standard/openable.plot.rb +43 -0
- data/scripts/standard/pathfinder.plot.rb +11 -6
- data/scripts/standard/test.plot.rb +2 -0
- data/scripts/undo.plot.rb +13 -11
- metadata +30 -65
- data/lib/gamefic-sdk/plot_config.rb +0 -25
- data/scripts/ansi.plot.rb +0 -13
- data/scripts/autosuggest.plot.rb +0 -165
- data/scripts/clothing.plot.rb +0 -2
- data/scripts/clothing/actions.plot.rb +0 -4
- data/scripts/clothing/actions/wear.plot.rb +0 -19
- data/scripts/clothing/entities.plot.rb +0 -7
- data/scripts/clothing/entities/coat.plot.rb +0 -5
- data/scripts/clothing/entities/gloves.plot.rb +0 -5
- data/scripts/clothing/entities/hat.plot.rb +0 -5
- data/scripts/clothing/entities/pants.plot.rb +0 -5
- data/scripts/clothing/entities/shirt.plot.rb +0 -5
- data/scripts/clothing/entities/shoes.plot.rb +0 -5
- data/scripts/cover.plot.rb +0 -30
- data/scripts/furniture.plot.rb +0 -35
- data/scripts/hints.plot.rb +0 -31
- data/scripts/hypertext.plot.rb +0 -280
- data/scripts/media.plot.rb +0 -17
- data/scripts/multimedia.plot.rb +0 -41
- data/scripts/questions.plot.rb +0 -17
- data/scripts/room-modes.plot.rb +0 -48
- data/scripts/rough-sizes.plot.rb +0 -36
- data/scripts/save-restore.plot.rb +0 -22
- data/scripts/standard/actions/close.plot.rb +0 -16
- data/scripts/standard/actions/lock.plot.rb +0 -59
- data/scripts/standard/actions/look-under.plot.rb +0 -8
- data/scripts/standard/actions/open.plot.rb +0 -34
- data/scripts/standard/actions/read.plot.rb +0 -3
- data/scripts/standard/actions/search.plot.rb +0 -40
- data/scripts/standard/actions/show.plot.rb +0 -13
- data/scripts/standard/actions/unlock.plot.rb +0 -77
- data/scripts/standard/actions/use.plot.rb +0 -25
- data/scripts/standard/entities/container.plot.rb +0 -8
- data/scripts/standard/entities/door.plot.rb +0 -51
- data/scripts/standard/entities/entity.plot.rb +0 -12
- data/scripts/standard/entities/exterior.plot.rb +0 -5
- data/scripts/standard/modules/darkenable.plot.rb +0 -6
- data/scripts/standard/modules/lockable.plot.rb +0 -25
- data/scripts/standard/modules/openable.plot.rb +0 -15
- data/scripts/standard/modules/transparent.plot.rb +0 -6
- data/scripts/standard/plural.plot.rb +0 -2
- data/scripts/standard/plural/actions.plot.rb +0 -4
- data/scripts/standard/plural/actions/drop.plot.rb +0 -126
- data/scripts/standard/plural/actions/insert.plot.rb +0 -60
- data/scripts/standard/plural/actions/place.plot.rb +0 -37
- data/scripts/standard/plural/actions/take.plot.rb +0 -175
- data/scripts/standard/plural/queries.plot.rb +0 -5
- data/scripts/standard/plural/queries/ambiguous_visible.plot.rb +0 -13
- data/scripts/standard/plural/queries/any_expression.plot.rb +0 -17
- data/scripts/standard/plural/queries/many_visible.plot.rb +0 -13
- data/scripts/standard/plural/queries/not_expression.plot.rb +0 -16
- data/scripts/standard/plural/queries/plural_visible.plot.rb +0 -22
- data/scripts/suggestible.plot.rb +0 -54
data/scripts/snapshots.plot.rb
CHANGED
@@ -1,14 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
end
|
1
|
+
# @gamefic.script snapshots
|
2
|
+
|
3
|
+
module Snapshots
|
4
|
+
def self.history
|
5
|
+
@history ||= []
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
last_snapshot = nil
|
10
|
+
|
11
|
+
on_player_ready do |actor|
|
12
|
+
if (actor.last_action.nil? or !actor.last_action.meta?) and !last_snapshot.nil?
|
13
|
+
Snapshots.history.push last_snapshot
|
14
|
+
end
|
15
|
+
last_snapshot = save
|
16
|
+
end
|
data/scripts/standard.plot.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
# @gamefic.script standard
|
2
|
-
#
|
3
|
-
#
|
4
|
-
#
|
2
|
+
# A general-purpose library that provides common actions and entities for
|
3
|
+
# interactive fiction. Designed to be suitable for parser-based text
|
4
|
+
# adventures, but easily extensible for other formats.
|
5
5
|
|
6
6
|
script 'standard/queries'
|
7
|
-
script 'standard/use'
|
8
7
|
script 'standard/modules'
|
9
8
|
script 'standard/direction'
|
10
9
|
script 'standard/entities'
|
11
10
|
script 'standard/actions'
|
12
|
-
script 'standard/pathfinder'
|
@@ -1,23 +1,13 @@
|
|
1
|
-
script 'standard/actions/
|
1
|
+
script 'standard/actions/nil'
|
2
2
|
script 'standard/actions/drop'
|
3
3
|
script 'standard/actions/enter'
|
4
|
-
script 'standard/actions/give'
|
5
4
|
script 'standard/actions/go'
|
6
5
|
script 'standard/actions/insert'
|
7
6
|
script 'standard/actions/inventory'
|
8
7
|
script 'standard/actions/leave'
|
9
|
-
script 'standard/actions/lock'
|
10
|
-
script 'standard/actions/look-under'
|
11
8
|
script 'standard/actions/look'
|
12
|
-
script 'standard/actions/nil'
|
13
|
-
script 'standard/actions/open'
|
14
9
|
script 'standard/actions/place'
|
15
10
|
script 'standard/actions/quit'
|
16
|
-
script 'standard/actions/read'
|
17
|
-
script 'standard/actions/search'
|
18
|
-
script 'standard/actions/show'
|
19
11
|
script 'standard/actions/take'
|
20
12
|
script 'standard/actions/talk'
|
21
|
-
script 'standard/actions/unlock'
|
22
|
-
script 'standard/actions/use'
|
23
13
|
script 'standard/actions/wait'
|
@@ -6,7 +6,7 @@ respond :drop, Use.family() do |actor, thing|
|
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
|
-
respond :drop,
|
9
|
+
respond :drop, Use.children do |actor, thing|
|
10
10
|
if thing.sticky?
|
11
11
|
actor.tell thing.sticky_message || "#{you.pronoun.Subj} #{you.verb.need} to keep #{the thing} for now."
|
12
12
|
else
|
@@ -1,20 +1,12 @@
|
|
1
|
+
respond :enter, Use.siblings do |actor, thing|
|
2
|
+
actor.tell "#{The thing} #{you.contract "can not"} accommodate #{you.pronoun.obj}."
|
3
|
+
end
|
4
|
+
|
1
5
|
respond :enter, Use.siblings(Enterable, :enterable?) do |actor, supporter|
|
2
6
|
actor.parent = supporter
|
3
7
|
actor.tell "#{you.pronoun.Subj} #{you.verb[supporter.enter_verb]} #{the supporter}."
|
4
8
|
end
|
5
9
|
|
6
|
-
respond :enter, Use.siblings(Enterable, Openable, :enterable?) do |actor, container|
|
7
|
-
if container.open?
|
8
|
-
actor.proceed
|
9
|
-
else
|
10
|
-
actor.tell "#{The container} is closed."
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
respond :enter, Use.siblings do |actor, thing|
|
15
|
-
actor.tell "#{The thing} #{you.contract "can not"} accommodate #{you.pronoun.obj}."
|
16
|
-
end
|
17
|
-
|
18
10
|
respond :enter, Use.parent do |actor, container|
|
19
11
|
actor.tell "#{you.contract(you.pronoun.subj + ' ' + you.verb.be).cap_first} already in #{the container}."
|
20
12
|
end
|
@@ -23,9 +15,5 @@ respond :enter, Use.parent(Supporter) do |actor, supporter|
|
|
23
15
|
actor.tell "#{you.pronoun.Subj} #{you.verb[supporter.enter_verb]} #{the supporter} already."
|
24
16
|
end
|
25
17
|
|
26
|
-
respond :enter, Use.text do |actor, text|
|
27
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract(you.verb.do + ' not')} see any \"#{text}\" here."
|
28
|
-
end
|
29
|
-
|
30
18
|
interpret "get on :thing", "enter :thing"
|
31
19
|
interpret "get in :thing", "enter :thing"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
respond :go, Use.
|
1
|
+
respond :go, Use.siblings(Portal) do |actor, portal|
|
2
2
|
if actor.parent != actor.room
|
3
3
|
actor.perform :leave
|
4
4
|
end
|
@@ -15,44 +15,10 @@ respond :go, Use.family(Portal) do |actor, portal|
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
respond :go, Use.
|
19
|
-
actor.tell "#{The door} is locked."
|
20
|
-
end
|
21
|
-
|
22
|
-
respond :go, Use.family(Door, :closed?) do |actor, door|
|
23
|
-
if door.automatic?
|
24
|
-
actor.perform :open, door
|
25
|
-
if door.open?
|
26
|
-
actor.proceed
|
27
|
-
end
|
28
|
-
else
|
29
|
-
actor.tell "#{The door} is closed."
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
respond :go, Query::Text.new() do |actor, string|
|
18
|
+
respond :go, Use.text do |actor, string|
|
34
19
|
actor.tell "#{you.pronoun.Subj} #{you.contract(you.verb.do + ' not')} see any exit \"#{string}\" from here."
|
35
20
|
end
|
36
21
|
|
37
|
-
respond :go, Use.text do |actor, text|
|
38
|
-
# This version of the Go action identifies portals by their destinations.
|
39
|
-
portals = actor.room.children.that_are(Portal)
|
40
|
-
destinations = []
|
41
|
-
d_map = {}
|
42
|
-
portals.each { |portal|
|
43
|
-
next if portal.destination.nil?
|
44
|
-
destinations.push portal.destination
|
45
|
-
d_map[portal.destination] = portal
|
46
|
-
}
|
47
|
-
matches = destinations.select{|o| o.match? text }
|
48
|
-
matches = destinations.select{|o| o.match? text, fuzzy: true } if matches.empty?
|
49
|
-
if matches.length == 1
|
50
|
-
actor.perform :go, d_map[matches[0]]
|
51
|
-
else
|
52
|
-
actor.proceed
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
22
|
respond :go do |actor|
|
57
23
|
actor.tell "Where do you want to go?"
|
58
24
|
end
|
@@ -1,40 +1,26 @@
|
|
1
1
|
script 'standard'
|
2
2
|
|
3
|
-
respond :insert, Use.
|
3
|
+
respond :insert, Use.available, Use.available do |actor, thing, target|
|
4
4
|
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.can + ' not'} put #{the thing} inside #{the target}."
|
5
5
|
end
|
6
6
|
|
7
|
-
respond :insert, Use.
|
7
|
+
respond :insert, Use.children, Use.available(Receptacle) do |actor, thing, receptacle|
|
8
8
|
if thing.sticky?
|
9
9
|
actor.tell thing.sticky_message || "#{you.pronoun.Subj} #{you.verb.need} to keep #{the thing} for now."
|
10
10
|
else
|
11
|
-
|
12
|
-
|
13
|
-
thing.parent = receptacle
|
14
|
-
end
|
11
|
+
actor.tell "#{you.pronoun.Subj} put #{the thing} in #{the receptacle}."
|
12
|
+
thing.parent = receptacle
|
15
13
|
end
|
16
14
|
end
|
17
15
|
|
18
|
-
respond :insert, Use.
|
19
|
-
if
|
16
|
+
respond :insert, Use.available, Use.available(Receptacle) do |actor, thing, receptacle|
|
17
|
+
if thing.parent == actor
|
20
18
|
actor.proceed
|
21
19
|
else
|
22
|
-
actor.tell "#{
|
20
|
+
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} have #{the thing}."
|
23
21
|
end
|
24
22
|
end
|
25
23
|
|
26
|
-
respond :insert, Use.visible, Use.text do |actor, thing, container|
|
27
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} see anything called \"#{container}\" here."
|
28
|
-
end
|
29
|
-
|
30
|
-
respond :insert, Use.text, Use.visible do |actor, thing, container|
|
31
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} see anything called \"#{thing}\" here."
|
32
|
-
end
|
33
|
-
|
34
|
-
respond :insert, Use.text, Use.text do |actor, thing, container|
|
35
|
-
actor.tell "I don't know what you mean by \"#{thing}\" or \"#{container}.\""
|
36
|
-
end
|
37
|
-
|
38
24
|
interpret "drop :item in :container", "insert :item :container"
|
39
25
|
interpret "put :item in :container", "insert :item :container"
|
40
26
|
interpret "place :item in :container", "insert :item :container"
|
@@ -1,11 +1,3 @@
|
|
1
|
-
respond :leave, Use.parent(Container, :enterable?) do |actor, container|
|
2
|
-
if container.open?
|
3
|
-
actor.proceed
|
4
|
-
else
|
5
|
-
actor.tell "#{The container} is closed."
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
1
|
respond :leave, Use.parent do |actor, thing|
|
10
2
|
actor.tell "There's no way out of #{the thing}."
|
11
3
|
end
|
@@ -15,7 +7,7 @@ respond :leave, Use.parent(Enterable, :enterable?) do |actor, thing|
|
|
15
7
|
actor.parent = thing.parent
|
16
8
|
end
|
17
9
|
|
18
|
-
respond :leave,
|
10
|
+
respond :leave, Use.room do |actor, room|
|
19
11
|
portals = room.children.that_are(Portal)
|
20
12
|
if portals.length == 0
|
21
13
|
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} see any obvious exits."
|
@@ -30,12 +22,9 @@ respond :leave do |actor|
|
|
30
22
|
actor.perform :leave, actor.parent
|
31
23
|
end
|
32
24
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
xlate "get out :container", "leave :container"
|
40
|
-
xlate "get out of :container", "leave :container"
|
41
|
-
#xlate "out", "leave"
|
25
|
+
interpret "exit", "leave"
|
26
|
+
interpret "exit :supporter", "leave :supporter"
|
27
|
+
interpret "get on :supporter", "enter :supporter"
|
28
|
+
interpret "get off :supporter", "leave :supporter"
|
29
|
+
interpret "get out :container", "leave :container"
|
30
|
+
interpret "get out of :container", "leave :container"
|
@@ -1,16 +1,53 @@
|
|
1
|
-
respond :look, Use.
|
2
|
-
|
3
|
-
|
1
|
+
respond :look, Use.text do |actor, string|
|
2
|
+
if string == 'around'
|
3
|
+
actor.perform :look, actor.room
|
4
|
+
else
|
5
|
+
actor.tell "You don't see any \"#{string}\" here."
|
6
|
+
end
|
4
7
|
end
|
5
8
|
|
6
|
-
respond :look, Use.itself do |actor,
|
9
|
+
respond :look, Use.itself do |actor, thing|
|
7
10
|
actor.tell actor.description
|
8
11
|
actor.perform :inventory
|
9
12
|
end
|
10
13
|
|
14
|
+
respond :look, Use.available do |actor, thing|
|
15
|
+
actor.tell thing.description
|
16
|
+
thing.children.that_are(:attached?).that_are(:itemized?).each { |item|
|
17
|
+
actor.tell "#{An item} is attached to #{the thing}."
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
respond :look, Use.available(Supporter) do |actor, thing|
|
22
|
+
actor.proceed
|
23
|
+
if thing.accessible?
|
24
|
+
itemized = thing.children.that_are_not(:attached?).that_are(:itemized?)
|
25
|
+
actor.tell "You see #{itemized.join_and} on #{the thing}." unless itemized.empty?
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
respond :look, Use.available(Receptacle) do |actor, thing|
|
30
|
+
actor.proceed
|
31
|
+
if thing.accessible?
|
32
|
+
itemized = thing.children.that_are_not(:attached?).that_are(:itemized?)
|
33
|
+
actor.tell "You see #{itemized.join_and} in #{the thing}." unless itemized.empty?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
respond :look, Use.parent(Supporter, :enterable?) do |actor, supporter|
|
38
|
+
actor.proceed
|
39
|
+
actor.tell "#{you.pronoun.Subj} are currently on #{the supporter}."
|
40
|
+
end
|
41
|
+
|
11
42
|
respond :look, Use.room do |actor, room|
|
12
43
|
actor.tell "<strong>#{room.name.cap_first}</strong>"
|
13
44
|
actor.tell room.description if room.has_description?
|
45
|
+
actor.execute :_itemize_room
|
46
|
+
end
|
47
|
+
|
48
|
+
respond :_itemize_room do |actor|
|
49
|
+
room = actor.room
|
50
|
+
next if room.nil?
|
14
51
|
with_locales = []
|
15
52
|
chars = room.children.that_are(Character).that_are(:itemized?) - [actor]
|
16
53
|
charsum = []
|
@@ -44,11 +81,11 @@ respond :look, Use.room do |actor, room|
|
|
44
81
|
if portals.length > 0
|
45
82
|
if portals.length == 1
|
46
83
|
p = portals[0]
|
47
|
-
actor.tell "There is an exit #{p.
|
84
|
+
actor.tell "There is an exit #{p.instruction}."
|
48
85
|
else
|
49
86
|
dirs = []
|
50
87
|
portals.each { |p|
|
51
|
-
dirs.push
|
88
|
+
dirs.push p.instruction
|
52
89
|
}
|
53
90
|
actor.tell "There are exits #{dirs.join_and(', ')}."
|
54
91
|
end
|
@@ -61,45 +98,9 @@ respond :look, Use.room do |actor, room|
|
|
61
98
|
}
|
62
99
|
end
|
63
100
|
end
|
64
|
-
xlate "look", "look around"
|
65
|
-
xlate "l", "look around"
|
66
|
-
|
67
|
-
respond :look, Use.available() do |actor, thing|
|
68
|
-
actor.tell thing.description
|
69
|
-
thing.children.that_are(:attached?).that_are(:itemized?).each { |item|
|
70
|
-
actor.tell "#{An item} is attached to #{the thing}."
|
71
|
-
}
|
72
|
-
end
|
73
|
-
|
74
|
-
respond :look, Use.text do |actor, string|
|
75
|
-
if string == 'around'
|
76
|
-
actor.perform :look, actor.parent
|
77
|
-
else
|
78
|
-
actor.tell "You don't see any \"#{string}\" here."
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
respond :look, Use.available(Receptacle) do |actor, receptacle|
|
83
|
-
if receptacle.has_description?
|
84
|
-
actor.tell receptacle.description
|
85
|
-
end
|
86
|
-
actor.perform :search, receptacle
|
87
|
-
end
|
88
101
|
|
89
|
-
|
90
|
-
|
91
|
-
supported = supporter.children.that_are_not(:attached?)
|
92
|
-
if supported.length > 0
|
93
|
-
actor.tell "You see #{supported.join_and} sitting there."
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
respond :look, Use.available(Door) do |actor, door|
|
98
|
-
if door.has_description?
|
99
|
-
actor.proceed
|
100
|
-
end
|
101
|
-
actor.tell "#{The door} is " + (door.open? ? 'open' : 'closed') + '.'
|
102
|
-
end
|
102
|
+
interpret "look", "look around"
|
103
|
+
interpret "l", "look around"
|
103
104
|
|
104
105
|
interpret "look at :thing", "look :thing"
|
105
106
|
interpret "l :thing", "look :thing"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
meta nil, Query::Text.new() do |actor, string|
|
2
2
|
words = string.split_words
|
3
|
-
list = verbs
|
3
|
+
list = verbs
|
4
4
|
if list.include?(words[0])
|
5
5
|
if words.length > 1
|
6
6
|
actor.tell "I recognize '#{words[0]}' as a verb but could not understand the rest of your sentence."
|
@@ -1,46 +1,28 @@
|
|
1
|
-
respond :take, Use.
|
2
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract
|
3
|
-
end
|
4
|
-
|
5
|
-
respond :take, Use.visible do |actor, thing|
|
6
|
-
if thing.parent == actor.parent
|
7
|
-
actor.proceed
|
8
|
-
elsif thing.parent.kind_of?(Container) and !thing.parent.open?
|
9
|
-
actor.tell "#{The thing} is inside #{the thing.parent}, which is closed."
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
respond :take, Use.visible do |actor, thing|
|
14
|
-
if actor.parent.kind_of?(Supporter) and actor.parent != thing.parent and actor.parent != thing.parent.parent
|
15
|
-
actor.tell "#{you.pronoun.Subj} can't reach it from #{the actor.parent}."
|
16
|
-
else
|
17
|
-
actor.proceed
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
respond :take, Use.reachable(:attached?) do |actor, thing|
|
22
|
-
actor.tell "#{The thing} is attached to #{the thing.parent}."
|
1
|
+
respond :take, Use.text do |actor, text|
|
2
|
+
actor.tell "#{you.pronoun.Subj} #{you.contract(you.verb.do + ' not')} see any \"#{text}\" here."
|
23
3
|
end
|
24
4
|
|
25
|
-
respond :take, Use.
|
5
|
+
respond :take, Use.available do |actor, thing|
|
26
6
|
if thing.parent == actor
|
27
7
|
actor.tell "#{you.contract(you.pronoun.subj + ' are').cap_first} already carrying #{the thing}."
|
28
|
-
|
8
|
+
elsif thing.portable?
|
29
9
|
if actor.parent != thing.parent
|
30
10
|
actor.tell "#{you.pronoun.Subj} #{you.verb.take} #{the thing} from #{the thing.parent}."
|
31
11
|
else
|
32
12
|
actor.tell "#{you.pronoun.Subj} #{you.verb.take} #{the thing}."
|
33
13
|
end
|
34
14
|
thing.parent = actor
|
15
|
+
else
|
16
|
+
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.can + ' not'} take #{the thing}."
|
35
17
|
end
|
36
18
|
end
|
37
19
|
|
38
|
-
respond :take, Use.
|
39
|
-
actor.tell "#{
|
20
|
+
respond :take, Use.available(:attached?) do |actor, thing|
|
21
|
+
actor.tell "#{The thing} is attached to #{the thing.parent}."
|
40
22
|
end
|
41
23
|
|
42
|
-
respond :take, Use.
|
43
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract(you.verb.do + ' not')}
|
24
|
+
respond :take, Use.available(Rubble) do |actor, rubble|
|
25
|
+
actor.tell "#{you.pronoun.Subj} #{you.contract(you.verb.do + ' not')} have any use for #{the rubble}."
|
44
26
|
end
|
45
27
|
|
46
28
|
interpret "get :thing", "take :thing"
|