# # file:: cmd_bash.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") # Skill: Bashes things, like doors def cmd_bash(args) case args when "", nil sendto _("Bash what?") else # Check if exit direction has a door door = nil loc = get_object(location) loc.exits.each do |exid| ex = get_object(exid) door = ex if ex.name =~/#{args}/i end if door if stats[:mp] - 2 > 0 stats[:mp] -= 2 if not world.is_builder? id else sendto _("You are too exhausted.") return end if door.door_state == Exit::DOOR_CLOSED or door.door_state == Exit::DOOR_LOCKED chance = get_skill(:bash) * 10 chance = 0 if door.has_attribute? :no_bash chance = 100 if world.is_admin? id if rand(100) < chance door.door_state = Exit::DOOR_OPEN get_object(door.linked_exit).door_state = Exit::DOOR_OPEN sendto _("You bash open the %{door}!!" % {:door => door.door_name}) msg = Msg.new _("^p1 bashes open the %{door}!!" % {:door => door.door_name}) msg.p1 = name sendroom(msg) msg = _("The %{door} bashes in!!" % {:door => door.door_name}) get_object(door.to_room).say(msg) add_exp(2) else sendto _("You bash on the %{door}!" % {:door => door.door_name}) msg = Msg.new _("^p1 bashes against the %{door}!" % {:door => door.door_name}) msg.p1 = name sendroom(msg) msg = _("You hear banging on the %{door}" % {:door => door.door_name}) get_object(door.to_room).say(msg) end else sendto _("Bashing that will do no good.") end else sendto _("Exit not found.") end end end end