def config_sigil(self, duration=300, **kwargs): self.unlocked = False self.unlocked_time = None self.locked_sigil = EffectBuff("locked_sigil", duration, lambda: None, self.a_sigil_unlock).no_bufftime() self.locked_sigil.on() self.sigil_mode = ModeManager(group="sigil", **kwargs)
class SigilAdv(Adv): def config_sigil(self, duration=300, **kwargs): self.unlocked = False self.unlocked_time = None self.locked_sigil = EffectBuff("locked_sigil", duration, lambda: None, self.a_sigil_unlock).no_bufftime() self.locked_sigil.on() self.sigil_mode = ModeManager(group="sigil", **kwargs) def a_sigil_unlock(self): self.unlocked = True self.unlocked_time = now() self.sigil_mode.on() def a_update_sigil(self, time): if not self.unlocked: duration = self.locked_sigil.buff_end_timer.add(time) if duration <= 0: self.locked_sigil.off() self.a_sigil_unlock() def post_run(self, end): if self.comment: self.comment += "; " if self.unlocked_time is not None: self.comment += f"unlock at {self.unlocked_time:.02f}s" else: self.comment += f"not unlocked"
def oninit(self, adv): super().oninit(adv) charge_timer = Timer( lambda _: adv.charge_p('ds', 0.091, no_autocharge=True), 0.9, True) ds_buff = EffectBuff('ds_sp_regen_zone', 10, lambda: charge_timer.on(), lambda: charge_timer.off()) adv.Event('ds').listener(lambda _: ds_buff.on())
def oninit(self, adv): super().oninit(adv) sp_regen_timer = Timer( lambda _: adv.charge_p('ds_sp', 0.0075, target=['s1', 's2']), 0.99, True) sp_regen_buff = EffectBuff('ds_sp', 90, lambda: sp_regen_timer.on(), lambda: sp_regen_timer.off()) adv.Event('ds').listener(lambda _: sp_regen_buff.on())
def oninit(self, adv): super().oninit(adv) sp_regen_timer = Timer( lambda _: adv.charge_p("ds_sp", 0.0075, target=["s1", "s2"]), 0.99, True) sp_regen_buff = EffectBuff("ds_sp", 90, lambda: sp_regen_timer.on(), lambda: sp_regen_timer.off()) Event("ds").listener(lambda _: sp_regen_buff.on())
def oninit(self, adv): super().oninit(adv) if not adv.nihilism: charge_timer = Timer( lambda _: adv.charge_p("ds", 0.091, no_autocharge=False), 0.9, True) ds_buff = EffectBuff( "ds_sp_regen_zone", 10, lambda: charge_timer.on(), lambda: charge_timer.off(), ) Event("ds").listener(lambda _: ds_buff.on())
class SigilAdv(Adv): def config_sigil(self, duration=300, **kwargs): self.unlocked = False self.locked_sigil = EffectBuff('locked_sigil', 300, lambda: None, self.sigil_unlock).no_bufftime() self.locked_sigil.on() self.sigil_mode = ModeManager(group='sigil', **kwargs) def sigil_unlock(self): self.unlocked = now() self.sigil_mode.on() def update_sigil(self, time): duration = self.locked_sigil.buff_end_timer.add(time) if duration <= 0: self.locked_sigil.off() self.sigil_unlock()