Пример #1
0
    def prerun(self):
        self.s1 = Skill_Ammo('s1', self.conf.s1)
        self.s1_x = X_alt(self,
                          's1',
                          self.conf.s1,
                          x_proc=self.l_megaman_s1_x,
                          no_fs=True)
        # self.a_s1x = X('s1x', self.conf.s1.x)
        # self.l_s1_x = Listener('x',self.l_megaman_s1_x).off()
        self.s2 = Skill_Ammo('s2', self.conf.s2)
        self.s2_x = X_alt(self,
                          's2',
                          self.conf.s2,
                          x_proc=self.l_megaman_s2_x,
                          no_fs=True)
        # self.a_s2x = X('s1x', self.conf.s2.x)
        # self.l_s2_x = Listener('x',self.l_megaman_s2_x).off()

        # self.fs_normal = self.fs

        random.seed()
        self.bleed = Bleed('g_bleed', 0).reset()
        self.bleed.quickshot_event.dname = 'x_s1_bleed'
        self.bleed.true_dmg_event.dtype = 'x'
        self.bleed_chance = 0.5
Пример #2
0
 def init(this):
     random.seed()
     this.s2buff = Selfbuff("s2", 0.15, 15, 'crit')
     this.s2buff.modifier.get = this.s2ifbleed
     this.bleed = Bleed("g_bleed", 0).reset()
     #       this.crit_mod = this.rand_crit_mod
     this.s2charge = 0
Пример #3
0
 def prerun(self):
     random.seed()
     self.s2buff = Selfbuff("s2_shapshifts1", 1, 10, 'ss', 'ss')
     self.s2str = Selfbuff("s2_str", 0.25, 10)
     self.bleedpunisher = Modifier("bleed", "att", "killer", 0.08)
     self.bleedpunisher.get = self.getbleedpunisher
     self.bleed = Bleed("g_bleed", 0).reset()
Пример #4
0
 def init(this):
     random.seed()
     this.poisoncount = 3
     this.s2buff = Selfbuff("s2_shapshifts1", 1, 10, 'ss', 'ss')
     this.bleedpunisher = Modifier("bleed", "att", "killer", 0.08)
     this.bleedpunisher.get = this.getbleedpunisher
     this.bleed = Bleed("g_bleed", 0).reset()
Пример #5
0
 def prerun(self):
     random.seed()
     self.s2buff = Selfbuff('s2_shapshifts1', 1, 10, 'ss', 'ss')
     self.s2str = Selfbuff('s2_str', 0.25, 10)
     self.bleedpunisher = Modifier('bleed', 'att', 'killer', 0.08)
     self.bleedpunisher.get = self.getbleedpunisher
     self.bleed = Bleed('g_bleed', 0).reset()
Пример #6
0
 def s1_proc(self, e):
     if self.s2buff.get():
         self.s2buff.buff_end_timer.timing += 2.5
         self.s2str.buff_end_timer.timing += 2.5
         if random.random() < 0.8:
             Bleed(e.name, 1.32).on()
     else:
         self.afflics.poison(e.name, 100, 0.53)
Пример #7
0
 def s1_proc(this, e):
     if this.s2buff.get():
         log('-special', 's1_with_s2')
         if random.random() < 0.8:
             Bleed("s1_bleed", 1.32).on()
     else:
         if this.poisoncount > 0:
             this.poisoncount -= 1
             this.dmg_make("o_s1_poison", 2.65)
