Exemplo n.º 1
0
        db.close()


smap = SkillMap()


def shutdown(**kwargs):
    smap.save()


skill_info.connect(smap.show_skill_info)
skills.connect(smap.skills_update)
pre_shutdown.connect(shutdown)

skill_triggers = triggers.create_group('skill', app='skills')
skill_aliases = aliases.create_group('skill', app='skills')
track_shortnames = False


@skill_aliases.exact(pattern="skillsup", intercept=True)
def updateskills(alias):
    gmcp.get_skills()


@skill_aliases.exact(pattern="skills load", intercept=True)
def loadstuff(alias):
    smap.load()


@skill_aliases.exact(pattern="skills save", intercept=True)
def savestuff(alias):
Exemplo n.º 2
0
import time

from sage.signals.gmcp import room
from sage.signals import pre_shutdown
import meta
from maplib import Map
from sage import echo, ansi, send, aliases, triggers, player, delay, loopdelay
import sage

mapper_aliases = aliases.create_group('mapper', app='mapper')
mapper_triggers = triggers.create_group('mapper', app='mapper')
mapdata = Map(meta.path + '/mapdata.json.gz')

def room_info(**kwargs):
    new = False
    room = kwargs['room']
    room.name = room.name.replace("Flying above ","").replace("In the trees above ","")
    if room.id not in mapdata.rooms:
        new = True
    mapdata.add(
            room.id,
            room.name,
            room.area,
            room.environment,
            {int(v):k for k, v in room.exits.items()},
            room.coords,
            room.details,
            room.map,
            new
        )
Exemplo n.º 3
0
    if tracker.confirm_cure('anorexia', trigger.line):
        trigger.gag_prompt=True
    trigger.line.gag()


def echo_aff(signal,affliction):
    sage.echo(ansi.bold_red("ADDED AFFLICTION: %s"%affliction))

def echo_aff_rem(signal,affliction):
    sage.echo(ansi.bold_green("REMOVED AFFLICTION: %s"%affliction).encode('utf-8'))



### chatter
chatter_trigs = triggers.create_group('chatter', app='combat')
chatter_aliases  = aliases.create_group('chatteral', app='combat')

@chatter_aliases.exact('chatteron', enabled=True)
def chatteron(alias):
    sage.echo("Enabling filter for combat chatter")
    chatter_trigs.enable()

@chatter_aliases.exact('chatteroff', enabled=True)
def chatteroff(alias):
    sage.echo("Disabling filter for combat chatter")
    chatter_trigs.disable()

@chatter_trigs.regex(pattern="^([A-Z][a-z]+) takes a drink from .*.$", enabled=True)
def drinkstuff(trigger):
    trigger.gag_prompt=True
    trigger.line.gag()
Exemplo n.º 4
0
        trigger.gag_prompt = True
    trigger.line.gag()


def echo_aff(signal, affliction):
    sage.echo(ansi.bold_red("ADDED AFFLICTION: %s" % affliction))


def echo_aff_rem(signal, affliction):
    sage.echo(
        ansi.bold_green("REMOVED AFFLICTION: %s" % affliction).encode('utf-8'))


### chatter
chatter_trigs = triggers.create_group('chatter', app='combat')
chatter_aliases = aliases.create_group('chatteral', app='combat')


@chatter_aliases.exact('chatteron', enabled=True)
def chatteron(alias):
    sage.echo("Enabling filter for combat chatter")
    chatter_trigs.enable()


@chatter_aliases.exact('chatteroff', enabled=True)
def chatteroff(alias):
    sage.echo("Disabling filter for combat chatter")
    chatter_trigs.disable()


