class Degica::Person
Public Class Methods
new()
click to toggle source
# File lib/degica/objects/people/person.rb, line 3 def initialize @talked = false @inventory = InventoryCollection.new end
Public Instance Methods
actions()
click to toggle source
# File lib/degica/objects/people/person.rb, line 20 def actions [Action.new(:talk, self), Action.new(:give, self)] end
describe()
click to toggle source
# File lib/degica/objects/people/person.rb, line 52 def describe desc = [] desc << description desc << "Maybe you should (talk) with him.".highlight unless @talked desc.join("\n") end
description()
click to toggle source
# File lib/degica/objects/people/person.rb, line 16 def description raise NotImplementedError end
give(object = nil)
click to toggle source
# File lib/degica/objects/people/person.rb, line 36 def give(object = nil) if object.nil? return "What do you want to give?" elsif !object.is_a?(::Degica::Object) return "\"#{object}\" is not in your (inventory).".highlight end if object.collection.delete(object) @inventory << object puts "You gave the (#{object.name}) to #{name}.".highlight else puts "You don't have any #{object.name}." end NilActionable.new end
inspect()
click to toggle source
# File lib/degica/objects/people/person.rb, line 24 def inspect "#{name.capitalize} says: \"Don't inspect me!\"" end
name()
click to toggle source
# File lib/degica/objects/people/person.rb, line 8 def name raise NotImplementedError end
quote()
click to toggle source
# File lib/degica/objects/people/person.rb, line 12 def quote raise NotImplementedError end
talk()
click to toggle source
# File lib/degica/objects/people/person.rb, line 28 def talk @talked = true desc = [] desc << "#{name} says:".capitalize desc << '"' + quote + '"' desc.join(" ") end
Private Instance Methods
holding?(name)
click to toggle source
# File lib/degica/objects/people/person.rb, line 61 def holding?(name) !!@inventory.find { |item| item.name == name } end