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: |
|
digest_action_move: |
|
||||||
{{event.character | name}} entered the room.
|
{{event.character | name}} entered the room.
|
||||||
digest_action_take: |
|
digest_action_take: |
|
||||||
{{event.character | name}} picked up the {{event.parameters[item]}}.
|
{{event.character | name}} picked up the {{event.parameters['item']}}.
|
||||||
digest_action_give: |
|
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: |
|
digest_action_drop: |
|
||||||
{{event.character | name}} dropped the {{event.parameters[item]}}.
|
{{event.character | name}} dropped the {{event.parameters['item']}}.
|
||||||
digest_action_ask: |
|
digest_action_ask: |
|
||||||
{{event.character | name}} asked {{event.parameters[character]}} about something.
|
{{event.character | name}} asked {{event.parameters['character']}} about something.
|
||||||
digest_action_tell: |
|
digest_action_tell: |
|
||||||
{{event.character | name}} told {{event.parameters[character]}} about something.
|
{{event.character | name}} told {{event.parameters['character']}} about something.
|
||||||
digest_action_examine: |
|
digest_action_examine: |
|
||||||
{{event.character | name}} examined the {{event.parameters[target]}}.
|
{{event.character | name}} examined the {{event.parameters['target']}}.
|
||||||
|
|
||||||
# movement digest
|
# movement digest
|
||||||
digest_move_other_enter: |
|
digest_move_other_enter: |
|
||||||
|
|
|
@ -16,18 +16,23 @@ def create_move_digest(
|
||||||
active_room: Room,
|
active_room: Room,
|
||||||
active_character: Character,
|
active_character: Character,
|
||||||
event: ActionEvent,
|
event: ActionEvent,
|
||||||
) -> str:
|
) -> str | None:
|
||||||
source_room = event.room
|
source_room = event.room
|
||||||
direction = str(event.parameters.get("direction"))
|
direction = str(event.parameters.get("direction"))
|
||||||
destination_portal = find_portal(world, direction)
|
destination_portal = find_portal(world, direction)
|
||||||
if not destination_portal:
|
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)
|
destination_room = find_room(world, destination_portal.destination)
|
||||||
if not destination_room:
|
if not destination_room:
|
||||||
raise ValueError(
|
logger.warning(
|
||||||
f"Could not find destination room {destination_portal.destination}"
|
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
|
# look up the source portal
|
||||||
source_portal = next(
|
source_portal = next(
|
||||||
|
@ -39,7 +44,8 @@ def create_move_digest(
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
if not source_portal:
|
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"
|
character_mode = "self" if (event.character == active_character) else "other"
|
||||||
direction_mode = "enter" if (destination_room == active_room) else "exit"
|
direction_mode = "enter" if (destination_room == active_room) else "exit"
|
||||||
|
@ -72,7 +78,8 @@ def create_turn_digest(
|
||||||
message = create_move_digest(
|
message = create_move_digest(
|
||||||
world, active_room, active_character, event
|
world, active_room, active_character, event
|
||||||
)
|
)
|
||||||
messages.append(message)
|
if message:
|
||||||
|
messages.append(message)
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.exception(
|
logger.exception(
|
||||||
"error formatting digest for move event: %s", event
|
"error formatting digest for move event: %s", event
|
||||||
|
|
Loading…
Reference in New Issue