MausTec / edge-o-matic-3000

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

Post orgasm modes , Denial count and milk-o-matic post orgasm modes #91

Open B4ben-69 opened 5 months ago

B4ben-69 commented 5 months ago

i did some clean up in the code to make it more in line with your future target codes

B4ben-69 commented 5 months ago

this is #75

LanceLake commented 4 months ago

Need a setting to allow for either Denial_count or Timer.

So the mode should allow for the following options.

  1. Deny X number of times without orgasm, then 1 orgasm is earned.
  2. Deny for X mins. without an orgasm, then 1 orgasm is earned.
  3. Randomly choose 1 or 2 for this cycle.

Once a cycle is complete (orgasm earned), then it pulls a new timer setting from the JSON and uses that to wait for a new cycle to start. This will be from 0 time to a very high number (around 12 hours). This timer will be with the motor off and no activity with the motor to allow someone's refractory period to happen and perhaps act like an alarm to wake up the next day.

It seems in the code that you don't allow this refractory period to happen and also, it auto changes to a denial count rather than giving the option to use the timer after an orgasm (or even alternating those options. 5 denials, orgasm, wait 25 mins. 10 mins. of edging, orgasm, wait 43 mins. 9 denials (random die was unkind), orgasm, etc.

This should be chosen for each cycle.

B4ben-69 commented 4 months ago

This code added the edging count to permit orgasm. Selected in the post_orgasm_modes ( Denial Count). Both these modes turn off the cycle after 1 orgasm. Then i added the Milk-O-Matic (love your name for this) mode which only uses the Denial Count because i figured that it's impossible to achieve a second or third orgasm if the body does not show that it was edged properly. Time base is not a guaranty to achieve an other orgasm. This modes restarts the edging cycle after the set rest period (milk-o-matic rest period) to account for refractory time of the body. This mode will stop after set amount of orgasms (max orgasm). I realize i did not code the rest period to go higher then 1800 seconds (30 minutes). I did not think a milking session would give the subject a higher rest. Then it's not a forced milking. But nothing stops me from changing this variable to minutes and going as high as 12h rest. This could then be used as a wakeup clock. For example setting the max orgasm to 2, the rest period to 7h and the edging to any number of edges to permit orgams. Get to bed, give yourself a good edging session in milk-o-matic to get first orgasm before sleep. The machine stops for 7h of rest and wakes you up to an other edging session before giving you the second orgasm.

The other features i added is the random on edging triggers. This means you don't know how many edges or time before permitting the orgasm. This works in all modes. Timer, Denial count or milk-o-matic. The random does not go below 1/2 of the set denial count or timer.

The random in the orgasm modes is only to choose between edge time or milk-o-matic. you don't know if your getting a long edging session (timer) or a long milking session (denial count repeted with multi-orgasm).

The feature to restart all the cycle is not implemented

LanceLake commented 4 months ago

I did not think a milking session would give the subject a higher rest. Then it's not a forced milking.

Ah.. To be young again.. :)

It can be nice to have one at the top of the hour, every hour for example. Still a forced milking, but allows someone to be tortured by cumming more than once a session.

LanceLake commented 4 months ago

So.. I see you changed it to mins. The better way to code it is to leave it seconds, then allow for really high numbers. After all, 86,400 is the number of seconds in a day and also allows for more options for people who want to measure it in seconds.

Also, the comments I made above still apply. All your comment did was explain your reasoning. It still doesn't help with the issues I pointed out.

So the mode should allow for the following options.

1) Deny X number of times without orgasm, then 1 orgasm is earned.
2) Deny for X mins. without an orgasm, then 1 orgasm is earned.

Randomly choose 1 or 2 for this cycle or have the option to select what mode to use. 

Once a cycle is complete (orgasm earned), then it pulls a new timer setting from the JSON and uses that to wait for a new cycle to start. This will be from 0 time to a very high number (around 12 hours). This timer will be with the motor off and no activity with the motor to allow someone's refractory period to happen and perhaps act like an alarm to wake up the next day.

Can you modify the code to allow this idea? Because as I understand it now, it does not.

The random does not go below 1/2 of the set denial count or timer.

Why? If I set it to 1 hour, I don't want to know if it will for sure give me 30 mins. at least. Yes. I should be able to set that randomizer so that it gives me an orgasm after 0 edges potentially. You are trying to incorporate the timer it seems into the logic loop of the counts when it should be separate on it's own.

B4ben-69 commented 4 months ago

well 1) is called Denial count mode. It's already in the code 2) is called timer mode. it's already in the code

