def cure_enablers_goldenseal(line, time, backrefs): player.afflictions['anorexia'] = False player.stunned = False player.afflictions['amnesia'] = False player.ate['goldenseal'] = True player.herb_balance = 0 player.herb_lastate = time player.waiting_for_aeon = 0 herbs.goldenseal.inv -= 1 core.enable_trigger('failure_eat_offbal', 'failures') core.triggers_pending_disable.append(['failure_eat_offbal', 'failures']) core.triggers_pending_disable.append(['failure_goldenseal_insomnia', 'failures']) core.disable_trigger('cure_enablers_goldenseal', 'cure_enablers') core.disable_trigger('failure_eating', 'failures') core.disable_trigger('failure_eating_anorexia', 'failures') core.disable_trigger('failure_eating_mickey', 'failures') enable = ( 'dizziness', 'epilepsy', 'impatience', 'shyness', 'stupidity', 'insomnia' ) _enable_cure_triggers(enable) core.call_later(core.config['herb_balance_delay'], _enable_herb_balance)
def cure_enablers_ginseng(line, time, backrefs): player.afflictions['anorexia'] = False player.afflictions['amnesia'] = False player.stunned = False player.ate['ginseng'] = True player.herb_balance = 0 player.herb_lastate = time herbs.ginseng.inv -= 1 player.waiting_for_aeon = 0 core.enable_trigger('failure_eat_offbal', 'failures') core.triggers_pending_disable.append(['failure_eat_offbal', 'failures']) core.disable_trigger('cure_enablers_ginseng', 'cure_enablers') core.disable_trigger('failure_eating', 'failures') core.disable_trigger('failure_eating_anorexia', 'failures') core.disable_trigger('failure_eating_mickey', 'failures') enable = ( 'addiction', 'darkshade', 'haemophilia', 'lethargy', 'scytherus', 'nausea' ) _enable_cure_triggers(enable) core.call_later(core.config['herb_balance_delay'], _enable_herb_balance)
def cure_enablers_kelp(line, time, backrefs): player.afflictions['anorexia'] = False player.stunned = False player.afflictions['amnesia'] = False player.ate['kelp'] = True player.herb_balance = 0 player.herb_lastate = time player.waiting_for_aeon = 0 herbs.kelp.inv -= 1 core.enable_trigger('failure_eat_offbal', 'failures') core.triggers_pending_disable.append(['failure_eat_offbal', 'failures']) core.disable_trigger('cure_enablers_kelp', 'cure_enablers') core.disable_trigger('failure_eating', 'failures') core.disable_trigger('failure_eating_anorexia', 'failures') core.disable_trigger('failure_eating_mickey', 'failures') enable = ( 'asthma', 'clumsiness', 'healthleech', 'hypochondria', 'sensitivity', 'weariness' ) _enable_cure_triggers(enable) core.call_later(core.config['herb_balance_delay'], _enable_herb_balance)
def eat(self): if self.inv > 0: core.write('eat ' + self.name) else: core.enable_trigger('herbs_outp', 'herbs') core.write('outp ' + self.name) core.write('eat ' + self.name)
def sileris_balance(line, time, backrefs): player.waiting_for_sileris = 1 player.sileris_last = time herbs.herbs['sileris'].inv -= 1 core.disable_trigger('sileris_balance', 'balances') core.disable_trigger('failure_sileris_slickness', 'failures') core.enable_trigger('ondef_sileris', 'ondef')
def writhe_event(now): if queues.writhe_queue.is_empty() == False: if player.afflictions['sleep'] or \ player.stunned or \ player.afflictions['amnesia']: return # have to be on balance to writhe from impale if player.afflictions['impale'] and player.balance is False: return if player.writhe_balance == 1: core.enable_trigger('failure_writhe', 'failures') enable = ( 'impale', 'webbed_roped', 'transfixed', #'bound' ) #if player.combat_class.lower() == 'bard': # enable.append('dwinnu') for trigger in enable: core.enable_trigger('cure_enablers_' + trigger, 'cure_enablers') core.write(queues.writhe_queue.fire()) player.writhe_balance = .5 player.writhe_lastfire = now elif player.writhe_balance == .5: if now - player.writhe_lastfire > 2: player.writhe_balance = 1 # just a catchall elif player.writhe_balance == 0: if now - player.writhe_lastfire > 8: player.writhe_balance = 1
def bleed(line, time, backrefs): if core.is_paused() \ or core.aeon_mode: return bleed = int(backrefs[0]) if bleed >= player.max_health: return global clotting, clot_num if player.afflictions['haemophilia'] or \ player.afflictions['aeon'] or \ player.afflictions['sleep'] or \ player.stunned: return clots = (bleed - 61) / 20 mana_cost = clots * 60 h = player.health_percentage / 100.0 m = (player.mana - mana_cost) / float(player.max_mana) d = (bleed / float(player.max_health)) * 5 clot_factor = 1 / (1 + exp((-(m * 2.5) + (h / 2.0) + 1) * (5 - d))) num_clots = round(clot_factor * clots) if num_clots > 0: clotting = True clot_num = num_clots - 1 core.enable_trigger('clot_tick', 'general_afflictions') core.enable_trigger('no_clot', 'general_afflictions') core.write('clot', int(num_clots))
def restore_handling(line, time, backrefs): broken = ['cures_leftarm_lvl1', 'cures_rightarm_lvl1', 'cures_leftleg_lvl1', 'cures_rightleg_lvl1'] if player.restoring is True: for broke in broken: core.enable_trigger(broke, 'cures') core.disable_trigger('survival_restoration', 'survival') player.restoring = False
def focus_event(now): if player.ableto_focus is False \ or player.allow_focus is False: return if now - player.focus_lastfire > 3: player.focus_balance = 1 if player.focus_balance == 1: if player.fire_focus: if player.afflictions['sleep'] \ or player.stunned \ or (player.afflictions['impatience'] == True and player.focus_on_impatience == False) \ or player.afflictions['amnesia']: return core.enable_trigger('survival_focusing', 'survival') player.focus_balance = .5 player.focus_lastfire = now core.write('focus') elif player.focus_balance == .5: if now - player.focus_lastfire > .5: player.focus_balance = 1 elif player.focus_balance == 0: if now - player.focus_lastfire > 3: player.focus_balance = 1 core.enable_trigger('failure_focus_offbal', 'failures')
def sileris_event(now): player.sileris_event_last = now if player.keepup['sileris']: if player.afflictions['slickness'] \ or player.afflictions['sleep'] \ or player.stunned \ or player.afflictions['amnesia']: return if player.defences['sileris'] != 1 \ and player.waiting_for_sileris == 1: if now - player.sileris_last > 5.6 + player.latency: if player.multi_flay: player.waiting_for_sileris = 0 player.defences['sileris'] = 1 player.multi_flay = False else: player.waiting_for_sileris = 0 player.defences['sileris'] = 0 if player.defences['sileris'] == 0 \ and player.waiting_for_sileris == 0: if herbs.herbs['sileris'].inv <= 0: if player.is_hindered() is False and player.can_outr(): if now - player.sileris_lastoutr > 1: player.sileris_lastoutr = now herbs.herbs['sileris'].outr() else: core.enable_trigger('sileris_balance', 'balances') core.enable_trigger('failure_sileris_slickness', 'failures') player.waiting_for_sileris = .5 core.write('apply sileris')
def cure_enablers_lobelia(line, time, backrefs): player.afflictions['anorexia'] = False player.stunned = False player.afflictions['amnesia'] = False player.ate['lobelia'] = True player.herb_balance = 0 player.herb_lastate = time player.waiting_for_aeon = 0 herbs.lobelia.inv -= 1 core.enable_trigger('failure_eat_offbal', 'failures') core.triggers_pending_disable.append(['failure_eat_offbal', 'failures']) core.disable_trigger('cure_enablers_lobelia', 'cure_enablers') core.disable_trigger('failure_eating', 'failures') core.disable_trigger('failure_eating_anorexia', 'failures') core.disable_trigger('failure_eating_mickey', 'failures') enable = ( 'agoraphobia', 'claustrophobia', 'loneliness', 'masochism', 'reckless', 'vertigo' ) _enable_cure_triggers(enable) core.call_later(core.config['herb_balance_delay'], _enable_herb_balance)
def bcure(cure): now = time.time() core.debug("registering blackout cure " + cure) player.waiting_for_aeon = 0 if player.fire_focus and player.focus_balance == .5: core.debug("fired focus in blackout") player.fire_focus = False player.focus_balance = 0 player.actions['focus'] = True core.enable_trigger('focus_balance', 'balances') ate = False for herb in player.blackout_ate: if player.blackout_ate[herb] == True: ate = True ate_herb = herb core.debug("Ate " + ate_herb + " in blackout") player.blackout_ate[herb] = False if ate: player.herb_balance = 0 player.herb_lastate = now player.ate[ate_herb] = True herbs.herbs[ate_herb].inv -= 1 cures.cure(cure)
def focus(line, time, backrefs): player.fire_focus = True if player.focus_balance == 1: core.write('focus') core.enable_trigger('survival_focusing', 'survival') core.enable_trigger('failure_focus_offbal', 'failures') player.focus_balance = 0.5 player.focus_lastfire = time
def toggle_vault(line, time, backrefs): if player.keepup['riding']: player.keepup['riding'] = False free_queue.add('riding', 'dismount;order ' + player.mount + ' follow me') action_queue.remove_by_name('riding') else: player.keepup['riding'] = True core.enable_trigger('ondef_riding', 'ondef') input.run_events(time)
def cure_enablers_moss_2(line, time, backrefs): player.moss_balance = 0 player.moss_lastfire = time core.enable_trigger('moss_balance', 'balances') core.disable_trigger('cure_enablers_moss', 'cure_enablers') core.disable_trigger('failure_moss', 'failures') core.disable_trigger('failure_eating', 'failures') core.disable_trigger('failure_eating_anorexia', 'failures') core.disable_trigger('failure_eating_mickey', 'failures')
def cure_enablers_elixirs(line, time, backrefs): player.afflictions['anorexia'] = False player.stunned = False player.afflictions['amnesia'] = False player.actions['asip'] = True player.asip_balance = 0 player.waiting_for_aeon = 0 core.disable_trigger('cure_enablers_elixirs', 'cure_enablers') core.enable_trigger('asip_balance', 'balances')
def preempt_clot(line, time, backrefs): global auto_clotting if core.is_paused() \ or core.aeon_mode: return if player.mana_percentage > 55 and player.afflictions['haemophilia'] is False and player.afflictions['aeon'] is False: core.enable_trigger('clot_tick', 'general_afflictions') core.enable_trigger('no_clot', 'general_afflictions') auto_clotting = True core.write('clot')
def cure_enablers_moss(line, time, backrefs): player.afflictions['anorexia'] = False player.stunned = False player.afflictions['amnesia'] = False player.moss_balance = 0 player.waiting_for_aeon = 0 herbs.moss.inv -= 1 core.disable_trigger('cure_enablers_moss', 'cure_enablers') core.enable_trigger('moss_balance', 'balances') core.disable_trigger('failure_eating_anorexia', 'failures') core.disable_trigger('failure_eating_mickey', 'failures')
def toggle_heartseed(line, time, backrefs): if player.allow_heartseed: core.echo("Disabling Heartseed Trigger for 5 Minutes") player.allow_heartseed = False core.disable_trigger('elementalism_heartseed', 'elementalism') player.heartseed_timer = Timer(300, reenable_heartseed) player.heartseed_timer.start() else: core.echo("Enabling Heartseed Trigger") player.allow_heartseed = True player.heartseed_timer.cancel() core.enable_trigger('elementalism_heartseed', 'elementalism')
def focus(line, time, backrefs): core.disable_trigger('survival_focusing', 'survival') core.disable_trigger('failure_focus_offbal', 'failures') core.enable_trigger('focus_balance', 'balances') cures.enable_focusable_cures() player.focus_balance = 0 player.waiting_for_aeon = 0 player.focus_lastfire = time player.fire_focus = False player.actions['focus'] = True player.focus_on_impatience = False player.afflictions['impatience'] = False
def cure_enablers_kola(line, time, backrefs): player.afflictions['anorexia'] = False player.stunned = False player.afflictions['amnesia'] = False player.ate['kola'] = True herbs.kola.inv -= 1 player.waiting_for_aeon = 0 # kola doesn't take herb balance core.disable_trigger('cure_enablers_kola', 'cure_enablers') core.disable_trigger('failure_eating', 'failures') core.disable_trigger('failure_eating_anorexia', 'failures') core.disable_trigger('failure_eating_mickey', 'failures') core.enable_trigger('ondef_kola', 'ondef')
def cure_enablers_skullcap(line, time, backrefs): player.afflictions['anorexia'] = False player.stunned = False player.afflictions['amnesia'] = False player.ate['skullcap'] = True herbs.skullcap.inv -= 1 player.waiting_for_aeon = 0 # skullcap doesn't take herb balance core.disable_trigger('cure_enablers_skullcap', 'cure_enablers') core.disable_trigger('failure_eating', 'failures') core.disable_trigger('failure_eating_anorexia', 'failures') core.disable_trigger('failure_eating_mickey', 'failures') core.enable_trigger('ondef_deathsight', 'ondef')
def smoke_event(now): ''' Thoughts... Wouldn't it be cool if pipes were completely independent of eachother? That each pipe had its own tracking, handling, firing, and reloading? A pipe class with each pipe being an instance of? It would... ''' if queues.smoke_queue.is_empty() == False: if now - queues.smoke_queue.lastfire > player.latency: if player.afflictions['asthma'] is False and \ player.afflictions['sleep'] is False and \ player.stunned is False and \ player.afflictions['amnesia'] is False: pipe = queues.smoke_queue.fire() smoke = False player.puffs.append(pipe) if pipe == 'elm' \ and (player.elm_lit or player.arty_elm): smoke = player.elm_pipe elif pipe == 'valerian' \ and (player.valerian_lit or player.arty_valerian): smoke = player.valerian_pipe elif pipe == 'skullcap' \ and (player.skullcap_lit or player.arty_skullcap): if player.skullcap_puffs <= 0: return smoke = player.skullcap_pipe if smoke: core.enable_trigger('smoke_puff', 'balances') core.enable_trigger('failure_smoking', 'failures') core.enable_trigger('failure_asthma_smoking', 'failures') core.enable_trigger('failure_pipe_out', 'failures') core.write('smoke ' + smoke)
def smoke_puff(line, time, backrefs): player.afflictions['asthma'] = False core.call_later(1, _disable_smokepuff_trigger) core.disable_trigger('failure_smoking', 'failures') core.disable_trigger('failure_asthma_smoking', 'failures') core.disable_trigger('failure_pipe_out', 'failures') player.actions['smoke'] = True player.waiting_for_aeon = 0 if len(player.puffs) > 0: pipe = player.puffs.pop() if pipe == 'elm': player.elm_puffs = player.elm_puffs - 1 player.elm_lastfire = time smoke_queue.remove_by_name('elm') cures = ( 'aeon', 'deadening', 'hellsight', 'madness' ) _enable_cure_triggers(cures) if player.pipe_reloading == 'elm': core.line = core.line + ansi.colorize("[grey] ([magenta]purging elm[grey])[]") else: core.line = core.line + ansi.color['grey'] + " (" + str(player.elm_puffs) + " elm)" + ansi.color['default'] elif pipe == 'skullcap': core.enable_trigger('failure_rebounding', 'failures') player.skullcap_puffs = player.skullcap_puffs - 1 player.skullcap_lastfire = time smoke_queue.remove_by_name('skullcap') smoke_queue.remove_by_name('rebounding') player.rebounding_pending = True if player.pipe_reloading == 'skullcap': core.line = core.line + ansi.colorize("[grey] ([magenta]purging skullcap[grey])[]") else: core.line = core.line + ansi.color['grey'] + " (" + str(player.skullcap_puffs) + " skullcap)" + ansi.color['default'] elif pipe == 'valerian': player.valerian_puffs = player.valerian_puffs - 1 player.valerian_lastfire = time smoke_queue.remove_by_name('valerian') cures = ( 'disfigurement', 'manaleech', 'slickness' ) _enable_cure_triggers(cures) if player.pipe_reloading == 'valerian': core.line = core.line + ansi.colorize("[grey] ([magenta]purging valerian[grey])[]") else: core.line = core.line + ansi.color['grey'] + " (" + str(player.valerian_puffs) + " valerian)" + ansi.color['default']
def simultaneity(line, time, backrefs): if player.combat_class not in ('magi', 'priest'): return core.enable_trigger('ondef_air', 'ondef') core.enable_trigger('ondef_water', 'ondef') core.enable_trigger('ondef_fire', 'ondef') core.enable_trigger('ondef_earth', 'ondef') if player.combat_class == 'priest': core.enable_trigger('ondef_spirit', 'ondef') action_queue.add('simultaneity', 'simultaneity', 387) input.run_events(time)
def shatter_strike(line, time, backrefs): triggers = ( 'limb_breaks_leftarm_lvl2', 'limb_breaks_leftarm_lvl3', 'limb_breaks_rightarm_lvl2', 'limb_breaks_rightarm_lvl3', 'limb_breaks_leftleg_lvl2', 'limb_breaks_leftleg_lvl3', 'limb_breaks_rightleg_lvl2', 'limb_breaks_rightleg_lvl3', ) for trigger in triggers: core.enable_trigger(trigger, 'limb_breaks') cures.ai['delta_check'] = True
def parry_regex_blademaster(line, time, backrefs): if cures.lifevision: return if 'right' in backrefs: if 'legs' in line: parry.strike('right leg') elif 'arms' in line: parry.strike('right arm') elif 'left' in backrefs: if 'legs' in line: parry.strike('left leg') elif 'arms' in line: parry.strike('left arm') core.enable_trigger('parrying_parry_message', 'parrying')
def toggle_retardation_mode(line, time, backrefs): if core.retardation_mode: core.disable_alias('retardation_cure', 'sage_internal_commands') core.disable_alias('retardation_autocure', 'sage_internal_commands') core.enable_trigger('symptoms_aeon', 'symptoms') core.echo("Disabling retardation mode") core.retardation_mode = False core.aeon_mode = False else: core.enable_alias('retardation_autocure', 'sage_internal_commands') core.enable_alias('retardation_cure', 'sage_internal_commands') core.disable_trigger('symptoms_aeon', 'symptoms') core.echo("Enabling retardation aeon mode") core.retardation_mode = True core.aeon_mode = True
def parry_compass_slash(line, time, backrefs): if cures.lifevision: return if backrefs[0] == 'northern': parry.strike('head') elif backrefs[0] == 'southern': parry.strike('torso') elif backrefs[0] == 'southwestern': parry.strike('right leg') elif backrefs[0] == 'southeastern': parry.strike('left leg') elif backrefs[0] == 'western': parry.strike('right arm') elif backrefs[0] == 'eastern': parry.strike('left arm') core.enable_trigger('parrying_parry_message', 'parrying')
def parry_regex_strike(line, time, backrefs): if cures.lifevision: return if 'right arm' in backrefs: parry.strike('right arm') elif 'left arm' in backrefs: parry.strike('left arm') elif 'right leg' in backrefs: parry.strike('right leg') elif 'left leg' in backrefs: parry.strike('left leg') elif 'head' in backrefs: parry.strike('head') elif 'torso' in backrefs: parry.strike('torso') core.enable_trigger('parrying_parry_message', 'parrying')