@chatter_trigs.regex(pattern="^([A-Z][a-z]+) takes a drink from .*.$",
Exemplo n.º 5
0

smap = SkillMap()

def shutdown(**kwargs):
    smap.save()



skill_info.connect(smap.show_skill_info)
skills.connect(smap.skills_update)
pre_shutdown.connect(shutdown)


skill_triggers = triggers.create_group('skill', app='skills')
skill_aliases  = aliases.create_group('skill', app='skills')
track_shortnames = False

@skill_aliases.exact(pattern="skillsup", intercept=True)
def updateskills(alias):
    gmcp.get_skills()

@skill_aliases.exact(pattern="skills load", intercept=True)
def loadstuff(alias):
    smap.load()


@skill_aliases.exact(pattern="skills save", intercept=True)
def savestuff(alias):
    smap.save()
Exemplo n.º 6
0
    def ql_info(room, new):
        for line in sage.buffer:
            if line[:-1] == room.name:
                line.output += ansi.grey(' (%s) (%s)' % (room.area, room.id))
                if new:
                    line.output += ansi.grey(' [new]')



    sage.defer_to_prompt(ql_info, room, new)



room_triggers = triggers.create_group('room', app='mapper')
room_aliases  = aliases.create_group('room', app='mapper')
track_shortnames = False

@room_aliases.exact(pattern="imap shorton", intercept=True)
def short_on(alias):
    global track_shortnames
    track_shortnames = True

@room_aliases.exact(pattern="imap save", intercept=True)
def isave(alias):
    itemdata.write_to_db()
    mapdata.write_to_db()

@room_aliases.exact(pattern="imap load", intercept=True)
def iload(alias):
    itemdata.load()
Exemplo n.º 7
0
import sage
from sage.signals.gmcp import room as room_signal
from sage import player, aliases

# Create an alias group for whodat
who_aliases = aliases.create_group('whodat', app='whodat')

# store in the app what our last room id was so we know when we change rooms
last_room = None


def write_players():
    if len(player.room.players) > 0:  # if there are players in the room
        players = ', '.join(player.room.players)  # format players into CSV
        sage.buffer.insert(len(sage.buffer) - 1,
                           'Who: ' + players)  # Insert line above exits in QL


def on_room_update(signal, room):
    def update_players():
        # use of global isn't encouraged, but in this case it was a simple solution
        global last_room

        # we get room events even if we don't change rooms. eg: squinting.
        if player.room.id == last_room:
            return

        last_room = player.room.id
        write_players()

    # Why defer to prompt? Because GMCP data and the actual lines from Achaea don't always come
Exemplo n.º 8
0
                 for k, v in room.exits.items()}, room.coords, room.details,
                room.map, new)
    add_items(**kwargs)

    def ql_info(room, new):
        for line in sage.buffer:
            if line[:-1] == room.name:
                line.output += ansi.grey(' (%s) (%s)' % (room.area, room.id))
                if new:
                    line.output += ansi.grey(' [new]')

    sage.defer_to_prompt(ql_info, room, new)


room_triggers = triggers.create_group('room', app='mapper')
room_aliases = aliases.create_group('room', app='mapper')
track_shortnames = False


@room_aliases.exact(pattern="imap shorton", intercept=True)
def short_on(alias):
    global track_shortnames
    track_shortnames = True


@room_aliases.exact(pattern="imap save", intercept=True)
def isave(alias):
    itemdata.write_to_db()
    mapdata.write_to_db()

Exemplo n.º 9
0
"""
    http://spicerack.github.io/sage/html/quickstart.html
"""

from sage import triggers, aliases, ansi, send
from sage.signals.gmcp import room as room_signal

room_triggers = triggers.create_group('room', app='quickstart')

room_aliases = aliases.create_group('room', app='quickstart')


# interception to False means the original command passes through
@room_aliases.exact(pattern="ql", intercept=False)
def ql(alias):

    # enable the exits trigger
    room_triggers('exits').enable()

    # send to Achaea
    #send('ql')


@room_triggers.regex(
    "^You see (a single exit leading|exits leading) ([a-z, \(\)]+)\.$",
    enabled=False)
def exits(trigger):
    exit_str = trigger.groups[1]
    exit_str = exit_str.replace('and', '')
    exits = [ansi.bold_white(e.strip()) for e in exit_str.split(',')]
    new_str = ', '.join(exits)
Exemplo n.º 10
0
import sage
from sage.signals.gmcp import room as room_signal
from sage import player, aliases

# Create an alias group for whodat
who_aliases = aliases.create_group('whodat', app='whodat')

# store in the app what our last room id was so we know when we change rooms
last_room = None

def write_players():
    if len(player.room.players) > 0:  # if there are players in the room
        players = ', '.join(player.room.players)  # format players into CSV
        sage.buffer.insert(len(sage.buffer) - 1, 'Who: ' + players)  # Insert line above exits in QL


