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
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
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
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
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
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
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