# Filename: mxpelements.rb
# Author: Craig Smith
#
require 'gettext'
# Defines the base MXP elements the mud will use
module MXPCodes
include GetText
bindtextdomain("engine")
MXP_BEG = "\x03"
MXP_END = "\x04"
MXP_AMP = "\x05"
MXP_BEGc = 3
MXP_ENDc = 4
MXP_AMPc = 5
AMPc = 38
LTc = 60
GTc = 62
def mxptag(arg)
MXP_BEG + arg + MXP_END
end
def mxpmode(arg)
"\x1b[#{arg}z"
end
# This is provided during the welcome message when MXP is supported
# This basically works like a stylesheet to let the client know
# what kind of tags to expect
def init_mxp_elements
help = _("Right click for menu")
msg = mxpmode("6")
msg << mxptag("!-- Setup MXP elements --")
msg << mxptag("!ELEMENT Ex '<COLOR Red><send>' FLAG=RoomExit")
msg << mxptag("!ELEMENT Rname '<COLOR Green>' Flag=RoomName")
msg << mxptag("!ELEMENT RDesc '<p>' FLAG=RoomDesc")
msg << mxptag("!ELEMENT Hp '<FONT COLOR=Green>' FLAG=\"Set hp\"")
msg << mxptag("!ELEMENT MaxHp FLAG=\"Set maxhp\"")
msg << mxptag("!ELEMENT Mv '<FONT COLOR=Yellow>' Flag=\"Set mv\"")
msg << mxptag("!ELEMENT MaxMv FLAG=\"Set maxmv\"")
msg << mxptag("!ELEMENT Prompt FLAG=\"Prompt\"")
msg << mxptag("!ELEMENT Motd FLAG=MOTD")
msg << mxptag("!ELEMENT Inv FLAG=Inv")
msg << mxptag("!ELEMENT StoreList Flag=StorList")
msg << mxptag("!ELEMENT GroundObj \"<COLOR Yellow><send href='" + _("get") + " &name;|" +
_("look") + " &name;' hint='#{help}|" +
_("Get") + " &desc;|" + _("Look at") + " &desc;'>\" ATT='name desc'")
msg << mxptag("!ELEMENT InvNormal \"<send href='" + _("drop") + " &name;|" +
_("wield") + " &name;|" +
_("look") + " &name;|" +
_("junk") + " &name;' hint='#{help}|" +
_("Drop") + " &desc;|" +
_("Wield") + " &desc;|" +
_("Look at") + " &desc;|" +
_("Junk") + " &desc;'>\" " +
"ATT='name desc'")
msg << mxptag("!ELEMENT InvContainer \"<send href='" + _("drop") + " &name;|" +
_("wield") + " &name;|" +
_("look") + " &name;|" +
_("look in") + " &name;|" +
_("drink from") + " &name;|" +
_("junk") + " &name;' hint='#{help}|" +
_("Drop") + " &desc;|" +
_("Wield") + " &desc;|" +
_("Look at") + " &desc;|" +
_("Look in") + " &desc;|" +
_("Drink from") + " &desc;|" +
_("Junk") + " &desc;'>\" " +
"ATT='name desc'")
msg << mxptag("!ELEMENT Fountain \"<send href='" + _("drink from") + " &name;|" +
_("look in") + " &name;' hint='#{help}|" +
_("Drink from") + " &desc;|" +
_("Look in") + " &desc;'>\" " +
"ATT='name desc'")
msg << mxptag("!ELEMENT Buy \"<send href='" + _("buy") + " &name " + _("from") + " &merchant;' " +
"hint='#{help}|" +
_("Buy") + " &name;'>\" " +
"ATT='name merchant'")
msg << mxptag("!ELEMENT Player \"<COLOR Cyan><send href='" + _("look") + " &name;|" +
_("kill") + " &name;' hint='#{help}|" +
_("Loot at") + " &name;|" +
_("Kill") + " &name;'>\" " +
"ATT='name'")
msg << mxptag("!ELEMENT NPC \"<COLOR Cyan><send href='" + _("look") + " &name;|" +
_("kill") + " &name;' hint='#{help}|" +
_("Loot at") + " &name;|" +
_("Kill") + " &name;'>\" " +
"ATT='name'")
msg << mxptag("!ELEMENT Monster \"<COLOR Cyan><send href='" + _("kill") + " &name;|" +
_("look") + " &name;' hint='#{help}|" +
_("Kill") + " &name;|" +
_("Look at") + " &name;'>\" " +
"ATT='name'")
msg << mxptag("!ELEMENT Merchant \"<COLOR Cyan><send href='" + _("list") + " &name;|" +
_("look") + " &name;' hint='#{help}|" +
_("List items for sale") + " &name;|" +
_("Look at") + " &name;'>\"" +
"ATT='name'")
msg << mxptag("!ELEMENT Food \"<send href='" + _("eat") + " &name;|" +
_("drop") + " &name;|" +
_("look at") + " &name;' hint='#{help}|" +
_("Eat") + " &desc;|" +
_("Drop") + " &desc;|" +
_("Look at") + " &desc;'>\" " +
"ATT='name desc'")
msg << mxptag("!ELEMENT Corpse \"<send href='" + _("get all corpse") +
"' hint='" + _("Search the corpse") + "'>\"")
msg << mxptag("!ELEMENT EatCorpse \"<send href='" + _("eat corpse") +
"' hint='" + _("Eat the corpse") + "'>\"")
msg << mxptag("!ELEMENT Logo \"<IMAGE URL='http://znmud.com/images/zombienation-concept.gif'>\">")
msg
end
end