def run_away(direction): if direction == "": direction = choose_direction() global run_back_direction run_back_direction = opposite_direction[direction] eqbal(f"stand;backflip {direction}")
def backflip(direction): if direction == "": exits = list(s.room_info.exits.keys()) if len(exits) == 0: c.echo("NO EXITS TO BACKFLIP!!!!") c.echo("NO EXITS TO BACKFLIP!!!!") return direction = random.choice(exits) eqbal(f"stand;backflip {direction}")
def make_bomb(bomb_type=""): if bomb_type == "": c.echo(BOMB_HELP) elif "concussion".startswith(bomb_type.lower()): eqbal(f"stand;outr 1 iron;construct concussion bomb") elif "butterfly".startswith(bomb_type.lower()): eqbal(f"stand;outr 1 iron;construct butterfly bomb") elif "smoke".startswith(bomb_type.lower()): eqbal(f"stand;outr 1 iron;construct smoke bomb") elif "web".startswith(bomb_type.lower()): eqbal(f"stand;outr 1 rope;construct web bomb") elif "dust".startswith(bomb_type.lower()): eqbal(f"stand;outr 1 diamonddust;construct dust bomb")
def throw_bomb(bomb_type, direction): if direction == "": direction = "at ground" c.echo(f"throw_bomb type: {bomb_type} dir: {direction}") if bomb_type == "": c.echo(THROW_BOMB_HELP) elif bomb_type.startswith("c"): eqbal(_throw_bomb("concussionbomb", direction)) elif bomb_type.startswith("b"): eqbal(_throw_bomb("butterflybomb", direction)) elif bomb_type.startswith("s"): eqbal(_throw_bomb("smokebomb", direction)) elif bomb_type.startswith("w"): eqbal(_throw_bomb("webbomb", direction)) elif bomb_type.startswith("d"): eqbal(_throw_bomb("dustbomb", direction)) else: c.echo(f"HMMMMM???? throw_bomb type: {bomb_type} dir: {direction}")
def sear(matches): if not matches[0]: eqbal(f"angel sear &tar") elif matches[0] in { "n", "ne", "e", "se", "s", "sw", "w", "nw", "u", "d", "in", "out", }: eqbal(f"stand;angel sear icewall {matches[0]}") else: eqbal(f"angel sear {matches[0]}")
def check_defences(matches): eqbal("def") c.add_temp_trigger("defences_trigger", defences_trigger)
def relax(defence, delay=5): auto_defences([defence], "off") timers.add(f"turnon_{defence}", lambda: auto_defences([defence], "on"), 5) eqbal(f"relax {defence}")
# these will be setup and kept up when we need to fight fighting_defs = { "kola", "temperance", "speed", "levitating", "poisonresist", "insulation", "fangbarrier", } defence_info = { "preachblessing": lambda: do_nothing, "boartattoo": lambda: eqbal("touch boar"), "mosstattoo": lambda: eqbal("touch moss"), "deathsight": lambda: send("outr skullcap;eat skullcap"), # "deathsight" : lambda: eqbal("astralvision"), # "lifevision" : lambda: eqbal("astralvision"), "constitution": lambda: echo("Missing CONSTITUTION"), "toughness": lambda: echo("Missing TOUGHNESS"), "resistance": lambda: echo("Missing RESISTANCE"), "mindseye": lambda: eqbal("touch mindseye"), "deafness": lambda: curebal("hawthorn"), "blindness": lambda: curebal("bayberry"), "kola": lambda: curebal("kola"), "temperance": lambda: curebal("frost"), "speed": lambda: curebal("speed"), "levitating": lambda: curebal("levitation"), "poisonresist": lambda: curebal("venom"),
def somersault(direction): if direction == "": exits = list(s.room_info.exits.keys()) direction = random.choice(exits) eqbal(f"stand;somersault {direction}")
def backhandspring(direction): if direction == "": exits = list(s.room_info.exits.keys()) direction = random.choice(exits) eqbal(f"stand;backhandspring {s.target} {direction}")
# someone (probably my target) is shielded! lambda m: raze_target(m[0]), ), ( r"^(.*)'s aura of weapons rebounding disappears.$", # someone (probably my target) is shielded! lambda m: stop_raze(m[0]), ), ] c.add_triggers(shielding_triggers) weaponmastery_aliases = [ ( "^m$", "stand;combination &tar slice smash", lambda m: eqbal("stand;combination &tar slice smash"), ), ( "^ra$", "stand;combination &tar raze smash mid", lambda m: eqbal("stand;combination &tar raze smash mid"), ), ( "^sh$", "stand;shieldstrike &tar high", lambda m: eqbal("stand;shieldstrike &tar high"), ), ( "^sm$", "stand;shieldstrike &tar mid", lambda m: eqbal("stand;shieldstrike &tar mid"),
def generosity(): auto_defences(["selfishness"], "off") timers.add(f"turnon_selfish", lambda: auto_defences(["selfishness"], "on"), 10) eqbal("generosity")
from achaea.basic import eqbal from achaea.defences import basic_defs from achaea.state import s from client import c, send chivalry_basic_defs = {"weathering", "gripping"} basic_defs.update(chivalry_basic_defs) chivalry_aliases = [ ("^bl (.*)$", "block dir", lambda m: eqbal(f"stand;block m[0]")), ] c.add_aliases("ab_chivalry", chivalry_aliases)
kaido_basic_defs = {"weathering", "vitality", "toughness"} basic_defs.update(kaido_basic_defs) def kai_trance(new_state): if new_state == "on": eqbal("kai trance") else: eqbal("break trance") kaido_aliases = [ ( "^regen(?: (.+))?$", "regeneration [on]/off", lambda matches: eqbal( f"regeneration {matches[0] or 'on'};boost regeneration"), ), ( "^tr(?: (.+))?$", "transmute 300/#", lambda matches: eqbal(f"transmute {matches[0] or '300'}", prepend=True ), ), ( "^nu$", "numb", lambda matches: eqbal(f"numb"), ), ( "^kt(?: (.+))?$", "kai trance [on]/off",
def kai_trance(new_state): if new_state == "on": eqbal("kai trance") else: eqbal("break trance")
def pilgrimage(matches): if matches[0]: eqbal(f"perform pilgrimage {matches[0]}") else: eqbal("perform rite of pilgrimage")
from achaea.basic import eqbal from achaea.state import s def pilgrimage(matches): if matches[0]: eqbal(f"perform pilgrimage {matches[0]}") else: eqbal("perform rite of pilgrimage") devotion_aliases = [ ( "^hh(?: (.+))?$", "perform hands []", lambda matches: eqbal(f"perform hands {matches[0] or ''}"), ), ( "^part (.+)$", "perform truth", lambda m: eqbal(f"perform parting {m[0]}"), ), ( "^truth$", "perform truth", lambda _: eqbal("perform truth"), ), ("^insp$", "perform inspiration", lambda matches: eqbal("perform inspiration")), ( "^bliss(?: (.+))?$",
def raze_target(shielder): if shielder == s.target: eqbal(f"stand;raze {s.target}", prepend=True)
from client import c, echo from achaea.basic import eqbal enchantment_aliases = [ ("iw (.*)", "icewall dir", lambda m: eqbal(f"point ench/icewall {m[0]}")), ("fl (.*)", "firelash dir", lambda m: eqbal(f"point ench/firelash at {m[0]}")), ] c.add_aliases("enchantment", enchantment_aliases)
rebukes: chaos - need 3 verses - hallucinations darkness - 2 verses - paranoia evil - 3 verses - masochism "{\"type\": \"Char.Vitals\", \"data\": {\"hp\": \"4843\", \"maxhp\": \"4843\", \"mp\": \"4150\", \"maxmp\": \"4150\", \"ep\": \"19265\", \"maxep\": \"19265\", \"wp\": \"15800\", \"maxwp\": \"15800\", \"nl\": \"49\", \"bal\": \"1\", \"eq\": \"1\", \"string\": \"H:4843/4843 M:4150/4150 E:19265/19265 W:15800/15800 NL:49/100 \", \"charstats\": [\"Bleed: 0\", \"Rage: 0\", \"Angelpower: 4767\", \"Devotion: 97%\", \"conviction: 10\", \"prayer_length: 0\", \"Prayer: Yes\"]}}"] """ pass zeal_aliases = [ ( "^rwill(?: (.+))?$", "recite will ?/me", lambda m: eqbal(f"recite will {m[0] or 'me'}"), ), ( "^rend(?: (.+))?$", "recite endurance ?/me", lambda m: eqbal(f"recite endurance {m[0] or 'me'}"), ), ( "^att(?: (.+))?$", "recite attend ?/me", lambda m: eqbal(f"recite attend {m[0] or '&tar'}"), ), ( "^rfire(?: (.+))?$", "recite fire ?/me", lambda m: eqbal(f"recite fire {m[0] or 'me'}"),
from achaea.basic import eqbal from achaea.defences import auto_defences from client import c, send from client.timers import timers def generosity(): auto_defences(["selfishness"], "off") timers.add(f"turnon_selfish", lambda: auto_defences(["selfishness"], "on"), 10) eqbal("generosity") survival_aliases = [ ("^self$", "selfishness", lambda m: auto_defences(["selfishness"], "on")), ("^gener$", "generosity", lambda m: generosity()), ("^eg$", "enter grate", lambda m: eqbal("enter grate")), ] c.add_aliases("ab_survival", survival_aliases)
from client import c, send from achaea.basic import eqbal from achaea.state import s tarot_aliases = [ ("^sun$", "fling sun at ground", lambda _: eqbal("fling sun at ground")), ( "^emp(?: (.+))?$", "fling emperor at []/t", lambda matches: eqbal(f"fling emperor at {matches[0] or s.target}"), ), ( "^magi(?: (.+))?$", "fling magician at []/me", lambda matches: eqbal(f"fling magician at {matches[0] or 'me'}"), ), ( "^priest(?: (.+))?$", "fling priestess at []/me", lambda matches: eqbal(f"fling priestess at {matches[0] or 'me'}"), ), ( "^fool(?: (.+))?$", "fling fool at []/me", lambda matches: eqbal(f"fling fool at {matches[0] or 'me'}"), ), ( "^fchar$", "fling chariot at ground", lambda matches: eqbal(f"fling chariot at ground"),
"sw", "w", "nw", "u", "d", "in", "out", }: eqbal(f"stand;angel sear icewall {matches[0]}") else: eqbal(f"angel sear {matches[0]}") spirituality_aliases = [ ("^ma$", "assist;smite t", lambda matches: eqbal(f"stand;assist {assisted};smite &tar")), ("^m$", "smite t", lambda matches: eqbal(f"stand;smite &tar")), ("^cham$", "smite t chasten t mind", lambda _: eqbal(f"smite &tar chasten mind")), ( "^chab$", "smite t chasten t body", lambda _: send(f"stand;smite &tar chasten body"), ), ( "^pchab$", "penance;smite t chasten t body", lambda _: eqbal(f"stand;recite penance &tar;smite &tar chasten body"), ), ( "^shine(?: (.+))?$",
def wish(item): eqbal(f"stand;get 200 gold from pack;wish for 10 {item}")
from achaea.basic import eqbal from achaea.state import s from client import c, echo, send s.bashing_attack = lambda _: eqbal(f"stand;combo {s.target} sdk ucp ucp") tekura_aliases = [ ( "^ma(?: (.+))?$", "sdk ucp ucp []/t", lambda matches: eqbal(f"stand;assist rino;combo &tar sdk ucp ucp"), ), ( "^m(?: (.+))?$", "sdk ucp ucp []/t", s.bashing_attack, ), ( "^ww(?: (.+))?$", "wwk ucp ucp []/t", lambda matches: eqbal(f"stand;combo {matches[0] or s.target} wwk ucp ucp"), ), ( "^jk(?: (.+))?$", "jpk palmstrike palmstrike []/t", lambda matches: eqbal(f"stand;combo {matches[0] or s.target} jpk pmp pmp;drs"), ), ( "^la(?: (.+))?$", "snk hfp hfp left []/t", lambda matches: eqbal(
def _throw_dagger(target, venom): eqbal(f"stand;get dagger;throw dagger at {target} {venom}")
from client import c, send from achaea.basic import eqbal from achaea.state import s runelore_aliases = [ ( "^uruz$", "sketch uruz on ground", lambda matches: eqbal(f"sketch uruz on ground"), ), ( "^jera(?: (.+))?$", "sketch jera on me/*", lambda matches: eqbal(f"sketch jera on {matches[0] or 'me'}"), ), ( "^algiz(?: (.+))?$", "sketch algiz on me/*", lambda matches: eqbal(f"sketch algiz on {matches[0] or 'me'}"), ), ] c.add_aliases("ab_runelore", runelore_aliases)
def juggle_daggers(): eqbal( f"stand;get dagger;get dagger;get dagger;unwield left;juggle dagger dagger dagger;wield blackjack" )
def wield(hand_name, item_name): eqbal(f"wield {hand_name} {item_name}")
def balancing(state): eqbal(f"stand;balancing {state}")