CardFRP - Component Overview
(and required functionality for each class)

CardFRP is an underlying (not player-facing) engine that simulates the attributes and interactions of characters and objects in locations. It is intended to implement mechanics similar to those of FRPGs where players take actions by playing (physical) cards from a hand of available actions.

This engine implements:

This functionality is implemented by a few (Python) classes:

GameObject

A GameObject ...

It implements methods to:

GameAction

A GameAction represents an interaction between players and/or objects. A played GameAction has:

It is intended that the interaction functionality in the base GameAction and GameActor classes be sufficient to implement most typical gamic interactions. These classes support two basic types of action:

Characters will have different skill levels for different actions. ACCURACY, POWER, DAMAGE, STACKS, EVASION, RESISTANCE and PROTECTION attributes can be sub-typed to reflect these differences:
Attribute Meaning
DAMAGE amount added to all attacks
DAMAGE.GRAPPLE amount added to grappling attacks
ACCURACY.ARROW accuracy bonus when using bow
EVASION ability to evade all attacks
EVASION.STAB ability to evade stabbing attacks
PROTECTION.POISON ability to resist effects of poison
POWER.SEARCH ability to find hidden things
POWER.MENTAL.FEAR ability to cause fear
RESISTANCE.SEARCH how well hidden something is
RESISTANCE.MENTAL resistance to all mental attacks
RESISTANCE.VERBAL.BRIBE specific resistance to bribery attempts

In addition to action verbs having sub-types, they can also be compounded ... so that a single action delivers multiple verbs. A poisoned dagger might, for instance, enable the action ATTACK.STAB+ATTACK.POISON. When this action is initiated:

GameActor

GameActor is a sub-class of GameObject. In addition to those inherited capabilities and attributes, a GameActior

GameContext

A GameContext is another sub-class of GameObject. The interesting characteristics it adds are:

Sample Specification, Design, and Test Plan submissions

Class Specification Design Test Plan
GameObject sample submission sample submission sample submission
GameActor sample submission sample submission sample submission
GameAction sample submission sample submission sample submission
GameContext sample submission sample submission sample submission
Dice sample submission sample submission sample submission

Note that all of the API documentation and class diagrams associated with the (above) class URLs were generated automatically (with Epydoc) from the python source code in the (above) sample design submissions. The availability of such tools is a strong incentive to learn the languages of Doxygen and/or Docstrings.