ai-dungeon / game /player.py
prgrmc's picture
First commit project
fdcbf65
from helper import run_action
from typing import Dict, List
# Implement basic movement logic for the player.
class Player:
def __init__(self, name):
self.name = name
self.health = 100
self.max_health = 100
self.level = 1
self.exp = 0
self.exp_to_level = 100
self.position = [0, 0]
self.inventory = []
self.current_quest = None
self.completed_quests = []
self.skills = {"combat": 1, "stealth": 1, "magic": 1}
def gain_exp(self, amount: int) -> bool:
"""Award experience and handle leveling"""
self.exp += amount
if self.exp >= self.exp_to_level:
self.level_up()
return True
return False
def level_up(self):
"""Handle level up effects"""
self.level += 1
self.exp -= self.exp_to_level
self.exp_to_level = int(self.exp_to_level * 1.5)
self.max_health += 10
self.health = self.max_health
def add_quest(self, quest: Dict):
"""Add a new quest to track"""
self.current_quest = quest
def complete_quest(self, quest: Dict):
"""Complete a quest and gain rewards"""
if quest in self.completed_quests:
return False
self.completed_quests.append(quest)
self.gain_exp(quest.get("exp_reward", 50))
return True
def interact(self, npc, game_state):
"""Get AI-generated dialogue with NPCs"""
prompt = f"You talk to {npc.name}. What do they say?"
dialogue = run_action(prompt, [], game_state)
return dialogue
def examine(self, item, game_state):
"""Get AI-generated item description"""
prompt = f"You examine the {item.name} closely. What do you discover?"
description = run_action(prompt, [], game_state)
return description