Beispiel #1
0
class Cerberus(DragonBase):
    ele = 'flame'
    att = 127
    a = [('a', 0.6)]
    dragonform = {
        'act': 'c3-s',  # "c3 c2 s c2 c2 c2 c2 c2 c2"
        'dx1.dmg': 2.00,
        'dx1.startup': 12 / 60.0,  # c1 frames
        'dx1.hit': 1,
        'dx2.dmg': 1.40,
        'dx2.startup': 26 / 60.0,  # c2 frames
        'dx2.hit': 1,
        'dx3.dmg': 1.40 * 2,
        'dx3.startup': (41 + 15) / 60.0,  # c3 frames
        'dx3.recovery': 38 / 60.0,  # recovery
        'dx3.hit': 2,
        'ds.recovery': 270 / 60,  # skill frames
        'ds.hit': 7,
    }

    def oninit(self, adv):
        super().oninit(adv)
        from core.advbase import Debuff
        self.ds_buff = Debuff('ds', -0.05, 10)

    def ds_proc(self):
        dmg = self.adv.dmg_make('ds', 1.10, 's')
        self.ds_buff.on()
        self.adv.afflics.burn('ds', 120, 0.97, 12, dtype='s')
        return dmg + self.adv.dmg_make('ds', 1.10 * 6, 's')
Beispiel #2
0
class Apollo(DragonBase):
    ele = 'flame'
    att = 127
    a = [('k_burn', 0.2), ('a', 0.5)]
    dragonform = {
        'act': 'c3-s',
        'dx1.dmg': 1.90,
        'dx1.startup': 23 / 60.0,  # c1 frames
        'dx1.hit': 1,
        'dx2.dmg': 2.09,
        'dx2.startup': 36 / 60.0,  # c2 frames
        'dx2.hit': 1,
        'dx3.dmg': 2.57,
        'dx3.startup': 35 / 60.0,  # c3 frames
        'dx3.recovery': 41 / 60.0,  # recovery
        'dx3.hit': 1,
        'ds.recovery': 110 / 60,  # skill frames
        'ds.hit': 2,
    }

    def oninit(self, adv):
        super().oninit(adv)
        from core.advbase import Debuff
        self.ds_buff = Debuff('ds', -0.05, 10)

    def ds_proc(self):
        dmg = self.adv.dmg_make('ds', 1.80, 's')
        self.ds_buff.on()
        self.adv.afflics.burn('ds', 120, 0.311, 30, dtype='s')
        return dmg + self.adv.dmg_make('ds', 4.20, 's')
Beispiel #3
0
class Pazuzu(DragonBase):
    ele = 'wind'
    att = 127
    a = [('k_poison', 0.2), ('a', 0.5)]
    dragonform = {
        'act': 'c2 s',
        'dx1.dmg': 1.40,
        'dx1.startup': 20 / 60.0,  # c1 frames
        'dx1.hit': 1,
        'dx2.dmg': 1.54,
        'dx2.startup': 38 / 60.0,  # c2 frames
        'dx2.hit': 1,
        'dx3.dmg': 1.93,
        'dx3.startup': 38 / 60.0,  # c3 frames
        'dx3.recovery': 47 / 60.0,  # recovery
        'dx3.hit': 3,
        'ds.recovery': 146 / 60,  # skill frames
        'ds.hit': 5,
        'dodge.startup': 39 / 60,  # dodge frames
    }

    def oninit(self, adv):
        super().oninit(adv)
        from core.advbase import Debuff
        self.ds_buff = Debuff('ds', -0.05, 10)

    def ds_proc(self):
        dmg = self.adv.dmg_make('ds', 0.91, 's')
        self.ds_buff.on()
        self.adv.afflics.poison('ds', 120, 0.291, 30, dtype='s')
        return dmg + self.adv.dmg_make('ds', 4 * 0.91, 's')
Beispiel #4
0
 def oninit(self, adv):
     super().oninit(adv)
     from core.advbase import Debuff, EffectBuff, Timer
     self.sp_convert = adv.sp_convert
     self.s1 = adv.s1
     self.s2 = adv.s2
     self.ds_buff = Debuff('ds',-0.20,15)
     self.sp_regen_buff = EffectBuff('ds_sp', 90, lambda: self.sp_regen_timer.on(), lambda: self.sp_regen_timer.off())
     self.sp_regen_timer = Timer(self.sp_regen, 1.99, 1)
Beispiel #5
0
 def on(self, name, rate, duration=None):
     p = super().on(name, rate, duration)
     if p:
         from core.advbase import Debuff
         Debuff('{}_bog'.format(name), -0.5 * p, self.duration, 1, 'att',
                'bog').on()
     return p
Beispiel #6
0
class Ramiel(DragonBase):
    ele = 'shadow'
    att = 128
    a = [('a', 0.6), ('dp', 50)]
    # need framedata
    dragonform = {
        'act': 'c3-s',

        'dx1.dmg': 1.95,
        'dx1.startup': 20 / 60.0, # c1 frames
        'dx1.hit': 1,

        'dx2.dmg': 2.35,
        'dx2.startup': 40 / 60.0, # c2 frames
        'dx2.hit': 1,

        'dx3.dmg': 3.40,
        'dx3.startup': 55 / 60.0, # c3 frames
        'dx3.recovery': 45 / 60.0, # recovery
        'dx3.hit': 1,

        'ds.recovery': 220 / 60,
        'ds.hit': -2,
    }

    def oninit(self, adv):
        super().oninit(adv)
        from core.advbase import Debuff, EffectBuff, Timer
        self.sp_convert = adv.sp_convert
        self.s1 = adv.s1
        self.s2 = adv.s2
        self.ds_buff = Debuff('ds',-0.20,15)
        self.sp_regen_buff = EffectBuff('ds_sp', 90, lambda: self.sp_regen_timer.on(), lambda: self.sp_regen_timer.off())
        self.sp_regen_timer = Timer(self.sp_regen, 1.99, 1)

    def sp_regen(self, t):
        self.s1.charge(self.sp_convert(0.015, self.s1.sp))
        self.s2.charge(self.sp_convert(0.015, self.s2.sp))
        
    def ds_proc(self):
        dmg = self.adv.dmg_make('ds',3.224,'s')
        self.adv.afflics.poison('ds',120,0.582,dtype='s')
        self.ds_buff.on()
        self.s2.charge(self.s2.sp)
        self.sp_regen_buff.on()
        return dmg + self.adv.dmg_make('ds',4.836,'s')
Beispiel #7
0
 def dmg_proc(self, name, amount):
     if name[0] == 'x' and self.s2_buff.get():
         Debuff('s2_ab', 0.05, 5, self.s2_chance()).on()
Beispiel #8
0
 def oninit(self, adv):
     super().oninit(adv)
     from core.advbase import Debuff
     self.ds_buff = Debuff('ds', -0.05, 10)