only add movement to digest if it was to or from the active room, fix some digest prompt templates
This commit is contained in:
parent
d04af601ef
commit
288fb476a4
|
@ -3,17 +3,17 @@ prompts:
|
|||
digest_action_move: |
|
||||
{{event.character | name}} entered the room.
|
||||
digest_action_take: |
|
||||
{{event.character | name}} picked up the {{event.parameters[item]}}.
|
||||
{{event.character | name}} picked up the {{event.parameters['item']}}.
|
||||
digest_action_give: |
|
||||
{{event.character | name}} gave the {{event.parameters[item]}} to {{event.parameters[character]}}.
|
||||
{{event.character | name}} gave the {{event.parameters['item']}} to {{event.parameters['character']}}.
|
||||
digest_action_drop: |
|
||||
{{event.character | name}} dropped the {{event.parameters[item]}}.
|
||||
{{event.character | name}} dropped the {{event.parameters['item']}}.
|
||||
digest_action_ask: |
|
||||
{{event.character | name}} asked {{event.parameters[character]}} about something.
|
||||
{{event.character | name}} asked {{event.parameters['character']}} about something.
|
||||
digest_action_tell: |
|
||||
{{event.character | name}} told {{event.parameters[character]}} about something.
|
||||
{{event.character | name}} told {{event.parameters['character']}} about something.
|
||||
digest_action_examine: |
|
||||
{{event.character | name}} examined the {{event.parameters[target]}}.
|
||||
{{event.character | name}} examined the {{event.parameters['target']}}.
|
||||
|
||||
# movement digest
|
||||
digest_move_other_enter: |
|
||||
|
|
|
@ -16,18 +16,23 @@ def create_move_digest(
|
|||
active_room: Room,
|
||||
active_character: Character,
|
||||
event: ActionEvent,
|
||||
) -> str:
|
||||
) -> str | None:
|
||||
source_room = event.room
|
||||
direction = str(event.parameters.get("direction"))
|
||||
destination_portal = find_portal(world, direction)
|
||||
if not destination_portal:
|
||||
raise ValueError(f"Could not find portal for direction {direction}")
|
||||
logger.warning(f"Could not find portal for direction {direction}")
|
||||
return None
|
||||
|
||||
destination_room = find_room(world, destination_portal.destination)
|
||||
if not destination_room:
|
||||
raise ValueError(
|
||||
logger.warning(
|
||||
f"Could not find destination room {destination_portal.destination}"
|
||||
)
|
||||
return None
|
||||
|
||||
if not (destination_room == source_room or destination_room == active_room):
|
||||
return None
|
||||
|
||||
# look up the source portal
|
||||
source_portal = next(
|
||||
|
@ -39,7 +44,8 @@ def create_move_digest(
|
|||
None,
|
||||
)
|
||||
if not source_portal:
|
||||
raise ValueError(f"Could not find source portal for {destination_portal.name}")
|
||||
logger.warning(f"Could not find source portal for {destination_portal.name}")
|
||||
return None
|
||||
|
||||
character_mode = "self" if (event.character == active_character) else "other"
|
||||
direction_mode = "enter" if (destination_room == active_room) else "exit"
|
||||
|
@ -72,6 +78,7 @@ def create_turn_digest(
|
|||
message = create_move_digest(
|
||||
world, active_room, active_character, event
|
||||
)
|
||||
if message:
|
||||
messages.append(message)
|
||||
except Exception:
|
||||
logger.exception(
|
||||
|
|
Loading…
Reference in New Issue