-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
- You will now never loop into the same z-level on transition. So if you are exiting the derelict z-level, you won't re-enter the derelict z-level on the other side.
- Added this to the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4995 316c924e-a436-60f5-8080-3fe189b3f50e
-Added a define for the minimum amount of damage a mob takes from plasma.
-Increased it to 20, from 10.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4931 316c924e-a436-60f5-8080-3fe189b3f50e
-Cameras won't shock you anymore, when cutting the power wire.
-Cultists cannot be gibbed by placing more runes that is allowed, instead it says no and to clear any unused runes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4926 316c924e-a436-60f5-8080-3fe189b3f50e
Changed the tank dispenser path from /obj/machinery/dispenser to /obj/structure/dispenser.
Fixed a bedsheet bin bug.
Updated the map and away missions.
Removed assistantChamber.dmm and desert.dmm.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4906 316c924e-a436-60f5-8080-3fe189b3f50e
http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=10501
-You can insert the Auth Disk by clicking on the nuclear bomb.
-Changed how aliens are selected. It will filter the list of possible candidates by checking for players who aren't inactive for more than a minute. If no possible candidates are found, it increases the filter by another minute. It does this 5 times before giving up.
-Alien embryos cannot have carriers and they are more likely to infect someone.
-The time it takes before a larva bursts is increased a bit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4897 316c924e-a436-60f5-8080-3fe189b3f50e
-Fire made more deadly, as the flames will add more damage and a fire can spread more quickly.
-Fire can break windows now, meaning they can potentially extinguish themselves by opening a window to space.
-Increased the delay for atmos to process a cell and airgroup, will help with the lag for 50 player servers.
-Minor tweaks were made.
--Plasma needing a bit more before displaying its overlay.
--Pressure can now damage you at 550 kPA. This was because it wasn't viable to set the pumps to over-pressurize a room and potentially kill people.
--High pressure warning shows at 325.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4869 316c924e-a436-60f5-8080-3fe189b3f50e
- Added an areatest verb to debug verbs. This tests areas for whether they have APCs, air alarms, etc.
- Added an 'autoname' subtype of obj/machinery/camera. Cameras of this type auto-assign their c_tag, based on which area they're in, followed by a number. For example "Male Dorm #1", "Male Dorm #2", etc.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4806 316c924e-a436-60f5-8080-3fe189b3f50e
•Only usable through the admins' view_variables as of now, since no actually good ways of implementing them came up
•makeSkeleton() is still there, ready to be used wherever you wish.
•Note: Skeletons have no underwear and no eyes.
•Rewrote some minor stupid shit
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4800 316c924e-a436-60f5-8080-3fe189b3f50e
- Tested with various damtypes/locations/mobs but if i'm a dumbass and overlooked a problem feel free to punch me and revert this
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4762 316c924e-a436-60f5-8080-3fe189b3f50e
Added a config option config.automute_on It toggles automuting.
Admins cannot be muted.
Made the proc/cmd_admin_mute code shorter.
Automuting defaults to off
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4758 316c924e-a436-60f5-8080-3fe189b3f50e
This includes:
- Individual wounds
- Dismemberment
- Bone breaking
It also adds configuration values to config/game_options.txt to control the point at which bones break and limbs are cut off.
Does not include surgery or bleeding yet.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4720 316c924e-a436-60f5-8080-3fe189b3f50e
machine.process() now uses a return value to remove itself from the processing machines list. This is more efficient and will help reduce costs especially at round start where some 5000+ machines were removed from the list using first-find. Now there is no searching involved. Instead of machines.Remove(src) just do .=PROCESS_KILL that will return the flag to the proc which called it (the MC) and trigger its removal from the list. If you're deleting something don't even bother removing it from the machines list, there is no need to.
Simplified the last_processed stuff for the MC. It's now a single variable rather than 3. It is simply a typepath rather than a reference to an object (this is so it works even if said object is deleted)
MC stats in admin status_panels now show the length of the processing lists (indicated by #). I've just realised I forgot to mention what the abbreviations are:
The less obvious ones are: Dis=diseases; Net=pipes; Pnet=powernets; Mch=Machines; Tick=the game-mode ticker.
Beach-water now uses an overlay image rather than a separate object.
Fixed a typo in the shuttle console.
Hydroponics trays no longer use first-find within their process() for checking the plant is in the tray (why is that even there anyway? talk about lazy)
Removed some junk/placeholder procs like organ/proc/process() return
Removed newscasters from the processing machines lists.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4603 316c924e-a436-60f5-8080-3fe189b3f50e
Cleaned up the files themselves.
Everything in code/game/objects should now be in proper files or places with the exception of the files in the /weapons/ sub-folder.
There's two instances of me not following the exact file structure.
- /obj/item/brain has been moved to a file in mob/living/carbon/brain
- /obj/item/clothing/mask/facehugger has been moved into mob/living/carbon/alien/special
Both of these may not make sense according to the object structure, but they do make sense logically. If it's a problem just move them.
Next up: Finish the files in the weapon folder, then start moving defines down.
My god I hope I havent broken everything.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4547 316c924e-a436-60f5-8080-3fe189b3f50e
Next up, objects! One day we'll be able to click on something in the object tree, and actually end up where all the object code is.
I standardized robot/life.dm while I was at it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4510 316c924e-a436-60f5-8080-3fe189b3f50e
- The problem was actually down to an ancient bug, which wrongly calculates the temperature of tiles with very little gas on them - tiles exposed to space. Space suits protect down to a temperature of 2.0K, space is 2.7K, which I assumed to be the lowest temperature anywhere. Unfortunately I forgot about this bug at the time, which can cause the gas temperature on tiles with little air to even hit negative kelvins (Nobel prize, plox). This happens relatively often, each floor tile that meets the criteria experiences this about once every 50 ticks and if you're standing on it when it happens, your cold protection will be 0%, because the temperature on the tile will be lower than 2.0K. Everything will be fine in the next tick cold-protection-wise, but your body temperature is already lowered to under the damage threshold by then.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4498 316c924e-a436-60f5-8080-3fe189b3f50e