class Player
# Look command function
def cmd_look command_table_entry, *args
arg, arg2 = *args
# we're looking at an item specifically.
if [arg].flatten[0].is_a? Item
arg = [arg].flatten[0]
in_room.display([:visual, "other.can_see?(actor) || other.can_see?(arg[0])"], self, [self],
"<%=other.peek(actor)%> glances at <%=other.peek(arg[0])%>.", arg)
view "You look at #{peek(arg)}." + ENDL
view arg
return
end
# look directly into a bag.
if arg == "into"
# select only things that are a container.
#arg2 = arg2.select {|o|}
[arg2].flatten.each do |o|
view "#{peek(o)} contains:" +ENDL
o.each_stuff do |es|
view "#{peek(es)}" + ENDL
end
end
return
end
arr = [(-5..5), (-1..1)]
if arg.is_a?(Integer)
arr = [(-5-arg/2..5+arg/2), (-1-arg/3..1+arg/3)]
elsif arg.is_a?(String)
if !arg.exit_code_to_i
arr = [(-5..5), (-1..1)]
else
i = arg.exit_code_to_i
arr = case i
when 0 then [(-5..5), (0..2)]
when 1 then [(-2..8), (-1..1)]
when 2 then [(-5..5), (-2..0)]
when 3 then [(-8..2), (-1..1)]
end
end
end
m = Automap.new in_room, arr
m.view(self)
in_room.people.each do |actor|
next if actor == self
if ('A'..'Z') === actor.short_desc[0]
view "#{actor.short_desc.capitalize} is here." + ENDL
else
view "#{actor.short_desc.en.a.capitalize} is here." + ENDL
end
end
found = []
# each thing in the room.
in_room.each_stuff do |obj|
found << peek(obj, false)
end
if found.empty?
elsif in_room.count_stuff == 1
found[0] = "lonely " + found[0]
view found.en.conjunction.capitalize + " is here." + ENDL
else
view found.en.conjunction.capitalize + " are here." + ENDL
end
if (!@editing.empty?)
execute_command("show") # print the editor menu.
end
end
end