"""
File-based help entries. These complements command-based help and help entries
added in the database using the `sethelp` command in-game.

Control where Evennia reads these entries with `settings.FILE_HELP_ENTRY_MODULES`,
which is a list of python-paths to modules to read.

A module like this should hold a global `HELP_ENTRY_DICTS` list, containing
dicts that each represent a help entry. If no `HELP_ENTRY_DICTS` variable is
given, all top-level variables that are dicts in the module are read as help
entries.

Each dict is on the form
::

    {'key': <str>,
     'text': <str>}``     # the actual help text. Can contain # subtopic sections
     'category': <str>,   # optional, otherwise settings.DEFAULT_HELP_CATEGORY
     'aliases': <list>,   # optional
     'locks': <str>       # optional, 'view' controls seeing in help index, 'read'
                          #           if the entry can be read. If 'view' is unset,
                          #           'read' is used for the index. If unset, everyone
                          #           can read/view the entry.

"""

    #     """
    # },
    # {
    #     "key": "commands",
    #     "alias": ["command"],
    #     "locks": "read:all()",
    #   "text": """

HELP_ENTRY_DICTS = [
    {
        "key": "start",
        "aliases": ["intro"],
        "locks": "read:all()",
        "text": """To |wplay this game|n, you typically type a |w<verb>|n for an action, or |w<verb> <object>|n combinations. For instance, type |glook|n to look around the area, and |glook tree|n to examine the trees in particular. The more you look, the more you explore.

What verbs are available depends on where you are and what you might be holding. Type |ghelp|n with no other option to get a list of those commands. Then type |ghelp look|n to get details on how to use the |wlook|n verb.

A bit about this |ghelp|n system. This document is longer, and you'll see at the end of this paragraph, some _transient commands_, for instance, you can type |gnext|n to see the next page. However, you can ignore that list, and type |glook puddle|n to skip this and gander at the puddle that might be at your feet. For now, type |gnext|n to keep reading...
\f
This is a multi-user game, you might run into other characters, and they may look at you, so let's type the following to tell others what they see when they look at you:

    |g@setdesc A frumpy, but spry person with large ears and a dark blue cloak.|n

While it can be quite long and descriptive, you are limited to a single paragraph, since when you hit the 'Return' key, you submit your description.

To see what people see when they look at you, type:

    |glook self|n

No one in this game knows your name, instead, they only know you by your |wshort description|n you established when creating your character. Change it with:

    |gsdesc balding goblin|n

You will also want to |wadd to that description|n with a pose, like:

    |gpose winking at everyone|n

These two labels will be shown to anyone looking around the area you are in.

This is the end of this help section, but I have some related topics to this intro, so you can type |ghelp start/commands|n to get a list of typical commands, or just start playing this game.

Enjoy!

# Subtopics

## Commands

A command is typically a 'verb'. The most common ones in this game are:

  - |glook|n to look around at your surroundings
  - |glook <thing>|n to look at something particular
  - |gget <thing>|n to pick up something
  - |ginventory|n (or |ginv|n or just |gi|n) for a list of what you carry
  - |gdrop <thing>|n to leave the thing in this area (but don't litter)
  - |gsay|n to talk to the characters and object in your current location
  - |gpose|n to update your description
  - |gemote|n to state a fact about yourself and the world around you.

Type |ghelp|n and those commands to get more information on its usage.

Or see the online Player's Handbook at https://howardabrams.com/cozy-players-guide/

## Exits

Exits are special commands, and move you to a new location. So typing |gsouth|n will move you to a new location (assuming that exit is available). Some exits can be abbreviated, so typing |gs|n alone is the same as 'south'.

Keep in mind that some exits may not be available until you |glook|n for them (but that is part of the exploratory game, like this).
        """
    },
    {
        "key": "charrename",
        "aliases": ["renaming characters"],
        "locks": "read:all()",
        "text": """When you created your account, my game creates a character with the same name. If you want to rename yourself, you create a new character. Follow these steps.

Leave your current character by typing:

     |gooc|n

While you don't have to, you can delete your old character with:

     |gchardelete <original-name>|n

This only deletes the character of that name, not your account.

Next, create a new character by typing:

     |gcharcreate|n

And follow the step-by-step guide to creating a new character.

Assume a previously created character by typing:

     |gic Rambler|n"""
    },
    {
        "key": "evennia",
        "aliases": ["ev"],
        "category": "General",
        "locks": "read:perm(Developer)",
        "text": """
            Evennia is a MU-game server and framework written in Python. You can read more
            on https://www.evennia.com.

            # subtopics

            ## Installation

            You'll find installation instructions on https://www.evennia.com.

            ## Community

            There are many ways to get help and communicate with other devs!

            ### Discussions

            The Discussions forum is found at https://github.com/evennia/evennia/discussions.

            ### Discord

            There is also a discord channel for chatting - connect using the
            following link: https://discord.gg/AJJpcRUhtF

        """,
    },
]
