def __calcAge(self):
		"""
		Zur Berechnung des Alters werden Geburtstag und Datum im Spiel herangezogen.
		"""

		age = Calc.years(self.dateBirth, self.dateGame)

		if self.__age != age:
			ageCtagoryChanged = False
			if Config.getAge(self.__age) != Config.getAge(age):
				ageCtagoryChanged = True
			self.__age = age
			self.ageChanged.emit(age)
			if ageCtagoryChanged:
				self.ageChanged[str].emit(Config.getAge(age))
Ejemplo n.º 2
0
    def __calcAge(self):
        """
		Zur Berechnung des Alters werden Geburtstag und Datum im Spiel herangezogen.
		"""

        age = Calc.years(self.dateBirth, self.dateGame)

        if self.__age != age:
            ageCtagoryChanged = False
            if Config.getAge(self.__age) != Config.getAge(age):
                ageCtagoryChanged = True
            self.__age = age
            self.ageChanged.emit(age)
            if ageCtagoryChanged:
                self.ageChanged[str].emit(Config.getAge(age))
Ejemplo n.º 3
0
    def warnHeightChange(self, newHeight):
        """
		Ändert sich die Körpergröße zu sehr, sollautomatisch der Merit Giant bzw. der Flaw Dwarf vorgeschlagen werden.
		"""

        ## Wird der Charkater gerade geladen, werden keine Warnungen gezeigt und automatisch davon ausgegangen, daß der Anwender sie auch akzeptieren würde.
        if self.__character.isLoading:
            return True
        else:
            smallTrait = "Dwarf Flaw"
            if self.__character.age < Config.AGE_ADULT:
                smallTrait = "Tiny Merit"

            title = self.tr("Too big")
            text = self.tr(
                "To be this big, the character needs to purchase the Giant Merit."
            )
            if newHeight <= Config.HEIGHT_DWARF_MAX[Config.getAge(
                    self.__character.age)]:
                title = self.tr("Too small")
                text = self.tr(
                    "To be this small, the character needs to get the {}.".
                    format(smallTrait))
            ret = QMessageBox.warning(
                self, title,
                self.tr("{} Do you want that to happen?".format(text)),
                QMessageBox.Yes | QMessageBox.No)
            if ret == QMessageBox.StandardButton.No:
                return False
            else:
                return True
Ejemplo n.º 4
0
	def updateHeight(self):
		"""
		Werden der Giant-Merit oder der Dwarf-Flaw verändert, muß die Körpergröße angepaßt werden.
		"""

		giantTrait = self.__character.traits["Merit"]["Physical"]["Giant"]
		smallTrait = self.__character.traits["Flaw"]["Physical"]["Dwarf"]
		if self.__character.age < Config.AGE_ADULT:
			giantTrait = self.__character.traits["Merit"]["Physical"]["GiantKid"]
			smallTrait = self.__character.traits["Merit"]["Physical"]["Tiny"]

		ageText = Config.getAge(self.__character.age)
		if giantTrait.value > 0 and self.ui.doubleSpinBox_height.value() < Config.HEIGHT_GIANT_MIN[ageText]:
			self.ui.doubleSpinBox_height.setValue(Config.HEIGHT_GIANT_MIN[ageText])
			self.notificationSent.emit(self.tr("Height changed to {} meters".format(Config.HEIGHT_GIANT_MIN[ageText])))
		elif giantTrait.value < 1 and self.ui.doubleSpinBox_height.value() >= Config.HEIGHT_GIANT_MIN[ageText]:
			newHeight = Config.HEIGHT_GIANT_MIN[ageText] - 0.01
			self.ui.doubleSpinBox_height.setValue(newHeight)
			self.notificationSent.emit(self.tr("Height changed to {} meters".format(newHeight)))
		elif smallTrait.value > 0 and self.ui.doubleSpinBox_height.value() > Config.HEIGHT_DWARF_MAX[ageText]:
			self.ui.doubleSpinBox_height.setValue(Config.HEIGHT_DWARF_MAX[ageText])
			self.notificationSent.emit(self.tr("Height changed to {} meters".format(Config.HEIGHT_DWARF_MAX[ageText])))
		elif smallTrait.value < 1 and self.ui.doubleSpinBox_height.value() <= Config.HEIGHT_DWARF_MAX[ageText]:
			newHeight = Config.HEIGHT_DWARF_MAX[ageText] + 0.01
			self.ui.doubleSpinBox_height.setValue(newHeight)
			self.notificationSent.emit(self.tr("Height changed to {} meters".format(newHeight)))
