You can no longer open or interact with the wire window after the wires are removed.
You can no longer cut the final wire while the panel is closed.
Adding wires to the air alarm now properly reset the variables that the wires change upon cutting/pulsing.
* atmos/fire alerts are now linked to an object and not its area, as intended
* simplified and full pathed the radio frequency datum
* made radio objects properly clean on del/qdel, instead of letting the radio controller remove nulls at each post_signal()
Gives the ability to take and view photo to Cyborgs
AI's share their photo album with connected Cyborgs, and connected Cyborgs have the pictures they take saved to the AI's album. If a Cyborg is not connected to an AI, photos are saved to the Cyborg's camera object. If a Cyborg has photos in it's album while not connected to an AI, but is subsequently connected to an AI, the photos are added to the AI's album. This is initiated by pulsing the appropriate wire on the borg.
Cyborgs can attach images to newscaster feeds, from the active album available to it (the AI's, or its own if disconnected)
Cyborgs cannot interact with photocopiers, but however have become a moving printer. They are every inefficent at printing, and thus can only print two color pictures before needing to be refilled with toner (simply click on them with toner in active hand).
Added some span classes to the previous AI photography work.
One minor bug fix to photocopier which could result in a photo object ending up in the 'hand' of an AI or cyborg.
Intended to allow the deconstruction and replacement of the doors without needing an RCD. Emagged doors will be unusable for at least 60 seconds, so weld+emagging still works. It's just not permanent.
Using an emag on a door will:
-Try to open the door
-Cut power for 60 seconds
-Drop bolts
-Cut bolt lights
-Effectively make the door unusable for at least a minute
Doors that have been emagged:
-Can only be opened with a crowbar or axe if the power is off and the bolts are up
-Can be hacked as normal, except the Open wire will not work
-Cannot be interfaced by silicons at all
-No longer prevent players from using tools (Can we unwelded, wires cut, etc)
-Can be deconstructed and repaired
Misc: Also made it so you can bump open doors even if the panel is open. So people can't go around opening all the panels and making the doors really annoying to open.
-Changed the way emergency access override is handled. It now toggles a var which overrides access requirements instead of removing/adding access
-Airlocks now have blinking amber lights when in emergency mode
-AIs can toggle emergency override on individual doors
-Humans may disable emergency overrides by pulsing the ID scanner wire. They can't enable it, since IMO there are enough methods to hack open doors without an easymode all-access wire
Refactored some of the code into procs.
Small feature: bombs tick louder when they are 10 seconds or less left, nuclear bombs were given the same treatment but with 20 seconds.
Fixed a bug with the syndicate bomb wire datum not using the CanUse().
Adds a training bomb that doesn't explode but rather lets you know it would have exploded. Upon detonation or defusal it will give you your current score and rescramble the wires for another go. It should probably be added to the map somewhere in a pull that follows this.
Adds a badmin bomb that lets you summon in a number of whatever you want with var editing, it defaults to a single cookie.
Adds a specially skinned badmin clown bomb that summons in a 100 clowns by default. It honks!
Fixes a HUGE bug where, thanks to machinery automatically adding themselves to processing, bombs were ticking down two seconds at a time. This does mean that all bombs are now "nerfed" to twice the time it took before. Whether this is a good thing or should result in the timer going "back" to 30 seconds to keep the timing consistant is an open quesion.
The bombs themselves no longer explode, the payloads (which now actually exist in the bombs) do.
This means that you can play cruel jokes on people by activating bombs with removed payloads or easily code in other kinds of payloads (there'll be a future pull with a few from me at the very least) and not have to touch the bomb code itself.
All the logging i have found in the code was changed to use the
proc(maybe i missed something)
Killed all runtimes found so far
Proc now handles all the checks, no need to add checks in the body of
object
Syndicate Bombs now have enforced 60 second minimum timers, up from 30. Their crystal cost remains at 5.
Syndicate Detonators that can get around the 60 second timers are purchasable for 1 crystal for all (there are also ways to get around it with clever uses of the wires, but that's not new)
The Nuke Agents get a free syndicate detonator [MAP]
Syndicate Bombs can now be further disassembled beyond disarming them to let people actually lift the explosives out of the bomb, rendering it useless. These explosives will only detonate in the presence of another explosion, and give great research levels.
Var changes:
* /obj/item/var/color is now item_color
* /obj/machinery/portable_atmospherics/canister/var/color is now canister_color
* /obj/machinery/atmospherics/var/color is now pipe_color
* /mob/living/simple_animal/mouse/var/color is now body_color
* /mob/living/simple_animal/chicken/var/color is now body_color
Proc changes:
* /obj/machinery/door/proc/animate() is now do_animate()
* /obj/machinery/transformer/proc/transform() is now do_transform()
Map changes are due to pipe instances being changed from color to pipe_color
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Syndicate bombs are now structures rather than items. This means they cannot be hidden in lockers and disposals anymore. They also can no longer be used as grenades by crafty traitors.
They now audibly beep as their timer counts down, which is a visible display that can be seen when examined.
The minibomb is based on grenade code with a blast radius of 1,2,4 and is found in syndieminibomb.dm. This is the same power as the default tank transfer bombs spawned on the syndicate shuttle.
It features new sprites by teh_wolf and existing inhands (the default grenade) and is a tiny item.
As a result of introducing an explosive grenade, grenade priming are now logged.
Its crystal cost has tentatively been set at 3.
---
The Syndicate Bomb is all new code contained in explosives.dm with additional wires code at syndicatebomb.dm. It does not make use of any tank transfer valve or grenade code.
The bomb has a blast radius of 2,5,11. This is the same power as the tank transfer bombs in the syndicate shuttle if they are boosted with oxygen.
It features new sprites by teh_wolf and existing inhands (currently using “electronic”) and is a bulky item.
The bomb is set by touching it in your hand or touching it on the ground if it has been wrenched down, allowing first to set a timer (min 10 seconds) and then giving an option to start the countdown. When the bomb is activated it states so to everyone within sight of it, giving a time to detonation in the process.
The bomb can optionally be wrenched to solid ground to foil would be spacers. When the bomb is set to countdown the bolts lock in, and cannot be removed by wrench alone.
The bomb includes a robust wires system for pulse pounding defusal attempts. Once a bomb starts ticking using the wires is the only way to stop it (it is not immune to del of course, but is unacidable).
The wires are as follows:
*Boom: Will detonate the bomb if cut/pulsed while the bomb is live, but will defuse the bomb on cut when it's not timing. Mending this wire is the only way to make a defused bomb potent again.
*Unbolt: If the bomb has been locked to the floor cutting this will free it. Pulsing will hint at its function
*Delay: Adds time (+10) to the timer when pulsed (it does not matter if the bomb is live or not). No function on cut.
*Proceed: Lowers the time when pulsed. If the timer is above 60 it will set it to 60, if it’s between 60 and 21 it will reduce the timer by 10, if it’s between 20 and 11 it will set the timer to 10. This will detonate the bomb when cut if it's timing. Note that this makes randomly cutting more dangerous than pulsing as there’s twice the number of wires that will explode.
*Activate: This will activate the timer if pulsed when the bomb is not timing, or will stop and defuse the bomb if it's cut while it IS timing. Pulsing it on an active bomb will hint at its function and add a little time (+5).
All syndicate bomb primings are logged.
Its crystal cost has tentatively been set at 5.
---
Misc
The “screwed” traitor uplink kit has had its tank transfer bombs replaced with one of each of these two bombs.