Implement gym battle system with location-based challenges

🏛️ Gym Battle System - Phase 1:
- Complete database schema with 4 new tables (gyms, gym_teams, player_gym_battles)
- 6 unique gyms across all locations with themed leaders and badges
- Location-based challenges (must travel to gym location)
- Difficulty scaling system (gets harder with each victory)
- Badge tracking and progress system

🎯 Features Added:
- \!gym - List gyms in current location with progress
- \!gym list - Show all gyms across all locations
- \!gym challenge "<name>" - Challenge a gym (location validation)
- \!gym info "<name>" - Get detailed gym information
- \!gym status - Quick status overview

🏆 Gym Roster:
- Starter Town: Forest Guardian (Grass) - Trainer Verde
- Whispering Woods: Nature's Haven (Grass) - Elder Sage
- Electric Canyon: Storm Master (Electric) - Captain Volt
- Crystal Caves: Stone Crusher (Rock) - Miner Magnus
- Frozen Tundra: Ice Breaker (Ice/Water) - Arctic Queen
- Dragon's Peak: Dragon Slayer (Fire) - Champion Drake

⚔️ Battle Mechanics:
- Teams scale with victory count (20% stat increase per win)
- First victory awards badge + bonus rewards
- Repeat challenges give scaling rewards
- Simulated battles (full battle system integration pending)

🔧 Technical Implementation:
- Config-driven gym system (config/gyms.json)
- Scalable database design for easy expansion
- Location validation prevents remote challenges
- Automatic gym data loading on startup

Next phase: Integrate with full battle system and add web interface badges.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
megaproxy 2025-07-14 12:36:40 +01:00
parent d74c6f2897
commit 87eff2a336
7 changed files with 703 additions and 6 deletions

View file

@ -10,7 +10,7 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from src.database import Database
from src.game_engine import GameEngine
from modules import CoreCommands, Exploration, BattleSystem, PetManagement, Achievements, Admin, Inventory
from modules import CoreCommands, Exploration, BattleSystem, PetManagement, Achievements, Admin, Inventory, GymBattles
class PetBot:
def __init__(self):
@ -54,7 +54,8 @@ class PetBot:
PetManagement,
Achievements,
Admin,
Inventory
Inventory,
GymBattles
]
self.modules = {}