Skip to content

primal-coder/CharObj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CharObj

Description

CharObj is a package to allow for the creation/management of items for use in a text-based RPG game. It is designed to be used with the CharActor package, but can be used independently.

Installation

To install CharObj, use the following command:

pip install CharObj

Usage

CharObj can be used as a Python module or as a command-line tool.

Module

To use CharObj as a module, import it into your Python script:

import CharObj

Command-Line

To use CharObj as a command-line tool, use the following command:

python -m CharObj -h
# usage: CharObj [-h] {Get,Make} ...

# options:
#   -h, --help  show this help message and exit

# Commands:
#   {Get,Make}
#     Get       Gather information about an item by name or id
#     Make      Create an item

Examples

Module

Each already existing item is stored in its respective json file in the 'dict' directory. Upon importing the module items are accessible through the 'CharObj.Goods' or 'CharObj.Armory' classes. A new instance of the item can be created by simply calling its name as a function.

>>> import CharObj
# Create a new instance of an item
>>> gold_coin_1 = CharObj.Goods.goldcoin()
>>> gold_coin_2 = CharObj.Goods.goldcoin()
# Print the name of the item
>>> print(gold_coin_1.name)
Gold Coin
>>> print(gold_coin_2.name)
Gold Coin
# Check if the two items are the same
>>> print(gold_coin_1 == gold_coin_2)
False

Command-Line

Get

$ python -m CharObj Get 1
Gold Coin
{'binding': 'UNBOUND',
 'category': 'MISC',
 'description': 'A gold coin',
 'item_id': 1,
 'material': 'GOLD',
 'mundane': True,
 'name': 'Gold Coin',
 'quality': 'COMMON',
 'quest_item': False,
 'relic': False,
 'stackable': True,
 'value': [1, 'gp'],
 'weight': [0.01, 'kg']}

Make

The Make command can be used to create a new item. CharObj Make can be followed by the item's category. Each category can be executed with the -h flag to see the required arguments. The following example creates a new item in the 'Weapon' category.

$ python -m CharObj Make Weapon --item_name 'Dragonbone Blade' --slot MAIN_HAND --weight '3.5 kg' --material DRAGONBONE --mundane True --description 'A sharpened blade crafted from the bones of a defeated dragon.' --quality RARE --value '100 gp' --binding False --quest_item False --relic False --damage '1 d12' --damage_type SLASHING --range '5 FEET' --properties 'FINESSE LIGHT VERSATILE' --proficiency MARTIAL

Once made an item can be accessed in the same way as a pre-existing item, using the CLI ...

```bash
$ python -m CharObj Get 'Dragonbone_Blade'
```

Or the module ...

```python
>>> import CharObj
>>> dragonbone_blade = CharObj.Armory.dragonboneblade()
>>> print(dragonbone_blade.name)
```

Make can also be used interactively. The following example creates a new item in the 'Trade' category.

```bash
>>> python -m CharObj Make -i
Create an item?
Press enter to continue. Press Ctrl+C to cancel.
What category of item would you like to create?
Options: (a)rmor, (w)eapon, (g)eneral, (t)rade, (T)oolt
Creating Trade item.
item_name:  Brightsteel Ore
category:  ORE
weight:  0.5 kg
material:  BRIGHTSTEEL
mundane:  True
description:  A chunk of brightsteel ore.
quality:  COMMON
value:  5 gp
binding:  False
quest_item:  False
relic:  False
```