def on_room_update(signal, room):

    def update_players():
        # use of global isn't encouraged, but in this case it was a simple solution
        global last_room

        # we get room events even if we don't change rooms. eg: squinting.
        if player.room.id == last_room:
            return

        last_room = player.room.id
        write_players()

    # Why defer to prompt? Because GMCP data and the actual lines from Achaea don't always come
    # at the same time. To make sure we don't get out of sync, we defer to the prompt when
Exemplo n.º 11
0
    global do_loop
    if player.health.value == 0:
        sage.send('qq')
        return
    if do_loop:
        explr.on_begin()
        explr.scope_it_out()
        explr.room_actions()
        explr.quest_actions()
        explr.attacks()
        explr.other()
        #explr.on_end()
        sage.delay(0.1, action_loop)

xplr_triggers = triggers.create_group('xplr', app='explorer')
xplr_aliases  = aliases.create_group('xplr', app='explorer')
vial_triggers = triggers.create_group('vials', app='explorer')

@xplr_triggers.regex('^You determine that there is a ([a-z]+) lode of ([a-z ]+) here. Approximately ([0-9]+)% has been mined.$', enabled=True)
def xplr_lode_partial(trigger):
    #entry=(type, size, percent, location, area, owner)
    entry=[trigger.groups[1].lower(), trigger.groups[0].lower(), trigger.groups[2],
            player.room.id, player.room.area, time.time(), "NONE"]
    explr.all_mines.append(entry)
    print player.room.id 
    print trigger.line


@xplr_triggers.regex('^You determine that there is a ([a-z]+) lode of ([a-z ]+) here.$', enabled=True)
def xplr_lode(trigger):
    #entry=(type, size, percent, location, area, owner)
Exemplo n.º 12
0
        sage.echo(talker)
        sage.echo(channel)
        response = response + ' ' + val['bot'].ask(text)

        last_response = max(time.time(), last_response)
        time_to_type = len(response) / 5.0
        last_response = last_response + time_to_type
        sage.delay(last_response - time.time(), sage.send, response)


comms.connect(echo_comms)
comms.connect(chatstuff)
pull_comms()

comm_triggers = triggers.create_group('comm', app='communication')
comm_aliases = aliases.create_group('comm', app='communication')


@comm_aliases.startswith(pattern="talkon", intercept=True)
def talkon(alias):
    global talkon
    talkon = True
    sage.echo("Enabling chatter")


@comm_aliases.startswith(pattern="talkoff", intercept=True)
def talkoff(alias):
    global talkon
    talkon = False
    sage.echo("Disabling chatter")
Exemplo n.º 13
0
        sage.echo(re.sub('"','',re.sub('.*, "','',text)))
        sage.echo(talker)
        sage.echo(channel)
        response = response + ' ' + val['bot'].ask(text)

        last_response = max(time.time(), last_response)
        time_to_type = len(response)/5.0
        last_response = last_response + time_to_type
        sage.delay(last_response-time.time(), sage.send, response)

comms.connect(echo_comms)
comms.connect(chatstuff)
pull_comms()

comm_triggers = triggers.create_group('comm', app='communication')
comm_aliases  = aliases.create_group('comm', app='communication')

@comm_aliases.startswith (pattern="talkon", intercept=True)
def talkon(alias):
    global talkon
    talkon = True
    sage.echo("Enabling chatter")

@comm_aliases.startswith (pattern="talkoff", intercept=True)
def talkoff(alias):
    global talkon
    talkon = False
    sage.echo("Disabling chatter")

@comm_aliases.startswith (pattern="comm do ", intercept=True)
def comm_do(alias):
Exemplo n.º 14
0
from __future__ import division
import sage
from sage import player, triggers, echo, aliases
from sage.signals import post_prompt

overwatch = sage.apps.overwatch_utilities.Sipping()
osys = sage.apps.overwatch_utilities

overwatch.balance = player.Balance()
player.sip = player.Balance()

""" Aliases """

sipper_aliases = aliases.create_group('sipper', app='overwatch_sipper', enabled=True)

