rom24-quickmud-python 2.9.18__py3-none-any.whl → 2.9.19__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,11 +11,23 @@ from mud.models.constants import AffectFlag, PlayerFlag, Position
11
11
  from mud.world.char_find import get_char_room
12
12
 
13
13
 
14
+ def _display_name(character: Character | None) -> str:
15
+ if character is None:
16
+ return "Someone"
17
+ name = getattr(character, "name", None)
18
+ if isinstance(name, str) and name:
19
+ return name
20
+ short_descr = getattr(character, "short_descr", None)
21
+ if isinstance(short_descr, str) and short_descr:
22
+ return short_descr
23
+ return "Someone"
24
+
25
+
14
26
  def add_follower(char: Character, master: Character) -> None:
15
27
  """
16
28
  Add char as a follower of master.
17
29
 
18
- ROM Reference: src/act_comm.c add_follower (lines 1600-1620)
30
+ ROM Reference: src/act_comm.c add_follower (lines 1591-1607)
19
31
  """
20
32
  if char.master is not None:
21
33
  return # Already following someone
@@ -28,6 +40,19 @@ def add_follower(char: Character, master: Character) -> None:
28
40
  if char not in master.followers:
29
41
  master.followers.append(char)
30
42
 
43
+ # ROM lines 1602-1605: act("$n now follows you.", ch, NULL, master, TO_VICT)
44
+ # gated on can_see(master, ch); act("You now follow $N.", ch, NULL, master, TO_CHAR).
45
+ from mud.world.vision import can_see_character
46
+
47
+ if can_see_character(master, char):
48
+ master_messages = getattr(master, "messages", None)
49
+ if isinstance(master_messages, list):
50
+ master_messages.append(f"{_display_name(char)} now follows you.")
51
+
52
+ char_messages = getattr(char, "messages", None)
53
+ if isinstance(char_messages, list):
54
+ char_messages.append(f"You now follow {_display_name(master)}.")
55
+
31
56
 
32
57
  def stop_follower(char: Character) -> None:
33
58
  """
@@ -48,6 +73,19 @@ def stop_follower(char: Character) -> None:
48
73
  if hasattr(master, "followers") and char in master.followers:
49
74
  master.followers.remove(char)
50
75
 
76
+ # ROM lines 1626-1630: act("$n stops following you.", ch, NULL, ch->master, TO_VICT);
77
+ # act("You stop following $N.", ch, NULL, ch->master, TO_CHAR); gated on
78
+ # can_see(ch->master, ch) && ch->in_room != NULL.
79
+ from mud.world.vision import can_see_character
80
+
81
+ if can_see_character(master, char) and getattr(char, "room", None) is not None:
82
+ master_messages = getattr(master, "messages", None)
83
+ if isinstance(master_messages, list):
84
+ master_messages.append(f"{_display_name(char)} stops following you.")
85
+ char_messages = getattr(char, "messages", None)
86
+ if isinstance(char_messages, list):
87
+ char_messages.append(f"You stop following {_display_name(master)}.")
88
+
51
89
  char.master = None
52
90
  char.leader = None
53
91
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rom24-quickmud-python
3
- Version: 2.9.18
3
+ Version: 2.9.19
4
4
  Summary: A modern Python port of the ROM 2.4b6 MUD engine with full telnet server and JSON world loading
5
5
  Author-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
6
6
  Maintainer-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
@@ -59,7 +59,7 @@ mud/commands/doors.py,sha256=KWMQPVJHs8-xPFE08kStOOU9x5ugN5sEFuo7nlQL2Z8,19777
59
59
  mud/commands/equipment.py,sha256=BXUJhe_volohdgUKpugV8Wfcn-pHXG6ooaKeF6LmcI4,22882
60
60
  mud/commands/feedback.py,sha256=qEmUlVy1KC6ludpAREdqvf8gpa8jmgN4AMLor0EoO7E,2472
61
61
  mud/commands/give.py,sha256=BcZjqFm1WqhoRi9qZJ8G9zRu_buXptwg9Y7_oSNnFVE,8787
62
- mud/commands/group_commands.py,sha256=FZeOKy0bu50B4vB3X-pfE-hjZ3CbpI5qSES8Jc56gGM,16916
62
+ mud/commands/group_commands.py,sha256=_9KroYmWxm3CfvhJj5iFEw1szXS-UlGIe8YiOm3IVU8,18627
63
63
  mud/commands/healer.py,sha256=noZ3t97C_0j1GEJd8nUNYYv4clHxuD4dvFSR3c1gfUA,7576
64
64
  mud/commands/help.py,sha256=GfQWy6MyFtDc-mW1dM7pPN1SFVsWtIGno8uR4dRQYjg,11124
65
65
  mud/commands/imc.py,sha256=v1lPP2xDjQjkk7negwjCXJtcRPQkBEIGWmpPKf1XPzU,12204
@@ -216,9 +216,9 @@ mud/world/obj_find.py,sha256=tgnUkbFjnCl586Lzl6yRzCmllZSNEfQpQlrxCMVcUGU,5295
216
216
  mud/world/time_persistence.py,sha256=K4uhRpu08IDHY5uReBYTvw4BHuqsSxWvbv-h1VsPvf8,1663
217
217
  mud/world/vision.py,sha256=NRk3cvrGyyldU4W98qAVlYZp9wL-IUE1dTgk6DpM-NA,11609
218
218
  mud/world/world_state.py,sha256=3KpiDP6v24sZDn9-g44UypXpegzgRShHo1XvektJzdU,8810
219
- rom24_quickmud_python-2.9.18.dist-info/licenses/LICENSE,sha256=anQ2j9As6sIC8tZgQCXbo0-09JDH9vPiqhA9djnOvkY,1078
220
- rom24_quickmud_python-2.9.18.dist-info/METADATA,sha256=Gath7nkg7vP0AgqOnrU6xmSEiNQg1HFEFGo1sn5CBQU,15671
221
- rom24_quickmud_python-2.9.18.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
222
- rom24_quickmud_python-2.9.18.dist-info/entry_points.txt,sha256=VFru08UQTXZA_CkK-NBjJmWHyEX5a3864fQHjhaojbw,41
223
- rom24_quickmud_python-2.9.18.dist-info/top_level.txt,sha256=Fk1WPmabIIjp7_iZXLYpbAVqiq7lG7TeAHt30AsOKtQ,4
224
- rom24_quickmud_python-2.9.18.dist-info/RECORD,,
219
+ rom24_quickmud_python-2.9.19.dist-info/licenses/LICENSE,sha256=anQ2j9As6sIC8tZgQCXbo0-09JDH9vPiqhA9djnOvkY,1078
220
+ rom24_quickmud_python-2.9.19.dist-info/METADATA,sha256=NSFn4LIyR0pjXXeGRQ4L6mSzo2Ym-I3BC3z3tRS0n98,15671
221
+ rom24_quickmud_python-2.9.19.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
222
+ rom24_quickmud_python-2.9.19.dist-info/entry_points.txt,sha256=VFru08UQTXZA_CkK-NBjJmWHyEX5a3864fQHjhaojbw,41
223
+ rom24_quickmud_python-2.9.19.dist-info/top_level.txt,sha256=Fk1WPmabIIjp7_iZXLYpbAVqiq7lG7TeAHt30AsOKtQ,4
224
+ rom24_quickmud_python-2.9.19.dist-info/RECORD,,