Ejemplo n.º 1
0
 def random_sex_sim_picker_callback(dialog):
     if pre_sex_handler is None:
         return False
     if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
         clear_sims_sex_extra_data(
             tuple(pre_sex_handler.get_actors_sim_info_gen()))
         return False
     picked_sim_id = TurboUIUtil.SimPickerDialog.get_tag_result(dialog)
     if not picked_sim_id:
         clear_sims_sex_extra_data(
             tuple(pre_sex_handler.get_actors_sim_info_gen()))
         return False
     picked_sim = TurboManagerUtil.Sim.get_sim_info(int(picked_sim_id))
     if picked_sim is None:
         clear_sims_sex_extra_data(
             tuple(pre_sex_handler.get_actors_sim_info_gen()))
         return False
     pre_sex_handler.add_sim(picked_sim)
     random_animation = get_random_animation(
         pre_sex_handler.get_object_identifier(),
         tuple(pre_sex_handler.get_actors_sim_info_gen()))
     if random_animation is None:
         display_ok_dialog(text=2459296019, title=1890248379)
         return False
     pre_sex_handler.set_animation_instance(random_animation)
     start_sex_interaction_from_pre_sex_handler(pre_sex_handler)
     return True
Ejemplo n.º 2
0
def _join_to_sex_single_interaction(sex_category_type, interaction_sim, interaction_target):
    '''
    :param interaction_sim: Sim that is joining to an existing sex interaction
    :param interaction_target: Sim that owns an existing interaction
    '''
    active_sex_handler = sim_ev(interaction_target).active_sex_handler
    if active_sex_handler is None:
        return False
    pre_sex_handler = active_sex_handler.get_pre_sex_handler(is_joining=True)
    pre_sex_handler.add_sim(interaction_sim)
    if sex_category_type is not None:
        sex_allowed = is_sim_allowed_for_animation(tuple(pre_sex_handler.get_actors_sim_info_gen()), sex_category_type, is_joining=True)
        if not sex_allowed:
            display_not_allowed_message(sex_allowed)
            return False
    if sex_category_type is not None:
        open_join_sex_animations_picker_dialog(pre_sex_handler, (interaction_sim,), sex_category_type, flip_relationship_check=True)
    else:
        random_animation = get_random_animation(pre_sex_handler.get_object_identifier(), tuple(pre_sex_handler.get_actors_sim_info_gen()))
        if random_animation is None:
            display_ok_dialog(text=1395546180, title=1890248379)
            return False
        pre_sex_handler.set_animation_instance(random_animation)
        join_sex_interaction_from_pre_sex_handler(pre_sex_handler, (interaction_sim,), flip_relationship_check=True)
    return True
Ejemplo n.º 3
0
def open_start_sex_animations_picker_dialog(pre_sex_handler):
    @exception_watch()
    def animations_picker_callback(dialog):
        if pre_sex_handler is None:
            return False
        if not TurboUIUtil.ObjectPickerDialog.get_response_result(dialog):
            open_start_sex_animations_category_picker_dialog(pre_sex_handler)
            return False
        animation_instance = TurboUIUtil.ObjectPickerDialog.get_tag_result(
            dialog)
        pre_sex_handler.set_animation_instance(animation_instance)
        start_sex_interaction_from_pre_sex_handler(pre_sex_handler)
        return True

    genders_list = list()
    for sim_info in pre_sex_handler.get_actors_sim_info_gen():
        genders_list.append(get_sim_sex_gender(sim_info))
    animations_list = get_animations_with_params(
        pre_sex_handler.get_interaction_type(),
        pre_sex_handler.get_object_identifier(), genders_list)
    animations_rows = list()
    for animation in animations_list:
        animations_rows.append(animation.get_picker_row())
    if len(animations_rows) > 1:
        animations_rows.insert(
            0,
            ChoiceListRandomAnimationPickerRow(
                pre_sex_handler, pre_sex_handler.get_interaction_type()))
    if len(get_available_sex_animations()) <= 4:
        display_ok_dialog(text=1066517691, title=3113927949)
    display_picker_list_dialog(title=get_sex_category_animations_stbl_name(
        pre_sex_handler.get_interaction_type()),
                               picker_rows=animations_rows,
                               callback=animations_picker_callback)
Ejemplo n.º 4
0
 def on_interaction_start(cls, interaction_instance):
     active_sex_handler = sim_ev(cls.get_interaction_sim(interaction_instance)).active_sex_handler
     random_animation = get_random_animation(active_sex_handler.get_object_identifier(), tuple(active_sex_handler.get_actors_sim_info_gen()))
     if random_animation is None:
         display_ok_dialog(text=1395546180, title=1890248379)
         return False
     active_sex_handler.set_animation_instance(random_animation, is_animation_change=True, is_manual=True)
     active_sex_handler.play(is_animation_change=True)
     return True
