def start(action, element): channels_up = [char.status(e + '_channel') for e in char.available_elements()].count(True) if (channels_up < 3 and char.skill_available('simultaneity') and actions.simultaneity.possible()): p.act(actions.simultaneity) else: p.act(actions.open_channel, element) p.finish_action(action)
def on_defence_list_captured(action, defences): if char.skill_available("channel", "elementalism"): action.state = "capturing_channel_list" if actions.channel_list.possible(): p.act(actions.channel_list) else: p.echo("System initialization failed because channel list couldn't be received.") p.finish_action(action) else: action.finish() p.finish_action(action)
def choose_offensive_action(target): if char.race == 'Dragon': return (actions.gut, target) elif char.class_ == 'Sylvan': return (actions.thornrend if char.status('viridian') else actions.firelash, target) elif char.class_ == 'Serpent': if char.skill_available('garrote'): return (actions.garrote, target) else: assert char.skill_available('bite') venom = 'sumac' if not char.skill_available('camus', 'venom') else 'camus' return (actions.venom_bite, venom, target) elif char.class_ == 'Shaman': return (actions.curse, 'bleed', target) elif char.class_ == 'Blademaster': return (actions.drawslash, target) elif char.class_ == 'Alchemist': return (actions.educe_iron, target) return None
def choose_defensive_action(): if char.skill_available('reflection'): return (actions.reflection, 'me') return None