-
Notifications
You must be signed in to change notification settings - Fork 0
/
ability.py
68 lines (68 loc) · 2.64 KB
/
ability.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import datetime
import utility
import data
import math
class ability:
def __init__(self, name, id, player,targetId,canvas,startTime=0.0, castTime= 0.0):
self.name = name
self.id = id
self.player = player
self.castTime = castTime
self.targetId = targetId
self.canvas = canvas
self.startTime = startTime
self.endTime = None
self.aoe = False
self.show = True
self.timeToShow = castTime
if(startTime != 0):
self.startTimedt = utility.strToDateTime(self.startTime)
self.castTimeDelta = datetime.timedelta(seconds=castTime)
self.endTime = self.startTimedt + self.castTimeDelta
if(player.NPC):
if(self.castTime > 0):
if id in ['4D66']:
#if id =='4D66':
self.createCleave(39,45,270)
elif id in ['4DB7']:
self.createCleave(58,45,270)
elif id in ['4DC3']:
self.show = False
self.timeToShow = 5
self.createCleave(58,45,270)
def longLeft(self, time):
if(self.endTime == None):
return 0
else:
temptime = (self.endTime-time)
percent = temptime/self.castTimeDelta
if self.timeToShow>temptime.seconds:
self.showAOE()
if(percent >=0):
return percent
else:
if data.log:
print("error ability percent is :", percent, "is", self.name,"finishing")
self.player.stopCasting()
return 0
def createCleave(self, size,start,extent):
self.aoe = True
self.x, self.y = utility.ScaleLoc(self.player.x,self.player.y)
self.lSize = size
self.size = self.lSize*data.scale
self.pie = self.canvas.create_arc(self.x-self.size/2,self.y-self.size/2,self.x+self.size/2,self.y+self.size/2, start=math.degrees(self.player.rot-1.5) + start,extent=extent, fill="yellow")
self.canvas.tag_lower(self.pie)
if not self.show:
self.hideAOE()
def updateAOE(self):
if(self.aoe):
self.x, self.y = utility.ScaleLoc(self.player.x,self.player.y)
self.size = self.lSize*data.scale
self.canvas.coords(self.pie,self.x-self.size/2,self.y-self.size/2,self.x+self.size/2,self.y+self.size/2)
def clear(self):
if(self.aoe):
self.canvas.delete(self.pie)
def showAOE(self):
self.canvas.itemconfigure(self.pie,state='normal')
def hideAOE(self):
self.canvas.itemconfigure(self.pie,state='hidden')