This is a pretty big one.
PyMaster 0.5 had a bug where the grant intervals didn't work correctly. They ended up having no effect, while at the same time another bug was causing the master/mistress to forget about giving you permission to do stuff prematurely. This has been fixed.
But that's not all. This release also features a number of other changes:
Several punishment and task additions, as well as some removals.
Previously, there was an "ability" system, which stored some boolean data. This has been replaced with a "facts" system that can store any kind of data. Checks for tools and other conditions can now be much more dynamic as a result.
A barely-used system of "forbidden" activities has been removed. The only place where it was used, as a special punishment for "mistimed" orgasms, has been replaced with a normal punishment for the misdeed.
There is now a chance, each time you ask, that you will be denied orgasm, even if you have waited long enough. There is also a very high chance that you will never be allowed orgasm within the course of a masturbation session at all.
The morning routine now includes mandatory exercise, the duration of which is random. The reason is to wake you up, so that you're not like a zombie when you're reciting your oath.
"Wait games" have been added. You are occasionally forced to play one of these before bed (about once a week on average), and you are usually forced to play one of these before a beg to use the toilet is accepted. Currently there's a math game, a typing game, and exclusive to toilet begs, an exercise game. I'd like to add more if I think of any.
Tasks and punishments will now normally not be assigned if they include activities which you would not be granted permission to do. There is a random chance that this check will be ignored, however (larger for tasks than punishments).
Activities associated with tasks and punishments are now added to memory when they are assigned, rather than when they are completed, so that you can't get a free activity because of them. The activities associated with tasks and punishments are removed from memory if the task or punishment expires.
Three new command-line options have been added. "--data-dir" or "-d" specifies the data directory to use. "--save-dir" or "-s" specifies the save directory to use. "--reset-facts" will forcibly delete all memories of various facts about you (and cause your master or mistress to ask about them again, when relevant).
Some of the rules have been clarified.
Taking to long to do an activity that had a time limit no longer is its own misdeed, but instead counts as doing the respective activity without permission. It's set up so that, for example, if you take three times as long as you were supposed to, you will be punished twice.
All activities now have time limits. The reason for this is to prevent subversion of the requirement to ask for permission by, say, asking for permission to use the toilet, and then using the toilet 5 hours later; or asking for permission to eat junk food, and then spending the next hour eating through a bag of potato chips.
Getting a "no" answer now adds a very small penalty to your wait times which lasts for two days. If you're asking for things a reasonable amount of times, it won't have much of an effect, but if you nag your master or mistress about doing something every minute, it will add up. For reference, it takes about 20 "rejections" to reach the same penalty as taking a shower without permission, about 40 to reach the same penalty as using the toilet without permission, and about 75 to reach the same penalty as looking at porn without permission.
The default save directory is now ~/.config/.pymaster instead of ~/.pymaster, so that it's more concealed.