Gendersub

Contribution by Griatch 2015

This is a simple gender-aware Character class for allowing users to insert custom markers in their text to indicate gender-aware messaging. It relies on a modified msg() and is meant as an inspiration and starting point to how to do stuff like this.

An object can have the following genders:

  • male (he/his)

  • female (her/hers)

  • neutral (it/its)

  • ambiguous (they/them/their/theirs)

Installation

Import and add the SetGender command to your default cmdset in mygame/commands/default_cmdset.py:

# mygame/commands/default_cmdsets.py

# ...

from evennia.contrib.game_systems.gendersub import SetGender   # <---

# ...

class CharacterCmdSet(default_cmds.CharacterCmdSet):
    # ...
    def at_cmdset_creation(self):
        # ...
        self.add(SetGender())   # <---

Make your Character inherit from GenderCharacter.

# mygame/typeclasses/characters.py

# ...

from evennia.contrib.game_systems.gendersub import GenderCharacter  # <---

class Character(GenderCharacter):  # <---
    # ...

Reload the server (evennia reload or reload from inside the game).

Usage

When in use, messages can contain special tags to indicate pronouns gendered based on the one being addressed. Capitalization will be retained.

  • |s, |S: Subjective form: he, she, it, He, She, It, They

  • |o, |O: Objective form: him, her, it, Him, Her, It, Them

  • |p, |P: Possessive form: his, her, its, His, Her, Its, Their

  • |a, |A: Absolute Possessive form: his, hers, its, His, Hers, Its, Theirs

For example,

char.msg("%s falls on |p face with a thud." % char.key)
"Tom falls on his face with a thud"

The default gender is “ambiguous” (they/them/their/theirs).

To use, have DefaultCharacter inherit from this, or change setting.DEFAULT_CHARACTER to point to this class.

The gender command is used to set the gender. It needs to be added to the default cmdset before it becomes available.


This document page is generated from evennia/contrib/game_systems/gendersub/README.md. Changes to this file will be overwritten, so edit that file rather than this one.