gamefic-standard 3.3.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/Rakefile +6 -3
  4. data/gamefic-standard.gemspec +4 -4
  5. data/lib/{gamefic-standard → gamefic/standard}/actions/drop.rb +2 -2
  6. data/lib/{gamefic-standard → gamefic/standard}/actions/enter.rb +0 -8
  7. data/lib/gamefic/standard/actions/give.rb +38 -0
  8. data/lib/gamefic/standard/actions/look.rb +149 -0
  9. data/lib/gamefic/standard/actions/mount.rb +29 -0
  10. data/lib/gamefic/standard/actions/nil.rb +37 -0
  11. data/lib/{gamefic-standard → gamefic/standard}/actions/place.rb +2 -2
  12. data/lib/{gamefic-standard → gamefic/standard}/actions/pronouns.rb +5 -7
  13. data/lib/gamefic/standard/actions/quit.rb +24 -0
  14. data/lib/gamefic/standard/actions/repeat.rb +28 -0
  15. data/lib/{gamefic-standard → gamefic/standard}/actions/search.rb +9 -9
  16. data/lib/{gamefic-standard → gamefic/standard}/actions/take.rb +2 -1
  17. data/lib/{gamefic-standard → gamefic/standard}/actions/talk.rb +2 -2
  18. data/lib/gamefic/standard/actions.rb +57 -0
  19. data/lib/{gamefic-standard → gamefic/standard}/articles.rb +2 -0
  20. data/lib/gamefic/standard/entities/character.rb +14 -0
  21. data/lib/gamefic/standard/entities/container.rb +16 -0
  22. data/lib/gamefic/standard/entities/door.rb +46 -0
  23. data/lib/gamefic/standard/entities/fixture.rb +8 -0
  24. data/lib/gamefic/standard/entities/item.rb +11 -0
  25. data/lib/gamefic/standard/entities/portal.rb +50 -0
  26. data/lib/gamefic/standard/entities/receptacle.rb +9 -0
  27. data/lib/gamefic/standard/entities/room.rb +55 -0
  28. data/lib/gamefic/standard/entities/rubble.rb +16 -0
  29. data/lib/gamefic/standard/entities/scenery.rb +13 -0
  30. data/lib/gamefic/standard/entities/supporter.rb +9 -0
  31. data/lib/gamefic/standard/entities/thing.rb +9 -0
  32. data/lib/gamefic/standard/entities.rb +18 -0
  33. data/lib/{gamefic-standard → gamefic/standard}/lockable.rb +8 -0
  34. data/lib/{gamefic-standard → gamefic/standard}/openable.rb +2 -2
  35. data/lib/gamefic/standard/queries.rb +24 -0
  36. data/lib/{gamefic-standard → gamefic/standard}/version.rb +1 -1
  37. data/lib/gamefic/standard.rb +32 -0
  38. data/lib/gamefic-standard.rb +1 -34
  39. metadata +58 -56
  40. data/lib/gamefic-standard/actions/give.rb +0 -41
  41. data/lib/gamefic-standard/actions/look.rb +0 -152
  42. data/lib/gamefic-standard/actions/nil.rb +0 -70
  43. data/lib/gamefic-standard/actions/quit.rb +0 -20
  44. data/lib/gamefic-standard/actions/repeat.rb +0 -22
  45. data/lib/gamefic-standard/actions.rb +0 -56
  46. data/lib/gamefic-standard/entities/character.rb +0 -5
  47. data/lib/gamefic-standard/entities/container.rb +0 -8
  48. data/lib/gamefic-standard/entities/door.rb +0 -42
  49. data/lib/gamefic-standard/entities/fixture.rb +0 -4
  50. data/lib/gamefic-standard/entities/item.rb +0 -7
  51. data/lib/gamefic-standard/entities/portal.rb +0 -46
  52. data/lib/gamefic-standard/entities/receptacle.rb +0 -5
  53. data/lib/gamefic-standard/entities/room.rb +0 -61
  54. data/lib/gamefic-standard/entities/rubble.rb +0 -12
  55. data/lib/gamefic-standard/entities/scenery.rb +0 -9
  56. data/lib/gamefic-standard/entities/supporter.rb +0 -5
  57. data/lib/gamefic-standard/entities/thing.rb +0 -5
  58. data/lib/gamefic-standard/entities.rb +0 -12
  59. data/lib/gamefic-standard/queries.rb +0 -12
  60. /data/lib/{gamefic-standard → gamefic/standard}/actions/attack.rb +0 -0
  61. /data/lib/{gamefic-standard → gamefic/standard}/actions/close.rb +0 -0
  62. /data/lib/{gamefic-standard → gamefic/standard}/actions/go.rb +0 -0
  63. /data/lib/{gamefic-standard → gamefic/standard}/actions/insert.rb +0 -0
  64. /data/lib/{gamefic-standard → gamefic/standard}/actions/inventory.rb +0 -0
  65. /data/lib/{gamefic-standard → gamefic/standard}/actions/leave.rb +0 -0
  66. /data/lib/{gamefic-standard → gamefic/standard}/actions/lock.rb +0 -0
  67. /data/lib/{gamefic-standard → gamefic/standard}/actions/move.rb +0 -0
  68. /data/lib/{gamefic-standard → gamefic/standard}/actions/open.rb +0 -0
  69. /data/lib/{gamefic-standard → gamefic/standard}/actions/save-restore-undo.rb +0 -0
  70. /data/lib/{gamefic-standard → gamefic/standard}/actions/unlock.rb +0 -0
  71. /data/lib/{gamefic-standard → gamefic/standard}/actions/wait.rb +0 -0
  72. /data/lib/{gamefic-standard → gamefic/standard}/direction.rb +0 -0
  73. /data/lib/{gamefic-standard → gamefic/standard}/enterable.rb +0 -0
  74. /data/lib/{gamefic-standard → gamefic/standard}/introduction.rb +0 -0
  75. /data/lib/{gamefic-standard → gamefic/standard}/pathfinder.rb +0 -0
  76. /data/lib/{gamefic-standard → gamefic/standard}/standardized.rb +0 -0
