TeensyMud - 'A ruby mud server.'

Browse repository
back

room.rb

#
# file:: room.rb
# author:: Jon A. Lambert
# version:: 2.10.0
# date:: 06/25/2006
#
# This source code copyright (C) 2005, 2006 by Jon A. Lambert
# All rights reserved.
#
# Released under the terms of the TeensyMUD Public License
# See LICENSE file for additional information.
#
$:.unshift "lib" if !$:.include? "lib"
$:.unshift "vendor" if !$:.include? "vendor"

require 'core/gameobject'

# The Room class is the mother of all rooms.
#
class Room < GameObject
property :exits
logger 'DEBUG'

# Create a new Room object
# [+name+] The displayed name of the room
# [+owner+] The owner id of this room
# [+return+] A handle to the new Room.
def initialize(name, owner)
super(name, owner)
self.exits=[] # The list of exits for this room.
end

# Event :describe
# [+e+] The event
# [+return+] Undefined
def describe(e)
msg = "[COLOR Green](#{id.to_s}) #{name}[/COLOR]\n#{desc}\n"
add_event(id,e.from,:show,msg)
end

# Event :describe_exits
# [+e+] The event
# [+return+] Undefined
def describe_exits(e)
msg = "[COLOR Red]Exits:\n"
s = exits.size
if s == 0
msg << "None.[/COLOR]"
else
i = 0
exits.each do |exid|
ex = get_object(exid)
key = ex.name.split(/;/).first
msg << key
i += 1
case s - i
when 1 then s > 2 ? msg << ", and " : msg << " and "
when 0 then msg << "."
else
msg << ", "
end
end
msg << "[/COLOR]"
end
add_event(id,e.from,:show,msg)
end

# Event :arrive
# [+e+] The event
# [+return+] Undefined
def arrive(e)
ch = get_object(e.msg)
# add character
add_contents(ch.id)
ch.location = id
characters(e.msg).each do |x|
add_event(id,x.id,:show, ch.name+" has arrived.") if x.account
end
ch.parse('look')
end

end