NickWildish / Mas-NSFW-Submod

A submod dedicated to bring you and Monika THAT much closer. How close you ask? Like, THIS close 🤏
39 stars 86 forks source link

Bug - “I feel horny” allows player to sext without affection or topic requirements #144

Open SaltyMelonLord opened 8 months ago

SaltyMelonLord commented 8 months ago

It seems like the “I feel horny” mood prompt isn’t working properly.

label nsfw_mood_horny:
    # Check when player's last succesful sexting session was
    if store.persistent._nsfw_sexting_success_last is not None:
        $ timedelta_of_last_success = datetime.datetime.now() - store.persistent._nsfw_sexting_success_last
        $ time_since_last_success = datetime.datetime.now() - timedelta_of_last_success
    else:
        $ time_since_last_success = datetime.datetime.today() - datetime.timedelta(days=1)

    # If the player's last succesful sexting session was less than three hours ago
    if (time_since_last_success >= datetime.datetime.today() - datetime.timedelta(hours=3) or not mas_canShowRisque(aff_thresh=1000)) and store.persistent._nsfw_sexting_success_last is not None:
        m 2wubld "Oh!"
        m 2rkblc "I'm sorry, [player]. I can only guess how distracting that must be."
        m 3rkblb "If it becomes too much, maybe you should take a minute to..."
        m 3dkblu "Ahem..."
        m 3ekblb "De-stress..."
        m 1hubla "Just make sure you think only about me!"
        if mas_canShowRisque(aff_thresh=1000):
            m 1hubsa "..."
            m 1gubsa "Maybe once I've crossed over, I'll be able to lend you a {i}helping hand{/i}."
            m 1hubsa "Ehehe~"
        return

    m 1tua "Oh? Is that so, [player]?"
    m 3tub "Well... I think I know a way that I can relieve you of {i}that{/i} problem..."
    m 3tta "Would like me to lend you a hand?"

What I’m seeing here is that first we have the “!= and is not are not the same” problem again in the if condition for the first dialogue block where store.persistent._nsfw_sexting_success_last is checked.

Furthermore, the way the condition is written, it will only jump into that block if there has been at least one successful sexting session. Since the default value for store.persistent._nsfw_sexting_success_last is None (defined in nsfw_topics.rpy), it means that by default Monika will offer you to start a sexting session without any check whether your affection level is high enough or the sexting topic has been seen before.

I can rearrange the whole event and fix the conditions for you if you like. Always happy to contribute.

NickWildish commented 8 months ago

Yeah if you feel like taking it on, go for it. May as well add it to your existing PR so we can merge them all at once.