def change_player_sex_interaction_location(active_sex_handler,
                                           location_object,
                                           interaction_context=None,
                                           interaction_type=None):
    object_identifier = SexInteractionLocationType.get_location_identifier(
        location_object)
    if TurboTypesUtil.Objects.is_game_object(location_object):
        location_object = TurboObjectUtil.GameObject.get_parent(
            location_object)
        game_object_id = TurboResourceUtil.Resource.get_id(location_object)
        location_position = get_object_fixed_position(location_object)
        location_level = TurboMathUtil.Location.get_location_level(
            TurboObjectUtil.Position.get_location(location_object))
        location_angle = TurboMathUtil.Orientation.convert_orientation_to_angle(
            TurboMathUtil.Location.get_location_orientation(
                TurboObjectUtil.Position.get_location(location_object)))
        location_route_position = TurboObjectUtil.Position.get_position(
            location_object) + get_object_fixed_direction(location_object)
    elif interaction_context is not None:
        game_object_id = -1
        location_position = get_floor_object_position(location_object,
                                                      interaction_context)
        location_level = get_floor_object_level(location_object,
                                                interaction_context)
        location_angle = random.randint(0, 360)
        location_route_position = location_position
    else:
        return
    if interaction_type is not None:
        open_change_sex_location_animations_picker_dialog(
            active_sex_handler, interaction_type, object_identifier,
            game_object_id, 0, location_position.x, location_position.y,
            location_position.z, location_level, location_angle,
            location_route_position.x, location_route_position.y,
            location_route_position.z, location_level)
    else:
        random_animation = get_random_animation(
            object_identifier,
            tuple(active_sex_handler.get_actors_sim_info_gen()))
        if random_animation is None:
            display_ok_dialog(text=2459296019, title=1890248379)
            return
        active_sex_handler.set_animation_instance(random_animation,
                                                  is_manual=True)
        active_sex_handler.set_object_identifier(object_identifier)
        active_sex_handler.set_game_object_id(game_object_id)
        active_sex_handler.set_object_height(0)
        active_sex_handler.set_location(location_position.x,
                                        location_position.y,
                                        location_position.z, location_level,
                                        location_angle)
        active_sex_handler.set_route_position(location_route_position.x,
                                              location_route_position.y,
                                              location_route_position.z,
                                              location_level)
        active_sex_handler.reassign_actors()
        active_sex_handler.restart()
Ejemplo n.º 6
0
def _import_settings_menu():
    def _import_done_dialog_callback(_):
        _open_settings_import_export_menu()

    def _import_settings_callback(dialog):
        if not TurboUIUtil.ObjectPickerDialog.get_response_result(dialog):
            _open_settings_import_export_menu()
            return False
        result_save_name = TurboUIUtil.ObjectPickerDialog.get_tag_result(
            dialog)
        save_file_path = _get_settings_import_export_dir()
        load_basic_save_data(
            load_file_path_override=''.join((save_file_path, result_save_name,
                                             '_general.json')))
        load_disabled_animations_save_data(
            load_file_path_override=''.join((save_file_path, result_save_name,
                                             '_disabled_animations.json')))
        apply_nudity_settings_from_basic_save_data()
        apply_relationship_settings_from_basic_save_data()
        apply_sex_settings_from_basic_save_data()
        apply_disabled_sex_animations_from_dict(
            get_disabled_animations_save_data())
        recollect_sex_animation_packages()
        display_ok_dialog(text=3165307094,
                          text_tokens=(result_save_name, ),
                          title=3126397785,
                          callback=_import_done_dialog_callback)
        return True

    save_export_dict = _get_settings_export_dict()
    if not save_export_dict:
        display_ok_dialog(text=4228795842,
                          title=3126397785,
                          callback=_import_done_dialog_callback)
        return
    picker_rows = list()
    i = 0
    for (save_name, save_data) in save_export_dict.items():
        save_time = save_data[1]
        save_date_time = datetime.datetime.fromtimestamp(save_time).strftime(
            '%Y-%m-%d %H:%M')
        picker_rows.append(
            TurboUIUtil.ObjectPickerDialog.ListPickerRow(
                i,
                save_name,
                TurboL18NUtil.get_localized_string(2878507029,
                                                   tokens=(save_date_time, )),
                skip_tooltip=True,
                icon=get_action_icon(),
                tag=save_name))
        i += 1
    display_picker_list_dialog(title=3126397785,
                               picker_rows=picker_rows,
                               sim=get_menu_sim(),
                               callback=_import_settings_callback)
Ejemplo n.º 7
0
def open_swap_sex_sims_picker_dialog(active_sex_handler, swap_sim):
    @exception_watch()
    def swap_sim_picker_callback(dialog):
        if active_sex_handler is None:
            return False
        if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
            return False
        selected_sim_id = TurboUIUtil.SimPickerDialog.get_tag_result(dialog)
        if not selected_sim_id:
            return False
        selected_sim_info = TurboManagerUtil.Sim.get_sim_info(
            int(selected_sim_id))
        if selected_sim_info is None:
            return False
        sim_id = TurboManagerUtil.Sim.get_sim_id(swap_sim)
        if sim_id == selected_sim_id:
            return False
        sim_actor_id = active_sex_handler.get_actor_id_by_sim_id(sim_id)
        target_actor_id = active_sex_handler.get_actor_id_by_sim_id(
            selected_sim_id)
        if sim_actor_id == -1 or target_actor_id == -1:
            return False
        active_sex_handler.swap_actors(sim_actor_id, target_actor_id)
        return True

    sims_list = list()
    swap_actor_id = active_sex_handler.get_actor_id_by_sim_id(
        TurboManagerUtil.Sim.get_sim_id(swap_sim))
    swap_actor_data = active_sex_handler.get_animation_instance().get_actor(
        swap_actor_id)
    if swap_actor_data is None:
        return
    for (actor_id, actor_sim) in active_sex_handler.get_sims_list():
        if actor_id == swap_actor_id:
            pass
        actor_data = active_sex_handler.get_animation_instance().get_actor(
            actor_id)
        if actor_data is None:
            return
        while is_compatible_actor(actor_sim, actor_data, swap_sim,
                                  swap_actor_data):
            sims_list.append(TurboManagerUtil.Sim.get_sim_id(actor_sim))
    if not sims_list:
        display_ok_dialog(text=4051936639,
                          title=465151699,
                          title_tokens=(swap_sim, ))
        return
    display_sim_picker_dialog(text=4149247255,
                              text_tokens=(swap_sim, ),
                              title=465151699,
                              title_tokens=(swap_sim, ),
                              sims_id_list=sims_list,
                              sim=swap_sim,
                              callback=swap_sim_picker_callback)
