patron_augmentation/game/characters/personnage.rpy

91 lines
4 KiB
Plaintext

# Définition des éléments communs aux personnages
init 0 python:
class Personnage(object):
# 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
self.humeur = 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(["technicien", "secrétaire", "graphiste"])
# 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(["SAFE energies", "Watt-o-watt", "Enercentrale"])
# 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 == "technicien":
self.salaire = renpy.random.randint(1400, 1700)
if self.social == "secrétaire":
self.salaire = renpy.random.randint(1700, 2000)
if self.social == "graphiste":
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)
# suppression des décimales
self.salaire = int(self.salaire)
# Humeur du personnage (de base 0)
self.humeur = 0
# Méthode qui permet d'appeller les dialogues avec les autres personnages
def parle(self,sujet):
# Réglage de l'humeur (<10 = sympahtique, entre -10 et 10 = neutre, >10 = antipathique)
if self.humeur >= 10:
mood = "sympathique"
elif self.humeur <= -10:
mood = "antipathique"
else:
mood = "neutre"
# Parsing des label (nom.sujet_humeur)
parse = str(self.c)+"."+str(sujet)+"_"+str(mood)
return parse