diff --git a/config.json b/config.json index 5821dd2..cc4d7b3 100644 --- a/config.json +++ b/config.json @@ -15,6 +15,7 @@ "duck_spawn_min": 10, "duck_spawn_max": 30, "duck_timeout": 60, - "befriend_success_rate": 75 + "befriend_success_rate": 75, + "rearm_on_duck_shot": true } \ No newline at end of file diff --git a/src/game.py b/src/game.py index 2bab845..bf202ba 100644 --- a/src/game.py +++ b/src/game.py @@ -169,6 +169,11 @@ class DuckGame: new_level = self.bot.levels.calculate_player_level(player) if new_level != old_level: self.bot.levels.update_player_magazines(player) + + # If config option enabled, rearm all disarmed players when duck is shot + if self.bot.get_config('rearm_on_duck_shot', False): + self._rearm_all_disarmed_players() + self.db.save_database() return { 'success': True, @@ -230,6 +235,10 @@ class DuckGame: if new_level != old_level: self.bot.levels.update_player_magazines(player) + # If config option enabled, rearm all disarmed players when duck is befriended + if self.bot.get_config('rearm_on_duck_shot', False): + self._rearm_all_disarmed_players() + self.db.save_database() return { 'success': True, @@ -296,4 +305,21 @@ class DuckGame: 'max_ammo': bullets_per_mag, 'chargers': player['magazines'] - 1 # Spare magazines (excluding current) } - } \ No newline at end of file + } + + def _rearm_all_disarmed_players(self): + """Rearm all players who have been disarmed (gun confiscated)""" + try: + rearmed_count = 0 + for player_name, player_data in self.db.players.items(): + if player_data.get('gun_confiscated', False): + player_data['gun_confiscated'] = False + # Update magazines based on player level + self.bot.levels.update_player_magazines(player_data) + player_data['current_ammo'] = player_data.get('bullets_per_magazine', 6) + rearmed_count += 1 + + if rearmed_count > 0: + self.logger.info(f"Auto-rearmed {rearmed_count} disarmed players after duck shot") + except Exception as e: + self.logger.error(f"Error in _rearm_all_disarmed_players: {e}") \ No newline at end of file