// Simple Text Adventure Game // Works around the function return bug by using global variables include "text_adventure/items.nyash" // Global game state global GAME_ROOM = false global GAME_PLAYER = false // Simple Room (without function returns) box SimpleRoom { init { name, description, hasPotion, hasSword } SimpleRoom(name, desc) { me.name = name me.description = desc me.hasPotion = true me.hasSword = true } look() { print("=== " + me.name + " ===") print(me.description) print("") if me.hasPotion { print("You see a Health Potion here.") } if me.hasSword { print("You see an Iron Sword here.") } } takePotion() { if me.hasPotion { me.hasPotion = false return "You take the Health Potion." } else { return "There's no potion here." } } takeSword() { if me.hasSword { me.hasSword = false return "You take the Iron Sword." } else { return "There's no sword here." } } } // Simple Player (without complex inventory) box SimplePlayer { init { name, health, hasPotion, hasSword, potionUsed } SimplePlayer(name) { me.name = name me.health = 100 me.hasPotion = false me.hasSword = false me.potionUsed = false } status() { print("=== " + me.name + " ===") print("Health: " + me.health) if me.hasPotion { print("Inventory: Health Potion") } if me.hasSword { print("Inventory: Iron Sword") } if me.hasPotion == false && me.hasSword == false { print("Inventory: Empty") } } usePotion() { if me.hasPotion && me.potionUsed == false { me.health = 100 me.potionUsed = true me.hasPotion = false return "You use the Health Potion and restore your health to 100!" } else { if me.potionUsed { return "You already used the potion." } else { return "You don't have a potion." } } } attack() { if me.hasSword { return "You swing your sword! *SWOOSH*" } else { return "You have no weapon to attack with." } } } // Initialize game (using globals to avoid function returns) function initGame(playerName) { GAME_ROOM = new SimpleRoom("Entrance Hall", "A dusty room with stone walls.") GAME_PLAYER = new SimplePlayer(playerName) print("🎮 Welcome to Simple Adventure, " + playerName + "!") print("") } // Game commands function look() { if GAME_ROOM { GAME_ROOM.look() } } function status() { if GAME_PLAYER { GAME_PLAYER.status() } } function take(item) { if item == "potion" || item == "health potion" { result = GAME_ROOM.takePotion() if result == "You take the Health Potion." { GAME_PLAYER.hasPotion = true } print(result) } else { if item == "sword" || item == "iron sword" { result = GAME_ROOM.takeSword() if result == "You take the Iron Sword." { GAME_PLAYER.hasSword = true } print(result) } else { print("I don't see that here.") } } } function use(item) { if item == "potion" || item == "health potion" { print(GAME_PLAYER.usePotion()) } else { print("You can't use that.") } } function attack() { print(GAME_PLAYER.attack()) } function hurt(damage) { GAME_PLAYER.health = GAME_PLAYER.health - damage print("Ouch! You take " + damage + " damage.") if GAME_PLAYER.health <= 0 { print("💀 You have died! Game Over.") } } function help() { print("=== Available Commands ===") print("look - Look around the room") print("status - Check your status") print("take - Take an item") print("use - Use an item") print("attack - Attack with your weapon") print("help - Show this help") } // Test the game print("🎮 Simple Adventure Game - Testing...") print("") initGame("Hero") print("") print("--- Testing look command ---") look() print("") print("--- Testing status command ---") status() print("") print("--- Testing take commands ---") take("potion") take("sword") print("") print("--- Testing status after taking items ---") status() print("") print("--- Testing hurt and heal ---") hurt(50) status() print("") use("potion") status() print("") print("--- Testing attack ---") attack() print("") print("✅ Simple Adventure Game test completed!") print("") print("This game works around the instance return bug by using global variables.") print("All game functionality is working correctly!")