Ejemplo n.º 8
0
 def join_sims_picker_callback(dialog):
     if pre_sex_handler is None:
         return False
     if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
         return False
     picked_sims_ids = TurboUIUtil.SimPickerDialog.get_tag_results(dialog)
     if not picked_sims_ids:
         return False
     picked_sims = list()
     for sim_id in picked_sims_ids:
         sim_info = TurboManagerUtil.Sim.get_sim_info(int(sim_id))
         if sim_info is None:
             return False
         picked_sims.append(sim_info)
     for sim_info in picked_sims:
         pre_sex_handler.add_sim(sim_info)
     genders_list = list()
     for sim_info in pre_sex_handler.get_actors_sim_info_gen():
         genders_list.append(get_sim_sex_gender(sim_info))
     if sex_category_type is not None:
         sex_allowed = is_sim_allowed_for_animation(tuple(picked_sims),
                                                    sex_category_type,
                                                    is_joining=True)
         if not sex_allowed:
             display_not_allowed_message(sex_allowed)
             return False
         has_animations = False
         if has_animations_with_params(
                 sex_category_type, pre_sex_handler.get_object_identifier(),
                 genders_list):
             has_animations = True
         if has_animations is False:
             display_ok_dialog(text=2693069513,
                               title=get_sex_category_animations_stbl_name(
                                   sex_category_type))
             return False
         open_join_sex_animations_picker_dialog(pre_sex_handler,
                                                picked_sims,
                                                sex_category_type)
     else:
         random_animation = get_random_animation(
             pre_sex_handler.get_object_identifier(),
             tuple(pre_sex_handler.get_actors_sim_info_gen()))
         if random_animation is None:
             display_ok_dialog(text=2693069513, title=1890248379)
             return False
         pre_sex_handler.set_animation_instance(random_animation)
         join_sex_interaction_from_pre_sex_handler(pre_sex_handler,
                                                   picked_sims)
     return True
Ejemplo n.º 9
0
def _delete_settings_menu():
    save_export_dict = _get_settings_export_dict()

    def _delete_done_dialog_callback(_):
        _open_settings_import_export_menu()

    def _delete_settings_callback(dialog):
        if not TurboUIUtil.ObjectPickerDialog.get_response_result(dialog):
            _open_settings_import_export_menu()
            return False
        (result_save_name, result_save_time
         ) = TurboUIUtil.ObjectPickerDialog.get_tag_result(dialog)
        for (_save_name, _save_data) in save_export_dict.items():
            _save_time = _save_data[1]
            while _save_name == result_save_name and _save_time == result_save_time:
                save_export_dict.pop(_save_name)
                break
        _save_settings_export_dict(save_export_dict)
        display_ok_dialog(text=3421488172,
                          text_tokens=(result_save_name, ),
                          title=4268061051,
                          callback=_delete_done_dialog_callback)
        return True

    if not save_export_dict:
        display_ok_dialog(text=294911225,
                          title=4268061051,
                          callback=_delete_done_dialog_callback)
        return
    picker_rows = list()
    i = 0
    for (save_name, save_data) in save_export_dict.items():
        save_time = save_data[1]
        save_date_time = datetime.datetime.fromtimestamp(save_time).strftime(
            '%Y-%m-%d %H:%M')
        picker_rows.append(
            TurboUIUtil.ObjectPickerDialog.ListPickerRow(
                i,
                save_name,
                TurboL18NUtil.get_localized_string(2878507029,
                                                   tokens=(save_date_time, )),
                skip_tooltip=True,
                icon=get_action_icon(),
                tag=(save_name, save_time)))
        i += 1
    display_picker_list_dialog(title=4268061051,
                               picker_rows=picker_rows,
                               sim=get_menu_sim(),
                               callback=_delete_settings_callback)
Ejemplo n.º 10
0
 def _delete_settings_callback(dialog):
     if not TurboUIUtil.ObjectPickerDialog.get_response_result(dialog):
         _open_settings_import_export_menu()
         return False
     (result_save_name, result_save_time
      ) = TurboUIUtil.ObjectPickerDialog.get_tag_result(dialog)
     for (_save_name, _save_data) in save_export_dict.items():
         _save_time = _save_data[1]
         while _save_name == result_save_name and _save_time == result_save_time:
             save_export_dict.pop(_save_name)
             break
     _save_settings_export_dict(save_export_dict)
     display_ok_dialog(text=3421488172,
                       text_tokens=(result_save_name, ),
                       title=4268061051,
                       callback=_delete_done_dialog_callback)
     return True
Ejemplo n.º 11
0
 def random_sex_npc_sims_picker_callback(dialog):
     clear_menu_sim()
     if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
         return False
     picked_sims_ids = TurboUIUtil.SimPickerDialog.get_tag_results(dialog)
     if not picked_sims_ids:
         return False
     picked_sims = list()
     for sim_id in picked_sims_ids:
         sim_info = TurboManagerUtil.Sim.get_sim_info(int(sim_id))
         if sim_info is None:
             return False
         picked_sims.append(sim_info)
     random_animation = get_random_animation(location_identifier,
                                             picked_sims)
     if random_animation is None:
         display_ok_dialog(text=2693069513, title=1890248379)
         return False
     pre_sex_handler = PreSexInteractionHandler(
         random_animation.get_sex_category(),
         TurboManagerUtil.Sim.get_sim_id(next(iter(picked_sims))),
         location_identifier,
         game_object_id,
         object_height,
         lot_id,
         location_position.x,
         location_position.y,
         location_position.z,
         location_level,
         location_angle,
         location_route_position.x,
         location_route_position.y,
         location_route_position.z,
         route_level,
         is_manual=is_manual)
     pre_sex_handler.set_animation_instance(random_animation)
     for sim_info in picked_sims:
         pre_sex_handler.add_sim(sim_info)
         sim_ev(sim_info).active_pre_sex_handler = pre_sex_handler
     start_sex_interaction_from_pre_sex_handler(pre_sex_handler)
     return True
