153 lines
5.1 KiB
Plaintext
153 lines
5.1 KiB
Plaintext
|
|
|
|
# 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()
|
|
|
|
|
|
|
|
|
|
|
|
# Déclarez sous cette ligne les images, avec l'instruction 'image'
|
|
# ex: image eileen heureuse = "eileen_heureuse.png"
|
|
|
|
# Ici sont créés les fiches personnages avec les méthodes de la classe Personnages
|
|
label fiches_personnages:
|
|
|
|
# Liste des personnages
|
|
|
|
# Protagoniste
|
|
$ m = Personnage()
|
|
$ m.etat_civil()
|
|
|
|
# Conjoint :
|
|
python:
|
|
conjoint = Personnage()
|
|
conjoint.etat_civil()
|
|
# 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
|
|
|
|
|
|
# âge proche de celui du personnage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Initialisation des personnages
|
|
|
|
|
|
#On revient à la suite du label start
|
|
return
|
|
|
|
|
|
# Le jeu commence ici
|
|
label start:
|
|
|
|
# Initialisation des fiches personnages
|
|
call fiches_personnages
|
|
|
|
# Structure de l'histoire
|
|
call morning_routine
|
|
call petit_dejeuner
|
|
call trajet
|
|
call matin
|
|
call midi
|
|
call apres_midi
|
|
call negociation_patron
|
|
|
|
|
|
m.c "Et voilà, c'est terminé !"
|
|
|
|
|
|
|
|
|
|
|