Adds sound notifications for Ninja and Wizard Apprentice spawning -- hopefully means fewer afk antags.
Adds a ghostnotice span class, used in the new notify_ghosts proc. Upon creation, things that require ghostly attention (NarSie, golem runes) give more visible messages to the dead.
Retires the 'moderate' span class, which was only used in tomato throwing? Refactors tomato code (this ended up being the meat of this PR, somehow...)
Reorganizes some item definition/procs.
Adds a C# program that allows you to parse GitHub Pull request opening
notifications sent to an IRC and display them in-game.
Adds authentication to the world/Topic() procs, allowing you to easily
and securely input data into the game (EXPORT DOES NOT REQUIRE IT!)
Moves the constants from defines and compile_options files into the __DEFINES directory. The compile options in the latter file that are actually tweakable remain in their existing file in the code directory.
Constants from DEFINES.dm, globals.dm, names.dm, and global_lists.dm have been moved into the _globalvars subdirectory.
stylesheet.dm has been moved into the interface directory since that's a better place for it.
This move contains no code changes for stock TG. It is purely an organizational move meant to clean up hard to read code.
Some global constants that appear to be unused have been put into unused.dm, but not unticked. This list is by no means exhaustive.
Branches should be aware that they need to move any additional defines and global constants manually.
Each turf in camera-range is marked with a maptext number indicating how many cameras can see that turf.
IMPORTANT: Changed the default fonts of the skinfile. This works around an issue with byond, where certain font-faces can cause HUGE increases in memory usage client-side, giving the illusion of lag, or severe crashes.
Before changing the font-face to 'Arial': using the camera range display verb would cause dream-seeker's memory usage to climb from 146,000 K to 800,000 K (and greater, but that is the limit of my laptop's pagefile, hence crashing my entire system)
After changing the font-face to 'Arial': using the same verb (with same code) resulted in negligible memory usage increase in dreamseeker, and works absolutely fine.
Status displays and such were not affected by this bug as they use a different font to the default set in the skinfile.
It did however affect stuff such as mining satchels, and may explain why some users found the game extremely 'laggy' or crashy
-Changed the broadcast function using a precreated human. The human would still be existing and a new one was created for every use of the broadcast. Garbage collecting it was almost impossible and deleting it everytime a broadcast is made would be laggy so I modified the broadcast code to not need a mob reference.
-Added some checks in the events.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5477 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
Moved some of the static overlays such as the dither effects, druggy effect and blurry-eyes into datum/global_hud. Meaning that only one object is instanced per server rather than per mob. It reduces on code.
Commented out a green and red overlay which aren't used, which were being instanced for every mob.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4767 316c924e-a436-60f5-8080-3fe189b3f50e
Replaced usr references with mob
This means it can be called as a proc for any mob to use that code. Updated the click-procs to use this as they were using slightly different code.
Fixed an issue with AIs using the intent hotkeys
Added more sanity checks to it.
Insert key uses the same code as other hotkeys.
Commented out some unused hud-code from when we had separate intent buttons.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4766 316c924e-a436-60f5-8080-3fe189b3f50e
Added a activate held item hotkey
Added intent hotkeys to 1 2 3 and 4 keys.
hotkeys-help for details.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4759 316c924e-a436-60f5-8080-3fe189b3f50e
Hotkey-Mode: (hotkey-mode must be on)
TAB = toggle hotkey-mode
a = left
s = down
d = east
w = up
q = drop
e = equip
r = throw
t = say
x = swap-hand
f = cycle-intents-left
g = cycle-intents-right
Normal-Mode: (hotkey doesn't need to be on)
Ctrl+a = left
Ctrl+s = down
Ctrl+d = east
Ctrl+w = up
Ctrl+q = drop
Ctrl+e = equip
Ctrl+r = throw
Ctrl+x = swap-hand
Ctrl+f = cycle-intents-left
Ctrl+g = cycle-intents-right
Admin:
F5 = toggle-admin-observe (WIP)
F6 = player-panel-new
F7 = admin-pm
F8 = (WIP)
Regular controls aren't affected.
There's an additional option to press the TAB key to switch into a hotkey-mode. It's a toggle, so it stays on until you press it again. It switches focus between the map and input-bar for you. This mode defaults to off so you won't even notice it unless you decide to toggle it on with the TAB key. Whilst using this hotkey mode you get additional options like pressing "T" to say something.
The mode switching (TAB key) is completely client-sided.
http://nanotrasen.com/phpBB3/viewtopic.php?f=15&t=10024
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4686 316c924e-a436-60f5-8080-3fe189b3f50e
- Renamed the obj/hud show_otherinventory var to inventory_shown
- Added the F12 hotkey which hides most of the UI except for the intent switcher, hands, health indicator, damage indicators and the other pop-in indicators on the right. The proc is called /mob/verb/button_pressed_F12(), the verb abbreviation is "F12" and it's hidden, so it won't show in the info panel. This currently only works for human mobs.
Screenshot:
http://www.kamletos.si/minimal%20UI.png
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3926 316c924e-a436-60f5-8080-3fe189b3f50e