From c430bc339657b4637bac99d122c09f864177a708 Mon Sep 17 00:00:00 2001 From: Pavan-0228 Date: Fri, 8 Aug 2025 21:07:22 +0530 Subject: [PATCH 1/4] Refactor code structure for improved readability and maintainability --- Games/Medieval_RPG/README.md | 221 +++ Games/Medieval_RPG/game.js | 2090 +++++++++++++++++++++++++++ Games/Medieval_RPG/index.html | 166 +++ Games/Medieval_RPG/styles.css | 743 ++++++++++ assets/images/Medieval_RPG.png | Bin 0 -> 105592 bytes assets/images/Medieval_RPG_MAP2.png | Bin 0 -> 138481 bytes assets/js/gamesData.json | 7 +- 7 files changed, 3226 insertions(+), 1 deletion(-) create mode 100644 Games/Medieval_RPG/README.md create mode 100644 Games/Medieval_RPG/game.js create mode 100644 Games/Medieval_RPG/index.html create mode 100644 Games/Medieval_RPG/styles.css create mode 100644 assets/images/Medieval_RPG.png create mode 100644 assets/images/Medieval_RPG_MAP2.png diff --git a/Games/Medieval_RPG/README.md b/Games/Medieval_RPG/README.md new file mode 100644 index 000000000..fe035fa16 --- /dev/null +++ b/Games/Medieval_RPG/README.md @@ -0,0 +1,221 @@ +# **Medieval RPG - Kingdom Quest** โš”๏ธ + +--- + +
+ +## **Description ๐Ÿ“ƒ** + + + +- **Medieval RPG - Kingdom Quest** is a complete 2D action RPG game built with HTML5 Canvas, CSS3, and JavaScript +- Experience an immersive medieval fantasy world with **keyboard-only combat**, **automatic inventory management**, and **progressive character development** +- Explore **4 unique themed maps**, battle enemies with **5 different swords**, complete **dynamic quests**, and witness **stunning attack animations** with particle effects +- Features a comprehensive **equipment system**, **automatic item collection**, **portal-based map travel**, and **real-time combat** with critical hits and special attacks +- Perfect blend of classic RPG mechanics with modern web gaming technology + +## **functionalities ๐ŸŽฎ** + + + +- **๐Ÿ—บ๏ธ Multi-Map World System**: 4 explorable areas (Village Outskirts, Dark Forest, Ancient Ruins, Dragon's Lair) +- **โš”๏ธ Keyboard Combat System**: Pure keyboard-based combat with no UI modals +- **๐ŸŽ’ Automatic Inventory**: Items are automatically collected when walking over them +- **๐Ÿ—ก๏ธ Progressive Weapon System**: 5 swords from Rusty to Legendary with increasing power +- **โœจ Attack Animations**: Particle effects, damage numbers, and critical hit animations +- **๐Ÿ“œ Dynamic Quest System**: Progressive quests with completion rewards +- **๐Ÿช Shop System**: Buy equipment and items from NPCs +- **๐ŸŽฏ Portal Travel**: Fast travel between different map areas +- **๐Ÿ“Š Character Progression**: Level up system with stats and experience +- **๐Ÿ’ฐ Economy System**: Gold-based trading and equipment purchasing +- **๐ŸŽจ Visual Effects**: Particle systems, floating damage numbers, and themed environments + +
+ +## **How to play? ๐Ÿ•น๏ธ** + + + +### **๐ŸŽฎ Controls:** + +- **WASD / Arrow Keys**: Move your character around the world +- **TAB**: Attack nearby enemies (automatic targeting) +- **F**: Use equipped weapon's special attack +- **Q**: Quick heal using available potions +- **SPACE**: Interact with NPCs, shops, and special objects +- **M**: Open map selection modal to travel between areas +- **ESC**: Close any open modals + +### **๐Ÿš€ Getting Started:** + +1. **Launch the Game**: Open `index.html` in your web browser +2. **Learn the Basics**: Start in Village Outskirts to get familiar with controls +3. **Collect Equipment**: Walk over items to automatically add them to inventory +4. **Combat Training**: Use TAB to attack enemies, F for special attacks +5. **Explore Maps**: Press M to travel to different areas as you get stronger +6. **Complete Quests**: Check the quest panel for objectives and rewards + +### **โš”๏ธ Combat System:** + +- **Automatic Targeting**: TAB attacks the nearest enemy within range +- **Special Attacks**: Each sword has unique special abilities (F key) +- **Critical Hits**: Random chance for extra damage with special effects +- **Health Management**: Use Q to consume health potions during combat +- **Equipment Matters**: Better swords increase damage and unlock new specials + +### **๐Ÿ—บ๏ธ World Exploration:** + +- **Village Outskirts** (โญ): Starting area with basic enemies and equipment +- **Dark Forest** (โญโญ): Tougher enemies, enhanced weapons, forest treasures +- **Ancient Ruins** (โญโญโญ): Rare artifacts, challenging combat, ancient secrets +- **Dragon's Lair** (โญโญโญโญโญ): End-game content, legendary equipment, ultimate challenges + +### **๐Ÿ“ˆ Character Progression:** + +- **Level Up**: Gain experience by defeating enemies and completing quests +- **Equipment Upgrades**: Find and purchase better weapons and armor +- **Stat Growth**: Increase strength, defense, agility, and magic +- **Inventory Management**: 20-slot inventory with automatic item collection + +
+ +## **Screenshots ๐Ÿ“ธ** + +
+ +![Medieval RPG Game Screenshot](../../assets/images/Medieval_RPG_MAP1.png) +![Medieval RPG Game Screenshot](../../assets/images/Medieval_RPG_MAP2.png) + +_Screenshots showing the game's medieval interface, combat animations, map selection modal, and character progression_ + +
+ +## **Working video ๐Ÿ“น** + + + +_Demo video showing gameplay, combat system, map exploration, and all game features in action_ + +
+ +## **Technical Features ๐Ÿ› ๏ธ** + +### **Frontend Technologies:** + +- **HTML5 Canvas**: 800x600 game rendering surface with 2D context +- **CSS3**: Medieval-themed styling with gradients, animations, and responsive design +- **JavaScript ES6**: Object-oriented game engine using class-based architecture +- **Custom Game Engine**: Delta-time based updates, collision detection, particle systems + +### **Game Systems:** + +- **Real-time Rendering**: 60 FPS game loop with smooth animations +- **Particle Effects**: Attack animations, damage numbers, critical hit effects +- **Collision Detection**: Precise rectangular collision system +- **State Management**: Persistent game state with local storage support +- **Modal System**: Interactive UI modals for shops and map selection +- **Responsive Design**: Works on desktop and tablet devices + +### **File Structure:** + +``` +Medieval RPG/ +โ”œโ”€โ”€ index.html # Game UI structure and layout +โ”œโ”€โ”€ styles.css # Medieval-themed styling and animations +โ”œโ”€โ”€ game.js # Complete game engine and logic (2000+ lines) +โ””โ”€โ”€ README.md # This documentation file +``` + +
+ +## **Installation & Setup ๐Ÿš€** + +### **Quick Start:** + +1. **Clone or Download** this repository +2. **Navigate** to the game directory +3. **Start Local Server**: + + ```bash + # Using Python 3 + python -m http.server 8000 + + # Using Node.js (if you have it) + npx serve . + ``` + +4. **Open Browser**: Go to `http://localhost:8000` +5. **Start Playing**: The game loads automatically! + +### **No Installation Required:** + +- Pure web technologies - no dependencies +- Works in any modern web browser +- No build process or compilation needed +- Cross-platform compatible + +
+ +## **Game Features Highlights โญ** + +### **๐ŸŽฏ Combat System:** + +- **Action-based Combat**: Real-time fighting with keyboard controls +- **5 Progressive Swords**: Rusty โ†’ Iron โ†’ Steel โ†’ Enchanted โ†’ Legendary +- **Special Abilities**: Each weapon has unique special attacks +- **Visual Feedback**: Particle effects, screen shake, damage numbers +- **Strategic Depth**: Critical hits, cooldowns, and resource management + +### **๐ŸŒ World Design:** + +- **4 Themed Environments**: Each with unique aesthetics and challenges +- **Progressive Difficulty**: From peaceful village to dangerous dragon's lair +- **Portal System**: Seamless travel between different areas +- **Dynamic Generation**: Enemies, items, and treasures spawn dynamically + +### **๐Ÿ“Š RPG Mechanics:** + +- **Character Progression**: Level-based stat growth and skill development +- **Equipment System**: Weapons, armor, and accessories with stat bonuses +- **Quest System**: Dynamic objectives with meaningful rewards +- **Economy**: Gold-based trading system with shop interactions + +
+ +## **Controls Reference ๐ŸŽฎ** + +| Key | Action | Description | +| ------- | -------------- | ----------------------------------------- | +| `WASD` | Movement | Move character in four directions | +| `โ†‘โ†“โ†โ†’` | Movement | Alternative movement controls | +| `TAB` | Attack | Attack nearest enemy within range | +| `F` | Special Attack | Use equipped weapon's special ability | +| `Q` | Quick Heal | Consume health potion if available | +| `SPACE` | Interact | Talk to NPCs, use shops, activate objects | +| `M` | Map Selection | Open world map travel interface | +| `ESC` | Close Modals | Close any open interface windows | + +
+ +## **Contributing ๐Ÿค** + +Feel free to contribute to this project by: + +- **Reporting Bugs**: Submit issues for any problems found +- **Suggesting Features**: Propose new gameplay mechanics or improvements +- **Code Contributions**: Submit pull requests with enhancements +- **Documentation**: Help improve game documentation and guides + +
+ +## **License ๐Ÿ“„** + +This project is open source and available under the MIT License. Feel free to use, modify, and distribute as needed. + +
+ +--- + +**๐Ÿฐ Embark on your medieval adventure today! โš”๏ธ** + +_Built with โค๏ธ using pure web technologies_ diff --git a/Games/Medieval_RPG/game.js b/Games/Medieval_RPG/game.js new file mode 100644 index 000000000..b095ab33a --- /dev/null +++ b/Games/Medieval_RPG/game.js @@ -0,0 +1,2090 @@ +// Medieval RPG - Complete Game with Keyboard Combat and Swords +class MedievalRPG { + constructor() { + this.canvas = document.getElementById("gameCanvas"); + this.ctx = this.canvas.getContext("2d"); + this.gameWidth = this.canvas.width; + this.gameHeight = this.canvas.height; + + // Game state + this.gameRunning = true; + this.lastTime = 0; + this.deltaTime = 0; + this.inCombat = false; + this.combatCooldown = 0; + + // Player object + this.player = { + x: 400, + y: 300, + width: 32, + height: 32, + speed: 180, + level: 1, + experience: 0, + experienceToNext: 100, + hp: 100, + maxHp: 100, + gold: 50, + score: 0, + inventory: [], + maxInventory: 20, + equipment: { + weapon: null, + armor: null, + accessory: null, + }, + stats: { + strength: 10, + defense: 5, + agility: 8, + magic: 5, + }, + isAttacking: false, + attackCooldown: 0, + lastAttackTime: 0, + attackAnimation: { + active: false, + duration: 0, + type: "normal", // 'normal', 'special', 'critical' + particles: [], + }, + }; + + // Quests tracking + this.quests = { + swordFound: false, + treasuresCollected: 0, + monstersDefeated: 0, + completedQuests: [], + availableQuests: [ + { + id: "sword_quest", + title: "๐Ÿ—ก๏ธ Find the Lost Sword", + description: + "Search the ancient ruins for the legendary blade", + requirement: "swordFound", + target: 1, + completed: false, + reward: { gold: 200, xp: 100, item: "Health Potion" }, + }, + { + id: "treasure_quest", + title: "๐Ÿ’ฐ Treasure Hunter", + description: "Collect 10 treasures", + requirement: "treasuresCollected", + target: 10, + completed: false, + reward: { gold: 500, xp: 250, item: "Magic Ring" }, + }, + { + id: "monster_quest", + title: "โš”๏ธ Monster Slayer", + description: "Defeat 5 monsters", + requirement: "monstersDefeated", + target: 5, + completed: false, + reward: { gold: 300, xp: 150, item: "Iron Armor" }, + }, + ], + }; + + // Current map and map system + this.currentMap = 0; + this.maps = [ + { + name: "Village Outskirts", + width: 1600, + height: 1200, + theme: "grass", + emoji: "๐Ÿ˜๏ธ", + difficulty: 1, + description: + "The peaceful village outskirts where your adventure begins", + rewards: "Basic equipment and starting resources", + }, + { + name: "Dark Forest", + width: 2000, + height: 1600, + theme: "forest", + emoji: "๐ŸŒฒ", + difficulty: 2, + description: + "A mysterious forest filled with dangerous creatures", + rewards: "Enhanced weapons and forest treasures", + }, + { + name: "Ancient Ruins", + width: 1800, + height: 1400, + theme: "ruins", + emoji: "๐Ÿ›๏ธ", + difficulty: 3, + description: "Crumbling ruins that hold ancient secrets", + rewards: "Rare artifacts and enchanted items", + }, + { + name: "Dragon's Lair", + width: 2400, + height: 1800, + theme: "cave", + emoji: "๐Ÿ‰", + difficulty: 5, + description: "The final challenge - face the ancient dragon", + rewards: "Legendary equipment and ultimate glory", + }, + ]; + + // Animation particles system + this.particles = []; + this.damageNumbers = []; + + // Input handling + this.keys = {}; + this.setupInput(); + + // Game objects + this.treasures = []; + this.enemies = []; + this.npcs = []; + this.swords = []; + this.items = []; + + // Game map + this.map = { + width: this.maps[this.currentMap].width, + height: this.maps[this.currentMap].height, + tiles: [], + }; + + // Map portals for travel + this.portals = []; + + // Camera + this.camera = { + x: 0, + y: 0, + }; + + // Initialize game + this.initializeGame(); + this.gameLoop(); + } + + setupInput() { + document.addEventListener("keydown", (e) => { + this.keys[e.key.toLowerCase()] = true; + + // Combat controls + if (e.key.toLowerCase() === "tab") { + e.preventDefault(); + this.performAttack(); + } + if (e.key.toLowerCase() === "f") { + this.useSpecialAttack(); + } + if (e.key.toLowerCase() === "q") { + this.usePotion(); + } + if (e.key === " ") { + this.handleInteraction(); + } + if (e.key.toLowerCase() === "m") { + this.showMapSelection(); + } + }); + + document.addEventListener("keyup", (e) => { + this.keys[e.key.toLowerCase()] = false; + }); + } + + initializeGame() { + // Generate map + this.generateMap(); + + // Create swords (special items) + this.createSwords(); + + // Create treasures + this.createTreasures(); + + // Create enemies + this.createEnemies(); + + // Create NPCs + this.createNPCs(); + + // Create items and potions + this.createItems(); + + // Create portals between maps + this.createPortals(); + + // Give player starting equipment + this.giveStartingEquipment(); + + // Initialize inventory UI + this.updateInventoryUI(); + this.updateUI(); + + // Welcome message + this.showMessage( + "๐Ÿฐ Welcome to Kingdom Quest! Find swords, defeat monsters, and collect treasures!", + "success" + ); + this.showMessage( + "โš”๏ธ Press TAB to attack enemies, F for special attacks, Q to use potions", + "info" + ); + } + + giveStartingEquipment() { + // Give player a basic sword to start + const basicSword = { + name: "Rusty Sword", + icon: "๐Ÿ—ก๏ธ", + type: "weapon", + damage: 15, + special: "Quick Strike", + value: 25, + rarity: "common", + }; + + this.addToInventory(basicSword); + this.player.equipment.weapon = basicSword; + this.showMessage( + "๐Ÿ—ก๏ธ You start with a Rusty Sword! Press TAB to attack enemies.", + "success" + ); + } + + generateMap() { + const currentMapData = this.maps[this.currentMap]; + const tileSize = 32; + const cols = Math.ceil(currentMapData.width / tileSize); + const rows = Math.ceil(currentMapData.height / tileSize); + + this.map.width = currentMapData.width; + this.map.height = currentMapData.height; + this.map.tiles = []; + + for (let y = 0; y < rows; y++) { + this.map.tiles[y] = []; + for (let x = 0; x < cols; x++) { + let tile = this.getMapThemeTile(currentMapData.theme); + this.map.tiles[y][x] = tile; + } + } + } + + getMapThemeTile(theme) { + const random = Math.random(); + + switch (theme) { + case "grass": + if (random < 0.1) return "stone"; + else if (random < 0.15) return "tree"; + else if (random < 0.18) return "water"; + return "grass"; + + case "forest": + if (random < 0.4) return "tree"; + else if (random < 0.5) return "dark_tree"; + else if (random < 0.6) return "stone"; + return "grass"; + + case "ruins": + if (random < 0.3) return "stone"; + else if (random < 0.4) return "ruins_wall"; + else if (random < 0.5) return "ruins_floor"; + return "grass"; + + case "cave": + if (random < 0.5) return "cave_wall"; + else if (random < 0.6) return "cave_floor"; + else if (random < 0.7) return "lava"; + return "stone"; + + default: + return "grass"; + } + } + + createPortals() { + this.portals = []; + + // Only create portals if not on the last map + if (this.currentMap < this.maps.length - 1) { + // Portal to next map + this.portals.push({ + x: this.map.width - 100, + y: this.map.height / 2, + width: 40, + height: 40, + targetMap: this.currentMap + 1, + icon: "๐ŸŒ€", + name: `Portal to ${this.maps[this.currentMap + 1].name}`, + }); + } + + // Portal to previous map (if not on first map) + if (this.currentMap > 0) { + this.portals.push({ + x: 50, + y: this.map.height / 2, + width: 40, + height: 40, + targetMap: this.currentMap - 1, + icon: "๐ŸŒ€", + name: `Portal to ${this.maps[this.currentMap - 1].name}`, + }); + } + } + + createSwords() { + const swordTypes = [ + { + name: "Iron Sword", + icon: "โš”๏ธ", + damage: 25, + special: "Power Strike", + value: 100, + rarity: "uncommon", + points: 500, + }, + { + name: "Silver Blade", + icon: "๐Ÿ—ก๏ธ", + damage: 35, + special: "Lightning Cut", + value: 200, + rarity: "rare", + points: 800, + }, + { + name: "Enchanted Sword", + icon: "โœจ", + damage: 50, + special: "Magic Slash", + value: 350, + rarity: "epic", + points: 1200, + }, + { + name: "Dragon Slayer", + icon: "๐Ÿฒ", + damage: 75, + special: "Dragon's Wrath", + value: 500, + rarity: "legendary", + points: 2000, + }, + { + name: "Excalibur", + icon: "๐Ÿ‘‘", + damage: 100, + special: "Divine Strike", + value: 1000, + rarity: "mythic", + points: 5000, + }, + ]; + + // Place swords strategically around the map + swordTypes.forEach((swordType, index) => { + const sword = { + x: 200 + index * 300 + Math.random() * 200, + y: 200 + index * 200 + Math.random() * 200, + width: 24, + height: 24, + type: swordType, + collected: false, + glowing: true, + }; + this.swords.push(sword); + }); + } + + createTreasures() { + const treasureTypes = [ + { + name: "Gold Coin", + icon: "๐Ÿช™", + value: 10, + rarity: "common", + points: 50, + }, + { + name: "Silver Chalice", + icon: "๐Ÿ†", + value: 50, + rarity: "uncommon", + points: 200, + }, + { + name: "Ancient Scroll", + icon: "๐Ÿ“œ", + value: 75, + rarity: "rare", + points: 300, + }, + { + name: "Magic Crystal", + icon: "๐Ÿ’Ž", + value: 100, + rarity: "epic", + points: 500, + }, + { + name: "Dragon Egg", + icon: "๐Ÿฅš", + value: 200, + rarity: "legendary", + points: 1000, + }, + ]; + + // Place treasures randomly + for (let i = 0; i < 40; i++) { + const treasureType = + treasureTypes[Math.floor(Math.random() * treasureTypes.length)]; + const treasure = { + x: Math.random() * (this.map.width - 50) + 25, + y: Math.random() * (this.map.height - 50) + 25, + width: 20, + height: 20, + type: treasureType, + collected: false, + }; + this.treasures.push(treasure); + } + } + + createEnemies() { + const enemyTypes = [ + { + name: "Goblin", + icon: "๐Ÿ‘น", + hp: 30, + maxHp: 30, + damage: 8, + xp: 25, + gold: 15, + speed: 50, + }, + { + name: "Orc Warrior", + icon: "๐Ÿ‘บ", + hp: 50, + maxHp: 50, + damage: 12, + xp: 40, + gold: 25, + speed: 40, + }, + { + name: "Skeleton", + icon: "๐Ÿ’€", + hp: 35, + maxHp: 35, + damage: 10, + xp: 30, + gold: 20, + speed: 45, + }, + { + name: "Dark Knight", + icon: "๐Ÿ–ค", + hp: 80, + maxHp: 80, + damage: 18, + xp: 60, + gold: 50, + speed: 35, + }, + ]; + + // Place enemies around the map + for (let i = 0; i < 25; i++) { + const enemyType = + enemyTypes[Math.floor(Math.random() * enemyTypes.length)]; + const enemy = { + x: Math.random() * (this.map.width - 100) + 50, + y: Math.random() * (this.map.height - 100) + 50, + width: 32, + height: 32, + type: enemyType, + hp: enemyType.hp, + maxHp: enemyType.maxHp, + isAlive: true, + lastAttackTime: 0, + moveDirection: Math.random() * Math.PI * 2, + changeDirectionTime: 0, + }; + this.enemies.push(enemy); + } + } + + createNPCs() { + const npcTypes = [ + { + name: "Village Merchant", + icon: "๐Ÿง™โ€โ™‚๏ธ", + type: "shop", + dialogue: "Welcome! I sell weapons, armor, and potions!", + }, + { + name: "Wise Elder", + icon: "๐Ÿ‘ด", + type: "quest", + dialogue: "Find the legendary swords to save our kingdom!", + }, + { + name: "Healer", + icon: "๐Ÿง™โ€โ™€๏ธ", + type: "healer", + dialogue: "I can restore your health for gold.", + }, + ]; + + npcTypes.forEach((npcType, index) => { + const npc = { + x: 100 + index * 400, + y: 100, + width: 32, + height: 32, + type: npcType, + }; + this.npcs.push(npc); + }); + } + + createItems() { + const itemTypes = [ + { + name: "Health Potion", + icon: "๐Ÿงช", + type: "potion", + effect: "heal", + value: 50, + price: 30, + }, + { + name: "Iron Armor", + icon: "๐Ÿ›ก๏ธ", + type: "armor", + defense: 10, + value: 80, + price: 100, + }, + { + name: "Magic Ring", + icon: "๐Ÿ’", + type: "accessory", + magic: 5, + value: 120, + price: 150, + }, + ]; + + // Place some items around the map + for (let i = 0; i < 15; i++) { + const itemType = + itemTypes[Math.floor(Math.random() * itemTypes.length)]; + const item = { + x: Math.random() * (this.map.width - 50) + 25, + y: Math.random() * (this.map.height - 50) + 25, + width: 20, + height: 20, + type: itemType, + collected: false, + }; + this.items.push(item); + } + } + + gameLoop(currentTime = 0) { + this.deltaTime = (currentTime - this.lastTime) / 1000; + this.lastTime = currentTime; + + if (this.gameRunning) { + this.update(); + this.render(); + } + + requestAnimationFrame((time) => this.gameLoop(time)); + } + + update() { + // Update timers + if (this.combatCooldown > 0) { + this.combatCooldown -= this.deltaTime; + } + if (this.player.attackCooldown > 0) { + this.player.attackCooldown -= this.deltaTime; + } + + // Update attack animations + this.updateAttackAnimations(); + + // Update particles + this.updateParticles(); + + // Update damage numbers + this.updateDamageNumbers(); + + // Update player + this.updatePlayer(); + + // Update camera + this.updateCamera(); + + // Update enemies + this.updateEnemies(); + + // Check collisions + this.checkCollisions(); + + // Update combat status + this.updateCombatStatus(); + + // Check quest completion + this.checkQuestCompletion(); + } + + updatePlayer() { + let moveX = 0; + let moveY = 0; + + // Handle movement input + if (this.keys["w"] || this.keys["arrowup"]) moveY = -1; + if (this.keys["s"] || this.keys["arrowdown"]) moveY = 1; + if (this.keys["a"] || this.keys["arrowleft"]) moveX = -1; + if (this.keys["d"] || this.keys["arrowright"]) moveX = 1; + + // Normalize diagonal movement + if (moveX !== 0 && moveY !== 0) { + moveX *= 0.707; + moveY *= 0.707; + } + + // Apply movement + const newX = this.player.x + moveX * this.player.speed * this.deltaTime; + const newY = this.player.y + moveY * this.player.speed * this.deltaTime; + + // Check bounds + if (newX >= 0 && newX <= this.map.width - this.player.width) { + this.player.x = newX; + } + if (newY >= 0 && newY <= this.map.height - this.player.height) { + this.player.y = newY; + } + } + + updateCamera() { + this.camera.x = this.player.x - this.gameWidth / 2; + this.camera.y = this.player.y - this.gameHeight / 2; + + this.camera.x = Math.max( + 0, + Math.min(this.camera.x, this.map.width - this.gameWidth) + ); + this.camera.y = Math.max( + 0, + Math.min(this.camera.y, this.map.height - this.gameHeight) + ); + } + + updateEnemies() { + this.enemies.forEach((enemy) => { + if (!enemy.isAlive) return; + + // Simple AI: move randomly and attack player if nearby + enemy.changeDirectionTime += this.deltaTime; + if (enemy.changeDirectionTime > 2) { + enemy.moveDirection = Math.random() * Math.PI * 2; + enemy.changeDirectionTime = 0; + } + + // Move enemy + const moveX = + Math.cos(enemy.moveDirection) * + enemy.type.speed * + this.deltaTime; + const moveY = + Math.sin(enemy.moveDirection) * + enemy.type.speed * + this.deltaTime; + + enemy.x += moveX; + enemy.y += moveY; + + // Keep enemies in bounds + enemy.x = Math.max( + 0, + Math.min(enemy.x, this.map.width - enemy.width) + ); + enemy.y = Math.max( + 0, + Math.min(enemy.y, this.map.height - enemy.height) + ); + + // Check if enemy can attack player + const distance = this.getDistance(this.player, enemy); + if (distance < 50 && Date.now() - enemy.lastAttackTime > 2000) { + this.enemyAttackPlayer(enemy); + enemy.lastAttackTime = Date.now(); + } + }); + } + + checkCollisions() { + // Check sword collection + this.swords.forEach((sword) => { + if (!sword.collected && this.isColliding(this.player, sword)) { + this.collectSword(sword); + } + }); + + // Check treasure collection + this.treasures.forEach((treasure) => { + if ( + !treasure.collected && + this.isColliding(this.player, treasure) + ) { + this.collectTreasure(treasure); + } + }); + + // Check item collection + this.items.forEach((item) => { + if (!item.collected && this.isColliding(this.player, item)) { + this.collectItem(item); + } + }); + + // Check portal interactions + this.portals.forEach((portal) => { + if (this.isColliding(this.player, portal)) { + this.showPortalPrompt(portal); + } + }); + } + + updateAttackAnimations() { + if (this.player.attackAnimation.active) { + this.player.attackAnimation.duration -= this.deltaTime; + + if (this.player.attackAnimation.duration <= 0) { + this.player.attackAnimation.active = false; + this.player.attackAnimation.particles = []; + } else { + // Update attack particles + this.player.attackAnimation.particles.forEach((particle) => { + particle.x += particle.vx * this.deltaTime; + particle.y += particle.vy * this.deltaTime; + particle.life -= this.deltaTime; + particle.alpha = particle.life / particle.maxLife; + }); + + // Remove dead particles + this.player.attackAnimation.particles = + this.player.attackAnimation.particles.filter( + (p) => p.life > 0 + ); + } + } + } + + updateParticles() { + this.particles.forEach((particle) => { + particle.x += particle.vx * this.deltaTime; + particle.y += particle.vy * this.deltaTime; + particle.life -= this.deltaTime; + particle.alpha = particle.life / particle.maxLife; + }); + + this.particles = this.particles.filter((p) => p.life > 0); + } + + updateDamageNumbers() { + this.damageNumbers.forEach((dmg) => { + dmg.y -= 50 * this.deltaTime; + dmg.life -= this.deltaTime; + dmg.alpha = dmg.life / dmg.maxLife; + }); + + this.damageNumbers = this.damageNumbers.filter((d) => d.life > 0); + } + + checkQuestCompletion() { + this.quests.availableQuests.forEach((quest) => { + if (!quest.completed) { + let progress = 0; + + switch (quest.requirement) { + case "swordFound": + progress = this.quests.swordFound ? 1 : 0; + break; + case "treasuresCollected": + progress = this.quests.treasuresCollected; + break; + case "monstersDefeated": + progress = this.quests.monstersDefeated; + break; + } + + if (progress >= quest.target && !quest.completed) { + this.completeQuest(quest); + } + } + }); + } + + completeQuest(quest) { + quest.completed = true; + this.quests.completedQuests.push(quest.id); + + // Give rewards + this.player.gold += quest.reward.gold; + this.addExperience(quest.reward.xp); + + // Add reward item to inventory + if (quest.reward.item) { + const rewardItem = this.createRewardItem(quest.reward.item); + this.addToInventory(rewardItem); + } + + this.showMessage(`๐ŸŽ‰ Quest Completed: ${quest.title}!`, "success"); + this.showMessage( + `๐Ÿ’ฐ Received: ${quest.reward.gold} gold, ${quest.reward.xp} XP`, + "success" + ); + if (quest.reward.item) { + this.showMessage(`๐Ÿ“ฆ Received: ${quest.reward.item}!`, "success"); + } + + this.updateQuestUI(); + this.updateUI(); + } + + createRewardItem(itemName) { + const rewardItems = { + "Health Potion": { + name: "Health Potion", + icon: "๐Ÿงช", + type: "potion", + effect: "heal", + value: 50, + }, + "Magic Ring": { + name: "Magic Ring", + icon: "๐Ÿ’", + type: "accessory", + magic: 10, + value: 200, + }, + "Iron Armor": { + name: "Iron Armor", + icon: "๐Ÿ›ก๏ธ", + type: "armor", + defense: 15, + value: 150, + }, + }; + + return rewardItems[itemName] || rewardItems["Health Potion"]; + } + + showPortalPrompt(portal) { + if (!this.portalPromptShown) { + this.showMessage( + `๐ŸŒ€ Press SPACE to travel to ${portal.name}`, + "info" + ); + this.portalPromptShown = true; + this.nearPortal = portal; + + setTimeout(() => { + this.portalPromptShown = false; + }, 3000); + } + } + + travelToMap(mapIndex) { + if (mapIndex >= 0 && mapIndex < this.maps.length) { + this.currentMap = mapIndex; + + // Reset map and objects + this.map.width = this.maps[this.currentMap].width; + this.map.height = this.maps[this.currentMap].height; + + // Regenerate everything for new map + this.generateMap(); + this.createSwords(); + this.createTreasures(); + this.createEnemies(); + this.createNPCs(); + this.createItems(); + this.createPortals(); + + // Reset player position + this.player.x = 100; + this.player.y = 100; + + // Update current map display + const currentMapElement = + document.getElementById("current-map-name"); + if (currentMapElement) { + currentMapElement.textContent = this.maps[this.currentMap].name; + } + + this.showMessage( + `๐Ÿ—บ๏ธ Traveled to ${this.maps[this.currentMap].name}!`, + "success" + ); + this.showMessage( + `๐Ÿ“œ ${this.maps[this.currentMap].description}`, + "info" + ); + } + } + + isColliding(obj1, obj2) { + return ( + obj1.x < obj2.x + obj2.width && + obj1.x + obj1.width > obj2.x && + obj1.y < obj2.y + obj2.height && + obj1.y + obj1.height > obj2.y + ); + } + + getDistance(obj1, obj2) { + const dx = obj1.x + obj1.width / 2 - (obj2.x + obj2.width / 2); + const dy = obj1.y + obj1.height / 2 - (obj2.y + obj2.height / 2); + return Math.sqrt(dx * dx + dy * dy); + } + + collectSword(sword) { + sword.collected = true; + + const swordItem = { + name: sword.type.name, + icon: sword.type.icon, + type: "weapon", + damage: sword.type.damage, + special: sword.type.special, + value: sword.type.value, + rarity: sword.type.rarity, + }; + + this.addToInventory(swordItem); + this.player.score += sword.type.points; + this.player.gold += sword.type.value; + + // Auto-equip if better than current weapon + if ( + !this.player.equipment.weapon || + sword.type.damage > this.player.equipment.weapon.damage + ) { + this.player.equipment.weapon = swordItem; + this.showMessage(`โš”๏ธ Equipped ${sword.type.name}!`, "success"); + } + + // Update quest progress + this.quests.swordFound = true; + this.updateQuestUI(); + + this.showMessage( + `๐Ÿ—ก๏ธ Found ${sword.type.name}! +${sword.type.points} points`, + "success" + ); + this.updateUI(); + this.updateInventoryUI(); + } + + collectTreasure(treasure) { + treasure.collected = true; + + const treasureItem = { + name: treasure.type.name, + icon: treasure.type.icon, + type: "treasure", + value: treasure.type.value, + rarity: treasure.type.rarity, + }; + + this.addToInventory(treasureItem); + this.player.gold += treasure.type.value; + this.player.score += treasure.type.points; + this.addExperience(treasure.type.points / 10); + + // Update quest progress + this.quests.treasuresCollected++; + this.updateQuestUI(); + + this.showMessage( + `๐Ÿ’ฐ Found ${treasure.type.name}! +${treasure.type.points} points`, + "success" + ); + this.updateUI(); + this.updateInventoryUI(); + } + + collectItem(item) { + item.collected = true; + + this.addToInventory({ + name: item.type.name, + icon: item.type.icon, + type: item.type.type, + effect: item.type.effect, + value: item.type.value, + defense: item.type.defense, + magic: item.type.magic, + }); + + this.showMessage(`๐Ÿ“ฆ Found ${item.type.name}!`, "success"); + this.updateInventoryUI(); + } + + addToInventory(item) { + if (this.player.inventory.length < this.player.maxInventory) { + this.player.inventory.push(item); + return true; + } else { + this.showMessage("โŒ Inventory full!", "error"); + return false; + } + } + + performAttack() { + if (this.player.attackCooldown > 0) return; + + // Find nearest enemy within attack range + let nearestEnemy = null; + let nearestDistance = Infinity; + + this.enemies.forEach((enemy) => { + if (!enemy.isAlive) return; + + const distance = this.getDistance(this.player, enemy); + if (distance < 60 && distance < nearestDistance) { + nearestEnemy = enemy; + nearestDistance = distance; + } + }); + + if (nearestEnemy) { + this.attackEnemy(nearestEnemy); + } else { + this.showMessage("โš”๏ธ No enemies in range!", "warning"); + } + } + + attackEnemy(enemy) { + const weapon = this.player.equipment.weapon; + const baseDamage = weapon ? weapon.damage : 10; + const criticalChance = 0.2; // 20% critical hit chance + const isCritical = Math.random() < criticalChance; + const totalDamage = Math.floor( + (baseDamage + this.player.stats.strength) * (isCritical ? 1.5 : 1) + ); + + enemy.hp -= totalDamage; + this.player.attackCooldown = 1.0; // 1 second cooldown + + // Create attack animation + this.createAttackAnimation(enemy, isCritical ? "critical" : "normal"); + + // Create damage number + this.createDamageNumber(enemy.x, enemy.y, totalDamage, isCritical); + + // Create hit particles + this.createHitParticles( + enemy.x + enemy.width / 2, + enemy.y + enemy.height / 2 + ); + + const hitMessage = isCritical + ? `๐Ÿ’ฅ CRITICAL HIT! ${enemy.type.name} for ${totalDamage} damage!` + : `โš”๏ธ Hit ${enemy.type.name} for ${totalDamage} damage!`; + + this.showMessage(hitMessage, isCritical ? "warning" : "success"); + + if (enemy.hp <= 0) { + this.enemyDefeated(enemy); + } + + this.updateCombatStatus(); + } + + createAttackAnimation(target, type) { + this.player.attackAnimation.active = true; + this.player.attackAnimation.duration = 0.5; + this.player.attackAnimation.type = type; + this.player.attackAnimation.particles = []; + + // Create attack particles based on weapon type + const weapon = this.player.equipment.weapon; + const particleCount = type === "critical" ? 15 : 8; + + for (let i = 0; i < particleCount; i++) { + const angle = (Math.PI * 2 * i) / particleCount; + const speed = 100 + Math.random() * 50; + + this.player.attackAnimation.particles.push({ + x: this.player.x + this.player.width / 2, + y: this.player.y + this.player.height / 2, + vx: Math.cos(angle) * speed, + vy: Math.sin(angle) * speed, + life: 0.3, + maxLife: 0.3, + alpha: 1, + color: + type === "critical" + ? "#ff4444" + : weapon?.icon === "๐Ÿ—ก๏ธ" + ? "#ffd700" + : "#ffffff", + }); + } + } + + createDamageNumber(x, y, damage, isCritical) { + this.damageNumbers.push({ + x: x + Math.random() * 20 - 10, + y: y - 10, + damage: damage, + life: 2.0, + maxLife: 2.0, + alpha: 1, + isCritical: isCritical, + }); + } + + createHitParticles(x, y) { + for (let i = 0; i < 8; i++) { + const angle = Math.random() * Math.PI * 2; + const speed = 50 + Math.random() * 100; + + this.particles.push({ + x: x, + y: y, + vx: Math.cos(angle) * speed, + vy: Math.sin(angle) * speed, + life: 0.5, + maxLife: 0.5, + alpha: 1, + color: "#ff6b6b", + }); + } + } + + useSpecialAttack() { + const weapon = this.player.equipment.weapon; + if (!weapon || !weapon.special) { + this.showMessage("โŒ No special attack available!", "error"); + return; + } + + if (this.player.attackCooldown > 0) return; + + // Find all enemies in range for special attack + const enemiesInRange = this.enemies.filter( + (enemy) => + enemy.isAlive && this.getDistance(this.player, enemy) < 80 + ); + + if (enemiesInRange.length === 0) { + this.showMessage( + "โš”๏ธ No enemies in range for special attack!", + "warning" + ); + return; + } + + const specialDamage = weapon.damage * 1.5 + this.player.stats.strength; + + enemiesInRange.forEach((enemy) => { + enemy.hp -= specialDamage; + if (enemy.hp <= 0) { + this.enemyDefeated(enemy); + } + }); + + this.player.attackCooldown = 3.0; // Longer cooldown for special + this.showMessage( + `โœจ ${weapon.special}! Hit ${enemiesInRange.length} enemies!`, + "success" + ); + } + + usePotion() { + const potion = this.player.inventory.find( + (item) => item.type === "potion" && item.effect === "heal" + ); + + if (!potion) { + this.showMessage("โŒ No healing potions available!", "error"); + return; + } + + if (this.player.hp >= this.player.maxHp) { + this.showMessage("โŒ Already at full health!", "warning"); + return; + } + + // Remove potion from inventory + const index = this.player.inventory.indexOf(potion); + this.player.inventory.splice(index, 1); + + // Heal player + this.player.hp = Math.min( + this.player.maxHp, + this.player.hp + potion.value + ); + + this.showMessage( + `๐Ÿงช Used ${potion.name}! Restored ${potion.value} HP`, + "success" + ); + this.updateUI(); + this.updateInventoryUI(); + } + + enemyAttackPlayer(enemy) { + const damage = Math.max( + 1, + enemy.type.damage - this.player.stats.defense + ); + this.player.hp -= damage; + + this.showMessage( + `๐Ÿ’ฅ ${enemy.type.name} attacks for ${damage} damage!`, + "error" + ); + + if (this.player.hp <= 0) { + this.gameOver(); + } + + this.updateUI(); + } + + enemyDefeated(enemy) { + enemy.isAlive = false; + + // Rewards + this.player.gold += enemy.type.gold; + this.player.score += enemy.type.xp * 10; + this.addExperience(enemy.type.xp); + + // Update quest progress + this.quests.monstersDefeated++; + this.updateQuestUI(); + + this.showMessage( + `๐Ÿ’€ Defeated ${enemy.type.name}! +${enemy.type.xp} XP, +${enemy.type.gold} gold`, + "success" + ); + this.updateUI(); + } + + addExperience(amount) { + this.player.experience += amount; + + while (this.player.experience >= this.player.experienceToNext) { + this.levelUp(); + } + + this.updateUI(); + } + + levelUp() { + this.player.experience -= this.player.experienceToNext; + this.player.level++; + this.player.experienceToNext = Math.floor( + this.player.experienceToNext * 1.2 + ); + + // Increase stats + this.player.maxHp += 20; + this.player.hp = this.player.maxHp; + this.player.stats.strength += 3; + this.player.stats.defense += 2; + this.player.stats.agility += 1; + this.player.stats.magic += 1; + + this.showMessage( + `๐Ÿ†™ Level Up! Now level ${this.player.level}!`, + "success" + ); + this.updateUI(); + } + + handleInteraction() { + // Check for nearby NPCs + this.npcs.forEach((npc) => { + const distance = this.getDistance(this.player, npc); + if (distance < 50) { + this.interactWithNPC(npc); + return; + } + }); + + // Check for nearby portals + if (this.nearPortal) { + this.travelToMap(this.nearPortal.targetMap); + this.nearPortal = null; + } + } + + interactWithNPC(npc) { + if (npc.type.type === "shop") { + this.showShopModal(); + } else if (npc.type.type === "healer") { + this.healPlayer(); + } else { + this.showMessage(npc.type.dialogue, "info"); + } + } + + healPlayer() { + const healCost = 30; + if ( + this.player.gold >= healCost && + this.player.hp < this.player.maxHp + ) { + this.player.gold -= healCost; + this.player.hp = this.player.maxHp; + this.showMessage("โœจ Fully healed! -30 gold", "success"); + this.updateUI(); + } else if (this.player.hp >= this.player.maxHp) { + this.showMessage("โŒ Already at full health!", "warning"); + } else { + this.showMessage("โŒ Not enough gold for healing!", "error"); + } + } + + updateCombatStatus() { + const nearbyEnemies = this.enemies.filter( + (enemy) => + enemy.isAlive && this.getDistance(this.player, enemy) < 80 + ).length; + + const statusElement = document.getElementById("combat-status"); + if (nearbyEnemies > 0) { + statusElement.textContent = `โš”๏ธ ${nearbyEnemies} enemies nearby - Ready to fight!`; + statusElement.style.color = "#ff6b6b"; + } else { + statusElement.textContent = "โœ… Safe area - No enemies nearby"; + statusElement.style.color = "#90ee90"; + } + } + + render() { + // Clear canvas + this.ctx.fillStyle = "#2d5a2d"; + this.ctx.fillRect(0, 0, this.gameWidth, this.gameHeight); + + // Draw map + this.drawMap(); + + // Draw items + this.drawItems(); + + // Draw treasures + this.drawTreasures(); + + // Draw swords + this.drawSwords(); + + // Draw enemies + this.drawEnemies(); + + // Draw NPCs + this.drawNPCs(); + + // Draw player + this.drawPlayer(); + + // Draw UI overlays + this.drawUIOverlays(); + } + + drawMap() { + const tileSize = 32; + const startX = Math.floor(this.camera.x / tileSize); + const startY = Math.floor(this.camera.y / tileSize); + const endX = Math.min( + startX + Math.ceil(this.gameWidth / tileSize) + 1, + this.map.tiles[0].length + ); + const endY = Math.min( + startY + Math.ceil(this.gameHeight / tileSize) + 1, + this.map.tiles.length + ); + + for (let y = startY; y < endY; y++) { + for (let x = startX; x < endX; x++) { + const tile = this.map.tiles[y][x]; + const screenX = x * tileSize - this.camera.x; + const screenY = y * tileSize - this.camera.y; + + switch (tile) { + case "grass": + this.ctx.fillStyle = "#4a7c59"; + break; + case "stone": + this.ctx.fillStyle = "#8b7355"; + break; + case "tree": + this.ctx.fillStyle = "#2d4016"; + break; + case "dark_tree": + this.ctx.fillStyle = "#1a2010"; + break; + case "water": + this.ctx.fillStyle = "#4682b4"; + break; + case "ruins_wall": + this.ctx.fillStyle = "#6b5b73"; + break; + case "ruins_floor": + this.ctx.fillStyle = "#9b8b93"; + break; + case "cave_wall": + this.ctx.fillStyle = "#3b3b3b"; + break; + case "cave_floor": + this.ctx.fillStyle = "#5b5b5b"; + break; + case "lava": + this.ctx.fillStyle = "#ff4500"; + break; + default: + this.ctx.fillStyle = "#4a7c59"; + } + + this.ctx.fillRect(screenX, screenY, tileSize, tileSize); + } + } + + // Draw portals + this.drawPortals(); + } + + drawSwords() { + this.swords.forEach((sword) => { + if (sword.collected) return; + + const screenX = sword.x - this.camera.x; + const screenY = sword.y - this.camera.y; + + // Draw glowing effect + if (sword.glowing) { + this.ctx.shadowColor = "#ffd700"; + this.ctx.shadowBlur = 15; + } + + this.ctx.font = "24px Arial"; + this.ctx.fillText(sword.type.icon, screenX, screenY + 20); + + this.ctx.shadowBlur = 0; + + // Draw sword name + this.ctx.fillStyle = "#ffd700"; + this.ctx.font = "10px Arial"; + this.ctx.textAlign = "center"; + this.ctx.fillText(sword.type.name, screenX + 12, screenY - 5); + this.ctx.textAlign = "left"; + }); + } + + drawTreasures() { + this.treasures.forEach((treasure) => { + if (treasure.collected) return; + + const screenX = treasure.x - this.camera.x; + const screenY = treasure.y - this.camera.y; + + this.ctx.font = "20px Arial"; + this.ctx.fillText(treasure.type.icon, screenX, screenY + 16); + }); + } + + drawItems() { + this.items.forEach((item) => { + if (item.collected) return; + + const screenX = item.x - this.camera.x; + const screenY = item.y - this.camera.y; + + this.ctx.font = "18px Arial"; + this.ctx.fillText(item.type.icon, screenX, screenY + 16); + }); + } + + drawEnemies() { + this.enemies.forEach((enemy) => { + if (!enemy.isAlive) return; + + const screenX = enemy.x - this.camera.x; + const screenY = enemy.y - this.camera.y; + + // Draw enemy + this.ctx.font = "30px Arial"; + this.ctx.fillText(enemy.type.icon, screenX, screenY + 24); + + // Draw health bar + const barWidth = 32; + const barHeight = 4; + const healthPercent = enemy.hp / enemy.maxHp; + + this.ctx.fillStyle = "#ff0000"; + this.ctx.fillRect(screenX, screenY - 8, barWidth, barHeight); + this.ctx.fillStyle = "#00ff00"; + this.ctx.fillRect( + screenX, + screenY - 8, + barWidth * healthPercent, + barHeight + ); + + // Draw enemy name + this.ctx.fillStyle = "#ff6b6b"; + this.ctx.font = "10px Arial"; + this.ctx.textAlign = "center"; + this.ctx.fillText(enemy.type.name, screenX + 16, screenY - 12); + this.ctx.textAlign = "left"; + }); + } + + drawNPCs() { + this.npcs.forEach((npc) => { + const screenX = npc.x - this.camera.x; + const screenY = npc.y - this.camera.y; + + this.ctx.font = "30px Arial"; + this.ctx.fillText(npc.type.icon, screenX, screenY + 24); + + // Draw NPC name + this.ctx.fillStyle = "#90ee90"; + this.ctx.font = "10px Arial"; + this.ctx.textAlign = "center"; + this.ctx.fillText(npc.type.name, screenX + 16, screenY - 5); + this.ctx.textAlign = "left"; + }); + } + + drawPlayer() { + const screenX = this.player.x - this.camera.x; + const screenY = this.player.y - this.camera.y; + + // Draw attack effect if attacking + if (this.player.attackCooldown > 0.5) { + this.ctx.strokeStyle = "#ffd700"; + this.ctx.lineWidth = 3; + this.ctx.beginPath(); + this.ctx.arc(screenX + 16, screenY + 16, 40, 0, Math.PI * 2); + this.ctx.stroke(); + } + + // Draw player + this.ctx.font = "30px Arial"; + this.ctx.fillText("๐Ÿคด", screenX, screenY + 24); + + // Draw equipped weapon indicator + if (this.player.equipment.weapon) { + this.ctx.font = "16px Arial"; + this.ctx.fillText( + this.player.equipment.weapon.icon, + screenX + 25, + screenY + 10 + ); + } + + // Draw player name and level + this.ctx.fillStyle = "#ffd700"; + this.ctx.font = "12px Arial"; + this.ctx.textAlign = "center"; + this.ctx.fillText( + `Level ${this.player.level} Hero`, + screenX + 16, + screenY - 5 + ); + this.ctx.textAlign = "left"; + + // Draw attack animations + this.drawAttackAnimations(); + + // Draw damage numbers + this.drawDamageNumbers(); + } + + drawPortals() { + this.portals.forEach((portal) => { + const screenX = portal.x - this.camera.x; + const screenY = portal.y - this.camera.y; + + // Draw swirling animation + const time = Date.now() * 0.005; + this.ctx.save(); + this.ctx.translate( + screenX + portal.width / 2, + screenY + portal.height / 2 + ); + this.ctx.rotate(time); + + // Draw portal effect + this.ctx.shadowColor = "#00ffff"; + this.ctx.shadowBlur = 15; + this.ctx.font = "40px Arial"; + this.ctx.fillText(portal.icon, -20, 15); + + this.ctx.restore(); + this.ctx.shadowBlur = 0; + + // Draw portal name + this.ctx.fillStyle = "#00ffff"; + this.ctx.font = "10px Arial"; + this.ctx.textAlign = "center"; + this.ctx.fillText( + portal.name, + screenX + portal.width / 2, + screenY - 5 + ); + this.ctx.textAlign = "left"; + }); + } + + drawAttackAnimations() { + // Draw player attack animation + if (this.player.attackAnimation.active) { + this.player.attackAnimation.particles.forEach((particle) => { + this.ctx.save(); + this.ctx.globalAlpha = particle.alpha; + this.ctx.fillStyle = particle.color; + this.ctx.beginPath(); + this.ctx.arc( + particle.x - this.camera.x, + particle.y - this.camera.y, + 3, + 0, + Math.PI * 2 + ); + this.ctx.fill(); + this.ctx.restore(); + }); + } + + // Draw general particles + this.particles.forEach((particle) => { + this.ctx.save(); + this.ctx.globalAlpha = particle.alpha; + this.ctx.fillStyle = particle.color; + this.ctx.beginPath(); + this.ctx.arc( + particle.x - this.camera.x, + particle.y - this.camera.y, + 2, + 0, + Math.PI * 2 + ); + this.ctx.fill(); + this.ctx.restore(); + }); + } + + drawDamageNumbers() { + this.damageNumbers.forEach((dmg) => { + this.ctx.save(); + this.ctx.globalAlpha = dmg.alpha; + this.ctx.fillStyle = dmg.isCritical ? "#ff4444" : "#ffffff"; + this.ctx.font = dmg.isCritical ? "bold 16px Arial" : "14px Arial"; + this.ctx.strokeStyle = "#000000"; + this.ctx.lineWidth = 2; + this.ctx.textAlign = "center"; + + const screenX = dmg.x - this.camera.x; + const screenY = dmg.y - this.camera.y; + + this.ctx.strokeText(dmg.damage.toString(), screenX, screenY); + this.ctx.fillText(dmg.damage.toString(), screenX, screenY); + this.ctx.restore(); + }); + } + + drawUIOverlays() { + // Draw minimap + this.drawMinimap(); + + // Draw attack range indicator when near enemies + const nearbyEnemies = this.enemies.filter( + (enemy) => + enemy.isAlive && this.getDistance(this.player, enemy) < 80 + ); + + if (nearbyEnemies.length > 0) { + const screenX = this.player.x - this.camera.x; + const screenY = this.player.y - this.camera.y; + + this.ctx.strokeStyle = "rgba(255, 215, 0, 0.3)"; + this.ctx.lineWidth = 2; + this.ctx.setLineDash([5, 5]); + this.ctx.beginPath(); + this.ctx.arc(screenX + 16, screenY + 16, 60, 0, Math.PI * 2); + this.ctx.stroke(); + this.ctx.setLineDash([]); + } + } + + drawMinimap() { + const minimapSize = 120; + const minimapX = this.gameWidth - minimapSize - 10; + const minimapY = 10; + const scale = minimapSize / Math.max(this.map.width, this.map.height); + + // Minimap background + this.ctx.fillStyle = "rgba(0, 0, 0, 0.7)"; + this.ctx.fillRect(minimapX, minimapY, minimapSize, minimapSize); + this.ctx.strokeStyle = "#d4af37"; + this.ctx.lineWidth = 2; + this.ctx.strokeRect(minimapX, minimapY, minimapSize, minimapSize); + + // Draw swords on minimap + this.swords.forEach((sword) => { + if (sword.collected) return; + const x = minimapX + sword.x * scale; + const y = minimapY + sword.y * scale; + this.ctx.fillStyle = "#ffd700"; + this.ctx.fillRect(x - 2, y - 2, 4, 4); + }); + + // Draw treasures on minimap + this.treasures.forEach((treasure) => { + if (treasure.collected) return; + const x = minimapX + treasure.x * scale; + const y = minimapY + treasure.y * scale; + this.ctx.fillStyle = "#ff6600"; + this.ctx.fillRect(x - 1, y - 1, 2, 2); + }); + + // Draw enemies on minimap + this.enemies.forEach((enemy) => { + if (!enemy.isAlive) return; + const x = minimapX + enemy.x * scale; + const y = minimapY + enemy.y * scale; + this.ctx.fillStyle = "#ff0000"; + this.ctx.fillRect(x - 1, y - 1, 2, 2); + }); + + // Draw player on minimap + const playerX = minimapX + this.player.x * scale; + const playerY = minimapY + this.player.y * scale; + this.ctx.fillStyle = "#00ff00"; + this.ctx.fillRect(playerX - 2, playerY - 2, 4, 4); + } + + // UI Management + updateUI() { + document.getElementById("player-level").textContent = this.player.level; + document.getElementById("player-hp").textContent = this.player.hp; + document.getElementById("player-max-hp").textContent = + this.player.maxHp; + document.getElementById("player-strength").textContent = + this.player.stats.strength; + document.getElementById("player-defense").textContent = + this.player.stats.defense; + document.getElementById("player-score").textContent = this.player.score; + document.getElementById("player-gold").textContent = this.player.gold; + + // Update experience bar + const expPercent = + (this.player.experience / this.player.experienceToNext) * 100; + document.getElementById("exp-bar").style.width = expPercent + "%"; + document.getElementById( + "exp-text" + ).textContent = `${this.player.experience}/${this.player.experienceToNext} XP`; + } + + updateQuestUI() { + document.getElementById("sword-progress").textContent = `Progress: ${ + this.quests.swordFound ? 1 : 0 + }/1`; + document.getElementById( + "treasure-progress" + ).textContent = `Progress: ${this.quests.treasuresCollected}/10`; + document.getElementById( + "monster-progress" + ).textContent = `Progress: ${this.quests.monstersDefeated}/5`; + } + + updateInventoryUI() { + const inventoryGrid = document.getElementById("inventory-grid"); + const inventoryCount = document.getElementById("inventory-count"); + + inventoryGrid.innerHTML = ""; + inventoryCount.textContent = this.player.inventory.length; + + // Create inventory slots + for (let i = 0; i < this.player.maxInventory; i++) { + const slot = document.createElement("div"); + slot.className = "inventory-slot"; + + if (i < this.player.inventory.length) { + const item = this.player.inventory[i]; + slot.className += " occupied"; + slot.innerHTML = `${item.icon}`; + slot.title = `${item.name} (${item.type})`; + } + + inventoryGrid.appendChild(slot); + } + } + + showMessage(text, type = "info") { + const messageLog = document.getElementById("message-log"); + const message = document.createElement("div"); + message.className = `message ${type}`; + message.textContent = text; + + messageLog.appendChild(message); + + // Auto-remove after 5 seconds + setTimeout(() => { + if (message.parentNode) { + message.parentNode.removeChild(message); + } + }, 5000); + } + + showShopModal() { + const shopItems = [ + { + name: "Iron Sword", + icon: "โš”๏ธ", + price: 150, + type: "weapon", + damage: 25, + }, + { + name: "Steel Armor", + icon: "๐Ÿ›ก๏ธ", + price: 200, + type: "armor", + defense: 15, + }, + { + name: "Health Potion", + icon: "๐Ÿงช", + price: 30, + type: "potion", + effect: "heal", + value: 50, + }, + { + name: "Mana Potion", + icon: "๐Ÿ’™", + price: 40, + type: "potion", + effect: "mana", + value: 30, + }, + ]; + + const shopItemsContainer = document.getElementById("shop-items"); + shopItemsContainer.innerHTML = ""; + + shopItems.forEach((item) => { + const itemDiv = document.createElement("div"); + itemDiv.className = "shop-item"; + itemDiv.innerHTML = ` +
${item.icon} ${item.name}
+
+ ${ + item.type === "weapon" + ? `Damage: ${item.damage}` + : item.type === "armor" + ? `Defense: ${item.defense}` + : item.type === "potion" + ? `Restores ${item.value} ${item.effect}` + : "" + } +
+
๐Ÿ’ฐ ${item.price} gold
+ + `; + shopItemsContainer.appendChild(itemDiv); + }); + + document.getElementById("shop-modal").classList.remove("hidden"); + } + + showMapSelection() { + const mapModal = document.getElementById("map-modal"); + const mapSelection = document.getElementById("map-selection"); + + // Clear previous content + mapSelection.innerHTML = ""; + + // Create map options + this.maps.forEach((map, index) => { + const mapOption = document.createElement("div"); + mapOption.className = "map-option"; + + // Add current/locked classes + if (index === this.currentMap) { + mapOption.classList.add("current"); + } + + // For now, all maps are unlocked. You can add unlock conditions later + const isUnlocked = true; + if (!isUnlocked) { + mapOption.classList.add("locked"); + } + + // Create difficulty stars + const stars = + "โ˜…".repeat(map.difficulty || 1) + + "โ˜†".repeat(5 - (map.difficulty || 1)); + + mapOption.innerHTML = ` +
${map.emoji || "๐Ÿ—บ๏ธ"} ${map.name}
+
${map.description}
+
+ ${Array.from(stars) + .map( + (star) => + `${star}` + ) + .join("")} +
+
${ + map.rewards || "Explore to discover rewards!" + }
+ `; + + // Add click handler if not current map and unlocked + if (index !== this.currentMap && isUnlocked) { + mapOption.addEventListener("click", () => { + this.travelToMap(index); + this.closeMapModal(); + }); + } + + mapSelection.appendChild(mapOption); + }); + + mapModal.classList.remove("hidden"); + } + + closeMapModal() { + document.getElementById("map-modal").classList.add("hidden"); + } + + gameOver() { + this.gameRunning = false; + this.showMessage("๐Ÿ’€ Game Over! You have been defeated.", "error"); + + setTimeout(() => { + if (confirm("Game Over! Would you like to restart?")) { + location.reload(); + } + }, 2000); + } +} + +// Global functions for modal interactions +function closeShopModal() { + document.getElementById("shop-modal").classList.add("hidden"); +} + +function closeMapModal() { + document.getElementById("map-modal").classList.add("hidden"); +} + +function buyItem(itemName, price, itemDataJson) { + const itemData = JSON.parse(itemDataJson.replace(/"/g, '"')); + + if (game.player.gold >= price) { + game.player.gold -= price; + + const item = { + name: itemData.name, + icon: itemData.icon, + type: itemData.type, + damage: itemData.damage, + defense: itemData.defense, + effect: itemData.effect, + value: itemData.value, + }; + + if (game.addToInventory(item)) { + game.showMessage(`โœ… Purchased ${itemName}!`, "success"); + game.updateUI(); + game.updateInventoryUI(); + } + } else { + game.showMessage("โŒ Not enough gold!", "error"); + } +} + +// Initialize game when page loads +let game; +window.addEventListener("load", () => { + game = new MedievalRPG(); + + // Setup modal event listeners + setupModalEventListeners(); +}); + +// Setup modal event listeners +function setupModalEventListeners() { + // Close modals when clicking outside + document.getElementById("shop-modal").addEventListener("click", (e) => { + if (e.target.id === "shop-modal") { + closeShopModal(); + } + }); + + document.getElementById("map-modal").addEventListener("click", (e) => { + if (e.target.id === "map-modal") { + closeMapModal(); + } + }); + + // Close modals with Escape key + document.addEventListener("keydown", (e) => { + if (e.key === "Escape") { + const shopModal = document.getElementById("shop-modal"); + const mapModal = document.getElementById("map-modal"); + + if (!shopModal.classList.contains("hidden")) { + closeShopModal(); + } + if (!mapModal.classList.contains("hidden")) { + closeMapModal(); + } + } + }); +} + +// Handle window resize +window.addEventListener("resize", () => { + if (game) { + // Handle canvas resize if needed + } +}); diff --git a/Games/Medieval_RPG/index.html b/Games/Medieval_RPG/index.html new file mode 100644 index 000000000..d9f913269 --- /dev/null +++ b/Games/Medieval_RPG/index.html @@ -0,0 +1,166 @@ + + + + + + Medieval RPG - Kingdom Quest + + + +
+ +
+
+

๐Ÿฐ Kingdom Quest

+
+
+ Level: + 1 +
+
+ HP: + 100/100 +
+
+ Strength: + 10 +
+
+ Defense: + 5 +
+
+ Score: + 0 +
+
+ Gold: + 50 +
+
+
+
+ 0/100 XP +
+
+ +
+

+ ๐ŸŽ’ Inventory (0/20) +

+
+ +
+
+ +
+

๐Ÿ“œ Active Quests

+
+
+
+ ๐Ÿ—ก๏ธ Find the Lost Sword +
+
+ Search the ancient ruins for the legendary blade +
+
+ Progress: 0/1 +
+
+
+
๐Ÿ’ฐ Treasure Hunter
+
+ Collect 10 treasures +
+
+ Progress: 0/10 +
+
+
+
โš”๏ธ Monster Slayer
+
+ Defeat 5 monsters +
+
+ Progress: 0/5 +
+
+
+
+ +
+

โš”๏ธ Combat Status

+
Ready for battle!
+
+ Controls:
+ TAB - Attack nearby enemy
+ F - Use equipped weapon special
+ Q - Quick heal (if potions available) +
+
+
+ + +
+ +
+
+ WASD/Arrows: Move โ€ข TAB: Attack โ€ข F: Special Attack โ€ข Q: + Heal โ€ข SPACE: Interact โ€ข M: Select Map +
+
+
+ Current Map: + Village Outskirts +
+
+ Available: Village โ€ข Forest โ€ข Ruins โ€ข Dragon's Lair +
+
+
+
+ + +
+ + + + + + +
+ + + + diff --git a/Games/Medieval_RPG/styles.css b/Games/Medieval_RPG/styles.css new file mode 100644 index 000000000..3ace6068b --- /dev/null +++ b/Games/Medieval_RPG/styles.css @@ -0,0 +1,743 @@ +/* Medieval RPG Styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(135deg, #2c1810, #8b4513); + color: #f4e4bc; + overflow: hidden; +} + +.game-container { + display: flex; + height: 100vh; + background: url('data:image/svg+xml,') + repeat; +} + +/* Game UI Panel */ +.game-ui { + width: 300px; + background: rgba(0, 0, 0, 0.9); + border-right: 3px solid #d4af37; + padding: 20px; + overflow-y: auto; + box-shadow: 5px 0 15px rgba(0, 0, 0, 0.5); +} + +.game-ui h3 { + text-align: center; + color: #d4af37; + margin-bottom: 20px; + font-size: 1.4em; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); +} + +.game-ui h4 { + color: #f4e4bc; + margin: 20px 0 10px 0; + border-bottom: 2px solid #654321; + padding-bottom: 5px; +} + +/* Stats Panel */ +.stats-panel { + margin-bottom: 25px; + background: rgba(100, 67, 33, 0.3); + padding: 15px; + border-radius: 8px; + border: 1px solid #8b4513; +} + +.player-stats .stat { + display: flex; + justify-content: space-between; + margin: 8px 0; + padding: 5px; + background: rgba(0, 0, 0, 0.3); + border-radius: 4px; +} + +.stat-label { + font-weight: bold; + color: #d4af37; +} + +.experience-bar { + position: relative; + width: 100%; + height: 20px; + background: #333; + border-radius: 10px; + overflow: hidden; + margin-top: 10px; + border: 1px solid #8b4513; +} + +.exp-fill { + height: 100%; + background: linear-gradient(90deg, #4caf50, #8bc34a); + width: 0%; + transition: width 0.5s ease; +} + +.exp-text { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 12px; + font-weight: bold; + color: white; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7); +} + +/* Inventory Panel */ +.inventory-panel { + margin-bottom: 25px; + background: rgba(100, 67, 33, 0.3); + padding: 15px; + border-radius: 8px; + border: 1px solid #8b4513; +} + +.inventory-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 5px; + margin-top: 10px; +} + +.inventory-slot { + width: 50px; + height: 50px; + border: 2px solid #654321; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + border-radius: 4px; + transition: all 0.3s ease; +} + +.inventory-slot:hover { + border-color: #d4af37; + background: rgba(212, 175, 55, 0.2); +} + +.inventory-slot.occupied { + background: rgba(212, 175, 55, 0.3); + border-color: #d4af37; +} + +.item-icon { + font-size: 24px; +} + +/* Quest Panel */ +.quest-panel { + background: rgba(100, 67, 33, 0.3); + padding: 15px; + border-radius: 8px; + border: 1px solid #8b4513; +} + +.quest-item { + background: rgba(0, 0, 0, 0.4); + padding: 10px; + margin: 8px 0; + border-radius: 6px; + border-left: 4px solid #654321; + transition: all 0.3s ease; +} + +.quest-item.active { + border-left-color: #d4af37; + background: rgba(212, 175, 55, 0.1); +} + +.quest-title { + font-weight: bold; + color: #d4af37; + margin-bottom: 5px; +} + +.quest-description { + font-size: 0.9em; + color: #cccccc; + margin-bottom: 5px; +} + +.quest-progress { + font-size: 0.8em; + color: #90ee90; +} + +/* Combat Info Panel */ +.combat-info { + background: rgba(100, 67, 33, 0.3); + padding: 15px; + border-radius: 8px; + border: 1px solid #8b4513; + margin-top: 20px; +} + +#combat-status { + padding: 8px; + background: rgba(0, 0, 0, 0.3); + border-radius: 4px; + margin: 10px 0; + color: #90ee90; + font-weight: bold; +} + +.combat-help { + font-size: 0.85em; + color: #cccccc; + margin-top: 10px; + padding: 8px; + background: rgba(0, 0, 0, 0.2); + border-radius: 4px; + border-left: 3px solid #d4af37; +} + +/* Health Bar for Player */ +.player-health-bar { + position: relative; + width: 100%; + height: 15px; + background: #333; + border-radius: 8px; + overflow: hidden; + margin: 5px 0; + border: 1px solid #654321; +} + +.player-hp-fill { + height: 100%; + background: linear-gradient(90deg, #dc3545, #ff6b6b); + transition: width 0.3s ease; +} + +/* Equipment Slots */ +.equipment-panel { + background: rgba(100, 67, 33, 0.3); + padding: 15px; + border-radius: 8px; + border: 1px solid #8b4513; + margin-bottom: 20px; +} + +.equipment-slots { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 10px; + margin-top: 10px; +} + +.equipment-slot { + width: 60px; + height: 60px; + border: 2px solid #654321; + background: rgba(0, 0, 0, 0.5); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-radius: 8px; + transition: all 0.3s ease; +} + +.equipment-slot:hover { + border-color: #d4af37; + background: rgba(212, 175, 55, 0.2); +} + +.equipment-slot.equipped { + background: rgba(212, 175, 55, 0.3); + border-color: #d4af37; + box-shadow: 0 0 10px rgba(212, 175, 55, 0.5); +} + +.equipment-label { + font-size: 9px; + color: #cccccc; + margin-top: 2px; +} + +/* Game World */ +.game-world { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: relative; +} + +#gameCanvas { + border: 3px solid #d4af37; + background: #2d5a2d; + box-shadow: 0 0 20px rgba(212, 175, 55, 0.3); + border-radius: 8px; +} + +.game-controls { + margin-top: 15px; + padding: 10px 20px; + background: rgba(0, 0, 0, 0.8); + border-radius: 25px; + border: 2px solid #654321; +} + +.control-hint { + font-size: 0.9em; + color: #f4e4bc; + text-align: center; + margin-bottom: 10px; +} + +.map-info { + text-align: center; + font-size: 0.85em; + color: #d4af37; +} + +.current-map { + font-weight: bold; + margin-bottom: 5px; +} + +.available-maps { + color: #a0a0a0; + font-style: italic; +} + +/* Message Log */ +#message-log { + position: fixed; + top: 20px; + right: 20px; + width: 300px; + max-height: 200px; + overflow-y: auto; + z-index: 1000; +} + +.message { + background: rgba(0, 0, 0, 0.9); + padding: 10px 15px; + margin: 5px 0; + border-radius: 6px; + border-left: 4px solid #d4af37; + animation: slideIn 0.5s ease; +} + +.message.success { + border-left-color: #4caf50; + background: rgba(76, 175, 80, 0.2); +} + +.message.warning { + border-left-color: #ff9800; + background: rgba(255, 152, 0, 0.2); +} + +.message.error { + border-left-color: #f44336; + background: rgba(244, 67, 54, 0.2); +} + +@keyframes slideIn { + from { + transform: translateX(100%); + opacity: 0; + } + to { + transform: translateX(0); + opacity: 1; + } +} + +/* Modal Styles */ +.modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.8); + display: flex; + align-items: center; + justify-content: center; + z-index: 2000; +} + +.modal.hidden { + display: none; +} + +.modal-content { + background: linear-gradient(135deg, #2c1810, #3d2817); + border: 3px solid #d4af37; + border-radius: 12px; + padding: 0; + min-width: 400px; + max-width: 600px; + max-height: 80vh; + overflow-y: auto; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7); +} + +.modal-header { + background: rgba(212, 175, 55, 0.2); + padding: 15px 20px; + border-bottom: 2px solid #654321; + display: flex; + justify-content: space-between; + align-items: center; +} + +.modal-header h3 { + color: #d4af37; + margin: 0; +} + +.close-btn { + background: none; + border: none; + color: #d4af37; + font-size: 24px; + cursor: pointer; + padding: 0; + width: 30px; + height: 30px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all 0.3s ease; +} + +.close-btn:hover { + background: rgba(212, 175, 55, 0.3); +} + +.modal-body { + padding: 20px; +} + +/* Buttons */ +.btn { + background: linear-gradient(135deg, #654321, #8b4513); + color: #f4e4bc; + border: 2px solid #d4af37; + padding: 10px 20px; + border-radius: 6px; + cursor: pointer; + font-weight: bold; + transition: all 0.3s ease; + margin: 5px; +} + +.btn:hover { + background: linear-gradient(135deg, #8b4513, #a0522d); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); + transform: translateY(-2px); +} + +.btn-primary { + background: linear-gradient(135deg, #d4af37, #ffcc00); + color: #2c1810; +} + +.btn-attack { + background: linear-gradient(135deg, #dc3545, #c82333); +} + +.btn-defend { + background: linear-gradient(135deg, #007bff, #0056b3); +} + +.btn-flee { + background: linear-gradient(135deg, #6c757d, #545b62); +} + +/* Shop Styles */ +.shop-items { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 15px; +} + +.shop-item { + background: rgba(100, 67, 33, 0.3); + border: 2px solid #654321; + border-radius: 8px; + padding: 15px; + transition: all 0.3s ease; +} + +.shop-item:hover { + border-color: #d4af37; + background: rgba(212, 175, 55, 0.2); +} + +.shop-item-name { + font-weight: bold; + color: #d4af37; + margin-bottom: 5px; +} + +.shop-item-description { + font-size: 0.9em; + color: #cccccc; + margin-bottom: 10px; +} + +.shop-item-price { + color: #ffcc00; + font-weight: bold; +} + +/* Combat Styles */ +.combat-area { + text-align: center; +} + +.enemy-info { + margin-bottom: 20px; +} + +.enemy-hp-bar { + position: relative; + width: 100%; + height: 25px; + background: #333; + border-radius: 12px; + overflow: hidden; + margin-top: 10px; + border: 2px solid #654321; +} + +.hp-fill { + height: 100%; + background: linear-gradient(90deg, #dc3545, #ff6b6b); + transition: width 0.5s ease; +} + +#enemy-hp-text { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-weight: bold; + color: white; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7); +} + +.combat-actions { + margin: 20px 0; +} + +#combat-log { + background: rgba(0, 0, 0, 0.5); + border-radius: 8px; + padding: 15px; + max-height: 150px; + overflow-y: auto; + text-align: left; + font-family: monospace; + border: 1px solid #654321; +} + +.combat-message { + margin: 5px 0; + padding: 2px 0; +} + +.player-action { + color: #4caf50; +} + +.enemy-action { + color: #f44336; +} + +.system-message { + color: #ffcc00; +} + +/* Responsive Design */ +@media (max-width: 1200px) { + .game-ui { + width: 250px; + } + + #gameCanvas { + width: 600px; + height: 450px; + } +} + +@media (max-width: 900px) { + .game-container { + flex-direction: column; + } + + .game-ui { + width: 100%; + height: 200px; + order: 2; + } + + .game-world { + order: 1; + } + + #gameCanvas { + width: 100%; + max-width: 800px; + height: 400px; + } +} + +/* Animations */ +@keyframes bounce { + 0%, + 20%, + 50%, + 80%, + 100% { + transform: translateY(0); + } + 40% { + transform: translateY(-10px); + } + 60% { + transform: translateY(-5px); + } +} + +.bounce { + animation: bounce 1s; +} + +/* Map Selection Modal */ +.map-selection { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 15px; + padding: 10px; +} + +.map-option { + background: linear-gradient(135deg, #654321, #8b4513); + border: 2px solid #d4af37; + border-radius: 10px; + padding: 15px; + cursor: pointer; + transition: all 0.3s ease; + text-align: center; + position: relative; + overflow: hidden; +} + +.map-option:hover { + transform: translateY(-3px); + box-shadow: 0 5px 15px rgba(212, 175, 55, 0.3); + border-color: #ffd700; +} + +.map-option.current { + background: linear-gradient(135deg, #2d4a22, #4a7c33); + border-color: #90ee90; +} + +.map-option.current::before { + content: "๐Ÿ“ CURRENT LOCATION"; + position: absolute; + top: 5px; + right: 5px; + font-size: 0.7em; + color: #90ee90; + font-weight: bold; +} + +.map-option.locked { + background: linear-gradient(135deg, #444, #666); + border-color: #888; + cursor: not-allowed; + opacity: 0.6; +} + +.map-option.locked::after { + content: "๐Ÿ”’ LOCKED"; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 0.8em; + color: #aaa; + font-weight: bold; + background: rgba(0, 0, 0, 0.8); + padding: 5px 10px; + border-radius: 5px; +} + +.map-title { + font-size: 1.1em; + font-weight: bold; + color: #d4af37; + margin-bottom: 8px; +} + +.map-description { + font-size: 0.9em; + color: #f4e4bc; + margin-bottom: 10px; + line-height: 1.3; +} + +.map-difficulty { + display: flex; + justify-content: center; + gap: 2px; + margin-bottom: 8px; +} + +.difficulty-star { + color: #ffd700; + font-size: 0.9em; +} + +.difficulty-star.empty { + color: #666; +} + +.map-rewards { + font-size: 0.8em; + color: #90ee90; + font-style: italic; +} + +@keyframes glow { + 0% { + box-shadow: 0 0 5px rgba(212, 175, 55, 0.5); + } + 50% { + box-shadow: 0 0 20px rgba(212, 175, 55, 0.8); + } + 100% { + box-shadow: 0 0 5px rgba(212, 175, 55, 0.5); + } +} + +.glow { + animation: glow 2s infinite; +} diff --git a/assets/images/Medieval_RPG.png b/assets/images/Medieval_RPG.png new file mode 100644 index 0000000000000000000000000000000000000000..fb98773e4131a751cb2b3dfbff06cae1d6cc6c1e GIT binary patch literal 105592 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%0AdRiMq}59Oc1{>xa*D`Y#0X_zGgo#`%S9 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
2vCKTk0LOwYFX!3TE|L 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 literal 0 HcmV?d00001 diff --git a/assets/images/Medieval_RPG_MAP2.png b/assets/images/Medieval_RPG_MAP2.png new file mode 100644 index 0000000000000000000000000000000000000000..7340449e29bfb1f0c5d212883bc560369539811a GIT binary patch literal 138481 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 PcNplJ{EoVQ@5#RaFTRf{ literal 0 HcmV?d00001 diff --git a/assets/js/gamesData.json b/assets/js/gamesData.json index 07dfe9fdd..40e70b90b 100644 --- a/assets/js/gamesData.json +++ b/assets/js/gamesData.json @@ -3250,9 +3250,14 @@ "gameUrl": "Random_Choice_Picker", "thumbnailUrl": "Drop_Dash_Game.png" }, - "648":{ + "650":{ "gameTitle" : "Drummer Kit", "gameUrl": "Drummer_Kit", "thumbnailUrl": "Drummer_Kit.png" + }, + "651":{ + "gameTitle" : " - Kingdom Quest", + "gameUrl": "Medieval_RPG", + "thumbnailUrl": "Medieval_RPG.png" } } From 59586bf5e50cedb53865578470679baeea4ec086 Mon Sep 17 00:00:00 2001 From: Pavan-0228 Date: Fri, 8 Aug 2025 21:10:11 +0530 Subject: [PATCH 2/4] [New game]: Medieval RPG #5168 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c75d9bc0..10a0ae5f4 100644 --- a/README.md +++ b/README.md @@ -1428,6 +1428,7 @@ This repository also provides one such platforms where contributers come over an | [MrFakeGame](https://github.com/kunjgit/GameZone/tree/main/Games/MrFakeGame) | [Checkers](https://github.com/kunjgit/GameZone/tree/main/Games/Checkers) | [Roulette](https://github.com/kunjgit/GameZone/tree/main/Games/Roulette) | [Aero Acrobat](https://github.com/kunjgit/GameZone/tree/main/Games/Aero_Acrobat) | [Adventure_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Adventure_Game) | | [Pumpkin_Pursuit](https://github.com/kunjgit/GameZone/tree/main/Games/Pumpkin_Pursuit) | [Corona Shooter](https://github.com/kunjgit/GameZone/tree/main/Games/Corona_Shooter) | [Pokemon Ball Finder](https://github.com/kunjgit/GameZone/tree/main/Games/Pokemon_Ball_Finder) | [Basketball](https://github.com/kunjgit/GameZone/tree/main/Games/Basketball) | [Wault_master](https://github.com/kunjgit/GameZone/tree/main/Games/Wault_master) | | [Reaction TIme](https://github.com/kunjgit/GameZone/tree/main/Games/Reaction_Time) | [Flag Guess Game](https://github.com/kunjgit/GameZone/tree/main/Games/Flag_Guess_Game) | [Cross_The_Road](https://github.com/kunjgit/GameZone/tree/main/Games/Cross_The_Road) | [Highway Race - Barrel Dodge](https://github.com/kunjgit/GameZone/tree/main/Games/Highway_Race) | [Bit_Maze_Platformer_Maze](https://github.com/kunjgit/GameZone/tree/main/Games/Bit_Maze_Platformer_Maze) | +| [Medieval RPG - Kingdom Quest](https://github.com/kunjgit/GameZone/tree/main/Games/Medieval_RPG) | | [Math Game](https://github.com/kunjgit/GameZone/tree/main/Games/Math_Game) | [Space Drifter](https://github.com/kunjgit/GameZone/tree/main/Games/space_drifter) | [Observe the Cloud](https://github.com/kunjgit/GameZone/tree/main/Games/Observe%20the%20Cloud) | [Cosmic_Coin_Blaster](https://github.com/kunjgit/GameZone/tree/main/Games/Cosmic_Coin_Blaster) | [Circus Charly](https://github.com/kunjgit/GameZone/tree/main/Games/Circus_Charly) | | [Pikachu_Volleyball](https://github.com/kunjgit/GameZone/tree/main/Games/Pikachu_Volleyball) | [Trex_Run](https://github.com/akankshachanana1/GameZone/tree/Added/Games/Trex_Run) | [Crack_The_Code](https://github.com/kunjgit/GameZone/tree/main/Games/Crack_The_Code) | [Skeleathon](https://github.com/kunjgit/GameZone/tree/main/Games/Skeleathon) | [Shadow_PokeGuess](https://github.com/kunjgit/GameZone/tree/main/Games/Shadow_PokeGuess) | | [Brain Color Mastermind](https://github.com/kunjgit/GameZone/tree/main/Games/Brain_Color_Mastermind) | [Lizard Spock Game](https://github.com/kunjgit/GameZone/tree/main/Games/Lizard_Spock_Game) | [Angry Boars](https://github.com/kunjgit/GameZone/tree/main/Games/Angry_Boars) | [Alphabet Learning Game](https://github.com/kunjgit/GameZone/tree/main/Games/Alphabet_Learning_Game) | [Country_Guesser_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Country_Guesser_Game) | From e8336744030fe589a1c2a7fb57b3e32ee1d4a0aa Mon Sep 17 00:00:00 2001 From: Pavan-0228 Date: Fri, 8 Aug 2025 21:24:33 +0530 Subject: [PATCH 3/4] [New game]: Medieval RPG #5168 --- Games/Medieval_RPG/README.md | 214 +++-------------------------------- 1 file changed, 16 insertions(+), 198 deletions(-) diff --git a/Games/Medieval_RPG/README.md b/Games/Medieval_RPG/README.md index fe035fa16..7622363c4 100644 --- a/Games/Medieval_RPG/README.md +++ b/Games/Medieval_RPG/README.md @@ -1,221 +1,39 @@ # **Medieval RPG - Kingdom Quest** โš”๏ธ ---- - -
- ## **Description ๐Ÿ“ƒ** - - -- **Medieval RPG - Kingdom Quest** is a complete 2D action RPG game built with HTML5 Canvas, CSS3, and JavaScript -- Experience an immersive medieval fantasy world with **keyboard-only combat**, **automatic inventory management**, and **progressive character development** -- Explore **4 unique themed maps**, battle enemies with **5 different swords**, complete **dynamic quests**, and witness **stunning attack animations** with particle effects -- Features a comprehensive **equipment system**, **automatic item collection**, **portal-based map travel**, and **real-time combat** with critical hits and special attacks -- Perfect blend of classic RPG mechanics with modern web gaming technology - -## **functionalities ๐ŸŽฎ** +**Medieval RPG - Kingdom Quest** is a complete 2D action RPG game built with HTML5 Canvas, CSS3, and JavaScript. Experience an immersive medieval fantasy world with combat, automatic inventory management, and progressive character development. - +## **Functionalities ๐ŸŽฎ** - **๐Ÿ—บ๏ธ Multi-Map World System**: 4 explorable areas (Village Outskirts, Dark Forest, Ancient Ruins, Dragon's Lair) -- **โš”๏ธ Keyboard Combat System**: Pure keyboard-based combat with no UI modals +- **โš”๏ธ Keyboard Combat System**: Pure keyboard-based combat with automatic targeting - **๐ŸŽ’ Automatic Inventory**: Items are automatically collected when walking over them - **๐Ÿ—ก๏ธ Progressive Weapon System**: 5 swords from Rusty to Legendary with increasing power - **โœจ Attack Animations**: Particle effects, damage numbers, and critical hit animations - **๐Ÿ“œ Dynamic Quest System**: Progressive quests with completion rewards -- **๐Ÿช Shop System**: Buy equipment and items from NPCs -- **๐ŸŽฏ Portal Travel**: Fast travel between different map areas -- **๐Ÿ“Š Character Progression**: Level up system with stats and experience -- **๐Ÿ’ฐ Economy System**: Gold-based trading and equipment purchasing -- **๐ŸŽจ Visual Effects**: Particle systems, floating damage numbers, and themed environments - -
+- ** Portal Travel**: Fast travel between different map areas ## **How to play? ๐Ÿ•น๏ธ** - - -### **๐ŸŽฎ Controls:** +### **Controls:** -- **WASD / Arrow Keys**: Move your character around the world -- **TAB**: Attack nearby enemies (automatic targeting) +- **WASD / Arrow Keys**: Move your character +- **TAB**: Attack nearby enemies - **F**: Use equipped weapon's special attack - **Q**: Quick heal using available potions -- **SPACE**: Interact with NPCs, shops, and special objects -- **M**: Open map selection modal to travel between areas +- **SPACE**: Interact with NPCs and shops +- **M**: Open map selection to travel between areas - **ESC**: Close any open modals -### **๐Ÿš€ Getting Started:** - -1. **Launch the Game**: Open `index.html` in your web browser -2. **Learn the Basics**: Start in Village Outskirts to get familiar with controls -3. **Collect Equipment**: Walk over items to automatically add them to inventory -4. **Combat Training**: Use TAB to attack enemies, F for special attacks -5. **Explore Maps**: Press M to travel to different areas as you get stronger -6. **Complete Quests**: Check the quest panel for objectives and rewards - -### **โš”๏ธ Combat System:** +### **Gameplay:** -- **Automatic Targeting**: TAB attacks the nearest enemy within range -- **Special Attacks**: Each sword has unique special abilities (F key) -- **Critical Hits**: Random chance for extra damage with special effects -- **Health Management**: Use Q to consume health potions during combat -- **Equipment Matters**: Better swords increase damage and unlock new specials - -### **๐Ÿ—บ๏ธ World Exploration:** - -- **Village Outskirts** (โญ): Starting area with basic enemies and equipment -- **Dark Forest** (โญโญ): Tougher enemies, enhanced weapons, forest treasures -- **Ancient Ruins** (โญโญโญ): Rare artifacts, challenging combat, ancient secrets -- **Dragon's Lair** (โญโญโญโญโญ): End-game content, legendary equipment, ultimate challenges - -### **๐Ÿ“ˆ Character Progression:** - -- **Level Up**: Gain experience by defeating enemies and completing quests -- **Equipment Upgrades**: Find and purchase better weapons and armor -- **Stat Growth**: Increase strength, defense, agility, and magic -- **Inventory Management**: 20-slot inventory with automatic item collection - -
+- **Village Outskirts** (โญ): Starting area with basic enemies +- **Dark Forest** (โญโญ): Tougher enemies and enhanced weapons +- **Ancient Ruins** (โญโญโญ): Rare artifacts and challenging combat +- **Dragon's Lair** (โญโญโญโญโญ): End-game content with legendary equipment ## **Screenshots ๐Ÿ“ธ** -
- -![Medieval RPG Game Screenshot](../../assets/images/Medieval_RPG_MAP1.png) -![Medieval RPG Game Screenshot](../../assets/images/Medieval_RPG_MAP2.png) - -_Screenshots showing the game's medieval interface, combat animations, map selection modal, and character progression_ - -
- -## **Working video ๐Ÿ“น** - - - -_Demo video showing gameplay, combat system, map exploration, and all game features in action_ - -
- -## **Technical Features ๐Ÿ› ๏ธ** - -### **Frontend Technologies:** - -- **HTML5 Canvas**: 800x600 game rendering surface with 2D context -- **CSS3**: Medieval-themed styling with gradients, animations, and responsive design -- **JavaScript ES6**: Object-oriented game engine using class-based architecture -- **Custom Game Engine**: Delta-time based updates, collision detection, particle systems - -### **Game Systems:** - -- **Real-time Rendering**: 60 FPS game loop with smooth animations -- **Particle Effects**: Attack animations, damage numbers, critical hit effects -- **Collision Detection**: Precise rectangular collision system -- **State Management**: Persistent game state with local storage support -- **Modal System**: Interactive UI modals for shops and map selection -- **Responsive Design**: Works on desktop and tablet devices - -### **File Structure:** - -``` -Medieval RPG/ -โ”œโ”€โ”€ index.html # Game UI structure and layout -โ”œโ”€โ”€ styles.css # Medieval-themed styling and animations -โ”œโ”€โ”€ game.js # Complete game engine and logic (2000+ lines) -โ””โ”€โ”€ README.md # This documentation file -``` - -
- -## **Installation & Setup ๐Ÿš€** - -### **Quick Start:** - -1. **Clone or Download** this repository -2. **Navigate** to the game directory -3. **Start Local Server**: - - ```bash - # Using Python 3 - python -m http.server 8000 - - # Using Node.js (if you have it) - npx serve . - ``` - -4. **Open Browser**: Go to `http://localhost:8000` -5. **Start Playing**: The game loads automatically! - -### **No Installation Required:** - -- Pure web technologies - no dependencies -- Works in any modern web browser -- No build process or compilation needed -- Cross-platform compatible - -
- -## **Game Features Highlights โญ** - -### **๐ŸŽฏ Combat System:** - -- **Action-based Combat**: Real-time fighting with keyboard controls -- **5 Progressive Swords**: Rusty โ†’ Iron โ†’ Steel โ†’ Enchanted โ†’ Legendary -- **Special Abilities**: Each weapon has unique special attacks -- **Visual Feedback**: Particle effects, screen shake, damage numbers -- **Strategic Depth**: Critical hits, cooldowns, and resource management - -### **๐ŸŒ World Design:** - -- **4 Themed Environments**: Each with unique aesthetics and challenges -- **Progressive Difficulty**: From peaceful village to dangerous dragon's lair -- **Portal System**: Seamless travel between different areas -- **Dynamic Generation**: Enemies, items, and treasures spawn dynamically - -### **๐Ÿ“Š RPG Mechanics:** - -- **Character Progression**: Level-based stat growth and skill development -- **Equipment System**: Weapons, armor, and accessories with stat bonuses -- **Quest System**: Dynamic objectives with meaningful rewards -- **Economy**: Gold-based trading system with shop interactions - -
- -## **Controls Reference ๐ŸŽฎ** - -| Key | Action | Description | -| ------- | -------------- | ----------------------------------------- | -| `WASD` | Movement | Move character in four directions | -| `โ†‘โ†“โ†โ†’` | Movement | Alternative movement controls | -| `TAB` | Attack | Attack nearest enemy within range | -| `F` | Special Attack | Use equipped weapon's special ability | -| `Q` | Quick Heal | Consume health potion if available | -| `SPACE` | Interact | Talk to NPCs, use shops, activate objects | -| `M` | Map Selection | Open world map travel interface | -| `ESC` | Close Modals | Close any open interface windows | - -
- -## **Contributing ๐Ÿค** - -Feel free to contribute to this project by: - -- **Reporting Bugs**: Submit issues for any problems found -- **Suggesting Features**: Propose new gameplay mechanics or improvements -- **Code Contributions**: Submit pull requests with enhancements -- **Documentation**: Help improve game documentation and guides - -
- -## **License ๐Ÿ“„** - -This project is open source and available under the MIT License. Feel free to use, modify, and distribute as needed. - -
- ---- - -**๐Ÿฐ Embark on your medieval adventure today! โš”๏ธ** - -_Built with โค๏ธ using pure web technologies_ +Medieval RPG Game Screenshot +Medieval RPG Game Screenshot From 406740d6cc5dfbf050a1c088957f2b246661409a Mon Sep 17 00:00:00 2001 From: Pavan-0228 Date: Fri, 8 Aug 2025 21:32:21 +0530 Subject: [PATCH 4/4] [New game]: Medieval RPG #5168 --- Games/Medieval_RPG/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Games/Medieval_RPG/README.md b/Games/Medieval_RPG/README.md index 7622363c4..c788b97f8 100644 --- a/Games/Medieval_RPG/README.md +++ b/Games/Medieval_RPG/README.md @@ -18,7 +18,7 @@ ### **Controls:** -- **WASD / Arrow Keys**: Move your character +- **W A S D / Arrow Keys**: Move your character - **TAB**: Attack nearby enemies - **F**: Use equipped weapon's special attack - **Q**: Quick heal using available potions