forked from JeLLyNinjas/TerminalFighter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
spawn_controller.py
42 lines (34 loc) · 1.76 KB
/
spawn_controller.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
import random
from basic_grunt import BasicGrunt
from not_so_basic_grunt import NotSoBasicGrunt
class SpawnController():
def __init__(self, universe, score_counter):
self.universe_ = universe
self.score_counter_ = score_counter
self.basic_grunt_spawn_delay_ = 300
self.basic_grunt_spawn_timer_ = self.basic_grunt_spawn_delay_
self.enemy_x_spawn_locations = [x/100 for x in range(20, 80)]
self.spawn_difficulty_ = 0.9995
self.minimum_spawn_delay_ = 40
def update(self):
# print('self.basic_grunt_spawn_delay_:' + str(self.basic_grunt_spawn_delay_))
self.basic_grunt_spawn_timer_ += 1
if self.basic_grunt_spawn_delay_ > self.minimum_spawn_delay_:
self.basic_grunt_spawn_delay_ *= self.spawn_difficulty_
else:
self.basic_grunt_spawn_delay_ = self.minimum_spawn_delay_
# print("maximum difficulty reached")
if self.basic_grunt_spawn_timer_ > self.basic_grunt_spawn_delay_:
self.spawn_basic_grunt()
self.spawn_not_so_basic_grunt()
self.basic_grunt_spawn_timer_ = 0
def spawn_basic_grunt(self):
starting_position = [self.universe_.width_*random.choice(self.enemy_x_spawn_locations), 0]
the_basic_grunt = BasicGrunt(starting_position, self.universe_)
self.universe_.create_enemy(the_basic_grunt)
the_basic_grunt.register(self.score_counter_)
def spawn_not_so_basic_grunt(self):
starting_position = [self.universe_.width_*random.choice(self.enemy_x_spawn_locations), 0]
not_so_basic_grunt = NotSoBasicGrunt(starting_position, self.universe_)
self.universe_.create_enemy(not_so_basic_grunt)
not_so_basic_grunt.register(self.score_counter_)