@@ -1,152 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Gamefic
4
- module Standard
5
- module Actions
6
- module Look
7
- extend Gamefic::Scriptable
8
-
9
- respond :look do |actor|
10
- actor.execute :look, actor.room
11
- end
12
-
13
- respond :look, myself do |actor, _|
14
- actor.tell actor.description
15
- actor.execute :inventory
16
- end
17
-
18
- respond :look, available(Thing) do |actor, thing|
19
- actor.tell thing.description
20
- thing.children.that_are(proc(&:attached?)).that_are(proc(&:itemized?)).each do |item|
21
- actor.tell "#{An item} is attached to #{the thing}."
22
- end
23
- end
24
-
25
- respond :look, available(Supporter) do |actor, thing|
26
- itemized = thing.children.that_are_not(proc(&:attached?)).that_are(proc(&:itemized?))
27
- # If the supporter does not have a description but it does contain
28
- # itemized things, avoid saying there's nothing special about it.
29
- actor.proceed if thing.has_description? || itemized.empty?
30
- actor.tell "You see #{itemized.join_and} on #{the thing}." unless itemized.empty?
31
- end
32
-
33
- respond :look, available(Receptacle) do |actor, thing|
34
- actor.proceed
35
- actor.tell "You're currently in #{the thing}." if actor.parent == thing
36
- next unless actor.parent == thing || thing.accessible?
37
-
38
- itemized = thing.children.that_are_not(actor, proc(&:attached?)).that_are(proc(&:itemized?))
39
- next if itemized.empty?
40
-
41
- if actor.parent == thing
42
- actor.tell "You see #{itemized.join_and} here." unless itemized.empty?
43
- else
44
- actor.tell "You see #{itemized.join_and} in #{the thing}." unless itemized.empty?
45
- end
46
- end
47
-
48
- respond :look, parent(Supporter, proc(&:enterable?)) do |actor, supporter|
49
- actor.proceed
50
- actor.tell "You are currently on #{the supporter}."
51
- end
52
-
53
- respond :look, available(Thing, Openable) do |actor, thing|
54
- actor.tell thing.description if thing.has_description?
55
- actor.tell "#{The thing} is #{thing.open? ? 'open' : 'closed'}."
56
- next if thing.closed? || thing.children.empty?
57
-
58
- actor.tell "You see #{thing.children.join_and}."
59
- end
60
-
61
- respond :look, room do |actor, _room|
62
- actor.execute :_describe_room
63
- end
64
-
65
- meta :_describe_room do |actor|
66
- next unless actor.room
67
-
68
- actor.tell "<strong>#{actor.room.name.cap_first}</strong>"
69
- actor.tell actor.room.description if actor.room.has_description?
70
- actor.execute :_itemize_room
71
- end
72
-
73
- meta :_itemize_room do |actor|
74
- room = actor.room
75
- next unless room
76
-
77
- with_locales = []
78
- chars = room.children.that_are(Character).that_are(proc(&:itemized?)) - [actor]
79
- charsum = []
80
- chars.each do |char|
81
- if char.locale_description.nil?
82
- charsum.push char
83
- else
84
- with_locales.push char
85
- end
86
- end
87
- if charsum.length > 0
88
- actor.tell "#{charsum.join_and.cap_first} #{charsum.length == 1 ? 'is' : 'are'} here."
89
- end
90
- items = room.children.that_are(proc(&:itemized?)) - [actor] - room.children.that_are(Character) - room.children.that_are(Portal)
91
- itemsum = []
92
- items.each do |item|
93
- if item.locale_description.nil?
94
- itemsum.push item
95
- else
96
- with_locales.push item
97
- end
98
- end
99
- actor.tell "You see #{itemsum.join_and}." if itemsum.length > 0
100
- with_locales.each do |entity|
101
- actor.tell entity.locale_description
102
- end
103
- if room.explicit_exits?
104
- portals = room.children.that_are(Portal).that_are(proc(&:itemized?))
105
- if portals.length > 0
106
- if portals.length == 1
107
- p = portals[0]
108
- actor.tell "There is an exit #{p.instruction}."
109
- else
110
- dirs = []
111
- portals.each do |p|
112
- dirs.push p.instruction
113
- end
114
- order = %w[north northeast east southeast south southwest west northwest up
115
- down]
116
- dirs.sort! { |a, b| (order.index(a.to_s) || order.length) <=> (order.index(b.to_s) || order.length) }
117
- actor.tell "There are exits #{dirs.join_and(', ')}."
118
- end
119
- end
120
- end
121
- actor.execute :_look_parent_from_room
122
- end
123
-
124
- meta :_look_parent_from_room do |actor|
125
- next unless actor.parent.is_a?(Supporter) || actor.parent.is_a?(Receptacle)
126
-
127
- preposition = actor.parent.is_a?(Supporter) ? 'on' : 'in'
128
- siblings = actor.parent.children.that_are_not(actor)
129
- if siblings.empty?
130
- actor.tell "You're #{preposition} #{the actor.parent}."
131
- else
132
- actor.tell "You're #{preposition} #{the actor.parent}, along with #{siblings.join_and}."
133
- end
134
- end
135
-
136
- interpret 'look around', 'look'
137
- interpret 'look here', 'look'
138
- interpret 'l', 'look'
139
-
140
- interpret 'look at :thing', 'look :thing'
141
- interpret 'look on :thing', 'look :thing'
142
- interpret 'look under :thing', 'look :thing'
143
- interpret 'look beneath :thing', 'look :thing'
144
- interpret 'look around :thing', 'look :thing'
145
- interpret 'l :thing', 'look :thing'
146
- interpret 'examine :thing', 'look :thing'
147
- interpret 'x :thing', 'look :thing'
148
- interpret 'inspect :thing', 'look :thing'
149
- end
150
- end
151
- end
152
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Gamefic
4
- module Standard
5
- module Actions
6
- module Nil
7
- extend Gamefic::Scriptable
8
-
9
- meta nil, plaintext do |actor, string|
10
- next if string.strip.empty?
11
-
12
- words = string.keywords
13
- list = actor.epic.synonyms
14
- if list.include?(words[0]&.to_sym)
15
- if words.length > 1
16
- result = myself.query(actor, words[1..-1].join(' '))
17
- found = [result.match].compact
18
- avail = available(ambiguous: true)
19
- result = avail.query(actor, result.remainder)
20
- until result.match.nil?
21
- found.concat result.match
22
- result = avail.query(actor, result.remainder)
23
- end
24
- if found.empty?
25
- verbs = actor.epic
26
- .syntaxes
27
- .select { |syn| syn.synonym == words[0].to_sym }
28
- .map(&:verb)
29
- resps = actor.epic.responses_for(*verbs)
30
- if resps.any? { |resp| !resp.queries.empty? }
31
- actor.tell %(I recognize "#{words[0]}" as a verb but don't know what you mean by "#{words[1..-1].join(' ')}.")
32
- else
33
- actor.tell %[I recognize "#{words[0]}" but not with the rest of your sentence. (Maybe it's a one-word command?)]
34
- end
35
- elsif result.remainder != ''
36
- actor.tell %(I recognize "#{string.sub(/#{result.remainder}$/, '').strip}" as a command but was confused by "#{result.remainder}.")
37
- elsif found.one?
38
- verbs = actor.epic
39
- .syntaxes
40
- .select { |syn| syn.synonym == words[0].to_sym }
41
- .map(&:verb)
42
- resps = actor.epic.responses_for(*verbs)
43
- if resps.any? { |resp| !resp.queries.empty? }
44
- actor.tell %(I recognize "#{words[0]}" and "#{found.first.name}" but could not understand them together.)
45
- else
46
- actor.tell %[I recognize "#{words[0]}" and "#{found.first.name}" but could not understand them together. (Maybe "#{words[0]}" is a one-word command?)]
47
- end
48
- else
49
- verbs = actor.epic
50
- .syntaxes
51
- .select { |syn| syn.synonym == words[0].to_sym }
52
- .map(&:verb)
53
- resps = actor.epic.responses_for(*verbs)
54
- if resps.any? { |resp| !resp.queries.empty? }
55
- actor.tell %(I recognize "#{words[0]}" but I'm not sure if "#{words[1..-1].join(' ')}" means #{found.map(&:definitely).join_or}.)
56
- else
57
- actor.tell %[I recognize "#{words[0]}" but not with the rest of your sentence. (Maybe it's a one-word command?)]
58
- end
59
- end
60
- else
61
- actor.tell %(I recognize "#{words[0]}" as a verb but could not understand it in this context.)
62
- end
63
- else
64
- actor.tell %(I don't recognize "#{words[0]}" as a verb.)
65
- end
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Gamefic
4
- module Standard
5
- module Actions
6
- module Quit
7
- extend Gamefic::Scriptable
8
-
9
- yes_or_no :standard_confirm_quit do |actor, props|
10
- actor.cue :default_conclusion if props.yes?
11
- end
12
-
13
- meta :quit do |actor|
14
- actor.tell 'Are you sure you want to quit?'
15
- actor.cue :standard_confirm_quit
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Gamefic
4
- module Standard
5
- module Actions
6
- module Repeat
7
- extend Gamefic::Scriptable
8
-
9
- meta :repeat do |actor|
10
- if actor.last_input && !actor.last_input.empty?
11
- actor.tell "Repeating <kbd>\"#{actor.last_input}\"</kbd>..."
12
- actor.queue.push actor.last_input
13
- else
14
- actor.tell "You don't have a previous command to repeat right now."
15
- end
16
- end
17
-
18
- interpret 'again', 'repeat'
19
- end
20
- end
21
- end
22
- end
@@ -1,56 +0,0 @@
1
- require 'gamefic-standard/actions/nil'
2
- require 'gamefic-standard/actions/attack'
3
- require 'gamefic-standard/actions/drop'
4
- require 'gamefic-standard/actions/enter'
5
- require 'gamefic-standard/actions/open'
6
- require 'gamefic-standard/actions/close'
7
- require 'gamefic-standard/actions/lock'
8
- require 'gamefic-standard/actions/unlock'
9
- require 'gamefic-standard/actions/go'
10
- require 'gamefic-standard/actions/insert'
11
- require 'gamefic-standard/actions/inventory'
12
- require 'gamefic-standard/actions/leave'
13
- require 'gamefic-standard/actions/look'
14
- require 'gamefic-standard/actions/search'
15
- require 'gamefic-standard/actions/place'
16
- require 'gamefic-standard/actions/quit'
17
- require 'gamefic-standard/actions/take'
18
- require 'gamefic-standard/actions/move'
19
- require 'gamefic-standard/actions/talk'
20
- require 'gamefic-standard/actions/wait'
21
- require 'gamefic-standard/actions/give'
22
- require 'gamefic-standard/actions/repeat'
23
- require 'gamefic-standard/actions/save-restore-undo'
24
- require 'gamefic-standard/actions/pronouns'
25
-
26
- module Gamefic
27
- module Standard
28
- module Actions
29
- include Nil
30
- include Attack
31
- include Drop
32
- include Enter
33
- include Open
34
- include Close
35
- include Lock
36
- include Unlock
37
- include Go
38
- include Insert
39
- include Inventory
40
- include Leave
41
- include Look
42
- include Search
43
- include Place
44
- include Quit
45
- include Take
46
- include Move
47
- include Talk
48
- include Wait
49
- include Give
50
- include Repeat
51
- include SaveRestoreUndo
52
- include Pronouns
53
- include Gamefic::What
54
- end
55
- end
56
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Character = Gamefic::Actor
4
- Character.set_default gender: :other
5
- Character.include Gamefic::What::Askable
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # An openable and lockable receptacle.
4
- #
5
- class Container < Receptacle
6
- include Gamefic::Standard::Openable
7
- include Gamefic::Standard::Lockable
8
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # An openable and lockable portal.
4
- #
5
- class Door < Portal
6
- include Gamefic::Standard::Openable
7
- include Gamefic::Standard::Lockable
8
-
9
- def post_initialize
10
- update_reverse_open
11
- update_reverse_lock
12
- end
13
-
14
- def open=(bool)
15
- super
16
- reverse&.lock_key = lock_key
17
- update_reverse_open
18
- update_reverse_lock
19
- end
20
-
21
- def locked=(bool)
22
- super
23
- update_reverse_lock
24
- end
25
-
26
- def two_way_lock_key=(key)
27
- self.lock_key = key
28
- reverse&.lock_key = key
29
- end
30
-
31
- private
32
-
33
- def update_reverse_open
34
- rev = find_reverse
35
- rev&.open = open? unless rev&.open? == open?
36
- end
37
-
38
- def update_reverse_lock
39
- rev = find_reverse
40
- rev&.locked = locked? unless rev&.locked? == locked?
41
- end
42
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Fixture < Thing
4
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # An entity that is portable by default.
4
- #
5
- class Item < Thing
6
- set_default portable: true
7
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # An entity that provides access from one room to another.
4
- #
5
- class Portal < Thing
6
- # @return [Gamefic::Entity]
7
- attr_accessor :destination
8
-
9
- # Get the ordinal direction of this Portal
10
- # Portals have distinct direction and name properties so games can display a
11
- # bare compass direction for exits, e.g., "south" vs. "the southern door."
12
- #
13
- # A portal's destination can also be nil, in which case it can be referenced
14
- # in commands by its destination, e.g., "go to the house."
15
- #
16
- # @return [Direction, nil]
17
- attr_reader :direction
18
-
19
- # Find the portal in the destination that returns to this portal's parent
20
- #
21
- # @return [Room, nil]
22
- def reverse
23
- return nil if destination.nil?
24
-
25
- destination.children.that_are(Portal).find do |portal|
26
- portal.destination == parent
27
- end
28
- end
29
- alias find_reverse reverse
30
-
31
- def direction=(dir)
32
- @direction = Direction.find(dir)
33
- end
34
-
35
- def name
36
- @name || direction&.name || destination.name
37
- end
38
-
39
- def instruction
40
- direction || (destination ? "to #{destination.definitely}" : name)
41
- end
42
-
43
- def synonyms
44
- "#{super} #{@destination} #{@direction} #{!direction.nil? ? direction.synonyms : ''}"
45
- end
46
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Receptacle < Thing
4
- include Gamefic::Standard::Enterable
5
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Room < Thing
4
- attr_writer :explicit_exits
5
-
6
- set_default explicit_exits: true
7
-
8
- def explicit_exits?
9
- @explicit_exits
10
- end
11
-
12
- def tell(message)
13
- children.each { |c| c.tell message }
14
- end
15
-
16
- # @return [Array<Portal>]
17
- def portals
18
- children.that_are(Portal)
19
- end
20
-
21
- # @param destination [Room]
22
- # @param direction [Direction, String, nil]
23
- # @param type [Class<Portal>]
24
- # @param two_way [Boolean]
25
- # @return [Portal, Array<Portal>]
26
- def connect(destination, direction: nil, type: Portal, two_way: true, **opts)
27
- direction = Direction.find(direction)
28
- here = type.new parent: self, destination: destination, direction: Direction.find(direction), **opts
29
- return here unless two_way
30
-
31
- there = type.new parent: destination, destination: self, direction: direction&.reverse, **opts
32
- [here, there]
33
- end
34
-
35
- class << self
36
- def explicit_exits?
37
- default_attributes[:explicit_exits]
38
- end
39
-
40
- def explicit_exits=(bool)
41
- set_default explicit_exits: bool
42
- end
43
- end
44
-
45
- protected
46
-
47
- %w[north south west east northeast southeast southwest northwest up down].each do |direction|
48
- define_method "#{direction}=" do |destination|
49
- connect destination, direction: direction
50
- end
51
- end
52
-
53
- def connect=(destinations)
54
- all = [destinations].flatten
55
- until all.empty?
56
- destination = all.shift
57
- direction = (all.first.is_a?(String) ? all.shift : nil)
58
- connect destination, direction: direction
59
- end
60
- end
61
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'gamefic-standard/entities/scenery'
4
-
5
- # Rubble is Scenery with slightly modified action responses.
6
- # Intended for things that might be portable but are useless.
7
- # Rule of thumb: Scenery is something that can't be carried,
8
- # like a table or the sky; and Rubble is something that might
9
- # be portable but is otherwise useless, like trash or debris.
10
- #
11
- class Rubble < Scenery
12
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Scenery is an entity that is not itemized by default. They're typically used
4
- # to provide a description for objects that can be observed but do not respond
5
- # to any other interactions.
6
- #
7
- class Scenery < Thing
8
- set_default itemized: false
9
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Supporter < Thing
4
- include Gamefic::Standard::Enterable
5
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Thing = Gamefic::Entity
4
- Thing.set_default itemized: true, portable: false
5
- Thing.include Gamefic::Standard::Standardized
@@ -1,12 +0,0 @@
1
- require 'gamefic-standard/entities/thing'
2
- require 'gamefic-standard/entities/character'
3
- require 'gamefic-standard/entities/fixture'
4
- require 'gamefic-standard/entities/item'
5
- require 'gamefic-standard/entities/portal'
6
- require 'gamefic-standard/entities/door'
7
- require 'gamefic-standard/entities/receptacle'
8
- require 'gamefic-standard/entities/container'
9
- require 'gamefic-standard/entities/room'
10
- require 'gamefic-standard/entities/scenery'
11
- require 'gamefic-standard/entities/rubble'
12
- require 'gamefic-standard/entities/supporter'
@@ -1,12 +0,0 @@
1
- class Gamefic::Scope::Room < Gamefic::Scope::Base
2
- def matches
3
- [context.room].compact
4
- end
5
- end
6
-
7
- # @todo Monkey patch
8
- module Gamefic::Scriptable::Queries
9
- def room *args
10
- Gamefic::Query::Scoped.new Gamefic::Scope::Room, *([Room] + args)
11
- end
12
- end