Python:
from LivinGrimoirePacket.LivinGrimoire import Skill
from LivinGrimoirePacket.AXPython import Catche
import re
class DiTargeteer(Skill):
def __init__(self):
super().__init__()
self.catche = Catche(maxsize=10) # Memory buffer for recent objectives
self.triggers = ["find", "get", "destroy", "observe", "track"]
self.pattern = re.compile(rf"({'|'.join(self.triggers)})\s+(\w+)", re.IGNORECASE)
def input(self, ear: str) -> str:
if not ear:
return ""
# Step 1: Detect objectives
matches = self.pattern.findall(ear)
for verb, obj in matches:
obj = obj.lower()
verb = verb.lower()
self.catche.add(obj, verb)
# Step 2: React if known objective is mentioned
if any(trigger in ear.lower() for trigger in self.triggers):
return ""
tokens = ear.lower().split()
for token in tokens:
if token in self.catche.dic:
action = self.catche.dic[token]
return f"⚔️ {action.capitalize()}ing {token} as per directive."
# Optional: Echo stored objectives for debugging
# return f"[Catche: {self.catche.dic}]"
return ""
Last edited: