Replaces magic numbers across the code base with proper constants.
Prepares for the ability to have more than one antag channel in the future.
Corrects a lie.
Created a proc for being implanted with loyalty implant which
checks for the configuration for whether or not it will work. If it is
enabled, it continues on-- if it is disabled, it returns from the proc.
Also made secure closets not automatically spawn them unless the config
is set to allow it.
Admin 'loyalty implanting' via the panel is now compliant to the
configuration file. If preferred, I am willing to make an override variable
to the proc that will allow admins to do it anyway.
Supply pack for it commented out due to inability to make it conform.
Easy enough to re-add back for anyone downstream if they wish it. Same
applies to the design.
Signed-off-by: Decius <deciusreln97@gmail.com>
* 144.1 and 144.3 are accessible through regular headsets, silly people were using them to listen in on response teams
* Moved the ERT and Deathsquid channels to 134.5 and 134.1 respectively
* Created presets for a tcomms setup on the CentComm zlevel
var/network = string is now var/list/network = list().
I've also added a "network_multi" var which is a string. This is specifically for placing cameras on a map that you want to put on multiple networks. Apparently DM's map maker doesn't support lists, so just type them all in as a string and camera/initialize() will take care of the rest.
Input the networks with commas seperating them, for example: "SS13,RD,Secret,Prison,Ect"
I fixed a few issues while editing the cameras on the map as well.
Both maps:
- Re-added the telescreen in the misc research room that got removed at some point. (Thanks to Ikarrus for pointing this out)
- Any room that had 2 cameras (one for each network) were merged into one camera with the new network lists.
- - Permabrig-hallway (SS13, Prison)
- - Every room in R&D (including robotics) (SS13, RD)
- - The bomb testing range (RD, Toxins)
tgstation.2.1.1.dmm:
- Added a missing wire in engineering-sec (Thanks to SuperSayu for pointing this out)
- Fixed some mis-orientated firelocks. (Thanks to Intigracy for pointing this out)
- - The mining door between cargo and mining
- - The door between the hallway and the engineering lobby
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5596 316c924e-a436-60f5-8080-3fe189b3f50e
Standardization of the object tree and some modified functionality.
Moved a lot of storage/*_kit and similar boxes to storage/box/* ; most of these can now be found in boxes.dm. First aid kits remain a separate item type.
Replacement Light boxes pick up lights (for example broken ones) when used on them
Moved weapon/secstorage to storage/secure
Moved plant bags, ore satchel, trash bag, and sheet snatcher to storage/bag, in bags.dm
Fixed reagent_containers and snacks to pass through attackby() so the use_to_pickup code works. This affects plant bags, trash bags, and pill bottles.
Dice packs are now pill bottles, and all pill bottles can pick up dice.
Added error handling to uplink/generate_menu() so that one mistyped string doesn't bork the whole syndie uplink menu, since strings cannot be type-checked at compile time.
Cigarette packs and crayon boxes are now storage/fancy, however they retain existing update_icon() code.
Added a comment to storage.dm so that future people know where to look for use_to_pickup and allow_quick_gather code.
Updated all maps.
I've tried to test this thoroughly but I wouldn't be surprised if there were a few lingering issues. Try not to panic if you encounter any.
Full (i think) list of changed paths:
/obj/item/weapon/storage/flashbang_kit > /obj/item/weapon/storage/box/flashbangs
/obj/item/weapon/storage/body_bag_box > /obj/item/weapon/storage/box/bodybags
/obj/item/weapon/storage/chemimp_kit > /obj/item/weapon/storage/box/chemimp
/obj/item/weapon/storage/trackimp_kit > /obj/item/weapon/storage/box/trackimp
/obj/item/weapon/storage/seccart_kit > /obj/item/weapon/storage/box/seccarts
/obj/item/weapon/storage/handcuff_kit > /obj/item/weapon/storage/box/handcuffs
/obj/item/weapon/cigpacket > /obj/item/weapon/storage/fancy/cigarettes
/obj/item/weapon/storage/mousetraps > /obj/item/weapon/storage/box/mousetraps
/obj/item/weapon/storage/PDAbox > /obj/item/weapon/storage/box/PDAs
/obj/item/weapon/storage/id_kit > /obj/item/weapon/storage/box/ids
/obj/item/weapon/storage/lightbox/mixed > /obj/item/weapon/storage/box/lights/mixed
/obj/item/weapon/storage/donkpocket_kit > /obj/item/weapon/storage/box/donkpockets
/obj/item/weapon/storage/beakerbox > /obj/item/weapon/storage/box/beakers
/obj/item/weapon/storage/syringes > /obj/item/weapon/storage/box/syringes
/obj/item/weapon/storage/gl_kit > /obj/item/weapon/storage/box/rxglasses
/obj/item/weapon/storage/diskbox > /obj/item/weapon/storage/box/disks
/obj/item/weapon/storage/stma_kit > /obj/item/weapon/storage/box/masks
/obj/item/weapon/storage/lglo_kit > /obj/item/weapon/storage/box/gloves
/obj/item/weapon/storage/lightbox/bulbs > /obj/item/weapon/storage/box/lights/bulbs
/obj/item/weapon/plantbag > /obj/item/weapon/storage/bag/plants
/obj/item/weapon/storage/satchel > /obj/item/weapon/storage/bag/ore
/obj/item/weapon/trashbag > /obj/item/weapon/storage/bag/trash
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5494 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
The Pandemic should be more compatible with advance diseases. Currently it's pretty ugly but when I get rid of the broken diseases and convert the rest to advance diseases I will clean up the pandemic.
Vaccines will now work properly with advance diseases.
Soon I'll add a system so that you are able to name your own diseases, as I've added ways for me to do that with the archive_diseases list.
Gave names to symptoms for the Pandemic.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4989 316c924e-a436-60f5-8080-3fe189b3f50e
Code-wide changes: /mob -level procs:
equip_if_possible() is now known as equip_to_slot_or_del() to prevent confusion with equip_to_slot_if_possible() and to better describe what it does.
equip_to_slot_if_possible(item, slot, del_on_fail, disable_warning, redraw_mob)
equip_to_appropriate_slot() is now a /mob - level proc.
equip_to_slot() is an unsafe proc, which just handles the final step of actually getting an item onto the mob. It has no checks of whether it can or can't do that. Use equip_to_slot_if_possible() for that purpose.
New /obj/item -level proc:
/obj/item/proc/mob_can_equip(M as mob, slot, disable_warning = 0)
This proc can be used to determine whehter a mob can pick up an item from the item's side.
Carn, I'll need you to review code/modules/mob/living/carbon/human/inventory.dm to ensure that I'm not redrawing the mob too many times.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4423 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
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
-Added in the proper list stuff for changeling stasis
-Added a verb to the debug list (Game Admin+) to check the mob lists instead of requiring the item (Works the same way)
Fixes Issue 708
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4240 316c924e-a436-60f5-8080-3fe189b3f50e
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...
Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)
These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.
Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.
If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.
Mob related in worlds before this commit: 1262
After: 4
I'm helping
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
Nodrak:
- Bags of Holding can no longer be brought to the clown planet
- Made a quick new sprite for broken telescreens
- Removed the clusterbang from the HoS safe. It is currently bugged and not in presentable condition, however, someone is working on it.
- Added a machine check to shift+click. Partial fixes issue 534 (see Zek's stuff for more.) I'm not really sure of a better way to fix this that wouldn't involve a whole pile of coding...
- Cigarettes now evenly distribute chemicals injected into a pack of cigarettes. Partial fix for issue 548 (see Zek's stuff for more.)
Commit for Zekkeit/39kk9t
- The gibber now provides attack logs of who the mob gibbed, or who the mob was gibbed by. How can you tell who a mob was gibbed by when the mob gets destroyed? Well read the next enhancement!
- Attack logs now transfer to the ghost of the mob who dies
- You can no longer survive cold by cooling yourself down before jumping into space. Fixes issue 206.
- Ghost() is now a client proc, not a mob proc. Fixes issue 442
- Fix for issue 493.
- Added a range check to shift+click. Fixes issue 534.
- Cigarette packs are now limited to (15*number of cigarettes) units of reagents. Fixes Issue 548.
- Added organ inaccuracy to guns. This means, for example, that you wont hit the mob's chest with 100% accuracy. You may end up hitting the mob's arm, or head instead. Accuracy is directly related to distance.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4022 316c924e-a436-60f5-8080-3fe189b3f50e
- Hopefully this will cut down on the server spamming/crashing escapades happening on other servers. (This wont stop that from happening, this just makes it less severe)
- Some of the sanitizes were probably unnecessary, but better safe then sorry.
Added MAX_NAME_LEN constant which is initialized to 26.
- Please use MAX_NAME_LEN instead of typing in 26 when cutting inputs short. 26's are annoying when they have to be changed and you have to hunt through over a hundred files and tens of thousands of lines of code to find them all.
Moved uplink_kits.dm to code/game/objects/storage
Moved uplinks.dm to code/game/objects
- The stuff inside uplinks.dm could really be chopped up and split into separate dm files but this will do for now.
*********************************************************
**********************Important**************************
*********************************************************
When you create code that asks the user for an input consider whether or not it gets shown to the user through html or the like.
If it does please sanatize() or strip_html() it. Also use copytext() to cutoff spam by using MAX_NAME_LEN and MAX_MESSAGE_LEN as the cutoff var.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3652 316c924e-a436-60f5-8080-3fe189b3f50e
Adds greater changeling code, but doesn't change the genome count yet on it.
Renames registered to registered_name on IDs because bs12 had it and it seemed like a good idea to do last night. For some reason.
Adds an afterattack to mobs that can be used. (In fairness, lots of shit in attack_hand should be in there instead, like stungloves and stuff, to minimize duplicated code)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3537 316c924e-a436-60f5-8080-3fe189b3f50e
- added feedback logging for newscasters
- added feedback logging for admin verbs
- added shuttle timers to escape pods
- added feedback logging to chemical reactions
- clipboard can now fit on your belt
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3465 316c924e-a436-60f5-8080-3fe189b3f50e
Commented out the authentication system. It was the remnants of the old goon authentication stuff (or maybe even older) and wasn't actually used in our code at all (at least not in any useful way, it was merely called and short-circuited to 1, so all those if(authenticated) were totally pointless. This has removed 3 unused variables from every client, a bunch of unused variables from the config and two empty text files!
Committed (as a config option) a feature requested by Apoc station. It causes a 'reply to' window to popup when an admin PMs a non-admin player. It's meant to grab their attention so they can't say "I didn't see your PM". It defaults to off. To turn it on just uncomment the #POPUP_ADMIN_PM line in config/config.txt
Fixed a derp in isday where it was fetching the month instead of the day.
Removed medal references from Gib()
Removed the medal_hub global variables because they aren't used in any way shape or form.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3444 316c924e-a436-60f5-8080-3fe189b3f50e
Shuttle call/recall announcements are now more noticeable. Removed a few ways they could be spammed.
Cats and Dogs can see in the dark.
Recommitted some of the poop stuff by Doohl because, hell it's only one day and I don't hate fun.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3382 316c924e-a436-60f5-8080-3fe189b3f50e
Made it so simple_animals with destroyer can smash tables
Reverted the detectives ammo to nonlethal
Deathsquad now spawns with loyalty implants by Deuryn's request (for IMMERSION)
Fixed a bit of border being left on the red boxing glove sprites
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3159 316c924e-a436-60f5-8080-3fe189b3f50e
The loyalty implant box now spawn in the HoS' locker and not in nullspace.
Gave the HoS' locker a secbelt.
The revolver now use the proper bullet.
Robotics spawn with their labcoat/toolbox.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2346 316c924e-a436-60f5-8080-3fe189b3f50e
/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work.
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more. More random name monkeys will help with changeling and clean up the observe/mob menus.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
Two new categories were made: station_objects and effects. station_objects, which I'm sure someone will want renamed to 'structures' contains the objects which don't need process() or power code.
Effects contains objects which are either landmarks, triggers, spawners or decal.
Screenshot:
http://www.kamletos.si/new%20object%20tree.PNG
I didn't notice any bugs, but with a revision editing 276 files of byond code, you never know.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2323 316c924e-a436-60f5-8080-3fe189b3f50e
Critters have been added and livestock removed
Xbow damage raised to 30 a shot
Centcom Survival Kit is once again a box
Sec uniforms moved into their own locker
After IRC talk
Guns that are created in the protolathe now spawn inside of a lockbox
They can be unlocked by an ID with Armory access or an Emag.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2045 316c924e-a436-60f5-8080-3fe189b3f50e
- the 'box' item no longer contains internals by default. A survival kit does tho.
- backpacks no longer contain a box, the backpacks which spawn as part of your kit at round start/late join contain a survival kit (box), which contains internals.
- engineers spawn with a different survival kit, which has an engineering em. oxy tank
- emergency oxy tanks now fit in boxes again
- engineering emergency oxygen tank (yellow) added (engineers spawn with it in their internals box), double emergency oxy tank added (not ingame yet), red and yellow oxygen tanks added (red spawns in firefighting closets, yellow is not ingame) (sprites by Aru)
- red hardhats spawn in fire closets
- CE spawns with white hardhat, one is also in his locker
- CE spawns with industrial backpack
- Pod people manual added to HOP's desk (he's the boss) and hydroponics
- Ore pile removed from code (was not used for anything and I don't want it to be)
- The mechanical and electrical toolbox in tool storage replaced with two tool closets. (We'll see if this works out)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1775 316c924e-a436-60f5-8080-3fe189b3f50e
Added Seraph exosuit. A command-type marauder with slightly better stats and different equipment. Found in CentCom.
Changed Marauder access to centcom special ops. Marauders now come equipped with an armor booster module.
When entering exosuits, the exosuit will now face in the appropriate direction. Affects Durand, Gygax, and Phazon.
Minor changes to CentCom.
Fixed a minor bug with respawn character. It should no longer report character destroyed for object completion for brand-new characters.
Fixed gas mask icons for monkeys.
Nerfed monkey vent crawling. Monkey needs to be naked to crawl through vents. And not hold anything in their hands/paws.
Merged CentCom with z-level 6 (hand tele adjusted for z level 2). Deleted ship building docks since they are not used. Z-level 6 left empty.
Detectives can now name their gun. Right click to use the verb, when holding the item.
Energy swords/cutlasses will properly change icons now when activated or deactivated. Same with energy axes. Changed some melee weapon paths a bit to accomodate this (and so they're easier to track).
Replaced cigar icons with sprites by Matty. Made matches smaller.
Added a welder and assassin costumes to admin equip list.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1741 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed typo in space ninja code thanks to Rastaf0.
Added a CentCom official and CentCom Commander costumes to admin equip list. Revised tunnel clown equip.
Fixed minor icon bug with death commando ID.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1736 316c924e-a436-60f5-8080-3fe189b3f50e
Adjusted ninja random event to go with the new mode changes.
Due to inclusion of monkey mode, added back monkey ability to vent crawl. Identical to larva.
Brains can now suicide.
Warden now starts out with a special hat. Welcome to Hat Station 13.
Holograms should no longer be draggable by space wind.
Slight change to pulse rifle so it looks like the older sprite.
Added deathsquad armor to admin equip list.
Added tunnel clown gear to admin equip list.
Fixed minor announcement bug with respawn_character.
PDAs now redirect to Notekeeper when the code is used again with an unlocked uplink.
Added a note for built AIs to adjust camera network. Camera movement doesn't always work right without adjusting the network first.
Ninjas can now hold an extra battery in their hat and suit slots.
C4s now give a message when planted on people and are recorded in the attack log.
Fixed spelling on messaging server.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1735 316c924e-a436-60f5-8080-3fe189b3f50e
Revisions to CentCom. CentCom now has its own access levels set, and a unique ID changing computer.
Added nasa void suit and captain armor to item steal list.
Fixed some run time errors for hand-tele from my previous commit.
Removed the remove poo and urine button from secrets.
Decoy AIs can now say stuff like regular AIs. This is useful if you need a non-player announcer for something, while taking into account talk_understand and the like. I use it for deathsquad shuttle announcements. I've placed A.L.I.C.E. on CentCom for such reasons.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1704 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed aliens :a talking while dead.
Disabled hand-tele on clown-planet z-level since people were still finding ways to abuse it.
PDA menu will close properly if detomatrix fails and explodes own PDA.
Late joiners are now added to minds. It's now possible to assassinate them, and so on, as an objective.
Added a few more objectives (capture, steal brain of, protect, and download research) and new possible items to steal (also fixed admin-added steal objectives). Mostly focused on ninjas but admins can give them to regular traitors. Only research downloading is outright impossible for regular traitors (they must wear a ninja suit).
Added a few revisions to mind/objective datums and a few other things. The game should now report any extra antagonists for most round types, excluding AI malfunction.
Added two new words to station_name.dm.
Other misc changes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1698 316c924e-a436-60f5-8080-3fe189b3f50e
#Respawn_character() now properly respawns aliens and monkeys if specified to do so.
#Added more options in admin quick panel (for players) to get, send, check if traitor, narrate, and subtle message mob.
#Admins can now click an X by admin name, in asay, to jump to that admin. Makes things easier.
#Moved admin transform verbs into fun tab.
#Removed boom boom shake the room since not even hosts are allowed to use it.
#Pierrot's throat now has a 35% chance of being cured by eating bananas. Up from 5.
#Fixed AI cards.
#ed209 and Beepsky now properly figure in deafness when speaking. Doesn't affect voice files.
#Fixed Syndicate PDA not triggering door.
#Aliens can no longer magically crawl to the prison station and back.
#Aliens can now quickly (5 seconds) break out of cuffs by resisting. No change to buckled.
#Facehuggers will now properly set the alien_egg_flag if the target was infected or not. Curing the alien egg should also reset the flag. I think it will be best to get rid of the flag entirely in the future.
#Added isalienadult(mob) proc to check for humanoid aliens.
#Probably fixed death squad spawning. They pick by key now, instead of mob name.
#Spawning xenos now uses the client match method so you can specify who you want to respawn if wanted.
#Ninjas now tell admins what their set mission is. If given objectives by admin, it should report them at round end for certain rounds.
#Spawning ninjas now uses the same method as respawn character (typing in key/ckey).
#Added a ninjify admnin verb. Possible to right click.
#Can now resize spiderOS window.
#Misc fixes and adjustments. Minor map change to CentCom holding facility.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1685 316c924e-a436-60f5-8080-3fe189b3f50e
Changing changelings during the round should probably work proper now.
AI will now report that people woken up from cryo sleep, when they join. The arrival shuttle changed to accomodate this.
Added poff to pAIs until TLE revises that whole process. You should be able to message them back now.
Slighly revised the entry shuttle.
Added a holding facility to CentCom.
Made the DJ station fully unsimulated. Removed unsimulated floor from derelict. Hopefully I got all the tiles. NOTE: When simulated floor meets unsimulated floor, Atmos goes berserk. Don't do this. Also, you can't deconstruct unsimulated stuff.
A few other misc adjustment to the map.
Added a variable to Rev that tracks what heads are supposed to be assassinated. Not sure why it didn't exist before.
Added some ticker mind checking to a few procs I forgot about. Yup.
Added an option to check assassinate objectives by special role.
Some foundation for future ninja stuff. Ninjas now swap battery by clicking on their suit with the battery in hand.
Some misc icon changes for areas.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1668 316c924e-a436-60f5-8080-3fe189b3f50e
Admins can again spawn everyone as ninjas, including themselves. Inactive player checking is still there though.
A slightly updated stealth graphic for ninjas.
Fixed a lawsync() run time error.
Fixed station_explosion_cinematic() run time error.
Fixed copy_to() run time error.
Fixed dnainjector/attack() run time error.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1667 316c924e-a436-60f5-8080-3fe189b3f50e
- Gun code condensed to make future modifications easier. Functionality should (mostly) remain the same.
- Taser guns shoot ONE WHOLE SHOT more then they do now. Yippy!
- Energy Crossbow has a slightly higher shot capacity (still automatically recharges).
- Guns that shoot projectiles (such as revolvers) now eject the ammo casings when they fire (this will be adjusted somewhat in phase 2).
- Revolvers can either be loaded one shell at a time or all at once with an ammo box.
- All guns now have a badmin var. Have fun (think shotguns).
- A few admin-only guns have been removed (for now). They'll get re-added in a future update.
- Shotguns no longer need to be pumped before firing (will change back in phase 2).
- All gunshots fired by players are now logged in both the firer's and the target's attack_log. So if someone gets shot and it doesn't show up, it's because a turret or something shot them.
Hopefully I didn't miss anything.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1659 316c924e-a436-60f5-8080-3fe189b3f50e
DONT_DEL_NEWMOB in config.txt is no longer necessary and you can remove it entirely.
Respawn character now uses ckey() matching so it doesn't matter what case you type in a person's key. It also takes into account space ninjas and death commandos if you want to respawn them. Also fixed a few bugs dealing with special roles.
Revised code for checking security records and added missing ranks as per bug report by Magicbones.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1614 316c924e-a436-60f5-8080-3fe189b3f50e
#Added a locked list to datacore in order to track character spawn, particularly for respawn_character(). May be useful in the future.
#Added a proc to randomize appearance for any human mob, randomize_appearance_for(mob). It will not take into account gender as you will have to provide it. Names and so on are also randomized but that can be overwritten in the code following.
#Added AI holopads around the station. To use as the AI: click on the pad to center view on it. Click again to activate the hologram. Move it with the directional keys. You can still interact with objects normally. To remove it, either move it too far out or click the pad again. Use robot talk to directly speak through the holopad (and only the holopad, unlike regular robot speak). Could be added on to (like different images for different AIs) but it's basically finished.
#Fixed a bugged message on changeling transformation sting. It will no longer give away your identity.
#Made law datum a silicon define. var/datum/ai_laws/laws.
#A few more ninja adjustments. Added a new view mode for the ninja mask, allowing to see special roles and a few other things.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1608 316c924e-a436-60f5-8080-3fe189b3f50e