def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) has_top_underwear_on = TurboSimUtil.Gender.is_female(sim) and ( is_underwear_outfit(get_modified_outfit(sim)[0]) and is_sim_top_underwear(sim)) has_bottom_underwear_on = is_underwear_outfit( get_modified_outfit(sim)[0]) and is_sim_bottom_underwear(sim) strip_type_top = StripType.UNDERWEAR if has_top_underwear_on else StripType.NUDE strip_type_bottom = StripType.UNDERWEAR if has_bottom_underwear_on else StripType.NUDE strip_result = strip_outfit(sim, strip_type_top=strip_type_top, strip_type_bottom=strip_type_bottom, skip_outfit_change=True) if strip_result is True: set_sim_top_naked_state(sim, strip_type_top == StripType.NUDE) set_sim_bottom_naked_state(sim, strip_type_bottom == StripType.NUDE) set_sim_top_underwear_state(sim, strip_type_top == StripType.UNDERWEAR) set_sim_bottom_underwear_state( sim, strip_type_bottom == StripType.UNDERWEAR) nudity_notification( text=2191667249, text_tokens=(sim, ), icon=sim, sims=(sim, ), is_autonomy=cls.get_interaction_source(interaction_instance) == TurboInteractionUtil.InteractionSource.AUTONOMY) return TurboSimUtil.CAS.get_change_outfit_element( sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), do_spin=True, interaction=interaction_instance)
def on_interaction_start(cls, interaction_instance): target = cls.get_interaction_target(interaction_instance) if get_nudity_setting( NuditySetting.COMPLETE_UNDRESSING_TYPE, variable_type=int) == CompleteUndressingTypeSetting.DEFAULT: reset_sim_bathing_outfits(target) copy_outfit_to_special( target, set_special_outfit=True, outfit_category_and_index=(TurboCASUtil.OutfitCategory.BATHING, 0), override_outfit_parts={ 115: sim_ev(target).nude_outfit_parts[115] }) else: copy_outfit_to_special( target, set_special_outfit=True, outfit_category_and_index=get_modified_outfit(target), override_outfit_parts={ TurboCASUtil.BodyType.UPPER_BODY: sim_ev(target).nude_outfit_parts[ TurboCASUtil.BodyType.UPPER_BODY], TurboCASUtil.BodyType.LOWER_BODY: sim_ev(target).nude_outfit_parts[ TurboCASUtil.BodyType.LOWER_BODY], TurboCASUtil.BodyType.SHOES: sim_ev(target).nude_outfit_parts[ TurboCASUtil.BodyType.SHOES], TurboCASUtil.BodyType.FULL_BODY: 0, TurboCASUtil.BodyType.HAT: 0, TurboCASUtil.BodyType.CUMMERBUND: 0, TurboCASUtil.BodyType.EARRINGS: 0, TurboCASUtil.BodyType.GLASSES: 0, TurboCASUtil.BodyType.NECKLACE: 0, TurboCASUtil.BodyType.GLOVES: 0, TurboCASUtil.BodyType.WRIST_LEFT: 0, TurboCASUtil.BodyType.WRIST_RIGHT: 0, TurboCASUtil.BodyType.SOCKS: 0, TurboCASUtil.BodyType.TIGHTS: 0, 115: sim_ev(target).nude_outfit_parts[115] }) set_sim_top_naked_state(target, True) set_sim_bottom_naked_state(target, True) set_sim_top_underwear_state(target, False) set_sim_bottom_underwear_state(target, False) return True
def get_sim_underwear_data(sim_identifier, outfit_category_and_index): sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) sim_is_child = TurboSimUtil.Age.get_age(sim_info) is TurboSimUtil.Age.CHILD if not get_nudity_setting(NuditySetting.UNDERWEAR_SWITCH_STATE, variable_type=bool) or has_sim_trait( sim_info, SimTrait.WW_NO_UNDERWEAR): return (-1, -1) outfit_category = outfit_category_and_index[0] outfit_index = outfit_category_and_index[1] if outfit_category == TurboCASUtil.OutfitCategory.CAREER or outfit_category == TurboCASUtil.OutfitCategory.SITUATION: outfit_category = TurboCASUtil.OutfitCategory.EVERYDAY outfit_index = 0 if outfit_category == TurboCASUtil.OutfitCategory.SPECIAL and outfit_index == 0: modified_outfit = get_modified_outfit(sim_info) outfit_category = modified_outfit[0] outfit_index = modified_outfit[1] outfit_code = _get_outfit_category_and_index_code( (outfit_category, outfit_index)) if outfit_code in sim_ev(sim_info).underwear_outfits_parts: underwear_data = sim_ev(sim_info).underwear_outfits_parts[outfit_code] elif TurboSimUtil.Sim.is_npc(sim_info): underwear_data = list(get_random_underwear_set(sim_info)) else: underwear_data = [-1, -1] if sim_is_child: if TurboSimUtil.Gender.is_male(sim_info): if underwear_data[ 1] == -1 or not TurboCASUtil.Outfit.is_cas_part_loaded( underwear_data[1]): underwear_data[1] = DEFAULT_UNDERWEAR_BOTTOM_CHILD_MALE else: if underwear_data[ 0] == -1 or not TurboCASUtil.Outfit.is_cas_part_loaded( underwear_data[0]): underwear_data[0] = DEFAULT_UNDERWEAR_TOP_CHILD_FEMALE if underwear_data[ 1] == -1 or not TurboCASUtil.Outfit.is_cas_part_loaded( underwear_data[1]): underwear_data[1] = DEFAULT_UNDERWEAR_BOTTOM_CHILD_FEMALE else: if TurboSimUtil.Gender.is_male(sim_info): if underwear_data[ 1] == -1 or not TurboCASUtil.Outfit.is_cas_part_loaded( underwear_data[1]): underwear_data[1] = DEFAULT_UNDERWEAR_BOTTOM_MALE else: if underwear_data[ 0] == -1 or not TurboCASUtil.Outfit.is_cas_part_loaded( underwear_data[0]): underwear_data[0] = DEFAULT_UNDERWEAR_TOP_FEMALE if underwear_data[ 1] == -1 or not TurboCASUtil.Outfit.is_cas_part_loaded( underwear_data[1]): underwear_data[1] = DEFAULT_UNDERWEAR_BOTTOM_FEMALE set_sim_underwear_data(sim_info, underwear_data, outfit_category_and_index) return underwear_data
def on_interaction_start(cls, interaction_instance): target = cls.get_interaction_target(interaction_instance) strip_type_top = StripType.NUDE if get_sim_body_state( target, TurboCASUtil.BodyType.UPPER_BODY ) == BodyState.UNDERWEAR else StripType.UNDERWEAR if TurboSimUtil.Gender.is_female( target) and is_underwear_outfit( get_modified_outfit(target)[0]) else StripType.NUDE strip_type_bottom = StripType.NUDE if get_sim_body_state( target, TurboCASUtil.BodyType.LOWER_BODY ) == BodyState.UNDERWEAR else StripType.UNDERWEAR if is_underwear_outfit( get_modified_outfit(target)[0]) else StripType.NUDE strip_outfit(target, strip_type_top=strip_type_top, strip_type_bottom=strip_type_bottom) set_sim_top_naked_state(target, strip_type_top == StripType.NUDE) set_sim_top_underwear_state(target, strip_type_top != StripType.NUDE) set_sim_bottom_naked_state(target, strip_type_bottom == StripType.NUDE) set_sim_bottom_underwear_state(target, strip_type_bottom != StripType.NUDE) return True
def _update_dress_up_after_breast_feeding_on_game_update(): if not get_nudity_setting(NuditySetting.BREAST_FEEDING_UNDRESS_STATE, variable_type=bool): return for sim in TurboManagerUtil.Sim.get_all_sim_instance_gen(humans=True, pets=False): if sim_ev( sim ).on_breast_feeding_outfit_state == OutfitStateBeforeBreastFeeding.NONE: continue if TurboSimUtil.Age.is_younger_than(sim, TurboSimUtil.Age.CHILD): continue if TurboSimUtil.Interaction.is_running_interaction( sim, BREAST_FEEDING_INTERACTIONS): return current_outfit = TurboSimUtil.CAS.get_current_outfit(sim) if not (current_outfit[0] == TurboCASUtil.OutfitCategory.SPECIAL and current_outfit[1] == 0): continue current_outfit = get_modified_outfit(sim) if sim_ev( sim ).on_breast_feeding_outfit_state == OutfitStateBeforeBreastFeeding.UNDERWEAR: set_bodytype_caspart( sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), 6, get_sim_underwear_data(sim, current_outfit)[0]) set_sim_top_underwear_state(sim, True) try: TurboSimUtil.CAS.refresh_outfit(sim) except: continue elif sim_ev( sim ).on_breast_feeding_outfit_state == OutfitStateBeforeBreastFeeding.OUTFIT and has_sim_outfit_top( sim, outfit_category_and_index=current_outfit): part_id = get_sim_outfit_cas_part_from_bodytype( sim, 6, outfit_category_and_index=current_outfit) set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), 6, part_id) set_sim_top_underwear_state(sim, True) try: TurboSimUtil.CAS.refresh_outfit(sim) except: continue elif is_sim_outfit_fullbody(sim, outfit_category_and_index=current_outfit): dress_up_outfit(sim) else: dress_up_outfit(sim) sim_ev(sim).on_breast_feeding_outfit_state = int( OutfitStateBeforeBreastFeeding.NONE)
def _get_sim_body_state(sim_identifier, bodytype, outfit_category_and_index=None): sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) part_id = get_sim_outfit_cas_part_from_bodytype(sim_info, bodytype, outfit_category_and_index=outfit_category_and_index) nude_part_id = sim_ev(sim_info).nude_outfit_parts[bodytype] if bodytype in sim_ev(sim_info).nude_outfit_parts else -1 if part_id == nude_part_id and nude_part_id != -1: return BodyState.NUDE if bodytype == 7 and part_id != -1 and part_id in get_penis_part_ids(): return BodyState.NUDE if bodytype == 6 or bodytype == 7: current_outfit_category_and_index = get_modified_outfit(sim_info) from wickedwhims.nudity.underwear.operator import get_sim_underwear_data underwear_data = get_sim_underwear_data(sim_info, current_outfit_category_and_index) if part_id != -1 and part_id == underwear_data[0 if bodytype == 6 else 1]: return BodyState.UNDERWEAR return BodyState.OUTFIT
def _undress_bottom(sim_info): has_top_underwear_on = TurboSimUtil.Gender.is_female(sim_info) and ( is_underwear_outfit(get_modified_outfit(sim_info)[0]) and is_sim_top_underwear(sim_info)) strip_type_top = StripType.NONE if not is_sim_outfit_fullbody( sim_info ) else StripType.UNDERWEAR if has_top_underwear_on else StripType.NUDE strip_outfit(sim_info, strip_type_top=strip_type_top, strip_type_bottom=StripType.NUDE) set_sim_top_naked_state(sim_info, strip_type_top == StripType.NUDE) set_sim_bottom_naked_state(sim_info, True) set_sim_top_underwear_state(sim_info, strip_type_top == StripType.UNDERWEAR) set_sim_bottom_underwear_state(sim_info, False)
def on_interaction_test(cls, interaction_context, interaction_target): sim = cls.get_interaction_sim(interaction_context) if not get_nudity_setting(NuditySetting.UNDERWEAR_SWITCH_STATE, variable_type=bool) or has_sim_trait( sim, SimTrait.WW_NO_UNDERWEAR): return False if is_sim_in_sex(sim) or is_sim_going_to_sex(sim): return False if TurboSimUtil.Gender.is_male(sim): return False if is_underwear_outfit(get_modified_outfit(sim)[0]) and ( not is_sim_bottom_underwear(sim) or TurboSimUtil.Gender.is_female(sim) and not is_sim_top_underwear(sim)): return True return False
def _update_dress_up_after_toilet_use_on_game_update(): global HAS_SIMS_USING_TOILET if not get_nudity_setting(NuditySetting.TOILET_USE_UNDRESS_STATE, variable_type=bool): return if HAS_SIMS_USING_TOILET is False: return has_sims_peeing = False for sim in TurboManagerUtil.Sim.get_all_sim_instance_gen(humans=True, pets=False): if sim_ev(sim).on_toilet_outfit_state == OutfitStateBeforeToiletUse.NONE: continue has_sims_peeing = True if TurboSimUtil.Age.is_younger_than(sim, TurboSimUtil.Age.CHILD): continue is_using_toilet = False for affordance_id in TOILET_USE_INTERACTIONS: if TurboSimUtil.Interaction.is_running_interaction(sim, affordance_id): is_using_toilet = True break if is_using_toilet is True: has_sims_peeing = True current_outfit = TurboSimUtil.CAS.get_current_outfit(sim) if not (current_outfit[0] == TurboCASUtil.OutfitCategory.SPECIAL and current_outfit[1] == 0): continue current_outfit = get_modified_outfit(sim) if sim_ev(sim).on_toilet_outfit_state == OutfitStateBeforeToiletUse.UNDERWEAR: set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), TurboCASUtil.BodyType.LOWER_BODY, get_sim_underwear_data(sim, current_outfit)[1]) set_sim_bottom_underwear_state(sim, True) try: TurboSimUtil.CAS.refresh_outfit(sim) except: continue elif sim_ev(sim).on_toilet_outfit_state == OutfitStateBeforeToiletUse.OUTFIT and has_sim_outfit_bottom(sim, outfit_category_and_index=current_outfit): set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), TurboCASUtil.BodyType.LOWER_BODY, get_sim_outfit_cas_part_from_bodytype(sim, TurboCASUtil.BodyType.LOWER_BODY, outfit_category_and_index=current_outfit)) set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), TurboCASUtil.BodyType.TIGHTS, get_sim_outfit_cas_part_from_bodytype(sim, TurboCASUtil.BodyType.TIGHTS, outfit_category_and_index=current_outfit)) set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), TurboCASUtil.BodyType.SOCKS, get_sim_outfit_cas_part_from_bodytype(sim, TurboCASUtil.BodyType.SOCKS, outfit_category_and_index=current_outfit)) set_sim_bottom_underwear_state(sim, True) try: TurboSimUtil.CAS.refresh_outfit(sim) except: continue elif is_sim_outfit_fullbody(sim, outfit_category_and_index=current_outfit): dress_up_outfit(sim) else: dress_up_outfit(sim) sim_ev(sim).on_toilet_outfit_state = int(OutfitStateBeforeToiletUse.NONE) if has_sims_peeing is False: HAS_SIMS_USING_TOILET = False
def undress_sim(sim_identifier, actor_data, is_npc_only=False): sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) if is_npc_only is False: undressing_type = get_sex_setting(SexSetting.SEX_UNDRESSING_TYPE, variable_type=int) else: undressing_type = get_sex_setting(SexSetting.NPC_SEX_UNDRESSING_TYPE, variable_type=int) if undressing_type == SexUndressingLevelSetting.DISABLED: return update_nude_body_data(sim_info) top_body_state = get_sim_actual_body_state( sim_info, TurboCASUtil.BodyType.UPPER_BODY) bottom_body_state = get_sim_actual_body_state( sim_info, TurboCASUtil.BodyType.LOWER_BODY) hands_body_state = get_sim_actual_body_state(sim_info, TurboCASUtil.BodyType.GLOVES) feet_body_state = get_sim_actual_body_state(sim_info, TurboCASUtil.BodyType.SHOES) if undressing_type == SexUndressingLevelSetting.COMPLETE: if top_body_state == BodyState.NUDE and ( bottom_body_state == BodyState.NUDE and hands_body_state == BodyState.NUDE) and feet_body_state == BodyState.NUDE: return if get_nudity_setting( NuditySetting.COMPLETE_UNDRESSING_TYPE, variable_type=int) == CompleteUndressingTypeSetting.DEFAULT: reset_sim_bathing_outfits(sim_info) copy_outfit_to_special( sim_info, set_special_outfit=True, outfit_category_and_index=(TurboCASUtil.OutfitCategory.BATHING, 0), override_outfit_parts={ 115: sim_ev(sim_info).nude_outfit_parts[115] }) else: copy_outfit_to_special( sim_info, set_special_outfit=True, outfit_category_and_index=get_modified_outfit(sim_info), override_outfit_parts={ TurboCASUtil.BodyType.UPPER_BODY: sim_ev(sim_info).nude_outfit_parts[ TurboCASUtil.BodyType.UPPER_BODY], TurboCASUtil.BodyType.LOWER_BODY: sim_ev(sim_info).nude_outfit_parts[ TurboCASUtil.BodyType.LOWER_BODY], TurboCASUtil.BodyType.SHOES: sim_ev(sim_info).nude_outfit_parts[ TurboCASUtil.BodyType.SHOES], TurboCASUtil.BodyType.FULL_BODY: 0, TurboCASUtil.BodyType.HAT: 0, TurboCASUtil.BodyType.CUMMERBUND: 0, TurboCASUtil.BodyType.EARRINGS: 0, TurboCASUtil.BodyType.GLASSES: 0, TurboCASUtil.BodyType.NECKLACE: 0, TurboCASUtil.BodyType.GLOVES: 0, TurboCASUtil.BodyType.WRIST_LEFT: 0, TurboCASUtil.BodyType.WRIST_RIGHT: 0, TurboCASUtil.BodyType.SOCKS: 0, TurboCASUtil.BodyType.TIGHTS: 0, 115: sim_ev(sim_info).nude_outfit_parts[115] }) set_sim_top_naked_state(sim_info, True) set_sim_bottom_naked_state(sim_info, True) set_sim_top_underwear_state(sim_info, False) set_sim_bottom_underwear_state(sim_info, False) return if actor_data.is_forcing_nude_hands( ) and hands_body_state != BodyState.NUDE: strip_outfit(sim_info, strip_bodytype=TurboCASUtil.BodyType.GLOVES) if actor_data.is_forcing_nude_feet() and feet_body_state != BodyState.NUDE: strip_outfit(sim_info, strip_bodytype=TurboCASUtil.BodyType.SHOES) if actor_data.get_naked_type() == SexNakedType.ALL: if top_body_state == BodyState.NUDE and bottom_body_state == BodyState.NUDE: return if strip_outfit(sim_info, strip_type_top=StripType.NUDE, strip_type_bottom=StripType.NUDE): set_sim_top_naked_state(sim_info, True) set_sim_bottom_naked_state(sim_info, True) set_sim_top_underwear_state(sim_info, False) set_sim_bottom_underwear_state(sim_info, False) elif actor_data.get_naked_type() == SexNakedType.TOP: if top_body_state == BodyState.NUDE: return has_bottom_underwear_on = is_underwear_outfit( get_modified_outfit(sim_info)[0]) and is_sim_bottom_underwear( sim_info) strip_type_bottom = StripType.NONE if not is_sim_outfit_fullbody( sim_info ) else StripType.UNDERWEAR if has_bottom_underwear_on else StripType.NUDE if strip_outfit(sim_info, strip_type_top=StripType.NUDE, strip_type_bottom=strip_type_bottom): set_sim_top_naked_state(sim_info, True) set_sim_bottom_naked_state(sim_info, strip_type_bottom == StripType.NUDE) set_sim_top_underwear_state(sim_info, False) set_sim_bottom_underwear_state( sim_info, strip_type_bottom == StripType.UNDERWEAR) elif actor_data.get_naked_type() == SexNakedType.BOTTOM: if bottom_body_state == BodyState.NUDE: return has_top_underwear_on = TurboSimUtil.Gender.is_female(sim_info) and ( is_underwear_outfit(get_modified_outfit(sim_info)[0]) and is_sim_top_underwear(sim_info)) strip_type_top = StripType.NONE if not is_sim_outfit_fullbody( sim_info ) else StripType.UNDERWEAR if has_top_underwear_on else StripType.NUDE if strip_outfit(sim_info, strip_type_top=strip_type_top, strip_type_bottom=StripType.NUDE): set_sim_top_naked_state(sim_info, strip_type_top == StripType.NUDE) set_sim_bottom_naked_state(sim_info, True) set_sim_top_underwear_state(sim_info, strip_type_top == StripType.UNDERWEAR) set_sim_bottom_underwear_state(sim_info, False)
def on_interaction_start(cls, interaction_instance): sim = cls.get_interaction_target(interaction_instance) basic_debug_info = '' sim_position = TurboSimUtil.Location.get_position(sim) basic_debug_info += 'X: ' + str(sim_position.x) + '\n' basic_debug_info += 'Y: ' + str(sim_position.y) + '\n' basic_debug_info += 'Z: ' + str(sim_position.z) + '\n' basic_debug_info += '\nMale Gender Pref: ' + str( TurboSimUtil.Gender.get_gender_preference( sim, TurboSimUtil.Gender.MALE)) + '\n' basic_debug_info += 'Female Gender Pref: ' + str( TurboSimUtil.Gender.get_gender_preference( sim, TurboSimUtil.Gender.FEMALE)) + '\n' basic_debug_info += '\nCurrent Occult: ' + str( TurboSimUtil.Occult.get_current_occult_type(sim).name) + '\n' basic_debug_info += 'Occults List: ' + str([ str(occult.name) for occult in TurboSimUtil.Occult.get_occult_types(sim) ])[1:-1] + '\n' if TurboSimUtil.Component.has_component( sim, TurboComponentUtil.ComponentType.BUFF): basic_debug_info += '\nActive Buffs: ' + str([ str(buff.__class__.__name__) for buff in TurboSimUtil.Buff.get_all_buffs_gen(sim) ])[1:-1] + '\n' basic_debug_info += '\nTraits: ' + str([ str(trait.__name__) for trait in TurboSimUtil.Trait.get_all_traits_gen(sim) ])[1:-1] + '\n' basic_debug_info += '\nActive Situations: ' + str([ str( SimSituation( TurboResourceUtil.Resource.get_guid64(situation)).name) for situation in TurboSimUtil.Situation.get_active_situations(sim) ])[1:-1] + '\n' basic_debug_info += '\nRunning Interactions: ' + str( TurboSimUtil.Interaction.get_running_interactions_ids( sim))[1:-1] + '\n' basic_debug_info += '\nQueued Interactions: ' + str( TurboSimUtil.Interaction.get_queued_interactions_ids( sim))[1:-1] + '\n' native_current_outfit = TurboSimUtil.CAS.get_current_outfit(sim) modified_current_outfit = get_modified_outfit(sim) saved_current_outfit = (sim_ev(sim).current_outfit_category, sim_ev(sim).current_outfit_index) saved_previous_outfit = get_previous_modified_outfit(sim) basic_debug_info += '\nNative Current Outfit: ' + str( TurboCASUtil.OutfitCategory.get_outfit_category( native_current_outfit[0]).name) + ', ' + str( native_current_outfit[1]) + '\n' basic_debug_info += 'Modified Current Outfit: ' + str( TurboCASUtil.OutfitCategory.get_outfit_category( modified_current_outfit[0]).name) + ', ' + str( modified_current_outfit[1]) + '\n' basic_debug_info += 'Saved Current Outfit: ' + str( TurboCASUtil.OutfitCategory.get_outfit_category( saved_current_outfit[0]).name) + ', ' + str( saved_current_outfit[1]) + '\n' basic_debug_info += 'Saved Previous Outfit: ' + str( TurboCASUtil.OutfitCategory.get_outfit_category( saved_previous_outfit[0]).name) + ', ' + str( saved_previous_outfit[1]) + '\n' basic_debug_info += '\nMotives Data:\n' basic_debug_info += ' Hunger: ' + str( get_sim_motive_value(sim, SimMotive.HUNGER)) + '\n' basic_debug_info += ' Energy: ' + str( get_sim_motive_value(sim, SimMotive.ENERGY)) + '\n' basic_debug_info += ' Bladder: ' + str( get_sim_motive_value(sim, SimMotive.BLADDER)) + '\n' basic_debug_info += ' Fun: ' + str( get_sim_motive_value(sim, SimMotive.FUN)) + '\n' basic_debug_info += ' Hygiene: ' + str( get_sim_motive_value(sim, SimMotive.HYGIENE)) + '\n' basic_debug_info += ' Social: ' + str( get_sim_motive_value(sim, SimMotive.SOCIAL)) + '\n' basic_debug_info += ' Vampire Power: ' + str( get_sim_motive_value(sim, SimMotive.VAMPIRE_POWER)) + '\n' basic_debug_info += ' Vampire Thirst: ' + str( get_sim_motive_value(sim, SimMotive.VAMPIRE_THIRST)) + '\n' basic_debug_info += ' PlantSim Water: ' + str( get_sim_motive_value(sim, SimMotive.PLANTSIM_WATER)) + '\n' basic_debug_info += 'Is Leaving Lot: ' + str( TurboSimUtil.Spawner.is_leaving(sim)) + '\n' display_notification(text=basic_debug_info, title=str(TurboSimUtil.Name.get_name(sim)[0]) + ' ' + str(TurboSimUtil.Name.get_name(sim)[1]) + ' General Debug', secondary_icon=sim)
def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) if get_nudity_setting( NuditySetting.COMPLETE_UNDRESSING_TYPE, variable_type=int) == CompleteUndressingTypeSetting.DEFAULT: reset_sim_bathing_outfits(sim) strip_result = copy_outfit_to_special( sim, set_special_outfit=False, outfit_category_and_index=(TurboCASUtil.OutfitCategory.BATHING, 0), override_outfit_parts={ 115: sim_ev(sim).nude_outfit_parts[115] }) else: strip_result = copy_outfit_to_special( sim, set_special_outfit=False, outfit_category_and_index=get_modified_outfit(sim), override_outfit_parts={ TurboCASUtil.BodyType.UPPER_BODY: sim_ev(sim).nude_outfit_parts[ TurboCASUtil.BodyType.UPPER_BODY], TurboCASUtil.BodyType.LOWER_BODY: sim_ev(sim).nude_outfit_parts[ TurboCASUtil.BodyType.LOWER_BODY], TurboCASUtil.BodyType.SHOES: sim_ev(sim).nude_outfit_parts[TurboCASUtil.BodyType.SHOES], TurboCASUtil.BodyType.FULL_BODY: 0, TurboCASUtil.BodyType.HAT: 0, TurboCASUtil.BodyType.CUMMERBUND: 0, TurboCASUtil.BodyType.EARRINGS: 0, TurboCASUtil.BodyType.GLASSES: 0, TurboCASUtil.BodyType.NECKLACE: 0, TurboCASUtil.BodyType.GLOVES: 0, TurboCASUtil.BodyType.WRIST_LEFT: 0, TurboCASUtil.BodyType.WRIST_RIGHT: 0, TurboCASUtil.BodyType.SOCKS: 0, TurboCASUtil.BodyType.TIGHTS: 0, 115: sim_ev(sim).nude_outfit_parts[115] }) if strip_result is True: set_sim_top_naked_state(sim, True) set_sim_bottom_naked_state(sim, True) set_sim_top_underwear_state(sim, False) set_sim_bottom_underwear_state(sim, False) nudity_notification( text=2191667249, text_tokens=(sim, ), icon=sim, sims=(sim, ), is_autonomy=cls.get_interaction_source(interaction_instance) == TurboInteractionUtil.InteractionSource.AUTONOMY) return TurboSimUtil.CAS.get_change_outfit_element( sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), do_spin=True, interaction=interaction_instance, dirty_outfit=True)
def _wickedwhims_undress_swimwear_on_jumping_to_water(interaction_instance): if not get_nudity_setting(NuditySetting.NUDITY_SWITCH_STATE, variable_type=bool): return interaction_guid = TurboResourceUtil.Resource.get_guid64( interaction_instance) if interaction_guid not in JUMPING_INTERACTIONS: return sim_info = TurboManagerUtil.Sim.get_sim_info( TurboInteractionUtil.get_interaction_sim(interaction_instance)) if TurboSimUtil.Age.is_younger_than(sim_info, TurboSimUtil.Age.CHILD): return if get_modified_outfit( sim_info)[0] != TurboCASUtil.OutfitCategory.SWIMWEAR: return if is_sim_outfit_fullbody(sim_info): return if random.uniform(0, 1) > 0.1: return has_stripped = False if TurboSimUtil.Gender.is_male(sim_info): if get_sim_body_state(sim_info, 7) != BodyState.OUTFIT: return strip_result = strip_outfit(sim_info, strip_type_bottom=StripType.NUDE) if strip_result is True: set_sim_bottom_naked_state(sim_info, True) has_stripped = True else: can_undress_top = get_sim_body_state(sim_info, 6) == BodyState.OUTFIT can_undress_bottom = get_sim_body_state(sim_info, 7) == BodyState.OUTFIT undress_top = False undress_bottom = False if can_undress_top is True and can_undress_bottom is True: if bool(random.getrandbits(1)): undress_top = True else: undress_bottom = True elif can_undress_top is True: undress_top = True elif can_undress_bottom is True: undress_bottom = True if undress_top is False and undress_bottom is False: return if undress_top is True: strip_result = strip_outfit(sim_info, strip_type_top=StripType.NUDE) if strip_result is True: set_sim_top_naked_state(sim_info, True) has_stripped = True elif undress_bottom is True: strip_result = strip_outfit(sim_info, strip_type_bottom=StripType.NUDE) if strip_result is True: set_sim_bottom_naked_state(sim_info, True) has_stripped = True if has_stripped is True: display_notification(text=267480274, text_tokens=(sim_info, ), secondary_icon=sim_info) if not has_sim_permission_for_nudity(sim_info)[0]: add_sim_buff(sim_info, SimBuff.OBJECT_JUMPSTAND_SWIMSUITMALFUNCTION) if random.uniform(0, 1) <= 0.45: add_sim_buff(sim_info, SimBuff.WW_NUDITY_TEMPORARY_BRAVE)