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)
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
truthsayer-0.0.2.tar.gz
(18.3 kB
view hashes)
Built Distribution
truthsayer-0.0.2-py3-none-any.whl
(18.5 kB
view hashes)
Close
Hashes for truthsayer-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bdd21f079970aab946cb91bed65e08e3725dd3d5dd04600f85703bf8a15bfdc |
|
MD5 | 7574061330f194cd584a8c86df6fc261 |
|
BLAKE2b-256 | d278462491f782261a7c3da0be853e11a987846fbe2935151f97713071df2c81 |