Getting mode 1 or 2 in random values (randoim triggers) at 1/2 minimum to max is simply a choice and can be changed. I would ask for a poll on this.

3) Milk-o-matic is the only mode that restarts cycles. if random triggers is selected, it pulls the config and randomizes it for the next permit orgasm at 1/2 minimum denials The reason to not stay in seconds is because to get to 7hours (25200s) in seconds would take for ever in the Gui. Calculating that value is not for everyone. So this is simply a compromise. Setting a rest period of 30 sec versus a minimum of 1 minute is not a big difference.

B4ben-69 commented 4 months ago

I can change the random trigger to have 2 additional variables. Min time and minimum denials. That way you can have a random between the min and max

LanceLake commented 4 months ago

Getting mode 1 or 2 in random values (random triggers) at 1/2 minimum to max is simply a choice and can be changed. I would ask for a poll on this.

The timer and denial code already allows for not limiting it to half minimum.

As for a poll, let's let the developer decide.

Milk-o-matic is the only mode that restarts cycles. if random triggers is selected, it pulls the config and randomizes it for the next permit orgasm at 1/2 minimum denials

The importance is to not know if it's a orgasm or edge. That's the point of it. If I know the first 5 is for sure going to be edges and not orgasms means that it ruins the not knowing something.

The reason to not stay in seconds is because to get to 7hours (25200s) in seconds would take for ever in the Gui. Calculating that value is not for everyone. So this is simply a compromise. Setting a rest period of 30 sec versus a minimum of 1 minute is not a big difference.

So you default it to a low number in seconds and then for those of us who want to up it, we can edit the JSON to give us that (or use the mod code coming out soon).

I can change the random trigger to have 2 additional variables. Min time and minimum denials. That way you can have a random between the min and max

That works. Perhaps min_orgasms as well?

I'm always for more config options than less. :)

B4ben-69 commented 4 months ago

Sorry if my explanation's are not very good. English is a second language to me. For your concern : "The importance is to not know if it's a orgasm or edge. That's the point of it. If I know the first 5 is for sure going to be edges and not orgasms means that it ruins the not knowing something."

There are now 2 "Permit Orgasm" triggers

There are 4 Post orgasm Modes:

Things i can improve.

And Lastly, Maus did not accept my proposed code yet, so maybe it will not be used. He is changing the structure of the code so if i want better acceptance i will have to change this code to fit his new modal.

LanceLake commented 4 months ago

I didn't realize that English is your second language. Perhaps that is the reason why our wires are crossing. Let me explain what I what I mean in a more programatic way. I think there is confusion here about what is going on.

Each mode has something it is keeping track of. Let's call them cookies. For every success of the mode that is selected, it gets a cookie and displays a cookie count.

Timer mode (otherwise known as Auto Mode) is how it works now. Nothing needs to be changed. It tries to collect as many cookies as possible for a certain length of time, but the number of cookies don't matter. Just display them on the screen.

Denial count (Uses Denial Trigger) : At post orgasm in this mode, the system switches to manual mode and stops

The only difference between timer and denial is that now, each cookie is an edge/denial. It tries to get as many cookies as possible, but now, it has a goal of getting cookies up to the amount figured out. Still display the number of cookies on the screen.

Denial have the following variables. Min cookie count Max cookie count Random cookie adjust minimum Random cookie adjust maximum

For timer mode, you have these variables. Min timer Max timer Random timer adjust minimum Random timer adjust maximum

Cookies in MOM mode is simply full orgasms. MOM wants to get as many cookies as possible.

1) Get a cookie. 2) Wait a random number of seconds. 3) If the limit is reached, stop. Otherwise go to 1.

That random number of seconds also needs the following variables. Min MOMtimer Max MOMtimer Random MOMtimer adjust minimum Random MOMtimer adjust maximum

Min MOMlimit Max MOMlimit Random MOMlimit adjust minimum Random MOMlimit adjust maximum

NOT the same ones from timer mode. But different ones so that you can have custom settings for MOM and not share them with timer mode.

That's all MOM is..

Now, you also included random mode. That's even more simple.

1) Pick one of the 3 modes (Edging, Denial, Mom). 2) Complete that mode. 3) Go to 1.

So it seems like this is what you are going for. Yes? There doesn't need to be "Half of this value" or anything like that. This makes it so Mom works and random will keep the user guessing.

If you want to add in even more evil.. then put a percentage for random.

Random_PercentChance_Mom Random_PercentChance_Edge Random_PercentChance_Timer

