Farben im Mud
=============

  Farben in der Ausgabe werden im MorgenGrauen bislang eher selten verwendet und die Einfaerbung meistens den Triggern des Clients ueberlassen.
  Moechte man allerdings direkt etwas (farblich) markieren, stehen hierfuer einige Hervorhebungs-Tags zur Verfuegung, welche in ReceiveMsg() durch die passenden Steuercodes fuer den Terminaltypen des Clients ersetzt werden.

  Hierfuer muss die Ausgabe lediglich durch ReceiveMsg() und deren Wrapper erfolgen, weitere Massnahmen sind weder noetig noch empfohlen.

  Benutzt werden diese Tags, indem die in den auszugebenden Text zwischen zwei "%^" gesetzt werden: ```%^tag%^markierter Text%^endetag%^```. Hierbei sollte dann ReceiveMsg() allerdings auch der Zeilenumbruch ueberlassen werden.

  Zu beachten ist, dass je nach Client bzw. seinem Terminaltyp nicht alle Tags benutzbar sind. Falls z.B. der Client kein ANSI untertuetzt und die Spielerin dieses abgeschaltet hat, werden diese Tags nicht gesendet oder als Tag "normal" behandelt.

  Technisch erfolgt die Ersetzung mittels terminal_colour(), welches man nutzen koennte, um Farben in eine Ausgabe zu bringen, ohne ReceiveMsg & Co zu nutzen. Allerdings ist aktuell die Farbtabelle des Spielerobjekts nicht abfragbar.


Tag-Liste
---------

Logische Hervorhebungen
________________________

  Zusaetzlich zu den direkt physischen Hervorhebungen (s.u.) gibt es noch logische Hervorhebungen, welche zu einer vom Spieler konfigurierbaren (TODO) Darstellung fuehren:

  mention
    Erwaehnungen eines Charnamens mit @Charname

  normal
    Normale Darstellung des Clients

Physische Hervorhebungen
________________________

  Diese Hervorhebungen stellen direkt eine bestimmte Farbe oder Darstellung ein.

  Vordergrundfarben (ANSI)
    black, red, green, yellow, blue, purple, cyan, white

  Hintergrundfarben (ANSI)
    bg_black, bg_red, bg_green, bg_yellow, bg_blue, bg_purple, bg_cyan, bg_white

  Sonstiges (VT100, ANSI)
    bold (fettgedruckt), underlined (unterstrichen), blink (blinkend), invers (Vorder- und Hintergrundfarbe invertiert)


Beispiel
--------

  .. code-block:: pike

  this_player().ReceiveMsg(
      "Zesstra wirft Dir einen %^red%^roten Eimer%^normal%^ an den Kopf.",
      MT_LOOK, MA_EMOTE);


SIEHE AUCH
----------

  :doc:`../lfun/ReceiveMsg`,
  :doc:`../efun/terminal_colour`,
  :doc:`../props/P_TTY`, :doc:`../props/P_TTY_TYPE`

Letzte Aenderung: 10.22.2022

