Beispiel #1
0
 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)
Beispiel #2
0
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"
Beispiel #3
0
 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())
Beispiel #4
0
 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())
Beispiel #5
0
 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())
Beispiel #6
0
 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())
Beispiel #7
0
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()