Ejemplo n.º 12
0
 def _export_name_input_callback(dialog):
     if not TurboUIUtil.TextInputDialog.get_response_result(dialog):
         _open_settings_import_export_menu()
         return False
     result_save_name = str(
         TurboUIUtil.TextInputDialog.get_response_output(dialog)).replace(
             ' ', '_')
     save_file_path = _get_settings_import_export_dir()
     save_basic_save_data(
         save_file_path_override=''.join((save_file_path, result_save_name,
                                          '_general.json')))
     save_disabled_animations_save_data(
         save_file_path_override=''.join((save_file_path, result_save_name,
                                          '_disabled_animations.json')))
     save_export_dict[result_save_name] = (
         1, datetime.datetime.now().timestamp())
     _save_settings_export_dict(save_export_dict)
     display_ok_dialog(text=3705925691,
                       text_tokens=(result_save_name, ),
                       title=128859011,
                       callback=_export_done_dialog_callback)
     return True
Ejemplo n.º 13
0
 def _import_settings_callback(dialog):
     if not TurboUIUtil.ObjectPickerDialog.get_response_result(dialog):
         _open_settings_import_export_menu()
         return False
     result_save_name = TurboUIUtil.ObjectPickerDialog.get_tag_result(
         dialog)
     save_file_path = _get_settings_import_export_dir()
     load_basic_save_data(
         load_file_path_override=''.join((save_file_path, result_save_name,
                                          '_general.json')))
     load_disabled_animations_save_data(
         load_file_path_override=''.join((save_file_path, result_save_name,
                                          '_disabled_animations.json')))
     apply_nudity_settings_from_basic_save_data()
     apply_relationship_settings_from_basic_save_data()
     apply_sex_settings_from_basic_save_data()
     apply_disabled_sex_animations_from_dict(
         get_disabled_animations_save_data())
     recollect_sex_animation_packages()
     display_ok_dialog(text=3165307094,
                       text_tokens=(result_save_name, ),
                       title=3126397785,
                       callback=_import_done_dialog_callback)
     return True
Ejemplo n.º 14
0
def open_start_random_sex_sims_picker_dialog(origin_position, pre_sex_handler):
    @exception_watch()
    def random_sex_sim_picker_callback(dialog):
        if pre_sex_handler is None:
            return False
        if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
            clear_sims_sex_extra_data(
                tuple(pre_sex_handler.get_actors_sim_info_gen()))
            return False
        picked_sim_id = TurboUIUtil.SimPickerDialog.get_tag_result(dialog)
        if not picked_sim_id:
            clear_sims_sex_extra_data(
                tuple(pre_sex_handler.get_actors_sim_info_gen()))
            return False
        picked_sim = TurboManagerUtil.Sim.get_sim_info(int(picked_sim_id))
        if picked_sim is None:
            clear_sims_sex_extra_data(
                tuple(pre_sex_handler.get_actors_sim_info_gen()))
            return False
        pre_sex_handler.add_sim(picked_sim)
        random_animation = get_random_animation(
            pre_sex_handler.get_object_identifier(),
            tuple(pre_sex_handler.get_actors_sim_info_gen()))
        if random_animation is None:
            display_ok_dialog(text=2459296019, title=1890248379)
            return False
        pre_sex_handler.set_animation_instance(random_animation)
        start_sex_interaction_from_pre_sex_handler(pre_sex_handler)
        return True

    creator_sim_info = TurboManagerUtil.Sim.get_sim_info(
        pre_sex_handler.get_creator_sim_id())
    test_incest_of_sims = () if get_relationship_setting(
        RelationshipSetting.INCEST_STATE,
        variable_type=bool) else (creator_sim_info, )
    (min_age_limit, max_age_limit) = get_age_limits_for_sex(
        (creator_sim_info, ))
    skip_males = True
    skip_females = True
    skip_cmales = True
    skip_cfemales = True
    for sex_category_type in (SexCategoryType.TEASING, SexCategoryType.HANDJOB,
                              SexCategoryType.FOOTJOB, SexCategoryType.ORALJOB,
                              SexCategoryType.VAGINAL, SexCategoryType.ANAL):
        skip_males = not has_animations_with_params(
            sex_category_type, pre_sex_handler.get_object_identifier(),
            (get_sim_sex_gender(creator_sim_info), SexGenderType.MALE))
        if skip_males is False:
            break
    for sex_category_type in (SexCategoryType.TEASING, SexCategoryType.HANDJOB,
                              SexCategoryType.FOOTJOB, SexCategoryType.ORALJOB,
                              SexCategoryType.VAGINAL, SexCategoryType.ANAL):
        skip_females = not has_animations_with_params(
            sex_category_type, pre_sex_handler.get_object_identifier(),
            (get_sim_sex_gender(creator_sim_info), SexGenderType.FEMALE))
        if skip_females is False:
            break
    for sex_category_type in (SexCategoryType.TEASING, SexCategoryType.HANDJOB,
                              SexCategoryType.FOOTJOB, SexCategoryType.ORALJOB,
                              SexCategoryType.VAGINAL, SexCategoryType.ANAL):
        skip_cmales = not has_animations_with_params(
            sex_category_type, pre_sex_handler.get_object_identifier(),
            (get_sim_sex_gender(creator_sim_info), SexGenderType.CMALE))
        if skip_cmales is False:
            break
    for sex_category_type in (SexCategoryType.TEASING, SexCategoryType.HANDJOB,
                              SexCategoryType.FOOTJOB, SexCategoryType.ORALJOB,
                              SexCategoryType.VAGINAL, SexCategoryType.ANAL):
        skip_cfemales = not has_animations_with_params(
            sex_category_type, pre_sex_handler.get_object_identifier(),
            (get_sim_sex_gender(creator_sim_info), SexGenderType.CFEMALE))
        if skip_cfemales is False:
            break
    sims_list = list(
        get_nearby_sims_for_sex(
            origin_position,
            radius=16,
            relative_sims=test_incest_of_sims,
            min_sims_age=min_age_limit,
            max_sims_age=max_age_limit,
            skip_males=skip_males,
            skip_females=skip_females,
            skip_cmales=skip_cmales,
            skip_cfemales=skip_cfemales,
            skip_sims_ids=(pre_sex_handler.get_creator_sim_id(), )))
    for sex_category_type in (SexCategoryType.HANDJOB, SexCategoryType.ORALJOB,
                              SexCategoryType.TEASING, SexCategoryType.VAGINAL,
                              SexCategoryType.ANAL, SexCategoryType.FOOTJOB):
        if has_animations_with_params(
                sex_category_type, pre_sex_handler.get_object_identifier(),
            (get_sim_sex_gender(creator_sim_info), )):
            sims_list.insert(0, pre_sex_handler.get_creator_sim_id())
            break
    if not sims_list:
        display_ok_dialog(text=2459296019, title=1890248379)
        clear_sims_sex_extra_data(
            tuple(pre_sex_handler.get_actors_sim_info_gen()))
        return
    if len(get_available_sex_animations()) <= 4:
        display_ok_dialog(text=1066517691, title=3113927949)
    display_sim_picker_dialog(text=906772330,
                              title=1890248379,
                              sims_id_list=sims_list,
                              callback=random_sex_sim_picker_callback)
 def _change_warning_message():
     display_ok_dialog(text=926615894, title=3579577312)
