From db55f643c3b1fc8927baf63df8d0001f323a8ef3 Mon Sep 17 00:00:00 2001 From: electropositron Date: Thu, 11 Jan 2024 15:39:08 +0100 Subject: [PATCH] modularisation --- game/characters/collegues.rpy | 0 game/characters/conjoint.rpy | 10 ++++ game/characters/patron.rpy | 0 game/characters/protagoniste.rpy | 69 ++++++++++++++++++++++++ game/dialogues/collegues.rpy | 3 +- game/engine/interractions.rpy | 18 ++++++- game/script.rpy | 93 +------------------------------- game/story/morning_routine.rpy | 3 +- 8 files changed, 99 insertions(+), 97 deletions(-) create mode 100644 game/characters/collegues.rpy create mode 100644 game/characters/conjoint.rpy create mode 100644 game/characters/patron.rpy create mode 100644 game/characters/protagoniste.rpy diff --git a/game/characters/collegues.rpy b/game/characters/collegues.rpy new file mode 100644 index 0000000..e69de29 diff --git a/game/characters/conjoint.rpy b/game/characters/conjoint.rpy new file mode 100644 index 0000000..06aa8d4 --- /dev/null +++ b/game/characters/conjoint.rpy @@ -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" diff --git a/game/characters/patron.rpy b/game/characters/patron.rpy new file mode 100644 index 0000000..e69de29 diff --git a/game/characters/protagoniste.rpy b/game/characters/protagoniste.rpy new file mode 100644 index 0000000..7bb3f53 --- /dev/null +++ b/game/characters/protagoniste.rpy @@ -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) \ No newline at end of file diff --git a/game/dialogues/collegues.rpy b/game/dialogues/collegues.rpy index 714d4ad..0b0ab5b 100644 --- a/game/dialogues/collegues.rpy +++ b/game/dialogues/collegues.rpy @@ -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." \ No newline at end of file + "Excusez-moi, si ça ne vous dérange pas, j'aimerais voir une petite chose avec vous." + \ No newline at end of file diff --git a/game/engine/interractions.rpy b/game/engine/interractions.rpy index eb043ed..2d361ed 100644 --- a/game/engine/interractions.rpy +++ b/game/engine/interractions.rpy @@ -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 \ No newline at end of file + + 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 diff --git a/game/script.rpy b/game/script.rpy index 255da46..e2a672b 100644 --- a/game/script.rpy +++ b/game/script.rpy @@ -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 diff --git a/game/story/morning_routine.rpy b/game/story/morning_routine.rpy index 1642deb..6069e25 100644 --- a/game/story/morning_routine.rpy +++ b/game/story/morning_routine.rpy @@ -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." \ No newline at end of file