def _try_to_take_and_use_condoms(sim_identifier): sim = TurboManagerUtil.Sim.get_sim_instance(sim_identifier) if sim is None: return (False, 0) if sim_ev(sim).active_sex_handler is None: return (False, 0) sims_that_can_impregnate_list = list() for actor_sim in sim_ev(sim).active_sex_handler.get_actors_sim_info_gen(): while sim_ev(actor_sim).has_condom_on is False and has_sim_trait( actor_sim, SimTrait.GENDEROPTIONS_PREGNANCY_CANIMPREGNATE): sims_that_can_impregnate_list.append(actor_sim) if not sims_that_can_impregnate_list: return (False, 0) condoms_count = get_object_amount_in_sim_inventory( sim, CONDOM_WRAPPER_OBJECT_ID) if condoms_count < len(sims_that_can_impregnate_list): return (False, condoms_count) if not remove_object_from_sim_inventory( sim, CONDOM_WRAPPER_OBJECT_ID, len(sims_that_can_impregnate_list)): return (False, len(sims_that_can_impregnate_list)) for actor_sim in sims_that_can_impregnate_list: sim_ev(actor_sim).has_condom_on = True _update_sim_condom_status_buff(actor_sim) increase_sim_ww_statistic(actor_sim, 'times_used_contraception') return (True, len(sims_that_can_impregnate_list))
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_actors_light_other_flags(sex_handler, sims_list): for (_, sim_info) in sims_list: set_sim_statistic_value(sim_info, 1, SimCommodity.WW_IS_SIM_IN_SEX) increase_sim_ww_statistic( sim_info, 'time_spent_on_sex_' + str(sex_handler.get_animation_instance(). get_sex_category().name.lower())) set_sim_penis_state(sim_info, True, 9999, set_if_nude=True)
def _nudity_reaction(sim, target, only_mixer=False, force=False): increase_sim_ww_statistic(sim, 'times_reacted_to_nudity') increase_sim_ww_statistic(target, 'times_been_seen_nude') if _is_positive_to_sim_nudity(sim, target): positive_reaction_affordance = random.choice( (SimInteraction.WW_NUDITY_REACTION_POSITIVE_1, SimInteraction.WW_NUDITY_REACTION_POSITIVE_2, SimInteraction.WW_NUDITY_REACTION_POSITIVE_3)) si_result = TurboSimUtil.Interaction.push_affordance( sim, positive_reaction_affordance, target=target, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_SCRIPT, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT if force is False else TurboInteractionUtil.QueueInsertStrategy.FIRST, priority=TurboInteractionUtil.Priority.High if force is False else TurboInteractionUtil.Priority.Critical, run_priority=TurboInteractionUtil.Priority.High if force is False else TurboInteractionUtil.Priority.Critical ) if only_mixer is False else None else: si_result = TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_NUDITY_REACTION_SHOCK, target=target, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_SCRIPT, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT if force is False else TurboInteractionUtil.QueueInsertStrategy.FIRST, priority=TurboInteractionUtil.Priority.High if force is False else TurboInteractionUtil.Priority.Critical, run_priority=TurboInteractionUtil.Priority.High if force is False else TurboInteractionUtil.Priority.Critical ) if only_mixer is False else None if not si_result and ( si_result is None or TurboInteractionUtil.can_interaction_fallback_to_mixer_interaction( sim, si_result.execute_result.interaction)): si_result = TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_NUDITY_REACTION_MIXER, target=target, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_REACTION, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT) if si_result: if TurboSimUtil.Age.get_age(sim) == TurboSimUtil.Age.CHILD: add_sim_buff(sim, SimBuff.PRIVACY_EMBARRASSED) cooldown_offset = random.randint(-1, 2) sim_ev(sim).full_nudity_reaction_cooldown = 12 + cooldown_offset sim_ev(sim).inner_nudity_reaction_cooldown = 6 + cooldown_offset set_sim_penis_state(sim, True, 8, set_if_nude=True) return True return False
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_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_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
def on_interaction_start(cls, interaction_instance): sim = cls.get_interaction_sim(interaction_instance) household = TurboSimUtil.Household.get_household(sim) if household is None: return False if not TurboWorldUtil.Household.subtract_funds(household, 1500): return False sim_info = TurboManagerUtil.Sim.get_sim_info(sim) TurboSimUtil.Pregnancy.clear_pregnancy(sim_info) if has_sim_trait(sim_info, SimTrait.HATESCHILDREN): add_sim_buff(sim_info, SimBuff.WW_PREGNANCY_TERMINATION_HAPPY, reason=3441893392) else: add_sim_buff(sim_info, SimBuff.WW_PREGNANCY_TERMINATION_SAD, reason=3441893392) display_notification(text=3344178125, text_tokens=(sim_info,), title=2364600527, secondary_icon=sim_info) increase_sim_ww_statistic(sim_info, 'times_terminated_pregnancy') TurboSimUtil.Interaction.push_affordance(sim, SimInteraction.WW_GO_HOME, interaction_context=TurboInteractionUtil.InteractionContext.SOURCE_SCRIPT, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, must_run_next=True, priority=TurboInteractionUtil.Priority.Critical, run_priority=TurboInteractionUtil.Priority.Critical) return True
def apply_sim_cum_layer(sim_identifier, cum_layer_types, force=False): sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) has_applied = False for cum_layer_type in cum_layer_types: if not cum_layer_type == CumLayerType.DISABLED: if cum_layer_type == CumLayerType.NONE: continue if cum_layer_type == CumLayerType.V****A and has_sim_trait(sim_info, SimTrait.GENDEROPTIONS_TOILET_STANDING): cum_layer_type = CumLayerType.BUTT cum_cas_id = get_cum_layer_cas_id(cum_layer_type) if has_sim_cas_part_id(sim_info, cum_cas_id) and force is False: continue set_first_free_skin_overlay_for_every_outfit(sim_info, cum_cas_id) increase_sim_ww_statistic(sim_info, 'times_received_cum_' + str(cum_layer_type.name).lower()) has_applied = True if has_applied is True: try: TurboSimUtil.CAS.refresh_outfit(sim_info) except: pass sim_ev(sim_info).cum_apply_time = TurboWorldUtil.Time.get_absolute_ticks() + 360000
def apply_after_sex_functions(sex_handler, sims_list, is_ending=False): is_full_interaction = sex_handler.sim_minute_counter > 5 if is_ending is True: if sex_handler.unsilence_phone_after_sex is True: TurboUIUtil.Phone.unsilence() if is_full_interaction is True: apply_after_sex_satisfaction(sims_list, sex_handler=sex_handler) _after_sex_buffs(sims_list) for (actor_id, sim_info) in sims_list: update_stapon(sim_info, force_remove=True) _after_sex_dress_up(sim_info) set_sim_penis_state(sim_info, True, 3) set_sim_desire_level(sim_info, 0) remove_sim_buff(sim_info, SimBuff.WW_DESIRE_POSITIVE) remove_sim_buff(sim_info, SimBuff.WW_DESIRE_NEGATIVE) while is_full_interaction is True: _after_sex_cum(sex_handler, actor_id, sim_info) if len(sims_list) > 1: is_incest_sex = True in [ sim_info is not target_sim_info and TurboSimUtil.Relationship.is_family( sim_info, target_sim_info) for (_, target_sim_info) in sims_list ] increase_sim_ww_statistic(sim_info, 'times_had_sex') increase_sim_ww_statistic(sim_info, 'times_had_incest_sex') else: increase_sim_ww_statistic(sim_info, 'times_had_solo_sex')
def apply_sim_pregnancy(sim_identifier, partner_sim_identifier): pregnancy_result = TurboSimUtil.Pregnancy.start_pregnancy( sim_identifier, partner_sim_identifier) if pregnancy_result is False: return False remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_PERIOD_FINE) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_PERIOD_FLIRTY) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_PERIOD_DAZED) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_PERIOD_SAD) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_PERIOD_TENSE) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_PERIOD_UNCOMFORTABLE) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_PERIOD_VAMPIRE_UNCOMFORTABLE) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_CRAMPS_LOW) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_CRAMPS_MEDIUM) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_CRAMPS_HIGH) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_TERMINATION_HAPPY) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_TERMINATION_SAD) remove_sim_buff(sim_identifier, SimBuff.WW_PREGNANCY_MISCARRIAGE) increase_sim_ww_statistic(partner_sim_identifier, 'times_impregnated') increase_sim_ww_statistic(sim_identifier, 'times_got_pregnant') return True
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 take_birth_control_pill(sim_identifier, no_inventory=False): if no_inventory is False: sim = TurboManagerUtil.Sim.get_sim_instance(sim_identifier) if sim is None: return False if get_object_amount_in_sim_inventory( sim, BIRTH_CONTROL_PILL_OBJECT_ID) <= 0: return False if not remove_object_from_sim_inventory( sim, BIRTH_CONTROL_PILL_OBJECT_ID, 1): return False sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) sim_ev( sim_info ).day_used_birth_control_pills = TurboWorldUtil.Time.get_absolute_days() sim_ev(sim_info).birth_control_pill_power = 1 update_sim_birth_control_status_buff(sim_info) increase_sim_ww_statistic(sim_info, 'times_used_contraception') if TurboSimUtil.Sim.is_player(sim_info): display_notification(text=949418969, text_tokens=(sim_info, ), title=1873179704, secondary_icon=sim_info) return True
def _general_sex_reaction(sim, sex_handler): skip_reaction = False if sex_handler.get_actors_amount( ) == 1 and sex_handler.get_animation_instance().get_sex_category( ) == SexCategoryType.TEASING: target = next(iter(sex_handler.get_actors_sim_instance_gen())) if target is not None: skip_reaction = True if TurboSimUtil.Gender.is_female( target) and get_sim_actual_body_state( target, 6) == BodyState.NUDE or get_sim_actual_body_state( target, 7) == BodyState.NUDE: skip_reaction = False if skip_reaction is True: return False sex_creator_sim = TurboManagerUtil.Sim.get_sim_instance( sex_handler.get_creator_sim_id()) if sex_creator_sim is None: return False (sex_reaction_data, sex_reaction_should_left, sex_reaction_target_override) = get_reaction_type(sim, sex_handler) if not get_sex_setting(SexSetting.PRIVACY_STATE, variable_type=bool): sex_reaction_should_left = False sim_id = TurboManagerUtil.Sim.get_sim_id(sim) if sex_reaction_should_left is True: if sim_id in sex_handler.go_away_sims_list: go_away_reaction_result = TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_GO_AWAY_FROM_SEX, target=sex_creator_sim, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_SCRIPT, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, must_run_next=True, priority=TurboInteractionUtil.Priority.High, run_priority=TurboInteractionUtil.Priority.High) return bool(go_away_reaction_result) sex_handler.go_away_sims_list.add(sim_id) else: sim_ev(sim).sex_reaction_handlers_list.append( sex_handler.get_identifier()) if sim_id in sex_handler.has_reacted_sims_list: reaction_result = TurboSimUtil.Interaction.push_affordance( sim, sex_reaction_data[1], target=sex_reaction_target_override if sex_reaction_target_override is not None else sex_creator_sim, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, priority=TurboInteractionUtil.Priority.High, run_priority=TurboInteractionUtil.Priority.High, skip_if_running=True) else: reaction_result = TurboSimUtil.Interaction.push_affordance( sim, sex_reaction_data[1], target=sex_reaction_target_override if sex_reaction_target_override is not None else sex_creator_sim, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.FIRST, must_run_next=True, priority=TurboInteractionUtil.Priority.Critical, run_priority=TurboInteractionUtil.Priority.Critical, skip_if_running=True) if reaction_result: increase_sim_ww_statistic(sim, 'times_reacted_to_sex') increase_sim_ww_statistic(sex_creator_sim, 'times_been_seen_in_sex') if sex_reaction_data[2] is not None: add_sim_buff(sim, sex_reaction_data[2]) if sex_reaction_should_left is True: sim_ev(sim).sex_reaction_attempt_cooldown = 0 sex_handler.has_reacted_sims_list.add(sim_id) return True return False
def increase_sim_nudity_time_statistic(sim_identifier): sim_outfit_level = get_sim_outfit_level(sim_identifier) if sim_outfit_level == OutfitLevel.NUDE or sim_outfit_level == OutfitLevel.BATHING: increase_sim_ww_statistic(sim_identifier, 'time_spent_nude')
def apply_asking_for_woohoo_relations(sim_identifier, target_sim_identifier, status, display_message=True): sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) target_sim_info = TurboManagerUtil.Sim.get_sim_info(target_sim_identifier) if sim_info is None or target_sim_info is None: return set_sim_motive_value(sim_info, SimMotive.SOCIAL, get_sim_motive_value(sim_info, SimMotive.SOCIAL) + 8, skip_disabled=True) set_sim_motive_value( target_sim_info, SimMotive.SOCIAL, get_sim_motive_value(target_sim_info, SimMotive.SOCIAL) + 8, skip_disabled=True) if has_sim_trait(sim_info, SimTrait.EVIL) and has_sim_trait( sim_info, SimTrait.GOOD) or has_sim_trait( sim_info, SimTrait.GOOD) and has_sim_trait( sim_info, SimTrait.EVIL): if random.uniform(0, 1) <= 0.05: add_sim_buff(sim_info, SimBuff.GOODVSEVIL_ANGRY) if random.uniform(0, 1) <= 0.05: add_sim_buff(target_sim_info, SimBuff.GOODVSEVIL_ANGRY) if random.uniform(0, 1) <= 0.05: add_sim_buff(sim_info, SimBuff.GOODVSEVIL_SAD) if random.uniform(0, 1) <= 0.05: add_sim_buff(target_sim_info, SimBuff.GOODVSEVIL_SAD) change_sim_statistic_value(sim_info, 50, SimCommodity.TRAIT_ROMANTIC_AFFECTION) if status is True: TurboSimUtil.Gender.set_gender_preference( sim_info, TurboSimUtil.Gender.get_gender(target_sim_info), TurboSimUtil.Gender.get_gender_preference( sim_info, TurboSimUtil.Gender.get_gender(target_sim_info)) + 10) change_sim_statistic_value(sim_info, 10, SimCommodity.BUFF_SOCIAL_FLIRTYCONVERSATION) change_sim_statistic_value(target_sim_info, 10, SimCommodity.BUFF_SOCIAL_FLIRTYCONVERSATION) change_sim_statistic_value(sim_info, -10, SimCommodity.BUFF_SOCIAL_ANGRYCONVERSATION) change_sim_statistic_value(target_sim_info, -10, SimCommodity.BUFF_SOCIAL_ANGRYCONVERSATION) change_sim_statistic_value( sim_info, -10, SimCommodity.BUFF_SOCIAL_EMBARRASSINGCONVERSATION) change_sim_statistic_value( target_sim_info, -10, SimCommodity.BUFF_SOCIAL_EMBARRASSINGCONVERSATION) change_sim_statistic_value(sim_info, -10, SimCommodity.BUFF_SOCIAL_BORINGCONVERSATION) change_sim_statistic_value(target_sim_info, -10, SimCommodity.BUFF_SOCIAL_BORINGCONVERSATION) change_sim_statistic_value(sim_info, -10, SimCommodity.BUFF_SOCIAL_HAPPYCONVERSATION) change_sim_statistic_value(target_sim_info, -10, SimCommodity.BUFF_SOCIAL_HAPPYCONVERSATION) change_sim_statistic_value( sim_info, -10, SimCommodity.BUFF_SOCIAL_PLAYFULCONVERSATION) change_sim_statistic_value( target_sim_info, -10, SimCommodity.BUFF_SOCIAL_PLAYFULCONVERSATION) change_relationship_with_sim(sim_info, target_sim_info, ShortTermRelationshipTrackType.ROMANCE, 5) change_relationship_with_sim(target_sim_info, sim_info, ShortTermRelationshipTrackType.ROMANCE, 5) current_fun_short_rel_amount = get_relationship_with_sim( sim_info, target_sim_info, ShortTermRelationshipTrackType.FUN) short_fun_rel_gain_amount = 0 if -100 <= current_fun_short_rel_amount <= -50: short_fun_rel_gain_amount += 20 elif -50 <= current_fun_short_rel_amount <= -15: short_fun_rel_gain_amount += 10 elif 15 <= current_fun_short_rel_amount <= 50: short_fun_rel_gain_amount += -10 elif 50 <= current_fun_short_rel_amount <= 100: short_fun_rel_gain_amount += -20 change_relationship_with_sim(sim_info, target_sim_info, ShortTermRelationshipTrackType.FUN, short_fun_rel_gain_amount) change_relationship_with_sim(target_sim_info, sim_info, ShortTermRelationshipTrackType.FUN, short_fun_rel_gain_amount) current_friendship_short_rel_amount = get_relationship_with_sim( sim_info, target_sim_info, ShortTermRelationshipTrackType.FRIENDSHIP) short_friendship_rel_gain_amount = 0 if -100 <= current_friendship_short_rel_amount <= -50: short_friendship_rel_gain_amount += 20 elif -50 <= current_friendship_short_rel_amount <= -15: short_friendship_rel_gain_amount += 10 elif 15 <= current_friendship_short_rel_amount <= 50: short_friendship_rel_gain_amount += 5 change_relationship_with_sim(sim_info, target_sim_info, ShortTermRelationshipTrackType.FRIENDSHIP, short_friendship_rel_gain_amount) change_relationship_with_sim(target_sim_info, sim_info, ShortTermRelationshipTrackType.FRIENDSHIP, short_friendship_rel_gain_amount) current_awkwardness_short_rel_amount = get_relationship_with_sim( sim_info, target_sim_info, ShortTermRelationshipTrackType.AWKWARDNESS) short_awkwardness_rel_gain_amount = 0 if -100 <= current_awkwardness_short_rel_amount <= -50: short_awkwardness_rel_gain_amount += 20 elif -50 <= current_awkwardness_short_rel_amount <= -15: short_awkwardness_rel_gain_amount += 10 change_relationship_with_sim( sim_info, target_sim_info, ShortTermRelationshipTrackType.AWKWARDNESS, short_friendship_rel_gain_amount) change_relationship_with_sim( target_sim_info, sim_info, ShortTermRelationshipTrackType.AWKWARDNESS, short_friendship_rel_gain_amount) increase_sim_ww_statistic(sim_info, 'times_sex_got_accepted') else: change_relationship_with_sim( sim_info, target_sim_info, ShortTermRelationshipTrackType.AWKWARDNESS, -10) change_relationship_with_sim( target_sim_info, sim_info, ShortTermRelationshipTrackType.AWKWARDNESS, -10) current_romance_short_rel_amount = get_relationship_with_sim( sim_info, target_sim_info, ShortTermRelationshipTrackType.ROMANCE) short_romance_rel_gain_amount = 0 if -100 <= current_romance_short_rel_amount <= -50: short_romance_rel_gain_amount += 20 elif -50 <= current_romance_short_rel_amount <= -15: short_romance_rel_gain_amount += 10 elif 15 <= current_romance_short_rel_amount <= 50: short_romance_rel_gain_amount += -10 elif 50 <= current_romance_short_rel_amount <= 100: short_romance_rel_gain_amount += -20 change_relationship_with_sim(sim_info, target_sim_info, ShortTermRelationshipTrackType.ROMANCE, short_romance_rel_gain_amount) change_relationship_with_sim(target_sim_info, sim_info, ShortTermRelationshipTrackType.ROMANCE, short_romance_rel_gain_amount) current_friendship_short_rel_amount = get_relationship_with_sim( sim_info, target_sim_info, ShortTermRelationshipTrackType.FRIENDSHIP) short_friendship_rel_gain_amount = 0 if -100 <= current_friendship_short_rel_amount <= -50: short_friendship_rel_gain_amount += 20 elif -50 <= current_friendship_short_rel_amount <= -15: short_friendship_rel_gain_amount += 10 elif 15 <= current_friendship_short_rel_amount <= 50: short_friendship_rel_gain_amount += -10 elif 50 <= current_friendship_short_rel_amount <= 100: short_friendship_rel_gain_amount += -20 change_relationship_with_sim(sim_info, target_sim_info, ShortTermRelationshipTrackType.FRIENDSHIP, short_friendship_rel_gain_amount) change_relationship_with_sim(target_sim_info, sim_info, ShortTermRelationshipTrackType.FRIENDSHIP, short_friendship_rel_gain_amount) current_fun_short_rel_amount = get_relationship_with_sim( sim_info, target_sim_info, ShortTermRelationshipTrackType.FUN) short_fun_rel_gain_amount = 0 if -50 <= current_fun_short_rel_amount <= -15: short_fun_rel_gain_amount += 10 if 15 <= current_fun_short_rel_amount <= 50: short_fun_rel_gain_amount += -10 elif 50 <= current_fun_short_rel_amount <= 100: short_fun_rel_gain_amount += -20 change_relationship_with_sim(sim_info, target_sim_info, ShortTermRelationshipTrackType.FUN, short_fun_rel_gain_amount) change_relationship_with_sim(target_sim_info, sim_info, ShortTermRelationshipTrackType.FUN, short_fun_rel_gain_amount) current_friendship_rel_amount = get_relationship_with_sim( sim_info, target_sim_info, RelationshipTrackType.FRIENDSHIP) friendship_rel_gain_amount = 0 if -100 <= current_friendship_rel_amount <= -40: friendship_rel_gain_amount += -2 elif -40 <= current_friendship_rel_amount <= 0: friendship_rel_gain_amount += -2 elif 0 <= current_friendship_rel_amount <= 20: friendship_rel_gain_amount += -2 elif 20 <= current_friendship_rel_amount <= 40: friendship_rel_gain_amount += -2 elif 40 <= current_friendship_rel_amount <= 80: friendship_rel_gain_amount += -3 elif 80 <= current_friendship_rel_amount <= 100: friendship_rel_gain_amount += -4 if has_sim_trait(sim_info, SimTrait.LONER) and sim_ev( sim_info).active_sex_handler is None and random.uniform( 0, 1) <= 0.2: add_sim_buff(sim_info, SimBuff.EMBARRASSED_LONER) current_romance_rel_amount = get_relationship_with_sim( sim_info, target_sim_info, RelationshipTrackType.ROMANCE) romance_rel_gain_amount = 0 if -100 <= current_romance_rel_amount <= -40: romance_rel_gain_amount += -2 elif -40 <= current_romance_rel_amount <= 0: romance_rel_gain_amount += -2 elif 0 <= current_romance_rel_amount <= 20: romance_rel_gain_amount += -2 elif 20 <= current_romance_rel_amount <= 40: romance_rel_gain_amount += -2 elif 40 <= current_romance_rel_amount <= 80: romance_rel_gain_amount += -2 elif 80 <= current_romance_rel_amount <= 100: romance_rel_gain_amount += -2 change_sim_statistic_value(sim_info, -20, SimCommodity.BUFF_SOCIAL_FLIRTYCONVERSATION) change_sim_statistic_value(target_sim_info, -20, SimCommodity.BUFF_SOCIAL_FLIRTYCONVERSATION) change_sim_statistic_value(sim_info, -20, SimCommodity.BUFF_SOCIAL_ANGRYCONVERSATION) change_sim_statistic_value(target_sim_info, -20, SimCommodity.BUFF_SOCIAL_ANGRYCONVERSATION) if has_sim_trait(sim_info, SimTrait.LONER): embarrassing_conversation_commodity_amount = 40 else: embarrassing_conversation_commodity_amount = 20 if sim_ev(sim_info).active_sex_handler is None: change_sim_statistic_value( sim_info, embarrassing_conversation_commodity_amount, SimCommodity.BUFF_SOCIAL_EMBARRASSINGCONVERSATION) change_sim_statistic_value(sim_info, -20, SimCommodity.BUFF_SOCIAL_BORINGCONVERSATION) change_sim_statistic_value(target_sim_info, -20, SimCommodity.BUFF_SOCIAL_BORINGCONVERSATION) change_sim_statistic_value(sim_info, -20, SimCommodity.BUFF_SOCIAL_HAPPYCONVERSATION) change_sim_statistic_value(target_sim_info, -20, SimCommodity.BUFF_SOCIAL_HAPPYCONVERSATION) change_sim_statistic_value( sim_info, -20, SimCommodity.BUFF_SOCIAL_PLAYFULCONVERSATION) change_sim_statistic_value( target_sim_info, -20, SimCommodity.BUFF_SOCIAL_PLAYFULCONVERSATION) add_relationsip_bit_with_sim( sim_info, target_sim_info, SimRelationshipBit.SHORTTERM_RECENTNEGATIVESOCIAL) if display_message is True and ( TurboSimUtil.Sim.is_player(sim_info) or TurboSimUtil.Sim.is_player(target_sim_info)): display_notification(text=215847180, text_tokens=(target_sim_info, sim_info), title=0, secondary_icon=target_sim_info) increase_sim_ww_statistic(sim_info, 'times_sex_got_rejected')