Does not include upgrades

def air_dps(self) -> Union[int, float]:
        """ Does not include upgrades """
        if self._weapons:
            weapon = next(
                (weapon for weapon in self._weapons if weapon.type in {TargetType.Air.value, TargetType.Any.value}),
                None,
            )
            if weapon:
                return (weapon.damage * weapon.attacks) / weapon.speed
        return 0