and have the EoM "roll" a d100 and decide on what is next. This allows the user to randomly guide to what random should be. Want a random without a timer? Set that to 0 and set the others to 50 and 50. Want more chance it will be an edge rather than an orgasm? Set mom to 10 and edge to 90.

This allows for maximum customizability and still keeps the modes simple and effective.

B4ben-69 commented 4 months ago

Ok so I get your idea right. The MoM your asking just 1 Turns on the motor. 2 waits for orgasm ( orgasm + 1 ) 3 rests 4 Turn on motor 5 waits for orgasm 6 rest ( repeat until max orgasm achieved) 7 return to choose next orgasm mode ( timer, denial, or MoM again) and repeat indefinitely

This will never do tease and denials.

So it's basically a race to get as much orgasm as possible. This might be good for ladies.

In this loop cycle I just described, other than the timer for resting between orgasm what's the use for MoM timer you described?


What I have created is this in MoM mode 1 turn on motor, 2 turn off motor if close to edge ( edge +1 ) 3 repeat until max edge reached 4 permit orgasm ( orgasm +1 ) 5 rest Repeat 1 until max orgasm reached.

What I have done is more a forced orgasm instead of a race orgasm. I'm making sure the male is ready for an orgasm, thus the denial count to permit orgasms. Better suited for a male that can only get 2 maybe 3 orgasms in 2hours.

This said, what your asking is doable

LanceLake commented 4 months ago

In this loop cycle I just described, other than the timer for resting between orgasm what's the use for MoM timer you described?

Nothing. It's purely to handle the refectory period. This is why I wanted it in seconds. Because women have a quick refectory period and I may want to set it to do 1-60 seconds randomly so it will stop, but can start at any time after up to 1 minute (or even 30 seconds).

I understand that MoM mode is not as useful in the purely program space as you may like. However, with the upcoming plugins, I can do it so that it does an edging for however long.. then switch it to MoM... then do more edging.. Perhaps a timer.. then back to MoM mode. Etc.

This would be a "Building block" piece of code that by itself, it's functional and useful if you want just to be orgasamed over and over. However, with the plugins, more "logic" can be applied to how many of what needs to be done.

You are building a Ferrari and I am suggesting building some wheels so that users can make their own car how they want. :) I think that is where we are crossing lines. The "How many of this or that in the entire session" can be figured out by the plugin.. All we need is a mode that does what MoM does best. Make the user orgasm X amount of times with no teasing involved.

But to make it run, this is why I suggested the random mode. Then it will pick at random a full session. This is basically what my plugin is expected to do when written. Pick a random thing to do to the subject. A random mode should be added here.. But it shouldn't be a core of the MoM mode. It should be it's own thing.

LanceLake commented 4 months ago

BTW, for the random changes, it should default to..

Edges, Timer and then MoM.

So let's say I put in for chances..

Random_PercentChance_Edge = 20 Random_PercentChance_Timer = 40 Random_PercentChance_Mom = 40

That figures out to (If between 1 and 20), turn on Edge. If it's 21 to 60, turn on Timer. If it's 60-100, turn on Mom.

This will work fine if it equals 100%..

But what if a user puts this in..

Random_PercentChance_Edge = 33 Random_PercentChance_Timer = 33 Random_PercentChance_Mom = 33

So now, it's got up to 99.. What happens if the unit rolls a 100?

Then the random ends. Full stop and back to manual. It's a random chance of ending if it rolls higher than the total of the fields. After all, a random mode should include a random escape. :)

B4ben-69 commented 4 months ago

When I created the orgasm modes, I did add a web API called orgasm now. So this is basically a third permit orgasm trigger, other than the timer and now denials. This API is always usable if you create logic outside of the device.

Good idea for the random having a chance to fall outside. I would add an exit percentage to the 3 others to make sure of no code errors.

B4ben-69 commented 4 months ago

I'm planning to create a new EVT__PERMIT_ORGASM. To be inline when Maus new philosophy

This way the timer trigger the Denial trigger the WebAPI permit orgasm now. And any other mode could be plugins that publish the orgasm event.

This event could be picked up by Post orgasm plugins like Timer Denial count MoM Any other created

LanceLake commented 4 months ago

I would add an exit percentage to the 3 others to make sure of no code errors.

If you do it as a if/elseif, there won't be errors. Just make the final else a "Escape" code.

I'm planning to create a new EVT__PERMIT_ORGASM. To be inline when Maus new philosophy

May I recommend a separate PR for that? :)