/
ShooterEnemy.py
44 lines (28 loc) · 935 Bytes
/
ShooterEnemy.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
from bge import logic
import nilutils as nl
from Enemy import Enemy, Animation
class Shooting(nl.Component):
def __init__(self, gobj):
super().__init__(gobj)
self.state("shoot")
self.empty = self.gobj.empty
self.shoot_delay = nl.Ticker(self.gobj.shoot_delay)
def shoot(self):
scene = logic.getCurrentScene()
if self.shoot_delay() and self.gobj.closest_player and not self.gobj.dead:
scene.addObject("e_bullet1", self.empty, 100)
class ShooterEnemy(Enemy):
def __init__(self, own):
super().__init__(own)
self.empty = [e for e in self.children if "empty" in e][0]
self.shoot_delay = self['shoot_delay']
self.attack_frames = [0, 5]
self.movement_frames = [0, 20]
animation = Animation(self)
shooting = Shooting(self)
self.components.append(shooting)
self.components.append(animation)
def init(cont):
ShooterEnemy(cont.owner)
def main(cont):
cont.owner.main()