def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) is_autonomy = cls.get_interaction_source( interaction_instance ) == TurboInteractionUtil.InteractionSource.AUTONOMY if TurboSimUtil.Sim.is_player(sim) and is_autonomy: text_tokens = [sim] if is_autonomy is True and sim_ev( sim).last_nudity_denied_permissions is not None: for denied_permission in sim_ev( sim).last_nudity_denied_permissions: if denied_permission == NudityPermissionDenied.NOT_AT_HOME: text_tokens.append(2434379342) elif denied_permission == NudityPermissionDenied.OUTSIDE: text_tokens.append(14125364) else: if denied_permission == NudityPermissionDenied.TOO_MANY_SIMS_AROUND: text_tokens.append(902300171) for _ in range(11 - len(text_tokens)): text_tokens.append(0) nudity_notification(text=2998371344, text_tokens=text_tokens, icon=sim, sims=(sim, ), is_autonomy=is_autonomy) sim_ev(sim).last_nudity_denied_permissions = None outfit_category_and_index = dress_up_outfit(sim, skip_outfit_change=True) return TurboSimUtil.CAS.get_change_outfit_element( sim, outfit_category_and_index, do_spin=True, interaction=interaction_instance, dirty_outfit=True)
def trigger_story_progression(): story_progression_debug_sims_count = 0 story_progression_debug_data = list() for sim_info in TurboManagerUtil.Sim.get_all_sim_info_gen(humans=True, pets=False): if TurboSimUtil.Age.is_younger_than(sim_info, TurboSimUtil.Age.CHILD): pass if not TurboSimUtil.Component.has_component( sim_info, TurboComponentUtil.ComponentType.STATISTIC): pass if has_sim_reached_max_nudity_skill_level(sim_info): pass nudity_skill_value = get_sim_nudity_skill_level( sim_info) + get_sim_nudity_skill_progress(sim_info) influence_amount = _update_and_get_influence_score(sim_info) if influence_amount > 0: increase_sim_nudity_skill(sim_info, influence_amount) story_progression_debug_data.append( (TurboSimUtil.Name.get_name(sim_info), nudity_skill_value, influence_amount)) story_progression_debug_sims_count += 1 from wickedwhims.debug.debug_controller import is_main_debug_flag_enabled if is_main_debug_flag_enabled(): debug_text = '' for ((sim_first_name, sim_last_name), current_skill_value, influence_amount) in story_progression_debug_data: debug_text += '\n' + str(sim_first_name) + ' ' + str( sim_last_name) + ': ' + str( '%.2f' % current_skill_value) + ' -> ' + str( '%.2f' % (current_skill_value + influence_amount / 100)) nudity_notification(text='Checked Sims: ' + str(story_progression_debug_sims_count) + '\nLeveled Sims:' + debug_text, title='Nudity Story Progression')
def _has_permission_to_undress(interaction_sim, interaction_context): (has_permission, denied_permissions) = has_sim_permission_for_nudity( interaction_sim, nudity_setting_test=True) if has_permission is True: return True is_autonomy = interaction_context == TurboInteractionUtil.InteractionSource.AUTONOMY if is_autonomy is True: return False text_tokens = [interaction_sim] for denied_permission in denied_permissions: if denied_permission == NudityPermissionDenied.NOT_AT_HOME: text_tokens.append(2434379342) elif denied_permission == NudityPermissionDenied.OUTSIDE: text_tokens.append(14125364) else: if denied_permission == NudityPermissionDenied.TOO_MANY_SIMS_AROUND: text_tokens.append(902300171) for _ in range(11 - len(text_tokens)): text_tokens.append(0) nudity_notification(text=2447814946, text_tokens=text_tokens, icon=interaction_sim, sims=(interaction_sim, ), is_autonomy=is_autonomy) return False
def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) top_body_state = get_sim_body_state(sim, TurboCASUtil.BodyType.UPPER_BODY) bottom_body_state = get_sim_body_state( sim, TurboCASUtil.BodyType.LOWER_BODY) strip_type_top = StripType.NUDE if top_body_state == BodyState.UNDERWEAR else StripType.NONE strip_type_bottom = StripType.NUDE if bottom_body_state == BodyState.UNDERWEAR else StripType.NONE strip_result = strip_outfit(sim, strip_type_top=strip_type_top, strip_type_bottom=strip_type_bottom, skip_outfit_change=True, save_original=False) 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=3110156917, 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_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): sim = cls.get_interaction_sim(interaction_instance) target = cls.get_interaction_target(interaction_instance) _flash_sim_result(sim, target) increase_sim_ww_statistic(sim, 'times_flashed_top') nudity_notification( text=2396534391, text_tokens=(sim, target), icon=sim, sims=(sim, target), is_autonomy=cls.get_interaction_source(interaction_instance) == TurboInteractionUtil.InteractionSource.AUTONOMY) return True
def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) put_sim_underwear_on(sim, skip_outfit_change=True) nudity_notification( text=1950586772, 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): sim = cls.get_interaction_sim(interaction_instance) target = cls.get_interaction_target(interaction_instance) _flash_sim_result(sim, target) increase_sim_ww_statistic(sim, 'times_flashed_bottom') set_sim_penis_state(sim, True, 5) nudity_notification( text=1399400780, text_tokens=(sim, target), icon=sim, sims=(sim, target), is_autonomy=cls.get_interaction_source(interaction_instance) == TurboInteractionUtil.InteractionSource.AUTONOMY) return True
def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) strip_result = strip_outfit(sim, strip_bodytype=8, skip_outfit_change=True) if strip_result is True: nudity_notification( text=4281967896, 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_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) strip_result = strip_outfit(sim, strip_type_top=StripType.NUDE, skip_outfit_change=True, save_original=False) if strip_result is True: set_sim_top_naked_state(sim, True) set_sim_top_underwear_state(sim, False) nudity_notification( text=1357018163, 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_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)