Hydrate
Content warning: One of the external shells contains mild gore. The thumbnail is in a spoiler section.
Hydrate is a collaborative ghost made by Zdzisiu and Zichqec, in celebration of “hydrate day” on 8/201). The ghost is focused on one single function; reminding the user to drink water at a regular, customizable interval, and giving positive reinforcement when a drink is taken. No random dialogue is available.
Features
- Drink reminders, which can be set at a custom interval
- Optional reminder sounds; comes with 6 defaults and an option to add a custom sound
- Drink reminders may be “paused”, which will stop drink reminders for as long as the pause menu is open, and ensure the user's drink streak is not lost
- Tracks stats such as how many drinks the user has taken in total, how many drinks the user has taken that day, and the current number of drinks the user has taken in a row without missing any, and displays them in a stats menu
- An option for the user to indicate that they've taken an extra sip of water outside of the timed reminders
- A dynamic shell and dressup menu built into the main menu
- Includes options for picking shells and dressups at random
- Encouragement and water facts in the right click menu
- Uses only a single surface, making it easy to create custom shells
- If other ghosts send a communication to Hydrate, Hydrate will return the user's drinking stats, as well as information about what shell and dressups it's currently using
- Automatic update checks for ghost, shell, and balloon
Reminder sounds
Hydrate comes with a selection of sounds that can be played to alert the user that it's time to take a drink. Half of the default sounds are based on water, while the other half are various chimes. There is also an option to add a custom sound, which can be any sound file (of a supported type2)) that the user wants.
The user may choose no reminder sound, a single reminder sound, or have Hydrate pick a random sound each time it gives a drink reminder. There is also an option to include or exclude the custom sound from the random selection, in case the user has not picked one, or does not want their custom sound in the mix.
The volume of the reminder sound may also be set from this menu. The user may test the volume by clicking on any of the reminder sounds to play them.
Communication features
Hydrate comes with communication features that allow it to interact with other ghosts, without needing to update Hydrate itself. There are two methods for getting the stats, which can be used separately or in conjunction with each other.
The commu ping method
When Hydrate is pinged by other ghosts using the OnCommunicate function, it will respond by sending back a message telling the ghost to Hydrate, and silently passing along the user's stats, hidden by a \e
If the developer includes HydrateStatsSilent
as a part of their message to Hydrate, Hydrate will send the stats silently, without displaying anything to the user.
The user's stats are sent as a simple array, and can be broken down with this code, or similar:3)
ConvoTag = SPLIT(reference1,"\e")[1] //This is splitting off everything after the \e in Hydrate's message, so the commas in the dialogue don't mess up the array _replyto = ConvoTag[0] //Anything the dev sent after the \e will be in here. _in_ checks should be used to check the contents of this, since it can contain other things. _session = TOINT(ConvoTag[1]) //How many drinks the user has taken this session _streak = TOINT(ConvoTag[2]) //How many drinks in a row the user has currently taken _total = TOINT(ConvoTag[3]) //How many total drinks the user has taken (note that this was not tracked until v1.1.0) _extratoday = TOINT(ConvoTag[4]) //How many extra sips the user has taken this session _extratotal = TOINT(ConvoTag[5]) //How many extra sips the user has taken total _shell = ConvoTag[6] //Name of the shell Hydrate is currently in _dressups = REPLACE(ConvoTag[7],"|-|",",") //Simple array of all the dressups Hydrate is currently using. How many there are will vary depending on the shell being used, but _in_ checks can be used to check for specific ones. _scale = TOINT(ConvoTag[8]) //Hydrate's current shell scaling, as a percentage.
This method is ideal for making comments about Hydrate's shell and dressups, to ensure that the ghost is using up-to-date info.
The raiseother method
Every hour on the hour, Hydrate will use a raiseother command to send its stats to all other open ghosts. Any ghost can receive this event simply by adding this function.4)
OnHydrateGhostStats { Hydrate.session = TOINT(reference1) //How many drinks the user has taken this session Hydrate.streak = TOINT(reference2) //How many drinks in a row the user has currently taken Hydrate.total = TOINT(reference3) //How many total drinks the user has taken (note that this was not tracked until v1.1.0) Hydrate.extratoday = TOINT(reference4) //How many extra sips the user has taken this session Hydrate.extratotal = TOINT(reference5) //How many extra sips the user has taken total Hydrate.shell = reference6 //Name of the shell Hydrate is currently in Hydrate.dressups = REPLACE(reference7,"|-|",",") //Simple array of all the dressups Hydrate is currently using. How many there are will vary depending on the shell being used, but _in_ checks can be used to check for specific ones. Hydrate.scale = TOINT(reference8) //Hydrate's current shell scaling, as a percentage. }
This method is ideal for tracking the user's stats to comment on them over time.
This event is sent with raise and not notify, since it may be helpful in some situations, but it is recommended not to put dialogue in this function.
Balloon
Hydrate comes bundled with the H2O balloon, which is a small water-themed balloon created for use with Hydrate.