コード例 #1
0
 def _has_occult_trait(sim_info: SimInfo, trait: int) -> bool:
     equipped_sim_traits = CommonTraitUtils.get_equipped_traits(sim_info)
     for sim_trait in equipped_sim_traits:
         sim_trait_id = getattr(sim_trait, 'guid64', None)
         if sim_trait_id == trait:
             return True
     return False
コード例 #2
0
 def is_ghost(sim_info: SimInfo) -> bool:
     """
         Determine if a sim is a Ghost.
     """
     equipped_sim_traits = CommonTraitUtils.get_equipped_traits(sim_info)
     for trait in equipped_sim_traits:
         is_ghost_trait = getattr(trait, 'is_ghost_trait', None)
         if is_ghost_trait:
             return True
     return False
コード例 #3
0
 def _has_occult_traits(sim_info: SimInfo,
                        trait_ids: Iterator[int]) -> bool:
     if sim_info is None:
         return False
     equipped_traits = CommonTraitUtils.get_equipped_traits(sim_info)
     for equipped_trait in equipped_traits:
         trait_id = CommonTraitUtils.get_trait_id(equipped_trait)
         if trait_id in trait_ids:
             return True
     return False
コード例 #4
0
 def is_robot(sim_info: SimInfo) -> bool:
     """
         Determine if a sim is a Robot.
     """
     if not hasattr(TraitType, 'ROBOT'):
         return False
     equipped_sim_traits = CommonTraitUtils.get_equipped_traits(sim_info)
     for trait in equipped_sim_traits:
         trait_type = getattr(trait, 'trait_type', -1)
         if trait_type == TraitType.ROBOT:
             return True
     return False
コード例 #5
0
    def is_ghost(sim_info: SimInfo) -> bool:
        """is_ghost(sim_info)

        Determine if a sim is a Ghost.

        :param sim_info: The Sim to check.
        :type sim_info: SimInfo
        :return: True, if the Sim is the Occult. False, if not.
        :rtype: bool
        """
        equipped_sim_traits = CommonTraitUtils.get_equipped_traits(sim_info)
        for trait in equipped_sim_traits:
            is_ghost_trait = getattr(trait, 'is_ghost_trait', None)
            if is_ghost_trait:
                return True
        return False
コード例 #6
0
    def is_robot(sim_info: SimInfo) -> bool:
        """is_robot(sim_info)

        Determine if a sim is a Robot.

        :param sim_info: The Sim to check.
        :type sim_info: SimInfo
        :return: True, if the Sim is the Occult. False, if not.
        :rtype: bool
        """
        if not hasattr(TraitType, 'ROBOT'):
            return False
        equipped_sim_traits = CommonTraitUtils.get_equipped_traits(sim_info)
        for trait in equipped_sim_traits:
            trait_type = getattr(trait, 'trait_type', -1)
            if trait_type == TraitType.ROBOT:
                return True
        return False
コード例 #7
0
    def is_skeleton(sim_info: SimInfo) -> bool:
        """is_skeleton(sim_info)

        Determine if a Sim is a Skeleton.

        :param sim_info: An instance of a Sim.
        :type sim_info: SimInfo
        :return: True, if the Sim is the a Skeleton. False, if not.
        :rtype: bool
        """
        equipped_sim_traits = CommonTraitUtils.get_equipped_traits(sim_info)
        skeleton_trait_ids = {
            CommonTraitId.HIDDEN_SKELETON,
            CommonTraitId.HIDDEN_SKELETON_SERVICE_SKELETON,
            CommonTraitId.HIDDEN_SKELETON_TEMPLE_SKELETON
        }
        for trait in equipped_sim_traits:
            trait_id = CommonTraitUtils.get_trait_id(trait)
            if trait_id in skeleton_trait_ids:
                return True
        return False