from talemate.agents.base import Agent, AgentAction from talemate.agents.registry import register from talemate.events import GameLoopEvent import talemate.emit.async_signals from talemate.emit import emit @register() class TestAgent(Agent): agent_type = "test" verbose_name = "Test" def __init__(self, client): self.client = client self.is_enabled = True self.actions = { "test": AgentAction( enabled=True, label="Test", description="Test", ), } @property def enabled(self): return self.is_enabled @property def has_toggle(self): return True @property def experimental(self): return True def connect(self, scene): super().connect(scene) talemate.emit.async_signals.get("game_loop").connect(self.on_game_loop) async def on_game_loop(self, emission: GameLoopEvent): """ Called on the beginning of every game loop """ if not self.enabled: return emit("status", status="info", message="Annoying you with a test message every game loop.")