Пример #1
0
    def fire(self):

        projectiles = []

        if self.firing and self.current_cool_down == 0 and self.parent.reactor.current_power >= self.power_use\
                and not self.parent.reactor.overheating:
            self.current_cool_down = self.cool_down
            self.parent.reactor.current_power -= self.power_use
            self.firing = False
            for projectile in range(self.projectiles):
                projectile = Projectile(
                    size=self.projectile_size,
                    pos=self.pos + pygame.Vector2(
                        uniform(-self.projectile_grouping,
                                self.projectile_grouping),
                        uniform(-self.projectile_grouping,
                                self.projectile_grouping)),
                    health=0,
                    speed=self.speed,
                    damage=self.damage,
                    color=self.projectile_color,
                    parent=self.parent,
                    direction=pygame.Vector2(
                        1, 0).rotate(-self.parent.angle +
                                     uniform(-self.spread, self.spread)),
                    effects=copy(self.effects))
                projectiles.append(projectile)

        return projectiles
Пример #2
0
    def __init__(self, id):
        self.id = id
        self.sprite = SpriteSheet(res.weapon)
        self.sprite.init(12, 12, 0.06)
        self.sprite.set_frame_loop(5, 5, False)

        self.slot = None  # WeaponSlot this weapon is in
        self.position = sf.Vector2(0, 0)

        self.firing = False  # Whether or not it's firing this turn
        self.powered = False  # Is the weapon powered or unpowered
        self.was_powered = False  # Was the weapon powered last turn? (Used for weapon slide out/in animation)
        self.target = None  # Target room

        self.charge = 0

        self.required_charge = 1
        self.required_power = 1  # Power consumption
        self.projectile_type = None
        self.num_shots = 2

        self.projectiles = [Projectile(), Projectile()]