Sha256: 9508d6e9b99cbc7baaa45b4c9c6d523325fbfe4773160d8916dc465c1d2089f6

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

module Gamefic
  module Standard
    module Actions
      module Enter
        extend Gamefic::Scriptable

        respond :enter, siblings do |actor, thing|
          actor.tell "#{The thing} can't accommodate you."
        end

        respond :enter, siblings(Enterable, proc(&:enterable?)) do |actor, supporter|
          actor.parent = supporter
          actor.tell "You get in #{the supporter}."
        end

        respond :enter, parent do |actor, container|
          actor.tell "You're already in #{the container}."
        end

        respond :enter, parent(Supporter) do |actor, supporter|
          actor.tell "You're inside #{the supporter} already."
        end

        respond :enter, siblings(Container, proc(&:enterable?), proc(&:closed?)) do |actor, container|
          actor.tell "#{The container} is closed."
        end

        interpret 'get on :thing', 'enter :thing'
        interpret 'get in :thing', 'enter :thing'
        interpret 'get inside :thing', 'enter :thing'
        interpret 'sit on :thing', 'enter :thing'
        interpret 'sit in :thing', 'enter :thing'
        interpret 'lie on :thing', 'enter :thing'
        interpret 'lie in :thing', 'enter :thing'
        interpret 'stand on :thing', 'enter :thing'
        interpret 'stand in :thing', 'enter :thing'
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gamefic-standard-3.3.0 lib/gamefic-standard/actions/enter.rb