diff --git a/evennia/contrib/grid/extended_room/extended_room.py b/evennia/contrib/grid/extended_room/extended_room.py index 5d848551c..843c39e0a 100644 --- a/evennia/contrib/grid/extended_room/extended_room.py +++ b/evennia/contrib/grid/extended_room/extended_room.py @@ -359,7 +359,10 @@ class CmdExtendedRoomLook(default_cmds.CmdLook): ): detail = location.return_detail(args) if detail: - # we found a detail instead. Show that. + # we found a detail + # tell all the objects in the room we're looking closely at something + caller.location.msg_contents(f"$You() $conj(look) closely at {args}.\n", from_obj=caller) + # show the detail to the player caller.msg(detail) return # no detail found. Trigger delayed error messages diff --git a/evennia/contrib/grid/extended_room/tests.py b/evennia/contrib/grid/extended_room/tests.py index 22a43d500..d5ec1e0f2 100644 --- a/evennia/contrib/grid/extended_room/tests.py +++ b/evennia/contrib/grid/extended_room/tests.py @@ -63,10 +63,27 @@ class TestExtendedRoom(BaseEvenniaCommandTest): "here", "Room(#{})\n{}".format(rid, self.SPRING_DESC), ) - self.call(extended_room.CmdExtendedRoomLook(), "testdetail", self.DETAIL_DESC) + self.call( + extended_room.CmdExtendedRoomLook(), + "testdetail", + "You look closely at {}.\n|{}".format("testdetail", self.DETAIL_DESC) + ) self.call( extended_room.CmdExtendedRoomLook(), "nonexistent", "Could not find 'nonexistent'." ) + + def test_cmdextendedlook_second_person(self): + # char2 is already in the same room. + # replace char2.msg with a Mock; this disables it and will catch what it is called with + self.char2.msg = Mock() + + self.call( + extended_room.CmdExtendedRoomLook(), + "testdetail" + ) + + # check what char2 saw. + self.char2.msg.assert_called_with(text=('Char looks closely at testdetail.\n', {}), from_obj=self.char1) def test_cmdsetdetail(self): self.call(extended_room.CmdExtendedRoomDetail(), "", "Details on Room")