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/media.plot.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
module Gamefic::Image
|
2
|
-
attr_accessor :image
|
3
|
-
end
|
4
|
-
|
5
|
-
class Gamefic::Entity
|
6
|
-
include Image
|
7
|
-
end
|
8
|
-
|
9
|
-
module Gamefic::ImageViewer
|
10
|
-
def show_image filename
|
11
|
-
tell "<figure><img src=\"media/#{filename}\" /></figure>"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
class Gamefic::Character
|
16
|
-
include ImageViewer
|
17
|
-
end
|
data/scripts/multimedia.plot.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
class Gamefic::Entity
|
2
|
-
attr_accessor :image
|
3
|
-
def has_image?
|
4
|
-
(@image.to_s != '')
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
class Gamefic::Character
|
9
|
-
attr_writer :sees_image
|
10
|
-
def sees_image?
|
11
|
-
(@sees_image != false)
|
12
|
-
end
|
13
|
-
def show_image(filename)
|
14
|
-
stream "<img src=\"#{filename}\" />";
|
15
|
-
@sees_image = true
|
16
|
-
end
|
17
|
-
def play_sound(filename, loop = false)
|
18
|
-
# TODO: Implement
|
19
|
-
end
|
20
|
-
def play_ambient(filename, loop = false)
|
21
|
-
# TODO: Implement
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
assert_action :clear_last_image do |actor, action|
|
26
|
-
actor.sees_image = false
|
27
|
-
true
|
28
|
-
end
|
29
|
-
|
30
|
-
respond :look, Query::Visible.new() do |actor, subject|
|
31
|
-
actor.proceed
|
32
|
-
if subject.has_image?
|
33
|
-
actor.show_image subject.image
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
on_player_update do |actor|
|
38
|
-
if !actor.sees_image? and actor.room.has_image?
|
39
|
-
actor.show_image actor.room.image
|
40
|
-
end
|
41
|
-
end
|
data/scripts/questions.plot.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
respond :what, Query::Text.new do |actor, question|
|
2
|
-
actor.tell "It looks like you're asking a question. Try giving a command instead. Use HELP for more information."
|
3
|
-
end
|
4
|
-
|
5
|
-
respond :what, Query::Reachable.new do |actor, thing|
|
6
|
-
actor.tell "It looks like you want information about #{the thing}. Try looking at it."
|
7
|
-
end
|
8
|
-
|
9
|
-
xlate "where :question", "what :question"
|
10
|
-
xlate "when :question", "what :question"
|
11
|
-
xlate "why :question", "what :question"
|
12
|
-
xlate "who :question", "what :question"
|
13
|
-
|
14
|
-
xlate "what is :thing", "look :thing"
|
15
|
-
xlate "what's :thing", "look :thing"
|
16
|
-
xlate "who is :thing", "look :thing"
|
17
|
-
xlate "who's :thing", "look :thing"
|
data/scripts/room-modes.plot.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
module RoomModes
|
2
|
-
attr_writer :description_mode
|
3
|
-
def description_seen
|
4
|
-
@description_seen ||= Array.new
|
5
|
-
end
|
6
|
-
def description_seen=(value)
|
7
|
-
if value.kind_of?(Array)
|
8
|
-
@description_seen = value
|
9
|
-
else
|
10
|
-
raise "Character#description_seen must be an Array"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
def description_mode
|
14
|
-
@description_mode ||= "verbose"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
class Character
|
19
|
-
include RoomModes
|
20
|
-
end
|
21
|
-
|
22
|
-
respond :go, Query::Siblings.new(Portal) do |actor, portal|
|
23
|
-
actor.tell "You go #{portal.name}."
|
24
|
-
actor.parent = portal.destination
|
25
|
-
if actor.description_mode == "superbrief" or (actor.description_mode == "brief" and actor.description_seen.include?(actor.parent))
|
26
|
-
actor.tell actor.parent.name.cap_first
|
27
|
-
else
|
28
|
-
actor.perform "look"
|
29
|
-
end
|
30
|
-
if actor.description_seen.include?(actor.parent) == false
|
31
|
-
actor.description_seen.push actor.parent
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
meta :brief do |actor|
|
36
|
-
actor.description_mode = "brief"
|
37
|
-
actor.tell "You are now in BRIEF mode. Detailed descriptions of rooms will only be displayed the first time you visit them. Other options are SUPERBRIEF and VERBOSE."
|
38
|
-
end
|
39
|
-
|
40
|
-
meta :verbose do |actor|
|
41
|
-
actor.description_mode = "verbose"
|
42
|
-
actor.tell "You are now in VERBOSE mode. Detailed descriptions will be displayed every time you enter a room. Other options are BRIEF and SUPERBRIEF."
|
43
|
-
end
|
44
|
-
|
45
|
-
meta :superbrief do |actor|
|
46
|
-
actor.description_mode = "superbrief"
|
47
|
-
actor.tell "You are now in SUPERBRIEF mode. Detailed room descriptions will never be displayed unless you LOOK AROUND. Other options are BRIEF and VERBOSE."
|
48
|
-
end
|
data/scripts/rough-sizes.plot.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
module Roughly
|
2
|
-
XSMALL = 1
|
3
|
-
SMALL = 2
|
4
|
-
MEDIUM = 3
|
5
|
-
LARGE = 4
|
6
|
-
XLARGE = 5
|
7
|
-
end
|
8
|
-
|
9
|
-
class Entity
|
10
|
-
attr_writer :size
|
11
|
-
def size
|
12
|
-
@size ||= (is?(:portable) ? Roughly::SMALL : Roughly::MEDIUM)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
class Room
|
17
|
-
def size
|
18
|
-
@size ||= Roughly::XLARGE
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
respond :drop_in, Query::Children.new(), Query::Reachable.new(Container) do |actor, thing, container|
|
23
|
-
if container.size <= thing.size
|
24
|
-
actor.tell "#{The thing} can't fit in #{the container}."
|
25
|
-
else
|
26
|
-
actor.proceed
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
respond :drop_on, Query::Children.new(), Query::Reachable.new(Supporter) do |actor, thing, supporter|
|
31
|
-
if supporter.size < thing.size
|
32
|
-
actor.tell "#{The supporter} can't accommodate #{the thing}."
|
33
|
-
else
|
34
|
-
actor.proceed
|
35
|
-
end
|
36
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
script 'snapshots'
|
2
|
-
|
3
|
-
meta :save do |actor|
|
4
|
-
actor.perform :save, "game.sav"
|
5
|
-
end
|
6
|
-
|
7
|
-
meta :save, Query::Text.new() do |actor, filename|
|
8
|
-
actor.user.save filename, save
|
9
|
-
actor.tell "Game saved."
|
10
|
-
end
|
11
|
-
|
12
|
-
meta :restore do |actor|
|
13
|
-
actor.perform :restore, "game.sav"
|
14
|
-
end
|
15
|
-
|
16
|
-
meta :restore, Query::Text.new() do |actor, filename|
|
17
|
-
data = actor.user.restore(filename)
|
18
|
-
if !data.nil?
|
19
|
-
restore data
|
20
|
-
actor.tell "Game restored."
|
21
|
-
end
|
22
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
respond :close, Query::Text.new() do |actor, string|
|
2
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} see any \"#{string}\" here."
|
3
|
-
end
|
4
|
-
|
5
|
-
respond :close, Use.reachable() do |actor, thing|
|
6
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.can + ' not'} close #{the thing}."
|
7
|
-
end
|
8
|
-
|
9
|
-
respond :close, Use.reachable(Openable) do |actor, container|
|
10
|
-
if !container.open?
|
11
|
-
actor.tell "It's already closed."
|
12
|
-
else
|
13
|
-
actor.tell "#{you.pronoun.Subj} close #{the container}."
|
14
|
-
container.open = false
|
15
|
-
end
|
16
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
respond :lock, Query::Text.new() do |actor, string|
|
2
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} see any \"#{string}\" here."
|
3
|
-
end
|
4
|
-
|
5
|
-
respond :lock, Use.family() do |actor, thing|
|
6
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.can + ' not'} lock #{the thing}."
|
7
|
-
end
|
8
|
-
|
9
|
-
respond :lock, Use.family(Lockable, :has_lock_key?) do |actor, container|
|
10
|
-
# Portable containers need to be picked up before they are locked.
|
11
|
-
if container.portable? and container.parent != actor
|
12
|
-
actor.perform :take, container
|
13
|
-
if container.parent != actor
|
14
|
-
break
|
15
|
-
end
|
16
|
-
end
|
17
|
-
if container.locked?
|
18
|
-
actor.tell "It's already locked."
|
19
|
-
else
|
20
|
-
#if container.is?(:auto_lockable)
|
21
|
-
key = nil
|
22
|
-
if container.lock_key.nil? == false
|
23
|
-
if container.lock_key.parent == actor
|
24
|
-
key = container.lock_key
|
25
|
-
end
|
26
|
-
end
|
27
|
-
if key.nil?
|
28
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} have any way to lock #{the container}."
|
29
|
-
else
|
30
|
-
actor.tell "#{you.pronoun.Subj} #{you.verb.lock} #{the container} with #{the key}."
|
31
|
-
container.locked = true
|
32
|
-
end
|
33
|
-
#else
|
34
|
-
# actor.tell "What do you want to lock #{the container} with?"
|
35
|
-
#end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
respond :lock, Use.family(Lockable, :has_lock_key?), Query::Children.new do |actor, container, key|
|
40
|
-
if container.locked == false
|
41
|
-
if container.lock_key == key
|
42
|
-
#if container.is?(:not_auto_lockable)
|
43
|
-
# container.is :auto_lockable
|
44
|
-
# actor.perform :lock, container
|
45
|
-
# container.is :not_auto_lockable
|
46
|
-
#else
|
47
|
-
# actor.perform :lock, container
|
48
|
-
#end
|
49
|
-
actor.tell "#{you.pronoun.Subj} #{you.verb.lock} #{the container} with #{the key}."
|
50
|
-
container.locked = true
|
51
|
-
else
|
52
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.can + ' not'} lock #{the container} with #{the key}."
|
53
|
-
end
|
54
|
-
else
|
55
|
-
actor.tell "It's already locked."
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
xlate "lock :container with :key", "lock :container :key"
|
@@ -1,34 +0,0 @@
|
|
1
|
-
respond :open, Use.text do |actor, string|
|
2
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract(you.verb.do + ' not')} see any \"#{string}\" here."
|
3
|
-
end
|
4
|
-
|
5
|
-
respond :open, Use.reachable() do |actor, thing|
|
6
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract(you.verb.can + ' not')} open #{the thing}."
|
7
|
-
end
|
8
|
-
|
9
|
-
respond :open, Use.reachable(Openable) do |actor, container|
|
10
|
-
# Portable containers need to be picked up before they are opened.
|
11
|
-
if container.portable? and container.parent != actor
|
12
|
-
actor.perform :take, container
|
13
|
-
if container.parent != actor
|
14
|
-
break
|
15
|
-
end
|
16
|
-
end
|
17
|
-
if !container.open?
|
18
|
-
actor.tell "#{you.pronoun.Subj} #{you.verb['open']} #{the container}."
|
19
|
-
container.open = true
|
20
|
-
if container.children.that_are_not(:attached?).length > 0
|
21
|
-
actor.perform :search, container
|
22
|
-
end
|
23
|
-
else
|
24
|
-
actor.tell "It's already open."
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
respond :open, Use.reachable(Openable, Lockable) do |actor, container|
|
29
|
-
if container.locked?
|
30
|
-
actor.tell "#{The container} is locked."
|
31
|
-
else
|
32
|
-
actor.proceed
|
33
|
-
end
|
34
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
respond :search, Use.reachable(Receptacle) do |actor, receptacle|
|
2
|
-
# TODO Show the contents of the receptacle
|
3
|
-
contents = receptacle.children.that_are_not(:attached?)
|
4
|
-
if contents.length > 0
|
5
|
-
actor.tell "Inside #{contents.length > 1 ? 'are' : 'is'} #{contents.join_and}."
|
6
|
-
else
|
7
|
-
actor.tell "#{The receptacle} #{receptacle.verb.be} empty."
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
respond :search, Use.reachable(Container) do |actor, container|
|
12
|
-
next unless container.kind_of?(Container)
|
13
|
-
if container.open? or container.transparent?
|
14
|
-
actor.proceed
|
15
|
-
else
|
16
|
-
actor.tell "#{The container} #{container.verb.be} closed."
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
respond :search, Use.reachable do |actor, thing|
|
21
|
-
actor.perform :look, thing
|
22
|
-
end
|
23
|
-
|
24
|
-
respond :search, Use.room do |actor, room|
|
25
|
-
actor.perform :look, room
|
26
|
-
end
|
27
|
-
|
28
|
-
respond :search, Use.reachable do |actor, entity|
|
29
|
-
attached = entity.children.that_are(:attached?).that_are(Container)
|
30
|
-
if attached.length > 1
|
31
|
-
actor.tell "#{you.pronoun.Subj} #{you.verb.can} search #{attached.join_or}"
|
32
|
-
elsif attached.length == 1
|
33
|
-
actor.perform :search, attached[0]
|
34
|
-
else
|
35
|
-
actor.proceed
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
interpret "look in :thing", "search :thing"
|
40
|
-
interpret "look inside :thing", "search :thing"
|
@@ -1,13 +0,0 @@
|
|
1
|
-
respond :show, Use.reachable(Character), Use.children do |actor, character, thing|
|
2
|
-
actor.tell "#{The character} isn't interested in #{the thing}."
|
3
|
-
end
|
4
|
-
|
5
|
-
respond :show, Use.reachable, Use.children do |actor, witness, thing|
|
6
|
-
actor.tell "Nothing happens."
|
7
|
-
end
|
8
|
-
|
9
|
-
respond :show, Use.children, Use.text do |actor, thing, text|
|
10
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} see any \"#{text}\" here."
|
11
|
-
end
|
12
|
-
|
13
|
-
interpret "show :thing to :character", "show :character :thing"
|
@@ -1,77 +0,0 @@
|
|
1
|
-
respond :unlock, Query::Text.new() do |actor, string|
|
2
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} see any \"#{string}\" here."
|
3
|
-
end
|
4
|
-
|
5
|
-
respond :unlock, Use.family() do |actor, thing|
|
6
|
-
actor.tell "#{you.pronoun.Subj} can't unlock #{the thing}."
|
7
|
-
end
|
8
|
-
|
9
|
-
respond :unlock, Use.family(Lockable) do |actor, container|
|
10
|
-
# Portable containers need to be picked up before they are unlocked.
|
11
|
-
if container.portable? and container.parent != actor
|
12
|
-
actor.perform :take, container
|
13
|
-
if container.parent != actor
|
14
|
-
break
|
15
|
-
end
|
16
|
-
end
|
17
|
-
if container.locked? == false
|
18
|
-
actor.tell "#{The container} isn't locked."
|
19
|
-
else
|
20
|
-
#if container.is?(:auto_lockable)
|
21
|
-
key = nil
|
22
|
-
if container.lock_key.nil? == false
|
23
|
-
if container.lock_key.parent == actor
|
24
|
-
key = container.lock_key
|
25
|
-
end
|
26
|
-
end
|
27
|
-
if key.nil?
|
28
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} have any way to unlock #{the container}."
|
29
|
-
else
|
30
|
-
actor.tell "#{you.pronoun.Subj} #{you.verb.unlock} #{the container} with #{the key}."
|
31
|
-
container.locked = false
|
32
|
-
end
|
33
|
-
#takeelse
|
34
|
-
# actor.tell "What do you want to unlock #{the container} with?"
|
35
|
-
#end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
respond :unlock, Use.family(Lockable), Query::Text.new do |actor, container, thing|
|
40
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.do + ' not'} have anything called '#{thing}.'"
|
41
|
-
end
|
42
|
-
|
43
|
-
respond :unlock, Use.family(Lockable, :has_lock_key?), Query::Children.new do |actor, container, key|
|
44
|
-
if container.is?(:locked)
|
45
|
-
if container.key == key
|
46
|
-
#if container.is?(:not_auto_lockable)
|
47
|
-
# container.is :auto_lockable
|
48
|
-
# actor.perform :unlock, container
|
49
|
-
# container.is :not_auto_lockable
|
50
|
-
#else
|
51
|
-
actor.perform :unlock, container
|
52
|
-
#end
|
53
|
-
else
|
54
|
-
actor.tell "#{you.pronoun.Subj} #{you.contract you.verb.can + ' not'} unlock #{the container} with #{the key}."
|
55
|
-
end
|
56
|
-
else
|
57
|
-
actor.tell "#{The container} isn't locked."
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
respond :open, Use.family(Lockable, :has_lock_key?), Query::Children.new do |actor, container, key|
|
62
|
-
if container.is?(:locked)
|
63
|
-
actor.perform :unlock, container, key
|
64
|
-
if !container.is?(:locked)
|
65
|
-
actor.perform :open, container
|
66
|
-
end
|
67
|
-
else
|
68
|
-
actor.perform :open, container
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
respond :use, Query::Children.new, Use.family(Lockable, :has_lock_key?) do |actor, key, container|
|
73
|
-
actor.perform :unlock, container, key
|
74
|
-
end
|
75
|
-
|
76
|
-
xlate "unlock :container with :key", "unlock :container :key"
|
77
|
-
xlate "open :container with :key", "open :container :key"
|