-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsentry.py
More file actions
30 lines (26 loc) · 1.19 KB
/
sentry.py
File metadata and controls
30 lines (26 loc) · 1.19 KB
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
import math, random, geom
from agent import Agent
from entity import Entity
class SentryAgent(Agent):
def __init__(self, loc):
self.maxBullets = 7
self.getRandShootTime(20, 30)
Agent.__init__(self, 12, loc)
def ai(self,level, player):
if not random.randint(0, 7):
for bId in Entity.bulletIds:
b = Entity.entities[bId]
if b.ownerId != self.ID and geom.circCircCollision(b.circle, (self.getX(), self.getY(), 100)) and self.onCollisionPath(b):
bangle = math.degrees(math.atan2(self.getY()- b.getY(), self.getX()- b.getX()))
self.setTurretAngle(bangle)
self.shoot(1)
break
self.setTurretAngle(math.degrees(math.atan2(self.getY() - player.getY(), self.getX() - player.getX())))
if self.shootTimer == 0:
if self.bulletsFired < self.maxBullets - 1 and self.safeToShoot(level, player, 130, bounces = 2):
self.shoot(1)
self.getRandShootTime(20, 30)
return
self.getRandShootTime(1, 2)
else:
self.shootTimer -= 1