@sipper_aliases.regex("^oconfig sip(\w+) (\d+)$", enabled=True)
def changeSipPercentage(alias):
	prioset = alias.groups[0]
	priocent = alias.groups[1]
	
	if prioset == "health":
		overwatch.health_sipat = int(priocent)
		osys.system_echo("Health sipping percentage set to " + str(overwatch.health_sipat))
	elif prioset == "mana":
		overwatch.mana_sipat = int(priocent)
		osys.system_echo("Mana sipping percentage set to " + str(overwatch.mana_sipat))
	else:
		osys.system_echo("Invalid sipping type! Health and mana are both valid.")

@sipper_aliases.regex("^hh$", enabled=True)
def toggleSipPriority(alias):
Exemplo n.º 15
0
def connect(**kwargs):
    ic.channel = channel
    ic.nickname = player.name
    reactor.connectTCP(server, port, factory)


def got_names(nicklist):
        nicklist.sort()
        echo('%s members:' % channel)
        echo('-' * 10)
        for nick in nicklist:
            echo(nick)


alias = aliases.create_group('irc', app='irc')


@alias.startswith('it ')
def it(alias):
    ic.say(channel, alias.suffix)


@alias.startswith('itme ')
def itme(alias):
    ic.describe(channel, alias.suffix)


@alias.regex('^pm (\w+) (.*)')
def privmsg(alias):
    target = alias.groups[0]
class Sipping:
    priority = "health"
    health_sipat = 85
    mana_sipat = 65
    use_moss = False
    moss_health_eatat = 65
    moss_mana_eatat = 65
    balance = None
    currently_sipping = False
    last_siptype = "health"

class Statistics:
    latency = 0

""" Global Aliases """
global_aliases = aliases.create_group('global', app='overwatch_utilities', enabled=True)

@global_aliases.regex('^pp$', enabled=True)
def system_pause(alias):
    if Control.paused is True:
        system_echo('System unpaused!')
        Control.paused = False
    else:
        system_echo('System paused!')
        Control.paused = True

@global_aliases.regex('^ostats$', enabled=True)
def system_stats(alias):
    for key, value in Sipping.__dict__.items():
        if not key.startswith("__"):
            system_echo(str(key) + ': ' + str(value))
Exemplo n.º 17
0
    if player.health.value == 0:
        sage.send('qq')
        return
    if do_loop:
        explr.on_begin()
        explr.scope_it_out()
        explr.room_actions()
        explr.quest_actions()
        explr.attacks()
        explr.other()
        #explr.on_end()
        sage.delay(0.1, action_loop)


xplr_triggers = triggers.create_group('xplr', app='explorer')
xplr_aliases = aliases.create_group('xplr', app='explorer')
vial_triggers = triggers.create_group('vials', app='explorer')


@xplr_triggers.regex(
    '^You determine that there is a ([a-z]+) lode of ([a-z ]+) here. Approximately ([0-9]+)% has been mined.$',
    enabled=True)
def xplr_lode_partial(trigger):
    #entry=(type, size, percent, location, area, owner)
    entry = [
        trigger.groups[1].lower(), trigger.groups[0].lower(),
        trigger.groups[2], player.room.id, player.room.area,
        time.time(), "NONE"
    ]
    explr.all_mines.append(entry)
    print player.room.id
Exemplo n.º 18
0
"""
    http://spicerack.github.io/sage/html/quickstart.html
"""

from sage import triggers, aliases, ansi, send
from sage.signals.gmcp import room as room_signal

room_triggers = triggers.create_group('room', app='quickstart')

room_aliases = aliases.create_group('room', app='quickstart')


# interception to False means the original command passes through
@room_aliases.exact(pattern="ql", intercept=False)
def ql(alias):

    # enable the exits trigger
    room_triggers('exits').enable()

    # send to Achaea
    #send('ql')


@room_triggers.regex("^You see (a single exit leading|exits leading) ([a-z, \(\)]+)\.$", enabled=False)
def exits(trigger):
    exit_str = trigger.groups[1]
    exit_str = exit_str.replace('and', '')
    exits = [ansi.bold_white(e.strip()) for e in exit_str.split(',')]
    new_str = ', '.join(exits)
    trigger.line.output = "Exits: " + new_str