gamefic-standard 3.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96d1958de544c9250c33c49061d6db246d9f3ff3b1fbc9fc5d141a6e49d79107
4
- data.tar.gz: d940749ca8f20bcb81d21335f7318a56ca93e203d6e0b8481de4580df643bfe6
3
+ metadata.gz: 93e0b9232ad79263ae86444d04d4c9a4fefa4f1b4502d2fcb8275263fc6a9401
4
+ data.tar.gz: 0fcd39f5dbdd99d94fd9525d188e29ada3d89d0545e6dc2455d695e5faf060ea
5
5
  SHA512:
6
- metadata.gz: ee2922a83f750237cd27e3ce0b2e0fd3ca4c80480334398695603308b522e3a9830e59388bc181ecc5be13d1aa4261c1b28f7611d9fdc9212a4c6256fc17135a
7
- data.tar.gz: 37a6191847035deb12caeaef9f99d35be5b6a3c6e4e5166cafec28ae2be86e4704ea903e54d625f8972bf71181115e6cfaee396a216116d5cbf1feecd09bc629
6
+ metadata.gz: 8d500f2938e3475dea1e00c926b3dcec159ba76565c435f8590a317a316883b3c5ad2e7a8e01dc26eff1f9393680af8c925db42e26e57ba2d31aebcf2c5b3071
7
+ data.tar.gz: 34bb09d0c1a814c6e2f6febc04a1e8b959b78d8b0a1a17ffb42477ba110f4880ff24707f62255cc9c73c6602476d63abb79d496d79dafe394d3af3b6d4a36389
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 3.2.0
2
+ - Recognize pronouns in commands
3
+
1
4
  ## 3.1.0 - April 8, 2024
2
5
  - Minor response fixes
3
6
  - Update gamefic dependency
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ Gamefic::Standard.script do
4
+ introduction do |actor|
5
+ actor[:standard_pronoun_targets] = []
6
+ end
7
+
8
+ after_action do |action|
9
+ next unless action.verb
10
+
11
+ action.actor[:standard_pronoun_targets].replace action.arguments.that_are(Thing)
12
+ end
13
+
14
+ meta nil, plaintext do |actor, string|
15
+ keywords = string.keywords
16
+ list = actor.epic.synonyms
17
+ next actor.proceed unless list.include?(keywords.first&.to_sym)
18
+
19
+ xlation = keywords[1..].map do |word|
20
+ next word unless %w[him her it them].include?(word)
21
+
22
+ actor[:standard_pronoun_targets].find { |obj| Grammar::Pronoun.objective(obj) == word }
23
+ end
24
+ next actor.proceed if xlation.any?(&:nil?) || xlation.that_are(Thing).empty?
25
+
26
+ actor.perform "#{keywords[0].to_sym} #{xlation.join(' ')}"
27
+ end
28
+ end
@@ -21,3 +21,4 @@ require 'gamefic-standard/actions/wait'
21
21
  require 'gamefic-standard/actions/repeat'
22
22
  require 'gamefic-standard/actions/help'
23
23
  require 'gamefic-standard/actions/save-restore-undo'
24
+ require 'gamefic-standard/actions/pronouns'
@@ -1,7 +1,4 @@
1
- # The StandardMethods module provides a namespace to define additional methods
2
- # for plots and subplots. Examples include the `connect` method for creating
3
- # portals between rooms.
4
- #
1
+ # frozen_string_literal: true
5
2
 
6
3
  require 'gamefic-standard/modules/standardized'
7
4
  require 'gamefic-standard/modules/enterable'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gamefic
4
4
  module Standard
5
- VERSION = '3.1.0'
5
+ VERSION = '3.2.0'
6
6
  end
7
7
  end
@@ -18,7 +18,6 @@ module Gamefic
18
18
  require 'gamefic-standard/entities'
19
19
  require 'gamefic-standard/actions'
20
20
  require 'gamefic-standard/introduction'
21
-
22
21
  require 'gamefic-standard/give'
23
22
 
24
23
  def connect(origin, destination, direction = nil, type: Portal, two_way: true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gamefic-standard
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-08 00:00:00.000000000 Z
11
+ date: 2024-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gamefic
@@ -133,6 +133,7 @@ files:
133
133
  - lib/gamefic-standard/actions/nil.rb
134
134
  - lib/gamefic-standard/actions/open.rb
135
135
  - lib/gamefic-standard/actions/place.rb
136
+ - lib/gamefic-standard/actions/pronouns.rb
136
137
  - lib/gamefic-standard/actions/quit.rb
137
138
  - lib/gamefic-standard/actions/repeat.rb
138
139
  - lib/gamefic-standard/actions/save-restore-undo.rb