def update_sim_nudity_skill_on_mirror_use(sim_identifier):
    if sim_ev(sim_identifier
              ).is_running_mirror_nudity_skill_interaction is False:
        return
    if not TurboSimUtil.Interaction.is_running_interaction(
            sim_identifier, SimInteraction.WW_MIRROR_ADMIRE_YOUR_BODY):
        sim_ev(
            sim_identifier).is_running_mirror_nudity_skill_interaction = False
        return
    sim_outfit_level = get_sim_outfit_level(sim_identifier)
    sim_nudity_skill_level = get_sim_nudity_skill_level(sim_identifier)
    if sim_outfit_level == OutfitLevel.NUDE or sim_outfit_level == OutfitLevel.BATHING:
        increase_sim_nudity_skill(
            sim_identifier,
            get_nudity_skill_points_modifier(
                NuditySkillIncreaseReason.MIRROR_NAKED_OUTFIT) /
            sim_nudity_skill_level,
            extra_fatigue=0.2,
            reason=NuditySkillIncreaseReason.MIRROR_NAKED_OUTFIT)
    else:
        increase_sim_nudity_skill(
            sim_identifier,
            get_nudity_skill_points_modifier(
                NuditySkillIncreaseReason.MIRROR_REVEALING_OUTFIT) /
            sim_nudity_skill_level,
            extra_fatigue=0.05,
            reason=NuditySkillIncreaseReason.MIRROR_REVEALING_OUTFIT)
Esempio n. 2
0
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')
Esempio n. 3
0
def _wickedwhims_increase_sim_nudity_skill_on_related_interactions(interaction_instance):
    if not get_nudity_setting(NuditySetting.NUDITY_SWITCH_STATE, variable_type=bool):
        return
    interaction_guid = TurboResourceUtil.Resource.get_guid64(interaction_instance)
    sim = TurboInteractionUtil.get_interaction_sim(interaction_instance)
    for (interaction_id, direct_target, skill_points) in NUDE_REWARD_INTERACTION_IDS:
        if interaction_id != interaction_guid:
            continue
        if direct_target is True:
            target_sim = TurboInteractionUtil.get_interaction_target(interaction_instance) or sim
            if target_sim is None:
                target_sim = sim
        else:
            target_sim = sim
        if target_sim is None:
            return
        sim_info = TurboManagerUtil.Sim.get_sim_info(target_sim)
        if sim_info is None:
            return
        target_outfit_level = get_sim_outfit_level(target_sim)
        target_nudity_skill_level = get_sim_nudity_skill_level(target_sim)
        if target_outfit_level == OutfitLevel.NUDE or target_outfit_level == OutfitLevel.BATHING:
            increase_sim_nudity_skill(target_sim, skill_points, extra_fatigue=2.0)
        else:
            if target_outfit_level == OutfitLevel.REVEALING or target_outfit_level == OutfitLevel.UNDERWEAR:
                increase_sim_nudity_skill(target_sim, skill_points/target_nudity_skill_level, extra_fatigue=2.0)
Esempio n. 4
0
 def on_interaction_start(cls, interaction_instance):
     sim = cls.get_interaction_sim(interaction_instance)
     target = cls.get_interaction_target(interaction_instance)
     sim_skill_level = get_sim_nudity_skill_level(sim)
     target_skill_level = get_sim_nudity_skill_level(target)
     if sim_skill_level > target_skill_level:
         if TurboSimUtil.Sim.is_npc(target):
             apply_nudity_skill_influence(target,
                                          sim_skill_level / 100,
                                          overall_limit=2.5)
         else:
             increase_sim_nudity_skill(target,
                                       sim_skill_level,
                                       extra_fatigue=2.5)
     elif sim_skill_level < target_skill_level:
         if TurboSimUtil.Sim.is_npc(sim):
             apply_nudity_skill_influence(sim,
                                          target_skill_level / 100,
                                          overall_limit=2.5)
         else:
             increase_sim_nudity_skill(sim,
                                       target_skill_level,
                                       extra_fatigue=2.5)
     if TurboSimUtil.Gender.get_gender(sim) in get_sim_preferenced_genders(
             target):
         change_sim_desire_level(target, 5)
     if TurboSimUtil.Gender.get_gender(
             target) in get_sim_preferenced_genders(sim):
         change_sim_desire_level(sim, 5)
     increase_sim_ww_statistic(sim, 'times_talked_exhibitionism')
     increase_sim_ww_statistic(target, 'times_talked_exhibitionism')
     return True
def update_sim_nudity_skill_on_seeing_nudity(sim, target):
    skill_points = _get_sim_nudity_value(
        target, sim) * get_nudity_skill_points_modifier(
            NuditySkillIncreaseReason.SEEING_NUDITY)
    if TurboSimUtil.Age.get_age(
            sim) == TurboSimUtil.Age.CHILD and is_sim_naturist(target):
        apply_nudity_skill_influence(sim, skill_points, overall_limit=200.0)
        return
    increase_sim_nudity_skill(sim,
                              skill_points,
                              extra_fatigue=0.05,
                              reason=NuditySkillIncreaseReason.SEEING_NUDITY)
