Now each human will have a list of HUD images, that will be refreshed if it's required, say, a medic walking near you with a medHUD will refresh both medical images.
The list, called hud_list, uses seven defines for all the images, defined in the __DEFINES.dm
I also added a check for not rounding the health bar if the pacient it's dead, fixing some issues with showing dead people in critical or with possitive health.
#2632 Fire Issues (Fire doors work, Flamethrower reverted to making a flamethrower liquid fuel subtype, flame grenades now make a puddle of welder fuel that is lit aflame with napalm)
#2630 (The code has been calling (turf).temperature_expose when it was supposed to be hotspot_expose), #1865 (aqain)(Added a check to remove trace gas fuel under a certain point).
Also: added a flashpoint value for plasma, which is the temperature at which it self-ignites (Currently 246C or 519K which is equal to gasoline)
Partial-tile firedoors now default to full-tile firedoors as the part-tile ones were breaking ZAS zones entirely. Possible cause of #2627 and maybe #2451, but those need tested and I did not have time.
#2632 Fire Issues (Fire doors work, Flamethrower reverted to making a flamethrower liquid fuel subtype, flame grenades now make a puddle of welder fuel that is lit aflame with napalm)
#2630 (The code has been calling (turf).temperature_expose when it was supposed to be hotspot_expose), #1865 (aqain)(Added a check to remove trace gas fuel under a certain point).
Also: added a flashpoint value for plasma, which is the temperature at which it self-ignites (Currently 246C or 519K which is equal to gasoline)
Partial-tile firedoors now default to full-tile firedoors as the part-tile ones were breaking ZAS zones entirely. Possible cause of #2627 and maybe #2451, but those need tested and I did not have time.
Now germ level for organ has three thresholds.
LEVEL 1: Occasional (prob(10) every tick) tox damage and germ level raise.
LEVEL 2: In addition to that, tox damage and germ level raise every tick.
LEVEL 3: Limb necrosis. Currently does nothing but icon change. Also at this stage germs start leaking to connected organs, so amputations is necessary.
- Halved metabolism in general. This is not a huge change, and will probably work out fine.
- Nerfed metabolism for individual chemicals, for example spaceacillin, greatly.
- Made mildly toxic chemicals, like pure carbon, cause medical side-effects.
This puts metabolism back between where it was originally, and where the metabolism rebalance put it. Thus it shouldn't break anything, but it'll make most chemicals a bit more usable.
They also added extra checks to
-Everytime a mob attacked (checking for super strength and electric hands)
-Every time a mob was attacked (checking for dermal armour)
-Every time a human was shot (checking for reflex)
-Every time a human breathed (checking for rebreather)
-Every tick of human life (checking for regen)
-Every hud update (checking for radar)
Not to mention just cluttered mob code in general. I know there won't be any noticeable performance increase from this but seeing as they were never going to be finished (I asked Doohl beforehand) and mob code is messy enough as is, I think only good can come of removing the code.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5587 316c924e-a436-60f5-8080-3fe189b3f50e
This is a BS12 compatability change, with the intent of making it easier to change the rate at which chemicals are metabolized. This doesn't actually change anything about the effect of chemicals, until REAGENT_METABOLISM is adjusted, at which point the effect of a lot of chemicals will automatically adjust accordingly.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5556 316c924e-a436-60f5-8080-3fe189b3f50e
-Made the plasma reagent damage you more.
-Syndicate agent cards will now work inside pdas/wallets.
-Switched some comments around in event.dm
-There was a bug with a local variable list which became null, the problem was that there is no where in the code which could've nulled it. My only theory is that not having . = list() first maybe caused problems, but it seems unlikely. I changed it anyway and I'll keep watch for it re-appearing.
-Fixed a bug with the new firedoors not keeping out heat, since they have an opacity of 0. I switched everything around to accommodate this.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5516 316c924e-a436-60f5-8080-3fe189b3f50e
Credit goes to CodenameB and Spike68 for the original proposed commit. Althought it ended up changing, this commit still uses all of their suicide messages. Thanks to carn for pseudo-coding the base of the system that I ended up using to implement this.
The suicide verb checks the item in your active hand and calls that item's suicide_act(). (/obj/item/proc/suicide_act(mob/user)) The proc displays the suicide message to any viewers and returns a damage type. The suicide verb then applies 175 damage to the mob divided by the number of damage types. If the proc returns null (meaning that the item does not have a suicide_act() defined) the regular suicide occurs.
To any coder wanting to add items to this:
- You MUST return one or more damage types. "return (BRUTELOSS|FIRELOSS)" for example.
- Please do not manually type in the item's name; use [src] to refrence an it instead. It'll save time down the road if an item gets renamed. It also helps handle any child of that item without copy/pasting the proc to each child.
- Please do not use 'usr' for anything.
Parrots can now see which item they are holding onto in the stat panel.
The toy crossbow should once again work properly. Fixes Issue 1227.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5468 316c924e-a436-60f5-8080-3fe189b3f50e
-Fixed #2005 (for sure!)
-Fixed the stacking of brightness. Now the most bright item turned ON will be the one where the user gets its luminosity of.
-Cleaned the code a bit. Now only one var controls the on/off switch of light, and another holds the value of brightness when on.
Removed var/constant/Pi It's already defined in setup.dm
Moved a bunch of global_lists to global_lists.dm
Fixed hair randomisation. (still bits to do)
Moved a lot of preferences_setup.dm stuff into __HELPERS/mobs.dm They'll be FAR more helpful as generic procs, rather than something tied to preferences.
Merged mob/var/nopush into status_flags with the CANPUSH flag
Merged mob/var/nodamage into status_flags with the GODMODE flag
Removed mob/var/be_syndicate and mob/var/be_random_name as they are not used.
Added /proc/ui_style2icon(ui_style) proc. It converts a string like "Midnight" into its corresponding dmi file. The code fore creating a new hud uses it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5164 316c924e-a436-60f5-8080-3fe189b3f50e
-Added a new symptom. Voice Change will randomly change the voice of the affected mob. It isn't obtainable by Mutagen and I'll likely put it in the virus crate when I have more dangerous viruses.
-Added two new symptom procs. Start() will be called once and it'll be called when the advance disease processes. Allows you to setup stuff for your symptom. End() will be called before the disease is deleted.
-Diseases that spread by blood won't spread by contact anymore. You will need to directly inject someone to get them to catch the disease.
-Put a limit on shivering and fevers.
-Added a specialvoice variable. You can use SetSpecialVoice() to set a special voice that the player will say instead. To unset it, use UnsetSpecialVoice(). GetSpecialVoice() will return the player's special voice value.
-Added two DEFINEs for the limit which is how much a human can take before taking burn damage from heat or coldness.
-Some symptom value changes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5136 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
This is simply not acceptable:
- http://www.kamletos.si/screen%20overlay%20reduced%20size.png
- http://www.kamletos.si/screen%20overlay%20reduced%20size2.png- Made being in an area with extremely low pressure cause some damage (2 per tick)
- Reduced the amounts of oxy damage per tick from 1/ 2 / 4 to 0.5 / 1.5 / 3, depending on your body temperature.
- Reduced the maximum amount of high pressure damage per tick from 7 to 4. Slightly reduced the damage coefficient for pressure damage. This is to prevent insta-kills in high pressure areas. I still can't believe poly originally set it to 20 per tick...
- Added a maximum amount to how much your body temperature can change in each tick. It can go up or down by, at most, 30K per tick.
- Space suits and the captain's armor now protect against pressure damage
- Fixed some more of poly's awful code. The STOPSPRESSUREDMAGE flag now defines whether you take damage or not. You still need to have both a helmet and suit with that flag on to be fully protected from pressure damage. This will make the pressure damage indicator actually show what kind of pressure is affecting you and not just pretend like you're not taking damage, even if you are, while in a space suit:
//Poly code<TM>
if(istype(wear_suit, /obj/item/clothing/suit/space)||istype(wear_suit, /obj/item/clothing/suit/armor/captain))
--pressure.icon_state = "pressure0"
else
--...
- Standardized /obj/item/examine().
- Added the important stuff to the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5004 316c924e-a436-60f5-8080-3fe189b3f50e
- Added a new admin tool to crack down on people who log out as soon as they realize they didn't get antagonist. The tool reports all clients, who have either logged out, are dead, ghosted or suicided or are AFK (IE alt+tabbed). The tool triggers 10 minutes into the round and only triggers once. You can set when this triggers by changing the ROUNDSTART_LOGOUT_REPORT_TIME define (currently set to 6000 (deciseconds))
- Fixed a bug where it was impossible to admin-set someone's health in the view vars screen.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4997 316c924e-a436-60f5-8080-3fe189b3f50e