# # file:: cmd_give.rb # This source code copyright (C) 2009 Craig Smith # All rights reserved. # # Released under the terms of the TeensyMUD Public License # See LICENSE file for additional information. # module Cmd bindtextdomain("cmd") # give an item from inventory to another player in the same room def cmd_give(args) to_keyword = _("to") money_keyword = _("dollars") case args when /(\d+)\s+#{money_keyword}\s+#{to_keyword}\s+(.+)/, /\$(\d+)\s+#{to_keyword}\s+(.+)/ amount = $1.to_i whom = $2 if amount <= get_stat(:cash) ppl = peopleinroom(whom) case ppl.size when 0 sendto _("Nobody here by that name.") when 1 to = ppl[0] adjust_stat(:cash, -amount) to.adjust_stat(:cash, amount) sendto _("You give %{name} %{amt} dollars." % {:name => to.name, :amt => amount}) msg = Msg.new _("^p1 gives you %{amt} dollars." % {:amt => amount}) msg.p1 = name add_event(id, to.id, :show, msg) msg = Msg.new _("^p1 gives ^p2 ^o1.") msg.p1 = name msg.p2 = to.name msg.o1 = _("%{amt} dollars" % {:amt => amount}) add_event(to.id, id, :showrest, msg) else sendto _("Which one?") end else sendto _("You do not have that much money.") end when /(.+)\s+#{to_keyword}\s+(.+)/ what = $1 whom = $2 objs = find_inv(what) if objs.size > 0 ppl = peopleinroom(whom) case ppl.size when 0 sendto _("Nobody here by that name") return when 1 to = ppl[0] objs.each do |obj| add_event(id,to.id,:give,obj.id) end else sendto _("Which one?") return end else sendto _("You are not carrying %{item}" % {:item => what}) end else sendto _("Give what and to whom?") end end end