38 lines
942 B
Python
38 lines
942 B
Python
|
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
|
||
|
]
|