Class hierarchy for physical objects ----------------------------------- (PhysicalObject) ---- (Creature) ---- (CivilizedHumanoid) ---- Human \ \ \--- Dwarf \ \ \--- Elf --- WoodElf \ \ \-- HighElf \ \ \ \----- (UncivilizedHumandoid) ---- Orc \ \ \--- Golbin \ \ \ \----- (Dragon) ---- GreenDragon \ \ \--- RedDragon \ \ \ \----- (Jelly) ----- OchrJelly \ \ \---- GelatinousCube \ \ \---- BlackCherry \ (and so on) \ \------ (Item) ----- Scroll \---- Pack --- ... \---- Gold \---- (Weapon) ---- Sword ---- LongSword \---- (Wand) --- ... \---- (Potion) --- ... \---- (Armor) --- ... \---- (Amulet) --- ... \---- (Ring) --- ... \---- (Food) --- ... \---- (Tool) --- ... Classes in parenthesis are abstract. There are two basic categories for physical objects in the game. The first is all things living (Creatures), while the second is all things non-living (Items). This class hierarchy is NOT complete. It is intended that all concievable objects in the Hero's Tale universe will have some specialized class associated with it. PhysicalObjects are things that can exist in a dungeon, enter (or be placed in) a dungeon, and exit (or be removed) from a dungeon. The main reason for placing Creatures & Items in the same hierarchy is to make it possible to carry Creatures just as easily as items taking into account encumberance. This makes it possible for a party of adventurers to carry a wounded cohort out of a dungeon. Subclasses of Creature are generally abstract classifications of a type of creature, although this need not be true. For example, there may be a creature that is not groupable with any other creature, such as a Xorn. In the case of the Xorn, it would probably be a direct descendent of Creature. Scrolls are not abstract because they will probably just contain a spell. It doesn't make much sense to dinstinguish a scroll with one spell on it from another scroll with a different spell. A Pack is a container or bag. Generally all adventurers carry a Pack (or backpack) to hold their things. Other types of packs will probably exist in the game as well. This could include belt pouch, large sack, small sack, crate, chest, etc. All the other types of Items should be self explanatory. Class hierarchy for character classes/skills ------------------------------------------- (Skill) ---- (MajorSkill) ---- Fighter ---- Paladin \ \ \--- Ranger \ \ \ \--- Wizard ----- Illusionist \ \ \---- Alchemist \ \ \---- Necromancer \ \ \ \--- Priest ----- Druid \ \ \ \--- Rogue ----- Thief \ \---- Assassin \ \---- Bard \ \--- (WeaponSkill) ---- LongSwordUse \ \--- BowUse \ \--- DaggerUse \ \--- (MinorSkill) ---- Swimming \--- Appraisal \--- Gaming \--- Shopkeeping \--- ReadingWriting \--- MapMaking Skills represent special abilities that a Creature (race) or Character (individual) might possess. For example, most PlayerCharacters will possess one of the major adventuring skills; Fighting, Wizardry, Priesthood, or being a Rogue. In addition, an individual or race might possess secondary skills such as swimming, flying, or map making. And lastly a race or character might be more proficient with using certain kinds of weapons. Class hierarchy for characters ----------------------------- (Character) ---- PlayerCharacter \--- NonPlayerCharacter A Character is an intelligent entity which lives in a world. Characters have a race of type Creature. From the race, a Character knows what kinds of race-related actions it can take in the form of race specific skills. In addition to racial skills, a character might possess special skills such as fighting, wizardry, swimming, or shopkeeping. Characters can carry things and move around the world of their own accord. A Character can communicate with other characters. A PlayerCharacter is a Character which is controlled by a human intelligence, while a NonPlayerCharacter is controlled by an artificial intelligence. NonPlayerCharacters might sometimes be considered monsters by other Characters. It's possible that it will be more convenient to distinguish NPC's from monsters by creating a Monster subclass from either Character or NonPlayerCharacter. The ramificatinos that this model would have on AI is that one set of generic AI would need to be created for all NPC's. This AI would need to query the Creature and Character classes to determine what abilities and tendencies a race or individual has, what a character is wielding, carrying, etc.