From f4cb272e22a72613ce6cc7e4c0e0ad52aa5e671e Mon Sep 17 00:00:00 2001 From: Chiizujin Date: Mon, 1 Apr 2024 15:51:39 +1100 Subject: [PATCH] Add support to get_numbered_name() for omitting the article for single items --- evennia/objects/objects.py | 6 ++++++ evennia/objects/tests.py | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 97b5849224..829b8df6d8 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -1476,6 +1476,7 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): method is used. return_string (bool): If `True`, return only the singular form if count is 0,1 or the plural form otherwise. If `False` (default), return both forms as a tuple. + no_article (bool): If `True`, do not return an article if `count` is 1. Returns: tuple: This is a tuple `(str, str)` with the singular and plural forms of the key @@ -1505,6 +1506,11 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): # look at 'an egg'. self.aliases.add(singular, category=plural_category) + if kwargs.get("no_article") and count == 1: + if kwargs.get("return_string"): + return key + return key, key + if kwargs.get("return_string"): return singular if count==1 else plural diff --git a/evennia/objects/tests.py b/evennia/objects/tests.py index a77b348d02..abc2adecdb 100644 --- a/evennia/objects/tests.py +++ b/evennia/objects/tests.py @@ -185,6 +185,11 @@ class DefaultObjectTest(BaseEvenniaTest): pattern, ) + def test_get_name_without_article(self): + self.assertEqual(self.obj1.get_numbered_name(1, self.char1, return_string=True), "an Obj") + self.assertEqual( + self.obj1.get_numbered_name(1, self.char1, return_string=True, no_article=True), "Obj" + ) class TestObjectManager(BaseEvenniaTest): "Test object manager methods"