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
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
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()
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()
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()
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)
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)
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')
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)
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)
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()
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)
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()
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()
def s1_proc(this, e): if random.random() < 0.8: Bleed("s1_bleed", 1.46).on()
def oninit(self, adv): super().oninit(adv) from module.bleed import Bleed self.bleed = Bleed('ds', 1.46).reset()
def s2_proc(self, e): Bleed(e.name, 1.46).on()
def prerun(self): self.bleed = Bleed('g_bleed', 0).reset()
def s1_proc(self, e): if random.random() < 0.8: Bleed(e.name, 1.32).on()
def s1_proc(self, e): with Modifier("s1killer", "poison_killer", "hit", 0.2): self.dmg_make("s1", 12.40) Bleed("s1", 1.46).on()
def prerun(self): random.seed() self.bleed = Bleed("g_bleed", 0).reset()
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 prerun(this): random.seed() this.bleed = Bleed("g_bleed", 0).reset()
def init(this): this.bleed = Bleed("g_bleed",0).reset()
def s1_proc(this, e): Bleed("s1_bleed", 1.46).on()
def prerun(self): self.bleed = Bleed("g_bleed", 0).reset()
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
def s2_proc(self, e): Bleed("s2", 1.46).on()
def s1_proc(self, e): if random.random() < 0.8: Bleed("s1", 1.46).on()
def prerun(self): self.bleed = Bleed('g_bleed',0).reset() self.s2fscharge = 0