Ejemplo n.º 5
0
	def warnHeightChange(self, newHeight):
		"""
		Ändert sich die Körpergröße zu sehr, sollautomatisch der Merit Giant bzw. der Flaw Dwarf vorgeschlagen werden.
		"""

		## Wird der Charkater gerade geladen, werden keine Warnungen gezeigt und automatisch davon ausgegangen, daß der Anwender sie auch akzeptieren würde.
		if self.__character.isLoading:
			return True
		else:
			smallTrait = "Dwarf Flaw"
			if self.__character.age < Config.AGE_ADULT:
				smallTrait = "Tiny Merit"

			title = self.tr("Too big")
			text = self.tr("To be this big, the character needs to purchase the Giant Merit.")
			if newHeight <= Config.HEIGHT_DWARF_MAX[Config.getAge(self.__character.age)]:
				title = self.tr("Too small")
				text = self.tr("To be this small, the character needs to get the {}.".format(smallTrait))
			ret = QMessageBox.warning(
				self,
				title,
				self.tr( "{} Do you want that to happen?".format(text) ),
				QMessageBox.Yes | QMessageBox.No
			)
			if ret == QMessageBox.StandardButton.No:
				return False
			else:
				return True
Ejemplo n.º 6
0
	def emitHideReasonChanged(self):
		#Debug.debug(Config.getAge(self._character.age), self._character.era)
		#ageStr = Config.AGES[0]
		#if self._character.age < Config.AGE_ADULT:
			#ageStr = Config.AGES[1]
		ageStr = Config.getAge(self._character.age)
		eraStr = self._character.era
		self.hideReasonChanged.emit(self._character.species, ageStr, eraStr)
Ejemplo n.º 7
0
 def emitHideReasonChanged(self):
     #Debug.debug(Config.getAge(self._character.age), self._character.era)
     #ageStr = Config.AGES[0]
     #if self._character.age < Config.AGE_ADULT:
     #ageStr = Config.AGES[1]
     ageStr = Config.getAge(self._character.age)
     eraStr = self._character.era
     self.hideReasonChanged.emit(self._character.species, ageStr, eraStr)
	def deselctTraitsWithWrongAge(self, age):
		"""
		\todo Man sollte nicht bei jedem Alterswechsel über alle Eigenschaften laufen, sondern zu Beginn des Programms alle Eigenschaften mit "Kid" bzw. "Adult" mit ageChanged verknüpfen.
		"""

		for typ in self.__traits:
			for category in self.__traits[typ]:
				for trait in self.__traits[typ][category].values():
					if type(trait) == StandardTrait and trait.age and trait.age != Config.getAge(self.age) and trait.value > 0:
						trait.value = 0
Ejemplo n.º 9
0
    def deselctTraitsWithWrongAge(self, age):
        """
		\todo Man sollte nicht bei jedem Alterswechsel über alle Eigenschaften laufen, sondern zu Beginn des Programms alle Eigenschaften mit "Kid" bzw. "Adult" mit ageChanged verknüpfen.
		"""

        for typ in self.__traits:
            for category in self.__traits[typ]:
                for trait in self.__traits[typ][category].values():
                    if type(
                            trait
                    ) == StandardTrait and trait.age and trait.age != Config.getAge(
                            self.age) and trait.value > 0:
                        trait.value = 0
Ejemplo n.º 10
0
    def setCharacterHeight(self, height):
        """
		Ändert sich die Körpergröße zu sehr, sollautomatisch der Merit Giant bzw. der Flaw Dwarf vorgeschlagen werden.

		\todo Bei Kindern heißt der Dwarf-Flaw "Tiny"
		"""

        ageText = Config.getAge(self.__character.age)

        giantTrait = self.__character.traits["Merit"]["Physical"]["Giant"]
        smallTrait = self.__character.traits["Flaw"]["Physical"]["Dwarf"]
        smallAddNotification = self.tr("Added the Dwarf Flaw.")
        smallRemoveNotification = self.tr("Removed the Dwarf Flaw.")
        if self.__character.age < Config.AGE_ADULT:
            giantTrait = self.__character.traits["Merit"]["Physical"][
                "GiantKid"]
            smallTrait = self.__character.traits["Merit"]["Physical"]["Tiny"]
            smallAddNotification = self.tr("Added the Tiny Merit.")
            smallRemoveNotification = self.tr("Removed the Tiny Merit.")

        if height >= Config.HEIGHT_GIANT_MIN[ageText]:
            if giantTrait.value > 0:
                pass
            elif self.warnHeightChange(height):
                giantTrait.value = 5
                self.notificationSent.emit(self.tr("Added the Giant Merit."))
            else:
                self.ui.doubleSpinBox_height.setValue(self.__character.height)
        elif height <= Config.HEIGHT_DWARF_MAX[ageText]:
            if smallTrait.value > 0:
                pass
            elif self.warnHeightChange(height):
                smallTrait.value = 2
                self.notificationSent.emit(smallAddNotification)
            else:
                self.ui.doubleSpinBox_height.setValue(self.__character.height)
        elif giantTrait.value:
            giantTrait.value = 0
            self.notificationSent.emit(self.tr("Removed the Giant Merit."))
        elif smallTrait.value:
            smallTrait.value = 0
            self.notificationSent.emit(smallRemoveNotification)

        self.__character.height = height
