Before: When a client is created it's player_age variable is set to "Requires Database", then a select query is ran against the database to see if they have been seen before if they have logged in before this will have a row for them and it will set player age. However if there is no row for them it doesn't change player_age from default.
After: Before we check for an entry in the database we set their player_age to zero, we already checked we have a database connection so we know we will be able to pull this information and if we can't then it means they are a new player. Set their player_age to zero and be done with it.
What this does: Brand new players will no longer be able to bypass the jobs minimal age limit.
* NanoUI now finds and sends it's assets to the client (css, images, javascript and templates).
Part of my effort to make creating NanoUIs as simple as possible. This removes the need to add new NanoUI assets (such as templates) to the client send_resources proc.
Creates NanoUI for the PDA and Syndicate Uplink.
New features:
Crew manifest now sorted with department heads at the top.
Can select individual conversations and delete individual conversations among PDA's
Powernet Monitor much more simple now and easier to read.
Janitorial supplies locator now includes Janicart.
Items will actually refresh if you click "Refresh"
Some other changes:
Captain's PDA cartridge now has all access (added janitor access and quartermaster access)
With the conversation change I had to change how tnote (the variable that holds PDA messages works.
Setup the message server to use the new methods.
Removed procs that will no longer be used (UI generation procs from old UI methods)
Commented everything the best I can.
Created HORRIBLE, TERRIBLE lists. But it's pretty much required because that's how nanoUI rolls.
Created a variable on the uplink called NanoUI items, this list is created upon creation of the
uplink.
I included the functionality for Mimes and Clowns for our downstream servers that have those.
Unlike before, the announcement no longer require a huge list to work, saving up room from the string table.
They also work while streaming resources, meaning they won't overlap; this is because the resources are sent when a user joins, instead of when the AI makes an announcement and it messes up the ordering.
There have been improvements since last time, they now have a small delay of 10 seconds, which anyone is free to adjust.
The help screen will now only preview the sound to the AI.
The last announcement is saved to the AI's variables.
There's a limit of how many words can be said in a single announcement.
Removed user << browse_rsc() entries as they caused the delay. New assets (stylesheets, scripts, templates and images) have to be added to the client's send_resources proc or they will not exist on the client.
------------------------------------------------------------
nanoui - For creating and updating browser UIs
manomanager - For managing nanouis
Includes the "D:\Development\SS13-TG\code\game\machinery\cryo.dm" rebuilt using Nano.
Templates are stored in /nano/templates
This code is in development, it's also not commented yet.
The number of strikes a person gets is a define so hosts can modify it to their liking (I should probably move this to a config option but I can't be bothered to test it again). It defaults to 3 strikes, on the third strike you're out. It'll autoban you for 10 minutes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5123 316c924e-a436-60f5-8080-3fe189b3f50e
They include such procs as sanitize_integer(num, min, max, default) which will check num is a number, round num to make it an integer, then check if it is between min and max (inclusive). If it fails the bound-checks it will return default. There are others, have a look.
PERSISTENT PREFERENCES: Every ckey which connects to the game gets its own persistent /datum/preferences datum.
It is archived in var/list/preferences_datums = list("ckey" = datum)
At connect it is automatically associated with the client defines.dm (or a new one is created if it can't find an archived prefs datum). This means clients will ALWAYS have a var/datum/preferences/prefs which references this datum. So you can use it without checking if(client.prefs)
This has simplified only a few bits of code. It will however, allow us to make preferences like see_deadchat ghost_ears etc, persistent. So they will not reset when you DC.
SAVEFILES: Changed the player savefile code a lot. Hopefully I've not fucked it up too much. Every single variable loaded from saves is now sanity checked using the new sanity procs. This should help prevent savefiles becomming obsolete by sanitizing input to meet current requirements, without deleting all the ok variables and making you start from scratch >_> NOTE: I still need to sort out the savefile version stuff. I'll probably figure it out before the server updates anyway. It sees to be fine without it.
You can no longer choose your blood type. It is randomised (with each bloodtype having a realistic probability of occuring). This is to make blood analysis (detective/medical) less pointless. It is chosen as soon as you connect. It remains persistent throughout each round so you won't be able to change it by logging in/out over and over.
Replaces some copypasta code with is_afk() (still a fair bit to do)
There are new hyperlink shortcut things. _src_=vars will direct your hyperlink to viewvars. _src_=prefs to your preferences datum. (These are the only way to access those bits of code via links). This means that the overall amount of operations in almost every Topic has pretty much halved and is much prettier.
Replaced and removed adminplayervars from datum/admins/Topic. It was superfluous. They now all point directly to the viewvars code using _src_=vars
Removed the changelog popup at round start. Instead a button on your game-window will glow white if there are new updates. To peruse at your convenience. This will speed up connect times.
Removed the AFK_THRESHOLD define. It is integrated into is_afk() now.
TODO: remove the prefs stuff from mobs and clients and update code to use client.prefs to access that info.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5121 316c924e-a436-60f5-8080-3fe189b3f50e