MausTec / edge-o-matic-3000

Firmware for the Edge-o-Matic 3000
GNU General Public License v3.0
103 stars 29 forks source link

Advoidence Timer #52

Open LanceLake opened 1 year ago

LanceLake commented 1 year ago

I recall a popular Mistress mentioned that someone could just keep clenching to avoid the teasing rather than go through it again. This needs to be stopped. :)

Set a JSON value for "AdvoidenceTimerThreshold (INT) - ms" , "AdvoidenceTimerOnMin (INT) - seconds", "AdvoidenceTimerOnMax (INT) - seconds", "AdvoidenceTimerOffMin (INT) - seconds", "AdvoidenceTimerOffMax (INT) - seconds"

When the system detects a clench that last longer than AdvoidenceTimerThreshold, then pick a random number between AdvoidenceTimerMin and AdvoidenceTimerMax and turn on the vibrator and don't check for clenches. Once the timer has run it's course, turn off the vibrator for a random number between AdvoidenceTimerOffMin and AdvoidenceTimerOffMax. Once this is done, return to whatever mode was selected and start checking for clenches again.

This means that if someone tries to hold back the machine by clenching constantly, then the machine would just turn into a random vibrator until it detects that the user isn't constantly clenching.

B4ben-69 commented 10 months ago

i'm thinking of a solution for this. it can adversely affect normal clench detection in my case. I can't edge correctly without the clench feature and go over the edge.

LanceLake commented 10 months ago

If this would adversely affect the clench stuff, then have this as a separate mode or even better, toggled within the json so that you can have both or one or the other or none. AvoidanceTimerActivated (INT)

MauAbata commented 10 months ago

Separate modes and toggles are good ideas. Remember: Everything contributed is an opt-in mode change. This code is shipped to a whole bunch of devices, so changing how it functions to make an edging session work in your case may not work best for the general public.

That said, there's a lot of config and special cases getting added into the code via requests, so I'm working on developing an event-driven plugin system so that things like this don't have to all get hardcoded into the device firmware. Peseudocode and such is fine, but hold off any real code work / PR until that event system is in place.

B4ben-69 commented 10 months ago

i can work on this when you have a stable version out

B4ben-69 commented 10 months ago

i pushed modification to my 'Clench-anti-cheat' branch to resolve this issue if your interested. This feature is not on by default and only applies if turned on in the 'orgasm setting' menu