Пример #8
0
class Marishiten(DragonBase):
    ele = 'shadow'
    att = 121
    a = [('a', 0.6)]
    dragonform = {
        'act': 'c5 c5 s c4',

        'dx1.dmg': 2.20,
        'dx1.startup': 25 / 60.0, # c1 frames
        'dx1.hit': 1,

        'dx2.dmg': 2.31,
        'dx2.startup': 32 / 60.0, # c2 frames
        'dx2.hit': 1,

        'dx3.dmg': 2.44,
        'dx3.startup': 53 / 60.0, # c3 frames
        'dx3.hit': 2,

        'dx4.dmg': 2.55,
        'dx4.startup': 26 / 60.0, # c4 frames
        'dx4.hit': 1,

        'dx5.dmg': 3.22,
        'dx5.startup': 69 / 60.0, # c5 frames
        'dx5.recovery': 720 / 60.0, # recovery unknown but longer than dodge
        'dx5.hit': 2,

        'ds.recovery': 228 / 60, # skill frames
        'ds.hit': 6,

        'dodge.startup': 45 / 60, # dodge frames
    }

    def oninit(self, adv):
        super().oninit(adv)
        from module.bleed import Bleed
        self.bleed = Bleed('ds', 1.46).reset()

    def ds_proc(self):
        dmg = self.adv.dmg_make('ds',1.04,'s')
        self.bleed.on()
        return dmg + self.adv.dmg_make('ds',5.20,'s')
Пример #9
0
    def s1_proc(self, e):

        if self.s2buff.get():
            self.s2buff.buff_end_timer.timing += 2.5
            self.s2str.buff_end_timer.timing += 2.5
            log('-special', 's1_with_s2')
            if random.random() < 0.8:
                Bleed("s1", 1.32).on()
        else:
            self.afflics.poison('s1', 100, 0.53)
Пример #10
0
    def s1_proc(this, e):

        if this.s2buff.get():
            this.s2buff.buff_end_timer.timing += 2.5
            this.s2str.buff_end_timer.timing += 2.5
            log('-special', 's1_with_s2')
            if random.random() < 0.8:
                Bleed("s1_bleed", 1.32).on()
            else:
                log('-special', 's1_bleed_failed')
        else:
            this.afflics.poison('s1', 100, 0.53)
Пример #11
0
    def prerun(this):
        random.seed()
        if this.condition('0 resist'):
            this.afflics.poison.resist = 0
        else:
            this.afflics.poison.resist = 100

        this.s2buff = Selfbuff("s2_shapshifts1", 1, 10, 'ss', 'ss')
        this.s2str = Selfbuff("s2_str", 0.25, 10)
        this.bleedpunisher = Modifier("bleed", "att", "killer", 0.08)
        this.bleedpunisher.get = this.getbleedpunisher
        this.bleed = Bleed("g_bleed", 0).reset()
Пример #12
0
    def s1_proc(this, e):

        if this.s2buff.get():
            this.s2buff.buff_end_timer.timing += 2.5
            this.s2str.buff_end_timer.timing += 2.5
            log('-special', 's1_with_s2')
            if random.random() < 0.8:
                Bleed("s1_bleed", 1.32).on()
            else:
                log('-special', 's1_bleed_failed')
        else:
            if this.poisoncount > 0:
                this.poisoncount -= 1
                this.dmg_make("o_s1_poison", 2.65)
Пример #13
0
    def prerun(this):

        this.dragonboost = 1.4 # max dragolith

        this.dp = 0
        timing = adv_test.sim_duration/10
        this.t_dp = Timer(this.cb_recoverdp, repeat=1).on(timing)

        this.d = Action('d')
        this.d.conf.startup = 1.8
        this.d.conf.recovery = 12+3.8

        Event('d').listener(this.l_d)

        this.dclaw = 0

        this.bleed = Bleed("g_bleed",0).reset()
Пример #14
0
    def prerun(this):

        this.dragonboost = 1.4  # max dragolith

        this.dp = 0
        from adv.adv_test import sim_duration
        timing = int(sim_duration / 10)
        this.t_dp = Timer(this.cb_recoverdp, repeat=1).on(timing)
        this.comment = 'get 10% dragon charge from enemy every {}s'.format(
            timing)

        this.d = Action('d')
        this.d.conf.startup = 1.8
        this.d.conf.recovery = 12.92

        Event('d').listener(this.l_d)

        this.dclaw = 0

        this.bleed = Bleed("g_bleed", 0).reset()
Пример #15
0
 def s1_proc(this, e):
     if random.random() < 0.8:
         Bleed("s1_bleed", 1.46).on()
