-Pepper spray fits on sec belts again
-Ion rifle emp_act() was changed so that it is only effected by severity 1, meaning that it won't be EMPed by its own shot any more (Unless someone is able to shoot himself with it)
-The HONK mech panel was updated to be current with the main one, though if someone here is an html wizard they could *probably* do away with having a seperate menu to handle the extra stuff
Fixes Issue 772
Fixes Issue 713
Fixes Issue 781
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4410 316c924e-a436-60f5-8080-3fe189b3f50e
Apparently that meteor gun I forgot to comment out had the wrong path in its attack_self(). Instead of the meteor gun shooting meteors, every /obj/item/weapon could shoot them when clicked on.
Here's a pile of runtime fixes to go along with this.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4409 316c924e-a436-60f5-8080-3fe189b3f50e
- The Chemdispenser now has a max of 100 energy instead of 75.
- The Chemdispenser now has a slightly increased recharge rate.
- The Chemdispender now starts the round with full energy.
Changed the flufftext for when you are being cloned to remove the part about fuzzy memories as there was confusion over whether this meant memory loss or not.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4408 316c924e-a436-60f5-8080-3fe189b3f50e
Fixes issue 505.
Boxing gloves can no longer be used to make stungloves (with descriptive, adventure game style failure message~).
People without savefiles no longer get the "Your save has been deleted" message when they start the game.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4402 316c924e-a436-60f5-8080-3fe189b3f50e
I added a check to meteor and space dust Bump() directly because changing ex_act() on the machines themselves would make the machines immune to bombs and C4.
Hopefully fixes issue 716.
light/process() was added back in causing lights to use power as they were meant to. Recently lights have been made brighter causing more power to be drained. As a result the engineering APC would not last very long. The station using a lot of power is a good thing since the singularity produces an incredible amount of power, so to keep this higher power demand but still give engineers a fighting chance to set up the singularity, I've bumped up the engineering APC's starting battery power.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4401 316c924e-a436-60f5-8080-3fe189b3f50e
-Fixes horrible chat spam when loading smartfridges up with plant bags.
-Fixes the bug where reishi mushrooms and broken wooden floors had ugly sprites.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4400 316c924e-a436-60f5-8080-3fe189b3f50e
Fixes issue 458.
Changes singularity beacons to consume zero power but require a certain amount to function, check the attached wire rather than the area for that power, and most importantly, not work in space(normally).
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4399 316c924e-a436-60f5-8080-3fe189b3f50e
> A clown's medical, crew, and security records are updated with his newname. (read below for details)
> reject_bad_name() now checks for dumb names like "space","floor","wall","r-wall","monkey","unknown","inactive ai" (if you know any other important ones let me know)
> clname() [clown-name] and ainame() [AI name], procs which allow those players to rename themselves, were merged into /mob/proc/rename_self(var/role, var/allow_numbers=0)
This proc gives the mob 3 chances to name itself. It checks names using reject_bad_name() (the same thing that checks the round-start names). If it fails 3 times it will not change the name. If it succeeds it will call the proc in the next bullet point.
> /mob/proc/fully_replace_character_name(var/oldname,var/newname) will replace most references to a mob's oldname and replace it with newname. It updates name, real_name, mind.name, updates their id, updates their pda and updates all their data_core records (manifest records like medical, security, general, locked)
> data_core procs merged because they were massive and all identical.
> accidentally fixed an AI sound which accidentally played upon login. It conflicted with the "Welcome to the station crew" announcement. So I commented that out to try the 'new' fixed one. If people hate it I'll comment it back to how it was.
> naming a mob with the big name at the top of viewvars will use fully_replace_character_name()
> Removed an uneccessary regenerate_icons() proc from every player which spawns. Should speed up spawns a smidge
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4396 316c924e-a436-60f5-8080-3fe189b3f50e
-Made a variation of hasvar(), creatively named has_var(), intended for objects versus datums, and the var name is case sensitive
-Clean up mech fabricator code considerably, the terrible switches are all gone, and I was able to make it more robust at the same time. Now, if a junk item is added to the mech fab then it will remove it in 1 of 2 places, either when you call for the queue to be displayed (Will throw it out then rebuild the queue) or when it is processing the queue (Will throw it out then reprocess the building), so now you won't even see the shit that finds its way in there.
-Made the add_part_to_set() useful, now instead of dumping everything in the "Exosuit Equipment" category, it checks if the design's category matches one of the part sets, then adds it to said set if it does (All others get dumped into "Misc"). Right now there isn't much through, mostly just moving MMIs, cells, etc... to the "Misc" set, but this would be easy to use with any other system that handles designs
-Little bit of OCD here, but I noticed that the cells on the map were all 'crap' cells, even though they had 1.5x the charge of a high-capacity cell, so I changed them all to high-capacity cells with the added capacity
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4395 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed issue 767.
The fix for issue 767 was to standardise spray bottle code (to some extent). If any issues come up with spray bottles, pepper spray, or chem sprayers, report them to me.
Cyborgs now recharge their pacid and lube, as the size of their bottles was quartered.
Changed the flash item_state to "flashbang", as it looks exactly like a flash.
There's some more grammar and text clean up too, mostly with crates and closets.
Finally, fixed some pipes in virology, and changed the librarian's den so the bookcases are at the top.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4394 316c924e-a436-60f5-8080-3fe189b3f50e
-Gave brains a proper gib() so they are actually gone
-Added a proc to the 'Secrets' panel, a variation of power the station that instead is MUCH faster and just powers all SMES, turns on output, and sets it to max (helpful for testing and it doesn't leave the server frozen for 60 seconds to process)
-Added maxHealth to mice, killer tomatos, and walking mushrooms (They started with 5 health but could be 'healed' up to 20)
-Made the updatehealth() actually usable outside of humans by making it use maxHealth instead of just '100'
-Fix for shield generator sprites not updating properly, caused by not all generators actually updating on powerloss, and adding an update_icon() where needed
Fixes Issue 751
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4393 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed issue 439.
Relating to the 439 fix, added a new define, TEMPERATURE_DAMAGE_COEFFICIENT. The name is slightly misleading, as it is used in reagents that affect body temperature. Leporazine now functions properly, and you can once again into space with a cup of coffee and a firesuit.
Also did a few grammar changes for newscasters.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4392 316c924e-a436-60f5-8080-3fe189b3f50e
Everything related to clothing should now be defined in modules/clothing. I'm almost certain there's clothing code hidden elsewhere but this should be the vast majority of it finished.
Everything is set up related to the object types themselves (meaning paths.)
So all hats will be in modules/clothing/head, all gloves will be in modules/clothing/gloves, ect...
I've removed 'modules/clothing/random.dm' and 'objects/items/clothing.dm' which both seemed to just be a place where people would put stuff they were too lazy to find a proper home for.
I've also moved files that had no, or very few blocks of code into more catagorized areas.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4388 316c924e-a436-60f5-8080-3fe189b3f50e
The fluff behind this change is that a loss of power in an area prevents the use of advanced camera features, such as XRAY. The amount of power which the camera network supplies is only enough to operate a light on the camera.
Since there are lots of ways to remove an AI from a camera, it is possible that some bugs will appear. I tested what I could and fixed all the errors that I noticed. If any additional errors appear, please let me know.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4387 316c924e-a436-60f5-8080-3fe189b3f50e
Changed the config, item list, wizard spawn gear etc to eliminate the possibility of the old type of spell book
Removed commented out (non functional) code from change.dm
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4383 316c924e-a436-60f5-8080-3fe189b3f50e
Fixes issue 676.
Fixes issue 700.
Fixes issue 753.
Fixes issue 754.
Fixes issue 755.
Additionally I slightly cleaned up grenade code and stunglove code, and removed mustardbomb.dm (because it was fucking awful).
THIS BUGFIX TRAIN AIN'T STOPPIN'
Thanks QualityVan for the issue 521 fix, and thanks Nodrak & Tobba for pointing out my dumbness for issues 753 & 754 respectively.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4382 316c924e-a436-60f5-8080-3fe189b3f50e
As such, changelings can now be reported at round-end, even after gibbing. Resolves Issue 251
Changeling power proc_holders are now datums rather than objects.
Condensed all those changeling stings down a bit. This will make fixing issue 351 easier to fix
Replaced changeling fakedeath and a number of checks for the zombiepowder reagent with a bitflag: mob/var/status_flags & FAKEDEATH
setting the FAKEDEATH flag will make the mob appear dead in exactly the same way changeling parasting and parapens worked. I've updated changelings and zombiepowder to work with this flag.
Bug fixes for the staff of change. There was a type mismatch and I typo'd "alien" as "xeno" so xenos were not being randomly picked.
TODO:
changeling purchased verbs could probably be moved to mind/special_verbs. Likewise, other modular antag proc-holders can be merged with the changeling system using the same type of datum. (namely wizards)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4377 316c924e-a436-60f5-8080-3fe189b3f50e
Fixes Issue 229
-Removed the shitty almost-throwing after_attack() for grenades and replaced it with something sane. Now (Like before) when you activate a grenade, it turns throw mode on.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4375 316c924e-a436-60f5-8080-3fe189b3f50e
As a result, cyborg death squads were also removed.
This also fixes meteors and space dust so that they properly take into account the borders of the map. Please do not hardcode numbers when we have defines in place.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4374 316c924e-a436-60f5-8080-3fe189b3f50e
The all-in-one reagent grinder now knows that the bartender's shaker is something that holds reagents, and not a reagent itself. Fixes issue 747.
Note: Chemistry paths in general are rather horrible, they really need re-working. I suspect other non-reagents are able to be placed into this grinder as a reagent instead of as a container.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4372 316c924e-a436-60f5-8080-3fe189b3f50e
I then changed the get_mobs_in_view() to use this proc for gathering mobs and radios.
The old system would loop through lists for a total of 5000 per function call, in an empty server. This new system will loop at around 1000 in an empty server.
I made get_mobs_in_radio_ranges() use a level parameter to help make it more effecient by only bothering with the mobs that are in the Z level that are getting the radio message.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4365 316c924e-a436-60f5-8080-3fe189b3f50e
- Syringe overlay layer is no longer above the blackout screen layer
Fixed issue 704
- Shades (and all simple animals) can no longer pick up paper bins/donut boxes with clickdragging (were there any other objects you could pick up with onmousedrop?)
Fixed issue 737
- Dead/unconscious cultists no longer count towards cultist count on rune use (such as sacrifice, nar-sie, etc)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4360 316c924e-a436-60f5-8080-3fe189b3f50e
Removed mob/var/original_name. Totally replaced by datum/mind/var/name now.
Fixed round-end reports. They're now sort of follow the same format as each-other. Not sure how the ew format will work out on high-pop servers. if it's too spammy I'll tone it down a bit.
Fixed pais. Their life.dm got unticked. Resolves issue 759
Known issues:
Borgs keep their human objectives when borged. I'll try playing with the way minds work for silicon mobs whe the freeze is over.
No way to edit minds when they are not attached to a mob. Need some sort of debugging tool.
datum/mind/var/mob/living/original isn't realy used for much. I could probably replace it with something more useful.
Changeling stuff is messy. The changeling object should be referenced by the mind not the mob (or something)
Part 4 on hold will try to address some of these known issues. Taking a break from minds to fix some issues on the tracker now (like lighting)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4355 316c924e-a436-60f5-8080-3fe189b3f50e
-Made all aliens use this when determining how much to recharge/heal.
-Deleted handle_enviroments which overshadow the base alien one.
-Made maxHealth actually do something. Every alien caste had their own updatehealth which did not use maxHealth, which was very stupid.
-Fixed an issue where a player could accidentally pick a breed of alien when typing. Larva will now have to use the evolve verb in order to evolve.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4353 316c924e-a436-60f5-8080-3fe189b3f50e
Replaced mob/var/original_name with datum/mind/var/name.
Halved the speak-chances of every simple-animal because that constant squeaking was insufferable.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4346 316c924e-a436-60f5-8080-3fe189b3f50e
Minds part2 - Carn loses her mind.
The way datum/mind stuff works has been changed a lot. I really can't explain everything. If you have any questions it'd just be easier if you leave a comment or ask me in coderbus.
Generally, minds now represent IC characters rather than following a client around constantly. Minds can change owners, mobs, (names WIP).
Technical babble:
The var/current and var/original variables of the mind datum must always be of type mob/living (or null). Please do not mind.transfer_to(ghost_mob). If you want to ghost somebody use ghostize()! It will do all the technical stuff for you.
mob/dead/observer/var/corpse was removed. mob/dead/observer/var/mind is now used as a reference to the last mind the player had (so respawning code has something to reference), but also because mind.current is a far more useful way of tracking a corpse. If somebody triggers a mind.transfer_to() call on your corpse, your mind will be tranfered to another mob/living or something...that will then be considered your corpse. This could allow for more interesting mind_transfers. For instance, the "raise corpse" rune ghostizes any player in the corpse to be raised and selectes a random dead player to take possesion of their character! The person possesing them will have all of their memories, objectives, etc. The poor guy who was originally the owner cannot re-enter body if there is another player in his body...but if that player is ghosted he can once again return. Exorcisms anybody?
Changes to cloning and hydroponics. I will likely have to rework these later as they're hacky as hell right now.
A lot of stuff is now handled by Login/Logout rather than in hundreds of different places. One such example, mind datums get their variables updated at Login and Logout.
Fixed a few minor bugs. I'll update the issues manually in a bit because I literally cannot think atm.
TL;DR guide:
-If you want to make somebody a ghost use ghostize(). Or you will need to find a doctor to stitch your bits back on. :)
-You don't have to worry about making minds. Simply doing key="carnwennan" or whatever will either: A) make a new mind and initialise it if there isn't one or B) take possession of the mind currently attached to the mob.
-It's safe to transfer a mind even if a key isn't in-body (e.g. they are ghosted/admin-observing etc!) Minds have an active variable which tracks whether they are currently synced with a key. This is to avoid dragging ghosts back into their bodies when say, a wizard mind_transfers them.
-Transferring a mind whilst var/active=1 will cause the following: mob.key = mind.key. So no need to do that separately (in fact you'll lag things if you do, so don't)
-If you do want to initialize a mind manually, say if you don't have a client to login to the mob yet, simply do new_mob.mind_initialize(). Simple! When someody is logged into that mob they will take ownership of the mind and it will sync up.
NOTE: a lot is probably broken since this is a pretty massive change. Please let me know asap (with actual info! Shouting at me, "IT BORKED HALP", doesn't help)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4342 316c924e-a436-60f5-8080-3fe189b3f50e
Split a bunch of procs in helpers.dm into new files:
-helper_list
-helper_text
-helper_type2type
These files are sorted into groups internally. Hopefully people will make it easier for people to find useful procs.
I've added comments to a good chunk of these procs as well explaining what they do.
I've removed a few unused or unnecessary procs and fixed up a couple that were not working as intended.
I've also moved a mob proc 'get_equipped_items()' into mob/inventory.
All of the non-helper.dm files (besides mob/inventory.dm) are the result of fixing duplicate procs. It seems that there used to be text searching procs where one was case sensitive and one was not, and at some point someone removed the case-sensitivity of the case sensitive procs. I've re-added the case-sensitivity and as a result, I've had to go through extra files and ensure that they were calling the proper proc.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4341 316c924e-a436-60f5-8080-3fe189b3f50e
-Made the telecommunication server and NTSL broadcast more robust so that having a HUB is an option, if someone decides to create their own network.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4325 316c924e-a436-60f5-8080-3fe189b3f50e
This part focuses on:
-structuring the way silicon mobs initialise upon login (there was some hideous copypasta in Login() and New() which used spawn() to change the order of the calls so it was all jumbled up. I think I've got it sorted now.
-Borgs var/real_name was not initialising as "Cyborg". Meaning the name checks were kind of borked.
-Ghosts are now deleted at logout if they no longer have a key. This will stop unneeded ghosts being left lying around. It will not delete ghosts with keys assigned (so people can't respawn or anything). Removed all the del(ghost_ref) stuff I could find. Generally movign the key from a ghost should be the last thing you do as the ghost will be deleted by Logout. However I've put it in a spawn() to hopefully avoid coders accisentally using it in a way which causes runtimes.
-Fixed clone-plants spawning dud potato-people left, right and centre. They'll now dump seeds if it fails for whatever reason.
-Cultist and Rev status are removed at mob/living/silicon/Login() rather than having to be called on a special-case basis everywhere. This may not be necessary when this stuff is finished.
-Removed a bunch of :
-Commented mob/living/Login() with the rest of the antag-indicator code from cloning.dm and hydroponics.dm for any coders whom feel brave/suicidal to fix the related issues
Next on the agenda, replacing mob/var/original_name with datum/mind/var/name to fix the ticker runtimes
Then, fixing mind/proc/transfer_to(mob) once and for all. (There are issues with duplicate minds, role updates, inconsistent initialisation etc etc *yawn*
There's probably a few obscure bugs in there somewhere. Might want to hold off on the updates for a bit. Coderbus will likely spot them all by the end of the week.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4322 316c924e-a436-60f5-8080-3fe189b3f50e
What this means is that if you set something like RD and scientist both to Medium, when it comes around to the Level 2 or the Medium preference checks if RD is open you will be placed in the lottery for RD before scientist (or any other non-head job set to Medium). Unlike the change made in r4296 this one still respects player preferences. r4296 would ignore all non-head jobs for EVERY level until it found a head before it even began to run the standard selection code. With this change the older FillHeadPosition is not quite as important and could likely be removed if wanted however it does still help in cases where you would end up with no heads yet someone had a head set above never.
tl;dr The idea of having a head job chosen over a normal job of the same level is good, however the way it was implemented was not due to how it ignored other preferences.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4317 316c924e-a436-60f5-8080-3fe189b3f50e
-Fixed issue 643, the code will now check that the TKed item's loc is on turf, i.e: not in a locker or in someone's pockets.
-Fixed issue 282, the locker wouldn't pick up the chameleon's dummy because it was an effect and not an item. I added a hacky exception for the chameleon projector. I've also made the starting item something more useful so that people will use it more. Please report any issues you find with this, I'm sure nothing too bad will happen.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4313 316c924e-a436-60f5-8080-3fe189b3f50e
-Resolved Issue 720. Message should now properly tell you who got cult armor
-Resolved Issue 642. Bad indentation caused girders to disappear if you move away while building them.
-Commented out admin messages when monkeys used non-monkey SEs
-Atmos techs given Construction Area access
-Remapped the south end of Med-Sci
--Misc. Research Lab added to science
--Virology moved to be made more isolated
-Updated Changelog
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4312 316c924e-a436-60f5-8080-3fe189b3f50e
-Fixed the issue with cookies not appearing mobs until they picked up something
-Now when you are in the process of suiciding, Life() will treat all breaths as failed and you will take more oxyloss than someone in crit that isn't suiciding (Instead of being in crit forever because you could still breathe just fine).
-Fixed a pretty dumb bug in human life, where you would be treated as dead at -100 health, but you didn't die until you hit -101. This mostly caused issues with oxyloss, because once you hit -100 you stopped breathing, but were still alive.
-You can no longer put borg items on monkies, and while I was at it I made directionals for their handcuffs
Fixes Issue 728
Fixes Issue 731
Fixes Issue 714
Fixes Issue 694
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4310 316c924e-a436-60f5-8080-3fe189b3f50e
-Fixed 661 - There was a typo which would show toxin damage twice instead of showing oxygen damage. I also made it clearer which damage was which with colour.
-Fixed 565 - I wish there was a proper way to fix this but it's better than having no door for 5 seconds. It'll now wait 2 ticks before performing the closing animation for the door.
-Fixed 722 - I think this is causing the problem, it's using name instead of real_name. I couldn't find any problems when testing this.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4309 316c924e-a436-60f5-8080-3fe189b3f50e