Ejemplo n.º 16
0
def open_join_sims_picker_dialog(pre_sex_handler,
                                 sex_category_type,
                                 selected_sims_ids=()):
    @exception_watch()
    def join_sims_picker_callback(dialog):
        if pre_sex_handler is None:
            return False
        if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
            return False
        picked_sims_ids = TurboUIUtil.SimPickerDialog.get_tag_results(dialog)
        if not picked_sims_ids:
            return False
        picked_sims = list()
        for sim_id in picked_sims_ids:
            sim_info = TurboManagerUtil.Sim.get_sim_info(int(sim_id))
            if sim_info is None:
                return False
            picked_sims.append(sim_info)
        for sim_info in picked_sims:
            pre_sex_handler.add_sim(sim_info)
        genders_list = list()
        for sim_info in pre_sex_handler.get_actors_sim_info_gen():
            genders_list.append(get_sim_sex_gender(sim_info))
        if sex_category_type is not None:
            sex_allowed = is_sim_allowed_for_animation(tuple(picked_sims),
                                                       sex_category_type,
                                                       is_joining=True)
            if not sex_allowed:
                display_not_allowed_message(sex_allowed)
                return False
            has_animations = False
            if has_animations_with_params(
                    sex_category_type, pre_sex_handler.get_object_identifier(),
                    genders_list):
                has_animations = True
            if has_animations is False:
                display_ok_dialog(text=2693069513,
                                  title=get_sex_category_animations_stbl_name(
                                      sex_category_type))
                return False
            open_join_sex_animations_picker_dialog(pre_sex_handler,
                                                   picked_sims,
                                                   sex_category_type)
        else:
            random_animation = get_random_animation(
                pre_sex_handler.get_object_identifier(),
                tuple(pre_sex_handler.get_actors_sim_info_gen()))
            if random_animation is None:
                display_ok_dialog(text=2693069513, title=1890248379)
                return False
            pre_sex_handler.set_animation_instance(random_animation)
            join_sex_interaction_from_pre_sex_handler(pre_sex_handler,
                                                      picked_sims)
        return True

    if sex_category_type is not None:
        max_amount_of_actors = max(
            get_animation_max_amount_of_actors(
                sex_category_type,
                pre_sex_handler.get_object_identifier()[0]),
            get_animation_max_amount_of_actors(
                sex_category_type,
                pre_sex_handler.get_object_identifier()[1]))
    else:
        max_amount_of_actors = 48
    if max_amount_of_actors <= 0:
        if sex_category_type is not None:
            display_ok_dialog(
                text=443330929,
                text_tokens=(get_sex_category_animations_stbl_name(
                    sex_category_type), ),
                title=get_sex_category_animations_stbl_name(sex_category_type))
        else:
            display_ok_dialog(text=3121278879, title=1890248379)
        return
    creator_sim = TurboManagerUtil.Sim.get_sim_info(
        pre_sex_handler.get_creator_sim_id())
    test_incest_of_sims = () if get_relationship_setting(
        RelationshipSetting.INCEST_STATE, variable_type=bool) else tuple(
            pre_sex_handler.get_actors_sim_info_gen())
    (min_age_limit, max_age_limit) = get_age_limits_for_sex(
        tuple(pre_sex_handler.get_actors_sim_info_gen()))
    skip_sims_ids = [
        TurboManagerUtil.Sim.get_sim_id(actor_sim_info)
        for actor_sim_info in pre_sex_handler.get_actors_sim_info_gen()
    ]
    sims_list = tuple(
        get_nearby_sims_for_sex(pre_sex_handler.get_los_position(),
                                radius=16,
                                relative_sims=test_incest_of_sims,
                                min_sims_age=min_age_limit,
                                max_sims_age=max_age_limit,
                                skip_sims_ids=skip_sims_ids))
    if not sims_list:
        display_ok_dialog(
            text=2721401338,
            text_tokens=(get_sex_category_stbl_name(sex_category_type),
                         creator_sim),
            title=get_sex_category_animations_stbl_name(sex_category_type))
        return
    display_sim_picker_dialog(
        text=747723284,
        title=get_sex_category_animations_stbl_name(sex_category_type),
        sims_id_list=sims_list,
        selected_sims_id_list=selected_sims_ids,
        selectable_amount=max_amount_of_actors -
        pre_sex_handler.get_sims_amount(),
        sim=creator_sim,
        callback=join_sims_picker_callback)
