# 🦆 DuckHunt IRC Bot A feature-rich IRC game bot where players hunt ducks, upgrade weapons, trade items, and compete on leaderboards! ## 🚀 Features ### 🎯 Core Game Mechanics - **Different Duck Types**: Common, Rare, Golden, and Armored ducks with varying rewards - **Weapon System**: Multiple weapon types (Basic Gun, Shotgun, Rifle) with durability - **Ammunition Types**: Standard, Rubber Bullets, Explosive Rounds - **Weapon Attachments**: Laser Sight, Extended Magazine, Bipod - **Accuracy & Reliability**: Skill-based hit/miss and reload failure mechanics ### 🏦 Economy System - **Shop**: Buy/sell weapons, attachments, and upgrades - **Banking**: Deposit coins for interest, take loans - **Trading**: Trade coins and items with other players - **Insurance**: Protect your equipment from damage - **Hunting Licenses**: Unlock premium features and bonuses ### 👤 Player Progression - **Hunter Levels**: Gain XP and level up for better abilities - **Account System**: Register accounts with password authentication - **Multiple Auth Methods**: Nick-based, hostmask, or registered account - **Persistent Stats**: All progress saved to SQLite database ### 🏆 Social Features - **Leaderboards**: Compete for top rankings - **Duck Alerts**: Get notified when rare ducks spawn - **Sabotage**: Interfere with other players (for a cost!) - **Comprehensive Help**: Detailed command reference ## 📋 Requirements - Python 3.7+ - asyncio support - SQLite3 (included with Python) ## 🛠️ Installation 1. Clone or download the bot files 2. Edit `config.json` with your IRC server details: ```json { "server": "irc.libera.chat", "port": 6697, "nick": "DuckHuntBot", "channels": ["#yourchannel"], "ssl": true, "sasl": false, "password": "", "duck_spawn_min": 60, "duck_spawn_max": 300 } ``` 3. Test the bot: ```bash python test_bot.py ``` 4. Run the bot: ```bash python duckhunt.py ``` ## 🎮 Commands ### 🎯 Hunting - `!bang` - Shoot at a duck (accuracy-based hit/miss) - `!reload` - Reload weapon (can fail based on reliability) - `!catch` - Catch a duck with your hands - `!bef` - Befriend a duck instead of shooting ### 🛒 Economy - `!shop` - View available items - `!buy ` - Purchase items - `!sell ` - Sell equipment - `!bank` - Banking services - `!trade ` - Trade with others ### 📊 Stats & Info - `!stats` - Detailed combat statistics - `!duckstats` - Personal hunting record - `!leaderboard` - Top players ranking - `!license` - Hunting license management ### ⚙️ Settings - `!alerts` - Toggle duck spawn notifications - `!help` - Complete command reference ### 🔐 Account System - `/msg BotNick register ` - Register account - `/msg BotNick identify ` - Login to account ### 🎮 Advanced - `!sabotage ` - Sabotage another hunter's weapon ## 🗂️ File Structure ``` duckhunt/ ├── src/ │ ├── duckhuntbot.py # Main IRC bot logic │ ├── game.py # Game mechanics and commands │ ├── db.py # SQLite database handling │ ├── auth.py # Authentication system │ ├── items.py # Duck types, weapons, attachments │ ├── logging_utils.py # Colored logging setup │ └── utils.py # IRC message parsing ├── config.json # Bot configuration ├── duckhunt.py # Main entry point ├── test_bot.py # Test script └── README.md # This file ``` ## 🎯 Game Balance ### Duck Types & Rewards - **Common Duck** 🦆: 1 coin, 10 XP (70% spawn rate) - **Rare Duck** 🦆✨: 3 coins, 25 XP (20% spawn rate) - **Golden Duck** 🥇🦆: 10 coins, 50 XP (8% spawn rate) - **Armored Duck** 🛡️🦆: 15 coins, 75 XP (2% spawn rate, 3 health) ### Weapon Stats - **Basic Gun**: 0% accuracy bonus, 100 durability, 1 attachment slot - **Shotgun**: -10% accuracy, 80 durability, 2 slots, spread shot - **Rifle**: +20% accuracy, 120 durability, 3 slots ### Progression - Players start with 100 coins and basic stats - Level up by gaining XP from successful hunts - Unlock better equipment and abilities as you progress ## 🔧 Configuration Edit `config.json` to customize: - IRC server and channels - Duck spawn timing (min/max seconds) - SSL and SASL authentication - Bot nickname ## 🛡️ Security - Passwords are hashed with PBKDF2 - Account data stored separately from temporary nick data - Multiple authentication methods supported - Database uses prepared statements to prevent injection ## 🐛 Troubleshooting 1. **Bot won't connect**: Check server/port in config.json 2. **Database errors**: Ensure write permissions in bot directory 3. **Commands not working**: Verify bot has joined the channel 4. **Test failures**: Run `python test_bot.py` to diagnose issues ## 🎖️ Contributing Feel free to add new features: - More duck types and weapons - Additional mini-games - Seasonal events - Guild/team systems - Advanced trading mechanics ## 📄 License This bot is provided as-is for educational and entertainment purposes. --- 🦆 **Happy Hunting!** 🦆