<!--
Cochar - create a random character for Call of Cthulhu RPG 7th ed.
Copyright (C) 2023  Adam Walkiewicz

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
-->

[![PyPI version](https://badge.fury.io/py/cochar.svg)](https://badge.fury.io/py/cochar)
[![License: GNU AGPL v3](https://img.shields.io/badge/License-GNU%20AGPL%20v3-red.svg)](https://github.com/ajwalkiewicz/cochar/blob/main/LICENSE)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Language: Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://shields.io/)
[![Author: Walu](https://img.shields.io/badge/Aurhor-Walu-gray.svg)](https://shields.io/)

# **C**all **O**f **C**thulhu C**har**acter Generator

Fast way of creating a random character for Call of Cthulhu RPG 7th ed.

## Summary

`cochar` stands for `Call of Cthulhu Character`. It's a python package design to create a full characters for Call of Cthulhu RPG 7th ed.

[www.cochar.pl](http://www.cochar.pl) demonstrates a power of `cochar` package.

## Table of Contents

- [Project Title](#call-of-cthulhu-character-generator)
- [Summary](#summary)
- [Table of Contents](#table-of-contents)
- [Installation](#installation)
- [Usage](#usage)
- [Dependencies](#dependencies)
- [Documentation](#documentation)
- [Contribution](#contribution)
- [Web version](#web-version)
- [Author](#author)
- [License](#license)

## Installation

```
pip3 install cochar
```

## Usage

### Basic

Example:

```Python
>>> from cochar import create_character
>>> person = create_character(1925, "US")
>>> person
>>> Character(year=1925, country='US', first_name='Anthem', last_name='Pharr', age=22, sex='M', occupation='doctor of medicine', strength=33, condition=30, size=78, dexterity=40, appearance=23, education=87, intelligence=65, power=50, move_rate=7, luck=38, skills={'first aid': 38, 'language [latin]': 9, 'medicine': 73, 'science [biology]': 48, 'ride': 64, 'anthropology': 6, 'charm': 46, 'intimidate': 32, 'art/craft (sculptor)': 9, 'credit rating': 74, 'dodge': 20}, damage_bonus='0', build=0, dodge=20, sanity_points=50, magic_points=10, hit_points=10)
```

### Default settings

Default settings are defined in `./data/settings.json`.

```json
{
  "min_age": 15,
  "max_age": 90,
  "max_skill_level": 90,
  "year": 1925,
  "age": null,
  "sex": null,
  "first_name": null,
  "last_name": null,
  "country": "US",
  "occupation": null,
  "weights": true,
  "database": "",
  "show_warnings": false,
  "occupation_type": null,
  "era": null,
  "tags": null
}
```

## Dependencies

`cochar` depends on [randname](https://github.com/ajwalkiewicz/randname) module for generating random names.

For more details please see:

- [randname github](https://github.com/ajwalkiewicz/randname)
- [randname pypi](https://pypi.org/project/rname/)

## Documentation

Detailed documentation of module can by found here:
[cochar documentation](https://ajwalkiewicz.github.io/cochar/_build/html/index.html#)

## Contribution

If you want to contribute to `cochar` project read [contribution](https://github.com/ajwalkiewicz/cochar/blob/main/CONTRIBUTION.md) for more information.

## Web Version

> Web application is not a part of `cochar` package.

Web application was design to present the power of `cochar` package. You can check it out on [www.cochar.pl](http://www.cochar.pl)

## Author

Adam Walkiewicz

## License

Cochar is licensed under the terms of the [GNU AGPL v3](https://github.com/ajwalkiewicz/cochar/blob/main/LICENSE)