Ejemplo n.º 17
0
def open_sex_npc_sims_picker_dialog(origin_position,
                                    sex_category_type,
                                    location_identifier,
                                    game_object_id,
                                    object_height,
                                    lot_id,
                                    location_position,
                                    location_level,
                                    location_angle,
                                    location_route_position,
                                    route_level,
                                    is_manual=False):
    @exception_watch()
    def npc_sims_picker_callback(dialog):
        clear_menu_sim()
        if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
            return False
        picked_sims_ids = TurboUIUtil.SimPickerDialog.get_tag_results(dialog)
        if not picked_sims_ids:
            return False
        picked_sims = list()
        for sim_id in picked_sims_ids:
            sim_info = TurboManagerUtil.Sim.get_sim_info(int(sim_id))
            if sim_info is None:
                return False
            picked_sims.append(sim_info)
        is_sim_sex_allowed = is_sim_allowed_for_animation(
            picked_sims, sex_category_type)
        if not is_sim_sex_allowed:
            display_not_allowed_message(is_sim_sex_allowed)
            return False
        pre_sex_handler = PreSexInteractionHandler(
            sex_category_type,
            TurboManagerUtil.Sim.get_sim_id(next(iter(picked_sims))),
            location_identifier,
            game_object_id,
            object_height,
            lot_id,
            location_position.x,
            location_position.y,
            location_position.z,
            location_level,
            location_angle,
            location_route_position.x,
            location_route_position.y,
            location_route_position.z,
            route_level,
            is_manual=is_manual)
        for sim_info in picked_sims:
            pre_sex_handler.add_sim(sim_info)
            sim_ev(sim_info).active_pre_sex_handler = pre_sex_handler
        open_start_npc_sex_animations_picker_dialog(pre_sex_handler)
        return True

    max_amount_of_actors = get_animation_max_amount_of_actors(
        sex_category_type,
        location_identifier[0]) or get_animation_max_amount_of_actors(
            sex_category_type, location_identifier[1])
    if max_amount_of_actors <= 0:
        display_ok_dialog(
            text=2459296019,
            title=get_sex_category_animations_stbl_name(sex_category_type))
        return
    sims_list = tuple(
        get_nearby_sims_for_sex(origin_position, radius=32, only_npc=True))
    if not sims_list:
        display_ok_dialog(
            text=3288282583,
            text_tokens=(get_sex_category_stbl_name(sex_category_type), ),
            title=get_sex_category_animations_stbl_name(sex_category_type))
        return
    display_sim_picker_dialog(
        text=389626746,
        title=get_sex_category_animations_stbl_name(sex_category_type),
        sims_id_list=sims_list,
        selectable_amount=max_amount_of_actors,
        sim=get_menu_sim(),
        callback=npc_sims_picker_callback)
 def _change_warning_message():
     display_ok_dialog(text=926615894, title=2064322478)
Ejemplo n.º 19
0
def open_random_sex_npc_sims_picker_dialog(origin_position,
                                           location_identifier,
                                           game_object_id,
                                           object_height,
                                           lot_id,
                                           location_position,
                                           location_level,
                                           location_angle,
                                           location_route_position,
                                           route_level,
                                           is_manual=False):
    @exception_watch()
    def random_sex_npc_sims_picker_callback(dialog):
        clear_menu_sim()
        if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
            return False
        picked_sims_ids = TurboUIUtil.SimPickerDialog.get_tag_results(dialog)
        if not picked_sims_ids:
            return False
        picked_sims = list()
        for sim_id in picked_sims_ids:
            sim_info = TurboManagerUtil.Sim.get_sim_info(int(sim_id))
            if sim_info is None:
                return False
            picked_sims.append(sim_info)
        random_animation = get_random_animation(location_identifier,
                                                picked_sims)
        if random_animation is None:
            display_ok_dialog(text=2693069513, title=1890248379)
            return False
        pre_sex_handler = PreSexInteractionHandler(
            random_animation.get_sex_category(),
            TurboManagerUtil.Sim.get_sim_id(next(iter(picked_sims))),
            location_identifier,
            game_object_id,
            object_height,
            lot_id,
            location_position.x,
            location_position.y,
            location_position.z,
            location_level,
            location_angle,
            location_route_position.x,
            location_route_position.y,
            location_route_position.z,
            route_level,
            is_manual=is_manual)
        pre_sex_handler.set_animation_instance(random_animation)
        for sim_info in picked_sims:
            pre_sex_handler.add_sim(sim_info)
            sim_ev(sim_info).active_pre_sex_handler = pre_sex_handler
        start_sex_interaction_from_pre_sex_handler(pre_sex_handler)
        return True

    sims_list = tuple(
        get_nearby_sims_for_sex(origin_position, radius=32, only_npc=True))
    if not sims_list:
        display_ok_dialog(text=3288282583, title=1890248379)
        return
    display_sim_picker_dialog(text=389626746,
                              title=1890248379,
                              sims_id_list=sims_list,
                              selectable_amount=48,
                              sim=get_menu_sim(),
                              callback=random_sex_npc_sims_picker_callback)
 def _change_warning_message():
     display_ok_dialog(text=926615894, title=3857402476)
 def _open_warning_message():
     display_ok_dialog(text=584740058, title=3857402476)
