def __init__(self, realm, afftracker): self.ready = True self.realm = realm self.afftracker = afftracker self.priority = AfflictionPriority('daegger', realm.name, realm) self.priority.load_priorities('default') self.toxin = ''
class EvileyePriorityList(EvileyeCombo): def __init__(self, realm, affliction_tracker): EvileyeCombo.__init__(self,realm, affliction_tracker) self.priority_manager = AfflictionPriority('evileye',realm.factory.name, realm) self.priority_manager.load_priorities('default') self.tracker.apply_priorities(self.priority_manager.get_priorities()) @property def aliases(self): #return [self.load_priorities] return [self.load_priorities]+EvileyeCombo.aliases.fget(self) @binding_alias('^ee priority (\w+)$') def load_priorities(self,match,realm): group=match.group(1) realm.cwrite('Loading evileye priority group %s'%group) realm.send_to_mud=False self.priority_manager.load_priorities(group) self.tracker.apply_priorities(self.priority_manager.get_priorities()) def get_combo(self, target): if self.breacher.get_warded(target): affs=self.priority_manager.get_afflictions(self.tracker.tracker(target), 1) return 'deadeyes %s breach %s'%(target, affs[0]) else: affs=self.priority_manager.get_afflictions(self.tracker.tracker(target), 2) if len(affs)==2: return 'deadeyes %s %s %s'%(target, affs[0],affs[1]) elif len(affs)==1: return 'stare %s %s'%(target, affs[0]) else: return ''
def __init__(self, realm, afftracker): self.ready=True self.realm=realm self.afftracker=afftracker self.priority=AfflictionPriority('daegger',realm.name,realm) self.priority.load_priorities('default') self.toxin=''
def __init__(self, realm, affliction_tracker): EvileyeCombo.__init__(self,realm, affliction_tracker) self.priority_manager = AfflictionPriority('evileye',realm.factory.name, realm) self.priority_manager.load_priorities('default') self.tracker.apply_priorities(self.priority_manager.get_priorities())
class Daegger(EarlyInitialisingModule): def __init__(self, realm, afftracker): self.ready = True self.realm = realm self.afftracker = afftracker self.priority = AfflictionPriority('daegger', realm.name, realm) self.priority.load_priorities('default') self.toxin = '' @property def triggers(self): return [self.daegger_hunt, self.daegger_ready, self.hunt_hit] @property def aliases(self): return [self.summon_daegger, self.hunt, self.shadow_strikes] @binding_trigger( "^(\w+) winces as a toxin from the daegger seeps into (?:his|her) body\.$" ) def hunt_hit(self, match, realm): person = match.group(1).lower() target = realm.root.get_state('target').lower() if person == target: self.afftracker.tracker(target).add_aff(self.toxin) self.toxin = '' def next_toxin_physical(self): self.toxin = '' target = self.realm.get_state('target') tracker = self.afftracker.tracker(target) if not tracker['hemotoxin'].on and tracker.time_to_next_purge() < 8: self.toxin = 'hemotoxin' return self.toxin if not tracker['slickness'].on and ( tracker['asthma'].on and tracker['anorexia'].on and (tracker['hemotoxin'].on or tracker.pboc)): self.toxin = 'iodine' return self.toxin if not tracker['metrazol'].on: self.toxin = 'metrazol' return self.toxin if not tracker['sunallergy'].on: self.toxin = 'xeroderma' return self.toxin if not (tracker['paralysis'].on or tracker['numbness'].on): self.toxin = 'ciguatoxin' return self.toxin #if not tracker['recklessness'].on: if not tracker['weariness'].on: self.toxin = 'arsenic' return self.toxin if not tracker['clumsiness'].on: self.toxin = 'ether' return self.toxin if not tracker['vomiting'].on: self.toxin = 'botulinum' return self.toxin if not tracker['slow balance'].on: self.toxin = 'noctec' return self.toxin if not tracker['slow herbs'].on: self.toxin = 'maznor' return self.toxin if not tracker['calotropis'].on: self.toxin = 'calotropis' return self.toxin if not tracker['butisol'].on: self.toxin = 'butisol' return self.toxin if not tracker['slow elixirs'].on: self.toxin = 'luminal' return self.toxin if not tracker['sunallergy'].on: self.toxin = 'xeroderma' return self.toxin self.toxin = 'benzene' return self.toxin def next_toxin(self): self.toxin = '' target = self.realm.get_state('target') tracker = self.afftracker.tracker(target) if not tracker['hemotoxin'].on and tracker.time_to_next_purge() < 5: self.toxin = 'hemotoxin' else: toxins = self.priority.get_afflictions(tracker, 1) if len(toxins) == 1: self.toxin = toxins[0] return self.toxin @binding_alias('^daeg$') def summon_daegger(self, match, realm): realm.send_to_mud = False realm.send('queue eqbal summon daegger|attach wriststrap to daegger') @binding_alias('^dh$') def hunt(self, match, realm): realm.send_to_mud = False target = realm.root.state['target'] toxin = self.next_toxin() realm.send('daegger hunt %s %s' % (target, toxin)) @binding_alias('^dss$') def shadow_strikes(self, match, realm): realm.send_to_mud = False target = realm.root.state['target'] realm.send('daegger shadowstrike %s' % target) @binding_trigger('^"Hunt!" you order your daegger\.$') def daegger_hunt(self, match, realm): realm.display_line = False realm.cwrite('<black:cyan>---- DAEGGER HUNT ----') self.ready = False self.timed_ready = realm.root.set_timer(12, self._daegger_ready) @binding_trigger('^The daegger is again ready to hunt its prey\.$') def daegger_ready(self, match, realm): realm.display_group = False realm.cwrite('<white*:cyan>++++ DAEGGER READY ++++') self._daegger_ready(realm.root) def _daegger_ready(self, realm): if not self.ready: self.ready = True realm.cwrite('<white*:cyan>+++++ DAEGGER READY +++++')
class Daegger(EarlyInitialisingModule): def __init__(self, realm, afftracker): self.ready=True self.realm=realm self.afftracker=afftracker self.priority=AfflictionPriority('daegger',realm.name,realm) self.priority.load_priorities('default') self.toxin='' @property def triggers(self): return [self.daegger_hunt, self.daegger_ready,self.hunt_hit] @property def aliases(self): return [self.summon_daegger, self.hunt, self.shadow_strikes] @binding_trigger("^(\w+) winces as a toxin from the daegger seeps into (?:his|her) body\.$") def hunt_hit(self,match,realm): person=match.group(1).lower() target=realm.root.get_state('target').lower() if person==target: self.afftracker.tracker(target).add_aff(self.toxin) self.toxin='' def next_toxin_physical(self): self.toxin = '' target=self.realm.get_state('target') tracker=self.afftracker.tracker(target) if not tracker['hemotoxin'].on and tracker.time_to_next_purge() < 8: self.toxin='hemotoxin' return self.toxin if not tracker['slickness'].on and (tracker['asthma'].on and tracker['anorexia'].on and (tracker['hemotoxin'].on or tracker.pboc)): self.toxin='iodine' return self.toxin if not tracker['metrazol'].on: self.toxin='metrazol' return self.toxin if not tracker['sunallergy'].on: self.toxin = 'xeroderma' return self.toxin if not (tracker['paralysis'].on or tracker['numbness'].on): self.toxin = 'ciguatoxin' return self.toxin #if not tracker['recklessness'].on: if not tracker['weariness'].on: self.toxin='arsenic' return self.toxin if not tracker['clumsiness'].on: self.toxin='ether' return self.toxin if not tracker['vomiting'].on: self.toxin='botulinum' return self.toxin if not tracker['slow balance'].on: self.toxin='noctec' return self.toxin if not tracker['slow herbs'].on: self.toxin = 'maznor' return self.toxin if not tracker['calotropis'].on: self.toxin='calotropis' return self.toxin if not tracker['butisol'].on: self.toxin='butisol' return self.toxin if not tracker['slow elixirs'].on: self.toxin='luminal' return self.toxin if not tracker['sunallergy'].on: self.toxin='xeroderma' return self.toxin self.toxin='benzene' return self.toxin def next_toxin(self): self.toxin='' target=self.realm.get_state('target') tracker = self.afftracker.tracker(target) if not tracker['hemotoxin'].on and tracker.time_to_next_purge()<5: self.toxin= 'hemotoxin' else: toxins=self.priority.get_afflictions(tracker, 1) if len(toxins)==1: self.toxin=toxins[0] return self.toxin @binding_alias('^daeg$') def summon_daegger(self,match,realm): realm.send_to_mud=False realm.send('queue eqbal summon daegger|attach wriststrap to daegger') @binding_alias('^dh$') def hunt(self, match,realm): realm.send_to_mud=False target=realm.root.state['target'] toxin=self.next_toxin() realm.send('daegger hunt %s %s'%(target,toxin)) @binding_alias('^dss$') def shadow_strikes(self,match,realm): realm.send_to_mud=False target= realm.root.state['target'] realm.send('daegger shadowstrike %s'%target) @binding_trigger('^"Hunt!" you order your daegger\.$') def daegger_hunt(self,match,realm): realm.display_line=False realm.cwrite('<black:cyan>---- DAEGGER HUNT ----') self.ready=False self.timed_ready=realm.root.set_timer(12, self._daegger_ready) @binding_trigger('^The daegger is again ready to hunt its prey\.$') def daegger_ready(self,match,realm): realm.display_group=False realm.cwrite('<white*:cyan>++++ DAEGGER READY ++++') self._daegger_ready(realm.root) def _daegger_ready(self, realm): if not self.ready: self.ready=True realm.cwrite('<white*:cyan>+++++ DAEGGER READY +++++')