Sha256: 33f3cb2cc38e9d96863b95bd419c0ca99c9e42681ce35645359f4e75657bb733

Contents?: true

Size: 701 Bytes

Versions: 7

Compression:

Stored size: 701 Bytes

Contents

# frozen_string_literal: true

# An openable portal.
#
class Door < Portal
  include Openable
  include Lockable

  def post_initialize
    update_reverse_open
  end

  def open= bool
    super
    update_reverse_open
  end

  def locked= bool
    super
    update_reverse_lock
  end

  def two_way_lock_key= key
    lock_key = key
    return if reverse.nil?
    reverse.lock_key = key
  end

  private

  def update_reverse_open
    rev = find_reverse
    return if rev.nil? || rev.open? == open?
    rev.open = open?
  end

  def update_reverse_lock
    rev = find_reverse
    return if rev.nil? || rev.locked? == locked?
    rev.locked = locked?
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
gamefic-standard-3.2.4 lib/gamefic-standard/entities/door.rb
gamefic-standard-3.2.3 lib/gamefic-standard/entities/door.rb
gamefic-standard-3.2.2 lib/gamefic-standard/entities/door.rb
gamefic-standard-3.2.1 lib/gamefic-standard/entities/door.rb
gamefic-standard-3.2.0 lib/gamefic-standard/entities/door.rb
gamefic-standard-3.1.0 lib/gamefic-standard/entities/door.rb
gamefic-standard-3.0.0 lib/gamefic-standard/entities/door.rb