Skip to main content

A package for creating objects for a text-based RPG

Project description

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
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

CharObj-0.2.1.tar.gz (24.9 kB view details)

Uploaded Source

File details

Details for the file CharObj-0.2.1.tar.gz.

File metadata

  • Download URL: CharObj-0.2.1.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0b4+

File hashes

Hashes for CharObj-0.2.1.tar.gz
Algorithm Hash digest
SHA256 7fc91e7926bfee411f6ed9dd7d6128745bafbbe889d1e617ae52ad56f1460798
MD5 38266b5fd1970646eb04f203c3fdab8c
BLAKE2b-256 5dde44ac4e470057359926c91ec2aeb86f4425be16b656c4399a59ccd167fad7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page