def _common_testing_show_choose_sims_option_dialog(_connection: int=None): output = sims4.commands.CheatOutput(_connection) output('Showing test choose sims option dialog.') def _on_submit(sim_info_list: Tuple[SimInfo]): output('Chose Sims with names {}'.format(CommonSimNameUtils.get_full_names(sim_info_list))) try: # LocalizedStrings within other LocalizedStrings title_tokens = ( CommonLocalizationUtils.create_localized_string( CommonStringId.TESTING_SOME_TEXT_FOR_TESTING, text_color=CommonLocalizedStringColor.GREEN ), ) description_tokens = ( CommonLocalizationUtils.create_localized_string( CommonStringId.TESTING_TEST_TEXT_WITH_SIM_FIRST_AND_LAST_NAME, tokens=(CommonSimUtils.get_active_sim_info(),), text_color=CommonLocalizedStringColor.BLUE ), ) # Create the dialog and show a number of Sims in 4 columns and being able to select up to 5 Sims. option_dialog = CommonChooseSimsOptionDialog( CommonStringId.TESTING_TEST_TEXT_WITH_STRING_TOKEN, CommonStringId.TESTING_TEST_TEXT_WITH_STRING_TOKEN, title_tokens=title_tokens, description_tokens=description_tokens, mod_identity=ModInfo.get_identity() ) current_count = 0 count = 25 for sim_info in CommonSimUtils.get_sim_info_for_all_sims_generator(): if current_count >= count: break is_enabled = random.choice((True, False)) option_dialog.add_option( CommonDialogSimOption( sim_info, CommonDialogSimOptionContext( is_enabled=is_enabled ) ) ) option_dialog.show( sim_info=CommonSimUtils.get_active_sim_info(), column_count=4, max_selectable=5, on_submit=_on_submit ) except Exception as ex: CommonExceptionHandler.log_exception(ModInfo.get_identity(), 'Failed to show dialog', exception=ex) output('Failed to show dialog, please locate your exception log file.') output('Done showing.')
def _common_testing_show_choose_sims_dialog(_connection: int = None): output = sims4.commands.CheatOutput(_connection) output('Showing test choose sims dialog.') def _on_chosen(choice: Union[Tuple[SimInfo], None], outcome: CommonChoiceOutcome): output('Chose {} with result: {}.'.format( CommonSimNameUtils.get_full_names(choice), pformat(outcome))) try: # LocalizedStrings within other LocalizedStrings title_tokens = (CommonLocalizationUtils.create_localized_string( CommonStringId.TESTING_SOME_TEXT_FOR_TESTING, text_color=CommonLocalizedStringColor.GREEN), ) description_tokens = (CommonLocalizationUtils.create_localized_string( CommonStringId.TESTING_TEST_TEXT_WITH_SIM_FIRST_AND_LAST_NAME, tokens=(CommonSimUtils.get_active_sim_info(), ), text_color=CommonLocalizedStringColor.BLUE), ) from sims4communitylib.utils.common_icon_utils import CommonIconUtils current_count = 0 count = 25 options = [] for sim_info in CommonSimUtils.get_sim_info_for_all_sims_generator(): if current_count >= count: break sim_id = CommonSimUtils.get_sim_id(sim_info) is_enabled = random.choice((True, False)) options.append( SimPickerRow(sim_id, select_default=False, tag=sim_info, is_enable=is_enabled)) current_count += 1 dialog = CommonChooseSimsDialog( CommonStringId.TESTING_TEST_TEXT_WITH_STRING_TOKEN, CommonStringId.TESTING_TEST_TEXT_WITH_STRING_TOKEN, tuple(options), title_tokens=title_tokens, description_tokens=description_tokens) dialog.show(on_chosen=_on_chosen, column_count=5, min_selectable=2, max_selectable=6) except Exception as ex: CommonExceptionHandler.log_exception(ModInfo.get_identity().name, 'Failed to show dialog', exception=ex) output( 'Failed to show dialog, please locate your exception log file and upload it to the appropriate thread.' ) output('Done showing.')
def _common_testing_show_choose_sim_option_dialog(_connection: int = None): output = sims4.commands.CheatOutput(_connection) output('Showing test choose sim option dialog.') def _on_chosen(_sim_info: SimInfo): output('Chose Sim with name \'{}\''.format( CommonSimNameUtils.get_full_name(_sim_info))) try: # LocalizedStrings within other LocalizedStrings title_tokens = (CommonLocalizationUtils.create_localized_string( CommonStringId.TESTING_SOME_TEXT_FOR_TESTING, text_color=CommonLocalizedStringColor.GREEN), ) description_tokens = (CommonLocalizationUtils.create_localized_string( CommonStringId.TESTING_TEST_TEXT_WITH_SIM_FIRST_AND_LAST_NAME, tokens=(CommonSimUtils.get_active_sim_info(), ), text_color=CommonLocalizedStringColor.BLUE), ) # Create the dialog and only showing 2 options per page. option_dialog = CommonChooseSimOptionDialog( CommonStringId.TESTING_TEST_TEXT_WITH_STRING_TOKEN, CommonStringId.TESTING_TEST_TEXT_WITH_STRING_TOKEN, title_tokens=title_tokens, description_tokens=description_tokens, mod_identity=ModInfo.get_identity()) current_count = 0 count = 25 for sim_info in CommonSimUtils.get_sim_info_for_all_sims_generator(): if current_count >= count: break should_select = random.choice((True, False)) is_enabled = random.choice((True, False)) option_dialog.add_option( CommonDialogSimOption(sim_info, CommonDialogSimOptionContext( is_enabled=is_enabled, is_selected=should_select), on_chosen=_on_chosen)) option_dialog.show(sim_info=CommonSimUtils.get_active_sim_info(), column_count=4) except Exception as ex: CommonExceptionHandler.log_exception(ModInfo.get_identity().name, 'Failed to show dialog', exception=ex) output('Failed to show dialog, please locate your exception log file.') output('Done showing.')
def update_relationship_decay(self, sim_info_list: Iterator[SimInfo]=()): """ Update the relationship decay for friendship and romance. """ friendship_decay_percentage = self._as_percentage(NRDSettingUtils().get_setting(NRDSettings.FRIENDSHIP_DECAY, variable_type=float)) romance_decay_percentage = self._as_percentage(NRDSettingUtils().get_setting(NRDSettings.ROMANCE_DECAY, variable_type=float)) all_sims = sim_info_list or CommonSimUtils.get_sim_info_for_all_sims_generator() for sim_info in all_sims: if sim_info is None: continue relationships = sim_info.relationship_tracker for relationship in relationships: target_id = relationship.sim_id_a relationship_tracks = sim_info.relationship_tracker.relationship_tracks_gen(target_id) for relationship_track in relationship_tracks: if relationship_track.stat_type == relationship_track.FRIENDSHIP_TRACK: self._modify_decay_rate(relationship_track, friendship_decay_percentage) elif relationship_track.stat_type == relationship_track.ROMANCE_TRACK: self._modify_decay_rate(relationship_track, romance_decay_percentage)
def _common_testing_show_targeted_question_dialog(_connection: int = None): output = sims4.commands.CheatOutput(_connection) output('Showing test targeted question dialog.') def _ok_chosen(_: UiDialogOkCancel): output('Ok option chosen.') def _cancel_chosen(_: UiDialogOkCancel): output('Cancel option chosen.') try: # LocalizedStrings within other LocalizedStrings description_tokens = (CommonLocalizationUtils.create_localized_string( CommonStringId.TESTING_TEST_TEXT_WITH_SIM_FIRST_AND_LAST_NAME, tokens=(CommonSimUtils.get_active_sim_info(), ), text_color=CommonLocalizedStringColor.BLUE), ) dialog = CommonTargetedQuestionDialog( CommonStringId.TESTING_TEST_TEXT_WITH_STRING_TOKEN, question_tokens=description_tokens, ok_text_identifier=CommonLocalizationUtils.create_localized_string( CommonStringId.TESTING_TEST_BUTTON_ONE, text_color=CommonLocalizedStringColor.RED), cancel_text_identifier=CommonStringId.TESTING_TEST_BUTTON_TWO) dialog.show( CommonSimUtils.get_active_sim_info(), tuple(CommonSimUtils.get_sim_info_for_all_sims_generator())[0], on_ok_selected=_ok_chosen, on_cancel_selected=_cancel_chosen) except Exception as ex: CommonExceptionHandler.log_exception(ModInfo.get_identity().name, 'Failed to show dialog', exception=ex) output( 'Failed to show ok cancel dialog, please locate your exception log file.' ) output('Done showing.')
def _nrd_testing_show_relationship_decay(_connection: int=None): output = CheatOutput(_connection) output('Showing Relationship Decay Values.') _NRDRelationshipUtils().show_relationships(CommonSimUtils.get_sim_info_for_all_sims_generator()) output('Done')