Sha256: 93380f98704afdf06e33d3dc0a01121cbc3601d9f2263c8de81c251da54401a7

Contents?: true

Size: 840 Bytes

Versions: 5

Compression:

Stored size: 840 Bytes

Contents

# frozen_string_literal: true

Gamefic::Standard.script do
  introduction do |actor|
    actor[:standard_pronoun_targets] = []
  end

  after_action do |action|
    next unless action.verb

    action.actor[:standard_pronoun_targets].replace action.arguments.that_are(Thing)
  end

  meta nil, plaintext do |actor, string|
    keywords = string.keywords
    list = actor.epic.synonyms
    next actor.proceed unless list.include?(keywords.first&.to_sym)

    xlation = keywords[1..].map do |word|
      next word unless %w[him her it them].include?(word)

      actor[:standard_pronoun_targets].find { |obj| Grammar::Pronoun.objective(obj) == word }
    end
    next actor.proceed if xlation.any?(&:nil?) || xlation.that_are(Thing).empty?

    actor.perform "#{keywords[0].to_sym} #{xlation.join(' ')}"
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gamefic-standard-3.2.4 lib/gamefic-standard/actions/pronouns.rb
gamefic-standard-3.2.3 lib/gamefic-standard/actions/pronouns.rb
gamefic-standard-3.2.2 lib/gamefic-standard/actions/pronouns.rb
gamefic-standard-3.2.1 lib/gamefic-standard/actions/pronouns.rb
gamefic-standard-3.2.0 lib/gamefic-standard/actions/pronouns.rb