def Proj(self,p,skillto): died=False if self.projCheck(p,self.turn,skillto,self.proj) and self.proj.dur>0: p[skillto].moneyTaken(30) window.getAlarm("버드에게 30골드를 빼앗김") self.giveMoney(30) died=self.skillHit(p, [0,self.proj.damage,0], self.turn, skillto, 1) # mdmg=self.proj.damage # self.stats[0]+=mdmg # totaldamage=p[skillto].totalDamage(self,0,mdmg,self.arP,self.MP) # died = p[skillto].giveDamage(p,totaldamage, self.turn) if died: self.addKill(1) self.proj.reset() p[skillto].resetOutbattle() elif self.proj.dur==0: self.proj.reset() self.proj.dur-=1 return died
def autoskill(self,players): window.getAlarm("auto") w=self.useWnext self.useWnext=False if w: return self.endW(players) else: return 0
def endW(self,players): self.cooltime[1]=6 self.duration[1]=0 skillto=self.multitarget(players,self.location-3,self.location+3,2) if skillto==None: return 0 #used skill but there was no players in range window.getAlarm(self.name+"W 끝남") mdmg=int(30+0.5*self.AP+self.HP*0.1) self.addShield(-1*self.shield) #return [pdmg,mdmg,fdmg,skillto] for i in range(len(skillto)): self.hitoneTarget(i, players, [0,mdmg,0,skillto], self.turn, 2)
def AI_2(self,players): closeopponent=False for p in players: if abs(self.location-p.location)<7 and self!=p: closeopponent=True if self.phase>1 and self.cooltime[1]==0 and self.cooltime[0]==0 and closeopponent: # use w if w,q cool is back and theres nearby opponent window.getAlarm(self.name+"W 사용") return 2 else: return 0
def useSkill(self, s, players): mdmg = 0 pdmg = 0 fdmg = 0 skillto = 0 if s == 1: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[0]) return -1 else: skillto=self.choosetarget(players,2,1) if skillto > -1: mdmg = int(10 + 0.5 * (self.AP + self.AR + self.MR)) self.cooltime[0] = 2 needopp = True #window.getAlarm(self.name+"used Q to "+players[skillto].name+"("+players[skillto].champ+")") else: return -1 elif s == 2: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[1]) return -1 else: skillto=self.choosetarget(players,20,2) if skillto > -1: self.cooltime[1] = 5 needopp = True #window.getAlarm(self.name+"used W to "+players[skillto].name+"("+players[skillto].champ+")") else: return -1 elif s == 3: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[2]) return -1 else: self.cooltime[2] = 14 self.duration[2] = 4 if self.HP <= 150: self.silveru1 = 200 self.MR += 200 self.AR += 200 else: self.silveru1 = 100 self.MR += 100 self.AR += 100 window.getAlarm(self.name+"궁 사용, 방어력,마법저항력 +%d"%self.silveru1) return 0 return [pdmg, mdmg, fdmg, [skillto]]
def useSkill(self, s,players): mdmg = 0 pdmg = 0 fdmg = 0 skillto=0 if s == 1: if self.duration[0]==0: self.duration[0]=999 window.getAlarm(self.name+"Q 활성화됨") return 0 else: self.duration[0]=0 window.getAlarm(self.name+"Q 비활성화") return -1 elif s == 2: if self.duration[1]>0: self.duration[1]=0 self.effects[2]=0 self.effects[1]=self.yangiWspeed return -1 elif self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[1]) return -1 else: self.duration[1]=3 self.cooltime[1]=5 self.effects[2]=2 window.getAlarm(self.name+"W 사용함") return 0 elif s == 3: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[2]) return -1 else: skillto=self.choosetarget(players,5,3) if skillto>-1: self.cooltime[2]=8 pdmg=50+self.AD+int(0.5*(players[skillto].MaxHP-players[skillto].HP)) needopp=True window.getAlarm(self.name+"이(가) "+players[skillto].name+"("+players[skillto].champ+") 에게 궁 사용") else: return -1 return [pdmg,mdmg,fdmg,[skillto] ]
def useSkill(self, s, players): if s == 1: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[0]) return -1 else: mdmg = 10 + self.AP if self.duration[1] > 0: if self.duration[2] > 0: mdmg += 10 + self.AP else: mdmg += int(10 + 0.5 * self.AP) if self.isai: #AI projectile launch project=self.AIproj(20,20,players) if project==0: return -1 # projectile check else: if self.adamage==30: drawrange(self.zero(self.location-60),(self.location+60)) else: drawrange(self.zero(self.location-20),self.location+20) project=[False,0] while(True): project=self.testProj(20,20) if project==0: return -1 if project[0]: break; self.cooltime[0] = 4 winsound.PlaySound('sound\\place.wav', winsound.SND_ASYNC) self.proj.setproj(mdmg,project[1],4) window.getAlarm(self.name+"Q 사용함") return 0 elif s == 2: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[1]) return -1 else: self.duration[1] = 3 self.cooltime[1] = 5 window.getAlarm(self.name+"W 활성화됨") return 0 elif s == 3: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[2]) return -1 else: self.duration[2] = 8 self.cooltime[2] = 13 window.getAlarm(self.name+"궁 활성화됨") return 0
def AI_3(self,players): if self.cooltime[2]==0 and self.phase>2 and self.duration[2]==0: # use u if cool is back window.getAlarm(self.name+"궁 사용") return 3 else: return 0
def AI_2(self,players): if self.phase>1 and self.cooltime[1]==0 and self.duration[1]==0: # use w if cool is back window.getAlarm(self.name+"W 사용") return 2 else: return 0
def AI_1(self,players): if self.cooltime[0]==0: # use q if cool is back window.getAlarm(self.name+"Q 사용") return 1 else: return 0
def useSkill(self, s, players): if s == 1: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[0]) return -1 else: if self.HP<=35: mb.showinfo(None, "체력이 부족합니다") return -1 mdmg = 10 + int(self.MaxHP/5) if self.isai: #AI projectile launch project=self.AIproj(20,20,players) if project==0: return -1 # projectile check else: if self.adamage==30: drawrange(self.zero(self.location-30),(self.location+30)) else: drawrange(self.zero(self.location-10),self.location+10) project=[False,0] while(True): project=self.testProj(10,10) if project==0: return -1 if project[0]: break; self.cooltime[0] = 2 self.giveDamage(players,35, 0) winsound.PlaySound('sound\\place.wav', winsound.SND_ASYNC) self.proj.setproj(mdmg,project[1],3) window.getAlarm(self.name+"Q 사용함") return 0 elif s == 2: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[1]) return -1 if self.Wactive: return -1 else: self.additionalHP=int(self.MaxHP*0.3) self.addMaxhp(self.additionalHP) window.getAlarm(self.name+"W 활성화됨") self.Wactive=True return 0 elif s == 3: if self.cooltime[s - 1] > 0: mb.showinfo(None, "아직 쿨타임이 돌아오지 않았습니다! %d 턴 남음" %self.cooltime[2]) return -1 else: self.duration[2] = 5 self.cooltime[2] = 12 window.getAlarm(self.name+"궁 활성화됨") return 0