nakedmudv3.3/
nakedmudv3.3/lib/
nakedmudv3.3/lib/logs/
nakedmudv3.3/lib/misc/
nakedmudv3.3/lib/players/
nakedmudv3.3/lib/txt/
nakedmudv3.3/lib/world/
nakedmudv3.3/lib/world/examples/
nakedmudv3.3/lib/world/examples/mproto/
nakedmudv3.3/lib/world/examples/oproto/
nakedmudv3.3/lib/world/examples/reset/
nakedmudv3.3/lib/world/examples/rproto/
nakedmudv3.3/lib/world/examples/trigger/
nakedmudv3.3/lib/world/limbo/
nakedmudv3.3/lib/world/limbo/room/
nakedmudv3.3/lib/world/limbo/rproto/
nakedmudv3.3/src/alias/
nakedmudv3.3/src/char_vars/
nakedmudv3.3/src/editor/
nakedmudv3.3/src/example_module/
nakedmudv3.3/src/help/
nakedmudv3.3/src/set_val/
nakedmudv3.3/src/socials/
nakedmudv3.3/src/time/
################################################################################
#
# cmd_misc.c
#
# a collection of miscellaneous commands that come with NakedMud(tm)
#
################################################################################
from mud import *
from hooks import *
from mudsys import add_cmd
import event, mudsys


def cmd_stop(ch, cmd, arg):
    '''stop performing the character\'s current action'''
    if not ch.isActing():
        ch.send("But you're not currently performing an action!\r\n")
    else:
        ch.interrupt()

def cmd_clear(ch, cmd, arg):
    '''clear the screen'''
    ch.send_raw("\033[H\033[J")

def event_delayed_cmd(ch, filler, cmd):
    '''used to perform delayed commands'''
    ch.act(cmd, True)

def cmd_delay(ch, cmd, arg):
    '''Perform a command, but delay its execution by a couple seconds'''
    try:
        secs, to_delay = parse_args(ch, True, cmd, arg, "double string")
    except: return

    if secs < 1:
        ch.send("You can only delay commands for positive amounts of time.")
    else:
        ch.send("You delay '%s' for %.2f seconds" % (to_delay, secs))
        event.start_event(ch, secs, event_delayed_cmd, None, to_delay)

def cmd_motd(ch, cmd, arg):
    '''Displays the MOTD to the character'''
    ch.page(get_motd())

def cmd_save(ch, cmd, arg):
    '''save the character'''
    mudsys.do_save(ch)
    ch.send("Saved.")

def cmd_quit(ch, cmd, arg):
    '''quit the game'''
    log_string(ch.name + " has left the game.")
    mudsys.do_save(ch)
    mudsys.do_quit(ch)



################################################################################
# add our commands
################################################################################
add_cmd("stop",  None, cmd_stop,    "sitting", "flying", "player", True,  False)
add_cmd("clear", None, cmd_clear,"unconscious", "flying", "player", True,  False)
add_cmd("delay", None, cmd_delay,  "sleeping", "flying", "player", True,  False)
add_cmd("motd",  None, cmd_motd, "unconscious", "flying", "player", False, False)
add_cmd("save",  None, cmd_save,   "sleeping", "flying", "player", False, False)
add_cmd("quit",  None, cmd_quit,   "sleeping", "flying", "player", False, True)