def open_player_animations_disabler():

    def ok_dialog_callback(_):
        _open_animation_authors_picker()

    display_ok_dialog(text=2011685353, title=1853900111, callback=ok_dialog_callback)
def open_autonomy_animations_disabler():

    def ok_dialog_callback(_):
        _open_animation_authors_picker(autonomy=True)

    display_ok_dialog(text=2011685353, title=2284702213, callback=ok_dialog_callback)
Ejemplo n.º 24
0
def open_start_sex_sims_picker_dialog(origin_position, pre_sex_handler):
    @exception_watch()
    def sim_picker_callback(dialog):
        if pre_sex_handler is None:
            return False
        if not TurboUIUtil.SimPickerDialog.get_response_result(dialog):
            clear_sims_sex_extra_data(
                tuple(pre_sex_handler.get_actors_sim_info_gen()))
            return False
        selected_sim_id = TurboUIUtil.SimPickerDialog.get_tag_result(dialog)
        if not selected_sim_id:
            clear_sims_sex_extra_data(
                tuple(pre_sex_handler.get_actors_sim_info_gen()))
            return False
        selected_sim_info = TurboManagerUtil.Sim.get_sim_info(
            int(selected_sim_id))
        if selected_sim_info is None:
            clear_sims_sex_extra_data(
                tuple(pre_sex_handler.get_actors_sim_info_gen()))
            return False
        is_sim_sex_allowed = is_sim_allowed_for_animation(
            tuple(pre_sex_handler.get_actors_sim_info_gen()) +
            (selected_sim_info, ), pre_sex_handler.get_interaction_type())
        if not is_sim_sex_allowed:
            display_not_allowed_message(is_sim_sex_allowed)
            clear_sims_sex_extra_data(
                tuple(pre_sex_handler.get_actors_sim_info_gen()))
            return False
        pre_sex_handler.add_sim(selected_sim_id)
        open_start_sex_animations_picker_dialog(pre_sex_handler)
        return True

    creator_sim_info = TurboManagerUtil.Sim.get_sim_info(
        pre_sex_handler.get_creator_sim_id())
    test_incest_of_sims = () if get_relationship_setting(
        RelationshipSetting.INCEST_STATE,
        variable_type=bool) else (creator_sim_info, )
    (min_age_limit, max_age_limit) = get_age_limits_for_sex(
        (creator_sim_info, ))
    skip_males = not has_animations_with_params(
        pre_sex_handler.get_interaction_type(),
        pre_sex_handler.get_object_identifier(),
        (get_sim_sex_gender(creator_sim_info), SexGenderType.MALE))
    skip_females = not has_animations_with_params(
        pre_sex_handler.get_interaction_type(),
        pre_sex_handler.get_object_identifier(),
        (get_sim_sex_gender(creator_sim_info), SexGenderType.FEMALE))
    skip_cmales = not has_animations_with_params(
        pre_sex_handler.get_interaction_type(),
        pre_sex_handler.get_object_identifier(),
        (get_sim_sex_gender(creator_sim_info), SexGenderType.CMALE))
    skip_cfemales = not has_animations_with_params(
        pre_sex_handler.get_interaction_type(),
        pre_sex_handler.get_object_identifier(),
        (get_sim_sex_gender(creator_sim_info), SexGenderType.CFEMALE))
    sims_list = list(
        get_nearby_sims_for_sex(
            origin_position,
            radius=16,
            relative_sims=test_incest_of_sims,
            min_sims_age=min_age_limit,
            max_sims_age=max_age_limit,
            skip_males=skip_males,
            skip_females=skip_females,
            skip_cmales=skip_cmales,
            skip_cfemales=skip_cfemales,
            skip_sims_ids=(pre_sex_handler.get_creator_sim_id(), )))
    if has_animations_with_params(pre_sex_handler.get_interaction_type(),
                                  pre_sex_handler.get_object_identifier(),
                                  (get_sim_sex_gender(creator_sim_info), )):
        sims_list.insert(0, pre_sex_handler.get_creator_sim_id())
    if not sims_list:
        display_ok_dialog(text=780195446,
                          text_tokens=(get_sex_category_stbl_name(
                              pre_sex_handler.get_interaction_type()),
                                       creator_sim_info),
                          title=get_sex_category_animations_stbl_name(
                              pre_sex_handler.get_interaction_type()))
        clear_sims_sex_extra_data(
            tuple(pre_sex_handler.get_actors_sim_info_gen()))
        return
    display_sim_picker_dialog(text=906772330,
                              title=get_sex_category_animations_stbl_name(
                                  pre_sex_handler.get_interaction_type()),
                              sims_id_list=sims_list,
                              callback=sim_picker_callback)
Ejemplo n.º 25
0
def display_global_statistics_dialog():
    values = list()
    values.extend('' for _ in range(150))
    values[10] = ''
    display_ok_dialog(text=2093939627, text_tokens=values, title=3778116009)
