1
0
Fork 0
taleweave-ai/adventure/utils/planning.py

38 lines
942 B
Python
Raw Normal View History

from adventure.models.entity import Actor
def expire_events(actor: Actor, current_turn: int):
"""
Expire events that have already happened.
"""
events = actor.planner.calendar.events
expired_events = [event for event in events if event.turn < current_turn]
actor.planner.calendar.events[:] = [
event for event in events if event not in expired_events
]
return expired_events
def get_recent_notes(actor: Actor, count: int = 3):
"""
Get the most recent facts from your notes.
"""
return actor.planner.notes[-count:]
def get_upcoming_events(actor: Actor, current_turn: int, upcoming_turns: int = 3):
"""
Get a list of upcoming events within a certain number of turns.
"""
calendar = actor.planner.calendar
# TODO: sort events by turn
return [
event
for event in calendar.events
if event.turn - current_turn <= upcoming_turns
]