Пример #16
0
 def oninit(self, adv):
     super().oninit(adv)
     from module.bleed import Bleed
     self.bleed = Bleed('ds', 1.46).reset()
Пример #17
0
 def s2_proc(self, e):
     Bleed(e.name, 1.46).on()
Пример #18
0
 def prerun(self):
     self.bleed = Bleed('g_bleed', 0).reset()
Пример #19
0
 def s1_proc(self, e):
     if random.random() < 0.8:
         Bleed(e.name, 1.32).on()
Пример #20
0
 def s1_proc(self, e):
     with Modifier("s1killer", "poison_killer", "hit", 0.2):
         self.dmg_make("s1", 12.40)
         Bleed("s1", 1.46).on()
Пример #21
0
 def prerun(self):
     random.seed()
     self.bleed = Bleed("g_bleed", 0).reset()
Пример #22
0
 def proc_bleed(self):
     if random.random() <= self.bleed_chance:
         self.bleed = Bleed('o_metal_blade', 1.32)
         self.bleed.quickshot_event.dname = 'o_metal_blade_bleed'
         self.bleed.true_dmg_event.dtype = 'x'
         self.bleed.on()
Пример #23
0
 def prerun(this):
     random.seed()
     this.bleed = Bleed("g_bleed", 0).reset()
Пример #24
0
 def init(this):
     this.bleed = Bleed("g_bleed",0).reset()
Пример #25
0
 def s1_proc(this, e):
     Bleed("s1_bleed", 1.46).on()
Пример #26
0
Файл: patia.py Проект: zzysan/dl
 def prerun(self):
     self.bleed = Bleed("g_bleed", 0).reset()
Пример #27
0
class Mega_Man(Adv):
    comment = '16 hits leaf shield (max 32 hits)'

    conf = megaman_conf.copy()
    conf['slots.d'] = Gala_Mars()
    conf['slots.a'] = Primal_Crisis()+Levins_Champion()
    conf['acl'] = """
        # check_s(n) means neither s1 or s2 are active, and s[n] has full ammo
        `dragon, s=4
        `s3, not self.s3_buff
        `s4
        `s1, self.check_s(1) and self.bleed._static['stacks']<3
        `s2, self.s1_x.active and self.bleed._static['stacks']>=3
        `s1, self.s1_x.active and self.bleed._static['stacks']>=3
    """
    coab = ['Blade', 'Marth', 'Dagger2']
    share = ['Karl']

    conf['dragonform'] = {
        'act': 'c5 s',

        'dx1.dmg': 1.20,
        'dx1.startup': 10 / 60.0, # c1 frames
        'dx1.hit': 3,

        'dx2.dmg': 1.20,
        'dx2.startup': 13 / 60.0, # c2 frames
        'dx2.hit': 3,

        'dx3.dmg': 1.20,
        'dx3.startup': 14 / 60.0, # c3 frames
        'dx3.hit': 3,

        'dx4.dmg': 1.20,
        'dx4.startup': 14 / 60.0, # c4 frames
        'dx4.hit': 3,

        'dx5.dmg': 1.20,
        'dx5.startup': 14 / 60.0, # c5 frames
        'dx5.recovery': 23 / 60.0, # recovery
        'dx5.hit': 3,

        'ds.dmg': 6.00,
        'ds.recovery': 113 / 60, # skill frames
        'ds.hit': 5,

        'dodge.startup': 45 / 60.0, # dodge frames
    }
    def ds_proc(self):
        return self.dmg_make('ds',self.dragonform.conf.ds.dmg,'s')

    def prerun(self):
        self.s1 = Skill_Ammo('s1', self.conf.s1)
        self.s1_x = X_alt(self, 's1', self.conf.s1, x_proc=self.l_megaman_s1_x, no_fs=True)
        # self.a_s1x = X('s1x', self.conf.s1.x)
        # self.l_s1_x = Listener('x',self.l_megaman_s1_x).off()
        self.s2 = Skill_Ammo('s2', self.conf.s2)
        self.s2_x = X_alt(self, 's2', self.conf.s2, x_proc=self.l_megaman_s2_x, no_fs=True)
        # self.a_s2x = X('s1x', self.conf.s2.x)
        # self.l_s2_x = Listener('x',self.l_megaman_s2_x).off()

        # self.fs_normal = self.fs
        
        random.seed()
        self.bleed = Bleed('g_bleed', 0).reset()
        self.bleed_chance = 0.5

    def proc_bleed(self):
        if random.random() <= self.bleed_chance:
            self.bleed = Bleed('o_metal_blade', 1.32)
            self.bleed.quickshot_event.dname = 'o_metal_blade_bleed'
            self.bleed.true_dmg_event.dtype = 'x'
            self.bleed.on()

    def charge(self, name, sp):
        sp = self.sp_convert(self.sp_mod(name), sp)
        # ammo
        self.s1.charge_ammo(self.conf[name.split('_')[0]].ammo)
        self.s2.charge_ammo(self.conf[name.split('_')[0]].ammo)
        self.s3.charge(sp)
        try:
            self.s4.charge(sp)
            log('sp', name, sp, f'{self.s1.current_ammo}/{self.s1.ammo}, {self.s2.current_ammo}/{self.s2.ammo}, {self.s3.charged}/{self.s3.sp}, {self.s4.charged}/{self.s4.sp}')
        except:
            log('sp', name, sp, f'{self.s1.current_ammo}/{self.s1.ammo}, {self.s2.current_ammo}/{self.s2.ammo}, {self.s3.charged}/{self.s3.sp}')
        self.think_pin('sp')

    def s1_proc(self, e):
        if self.s2_x.active:
            self.s2_x.off()

        if self.s1_x.active:
            self.s1_x.off()
        else:
            self.s1_x.on()

    def s2_proc(self, e):
        if self.s1_x.active:
            self.s1_x.off()

        if self.s2_x.active:
            self.s2_x.off()
        else:
            self.s2_x.on()

    # def l_range_x(self, e):
    #     if e.name == 's1x' or e.name == 's2x':
    #         return
    #     super().l_range_x(e)

    def l_megaman_s1_x(self, e):
        self.add_hits(self.conf.s1.x1.hit)
        self.dmg_make('o_metal_blade', self.conf.s1.x1.dmg*self.conf.s1.x1.hit, 'x')
        self.proc_bleed()
        self.s1.current_ammo -= self.s1.cost
        log('sp', 'metal_blade', -self.s1.cost,'%d/%d, %d/%d, %d/%d'%(\
            self.s1.current_ammo, self.s1.ammo, self.s2.current_ammo, self.s2.ammo, self.s3.charged, self.s3.sp))
        if self.s1.current_ammo < self.s1.cost:
            self.s1_x.off()

    def l_megaman_s2_x(self, e):
        self.add_hits(self.conf.s2.x1.hit)
        self.dmg_make('o_leaf_shield', self.conf.s2.x1.dmg*self.conf.s2.x1.hit, 'x')
        self.s2.current_ammo -= self.s2.cost
        log('sp', 'leaf_shield', -self.s2.cost,'%d/%d, %d/%d, %d/%d'%(\
            self.s1.current_ammo, self.s1.ammo, self.s2.current_ammo, self.s2.ammo, self.s3.charged, self.s3.sp))
        if self.s2.current_ammo < self.s2.cost:
            self.s2_x.off()

    def check_s(self, s):
        if s == 's1' or s == 1:
            return self.s1.current_ammo >= self.s1.ammo and not self.s1_x.active and not self.s2_x.active
        elif s == 's2' or s == 2:
            return self.s2.current_ammo >= self.s2.ammo and not self.s1_x.active and not self.s2_x.active
Пример #28
0
Файл: patia.py Проект: zzysan/dl
 def s2_proc(self, e):
     Bleed("s2", 1.46).on()
Пример #29
0
 def s1_proc(self, e):
     if random.random() < 0.8:
         Bleed("s1", 1.46).on()
Пример #30
0
 def prerun(self):
     self.bleed = Bleed('g_bleed',0).reset()
     self.s2fscharge = 0