Skip to content

Commit

Permalink
WIP psirun/Implacables
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucas-C committed Nov 13, 2024
1 parent f6e1c14 commit 6b6be16
Show file tree
Hide file tree
Showing 31 changed files with 252 additions and 24 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 1 addition & 2 deletions ParadisPerdu/ModulesDeSecours.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# Paradis Perdu
# Modules de secours
# Paradis Perdu <br>Modules de secours

<br><br><br>
<br><br><br>
Expand Down
2 changes: 1 addition & 1 deletion ParadisPerdu/adj2pdf.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def build_pdf():
set_metadata(OUT_FILEPATH,
title="Paradis Perdu - Modules de secours",
lang="fr",
keywords=("jdr", "ttrpg", "aide de jeu", "sci-fi"),
keywords=("jdr", "ttrpg", "aide-de-jeu", "sci-fi"),
description="Une aide de jeu composée d'un ensemble de modules optionnels, pour ajouter des rebondissements supplémentaires au scénario original de Yno.",
)
print(f"{OUT_FILEPATH} has been rebuilt in {perf_counter() - start:.1f}s")
Expand Down
2 changes: 2 additions & 0 deletions RunDieRepeat/DocteurLestrange.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ Publié / com' sur :
- [x] http://www.scenariotheque.org
Playtest 2021/02/12 avec Jérôme, Jordane & Laetitia de l'Auberge des Rêveurs
Alt illustration CC-BY: https://www.deviantart.com/rodrigokatrakas/art/Dr-Strange-Colors-891161005
-->
# Docteur Lestrange
![](pngarts.com-Doctor-Strange-PNG-Image-Background.png)
Expand Down
5 changes: 4 additions & 1 deletion pdf_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
# logging.getLogger("weasyprint").setLevel(logging.DEBUG)
# Avoid some useless verbose logs:
logging.getLogger("fontTools.subset").level = logging.WARN
logging.getLogger("fontTools.ttLib.tables._h_e_a_d").level = logging.ERROR
logging.getLogger("fontTools.ttLib.tables.O_S_2f_2").level = logging.ERROR


Expand Down Expand Up @@ -110,7 +111,8 @@ def add_id_attrs_on_headings(soup):
for tag_name in ("h1", "h2", "h3", "h4"):
for heading in soup.find_all(tag_name):
if not heading.get("id"):
heading["id"] = slugify(heading.string)
if heading.string:
heading["id"] = slugify(heading.string)

