def act(self,x,y): t=self.summon(unit.arrow_to_d(vec(x,y)-self.owner.v,set_model=model.圆形(r=10),exact=True)) t.speed=400 def f(): t=self.summon(unit.token(),self.last_time,x,y) t.add_ef(effect.fire(r=self.r,power=self.power)) t.add_ef(effect.bomb(r=-1,self_func=f ))
def unit_gen(): t=unit.token() t.speed=80 t.model.append(model.火球()) t.die_model=model.爆炸(t=0.2,r=50) t.add_ef(effect.bomb(r=30,power=40)) t.add_ef(effect.closing()) return t
def act(self,x,y): v=vec(x,y) for i in range(-3,4): vi=(v-self.owner.v).adjust_angle(i*0.17) t=self.summon(unit.arrow_to_d(vi, model.箭头(color=(170,170,255)))) t.die_model=model.爆炸(r=35,t=0.2,color=(200,180,255)) t.speed=600 t.add_ef(effect.bomb(r=30,power=30,func=lambda u:u.add_ef(effect.slow(life_time=2,percent=0.6))))
def act(self): tar_pool=list(filter(lambda i: i.player!=self.owner.player and isinstance(i,unit.real_unit) , unit.unit_pool)) if not tar_pool: return target=min(tar_pool,key = lambda x:(x.v-self.owner.v).mo()) t=self.summon(unit.arrow_to_u(target,set_model=model.圆形(r=10))) t.speed=850 t.die_model=model.爆炸(100,0.2,color=(155,210,130)) t.add_ef(effect.bomb(aoe=True,r=-1,aoe_r=100,power=50, func=lambda x:x.add_ef(effect.slow(2,0.5)) ) )
def __init__(self, v): super().__init__(v, set_model=model.神风(), exact=True) self.speed = 600 self.maxhp = 25 self.hp = 25 self.size = -999 de(self.effect, lambda x: type(x) == effect.magic_imm) #神风并不是魔免的 self.add_ef( effect.funnel(arrow_model=lambda: model.直线(width=1), speed=550, cd=0.2, power=2)) self.add_ef(effect.bomb(r=-1, power=8, aoe=True, aoe_r=121))
def unit_gen(): t=self.summon(unit.arrow_to_d(vec(x+rd(-self.r//4*3,self.r//4*3),y+rd(-self.r//4*3,self.r//4*3))-self.owner.v,set_model=model.直线(width=1),exact=True)) t.speed=350 t.add_ef(effect.bomb(aoe=True,r=-1,aoe_r=self.r/4*3,power=self.power)) return t
def act(self,target): t=self.summon(unit.arrow_to_u(target,act=lambda:self.dam(target,self.power),set_model=model.鸟箭())) t.die_model=model.爆炸(45,0.2,color=(155,250,130)) t.add_ef(effect.bomb(r=25,power=self.power))
def act(self,x,y): t=self.summon(unit.arrow_to_d(vec(x,y)-self.owner.v,exact=True,set_model=model.直线(width=10))) t.speed=500 t.die_model=(model.爆炸(t=0.2,r=self.r,color=(255,255,255))) t.add_ef(effect.bomb(r=-1,power=0, aoe=True, aoe_r=self.r, func=lambda i:i.add_ef(effect.stun(2))))
def act(self,x,y): t=self.summon(unit.token(),x=x,y=y) t.die_model=model.爆炸(t=0.2,r=144) t.add_ef(effect.timer(t=2, func=t.die )) t.add_ef(effect.bomb(r=-1,power=80,aoe=True,aoe_r=144))
def unit_gen(): v=(vec(x,y)-self.owner.v).adjust_angle(random.gauss(0,0.14)) t=unit.arrow_to_d(v,model.箭头(l=15,color=(255,255,200),width=2)) t.add_ef(effect.bomb(r=25,power=30)) t.speed=500 return t
def act(self,x,y): t=self.summon(unit.arrow_to_d(vec(x,y)-self.owner.v)) t.speed=600 t.add_ef(effect.bomb(r=30,power=30))
def act(self,x,y): v=vec(x-self.owner.v.x, y-self.owner.v.y).adjust_angle((random.random()-0.5)/2) t=self.summon(unit.arrow_to_d(v,set_model=model.箭头(l=50,width=6,color=(255,111,111)))) t.die_model=model.爆炸(t=0.3,r=200) t.speed=1200 t.add_ef(effect.bomb(r=45,power=100,aoe=True,aoe_r=200))