modularisation

This commit is contained in:
electropositron 2024-01-11 15:39:08 +01:00
parent 566a18feed
commit db55f643c3
8 changed files with 99 additions and 97 deletions

View file

View file

@ -0,0 +1,10 @@
# adapter genre en fonction de couple hétéro ou gay
def etat_civil():
if m.conjoint == 1:
if m.attirance == 1:
conjoint.genre = m.genre
if m.attirance ==0 and m.genre == "femme":
conjoint.genre = "homme"
if m.attirance ==0 and m.genre == "homme":
conjoint.genre = "femme"

View file

View file

@ -0,0 +1,69 @@
# Définition des éléments communs aux personnages
init 0 python:
class Personnage:
# Variables des classes des personnages
def __init__(self):
self.c = None
self.genre = None
self.age = None
self.conjoint = None
self.attirance = None
self.enfants = None
self.social = None
self.salaire = None
self.entreprise = None
self.experience = None
self.anciennete = None
self.etudes = None
self.chomage = None
# Méthode qui définit la fiche personnage complète
def etat_civil(self):
# genre
self.genre = renpy.random.choice(["homme", "femme"])
# nom en fonction du genre
if self.genre == "femme":
idiome = renpy.random.choice(["Juliette", "Sylvie", "Rachel", "Lydie", "Anaëlle"])
self.c = Character(idiome, color="#af0f0fff")
else: # si c'est un homme
#TODO Externaliser les listes de noms
idiome = renpy.random.choice(["Gérard", "Pierre", "Olivier", "Jules", "Maxime"])
self.c = Character(idiome, color="#af0f0fff")
# âge (de 18 à 64 ans)
self.age = renpy.random.randint(18,64)
# conjoint (non = 0, oui = 1)
self.conjoint = renpy.random.randint(0,1)
# attirance (hétéro = 0, gay = 1)
self.attirance = renpy.random.randint(0,1)
# enfants (0 à 3)
#TODO Nuancer nb enfant par rapport situation familiale en s'appuyant sur des statistiques
self.enfants = renpy.random.randint(0,3)
# situation sociale
self.social = renpy.random.choice(["ouvrier", "employé", "cadre"])
# nombre d'années d'études
# TODO pondérer par des statistiques
self.etudes = renpy.random.randint (0,8)
# nombre d'annés d'expérience sur toute la carrière
self.experience = renpy.random.randint(0, self.age - (18 + self.etudes))
# entreprise employeuse
self.entreprise = renpy.random.choice(["Greenenergie", "Hula-hoop conso", "Fractale"])
# nombre d'années d'ancienneté dans l'entreprise
self.anciennete = renpy.random.randint(0, self.experience)
# nombre d'années de chômage
self.chomage = self.age - 18 - self.etudes - self.experience
# salaire brut actuel
# TODO s'appuyer sur des statistiques
# salaire de base
if self.social == "ouvrier":
self.salaire = renpy.random.randint(1400, 1700)
if self.social == "employé":
self.salaire = renpy.random.randint(1700, 2000)
if self.social == "cadre":
self.salaire = renpy.random.randint(2000, 4000)
# majoration suivant l'experience (5% par année d'exp)
# TODO s'appuyer sur des statistiques
self.salaire = self.salaire + (self.salaire * self.experience * 0.05)
# minoration de 20% si genre = femme
if self.genre == "femme":
self.salaire = self.salaire - (self.salaire * 0.2)

View file

@ -3,4 +3,5 @@ label comptable
label .bonjour
"Bonjour, vous allez bien aujourd'hui ?"
label .demander_discussion
"Excusez-moi, si ça ne vous dérange pas, j'aimerais voir une petite chose avec vous."
"Excusez-moi, si ça ne vous dérange pas, j'aimerais voir une petite chose avec vous."

View file

@ -1,3 +1,17 @@
# Fonction globale utilisée lorsqu'un personnage a besoin de parler à un autre personnage
# Format nom_personage.mot_cle.mood
init 20 python:
# Fonction globale utilisée lorsqu'un personnage a besoin de parler à un autre personnage
def dialogue(interlocuteur):
# input du joueur - renvoie banalite par défut - autorise seulement les lettres
ligne = renpy.input("De quoi voulez-vous parler avec [interlocuteur] ?", default = "Dire des banalités", allow = "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN", screen = "Dialogue")
# on enlève les espace au début et à la fin de l'input
ligne = ligne.strip()
# on met les mots en minuscule
ligne = ligne.lower()
# on crée une liste contenant tous les mots séparés
mots = ligne.split()
# on vérifie si un des mots-clés tapés correspond à un des sujets de conversation disponibles