Ejemplo n.º 26
0
def display_sim_statistics_dialog(sim_identifier):
    sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier)
    _update_sim_statistics(sim_info)
    values = list()
    values.append(sim_info)
    values.extend('' for _ in range(150))
    values[10] = str(get_sim_ww_statistic(sim_info, 'times_had_sex'))
    values[11] = str(
        _get_percentage(get_sim_ww_statistic(sim_info, 'times_had_incest_sex'),
                        get_sim_ww_statistic(sim_info, 'times_had_sex')))
    values[12] = str(get_sim_ww_statistic(sim_info, 'times_had_solo_sex'))
    values[13] = str(get_sim_ww_statistic(sim_info, 'times_been_seen_in_sex'))
    values[14] = str(get_sim_ww_statistic(sim_info, 'times_reacted_to_sex'))
    sex_ask_overall = get_sim_ww_statistic(
        sim_info, 'times_sex_got_accepted') + get_sim_ww_statistic(
            sim_info, 'times_sex_got_rejected')
    values[15] = str(sex_ask_overall)
    values[16] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'times_sex_got_accepted'),
            sex_ask_overall))
    values[17] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'times_sex_got_rejected'),
            sex_ask_overall))
    sex_time_overall = get_sim_ww_statistic(
        sim_info, 'time_spent_on_sex_teasing') + get_sim_ww_statistic(
            sim_info, 'time_spent_on_sex_handjob') + get_sim_ww_statistic(
                sim_info, 'time_spent_on_sex_footjob') + get_sim_ww_statistic(
                    sim_info,
                    'time_spent_on_sex_oraljob') + get_sim_ww_statistic(
                        sim_info,
                        'time_spent_on_sex_vaginal') + get_sim_ww_statistic(
                            sim_info,
                            'time_spent_on_sex_anal') + get_sim_ww_statistic(
                                sim_info, 'time_spent_on_sex_climax')
    values[21] = str('%.2f' % (sex_time_overall / 60))
    values[22] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'time_spent_on_sex_teasing'),
            sex_time_overall))
    values[23] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'time_spent_on_sex_handjob'),
            sex_time_overall))
    values[24] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'time_spent_on_sex_footjob'),
            sex_time_overall))
    values[25] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'time_spent_on_sex_oraljob'),
            sex_time_overall))
    values[26] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'time_spent_on_sex_vaginal'),
            sex_time_overall))
    values[27] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'time_spent_on_sex_anal'),
            sex_time_overall))
    values[28] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'time_spent_on_sex_climax'),
            sex_time_overall))
    sex_unique_partners_overall = get_sim_ww_statistic(sim_info,
                                                       'unique_sex_partners')
    values[30] = str(sex_unique_partners_overall)
    values[31] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'unique_sex_partner_teen'),
            sex_unique_partners_overall))
    values[32] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'unique_sex_partner_youngadult'),
            sex_unique_partners_overall))
    values[33] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'unique_sex_partner_adult'),
            sex_unique_partners_overall))
    values[34] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'unique_sex_partner_elder'),
            sex_unique_partners_overall))
    sex_cum_received_overall = get_sim_ww_statistic(
        sim_info, 'times_received_cum_face') + get_sim_ww_statistic(
            sim_info, 'times_received_cum_chest') + get_sim_ww_statistic(
                sim_info, 'times_received_cum_back') + get_sim_ww_statistic(
                    sim_info,
                    'times_received_cum_vagina') + get_sim_ww_statistic(
                        sim_info,
                        'times_received_cum_butt') + get_sim_ww_statistic(
                            sim_info, 'times_received_cum_feet')
    values[40] = str(sex_cum_received_overall)
    values[41] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'times_received_cum_face'),
            sex_cum_received_overall))
    values[42] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'times_received_cum_chest'),
            sex_cum_received_overall))
    values[43] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'times_received_cum_back'),
            sex_cum_received_overall))
    values[44] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'times_received_cum_vagina'),
            sex_cum_received_overall))
    values[45] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'times_received_cum_butt'),
            sex_cum_received_overall))
    values[46] = str(
        _get_percentage(
            get_sim_ww_statistic(sim_info, 'times_received_cum_feet'),
            sex_cum_received_overall))
    values[50] = str('%.2f' %
                     (get_sim_ww_statistic(sim_info, 'time_spent_nude') / 60))
    values[51] = str(get_sim_ww_statistic(sim_info, 'times_been_seen_nude'))
    values[52] = str(get_sim_ww_statistic(sim_info, 'times_reacted_to_nudity'))
    values[53] = str(
        get_sim_ww_statistic(sim_info, 'times_talked_exhibitionism'))
    flashed_times_overall = get_sim_ww_statistic(
        sim_info, 'times_flashed_top') + get_sim_ww_statistic(
            sim_info, 'times_flashed_bottom') + get_sim_ww_statistic(
                sim_info, 'times_flashed_full')
    values[60] = str(flashed_times_overall)
    values[61] = str(
        _get_percentage(get_sim_ww_statistic(sim_info, 'times_flashed_top'),
                        flashed_times_overall))
    values[62] = str(
        _get_percentage(get_sim_ww_statistic(sim_info, 'times_flashed_bottom'),
                        flashed_times_overall))
    values[63] = str(
        _get_percentage(get_sim_ww_statistic(sim_info, 'times_flashed_full'),
                        flashed_times_overall))
    values[100] = str(get_sim_ww_statistic(sim_info, 'times_impregnated'))
    values[101] = str(get_sim_ww_statistic(sim_info, 'times_got_pregnant'))
    values[102] = str(
        get_sim_ww_statistic(sim_info, 'times_terminated_pregnancy'))
    values[103] = str(
        get_sim_ww_statistic(sim_info, 'times_used_contraception'))
    display_ok_dialog(text=863853338,
                      text_tokens=values,
                      title=1561155736,
                      title_tokens=(sim_info, ))
 def _open_warning_message():
     display_ok_dialog(text=1417105284, title=3799781904)