Ejemplo n.º 11
0
	def setCharacterHeight(self, height):
		"""
		Ändert sich die Körpergröße zu sehr, sollautomatisch der Merit Giant bzw. der Flaw Dwarf vorgeschlagen werden.

		\todo Bei Kindern heißt der Dwarf-Flaw "Tiny"
		"""

		ageText = Config.getAge(self.__character.age)

		giantTrait = self.__character.traits["Merit"]["Physical"]["Giant"]
		smallTrait = self.__character.traits["Flaw"]["Physical"]["Dwarf"]
		smallAddNotification = self.tr("Added the Dwarf Flaw.")
		smallRemoveNotification = self.tr("Removed the Dwarf Flaw.")
		if self.__character.age < Config.AGE_ADULT:
			giantTrait = self.__character.traits["Merit"]["Physical"]["GiantKid"]
			smallTrait = self.__character.traits["Merit"]["Physical"]["Tiny"]
			smallAddNotification = self.tr("Added the Tiny Merit.")
			smallRemoveNotification = self.tr("Removed the Tiny Merit.")

		if height >= Config.HEIGHT_GIANT_MIN[ageText]:
			if giantTrait.value > 0:
				pass
			elif self.warnHeightChange(height):
				giantTrait.value = 5
				self.notificationSent.emit(self.tr("Added the Giant Merit."))
			else:
				self.ui.doubleSpinBox_height.setValue(self.__character.height)
		elif height <= Config.HEIGHT_DWARF_MAX[ageText]:
			if smallTrait.value > 0:
				pass
			elif self.warnHeightChange(height):
				smallTrait.value = 2
				self.notificationSent.emit(smallAddNotification)
			else:
				self.ui.doubleSpinBox_height.setValue(self.__character.height)
		elif giantTrait.value:
			giantTrait.value = 0
			self.notificationSent.emit(self.tr("Removed the Giant Merit."))
		elif smallTrait.value:
			smallTrait.value = 0
			self.notificationSent.emit(smallRemoveNotification)

		self.__character.height = height
Ejemplo n.º 12
0
    def updateHeight(self):
        """
		Werden der Giant-Merit oder der Dwarf-Flaw verändert, muß die Körpergröße angepaßt werden.
		"""

        giantTrait = self.__character.traits["Merit"]["Physical"]["Giant"]
        smallTrait = self.__character.traits["Flaw"]["Physical"]["Dwarf"]
        if self.__character.age < Config.AGE_ADULT:
            giantTrait = self.__character.traits["Merit"]["Physical"][
                "GiantKid"]
            smallTrait = self.__character.traits["Merit"]["Physical"]["Tiny"]

        ageText = Config.getAge(self.__character.age)
        if giantTrait.value > 0 and self.ui.doubleSpinBox_height.value(
        ) < Config.HEIGHT_GIANT_MIN[ageText]:
            self.ui.doubleSpinBox_height.setValue(
                Config.HEIGHT_GIANT_MIN[ageText])
            self.notificationSent.emit(
                self.tr("Height changed to {} meters".format(
                    Config.HEIGHT_GIANT_MIN[ageText])))
        elif giantTrait.value < 1 and self.ui.doubleSpinBox_height.value(
        ) >= Config.HEIGHT_GIANT_MIN[ageText]:
            newHeight = Config.HEIGHT_GIANT_MIN[ageText] - 0.01
            self.ui.doubleSpinBox_height.setValue(newHeight)
            self.notificationSent.emit(
                self.tr("Height changed to {} meters".format(newHeight)))
        elif smallTrait.value > 0 and self.ui.doubleSpinBox_height.value(
        ) > Config.HEIGHT_DWARF_MAX[ageText]:
            self.ui.doubleSpinBox_height.setValue(
                Config.HEIGHT_DWARF_MAX[ageText])
            self.notificationSent.emit(
                self.tr("Height changed to {} meters".format(
                    Config.HEIGHT_DWARF_MAX[ageText])))
        elif smallTrait.value < 1 and self.ui.doubleSpinBox_height.value(
        ) <= Config.HEIGHT_DWARF_MAX[ageText]:
            newHeight = Config.HEIGHT_DWARF_MAX[ageText] + 0.01
            self.ui.doubleSpinBox_height.setValue(newHeight)
            self.notificationSent.emit(
                self.tr("Height changed to {} meters".format(newHeight)))
Ejemplo n.º 13
0
 def __emitTraitVisibleReasonChanged(self):
     ageText = Config.getAge(self.age)
     self.traitVisibleReasonChanged.emit(self.species, ageText, self.era,
                                         self.breed, self.faction)
Ejemplo n.º 14
0
 def setHeightMinMax(self, age):
     self.ui.doubleSpinBox_height.setMinimum(
         Config.HEIGHT_MIN[Config.getAge(age)])
     self.ui.doubleSpinBox_height.setMaximum(
         Config.HEIGHT_MAX[Config.getAge(age)])
Ejemplo n.º 15
0
	def setHeightMinMax(self, age):
		self.ui.doubleSpinBox_height.setMinimum(Config.HEIGHT_MIN[Config.getAge(age)])
		self.ui.doubleSpinBox_height.setMaximum(Config.HEIGHT_MAX[Config.getAge(age)])
	def __emitTraitVisibleReasonChanged(self):
		ageText = Config.getAge(self.age)
		self.traitVisibleReasonChanged.emit(self.species, ageText, self.era, self.breed, self.faction)