Typeclasses - gridpunx-team/gridpunx GitHub Wiki

accounts.py

No changes have been made to the default Evennia accounts typeclasses.

channels.py

No changes have been made to the default Evennia channels typeclasses.

characters.py

Character

Inherits From: DefaultCharacter

Utilized by: Nothing yet.

Special Notes: Everything here is currently temporary and subject to many changes.

A Character is a player’s character in the physical realm. It is simply a DefaultCharacter with three attributes:

  1. is_human, set to True
  2. hitpoints, set to 100
  3. gridbits, set to 16

Note that this is all very much temporary. There will be two major sets of changes to this typeclass in the future. One will be a RPG system of various attributes and skills. Another will be an advanced health system that will be reminiscent of various modern survival games. The game’s economic system will likely add a few minor changes.

exits.py

No changes have been made to the default Evennia exits typeclasses.

npc.py

The npc.py file contains the basic commands and typeclasses used for interactive NPCs.

RealTalkingNPC

Inherits From: RealObject

Utilized by: Nothing yet.

Special Notes: Creating an object based on this typeclass makes an NPC that tells you it has nothing to say. Each NPC should get its own file in the typeclasses/npcs folder

The RealTalkingNPC is a custom class of object that is assigned a dialogue tree that a player can use to interact with as if it were a conversation. Currently, all this does is assign the @talk command to the object and set a lock on @get

npcs (folder)

gambler.py

Inherits From: RealTalkingNPC

Utilized by: Builders

Special Notes: Just a simple gambling game. This was created to test the viability of the NPC dialogue system.

This NPC essentially plays street dice with 2d12 instead of 2d6. Choosing ‘any’ seems to win a lot, so it may get removed from the betting options to make the game actually more of a scam. The math works out so that any double has the same chances as rolling 13 (8.33%).

objects.py

Object

Inherits From: DefaultObject

Utilized by: All objects in the game world; both physical and digital.

Special Notes: None.

This is currently left exactly how it is generated by Evennia. All it does is inherit the DefaultObject basetype class. This may contain code that ties together portions of digital and physical realms (like game-world time).

RealObject

Inherits From: Object

Utilized by: All real objects

Special Notes: None.

A RealObject is the basetype class which establishes functions that are useful to have on any object in the physical realm.

Note that no at_item_creation() hook is defined, since most objects should actually use more specific typeclasses when they are created.

RealEnvironment

Inherits From: RealObject

Utilized by: Nothing yet.

Special Notes: None.

RealEnvironment objects will inherit everything from the RealObject class. Their intended purpose is to be an object which can only be interacted with in a very minimal way. They can be thought of as structures, statues, or very large objects.

These objects are created with 256 hitpoints, because they are supposed to be very large objects or structures.

RealItem

Inherits From: RealObject

Utilized by: Nothing yet.

Special Notes: None.

The RealItem class represents physical objects which can be manipulated, picked up, stored inside things, and much more. Objects created using this typeclass are intended to be picked up or manipulated by characters.

Items are little nick-knacks that aren’t very durable. They have 16 hitpoints at creation by default.

RealThing

Inherits From: RealObject

Utilized by: Nothing yet.

Special Notes: None.

RealThing objects can serve many purposes, but are mainly intended to be more advanced versions of RealItems that are connected to The Grid.

Things are more durable than Items, but they still have sensitive electronics that enable a connection to The Grid. They are assigned 64 hipoints by default. That should be enough to take some wear and tear before needing to be repaired or replaced.

rooms.py

RealRoom

Inherits From: DefaultRoom

Utilized by: Nothing yet.

Special Notes: None.

For now, the RealRoom is just there to establish a hierarchy of rooms.

RealInside

Inherits From: RealRoom

Utilized by: Nothing yet.

Special Notes: None.

RealOutside

Inherits From: RealRoom

Utilized by: Nothing yet.

Special Notes: Has attached script which harms characters, even if you are a privileged account.

The RealOutside typeclass has a script (HarshClimate) attached to it during object creation. This script harms players every 2 minutes alongside with a message that reminds you of how bleak and terrible it is outside, even if you are a privileged account.

scripts.py

Script

Inherits From: DefaultScript

Utilized by: Nothing.

Special Notes: None.

The Script class has not been modified from the default.

HarshClimate

Inherits From: Script

Utilized by: rooms.RealOutside

Special Notes: Needs an automatic override for users with higher privileges.

The HarshClimate script is a modified version of an example Weather script from Evennia’s documentation. The modification causes the script to harm any character in the room. A means of overriding the damage was planned, but no implemented in a usable way.

⚠️ **GitHub.com Fallback** ⚠️