Esempio n. 6
0
def _flash_sim_result(sim, target):
    sim_ev(sim).is_flashing = True
    increase_sim_nudity_skill(sim,
                              get_nudity_skill_points_modifier(
                                  NuditySkillIncreaseReason.FLASHING_BODY),
                              extra_fatigue=5.0)
    is_prefered_gender = TurboSimUtil.Gender.get_gender(
        sim) in get_sim_preferenced_genders(target)
    if is_prefered_gender is True:
        apply_nudity_skill_influence(target, 0.05, overall_limit=6.5)
        change_sim_desire_level(target, 10)
        change_sim_desire_level(sim, 4.5)
    if not has_sim_buff(sim, SimBuff.WW_NUDITY_HAS_FLASHED):
        add_sim_buff(sim, SimBuff.WW_NUDITY_HAS_FLASHED)
Esempio n. 7
0
 def on_interaction_start(cls, interaction_instance):
     sim = cls.get_interaction_sim(interaction_instance)
     target = cls.get_interaction_target(interaction_instance)
     if TurboSimUtil.Sim.is_npc(target):
         apply_nudity_skill_influence(target, 0.1, overall_limit=4.1)
     else:
         increase_sim_nudity_skill(
             target,
             get_nudity_skill_points_modifier(
                 NuditySkillIncreaseReason.SOCIAL_COMPLIMENT),
             extra_fatigue=2.5)
     if TurboSimUtil.Gender.get_gender(sim) in get_sim_preferenced_genders(
             target):
         change_sim_desire_level(target, 10)
         change_sim_desire_level(sim, 5)
     increase_sim_ww_statistic(sim, 'times_talked_exhibitionism')
     return True
Esempio n. 8
0
 def on_interaction_start(cls, interaction_instance):
     sim = cls.get_interaction_sim(interaction_instance)
     target = cls.get_interaction_target(interaction_instance)
     sim_skill_level = get_sim_nudity_skill_level(sim)
     if TurboSimUtil.Sim.is_npc(target):
         apply_nudity_skill_influence(target,
                                      0.05 * sim_skill_level,
                                      overall_limit=7.1)
         if random.uniform(0, 1) <= 0.1:
             add_sim_trait(target, SimTrait.WW_EXHIBITIONIST)
     else:
         increase_sim_nudity_skill(
             target,
             get_nudity_skill_points_modifier(
                 NuditySkillIncreaseReason.SOCIAL_CONVINCE),
             extra_fatigue=3.1)
     if TurboSimUtil.Gender.get_gender(sim) in get_sim_preferenced_genders(
             target):
         change_sim_desire_level(target, 10)
         change_sim_desire_level(sim, 5)
     increase_sim_ww_statistic(sim, 'times_talked_exhibitionism')
     increase_sim_ww_statistic(target, 'times_talked_exhibitionism')
     return True
def update_sim_nudity_skill_on_active_nudity(sim_identifier):
    if TurboSimUtil.Age.is_younger_than(sim_identifier,
                                        TurboSimUtil.Age.CHILD):
        return
    if CNSimUtils.can_have_sex(sim_identifier):
        return
    if is_sim_in_sex(sim_identifier) or is_sim_going_to_sex(sim_identifier):
        return
    if not is_sim_available(sim_identifier):
        return
    sim_outfit_level = get_sim_outfit_level(sim_identifier)
    if sim_outfit_level == OutfitLevel.OUTFIT:
        return
    sims_around_value = _get_sims_around_value(sim_identifier, max_sims=6)
    if sim_outfit_level == OutfitLevel.NUDE:
        increase_sim_nudity_skill(
            sim_identifier,
            sims_around_value * get_nudity_skill_points_modifier(
                NuditySkillIncreaseReason.BEING_IN_NAKED_OUTFIT),
            extra_fatigue=0.05,
            reason=NuditySkillIncreaseReason.BEING_IN_NAKED_OUTFIT)
    elif sim_outfit_level == OutfitLevel.BATHING:
        sim_nudity_skill_level = get_sim_nudity_skill_level(sim_identifier)
        increase_sim_nudity_skill(
            sim_identifier,
            sims_around_value * (get_nudity_skill_points_modifier(
                NuditySkillIncreaseReason.BEING_IN_BATHING_OUTFIT) /
                                 sim_nudity_skill_level),
            extra_fatigue=0.15,
            reason=NuditySkillIncreaseReason.BEING_IN_BATHING_OUTFIT)
    elif sim_outfit_level == OutfitLevel.REVEALING or sim_outfit_level == OutfitLevel.UNDERWEAR:
        sim_nudity_skill_level = get_sim_nudity_skill_level(sim_identifier)
        increase_sim_nudity_skill(
            sim_identifier,
            sims_around_value *
            (get_nudity_skill_points_modifier(
                NuditySkillIncreaseReason.BEING_IN_REVEALING_OUTFIT) /
             (sim_nudity_skill_level * sim_nudity_skill_level)),
            extra_fatigue=0.15,
            reason=NuditySkillIncreaseReason.BEING_IN_REVEALING_OUTFIT)