mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 08:03:43 +01:00
Nuke Ops Rework Phase 2
This commit is contained in:
+94
-61
@@ -102,7 +102,7 @@ var/list/uplink_items = list()
|
||||
name = "1 Banana Grenade"
|
||||
desc = "A grenade that explodes into HONK! brand banana peels that are genetically modified to be extra slippery and extrude caustic acid when stepped on"
|
||||
item = /obj/item/weapon/grenade/clown_grenade
|
||||
cost = 4
|
||||
cost = 8
|
||||
job = list("Clown")
|
||||
|
||||
//Detective
|
||||
@@ -110,14 +110,14 @@ var/list/uplink_items = list()
|
||||
name = "Evidence Forger"
|
||||
desc = "An evidence scanner that allows you forge evidence by setting the output before scanning the item."
|
||||
item = /obj/item/device/detective_scanner/forger
|
||||
cost = 3
|
||||
cost = 6
|
||||
job = list("Detective")
|
||||
|
||||
/datum/uplink_item/jobspecific/conversionkit
|
||||
name = "Conversion Kit Bundle"
|
||||
desc = "A bundle that comes with a professional revolver conversion kit and 1 box of .357 ammo. The kit allows you to convert your revolver to fire lethal rounds or vice versa, modification is nearly perfect and will not result in catastrophic failure."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/conversion
|
||||
cost = 6
|
||||
cost = 12
|
||||
job = list("Detective")
|
||||
|
||||
//Chef
|
||||
@@ -125,14 +125,14 @@ var/list/uplink_items = list()
|
||||
name = "Chef Excellence's Special Sauce"
|
||||
desc = "A custom made sauce made from the toxin glands of 1000 space carp, if somebody ingests enough they'll be dead in 3 minutes or less guaranteed."
|
||||
item = /obj/item/weapon/reagent_containers/food/condiment/syndisauce
|
||||
cost = 2
|
||||
cost = 4
|
||||
job = list("Chef")
|
||||
|
||||
/datum/uplink_item/jobspecific/meatcleaver
|
||||
name = "Meat Cleaver"
|
||||
desc = "A mean looking meat cleaver that does damage comparable to an Energy Sword but with the added benefit of chopping your victim into hunks of meat after they've died and the chance to stun when thrown."
|
||||
item = /obj/item/weapon/butch/meatcleaver
|
||||
cost = 5
|
||||
cost = 10
|
||||
job = list("Chef")
|
||||
|
||||
//Janitor
|
||||
@@ -141,7 +141,7 @@ var/list/uplink_items = list()
|
||||
name = "Proximity Mine"
|
||||
desc = "An Anti-Personnel proximity mine cleverly disguised as a wet floor caution sign that is triggered by running past it, activate it to start the 15 second timer and activate again to disarm."
|
||||
item = /obj/item/weapon/caution/proximity_sign
|
||||
cost = 2
|
||||
cost = 4
|
||||
job = list("Janitor")
|
||||
|
||||
//Medical
|
||||
@@ -151,7 +151,7 @@ var/list/uplink_items = list()
|
||||
name = "Radiation Laser"
|
||||
desc = "A radiation laser concealed inside of a Health Analyser, After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyzer, only appears like one. May not function correctly on radiation resistent humanoids!"
|
||||
item = /obj/item/device/rad_laser
|
||||
cost = 3
|
||||
cost = 6
|
||||
job = list(
|
||||
"Chief Medical Officer",
|
||||
"Medical Doctor",
|
||||
@@ -169,7 +169,7 @@ var/list/uplink_items = list()
|
||||
name = "Pickpocket's Gloves"
|
||||
desc = "A pair of sleek gloves to aid in pickpocketing, while wearing these you can see inside the pockets of any unsuspecting mark, loot the ID or pockets without them knowing, and pickpocketing puts the item directly into your hand."
|
||||
item = /obj/item/clothing/gloves/black/thief
|
||||
cost = 3
|
||||
cost = 6
|
||||
job = list("Civilian")
|
||||
|
||||
/*
|
||||
@@ -185,7 +185,7 @@ var/list/uplink_items = list()
|
||||
name = "Boozey Shotgun Shells"
|
||||
desc = "A box containing 6 shotgun shells that simulate the effects of extreme drunkeness on the target, more effective for each type of alcohol in the target's system."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/boolets
|
||||
cost = 3
|
||||
cost = 6
|
||||
job = list("Bartender")
|
||||
|
||||
//Engineer
|
||||
@@ -194,7 +194,7 @@ var/list/uplink_items = list()
|
||||
name = "Power Gloves"
|
||||
desc = "Insulated gloves that can utilize the power of the station to deliver a short arc of electricity at a target. Must be standing on a powered cable to use."
|
||||
item = /obj/item/clothing/gloves/yellow/power
|
||||
cost = 7
|
||||
cost = 14
|
||||
job = list("Station Engineer","Chief Engineer")
|
||||
|
||||
// DANGEROUS WEAPONS
|
||||
@@ -206,45 +206,45 @@ var/list/uplink_items = list()
|
||||
name = "Fully Loaded Revolver"
|
||||
desc = "A traditional handgun which fires .357 rounds. Has 7 chambers. Can down an unarmoured target with two shots."
|
||||
item = /obj/item/weapon/gun/projectile/revolver
|
||||
cost = 6
|
||||
cost = 13
|
||||
|
||||
/datum/uplink_item/dangerous/pistol
|
||||
name = "Stechkin Pistol"
|
||||
desc = "A small, easily concealable handgun that uses 10mm magazines and is compatible with suppressors."
|
||||
item = /obj/item/weapon/gun/projectile/automatic/pistol
|
||||
cost = 4
|
||||
cost = 9
|
||||
|
||||
/datum/uplink_item/dangerous/smg
|
||||
name = "C-20r Submachine Gun"
|
||||
desc = "A fully-loaded Scarborough Arms-developed submachine gun that fires 12mm automatic rounds with a 20-round magazine."
|
||||
item = /obj/item/weapon/gun/projectile/automatic/c20r
|
||||
cost = 7
|
||||
cost = 14
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/dangerous/machinegun
|
||||
name = "L6 Squad Automatic Weapon"
|
||||
desc = "A traditionally constructed machine gun made by AA-2531. This deadly weapon has a massive 50-round magazine of 7.62×51mm ammunition."
|
||||
item = /obj/item/weapon/gun/projectile/automatic/l6_saw
|
||||
cost = 20
|
||||
cost = 40
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/dangerous/crossbow
|
||||
name = "Energy Crossbow"
|
||||
desc = "A miniature energy crossbow that is small enough both to fit into a pocket and to slip into a backpack unnoticed by observers. Fires bolts tipped with toxin, a poisonous substance that is the product of a living organism. Stuns enemies for a short period of time. Recharges automatically."
|
||||
item = /obj/item/weapon/gun/energy/crossbow
|
||||
cost = 5
|
||||
cost = 12
|
||||
|
||||
/datum/uplink_item/dangerous/sword
|
||||
name = "Energy Sword"
|
||||
desc = "The esword is an edged weapon with a blade of pure energy. The sword is small enough to be pocketed when inactive. Activating it produces a loud, distinctive noise."
|
||||
item = /obj/item/weapon/melee/energy/sword
|
||||
cost = 4
|
||||
cost = 8
|
||||
|
||||
/datum/uplink_item/dangerous/manhacks
|
||||
name = "Viscerator Delivery Grenade"
|
||||
desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred any non-operatives in the area."
|
||||
item = /obj/item/weapon/grenade/spawnergrenade/manhacks
|
||||
cost = 4
|
||||
cost = 8
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/dangerous/bioterror
|
||||
@@ -252,34 +252,34 @@ var/list/uplink_items = list()
|
||||
desc = "A chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \
|
||||
Use with extreme caution, to prevent exposure to yourself and your fellow operatives."
|
||||
item = /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror
|
||||
cost = 10
|
||||
cost = 20
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/dangerous/emp
|
||||
name = "5 EMP Grenades"
|
||||
desc = "A box that contains 5 EMP grenades. Useful to disrupt communication and silicon lifeforms."
|
||||
item = /obj/item/weapon/storage/box/emps
|
||||
cost = 3
|
||||
cost = 5
|
||||
|
||||
/datum/uplink_item/dangerous/syndicate_minibomb
|
||||
name = "Syndicate Minibomb"
|
||||
desc = "The Minibomb is a grenade with a five-second fuse."
|
||||
item = /obj/item/weapon/grenade/syndieminibomb
|
||||
cost = 3
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/dangerous/gygax
|
||||
name = "Gygax Exosuit"
|
||||
desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent for hit-and-run style attacks. \
|
||||
This model lacks a method of space propulsion, and therefore it is advised to repair the mothership's teleporter if you wish to make use of it."
|
||||
item = /obj/mecha/combat/gygax/dark/loaded
|
||||
cost = 45
|
||||
cost = 90
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/dangerous/mauler
|
||||
name = "Mauler Exosuit"
|
||||
desc = "A massive and incredibly deadly Syndicate exosuit. Features long-range targetting, thrust vectoring, and deployable smoke."
|
||||
item = /obj/mecha/combat/marauder/mauler/loaded
|
||||
cost = 70
|
||||
cost = 140
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
// Ammunition
|
||||
@@ -291,7 +291,7 @@ var/list/uplink_items = list()
|
||||
name = "Ammo-357"
|
||||
desc = "A box that contains seven additional rounds for the revolver, made using an automatic lathe."
|
||||
item = /obj/item/ammo_box/a357
|
||||
cost = 2
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/ammo/pistol
|
||||
name = "Ammo-10mm"
|
||||
@@ -303,14 +303,35 @@ var/list/uplink_items = list()
|
||||
name = "Ammo-12mm"
|
||||
desc = "A 20-round 12mm magazine for use in the C-20r submachine gun."
|
||||
item = /obj/item/ammo_box/magazine/m12mm
|
||||
cost = 1
|
||||
cost = 2
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/ammo/machinegun
|
||||
name = "Ammo-7.62×51mm"
|
||||
desc = "A 50-round magazine of 7.62×51mm ammunition for use in the L6 SAW machinegun. By the time you need to use this, you'll already be on a pile of corpses."
|
||||
item = /obj/item/ammo_box/magazine/m762
|
||||
cost = 6
|
||||
cost = 12
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/ammo/bullstun
|
||||
name = "Ammo-12g Stun Slug"
|
||||
desc = "An additional 8-round stun slug magazine for use in the Bulldog shotgun. Saying that they're non-lethal would be lying."
|
||||
item = /obj/item/ammo_box/magazine/m12g
|
||||
cost = 2
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/ammo/bullbuck
|
||||
name = "Ammo-12g Buckshot"
|
||||
desc = "An alternative 8-round buckshot magazine for use in the Bulldog shotgun. Front towards enemy."
|
||||
item = /obj/item/ammo_box/magazine/m12g/buckshot
|
||||
cost = 2
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/ammo/bulldragon
|
||||
name = "Ammo-12g Dragon's Breath"
|
||||
desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. I'm a fire starter, twisted fire starter!"
|
||||
item = /obj/item/ammo_box/magazine/m12g/dragon
|
||||
cost = 3
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
|
||||
@@ -323,7 +344,7 @@ var/list/uplink_items = list()
|
||||
name = "Paralysis Pen"
|
||||
desc = "A syringe disguised as a functional pen, filled with a neuromuscular-blocking drug that renders a target mute on injection that will eventually cause them to pass out. The pen holds one dose of paralyzing agent,though it can be refilled."
|
||||
item = /obj/item/weapon/pen/paralysis
|
||||
cost = 4
|
||||
cost = 8
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/soap
|
||||
name = "Syndicate Soap"
|
||||
@@ -335,7 +356,7 @@ var/list/uplink_items = list()
|
||||
name = "Detomatix PDA Cartridge"
|
||||
desc = "When inserted into a personal digital assistant, this cartridge gives you five opportunities to detonate PDAs of crewmembers who have their message feature enabled. The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer. It has a chance to detonate your PDA."
|
||||
item = /obj/item/weapon/cartridge/syndicate
|
||||
cost = 3 */
|
||||
cost = 6 */
|
||||
|
||||
// Commented out until a fix can be found, currently doesn't work with the PDA NanoUI and people keep wasting Telecrystals on it. -- Dave
|
||||
|
||||
@@ -343,7 +364,7 @@ var/list/uplink_items = list()
|
||||
name = "Stetchkin Silencer"
|
||||
desc = "Fitted for use on the Stetchkin pistol, this silencer will make its shots quieter when equipped onto it."
|
||||
item = /obj/item/weapon/silencer
|
||||
cost = 2
|
||||
cost = 3
|
||||
|
||||
// STEALTHY TOOLS
|
||||
|
||||
@@ -354,7 +375,7 @@ var/list/uplink_items = list()
|
||||
name = "Chameleon Jumpsuit"
|
||||
desc = "A jumpsuit used to imitate the uniforms of Nanotrasen crewmembers."
|
||||
item = /obj/item/clothing/under/chameleon
|
||||
cost = 3
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/stealthy_tools/chameleon_stamp
|
||||
name = "Chameleon Stamp"
|
||||
@@ -367,30 +388,36 @@ var/list/uplink_items = list()
|
||||
name = "No-Slip Syndicate Shoes"
|
||||
desc = "These allow you to run on wet floors. They do not work on lubricated surfaces."
|
||||
item = /obj/item/clothing/shoes/syndigaloshes
|
||||
cost = 2
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/stealthy_tools/agent_card
|
||||
name = "Agent ID Card"
|
||||
desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access from other identification cards. The access is cumulative, so scanning one card does not erase the access gained from another."
|
||||
item = /obj/item/weapon/card/id/syndicate
|
||||
cost = 2
|
||||
cost = 3
|
||||
|
||||
/datum/uplink_item/stealthy_tools/voice_changer
|
||||
name = "Voice Changer"
|
||||
desc = "A conspicuous gas mask that mimics the voice named on your identification card. When no identification is worn, the mask will render your voice unrecognizable."
|
||||
item = /obj/item/clothing/mask/gas/voice
|
||||
cost = 4
|
||||
cost = 5
|
||||
|
||||
/datum/uplink_item/stealthy_tools/chameleon_proj
|
||||
name = "Chameleon-Projector"
|
||||
desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't move the projector from their hand. The disguised user cannot run and rojectiles pass over them."
|
||||
item = /obj/item/device/chameleon
|
||||
cost = 4
|
||||
cost = 7
|
||||
|
||||
/datum/uplink_item/stealthy_tools/dnascrambler
|
||||
name = "DNA Scrambler"
|
||||
desc = "A syringe with one injection that randomizes appearance and name upon use. A cheaper but less versatile alternative to an agent card and voice changer."
|
||||
item = /obj/item/weapon/dnascrambler
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/stealthy_tools/smugglersatchel
|
||||
name = "Smuggler's Satchel"
|
||||
desc = "This satchel is thin enough to be hidden in the gap between plating and tiling, great for stashing your stolen goods. Comes with a crowbar and a floor tile inside."
|
||||
item = /obj/item/weapon/storage/backpack/satchel_flat
|
||||
cost = 2
|
||||
|
||||
// DEVICE AND TOOLS
|
||||
@@ -403,7 +430,7 @@ var/list/uplink_items = list()
|
||||
name = "Cryptographic Sequencer"
|
||||
desc = "The emag is a small card that unlocks hidden functions in electronic devices, subverts intended functions and characteristically breaks security mechanisms."
|
||||
item = /obj/item/weapon/card/emag
|
||||
cost = 3
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/device_tools/toolbox
|
||||
name = "Fully Loaded Toolbox"
|
||||
@@ -414,105 +441,111 @@ var/list/uplink_items = list()
|
||||
|
||||
/datum/uplink_item/device_tools/medkit
|
||||
name = "Syndicate Medical Supply Kit"
|
||||
desc = "A basic medical kit for treating injuries in the field."
|
||||
item = /obj/item/weapon/storage/firstaid/adv
|
||||
cost = 3
|
||||
desc = "The syndicate medkit is a suspicious black and red. Included is a combat stimulant injector for rapid healing, a medical hud for quick identification of injured comrades, \
|
||||
and other medical supplies helpful for a medical field operative."
|
||||
item = /obj/item/weapon/storage/firstaid/tactical
|
||||
cost = 9
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
|
||||
/datum/uplink_item/device_tools/space_suit
|
||||
name = "Space Suit"
|
||||
desc = "The red syndicate space suit is less encumbering than Nanotrasen variants, fits inside bags, and has a weapon slot. Nanotrasen crewmembers are trained to report red space suit sightings."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/space
|
||||
cost = 3
|
||||
cost = 5
|
||||
|
||||
/datum/uplink_item/device_tools/thermal
|
||||
name = "Thermal Imaging Glasses"
|
||||
desc = "These glasses are thermals disguised as engineers' optical meson scanners. They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks."
|
||||
item = /obj/item/clothing/glasses/thermal/syndi
|
||||
cost = 3
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/device_tools/surveillance
|
||||
name = "Camera Surveillance Kit"
|
||||
desc = "This kit contains 5 Camera bugs and one mobile receiver. Attach camera bugs to a camera to enable remote viewing."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/surveillance
|
||||
cost = 3
|
||||
cost = 5
|
||||
|
||||
/datum/uplink_item/device_tools/camerabugs
|
||||
name = "Camera Bugs"
|
||||
desc = "This is a Camera bug resupply giving you 5 more camera bugs."
|
||||
item = /obj/item/weapon/storage/box/surveillance
|
||||
cost = 2
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/device_tools/binary
|
||||
name = "Binary Translator Key"
|
||||
desc = "A key, that when inserted into a radio headset, allows you to listen to and talk with artificial intelligences and cybernetic organisms in binary."
|
||||
item = /obj/item/device/encryptionkey/binary
|
||||
cost = 3
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/device_tools/cipherkey
|
||||
name = "Centcomm Encryption Key"
|
||||
desc = "A key, that when inserted into a radio headset, allows you to listen to and talk on all known radio channels."
|
||||
item = /obj/item/device/encryptionkey/syndicate/hacked
|
||||
cost = 2
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/device_tools/hacked_module
|
||||
name = "Hacked AI Upload Module"
|
||||
desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. Be careful with their wording, as artificial intelligences may look for loopholes to exploit."
|
||||
item = /obj/item/weapon/aiModule/syndicate
|
||||
cost = 7
|
||||
cost = 14
|
||||
|
||||
/datum/uplink_item/device_tools/plastic_explosives
|
||||
name = "Composition C-4"
|
||||
desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, attach it to organisms to destroy them, or connect a signaler to its wiring to make it remotely detonable. It has a modifiable timer with a minimum setting of 10 seconds."
|
||||
item = /obj/item/weapon/plastique
|
||||
cost = 2
|
||||
cost = 1
|
||||
|
||||
/datum/uplink_item/device_tools/powersink
|
||||
name = "Power sink"
|
||||
desc = "When screwed to wiring attached to an electric grid, then activated, this large device places excessive load on the grid, causing a stationwide blackout. The sink cannot be carried because of its excessive size. Ordering this sends you a small beacon that will teleport the power sink to your location on activation."
|
||||
item = /obj/item/device/powersink
|
||||
cost = 5
|
||||
cost = 10
|
||||
|
||||
/datum/uplink_item/device_tools/singularity_beacon
|
||||
name = "Singularity Beacon"
|
||||
desc = "When screwed to wiring attached to an electric grid, then activated, this large device pulls the singularity towards it. Does not work when the singularity is still in containment. A singularity beacon can cause catastrophic damage to a space station, leading to an emergency evacuation. Because of its size, it cannot be carried. Ordering this sends you a small beacon that will teleport the larger beacon to your location on activation."
|
||||
item = /obj/item/device/radio/beacon/syndicate
|
||||
cost = 7
|
||||
cost = 14
|
||||
|
||||
/datum/uplink_item/device_tools/syndicate_bomb
|
||||
name = "Syndicate Bomb"
|
||||
desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 60 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \
|
||||
You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb."
|
||||
item = /obj/item/device/radio/beacon/syndicate/bomb
|
||||
cost = 6
|
||||
cost = 11
|
||||
|
||||
/datum/uplink_item/device_tools/syndicate_detonator
|
||||
name = "Syndicate Detonator"
|
||||
desc = "The Syndicate Detonator is a companion device to the Syndicate Bomb. Simply press the included button and an encrypted radio frequency will instruct all live syndicate bombs to detonate. \
|
||||
Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of the blast radius before using the detonator."
|
||||
item = /obj/item/device/syndicatedetonator
|
||||
cost = 1
|
||||
cost = 3
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/device_tools/pdapinpointer
|
||||
name = "PDA Pinpointer"
|
||||
desc = "A pinpointer that tracks any PDA on the station. Useful for locating assassination targets or other high-value targets that you can't find. WARNING: Can only set once."
|
||||
item = /obj/item/weapon/pinpointer/pdapinpointer
|
||||
cost = 2
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/device_tools/ai_detector
|
||||
name = "Artificial Intelligence Detector" // changed name in case newfriends thought it detected disguised ai's
|
||||
desc = "A functional multitool that turns red when it detects an artificial intelligence watching it or its holder. Knowing when an artificial intelligence is watching you is useful for knowing when to maintain cover."
|
||||
item = /obj/item/device/multitool/ai_detect
|
||||
cost = 1
|
||||
|
||||
/datum/uplink_item/device_tools/teleporter
|
||||
name = "Teleporter Circuit Board"
|
||||
desc = "A printed circuit board that completes the teleporter onboard the mothership. Advise you test fire the teleporter before entering it, as malfunctions can occur."
|
||||
item = /obj/item/weapon/circuitboard/teleporter
|
||||
cost = 20
|
||||
cost = 40
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
/datum/uplink_item/device_tools/shield
|
||||
name = "Energy Shield"
|
||||
desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending against other attacks."
|
||||
item = /obj/item/weapon/shield/energy
|
||||
cost = 8
|
||||
cost = 16
|
||||
gamemodes = list("nuclear emergency")
|
||||
|
||||
// IMPLANTS
|
||||
@@ -524,37 +557,37 @@ var/list/uplink_items = list()
|
||||
name = "Freedom Implant"
|
||||
desc = "An implant injected into the body and later activated using a bodily gesture to attempt to slip restraints."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/imp_freedom
|
||||
cost = 3
|
||||
cost = 5
|
||||
|
||||
/datum/uplink_item/implants/uplink
|
||||
name = "Uplink Implant"
|
||||
desc = "An implant injected into the body, and later activated using a bodily gesture to open an uplink with 5 telecrystals. The ability for an agent to open an uplink after their posessions have been stripped from them makes this implant excellent for escaping confinement."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/imp_uplink
|
||||
cost = 10
|
||||
cost = 20
|
||||
|
||||
/datum/uplink_item/implants/explosive
|
||||
name = "Explosive Implant"
|
||||
desc = "An implant injected into the body, and later activated using a vocal command to cause a large explosion from the implant."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/imp_explosive
|
||||
cost = 6
|
||||
cost = 12
|
||||
|
||||
/datum/uplink_item/implants/compression
|
||||
name = "Compressed Matter Implant"
|
||||
desc = "An implant injected into the body, and later activated using a bodily gesture to retrieve an item that was earlier compressed."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/imp_compress
|
||||
cost = 4
|
||||
cost = 8
|
||||
|
||||
/datum/uplink_item/implants/mindslave
|
||||
name = "Mindslave Implant"
|
||||
desc = "A box containing an implanter filled with a mindslave implant that when injected into another person makes them loyal to you and your cause, unless of course they're already implanted by someone else. Loyalty ends if the implant is no longer in their system."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/mindslave
|
||||
cost = 5
|
||||
cost = 10
|
||||
|
||||
/datum/uplink_item/implants/adrenal
|
||||
name = "Adrenal Implant"
|
||||
desc = "An implant injected into the body, and later activated using a bodily gesture to inject a chemical cocktail, which has a mild healing effect along with removing all stuns and increasing his speed."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/imp_adrenal
|
||||
cost = 4
|
||||
cost = 8
|
||||
|
||||
// POINTLESS BADASSERY
|
||||
|
||||
@@ -565,7 +598,7 @@ var/list/uplink_items = list()
|
||||
name = "Syndicate Bundle"
|
||||
desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. These items are collectively worth more than 10 telecrystals, but you do not know which specialisation you will receive."
|
||||
item = /obj/item/weapon/storage/box/syndicate
|
||||
cost = 10
|
||||
cost = 20
|
||||
|
||||
/datum/uplink_item/badass/syndiecards
|
||||
name = "Syndicate Playing Cards"
|
||||
@@ -578,7 +611,7 @@ var/list/uplink_items = list()
|
||||
name = "For showing that you are The Boss"
|
||||
desc = "A useless red balloon with the syndicate logo on it, which can blow the deepest of covers."
|
||||
item = /obj/item/toy/syndicateballoon
|
||||
cost = 10
|
||||
cost = 20
|
||||
|
||||
/datum/uplink_item/badass/random
|
||||
name = "Random Item"
|
||||
|
||||
@@ -122,9 +122,10 @@
|
||||
item_state = "card-id"
|
||||
w_class = 1.0
|
||||
|
||||
/*
|
||||
/obj/item/weapon/disk/nuclear/pickup(mob/living/user as mob)
|
||||
if(issyndicate(user))
|
||||
set_security_level(3)
|
||||
set_security_level(3)*/ //Nuke Ops rework makes stealth approach significantly harder; this makes it damn near impossible; besides, it's horrendously meta.
|
||||
|
||||
/*
|
||||
/obj/item/weapon/game_kit
|
||||
|
||||
@@ -15,7 +15,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
|
||||
recommended_enemies = 2
|
||||
|
||||
uplink_welcome = "Syndicate Uplink Console:"
|
||||
uplink_uses = 10
|
||||
uplink_uses = 20
|
||||
|
||||
var/const/prob_int_murder_target = 50 // intercept names the assassination target half the time
|
||||
var/const/prob_right_murder_target_l = 25 // lower bound on probability of naming right assassination target
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
recommended_enemies = 4
|
||||
|
||||
uplink_welcome = "Nar-Sie Uplink Console:"
|
||||
uplink_uses = 10
|
||||
uplink_uses = 20
|
||||
|
||||
var/datum/mind/sacrifice_target = null
|
||||
var/finished = 0
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
required_players = 0
|
||||
|
||||
uplink_welcome = "Syndicate Uplink Console:"
|
||||
uplink_uses = 10
|
||||
uplink_uses = 20
|
||||
|
||||
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
|
||||
var/const/waittime_h = 1800
|
||||
|
||||
@@ -295,9 +295,9 @@ Implants;
|
||||
// If they're a traitor or likewise, give them extra TC in exchange.
|
||||
var/obj/item/device/uplink/hidden/suplink = man.mind.find_syndicate_uplink()
|
||||
if(suplink)
|
||||
var/extra = 4
|
||||
var/extra = 0 //was 4; with the TC rebalance, this isn't really needed, anymore
|
||||
suplink.uses += extra
|
||||
man << "\red We have received notice that enemy intelligence suspects you to be linked with us. We have thus invested significant resources to increase your uplink's capacity."
|
||||
man << "\red We have received notice that enemy intelligence suspects you to be linked with us. We recommend adjusting your plans and equipment accordingly."
|
||||
else
|
||||
// Give them a warning!
|
||||
man << "\red They are on to you!"
|
||||
|
||||
@@ -8,12 +8,12 @@ proc/issyndicate(mob/living/M as mob)
|
||||
name = "nuclear emergency"
|
||||
config_tag = "nuclear"
|
||||
required_players = 6
|
||||
required_players_secret = 15 // 25 players - 5 players to be the nuke ops = 20 players remaining
|
||||
required_enemies = 3
|
||||
recommended_enemies = 4
|
||||
required_players_secret = 20 // 20 players - 5 players to be the nuke ops = 15 players remaining
|
||||
required_enemies = 5
|
||||
recommended_enemies = 5
|
||||
|
||||
uplink_welcome = "Corporate Backed Uplink Console:"
|
||||
uplink_uses = 55
|
||||
uplink_uses = 120
|
||||
|
||||
var/const/agents_possible = 5 //If we ever need more syndicate agents.
|
||||
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
|
||||
uplink_welcome = "Revolutionary Uplink Console:"
|
||||
uplink_uses = 10
|
||||
uplink_uses = 20
|
||||
|
||||
var/finished = 0
|
||||
var/checkwin_counter = 0
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
recommended_enemies = 3
|
||||
|
||||
uplink_welcome = "Revolutionary Uplink Console:"
|
||||
uplink_uses = 5
|
||||
uplink_uses = 10
|
||||
|
||||
newscaster_announcements = /datum/news_announcement/revolution_inciting_event
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
|
||||
uplink_welcome = "Syndicate Uplink Console:"
|
||||
uplink_uses = 10
|
||||
uplink_uses = 20
|
||||
|
||||
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
|
||||
var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
recommended_enemies = 2
|
||||
|
||||
uplink_welcome = "Syndicate Uplink Console:"
|
||||
uplink_uses = 10
|
||||
uplink_uses = 20
|
||||
|
||||
var/const/prob_int_murder_target = 50 // intercept names the assassination target half the time
|
||||
var/const/prob_right_murder_target_l = 25 // lower bound on probability of naming right assassination target
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
recommended_enemies = 1
|
||||
|
||||
uplink_welcome = "Wizardly Uplink Console:"
|
||||
uplink_uses = 10
|
||||
uplink_uses = 20
|
||||
|
||||
var/finished = 0
|
||||
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
#define NUKESCALINGMODIFIER 1
|
||||
|
||||
var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","Foxtrot","Zero", "Niner")
|
||||
|
||||
|
||||
/obj/machinery/computer/telecrystals
|
||||
name = "\improper Telecrystal assignment station"
|
||||
desc = "A device used to manage telecrystals during group operations. You shouldn't be looking at this particular one..."
|
||||
icon_state = "tcstation"
|
||||
|
||||
/////////////////////////////////////////////
|
||||
/obj/machinery/computer/telecrystals/uplinker
|
||||
name = "\improper Telecrystal upload/recieve station"
|
||||
desc = "A device used to manage telecrystals during group operations. To use, simply insert your uplink. With your uplink installed \
|
||||
you can upload your telecrystals to the group's pool using the console, or be assigned additional telecrystals by your lieutenant."
|
||||
icon_state = "tcstation"
|
||||
var/obj/item/uplinkholder = null
|
||||
var/obj/machinery/computer/telecrystals/boss/linkedboss = null
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/New()
|
||||
..()
|
||||
|
||||
var/ID
|
||||
if(possible_uplinker_IDs.len)
|
||||
ID = pick(possible_uplinker_IDs)
|
||||
possible_uplinker_IDs -= ID
|
||||
name = "[name] [ID]"
|
||||
else
|
||||
name = "[name] [rand(1,999)]"
|
||||
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(istype(O, /obj/item))
|
||||
|
||||
if(uplinkholder)
|
||||
user << "<span class='notice'>The [src] already has an uplink in it.</span>"
|
||||
return
|
||||
|
||||
if(O.hidden_uplink)
|
||||
var/obj/item/P = user.get_active_hand()
|
||||
user.drop_item()
|
||||
uplinkholder = P
|
||||
P.loc = src
|
||||
P.add_fingerprint(user)
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
else
|
||||
user << "<span class='notice'>The [O] doesn't appear to be an uplink...</span>"
|
||||
|
||||
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/update_icon()
|
||||
overlays.Cut()
|
||||
if(uplinkholder)
|
||||
overlays += "[initial(icon_state)]-closed"
|
||||
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/proc/ejectuplink()
|
||||
if(uplinkholder)
|
||||
uplinkholder.loc = get_turf(src.loc)
|
||||
uplinkholder = null
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/proc/donateTC(var/amt, var/addLog = 1)
|
||||
if(uplinkholder && linkedboss)
|
||||
if(amt <= uplinkholder.hidden_uplink.uses)
|
||||
uplinkholder.hidden_uplink.uses -= amt
|
||||
linkedboss.storedcrystals += amt
|
||||
if(addLog)
|
||||
linkedboss.logTransfer("[src] donated [amt] telecrystals to [linkedboss].")
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/proc/giveTC(var/amt, var/addLog = 1)
|
||||
if(uplinkholder && linkedboss)
|
||||
if(amt <= linkedboss.storedcrystals)
|
||||
uplinkholder.hidden_uplink.uses += amt
|
||||
linkedboss.storedcrystals -= amt
|
||||
if(addLog)
|
||||
linkedboss.logTransfer("[src] recieved [amt] telecrystals from [linkedboss].")
|
||||
|
||||
///////
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/attack_hand(mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
src.add_fingerprint(user)
|
||||
user.set_machine(src)
|
||||
|
||||
var/dat = ""
|
||||
if(linkedboss)
|
||||
dat += "[linkedboss] has [linkedboss.storedcrystals] telecrystals available for distribution. <BR><BR>"
|
||||
else
|
||||
dat += "No linked management consoles detected. Scan for uplink stations using the management console.<BR><BR>"
|
||||
|
||||
if(uplinkholder)
|
||||
dat += "[uplinkholder.hidden_uplink.uses] telecrystals remain in this uplink.<BR>"
|
||||
if(linkedboss)
|
||||
dat += "Donate TC: <a href='byond://?src=\ref[src];donate1=1'>1</a> | <a href='byond://?src=\ref[src];donate5=1'>5</a>"
|
||||
dat += "<br><a href='byond://?src=\ref[src];eject=1'>Eject Uplink</a>"
|
||||
|
||||
|
||||
var/datum/browser/popup = new(user, "computer", "Telecrystal Upload/Recieve Station", 700, 500)
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||
popup.open()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["donate1"])
|
||||
donateTC(1)
|
||||
|
||||
if(href_list["donate5"])
|
||||
donateTC(5)
|
||||
|
||||
if(href_list["eject"])
|
||||
ejectuplink()
|
||||
|
||||
src.updateUsrDialog()
|
||||
|
||||
|
||||
/////////////////////////////////////////
|
||||
/obj/machinery/computer/telecrystals/boss
|
||||
name = "team Telecrystal management console"
|
||||
desc = "A device used to manage telecrystals during group operations. To use, simply initialize the machine by scanning for nearby uplink stations. \
|
||||
Once the consoles are linked up, you can assign any telecrystals amongst your operatives; be they donated by your agents or rationed to the squad \
|
||||
based on the danger rating of the mission."
|
||||
icon_state = "tcboss"
|
||||
var/virgin = 1
|
||||
var/scanrange = 10
|
||||
var/storedcrystals = 0
|
||||
var/list/TCstations = list()
|
||||
var/list/transferlog = list()
|
||||
|
||||
/obj/machinery/computer/telecrystals/boss/proc/logTransfer(var/logmessage)
|
||||
transferlog += ("<b>[worldtime2text()]</b> [logmessage]")
|
||||
|
||||
/obj/machinery/computer/telecrystals/boss/proc/scanUplinkers()
|
||||
for(var/obj/machinery/computer/telecrystals/uplinker/A in range(scanrange, src.loc))
|
||||
if(!A.linkedboss)
|
||||
TCstations += A
|
||||
A.linkedboss = src
|
||||
if(virgin)
|
||||
getDangerous()
|
||||
virgin = 0
|
||||
|
||||
/obj/machinery/computer/telecrystals/boss/proc/getDangerous()//This scales the TC assigned with the round population.
|
||||
..()
|
||||
var/danger
|
||||
danger = player_list.len
|
||||
while(!IsMultiple(++danger,10))//Just round up to the nearest multiple of ten.
|
||||
scaleTC(danger)
|
||||
|
||||
/obj/machinery/computer/telecrystals/boss/proc/scaleTC(var/amt)//Its own proc, since it'll probably need a lot of tweaks for balance, use a fancier algorhithm, etc.
|
||||
storedcrystals += amt * NUKESCALINGMODIFIER
|
||||
|
||||
/////////
|
||||
|
||||
/obj/machinery/computer/telecrystals/boss/attack_hand(var/mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
src.add_fingerprint(user)
|
||||
user.set_machine(src)
|
||||
|
||||
|
||||
var/dat = ""
|
||||
dat += "<a href='byond://?src=\ref[src];scan=1'>Scan for TC stations.</a><BR>"
|
||||
dat += "This [src] has [storedcrystals] telecrystals available for distribution. <BR>"
|
||||
dat += "<BR><BR>"
|
||||
|
||||
|
||||
for(var/obj/machinery/computer/telecrystals/uplinker/A in TCstations)
|
||||
dat += "[A.name] | "
|
||||
if(A.uplinkholder)
|
||||
dat += "[A.uplinkholder.hidden_uplink.uses] telecrystals."
|
||||
if(storedcrystals)
|
||||
dat+= "<BR>Add TC: <a href ='?src=\ref[src];give1=\ref[A]'>1</a> | <a href ='?src=\ref[src];give5=\ref[A]'>5</a>"
|
||||
dat += "<BR>"
|
||||
|
||||
if(TCstations.len)
|
||||
dat += "<BR><BR><a href='byond://?src=\ref[src];distrib=1'>Evenly distribute remaining TC.</a><BR><BR>"
|
||||
|
||||
|
||||
for(var/entry in transferlog)
|
||||
dat += "<small>[entry]</small><BR>"
|
||||
|
||||
|
||||
var/datum/browser/popup = new(user, "computer", "Team Telecrystal Management Console", 700, 500)
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||
popup.open()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/telecrystals/boss/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["scan"])
|
||||
scanUplinkers()
|
||||
|
||||
if(href_list["give1"])
|
||||
var/obj/machinery/computer/telecrystals/uplinker/A = locate(href_list["give1"])
|
||||
A.giveTC(1)
|
||||
|
||||
if(href_list["give5"])
|
||||
var/obj/machinery/computer/telecrystals/uplinker/A = locate(href_list["give5"])
|
||||
A.giveTC(5)
|
||||
|
||||
if(href_list["distrib"])
|
||||
var/sanity = 0
|
||||
while(storedcrystals && sanity < 100)
|
||||
for(var/obj/machinery/computer/telecrystals/uplinker/A in TCstations)
|
||||
A.giveTC(1,0)
|
||||
sanity++
|
||||
logTransfer("[src] evenly distributed telecrystals.")
|
||||
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
#undef NUKESCALINGMODIFIER
|
||||
@@ -18,4 +18,44 @@
|
||||
m_amt = 50
|
||||
g_amt = 20
|
||||
origin_tech = "magnets=1;engineering=1"
|
||||
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
|
||||
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
|
||||
|
||||
// Syndicate device disguised as a multitool; it will turn red when an AI camera is nearby.
|
||||
|
||||
|
||||
/obj/item/device/multitool/ai_detect
|
||||
var/track_delay = 0
|
||||
|
||||
/obj/item/device/multitool/ai_detect/New()
|
||||
..()
|
||||
processing_objects += src
|
||||
|
||||
|
||||
/obj/item/device/multitool/ai_detect/Del()
|
||||
processing_objects -= src
|
||||
..()
|
||||
|
||||
/obj/item/device/multitool/ai_detect/process()
|
||||
|
||||
if(track_delay > world.time)
|
||||
return
|
||||
|
||||
var/found_eye = 0
|
||||
|
||||
for(var/mob/aiEye/A in living_mob_list)
|
||||
|
||||
var/turf/our_turf = get_turf(src)
|
||||
var/turf/eye_turf = get_turf(A)
|
||||
|
||||
if(get_dist(our_turf, eye_turf) < 9)
|
||||
found_eye = 1
|
||||
break
|
||||
|
||||
if(found_eye)
|
||||
icon_state = "[initial(icon_state)]_red"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
track_delay = world.time + 10 // 1 second
|
||||
return
|
||||
|
||||
|
||||
@@ -277,4 +277,4 @@ var/list/world_uplinks = list()
|
||||
/obj/item/device/radio/headset/uplink/New()
|
||||
..()
|
||||
hidden_uplink = new(src)
|
||||
hidden_uplink.uses = 10
|
||||
hidden_uplink.uses = 20
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/obj/item/weapon/implant/uplink/New()
|
||||
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
|
||||
hidden_uplink = new(src)
|
||||
hidden_uplink.uses = 5
|
||||
hidden_uplink.uses = 10
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
@@ -180,4 +180,29 @@
|
||||
name = "captain's satchel"
|
||||
desc = "An exclusive satchel for Nanotrasen officers."
|
||||
icon_state = "satchel-cap"
|
||||
item_state = "captainpack"
|
||||
item_state = "captainpack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_flat
|
||||
name = "smuggler's satchel"
|
||||
desc = "A very slim satchel that can easily fit into tight spaces."
|
||||
icon_state = "satchel-flat"
|
||||
w_class = 3 //Can fit in backpacks itself.
|
||||
storage_slots = 5
|
||||
max_combined_w_class = 15
|
||||
level = 1
|
||||
cant_hold = list(/obj/item/weapon/storage/backpack/satchel_flat) //muh recursive backpacks
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_flat/hide(var/intact)
|
||||
if(intact)
|
||||
invisibility = 101
|
||||
anchored = 1 //otherwise you can start pulling, cover it, and drag around an invisible backpack.
|
||||
icon_state = "[initial(icon_state)]2"
|
||||
else
|
||||
invisibility = initial(invisibility)
|
||||
anchored = 0
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_flat/New()
|
||||
..()
|
||||
new /obj/item/stack/tile/plasteel(src)
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
|
||||
@@ -158,3 +158,9 @@
|
||||
can_hold = list(
|
||||
"/obj/item/clothing/mask/luchador"
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/military
|
||||
name = "military belt"
|
||||
desc = "A syndicate belt designed to be used by boarding parties. Its style is modeled after the hardsuits they wear."
|
||||
icon_state = "militarybelt"
|
||||
item_state = "military"
|
||||
@@ -110,6 +110,25 @@
|
||||
new /obj/item/stack/medical/advanced/ointment(src)
|
||||
new /obj/item/stack/medical/splint(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/firstaid/tactical
|
||||
name = "first-aid kit"
|
||||
icon_state = "bezerk"
|
||||
desc = "I hope you've got insurance."
|
||||
max_w_class = 3
|
||||
|
||||
/obj/item/weapon/storage/firstaid/tactical/New()
|
||||
..()
|
||||
if (empty) return
|
||||
new /obj/item/clothing/tie/stethoscope( src )
|
||||
new /obj/item/weapon/surgicaldrill(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/combat(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||
new /obj/item/weapon/reagent_containers/ld50_syringe(src)
|
||||
new /obj/item/clothing/glasses/hud/health/night(src)
|
||||
return
|
||||
|
||||
/*
|
||||
* Pill Bottles
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
new /obj/item/weapon/pinpointer/nukeop(src)
|
||||
new /obj/item/device/pda/syndicate(src)
|
||||
var/obj/item/device/radio/uplink/U = new(src)
|
||||
U.hidden_uplink.uses = 55
|
||||
U.hidden_uplink.uses = 120
|
||||
return
|
||||
|
||||
/obj/structure/closet/syndicate/resources/
|
||||
|
||||
@@ -49,8 +49,7 @@
|
||||
icon_state = "night"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=2"
|
||||
vision_flags = SEE_TURFS
|
||||
darkness_view = 3
|
||||
darkness_view = 8
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/eyes.dmi'
|
||||
|
||||
@@ -20,7 +20,12 @@
|
||||
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status. Includes anti-flash filter."
|
||||
icon_state = "advmedhud"
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night
|
||||
name = "Night Vision Health Scanner HUD"
|
||||
desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness."
|
||||
icon_state = "healthhudnight"
|
||||
item_state = "glasses"
|
||||
darkness_view = 8
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/process_hud(var/mob/M)
|
||||
if(!M) return
|
||||
@@ -57,6 +62,12 @@
|
||||
vision_flags = SEE_MOBS
|
||||
invisa_view = 2
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/night
|
||||
name = "Night Vision Security HUD"
|
||||
desc = "An advanced heads-up display which provides id data and vision in complete darkness."
|
||||
icon_state = "securityhudnight"
|
||||
darkness_view = 8
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/process_hud(var/mob/M)
|
||||
|
||||
if(!M) return
|
||||
|
||||
@@ -1181,7 +1181,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
|
||||
if(copytext(hud.icon_state,1,4) == "hud") //ugly, but icon comparison is worse, I believe
|
||||
client.images.Remove(hud)
|
||||
|
||||
client.screen.Remove(global_hud.blurry, global_hud.druggy, global_hud.vimpaired, global_hud.darkMask/*, global_hud.nvg*/)
|
||||
client.screen.Remove(global_hud.blurry, global_hud.druggy, global_hud.vimpaired, global_hud.darkMask,/* global_hud.nvg*/)
|
||||
|
||||
update_action_buttons()
|
||||
|
||||
@@ -1319,7 +1319,8 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
|
||||
sight |= G.vision_flags
|
||||
if(!druggy)
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
if(istype(G,/obj/item/clothing/glasses/night))
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
/* HUD shit goes here, as long as it doesn't modify sight flags */
|
||||
// The purpose of this is to stop xray and w/e from preventing you from using huds -- Love, Doohl
|
||||
|
||||
|
||||
@@ -101,7 +101,6 @@
|
||||
projectile_type = "/obj/item/projectile/bullet/stunslug"
|
||||
m_amt = 2500
|
||||
|
||||
|
||||
/obj/item/ammo_casing/shotgun/incendiary
|
||||
name = "incendiary shell"
|
||||
desc = "An incendiary shell"
|
||||
@@ -109,6 +108,13 @@
|
||||
projectile_type = "/obj/item/projectile/bullet/incendiary/shell"
|
||||
m_amt = 12500
|
||||
|
||||
/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
|
||||
name = "dragonsbreath shell"
|
||||
desc = "A shotgun shell which fires a spread of incendiary pellets."
|
||||
icon_state = "ishell2"
|
||||
projectile_type = "/obj/item/projectile/bullet/incendiary/shell/dragonsbreath"
|
||||
buck = 4
|
||||
deviation = 0.9
|
||||
|
||||
/obj/item/ammo_casing/shotgun/dart
|
||||
name = "shotgun dart"
|
||||
|
||||
@@ -144,4 +144,30 @@
|
||||
|
||||
/obj/item/ammo_box/magazine/m762/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]"
|
||||
icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]"
|
||||
|
||||
//TG Bulldog Automatic Shotty
|
||||
|
||||
/obj/item/ammo_box/magazine/m12g
|
||||
name = "shotgun magazine (12g taser slugs)"
|
||||
icon_state = "m12gs"
|
||||
origin_tech = "combat=3;syndicate=1"
|
||||
ammo_type = "/obj/item/ammo_casing/shotgun/stunshell"
|
||||
caliber = "shotgun"
|
||||
max_ammo = 8
|
||||
|
||||
/obj/item/ammo_box/magazine/m12g/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/8)*8]"
|
||||
|
||||
|
||||
/obj/item/ammo_box/magazine/m12g/buckshot
|
||||
name = "shotgun magazine (12g buckshot)"
|
||||
icon_state = "m12gb"
|
||||
ammo_type = "/obj/item/ammo_casing/shotgun/buck"
|
||||
|
||||
|
||||
/obj/item/ammo_box/magazine/m12g/dragon
|
||||
name = "shotgun magazine (12g dragon's breath)"
|
||||
icon_state = "m12gf"
|
||||
ammo_type = "/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath"
|
||||
@@ -9,7 +9,7 @@
|
||||
origin_tech = "combat=2;materials=2"
|
||||
w_class = 3.0
|
||||
m_amt = 1000
|
||||
recoil = 1
|
||||
// recoil = 1
|
||||
var/mag_type = "/obj/item/ammo_box/magazine/m10mm" //Removes the need for max_ammo and caliber info
|
||||
var/obj/item/ammo_box/magazine/magazine
|
||||
// var/obj/item/ammo_casing/chambered = null // The round (not bullet) that is in the chamber.
|
||||
|
||||
@@ -114,6 +114,42 @@
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog
|
||||
name = "\improper Bulldog shotgun"
|
||||
desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors. Compatible only with specialized magazines."
|
||||
icon_state = "bulldog"
|
||||
item_state = "bulldog"
|
||||
w_class = 3.0
|
||||
origin_tech = "combat=5;materials=4;syndicate=6"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m12g"
|
||||
fire_sound = 'sound/weapons/Gunshot.ogg'
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog/New()
|
||||
..()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog/proc/update_magazine()
|
||||
if(magazine)
|
||||
src.overlays = 0
|
||||
overlays += "[magazine.icon_state]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog/update_icon()
|
||||
src.overlays = 0
|
||||
update_magazine()
|
||||
icon_state = "bulldog[chambered ? "" : "-e"]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
|
||||
..()
|
||||
if(!chambered && !get_ammo() && !alarmed)
|
||||
playsound(user, 'sound/weapons/smg_empty_alarm.ogg', 40, 1)
|
||||
update_icon()
|
||||
alarmed = 1
|
||||
return
|
||||
|
||||
|
||||
/* The thing I found with guns in ss13 is that they don't seem to simulate the rounds in the magazine in the gun.
|
||||
Afaik, since projectile.dm features a revolver, this would make sense since the magazine is part of the gun.
|
||||
However, it looks like subsequent guns that use removable magazines don't take that into account and just get
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
embed = 1
|
||||
sharp = 1
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
/* on_hit(var/atom/target, var/blocked = 0)
|
||||
if (..(target, blocked))
|
||||
var/mob/living/L = target
|
||||
shake_camera(L, 3, 2)
|
||||
return 1
|
||||
return 0
|
||||
return 0 */
|
||||
|
||||
/obj/item/projectile/bullet/weakbullet
|
||||
damage = 5
|
||||
|
||||
@@ -408,8 +408,8 @@ datum
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(4)
|
||||
M.adjustOxyLoss(4)
|
||||
M.adjustToxLoss(3)
|
||||
M.adjustOxyLoss(3)
|
||||
M.sleeping += 1
|
||||
..()
|
||||
return
|
||||
@@ -510,14 +510,14 @@ datum
|
||||
description = "An effective hypnotic used to treat insomnia."
|
||||
reagent_state = LIQUID
|
||||
color = "#E895CC" // rgb: 232, 149, 204
|
||||
oxyod = 100
|
||||
toxod = 100
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(!data) data = 1
|
||||
switch(data)
|
||||
if(1 to 15)
|
||||
if(1 to 12)
|
||||
if(prob(5)) M.emote("yawn")
|
||||
if(12 to 15)
|
||||
M.eye_blurry = max(M.eye_blurry, 10)
|
||||
if(15 to 25)
|
||||
M.drowsyness = max(M.drowsyness, 20)
|
||||
@@ -2077,8 +2077,8 @@ datum
|
||||
M.status_flags &= ~FAKEDEATH
|
||||
M.adjustOxyLoss(0.5*REM)
|
||||
M.adjustToxLoss(0.5*REM)
|
||||
M.Weaken(10)
|
||||
M.silent = max(M.silent, 10)
|
||||
M.Weaken(5)
|
||||
M.silent = max(M.silent, 5)
|
||||
M.tod = worldtime2text()
|
||||
..()
|
||||
return
|
||||
@@ -2107,7 +2107,6 @@ datum
|
||||
description = "A powerful hallucinogen. Not a thing to be messed with."
|
||||
reagent_state = LIQUID
|
||||
color = "#B31008" // rgb: 139, 166, 233
|
||||
custom_metabolism = 0.05
|
||||
addictiveness = 15
|
||||
|
||||
on_mob_life(var/mob/living/M)
|
||||
|
||||
@@ -54,6 +54,20 @@
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat
|
||||
name = "combat stimulant injector"
|
||||
desc = "A modified air-needle autoinjector, used by support operatives to quickly heal injuries in combat."
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(10)
|
||||
icon_state = "combat_hypo"
|
||||
volume = 60
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat/New()
|
||||
..()
|
||||
reagents.remove_reagent("tricordrazine", 30)
|
||||
reagents.add_reagent("synaptizine", 30)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector
|
||||
name = "emergency autoinjector"
|
||||
desc = "A potent mix of pain killers and muscle stimulants."
|
||||
|
||||
@@ -155,6 +155,14 @@
|
||||
..()
|
||||
reagents.add_reagent("kelotane", 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/dermaline
|
||||
name = "Dermaline pill"
|
||||
desc = "Used to treat severe burns."
|
||||
icon_state = "pill12"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("dermaline", 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/tramadol
|
||||
name = "Tramadol pill"
|
||||
desc = "A simple painkiller."
|
||||
|
||||
Reference in New Issue
Block a user