gegerlan / aog

Check out taber's updated 2022 version at taberenc/AOG_2022
https://github.com/taberenc/AOG_2022
44 stars 66 forks source link

Add bladder bar. #108

Open Tempmania opened 12 years ago

Tempmania commented 12 years ago

Add a bladder bar (similar to HP/SP bar but yellow in color) with a fixed max value. The bladder will fill up at a rate of 1 point every few seconds - it should take 10 to 20 minutes to reach max. Once it reaches a 90 or 95 percent, garnet will say that she needs to pee. The player then has a choice of finding a toilet or leaving garnet as she is. Using a toilet will return the bladder meter to zero - a few toilets will need to be added in buildings/houses. If she does not find a toilet in time garnet will say that she can't hold it in much longer and will proceed to pee where she is. Garnet's perversion and arousal will increase if she pees where she is standing.

By default garnet will pee where she is standing wearing her current clothes. So, only the urination sprite needs to be made on top of garnet's sprite (maybe it can be done on the persona as well - her expression will need to be changed though).

If Garnet's perversion is high, she will have a choice of how she wants to pee (like squatting or dog style - maybe more). She'll strip nude in the other choices and gain higher arousal.

Garnet's urination can be used to trigger some events in certain small maps like inside buildings and rooms. This can be used to expand on various sex events and dialogs possible.

gegerlan commented 12 years ago

I've just committed the base system for the bladder.

There are some demo events in Garnet's house if you enter DEBUG mode (which you get from behind the table). If you want to try and modify how the core parts work (rate of change for instance) you'll need to modify the Bladder script (press F11, and scroll down).

You'll need to turn on switch 173 before the bladder starts working (just for now, so we don't break stuff by accident) which you can do by using the demo events in Garnet's home.

gegerlan commented 12 years ago

OK, I just checked the event update order for RPG Maker. It seems like they iterate over the map events before the common events. This means that if you want to handle the "full bladder" event both globally and locally, you should be able to have the local event override the global.

If you want to have a "default" series of events happen when Garnet's bladder is full, you create a common event that autoruns and triggers by switch 174 (Bladder Full). On every map where you want this to be overridden you just add an event that autoruns on switch 174, and after the event is done you set switch 174 to off, so the common event isn't triggered.

Tempmania commented 12 years ago

Wow, the bladder system is far better than I imagined and the sample's provided in debug mode also helped a lot. The scripts are complete I guess, now only the sprite and persona animations are left.

I'll start working on creating peeing animations for Garnet's persona - it may take a while. However, the sprite animations will have to be done by someone else - I'm not too good at making graphics with a limited number of pixels.

Note : If the animations and sprites for the more perverted peeing positions are complete the script will have to be modified to include the choices. Maybe I should start learning ruby?

gegerlan commented 12 years ago

You could probably do most of the changes through the event commands, unless there's something specific you wish to get out of writing Ruby.

Choices of positions could be done by having a common event where you select what to do (and if there's something map specific, you'd just add an event like the blue haired debug guy), while checking variables like perversion or whatever stats you're tracking.

Persona animations could follow the way the current sex animations are done (which you've previously have been working with), so you wouldn't need something ruby specific here.

If you want to add a layer to the persona, like a wet patch, there needs to be an update to the script so it know what it's supposed to track and display.