Visualizes and manages Dune the Board Game state
Project description
Truthsayer
This module allows to visualize the state of Dune the boardgame. The motivation for it is to build a bot allowing to play Dune online via Discord on the Truthsayer Discord channel.
Examples
You can generate a map of Arrakis as follows
from truthsayer.processor import Caretaker, OriginatorTruthsayer
meta = {
'factions': {},
'usernames': {},
'user_ids': {},
'texts': {
'promo_top': 'Truthsayer Discord',
'promo': 'Join us for more Dune games!',
'game_id': '#21762',
'game_turn': 6,
'game_phase': 'Battle',
'qr': 'https://discord.gg/VVYM22Hs2t',
'commands': []
}
}
originator = OriginatorTruthsayer(meta=meta)
caretaker = Caretaker(originator)
originator.render('images/originator/originator00.jpg')
originator.join(1, '@marek', '#467263')
caretaker.backup()
originator.join(5, '@renzokuken', '#387843')
caretaker.backup()
originator.join(3, '@zylwia', '#198264')
caretaker.backup()
originator.render('images/originator/originator01.jpg')
originator.join(2, '@andy', '#430293')
caretaker.backup()
originator.join(4, '@john', '#098532')
caretaker.backup()
originator.join(6, '@somedude', '#130539')
caretaker.backup()
originator.render('images/originator/originator02.jpg')
originator.randomize('factions')
caretaker.backup()
originator.render('images/originator/originator03.jpg')
originator.initgame()
caretaker.backup()
originator.render('images/originator/originator04.jpg')
originator.ship('emperor', 'plastic_basin', 'R13', 4)
caretaker.backup()
originator.render('images/originator/originator05.jpg')
originator.move('atreides', 'arrakeen', 'R10', 'hole_in_the_rock', 'R9', 3)
caretaker.backup()
originator.render('images/originator/originator06.jpg')
We can move the storm, undo moves, cause Spiceblow and change sprite assets
originator.storm('R9')
caretaker.backup()
originator.render('images/originator/originator07.jpg')
originator.spiceblow('sihaya_ridge', 5)
caretaker.backup()
originator.render('images/originator/originator08.jpg')
# try to undo the move
caretaker.undo()
originator.render('images/originator/originator09.jpg')
originator.config('spice_token', 'spiceglow', 500)
caretaker.backup()
originator.render('images/originator/originator10.jpg')
Now few examples how to draw cards and conduct the battle phase
# draw some cards
originator.draw('player_1', 'treachery')
caretaker.backup()
originator.draw('player_1', 'treachery')
caretaker.backup()
originator.draw('player_2', 'treachery')
caretaker.backup()
originator.draw('player_2', 'treachery')
caretaker.backup()
# initiate battle
hand_player_1 = originator.hand('player_1')
hand_player_2 = originator.hand('player_2')
print('player_1 hand')
print(hand_player_1)
print('player_2 hand')
print(hand_player_2)
originator.battle('player_1', 'player_2')
caretaker.backup()
originator.deployment('player_1', 3)
caretaker.backup()
originator.lead('player_1', 'thufir_hawat')
caretaker.backup()
originator.treachery('player_1', hand_player_1['cards'][0])
caretaker.backup()
originator.deployment('player_2', 4)
caretaker.backup()
originator.lead('player_2', 'alia')
caretaker.backup()
originator.treachery('player_2', hand_player_2['cards'][0])
caretaker.backup()
originator.render('images/originator/originator11.jpg', battle=True)
Improve the Truthsayer experience
- To allow our bot to suggest territory names in commands try to convince Discord to increase the limits on number of choices from 25 to at least 42.
Credits
Game assets from Sorvan's website.
For vectorizing regions on the map we used the summerstyle editor.
For creating transparency on the battle wheels used online png tools.
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
Built Distribution
File details
Details for the file truthsayer-0.10.10.tar.gz
.
File metadata
- Download URL: truthsayer-0.10.10.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b3edbc2fe73aa42d18cc870deb71853697f1460006b83cf7611ac58a4f64a76 |
|
MD5 | f058d2fd0ef0f47bc747413aa61d0100 |
|
BLAKE2b-256 | 8f23c9bfd7bfa84f5b01a33d3f2529b01730f4235fc8da5644fa86bab1d5e363 |
File details
Details for the file truthsayer-0.10.10-py3-none-any.whl
.
File metadata
- Download URL: truthsayer-0.10.10-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d79a5d989d1e435e363516301e6719850255d3832b5d73d00c8eef6771863249 |
|
MD5 | ce694422710c77ac2cd7f3a551243b28 |
|
BLAKE2b-256 | 459b27009024cb3557b191026c44ce7d8d521016ad538cd6703ad4b9de8374ed |