mud/src/mudlib/entity.py

30 lines
848 B
Python

"""Base entity class for characters in the world."""
from dataclasses import dataclass
@dataclass
class Entity:
"""Base class for anything with position and identity in the world."""
name: str
x: int
y: int
# Combat stats
pl: float = 100.0 # power level (health and damage multiplier)
stamina: float = 100.0 # current stamina
max_stamina: float = 100.0 # stamina ceiling
defense_locked_until: float = 0.0 # monotonic time when defense recovery ends
resting: bool = False # whether this entity is currently resting
async def send(self, message: str) -> None:
"""Send a message to this entity. Base implementation is a no-op."""
pass
@dataclass
class Mob(Entity):
"""Represents a non-player character (NPC) in the world."""
description: str = ""
alive: bool = True