예제 #1
0
파일: pnj.py 프로젝트: wkta/tsunami
    def tick(self):
        """Méthode appelée à chaque tick."""
        Personnage.tick(self)
        try:
            self.script["tick"].executer(pnj=self)
        except Exception:
            pass

        importeur.hook["pnj:tick"].executer(self)
예제 #2
0
파일: joueur.py 프로젝트: wkta/tsunami
    def tick(self):
        """Méthode appelée à chaque tick."""
        if self.instance_connexion:
            self.instance_connexion.envoyer_options("hello")

        if self.afk:
            return

        if self.est_mort():
            self.cpt_mort += 1
            if self.cpt_mort <= 12:
                return
            else:
                self.etats.vider()
                self.stats.vitalite = 1
                self.soif = 0
                self.faim = 0
                self.estomac = 0
                self.envoyer("Vous reprenez lentement conscience, vous " \
                        "sentant encore très faible.")
                self.cpt_mort = 0

        Personnage.tick(self)

        # Faim et soif
        if self.soif < 100:
            self.soif += 1 / 6
        if self.faim < 100:
            self.faim += 1 / 9
        if self.estomac > 0:
            self.estomac -= 0.1
        msg_soif = [
            (20, ("Vous avez soif.", 0)),
            (60, ("La soif vous assèche le gosier.", 0)),
            (80, ("Votre gorge asséchée vous fait souffrir le martyre.", 5)),
            (95, ("Votre vision se trouble sous l'effet de la déshydratation.",
                  20)),
        ]
        msg_faim = [
            (20, ("Vous avez faim.", 0)),
            (40, ("Votre estomac gargouille avec insistance.", 0)),
            (60, ("La faim vous noue douloureusement le ventre.", 0)),
            (80, ("Votre ventre proteste violemment.", 0)),
            (90, ("Vous souffrez horriblement de la faim.", 3)),
            (98, ("Des visions de banquets croulant sous la nourriture vous " \
                    "assaillent...", 20)),
        ]
        if not self.est_immortel():
            if self.soif >= 100:
                self << "Vous mourez de soif."
                self.mourir()
                return
            if self.faim >= 100:
                self << "Vous mourez de faim."
                self.mourir()
                return
            for seuil, msg in reversed(msg_soif):
                if self.soif >= seuil:
                    self.instance_connexion.sans_prompt()
                    self.instance_connexion.envoyer(msg[0], nl=1)
                    try:
                        self.vitalite -= msg[1]
                    except DepassementStat:
                        self << "Vous mourez de soif."
                        self.mourir()
                        return
                    break
            for seuil, msg in reversed(msg_faim):
                if self.faim >= seuil:
                    self.instance_connexion.sans_prompt()
                    self.instance_connexion.envoyer(msg[0], nl=1)
                    try:
                        self.vitalite -= msg[1]
                    except DepassementStat:
                        self << "Vous mourez de faim."
                        self.mourir()
                        return
                    break
예제 #3
0
파일: joueur.py 프로젝트: stormi/tsunami
    def tick(self):
        """Méthode appelée à chaque tick."""
        if self.afk:
            return
        
        if self.est_mort():
            self.cpt_mort += 1
            if self.cpt_mort <= 12:
                return
            else:
                self.etats.vider()
                self.stats.vitalite = 1
                self.soif = 0
                self.faim = 0
                self.estomac = 0
                self.envoyer("Vous reprenez lentement conscience, vous " \
                        "sentant encore très faible.")
                self.cpt_mort = 0

        Personnage.tick(self)

        # Faim et soif
        if self.soif < 100:
            self.soif += 1/6
        if self.faim < 100:
            self.faim += 1/9
        if self.estomac > 0:
            self.estomac -= 0.1
        msg_soif = [
            (20, ("Vous avez soif.", 0)),
            (60, ("La soif vous assèche le gosier.", 0)),
            (80, ("Votre gorge asséchée vous fait souffrir le martyre.", 5)),
            (95, ("Votre vision se trouble sous l'effet de la déshydratation.",
                    20)),
        ]
        msg_faim = [
            (20, ("Vous avez faim.", 0)),
            (40, ("Votre estomac gargouille avec insistance.", 0)),
            (60, ("La faim vous noue douloureusement le ventre.", 0)),
            (80, ("Votre ventre proteste violemment.", 0)),
            (90, ("Vous souffrez horriblement de la faim.", 3)),
            (98, ("Des visions de banquets croulant sous la nourriture vous " \
                    "assaillent...", 20)),
        ]
        if not self.est_immortel():
            if self.soif >= 100:
                self << "Vous mourez de soif."
                self.mourir()
                return
            if self.faim >= 100:
                self << "Vous mourez de faim."
                self.mourir()
                return
            for seuil, msg in reversed(msg_soif):
                if self.soif >= seuil:
                    self.instance_connexion.sans_prompt()
                    self.instance_connexion.envoyer(msg[0], nl=1)
                    try:
                        self.vitalite -= msg[1]
                    except DepassementStat:
                        self << "Vous mourez de soif."
                        self.mourir()
                        return
                    break
            for seuil, msg in reversed(msg_faim):
                if self.faim >= seuil:
                    self.instance_connexion.sans_prompt()
                    self.instance_connexion.envoyer(msg[0], nl=1)
                    try:
                        self.vitalite -= msg[1]
                    except DepassementStat:
                        self << "Vous mourez de faim."
                        self.mourir()
                        return
                    break
예제 #4
0
파일: pnj.py 프로젝트: stormi/tsunami
 def tick(self):
     """Méthode appelée à chaque tick."""
     Personnage.tick(self)
     self.script["tick"].executer(pnj=self)
     importeur.hook["pnj:tick"].executer(self)