View file

@ -1,87 +1,4 @@
# Vous pouvez placer le script de votre jeu dans ce fichier.
# Définition des éléments communs aux personnages
init 0 python:
class Personnage:
# Variables des classes des personnages
def __init__(self):
self.c = None
self.genre = None
self.age = None
self.conjoint = None
self.attirance = None
self.enfants = None
self.social = None
self.salaire = None
self.entreprise = None
self.experience = None
self.anciennete = None
self.etudes = None
self.chomage = None
# Méthode qui définit la fiche personnage complète
def etat_civil(self):
# genre
self.genre = renpy.random.choice(["homme", "femme"])
# nom en fonction du genre
if self.genre == "femme":
idiome = renpy.random.choice(["Juliette", "Sylvie", "Rachel", "Lydie", "Anaëlle"])
self.c = Character(idiome, color="#af0f0fff")
else: # si c'est un homme
#TODO Externaliser les listes de noms
idiome = renpy.random.choice(["Gérard", "Pierre", "Olivier", "Jules", "Maxime"])
self.c = Character(idiome, color="#af0f0fff")
# âge (de 18 à 64 ans)
self.age = renpy.random.randint(18,64)
# conjoint (non = 0, oui = 1)
self.conjoint = renpy.random.randint(0,1)
# attirance (hétéro = 0, gay = 1)
self.attirance = renpy.random.randint(0,1)
# enfants (0 à 3)
#TODO Nuancer nb enfant par rapport situation familiale en s'appuyant sur des statistiques
self.enfants = renpy.random.randint(0,3)
# situation sociale
self.social = renpy.random.choice(["ouvrier", "employé", "cadre"])
# nombre d'années d'études
# TODO pondérer par des statistiques
self.etudes = renpy.random.randint (0,8)
# nombre d'annés d'expérience sur toute la carrière
self.experience = renpy.random.randint(0, self.age - (18 + self.etudes))
# entreprise employeuse
self.entreprise = renpy.random.choice(["Greenenergie", "Hula-hoop conso", "Fractale"])
# nombre d'années d'ancienneté dans l'entreprise
self.anciennete = renpy.random.randint(0, self.experience)
# nombre d'années de chômage
self.chomage = self.age - 18 - self.etudes - self.experience
# salaire brut actuel
# TODO s'appuyer sur des statistiques
# salaire de base
if self.social == "ouvrier":
self.salaire = renpy.random.randint(1400, 1700)
if self.social == "employé":
self.salaire = renpy.random.randint(1700, 2000)
if self.social == "cadre":
self.salaire = renpy.random.randint(2000, 4000)
# majoration suivant l'experience (5% par année d'exp)
# TODO s'appuyer sur des statistiques
self.salaire = self.salaire + (self.salaire * self.experience * 0.05)
# minoration de 20% si genre = femme
if self.genre == "femme":
self.salaire = self.salaire - (self.salaire * 0.2)
# Classe spécifique au conjoint du protagoniste, sous-classe de Personnage
class Conjoint(Personnage):
# surcharge de la méthode etat_civil() pour ajouter les éléments
# qui dépendent des traits du protagoniste
def etat_civil()
# Vous pouvez placer le script de votre jeu dans ce fichier.
# Déclarez sous cette ligne les images, avec l'instruction 'image'
# ex: image eileen heureuse = "eileen_heureuse.png"
@ -102,14 +19,6 @@ label fiches_personnages:
# correction des éléments de l'état civil qui dépendent des traits
# du protagoniste
# adapter genre en fonction de couple hétéro ou gay
if m.conjoint == 1:
if m.attirance == 1:
conjoint.genre = m.genre
if m.attirance ==0 and m.genre == "femme":
conjoint.genre = "homme"
if m.attirance ==0 and m.genre == "homme":
conjoint.genre = "femme"
# retirer un nom en fonction du genre

View file

@ -8,5 +8,4 @@ label morning_routine:
m.c "Je travaille comme [m.social] chez [m.entreprise] depuis [m.anciennete] ans. "
m.c "Après [m.etudes] années d'études, j'ai travaillé pendant [m.experience] ans dans ce métier."
m.c "Je gagne aujourd'hui [m.salaire] euros bruts par mois."
m.c "Et aujourd'hui, je vais tâcher d'obtenir une augmentation."
m.c "Et aujourd'hui, je vais tâcher d'obtenir une augmentation."