Skip to main content

A small example package

Project description

satori

satori is a tool that generates a Gensokyo-style spellcard fight purely randomly.

Usage

Clone this repository, and run main.py.

# Install dependencies
pip3 install tomlkit
# Clone and run
git clone https://github.com/Ravenclaw-OIer/satori
python3 satori/satori.py reimu marisa # change reimu and marisa to whoever you want

Rules

satori reads spellcard data from your mind characters.toml file.

Rounds

A spellcard fight is consisted of several rounds, it will continue until one of the players has her hp strictly lower than 0.

In each round, the following events happen in chronological order:

  1. A random number is generated between 0 and the atk value of both players. This value is the atk value used for comparison in this round.
  2. The one with the higher atk value for this round will be the attacker. A spellcard is randomly picked from her spellcards.
  3. A number is randomly picked between the two values specified in the spellcard's harm field. This is the harm (hp drop) caused by this spellcard. This value may be 0.
  4. The harm is applied.
  5. If the spellcard comes with shields, hp boosts or atk boosts, it is applied.
  6. The round ends, if both player have their hp >= 0, return to step 1.

Spellcards

Each spellcard has the following fields:

  • name: a string, the name used to refer to the spellcard within the program
  • display_name: a string, the displayed name of the spellcard.

Contributing

You can contribute by

  • Writing more spellcards
  • Implementing complex spellcard behaviors
  • Simply playing around and report bugs

Note

TOML sanity is not checked, so be extra careful with the format.

Sanity check will be implemented in a future release (at least I hope so)

Features I will implement some day (a.k.a to-do list)

  • Complex spellcard trigger conditions
  • Complex spellcard effects
  • Chinese docs

License

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

Touhou Project is Copyright(C) Team Shanghai Alice, usage of their IP should follow their guidelines

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

satori-gensokyo-0.1.0.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

satori_gensokyo-0.1.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file satori-gensokyo-0.1.0.tar.gz.

File metadata

  • Download URL: satori-gensokyo-0.1.0.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.10

File hashes

Hashes for satori-gensokyo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e2ebd7e13cbbe2aaac916e113ec5b2d72145455fe1f041dab750d6bb1b8331ba
MD5 0862f2b31e3fd5a12f0efedbaf86d0ff
BLAKE2b-256 6e0eb3a882373dd560802e691cc1cf21da5ed94eabbd027367a8f4425d2fa051

See more details on using hashes here.

File details

Details for the file satori_gensokyo-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: satori_gensokyo-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.10

File hashes

Hashes for satori_gensokyo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 67522987ac0e095a0e30676855face06c8c264f5353463dd592befa321bd5a0d
MD5 7ec6efd989e358bce131037614acef01
BLAKE2b-256 5c1a1c5aced5f0bc0d22cd4996561769f637504c7dd13876e0aeab25ee382cae

See more details on using hashes here.

Supported by

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