def slugify(s):
# Reproduce slugify() in md2html.js
Expand Down Expand Up @@ -208,6 +210,7 @@ def set_metadata(filepath, title=None, description=None, keywords=(), lang=None)
* keywords are currently badly formatted by WeasyPrint when inserted as metadata (there are extra quotes)
* pikepdf also sets metadata as XMP
"""
return
if not (title or description or keywords or lang):
return
with pikepdf.open(filepath, allow_overwriting_input=True) as pdf:
Expand Down
137 changes: 137 additions & 0 deletions psirun/Implacables/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
# <span class="psirun">Psi<span class="asterisk">*</span>Run</span><br> Implacables
<center>

Une situation de départ pour Psi*Run inspirée de _The Boys_.
<br>
_(mais ne mentionnez pas cette référence à vos joueurs !)_
</center>

## ce que Les fugitifs ne savent pas
<img class="logo float-right" src="VaultTech.jpg">

Tous les Fugitifs étaient auparavant **des super-héros ultra puissants**, **extrêmement médiatiques**,
mais aussi secrètement d'**horribles ordures**, ayant commis les pires atrocités amorales.
Ils étaient connus comme **Les Implacables** et étaient soutenus par la méga-corporation **Vault Tech**.

Un petit groupe de psioniques s'est rassemblé en une organisation secrète nommée **Mankind Justice** pour mettre fin à leurs cruels agissements.

Aujourd'hui, ils ont ont tendu **un piège aux Implacabales**
dans un bateau cargo abandonné au port de la ville,
où ils avaient rassemblé **de quoi affaiblir leurs pouvoirs**.Leur chef, **Mad Jack**, les a affronté mais, sentant la situation lui échapper,
s'est sacrifié en poussant au maximum son pouvoir psi,
rendant amnésiques les Implacabale et provoquant une explosion.

Amnésiques, les Fugitifs ne savent pas que les médias et Vault Tech sont de leurs côté.
Et comme leurs identités étaient secrètes, sans leurs costumes ils ne sont pas reconnus de leurs partisans.

## création des fugitifs
Tandis que les joueuses inventent leurs personnages,
essayez de répondre à ces questions,
en répartissant les réponses entre les Fugitifs :

* qui était **MegaScout**, héro de la ville, à la morale intégriste ?
* qui était **CyberDog**, le mystérieux justicier, tendance fasciste ?
* qui est à la tête de **Vault Tech** ?
* qui apparaît sur des **photos compromettantes** ? Que faisait-il ?
* qui a conservé une trace de son **apparence super-héroïque** ?

Vous répondrez ensemble durant la partie aux questions sans réponses.

## Situation initiaLe
New Seattle, 2048. Les Fugitifs reprennent conscience à l'intérieur d'un gigantesque cargo qui prend l'eau rapidement. Une explosion semble avoir percé la coque, et brûlé leurs vêtements. Certains Fugitifs sont entravés par de lourdes chaînes, des conteneurs de marchandise menacent de les écraser alors que le navire bascule, et un cadavre flotte à proximité, avec comme seul signe distinctif « <span class="red">MJ</span> » tracé en rouge sur son t-shirt blanc...

L'un des Fugitifs découvre dans sa poche les clefs d'un coffre de banque.

## La Piste - Lieux potentieLs
::: columns
* sur le pont du cargo qui coule, attaqués par des nuées d'animaux
* le quai du port, avec BikerMan et Zooniper au sommet du phare
* une station de métro bondée; un journaliste les interpelle (Madison)
* la **Vault Bank**, ses employés obséquieux, et sa sécurité high-tech : serrure, scanner rétinien, scanner digital, et mot de passe...
* dans le coffre privé, une malette contient d'horribles photos tachées de sang, et le plan d'un ascenseur secret reliant...
* la **base secrète de CyberDog**, dans les égoûts, incluant dojo, armurerie, gigantesque écran panoptique de télésurveillance, cellules où des détenus agonisent...
* et le **penthouse de MegaScout**, avec salle de prière, playmates dans la piscine, chambre S&M...
* dans cet ascenseur ultra-secret
* dans un taxi où le chauffeur aura l'impression de les avoir déjà vu
* dans l'appartement d'un des Fugitifs, où ils pourront découvrir... ⚀: une collection dérangeante ⚁: des lettres de fans & de menaces ⚂: un super-gadget ⚃: un plan de la ville avec l'ancien tribunal entouré en rouge ⚄: la photo de Mad Jack au centre d'un jeu de fléchettes ⚅: le costume d'un Implacable.
* dans le QG de Mankind Justice, l'ancien tribunal désafecté
:::

<!-- Tmp: remove this line --><br><br><br><br><br><br><br><br><br><br>

## Poursuivants - Mankind Justice
Ces psioniques hors-la-loi se relaient pour traquer les Fugitifs.
Face à eux, ils clameront leur soif de vengance pour Mad Jack / Mankind Justice,
et refuseront tout dialogue.

<p class="half-break"></p>

<img class="float-left size14" alt="" src="a_huntress_by_fernand0fc_cc-by-RedBlackWhite.jpg">

### &nbsp;&nbsp; Zooniper
Cette ancienne super-héroïne s'est vue torturée et défigurée par l'un des Implacables.
Sniper d'élite, elle a aussi la capacité de commander aux animaux.
Elle enverra sur les Fugitifs des hordes de mouettes, de requins, de rongeurs...
Vaincue, on trouvera sur elle un article _NS News_ de Jonah Madison où la mention du tribunal abandonné est surlignée...

<img class="float-right size16" alt="" src="moto_raider_by_fernand0fc_cc-by_RedBlackWhite.png">

<p class="half-break"></p>

### BikerMan
Capable de se regénérer à l'infini, BikerMan a servi de punching-ball
à l'un des Implacables durant des années.
Il a survécu, mais ses cordes vocales ne fonctionnent plus,
et il compte bien se venger.

<p class="half-break"></p>

<img class="float-left size16" alt="" src="shinobi_by_fernand0fc_cc-by-nc_RedBlackWhite.jpg">

### Shinobi
Ancien _sidekick_ d'un Implacable, il peut se dupliquer des dizaines de fois.
Il a été traumatisé de découvrir que son partenaire faisait parfois
subir des sévices à ses doubles éphémères.
Son identité civile est celle du reporter **Jonah Madison**.
Face aux Fugitifs, il se dédoublera en une véritable armée,
et les bombardera de shurikens.

<br>

<img class="float-right size16" alt="Thorgal" src="older_kenshi_by_alexzebol_cc-by-nc_RedBlackWhite.jpg">

### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThorgaL
Compagnon de Mad Jack dans la vie, Thorgal est une version ninja cybernétique de _Daredevil_
qui voue désormais une haine personnelle aux Fugitifs :
tant qu'il respire, il les traquera pour les éliminer.

## À La radio
<img class="size6 float-right" alt="" src="onde-radio.svg">

Durant leur fuite, les Fugitifs entendront un peu partout à la radio
un chroniqueur de _NS News_ commenter l'actualité :
1. □ Étrange catastrophe au port, où un cargo a explosé puis coulé. Mais où sont les Implacables ?
1. □ Le cadavre de Mad Jack, _leader_ du groupe terroriste Mankind Justice, aurait été repêché aux abords du port...
1. □ Des membres de Mankind Justice auraient été aperçus...
1. □ Les forces de l'ordre se déploient en ce moment à la Vault Bank. Notre reporter sur place, Jonah Madison, va tenter d'en savoir plus.
1. □ On aurait vu Shinobi, l'ancien partenaire de l'Implacable ________ ...
1. □ Thorgal, compagnon du défunt Mad Jack, aurait déclaré que ce dernier aurait emporté les Implacables avec lui dans la tombe. Et que s'il restait des rescapés, il leur réglerait leur compte lui-même.
1. □ Lors d'une conférence de presse exceptionnelle, Vault Tech s'est voulu rassurant concernant la disparition des Implacables. _« Il est déjà arrivé à nos vaillants héros d'intervenir dans l'espace, ou même dans dans d'autres dimensions, empêchant toute communication avec eux »_ a déclaré le porte-parole de l'entreprise. _« Notre PDG vous donnera bientôt des nouvelles d'eaux »_ a-t-il conclu. D'ailleurs où est-il celui-là ?
1._Flash info_. Une source à la Maison Blanche nous informe que c'est la panique : en l'absence des Implacables pour protéger le pays, le risque d'une agression extérieure sur notre sol serait décuplé.

<img class="size16" alt="" src="homelander_by_newya3502_cc-by_RedBlackWhite.png">

<footer>

Scénario conçu par [Lucas Cimon](https://chezsoi.org/lucas/blog/) - [CC BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/3.0/fr/). [Fichiers sources](https://github.com/Lucas-C/jdr/tree/master/psirun/Implacables).

Pour me soutenir, achetez mes créations sur [lucas-c.itch.io](https://lucas-c.itch.io).

Si vous testez ce scénario, faites-moi un retour sur [mon blog](https://chezsoi.org/lucas/blog/modules-de-secours.html).

Psi*Run est un jeu de Meguey Baker, édité en français par [ElectricGoat](https://electric-goat.net/products/1).

Illustrations : [AlexZebol](https://www.deviantart.com/alexzebol/art/Sketch-Older-Kenshi-782535896) - [CC BY-NC](https://creativecommons.org/licenses/by-nc/3.0/), [Fernand0FC](https://www.deviantart.com/fernand0fc/gallery) & [NewYa3502](https://www.deviantart.com/newya3502/art/Homelander-Render-2-957428403) - [CC BY](https://creativecommons.org/licenses/by/3.0/)

Polices : [KillTheNoise](https://www.fontspace.com/kill-the-noise-font-f17592), [RoadRage](https://youssef-habchi.com/fonts/road-rage) & [OutrunFuture](https://comicfontsby.tehandeh.com/fonts/outrun-future/)
</footer>
Expand Down
Binary file added psirun/Implacables/VaultTech.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions psirun/Implacables/md2pdf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env python3
import asyncio, sys
from pathlib import Path
from time import perf_counter

DIR = Path(__file__).parent
sys.path.append(str(DIR / ".." / "..")) # make pdf_utils.py importable
from pdf_utils import markdown2pdf, set_metadata, start_watch_and_rebuild

MD_FILEPATH = DIR / "README.md"
CSS_FILEPATH = DIR / "style.css"
OUT_FILEPATH = DIR / "PsiRun-Implacables.pdf"


def build_pdf():
start = perf_counter()
with OUT_FILEPATH.open("wb") as out_pdf_file:
out_pdf_file.write(markdown2pdf(DIR, MD_FILEPATH, CSS_FILEPATH, lang="fr").getbuffer())
set_metadata(OUT_FILEPATH,
title="Psi*Run - Implacables",
lang="fr",
keywords=("jeu-de-rôle", "jdr", "psi*run", "The-Boys"),
description="Setting pour Psi*Run inspiré de The Boys",
)
print(f"{OUT_FILEPATH} has been rebuilt in {perf_counter() - start:.1f}s")


# This conditional ensure that the code below
# does not get executed when calling xreload on this module:
if not __annotations__.get("XRELOADED"):
build_pdf()
# The --watch mode is very handy when using a PDF reader
# that performs hot-reloading, like Sumatra PDF Reader:
if "--watch" in sys.argv:
SRC_FILES = (__file__, MD_FILEPATH, CSS_FILEPATH)
asyncio.run(start_watch_and_rebuild(sys.modules[__name__], *SRC_FILES))
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions psirun/Implacables/onde-radio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions psirun/Implacables/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@font-face { font-family: KillTheNoise; src: url("../fonts/KillTheNoise.otf"); }
@font-face { font-family: RoadRage; src: url("../fonts/RoadRage.otf"); }
@font-face { font-family: OutrunFuture; src: url("../fonts/OutrunFuture.otf"); }
@font-face { font-family: OutrunFuture; src: url("../fonts/OutrunFuture-Bold.otf"); font-weight: bold; }

h1 {
text-align: center;
font-family: RoadRage;
font-size: 4rem;
font-weight: normal;
line-height: 4rem;
margin-top: 0;
}
h1 .psirun { font-family: KillTheNoise; font-size: 5rem; }
h1 .asterisk { font-family: Helvetica; font-size: 2.5rem; vertical-align: super; }
body { font-family: "DejaVu Serif"; }
h2, h3 {
font-family: OutrunFuture;
margin-bottom: .8rem;
}
h2 { font-size: 1.4rem; margin-top: 2rem; }
li { margin-bottom: .5rem; }
a { color: darkblue; }
footer { text-align: center; line-height: .5rem; }
img { max-width: 25rem; display: block; margin: 0 auto; }
img.size6 { max-height: 6rem; max-width: 6rem; }
img.size14 { max-height: 14rem; max-width: 14rem; }
img.size16 { max-height: 16rem; max-width: 16rem; }
img.logo { max-width: 6rem; }
.float-left { float: left; margin-right: .5rem; }
.float-right { float: right; margin-left: .5rem; }
.columns { columns: 2; }
.columns ul { margin: 0; padding-left: .666rem; }
.half-break { height: 1px; }
.red { color: red; font-weight: bold; }
7 changes: 7 additions & 0 deletions psirun/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
## Règles additionnelles
_cf_. [./CustomRules/](./CustomRules/CustomRules)

$opt/pdfrw/examples/subset_booklets.py PsiRun-ReglesAdditionnelles.pdf && mv booklet.PsiRun-ReglesAdditionnelles.pdf PsiRun-ReglesAdditionnelles-onePage.pdf

<!--
With an inversion of pop(0)/pop() on line 58
When available, using pdly x2pdf --layout 2x1 would be nice: https://github.com/py-pdf/pdfly/issues/64
-->

## Compte-rendus de partie
- https://chezsoi.org/lucas/jdr/psirun/CR_2016-12-18.html
- https://chezsoi.org/lucas/jdr/psirun/CR_2017-12-27.html
Expand Down
Loading

0 comments on commit 6b6be16

Please sign in to comment.