Sha256: d4567782b3357800a15247d684e2884c96f285a6bd04eeb8e6d4e5e049663d04

Contents?: true

Size: 783 Bytes

Versions: 1

Compression:

Stored size: 783 Bytes

Contents

Gamefic.script do
  respond :open, Use.available do |actor, thing|
    actor.tell "You can't open #{the thing}."
  end

  respond :open, Use.available(Openable) do |actor, thing|
    if thing.open?
      actor.tell "#{The thing} is already open."
    else
      actor.tell "You open #{the thing}."
      thing.open = true
    end
  end

  respond :open, Use.available(Lockable) do |actor, thing|
    if thing.locked?
      actor.tell "#{The thing} is locked."
    else
      actor.proceed
    end
  end

  respond :open, Use.available(Lockable, :has_lock_key?), Use.available do |actor, thing, key|
    actor.execute :unlock, thing, key
    actor.execute :open, thing if thing.unlocked?
  end

  interpret 'open :thing with :key', 'open :thing :key'
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gamefic-standard-2.4.0 lib/gamefic-standard/actions/open.rb