The attackby() of flamethrowers can lead to flamethrower_screwdriver() and flamethrower_rods(). Two new procs that handle the creation of a flamethrower.
New object /obj/item/weapon/weldingtool/largetank/cyborg. This new object does nothing on the flamethrower creation procs.
I'm not entirely happy about this.
Runtimes created when trying to apply radiation to a mob destroyed by
monkeyizing, trying to add different components to lists of salvage,
attacking non-carbon mobs with lighters, and blending monkies in the
food processor.
Changed atom's bullet_act to call the projectile's on_hit, and changed most bullet_acts to call on_hit as well. Removed some now-unnecessary snowflake code.
These changes will make projectiles which should effect non-mobs, such as the gyrojet and the ion rifle, work properly. Inanimate objects can now be empulsed with the ion rifle, whose projectiles used to dissipate on hitting anything but a mob. Gyrojets now explode on most objects, as opposed to just on walls and mobs, and the snowflake code that made them work on walls is no longer necessary. The code for pulse rifles' breaking walls has been moved from a check in turf to a check in pulse beams, and has been expanded to include structures, allowing them to (slowly) break girders. For coders, it means that on_hit is a reliable proc for the effect of a bullet's hitting an object.
While it does mean a number of needless procs of on_hit, it's not too much more proccing than is already done by the gun code, and the removal of the snowflake code that was used to mask the issue, such as the two checks every time a shot hit a wall, should mostly if not more than offset the extra procs
Changed atom's bullet_act to call the projectile's on_hit, and changed
most bullet_acts to call on_hit as well. Removed some now-unnecessary
snowflake code.
These changes will make projectiles which should effect non-mobs, such
as the gyrojet and the ion rifle, work properly. Inanimate objects can
now be empulsed with the ion rifle, whose projectiles used to dissipate
on hitting anything but a mob. Gyrojets now explode on most objects, as
opposed to just on walls and mobs, and the snowflake code that made them
work on walls is no longer necessary. The code for pulse rifles'
breaking walls has been moved from a check in turf to a check in pulse
beams, and has been expanded to include structures, allowing them to
(slowly) break girders. For coders, it means that on_hit is a reliable
proc for the effect of a bullet's hitting an object.
Allows ghosts, seers, and reveal runes to see hidden runes.
Fixes consecutive emps with cameras
Fixes consecutive emps with radios.
Fixed lings not requiring a choke grab.
Increased the health of secure crates by a factor of ten.
Originally I was going to null out the projectile proc and add an emp_act instead, but one already exists.
The increased health of the secure crate will allow them to still be broken open from gun fire, but will make it inconvenient enough to dissuade cargo arming up every round, hopefully... (it will take 17 buckshot or 50 lasers to break open a crate)
-Added logging for admins editing objectives
-Added logging for admins adding new antagonists
-Changed the antag role assignment buttons to something more appropriate for the game modes. Will now tell you if someone is loyal (implanted).
-Added a isloyal() proc to check if a mob is loyalty implanted.
-Made the headrev message more noticeable
*Added isliving and in_range checks to settings() so you couldn't open the dialog boxes, run across the station, then prime the bomb from there
*Default timer setting has been raised to 60 seconds, minimum timer setting has been raised to 30 seconds
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.
There wasn't much feedback, so I just threw together something acceptable, not being able to think of anything particularly clever.
- Universal bug: atmos analyzer or subspace analyzer
- Sabotage bug: Igniter, infrared tripwire thing, or subspace amplifier
- Network bug: Radio, signaler, or subspace transmitter
- Advanced bug: Detective scanner, pAI card, or scanning module stock part
Department channels that are turned off now cannot be broadcasted into.
EMPs will now shift the frequency of a radio a bit.
This is supposed to make EMP a viable option for a traitors or nuke agents that are looking to take someone out without the entire station knowing about it.
Signed-off-by: dumpdavidson <gtb.schmidt@gmail.com>
Adds an associative list sorter to the helper procs. This will sort a list while maintaining the key=value structure.
The tracking functions of the camera bug will now auto-refresh if you keep the window open. The functionality was there but broken previously. This allows you to creepily stalk someone or observe a sensitive area.
The camera bug is now extensible. If you add an extension of certain types, the bug will have additional functionality. A screwdriver will remove the existing extension. Additionally, an admin/testing version of the camera bug can be created with the research admin spawnable item.
This is not the final version of this code; sane item types for the extensions must be chosen. I do not have any that are feasible right now.