Added tower upgrading
Issue #8 (pylint problem resolved with this change) Upgrade system not done, only simplel upgrading added
This commit is contained in:
+23
-7
@@ -2,6 +2,7 @@
|
||||
import math
|
||||
import pygame as pg
|
||||
from game.util import tile_to_pixel
|
||||
from game.upgrade_data import UPGRADE_DATA
|
||||
|
||||
class Tower(pg.sprite.Sprite):
|
||||
# pylint: disable=too-many-instance-attributes
|
||||
@@ -20,23 +21,25 @@ class Tower(pg.sprite.Sprite):
|
||||
pos (tuple): World-space pixel centre position.
|
||||
tile_pos (tuple): Grid position the tower occupies.
|
||||
"""
|
||||
def __init__(self, game, pos, tile_pos, type, range, level=1):
|
||||
def __init__(self, game, pos, tile_pos, tower_type, level=1):
|
||||
super().__init__()
|
||||
self.game = game
|
||||
self.type = type
|
||||
self.image = self.game.assets[type]
|
||||
self.type = tower_type
|
||||
self.image = self.game.assets[tower_type]
|
||||
self.rect = self.image.get_rect()
|
||||
self.rect.center = pos
|
||||
|
||||
self.range = range
|
||||
self.level = level
|
||||
|
||||
self.range = UPGRADE_DATA[self.type][self.level]["range"]
|
||||
self.fire_rate = UPGRADE_DATA[self.type][self.level]["fire_rate"]
|
||||
self.damage = UPGRADE_DATA[self.type][self.level]["damage"]
|
||||
|
||||
self.selected = False
|
||||
self.angle = 0
|
||||
self.target = None
|
||||
|
||||
self.fire_rate = 180 # frames between shots — tune to taste
|
||||
self.fire_cooldown = 0
|
||||
self.damage = 50
|
||||
|
||||
self.pos = pos
|
||||
self.tile_pos = tile_pos
|
||||
self.level = level
|
||||
@@ -152,6 +155,19 @@ class Tower(pg.sprite.Sprite):
|
||||
self.animation.play_animation()
|
||||
self.fire_cooldown = self.fire_rate
|
||||
|
||||
def upgrade(self):
|
||||
"""Upgrade the tower by one Level"""
|
||||
print("upgrade")
|
||||
next_level = self.level + 1
|
||||
data = UPGRADE_DATA[self.type]
|
||||
if next_level not in data:
|
||||
return
|
||||
|
||||
self.level = next_level
|
||||
self.damage = data[next_level]['damage']
|
||||
self.fire_rate = data[next_level]['fire_rate']
|
||||
self.range = data[next_level]['range']
|
||||
|
||||
class TowerGroup(pg.sprite.Group):
|
||||
"""Sprite group that delegates rendering and updates to each tower."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user