Restructure config.json with nested hierarchy and dot notation access
- Reorganized config.json into logical sections: connection, duck_spawning, duck_types, player_defaults, gameplay, features, limits - Enhanced get_config() method to support dot notation (e.g., 'duck_types.normal.xp') - Added comprehensive configurable parameters for all game mechanics - Updated player creation to use configurable starting values - Added individual timeout settings per duck type - Made XP rewards, accuracy mechanics, and game limits fully configurable - Fixed syntax errors in duck_spawn_loop function
This commit is contained in:
25
src/shop.py
25
src/shop.py
@@ -178,7 +178,7 @@ class ShopManager:
|
||||
|
||||
elif item_type == 'accuracy':
|
||||
# Increase accuracy up to 100%
|
||||
current_accuracy = player.get('accuracy', 65)
|
||||
current_accuracy = player.get('accuracy', 75)
|
||||
new_accuracy = min(current_accuracy + amount, 100)
|
||||
player['accuracy'] = new_accuracy
|
||||
return {
|
||||
@@ -279,7 +279,7 @@ class ShopManager:
|
||||
|
||||
elif item_type == 'sabotage_accuracy':
|
||||
# Reduce target's accuracy temporarily
|
||||
current_acc = player.get('accuracy', 65)
|
||||
current_acc = player.get('accuracy', 75)
|
||||
new_acc = max(current_acc + amount, 10) # Min 10% accuracy (amount is negative)
|
||||
player['accuracy'] = new_acc
|
||||
|
||||
@@ -325,6 +325,27 @@ class ShopManager:
|
||||
"new_total": new_jam
|
||||
}
|
||||
|
||||
elif item_type == 'attract_ducks':
|
||||
# Add bread effect to increase duck spawn rate
|
||||
if 'temporary_effects' not in player:
|
||||
player['temporary_effects'] = []
|
||||
|
||||
duration = item.get('duration', 600) # 10 minutes default
|
||||
spawn_multiplier = item.get('spawn_multiplier', 2.0) # 2x spawn rate default
|
||||
|
||||
effect = {
|
||||
'type': 'attract_ducks',
|
||||
'spawn_multiplier': spawn_multiplier,
|
||||
'expires_at': time.time() + duration
|
||||
}
|
||||
player['temporary_effects'].append(effect)
|
||||
|
||||
return {
|
||||
"type": "attract_ducks",
|
||||
"spawn_multiplier": spawn_multiplier,
|
||||
"duration": duration // 60 # return duration in minutes
|
||||
}
|
||||
|
||||
else:
|
||||
self.logger.warning(f"Unknown item type: {item_type}")
|
||||
return {"type": "unknown", "message": f"Unknown effect type: {item_type}"}
|
||||
|
||||
Reference in New Issue
Block a user