def _map_motive_id(sim_info: SimInfo, motive_id: int) -> int: motive_mappings = CommonSimMotiveUtils._get_motive_mappings() if motive_id not in motive_mappings: return motive_id motive_species_mapping: Dict[Species, CommonMotiveId] = motive_mappings[motive_id] species = CommonSpeciesUtils.get_species(sim_info) if species not in motive_species_mapping: return motive_id return motive_species_mapping[species]
def get_pregnancy_progress(sim_info: SimInfo) -> float: """ Retrieve the pregnancy progress of a Sim. """ pregnancy_tracker = CommonSimPregnancyUtils._get_pregnancy_tracker( sim_info) if pregnancy_tracker is None or not CommonSimPregnancyUtils.is_pregnant( sim_info): return 0.0 pregnancy_commodity_type = pregnancy_tracker.PREGNANCY_COMMODITY_MAP.get( CommonSpeciesUtils.get_species(sim_info)) statistic_tracker = sim_info.get_tracker(pregnancy_commodity_type) pregnancy_commodity = statistic_tracker.get_statistic( pregnancy_commodity_type, add=False) if not pregnancy_commodity: return 0.0 return pregnancy_commodity.get_value()