Merge conflict fix

This commit is contained in:
FalseIncarnate
2018-04-20 02:04:01 -04:00
1393 changed files with 27720 additions and 22608 deletions
+19 -17
View File
@@ -101,7 +101,7 @@
//Presets for item actions
/datum/action/item_action
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_CONSCIOUS
var/use_itemicon = TRUE
/datum/action/item_action/New(Target)
..()
var/obj/item/I = target
@@ -121,17 +121,19 @@
return 1
/datum/action/item_action/ApplyIcon(obj/screen/movable/action_button/current_button)
current_button.overlays.Cut()
if(target)
var/obj/item/I = target
var/old_layer = I.layer
var/old_plane = I.plane
I.layer = 21
I.plane = HUD_PLANE
current_button.overlays += I
I.layer = old_layer
I.plane = old_plane
if(use_itemicon)
current_button.overlays.Cut()
if(target)
var/obj/item/I = target
var/old_layer = I.layer
var/old_plane = I.plane
I.layer = 21
I.plane = HUD_PLANE
current_button.overlays += I
I.layer = old_layer
I.plane = old_plane
else
..()
/datum/action/item_action/toggle_light
name = "Toggle Light"
@@ -197,8 +199,8 @@
UpdateButtonIcon()
/datum/action/item_action/toggle_unfriendly_fire/UpdateButtonIcon()
if(istype(target, /obj/item/weapon/hierophant_staff))
var/obj/item/weapon/hierophant_staff/H = target
if(istype(target, /obj/item/hierophant_staff))
var/obj/item/hierophant_staff/H = target
if(H.friendly_fire_check)
button_icon_state = "vortex_ff_off"
name = "Toggle Friendly Fire \[OFF\]"
@@ -228,8 +230,8 @@
button_icon_state = "vortex_recall"
/datum/action/item_action/vortex_recall/IsAvailable()
if(istype(target, /obj/item/weapon/hierophant_staff))
var/obj/item/weapon/hierophant_staff/H = target
if(istype(target, /obj/item/hierophant_staff))
var/obj/item/hierophant_staff/H = target
if(H.teleporting)
return 0
return ..()
@@ -318,7 +320,7 @@
name = "Toggle Jetpack Stabilization"
/datum/action/item_action/jetpack_stabilization/IsAvailable()
var/obj/item/weapon/tank/jetpack/J = target
var/obj/item/tank/jetpack/J = target
if(!istype(J) || !J.on)
return 0
return ..()
+55 -55
View File
@@ -101,8 +101,8 @@
name = "Move Small Containers"
id = "boxes"
blacklist = null
whitelist = list(/obj/item/weapon/storage, /obj/item/weapon/moneybag, /obj/item/weapon/evidencebag,
/obj/item/weapon/storage/bag/tray, /obj/item/pizzabox, /obj/item/weapon/clipboard,
whitelist = list(/obj/item/storage, /obj/item/moneybag, /obj/item/evidencebag,
/obj/item/storage/bag/tray, /obj/item/pizzabox, /obj/item/clipboard,
/obj/item/smallDelivery, /obj/structure/bigDelivery)
/datum/cargoprofile/cargo
@@ -138,46 +138,46 @@
whitelist = list(/obj/item/stack/cable_coil,/obj/item/stack/rods,
/obj/item/stack/sheet/metal,/obj/item/stack/sheet/plasteel,
/obj/item/stack/sheet/glass,/obj/item/stack/sheet/rglass,
/obj/item/stack/tile,/obj/item/weapon/light)
/obj/item/stack/tile,/obj/item/light)
//todo: maybe stack things while we're here?
/datum/cargoprofile/exotics
name = "Exotic materials"
id = "exotics"
blacklist = null
whitelist = list(/obj/item/weapon/coin, /obj/item/stack/spacecash, /obj/item/seeds,
whitelist = list(/obj/item/coin, /obj/item/stack/spacecash, /obj/item/seeds,
/obj/item/stack/sheet/mineral,/obj/item/stack/sheet/wood,/obj/item/stack/sheet/leather)
/datum/cargoprofile/organics
name = "Organics, chemicals, and Paraphernalia"
id = "organics"
blacklist = null
whitelist = list(/obj/item/weapon/tank,/obj/item/weapon/reagent_containers,
/obj/item/stack/medical,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/gun/syringe,
/obj/item/weapon/grenade/plastic/c4,/obj/item/weapon/grenade,/obj/item/ammo_box,
/obj/item/weapon/gun/grenadelauncher,/obj/item/weapon/flamethrower, /obj/item/weapon/lighter,
/obj/item/weapon/match,/obj/item/weapon/weldingtool)
whitelist = list(/obj/item/tank,/obj/item/reagent_containers,
/obj/item/stack/medical,/obj/item/storage/pill_bottle,/obj/item/gun/syringe,
/obj/item/grenade/plastic/c4,/obj/item/grenade,/obj/item/ammo_box,
/obj/item/gun/grenadelauncher,/obj/item/flamethrower, /obj/item/lighter,
/obj/item/match,/obj/item/weldingtool)
/datum/cargoprofile/food
name = "Food"
id = "food"
blacklist = null // something should probably go here
whitelist = list(/obj/item/weapon/reagent_containers/food)
whitelist = list(/obj/item/reagent_containers/food)
/datum/cargoprofile/chemical
name = "Chemicals and Paraphernalia"
id = "chemical"
blacklist = list(/obj/item/weapon/reagent_containers/food)
whitelist = list(/obj/item/weapon/reagent_containers,/obj/item/stack/medical,/obj/item/weapon/storage/pill_bottle,
/obj/item/weapon/gun/syringe,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/dnainjector,
/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/firstaid,/obj/item/weapon/implanter)
blacklist = list(/obj/item/reagent_containers/food)
whitelist = list(/obj/item/reagent_containers,/obj/item/stack/medical,/obj/item/storage/pill_bottle,
/obj/item/gun/syringe,/obj/item/grenade/chem_grenade,/obj/item/dnainjector,
/obj/item/storage/belt/medical,/obj/item/storage/firstaid,/obj/item/implanter)
/datum/cargoprofile/pressure
name = "air tanks"
id = "pressure"
blacklist = null
whitelist = list(/obj/item/weapon/tank,/obj/machinery/portable_atmospherics,
/obj/item/weapon/flamethrower)
whitelist = list(/obj/item/tank,/obj/machinery/portable_atmospherics,
/obj/item/flamethrower)
//Am I missing any?
/datum/cargoprofile/pressure/empty
name = "empty air tanks"
@@ -187,11 +187,11 @@
contains(var/atom/A)
if(..())
var/pressure = ONE_ATMOSPHERE * 10 // In case of fallthrough, fail test
if(istype(A,/obj/item/weapon/tank))
var/obj/item/weapon/tank/T = A
if(istype(A,/obj/item/tank))
var/obj/item/tank/T = A
pressure = T.air_contents.return_pressure()
if(istype(A,/obj/item/weapon/flamethrower))
var/obj/item/weapon/flamethrower/T = A
if(istype(A,/obj/item/flamethrower))
var/obj/item/flamethrower/T = A
if(!T.ptank)
return 0
pressure = T.ptank.air_contents.return_pressure()
@@ -212,11 +212,11 @@
contains(var/atom/A)
if(..())
var/pressure = 0 // In case of fallthrough, fail test
if(istype(A,/obj/item/weapon/tank))
var/obj/item/weapon/tank/T = A
if(istype(A,/obj/item/tank))
var/obj/item/tank/T = A
pressure = T.air_contents.return_pressure()
if(istype(A,/obj/item/weapon/flamethrower))
var/obj/item/weapon/flamethrower/T = A
if(istype(A,/obj/item/flamethrower))
var/obj/item/flamethrower/T = A
if(!T.ptank)
return 0
pressure = T.ptank.air_contents.return_pressure()
@@ -232,44 +232,44 @@
/datum/cargoprofile/clothing
name = "Crew Kit"
id = "clothing"
blacklist = list(/obj/item/weapon/tank/plasma,/obj/item/weapon/tank/anesthetic, // the rest are air tanks
blacklist = list(/obj/item/tank/plasma,/obj/item/tank/anesthetic, // the rest are air tanks
/obj/item/clothing/mask/facehugger) // NOT CLOTHING AT ALLLLL
whitelist = list(/obj/item/clothing,/obj/item/weapon/storage/belt,/obj/item/weapon/storage/backpack,
/obj/item/device/radio/headset,/obj/item/device/pda,/obj/item/weapon/card/id,/obj/item/weapon/tank,
/obj/item/weapon/restraints/handcuffs, /obj/item/weapon/restraints/legcuffs)
whitelist = list(/obj/item/clothing,/obj/item/storage/belt,/obj/item/storage/backpack,
/obj/item/device/radio/headset,/obj/item/device/pda,/obj/item/card/id,/obj/item/tank,
/obj/item/restraints/handcuffs, /obj/item/restraints/legcuffs)
/datum/cargoprofile/trash
name = "Trash"
id = "trash"
//Note that this filters out blueprints because they are a paper item. Do NOT throw out the station blueprints unless you be trollin'.
blacklist = null
whitelist = list(/obj/item/trash,/obj/item/toy,/obj/item/weapon/reagent_containers/food/snacks/ectoplasm,/obj/item/weapon/grown/bananapeel,/obj/item/weapon/broken_bottle,/obj/item/weapon/bikehorn,
/obj/item/weapon/cigbutt,/obj/item/weapon/poster/random_contraband,/obj/item/weapon/grown/corncob,/obj/item/weapon/paper,/obj/item/weapon/shard,
/obj/item/weapon/sord,/obj/item/weapon/photo,/obj/item/weapon/folder,
/obj/item/areaeditor/blueprints,/obj/item/weapon/poster/random_contraband,/obj/item/weapon/kitchen,/obj/item/weapon/book,/obj/item/clothing/mask/facehugger)
whitelist = list(/obj/item/trash,/obj/item/toy,/obj/item/reagent_containers/food/snacks/ectoplasm,/obj/item/grown/bananapeel,/obj/item/broken_bottle,/obj/item/bikehorn,
/obj/item/cigbutt,/obj/item/poster/random_contraband,/obj/item/grown/corncob,/obj/item/paper,/obj/item/shard,
/obj/item/sord,/obj/item/photo,/obj/item/folder,
/obj/item/areaeditor/blueprints,/obj/item/poster/random_contraband,/obj/item/kitchen,/obj/item/book,/obj/item/clothing/mask/facehugger)
/datum/cargoprofile/weapons
name = "Weapons & Illegals"
id = "weapons"
blacklist = null
//This one is hard since 'weapon contains a lot of things better categorized as devices
whitelist = list(/obj/item/weapon/banhammer,/obj/item/weapon/sord,/obj/item/weapon/claymore,/obj/item/weapon/holo/esword,
/obj/item/weapon/flamethrower,/obj/item/weapon/grenade,/obj/item/weapon/gun,/obj/item/weapon/hatchet,/obj/item/weapon/katana,
/obj/item/weapon/kitchen/knife,/obj/item/weapon/melee,/obj/item/weapon/nullrod,/obj/item/weapon/pickaxe,/obj/item/weapon/twohanded,
/obj/item/weapon/grenade/plastic/c4,/obj/item/weapon/scalpel,/obj/item/weapon/shield,/obj/item/weapon/grown/nettle/death)
whitelist = list(/obj/item/banhammer,/obj/item/sord,/obj/item/claymore,/obj/item/holo/esword,
/obj/item/flamethrower,/obj/item/grenade,/obj/item/gun,/obj/item/hatchet,/obj/item/katana,
/obj/item/kitchen/knife,/obj/item/melee,/obj/item/nullrod,/obj/item/pickaxe,/obj/item/twohanded,
/obj/item/grenade/plastic/c4,/obj/item/scalpel,/obj/item/shield,/obj/item/grown/nettle/death)
/datum/cargoprofile/tools
name = "Devices & Tools"
id = "tools"
blacklist = null
whitelist = list(/obj/item/device,/obj/item/weapon/card,/obj/item/weapon/cartridge,/obj/item/weapon/cautery,/obj/item/weapon/stock_parts/cell,/obj/item/weapon/circuitboard,
/obj/item/weapon/aiModule,/obj/item/weapon/airalarm_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/circular_saw,
/obj/item/weapon/crowbar,/obj/item/weapon/disk,/obj/item/weapon/firealarm_electronics,/obj/item/weapon/hand_tele,
/obj/item/weapon/hand_labeler,/obj/item/weapon/hemostat,/obj/item/weapon/mop,/obj/item/weapon/locator,/obj/item/weapon/cultivator,
/obj/item/stack/packageWrap,/obj/item/weapon/pen,/obj/item/weapon/pickaxe,/obj/item/weapon/pinpointer,
/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/retractor,/obj/item/weapon/rsf,/obj/item/weapon/scalpel,
/obj/item/weapon/screwdriver,/obj/item/weapon/shovel,/obj/item/weapon/soap,/obj/item/weapon/stamp,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/weldingtool,
/obj/item/weapon/wirecutters,/obj/item/weapon/wrench,/obj/item/weapon/extinguisher)
whitelist = list(/obj/item/device,/obj/item/card,/obj/item/cartridge,/obj/item/cautery,/obj/item/stock_parts/cell,/obj/item/circuitboard,
/obj/item/aiModule,/obj/item/airalarm_electronics,/obj/item/airlock_electronics,/obj/item/circular_saw,
/obj/item/crowbar,/obj/item/disk,/obj/item/firealarm_electronics,/obj/item/hand_tele,
/obj/item/hand_labeler,/obj/item/hemostat,/obj/item/mop,/obj/item/locator,/obj/item/cultivator,
/obj/item/stack/packageWrap,/obj/item/pen,/obj/item/pickaxe,/obj/item/pinpointer,
/obj/item/rcd,/obj/item/rcd_ammo,/obj/item/retractor,/obj/item/rsf,/obj/item/scalpel,
/obj/item/screwdriver,/obj/item/shovel,/obj/item/soap,/obj/item/stamp,/obj/item/storage/bag/tray,/obj/item/weldingtool,
/obj/item/wirecutters,/obj/item/wrench,/obj/item/extinguisher)
/datum/cargoprofile/finished
name = "Completed Robots"
@@ -519,7 +519,7 @@
name = "Paper Shredder"
id = "shredder"
blacklist = null
whitelist = list(/obj/item/weapon/paper,/obj/item/weapon/book,/obj/item/weapon/clipboard,/obj/item/weapon/folder,/obj/item/weapon/photo)
whitelist = list(/obj/item/paper,/obj/item/book,/obj/item/clipboard,/obj/item/folder,/obj/item/photo)
universal = 1
dedicated_path = /obj/machinery/programmable/unary/shredder
@@ -569,23 +569,23 @@
outlet_reaction(var/atom/W,var/turf/D)
if(istype(W,/obj/item/weapon/paper/crumpled))
if(istype(W,/obj/item/paper/crumpled))
qdel(W)
return
if(istype(W,/obj/item/weapon/clipboard) || istype(W,/obj/item/weapon/folder))
if(istype(W,/obj/item/clipboard) || istype(W,/obj/item/folder))
// destroy folder, various effects on contents
for(var/obj/item/I in W.contents)
if(prob(25))//JUNK IT
qdel(I)
else if(prob(50)) //We've been over this. I can't just take it apart with a crowbar.
var/obj/item/weapon/paper/crumpled/P = new(master.loc)
var/obj/item/paper/crumpled/P = new(master.loc)
if(I.name)
P.name = garbletext(I.name)
if(prob(66))
P.fingerprints = I.fingerprints
P.fingerprintshidden = I.fingerprintshidden
if(istype(I,/obj/item/weapon/paper))
var/obj/item/weapon/paper/O = I
if(istype(I,/obj/item/paper))
var/obj/item/paper/O = I
P.info = garble_keeptags(O.info)
qdel(I)
..(P,D)
@@ -594,18 +594,18 @@
qdel(W) //destroy container
return
if(prob(50)) //JUNK IT NOW!
var/obj/item/weapon/paper/crumpled/P = new(master.loc)
var/obj/item/paper/crumpled/P = new(master.loc)
P.name = W.name
var/obj/item/I = W
if(prob(66))
P.fingerprints = I.fingerprints
P.fingerprintshidden = I.fingerprintshidden
if(istype(I,/obj/item/weapon/paper))
var/obj/item/weapon/paper/O = I
if(istype(I,/obj/item/paper))
var/obj/item/paper/O = I
if(O.info)
P.info = garble_keeptags(O.info)
if(istype(I,/obj/item/weapon/book))
var/obj/item/weapon/book/B = I
if(istype(I,/obj/item/book))
var/obj/item/book/B = I
if(B.dat)
P.info = garble_keeptags(B.dat)
if(B.carved && B.store)
+136 -131
View File
@@ -468,137 +468,142 @@ var/record_id_num = 1001
var/icon/clothes_s = null
switch(H.mind.assigned_role)
if("Head of Personnel")
clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Nanotrasen Representative")
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
if("Blueshield")
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "blueshield"), ICON_OVERLAY)
if("Magistrate")
clothes_s = new /icon('icons/mob/uniform.dmi', "really_black_suit_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_OVERLAY)
if("Bartender")
clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Botanist")
clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Chef")
clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Janitor")
clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Librarian")
clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Quartermaster")
clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Cargo Technician")
clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Shaft Miner")
clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Lawyer")
clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Chaplain")
clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Research Director")
clothes_s = new /icon('icons/mob/uniform.dmi', "director_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
if("Scientist")
clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
if("Chemist")
clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
if("Chief Medical Officer")
clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
if("Medical Doctor")
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
if("Geneticist")
clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY)
if("Virologist")
clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
if("Psychiatrist")
clothes_s = new /icon('icons/mob/uniform.dmi', "psych_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_UNDERLAY)
if("Paramedic")
clothes_s = new /icon('icons/mob/uniform.dmi', "paramedic_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Captain")
clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Head of Security")
clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Warden")
clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Detective")
clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
if("Security Pod Pilot")
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY)
if("Brig Physician")
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY)
if("Security Officer")
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Chief Engineer")
clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Station Engineer")
clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Life Support Specialist")
clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Mechanic")
clothes_s = new /icon('icons/mob/uniform.dmi', "mechanic_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Roboticist")
clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
else if(H.mind.assigned_role in get_all_centcom_jobs())
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
else
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if(H.mind)
switch(H.mind.assigned_role)
if("Head of Personnel")
clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Nanotrasen Representative")
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
if("Blueshield")
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "blueshield"), ICON_OVERLAY)
if("Magistrate")
clothes_s = new /icon('icons/mob/uniform.dmi', "really_black_suit_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_OVERLAY)
if("Bartender")
clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Botanist")
clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Chef")
clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Janitor")
clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Librarian")
clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Quartermaster")
clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Cargo Technician")
clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Shaft Miner")
clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Lawyer")
clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Chaplain")
clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Research Director")
clothes_s = new /icon('icons/mob/uniform.dmi', "director_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
if("Scientist")
clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
if("Chemist")
clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
if("Chief Medical Officer")
clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
if("Medical Doctor")
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
if("Geneticist")
clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY)
if("Virologist")
clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
if("Psychiatrist")
clothes_s = new /icon('icons/mob/uniform.dmi', "psych_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_UNDERLAY)
if("Paramedic")
clothes_s = new /icon('icons/mob/uniform.dmi', "paramedic_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
if("Captain")
clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
if("Head of Security")
clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Warden")
clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Detective")
clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
if("Security Pod Pilot")
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY)
if("Brig Physician")
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY)
if("Security Officer")
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
if("Chief Engineer")
clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Station Engineer")
clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Life Support Specialist")
clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Mechanic")
clothes_s = new /icon('icons/mob/uniform.dmi', "mechanic_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
if("Roboticist")
clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
else if(H.mind.assigned_role in get_all_centcom_jobs())
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
else
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
else
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
preview_icon.Blend(face_s, ICON_OVERLAY) // Why do we do this twice
if(clothes_s)
+18
View File
@@ -0,0 +1,18 @@
/datum
var/gc_destroyed //Time when this object was destroyed.
var/var_edited = FALSE //Warranty void if seal is broken
var/tmp/unique_datum_id = null
#ifdef TESTING
var/running_find_references
var/last_find_references = 0
#endif
// Default implementation of clean-up code.
// This should be overridden to remove all references pointing to the object being destroyed.
// Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE.
/datum/proc/Destroy(force = FALSE, ...)
tag = null
return QDEL_HINT_QUEUE
-3
View File
@@ -1,8 +1,5 @@
// reference: /client/proc/modify_variables(var/atom/O, var/param_var_name = null, var/autodetect_class = 0)
/datum
var/var_edited = FALSE //Warranty void if seal is broken
/datum/proc/can_vv_get(var_name)
return TRUE
+1 -1
View File
@@ -88,7 +88,7 @@
switch(target_zone)
if(1)
if(isobj(H.head) && !istype(H.head, /obj/item/weapon/paper))
if(isobj(H.head) && !istype(H.head, /obj/item/paper))
Cl = H.head
passed = prob((Cl.permeability_coefficient*100) - 1)
if(passed && isobj(H.wear_mask))
+95
View File
@@ -0,0 +1,95 @@
/datum/disease/kingstons
name = "Kingstons Syndrome"
max_stages = 4
spread_text = "Airborne"
cure_text = "Milk"
cures = list("milk")
cure_chance = 50
agent = "Nya Virus"
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
desc = "If left untreated the subject will turn into a feline. In felines it has... OTHER... effects."
severity = DANGEROUS
/datum/disease/kingstons/stage_act()
..()
switch(stage)
if(1)
if(prob(10))
if(affected_mob.get_species() == "Tajaran")
to_chat(affected_mob, "<span class='notice'>You feel good.</span>")
else
to_chat(affected_mob, "<span class='notice'>You feel like playing with string.</span>")
if(2)
if(prob(10))
if(affected_mob.get_species() == "Tajaran")
to_chat(affected_mob, "<span class='danger'>Something in your throat itches.</span>")
else
to_chat(affected_mob, "<span class='danger'>You NEED to find a mouse.</span>")
if(3)
if(prob(10))
if(affected_mob.get_species() == "Tajaran")
to_chat(affected_mob, "<span class='danger'>You feel something in your throat!</span>")
affected_mob.emote("cough")
else
affected_mob.say(pick(list("Mew", "Meow!", "Nya!~")))
if(4)
if(prob(5))
if(affected_mob.get_species() == "Tajaran")
affected_mob.visible_message("<span class='danger'>[affected_mob] coughs up a hairball!</span>", \
"<span class='userdanger'>You cough up a hairball!</span>")
affected_mob.Stun(5)
else
affected_mob.visible_message("<span class='danger'>[affected_mob]'s form contorts into something more feline!</span>", \
"<span class='userdanger'>YOU TURN INTO A TAJARAN!</span>")
var/mob/living/carbon/human/catface = affected_mob
catface.set_species("Tajaran")
/datum/disease/kingstons/advanced
name = "Advanced Kingstons Syndrome"
spread_text = "Airborne"
cure_text = "Plasma"
cures = list("plasma")
cure_chance = 50
agent = "AMB45DR Bacteria"
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
desc = "If left untreated the subject will mutate to a different species."
severity = BIOHAZARD
var/list/virspecies = list("Human", "Tajaran", "Unathi", "Skrell", "Vulpkanin")//no karma races sorrys.
var/list/virsuffix = list("pox", "rot", "flu", "cough", "-gitis", "cold", "rash", "itch", "decay")
var/chosentype
var/chosensuff
/datum/disease/kingstons/advanced/New()
chosentype = pick(virspecies)
chosensuff = pick(virsuffix)
name = "[chosentype] [chosensuff]"
/datum/disease/kingstons/advanced/stage_act()
..()
switch(stage)
if(1)
if(prob(10))
to_chat(affected_mob, "<span class='notice'>You feel awkward.</span>")
if(2)
if(prob(10))
to_chat(affected_mob, "<span class='danger'>You itch.</span>")
if(3)
if(prob(10))
to_chat(affected_mob, "<span class='danger'>Your skin starts to flake!</span>")
if(4)
if(prob(5))
if(affected_mob.get_species() != chosentype)
affected_mob.visible_message("<span class='danger'>[affected_mob]'s skin splits and form contorts!</span>", \
"<span class='userdanger'>Your body mutates into a [chosentype]!</span>")
var/mob/living/carbon/human/twisted = affected_mob
twisted.set_species(chosentype)
else
affected_mob.visible_message("<span class='danger'>[affected_mob] scratches at thier skin!</span>", \
"<span class='userdanger'>You scratch your skin to try not to itch!</span>")
affected_mob.adjustBruteLoss(-5)
affected_mob.adjustStaminaLoss(5)
+45
View File
@@ -0,0 +1,45 @@
/datum/disease/lycan
name = "Lycancoughy"
form = "Infection"
max_stages = 4
spread_text = "On contact"
spread_flags = CONTACT_GENERAL
cure_text = "Ethanol"
cures = list("ethanol")
agent = "Excess Snuggles"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
desc = "If left untreated subject will regurgitate... puppies."
severity = MEDIUM
/datum/disease/lycan/stage_act()
..()
switch(stage)
if(2) //also changes say, see say.dm
if(prob(5))
to_chat(affected_mob, "<span class='notice'>You itch.</span>")
affected_mob.emote("cough")
if(3)
if(prob(10))
to_chat(affected_mob, "<span class='notice'>You hear faint barking.</span>")
if(prob(5))
to_chat(affected_mob, "<span class='notice'>You crave meat.</span>")
affected_mob.emote("cough")
if(prob(2))
to_chat(affected_mob, "<span class='danger'>Your stomach growls!</span>")
if(4)
if(prob(10))
to_chat(affected_mob, "<span class='danger'>Your stomach barks?!</span>")
if(prob(5))
affected_mob.visible_message("<span class='danger'>[affected_mob] howls!</span>", \
"<span class='userdanger'>You howl!</span>")
affected_mob.AdjustConfused(rand(6, 8))
if(prob(3))
var/list/puppytype = list(/mob/living/simple_animal/pet/corgi/puppy, /mob/living/simple_animal/pet/pug, /mob/living/simple_animal/pet/fox)
var/mob/living/puppypicked = pick(puppytype)
affected_mob.visible_message("<span class='danger'>[affected_mob] coughs up [initial(puppypicked.name)]!</span>", \
"<span class='userdanger'>You cough up [initial(puppypicked.name)]?!</span>")
affected_mob.emote("cough")
affected_mob.adjustBruteLoss(5)
new puppypicked(affected_mob.loc)
new puppypicked(affected_mob.loc)
return
+35
View File
@@ -26,3 +26,38 @@
if(4)
if(prob(5))
affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) )
/datum/disease/pierrot_throat/advanced
name = "Advanced Pierrot's Throat"
spread_text = "Airborne"
cure_text = "Banana products, especially banana bread."
cures = list("banana")
cure_chance = 75
agent = "H0NI<42.B4n4 Virus"
viable_mobtypes = list(/mob/living/carbon/human)
permeability_mod = 0.75
desc = "If left untreated the subject will probably drive others to insanity and go insane themselves."
severity = DANGEROUS
/datum/disease/pierrot_throat/advanced/stage_act()
..()
switch(stage)
if(1)
if(prob(10))
to_chat(affected_mob, "<span class='danger'>You feel very silly.</span>")
if(prob(5))
to_chat(affected_mob, "<span class='danger'>You feel like making a joke.</span>")
if(2)
if(prob(10))
to_chat(affected_mob, "<span class='danger'>You don't just start seeing rainbows... YOU ARE RAINBOWS!</span>")
if(3)
if(prob(10))
to_chat(affected_mob, "<span class='danger'>Your thoughts are interrupted by a loud <b>HONK!</b></span>")
affected_mob << 'sound/items/AirHorn.ogg'
if(4)
if(prob(5))
affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) )
if(!istype(affected_mob.wear_mask, /obj/item/clothing/mask/gas/virusclown_hat))
affected_mob.equip_to_slot(new /obj/item/clothing/mask/gas/virusclown_hat(src), slot_wear_mask)
+1 -1
View File
@@ -50,7 +50,7 @@
affected_mob.overlays.Cut()
affected_mob.invisibility = 101
for(var/obj/item/W in affected_mob)
if(istype(W, /obj/item/weapon/implant))
if(istype(W, /obj/item/implant))
qdel(W)
continue
W.layer = initial(W.layer)
+2 -2
View File
@@ -78,9 +78,9 @@ STI KALY - blind
else
var/mob/living/carbon/H = affected_mob
if(prob(chance))
if(!istype(H.r_hand, /obj/item/weapon/twohanded/staff))
if(!istype(H.r_hand, /obj/item/twohanded/staff))
H.drop_r_hand()
H.put_in_r_hand( new /obj/item/weapon/twohanded/staff(H) )
H.put_in_r_hand( new /obj/item/twohanded/staff(H) )
return
return
+10 -10
View File
@@ -43,22 +43,22 @@
return 0
proc/custom_action(step, used_atom, user)
if(istype(used_atom, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/W = used_atom
if(istype(used_atom, /obj/item/weldingtool))
var/obj/item/weldingtool/W = used_atom
if(W.remove_fuel(0, user))
playsound(holder, W.usesound, 50, 1)
else
return 0
else if(istype(used_atom, /obj/item/weapon/wrench))
var/obj/item/weapon/wrench/W = used_atom
else if(istype(used_atom, /obj/item/wrench))
var/obj/item/wrench/W = used_atom
playsound(holder, W.usesound, 50, 1)
else if(istype(used_atom, /obj/item/weapon/screwdriver))
var/obj/item/weapon/screwdriver/S = used_atom
else if(istype(used_atom, /obj/item/screwdriver))
var/obj/item/screwdriver/S = used_atom
playsound(holder, S.usesound, 50, 1)
else if(istype(used_atom, /obj/item/weapon/wirecutters))
var/obj/item/weapon/wirecutters/W = used_atom
else if(istype(used_atom, /obj/item/wirecutters))
var/obj/item/wirecutters/W = used_atom
playsound(holder, W.usesound, 50, 1)
else if(istype(used_atom, /obj/item/stack/cable_coil))
@@ -117,8 +117,8 @@
to_chat(user, "<span class='warning'>You don't have enough cable! You need at least [amount] coils.</span>")
return 0
// WELDER
if(istype(used_atom,/obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/welder=used_atom
if(istype(used_atom,/obj/item/weldingtool))
var/obj/item/weldingtool/welder=used_atom
if(!welder.isOn())
to_chat(user, "<span class='notice'>You tap the [src] with your unlit welder. [pick("Ding","Dong")].</span>")
return 0
+2 -2
View File
@@ -158,10 +158,10 @@
/datum/teleport/instant/science/setPrecision(aprecision)
..()
if(istype(teleatom, /obj/item/weapon/storage/backpack/holding))
if(istype(teleatom, /obj/item/storage/backpack/holding))
precision = rand(1,100)
var/list/bagholding = teleatom.search_contents_for(/obj/item/weapon/storage/backpack/holding)
var/list/bagholding = teleatom.search_contents_for(/obj/item/storage/backpack/holding)
if(bagholding.len)
precision = max(rand(1,100)*bagholding.len,100)
if(istype(teleatom, /mob/living))
+11 -11
View File
@@ -89,7 +89,7 @@
current.mind = null
leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it
nanomanager.user_transferred(current, new_character)
SSnanoui.user_transferred(current, new_character)
if(new_character.mind) //remove any mind currently in our new body's mind variable
new_character.mind.current = null
@@ -658,14 +658,14 @@
switch(href_list["implant"])
if("remove")
for(var/obj/item/weapon/implant/mindshield/I in H.contents)
for(var/obj/item/implant/mindshield/I in H.contents)
if(I && I.implanted)
qdel(I)
to_chat(H, "<span class='notice'><Font size =3><B>Your mindshield implant has been deactivated.</B></FONT></span>")
log_admin("[key_name(usr)] has deactivated [key_name(current)]'s mindshield implant")
message_admins("[key_name_admin(usr)] has deactivated [key_name_admin(current)]'s mindshield implant")
if("add")
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
var/obj/item/implant/mindshield/L = new/obj/item/implant/mindshield(H)
L.implant(H)
log_admin("[key_name(usr)] has given [key_name(current)] a mindshield implant")
@@ -805,14 +805,14 @@
if(!(src in ticker.mode.cult))
ticker.mode.add_cultist(src)
special_role = SPECIAL_ROLE_CULTIST
to_chat(current, "<span class='cultitalic'>You catch a glimpse of the Realm of [ticker.mode.cultdat.entity_name], [ticker.mode.cultdat.entity_title3]. You now see how flimsy the world is, you see that it should be open to the knowledge of [ticker.mode.cultdat.entity_name].</span>")
to_chat(current, "<span class='cultitalic'>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve [ticker.mode.cultdat.entity_title2] above all else. Bring It back.</span>")
to_chat(current, "<span class='cultitalic'>You catch a glimpse of the Realm of [ticker.cultdat.entity_name], [ticker.cultdat.entity_title3]. You now see how flimsy the world is, you see that it should be open to the knowledge of [ticker.cultdat.entity_name].</span>")
to_chat(current, "<span class='cultitalic'>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve [ticker.cultdat.entity_title2] above all else. Bring It back.</span>")
log_admin("[key_name(usr)] has culted [key_name(current)]")
message_admins("[key_name_admin(usr)] has culted [key_name_admin(current)]")
if("tome")
var/mob/living/carbon/human/H = current
if(istype(H))
var/obj/item/weapon/tome/T = new(H)
var/obj/item/tome/T = new(H)
var/list/slots = list (
"backpack" = slot_in_backpack,
@@ -1225,7 +1225,7 @@
if(t:traitorradio) qdel(t:traitorradio)
t:traitorradio = null
t:traitor_frequency = 0.0
else if(istype(t, /obj/item/weapon/SWF_uplink) || istype(t, /obj/item/weapon/syndicate_uplink))
else if(istype(t, /obj/item/SWF_uplink) || istype(t, /obj/item/syndicate_uplink))
if(t:origradio)
var/obj/item/device/radio/R = t:origradio
R.loc = current.loc
@@ -1317,7 +1317,7 @@
current.loc = pick(wizardstart)
ticker.mode.equip_wizard(current)
for(var/obj/item/weapon/spellbook/S in current.contents)
for(var/obj/item/spellbook/S in current.contents)
S.op = 0
ticker.mode.name_wizard(current)
ticker.mode.forge_wizard_objectives(src)
@@ -1330,20 +1330,20 @@
ticker.mode.cult += src
ticker.mode.update_cult_icons_added(src)
special_role = SPECIAL_ROLE_CULTIST
to_chat(current, "<font color=\"cultitalic\"><b><i>You catch a glimpse of the Realm of [ticker.mode.cultdat.entity_name], [ticker.mode.cultdat.entity_title2]. You now see how flimsy the world is, you see that it should be open to the knowledge of [ticker.mode.cultdat.entity_name].</b></i></font>")
to_chat(current, "<font color=\"cultitalic\"><b><i>You catch a glimpse of the Realm of [ticker.cultdat.entity_name], [ticker.cultdat.entity_title2]. You now see how flimsy the world is, you see that it should be open to the knowledge of [ticker.cultdat.entity_name].</b></i></font>")
to_chat(current, "<font color=\"cultitalic\"><b><i>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.</b></i></font>")
var/datum/game_mode/cult/cult = ticker.mode
if(GAMEMODE_IS_CULT)
cult.memorize_cult_objectives(src)
else
var/explanation = "Summon [ticker.mode.cultdat.entity_name] via the use of the appropriate rune. It will only work if nine cultists stand on and around it."
var/explanation = "Summon [ticker.cultdat.entity_name] via the use of the appropriate rune. It will only work if nine cultists stand on and around it."
to_chat(current, "<B>Objective #1</B>: [explanation]")
current.memory += "<B>Objective #1</B>: [explanation]<BR>"
var/mob/living/carbon/human/H = current
if(istype(H))
var/obj/item/weapon/tome/T = new(H)
var/obj/item/tome/T = new(H)
var/list/slots = list (
"backpack" = slot_in_backpack,
+9 -2
View File
@@ -22,8 +22,15 @@
var/list/fields = list( )
/datum/data/record/Destroy()
..()
return QDEL_HINT_HARDDEL_NOW
if(src in data_core.medical)
data_core.medical -= src
if(src in data_core.security)
data_core.security -= src
if(src in data_core.general)
data_core.general -= src
if(src in data_core.locked)
data_core.locked -= src
return ..()
/datum/data/text
name = "text"
+9
View File
@@ -22,6 +22,8 @@
var/pda = null
var/internals_slot = null //ID of slot containing a gas tank
var/list/backpack_contents = list() // In the list(path=count,otherpath=count) format
var/list/implants = null
var/list/cybernetic_implants = null
/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -89,6 +91,13 @@
var/number = backpack_contents[path]
for(var/i = 0, i < number, i++)
equip_item(H, path, slot_in_backpack)
if(implants)
for(var/path in implants)
var/obj/item/implant/I = new path(H)
I.implant(H)
for(var/path in cybernetic_implants)
var/obj/item/organ/internal/O = new path(H)
O.insert(H)
post_equip(H, visualsOnly)
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -35,10 +35,10 @@
/datum/recipe
var/list/reagents // example: = list("berryjuice" = 5) // do not list same reagent twice
var/list/items // example: =list(/obj/item/weapon/crowbar, /obj/item/weapon/welder) // place /foo/bar before /foo
var/result //example: = /obj/item/weapon/reagent_containers/food/snacks/donut
var/list/items // example: =list(/obj/item/crowbar, /obj/item/welder) // place /foo/bar before /foo
var/result //example: = /obj/item/reagent_containers/food/snacks/donut
var/time = 100 // 1/10 part of second
var/byproduct // example: = /obj/item/weapon/kitchen/mould // byproduct to return, such as a mould or trash
var/byproduct // example: = /obj/item/kitchen/mould // byproduct to return, such as a mould or trash
/datum/recipe/proc/check_reagents(datum/reagents/avail_reagents) //1=precisely, 0=insufficiently, -1=superfluous
. = 1
+11 -11
View File
@@ -33,9 +33,9 @@
charged_item = M
break
for(var/obj/item in hand_items)
if(istype(item, /obj/item/weapon/spellbook))
if(istype(item, /obj/item/weapon/spellbook/oneuse))
var/obj/item/weapon/spellbook/oneuse/I = item
if(istype(item, /obj/item/spellbook))
if(istype(item, /obj/item/spellbook/oneuse))
var/obj/item/spellbook/oneuse/I = item
if(prob(80))
L.visible_message("<span class='warning'>[I] catches fire!</span>")
qdel(I)
@@ -47,21 +47,21 @@
to_chat(L, "<span class='caution'>Glowing red letters appear on the front cover...</span>")
to_chat(L, "<span class='warning'>[pick("NICE TRY BUT NO!","CLEVER BUT NOT CLEVER ENOUGH!", "SUCH FLAGRANT CHEESING IS WHY WE ACCEPTED YOUR APPLICATION!", "CUTE!", "YOU DIDN'T THINK IT'D BE THAT EASY, DID YOU?")]</span>")
burnt_out = 1
else if(istype(item, /obj/item/weapon/gun/magic))
var/obj/item/weapon/gun/magic/I = item
else if(istype(item, /obj/item/gun/magic))
var/obj/item/gun/magic/I = item
if(prob(80) && !I.can_charge)
I.max_charges--
if(I.max_charges <= 0)
I.max_charges = 0
burnt_out = 1
I.charges = I.max_charges
if(istype(item,/obj/item/weapon/gun/magic/wand) && I.max_charges != 0)
var/obj/item/weapon/gun/magic/W = item
if(istype(item,/obj/item/gun/magic/wand) && I.max_charges != 0)
var/obj/item/gun/magic/W = item
W.icon_state = initial(W.icon_state)
charged_item = I
break
else if(istype(item, /obj/item/weapon/stock_parts/cell/))
var/obj/item/weapon/stock_parts/cell/C = item
else if(istype(item, /obj/item/stock_parts/cell/))
var/obj/item/stock_parts/cell/C = item
if(!C.self_recharge)
if(prob(80))
C.maxcharge -= 200
@@ -74,8 +74,8 @@
else if(item.contents)
var/obj/I = null
for(I in item.contents)
if(istype(I, /obj/item/weapon/stock_parts/cell/))
var/obj/item/weapon/stock_parts/cell/C = I
if(istype(I, /obj/item/stock_parts/cell/))
var/obj/item/stock_parts/cell/C = I
if(!C.self_recharge)
if(prob(80))
C.maxcharge -= 200
+1 -1
View File
@@ -1,7 +1,7 @@
/obj/effect/proc_holder/spell/targeted/touch/cluwne
name = "Curse of the Cluwne"
desc = "Turns the target into a fat and cursed monstrosity of a clown."
hand_path = /obj/item/weapon/melee/touch_attack/cluwne
hand_path = /obj/item/melee/touch_attack/cluwne
school = "transmutation"
+1 -1
View File
@@ -54,7 +54,7 @@
target.setDir(holder.dir)
sleep(jaunt_in_time)
qdel(holder)
if(!qdeleted(target))
if(!QDELETED(target))
if(mobloc.density)
for(var/direction in alldirs)
var/turf/T = get_step(mobloc, direction)
+1 -1
View File
@@ -1,7 +1,7 @@
/obj/effect/proc_holder/spell/targeted/touch/fake_disintegrate
name = "Disintegrate"
desc = "This spell charges your hand with vile energy that can be used to violently explode victims."
hand_path = "/obj/item/weapon/melee/touch_attack/fake_disintegrate"
hand_path = "/obj/item/melee/touch_attack/fake_disintegrate"
school = "evocation"
charge_max = 600
+1 -1
View File
@@ -18,5 +18,5 @@
C.drop_item()
C.swap_hand()
C.drop_item()
var/obj/item/weapon/gun/projectile/shotgun/boltaction/enchanted/GUN = new
var/obj/item/gun/projectile/shotgun/boltaction/enchanted/GUN = new
C.put_in_hands(GUN)
+2 -2
View File
@@ -28,7 +28,7 @@
config.continuous_rounds = 0
return ..()
/obj/effect/proc_holder/spell/targeted/lichdom/cast(list/targets,mob/user = usr)
/obj/effect/proc_holder/spell/targeted/lichdom/cast(list/targets,mob/user = usr)
if(!config.continuous_rounds)
existence_stops_round_end = 1
config.continuous_rounds = 1
@@ -49,7 +49,7 @@
charge_counter = charge_max
return
if(!marked_item || qdeleted(marked_item)) //Wait nevermind
if(!marked_item || QDELETED(marked_item)) //Wait nevermind
to_chat(M, "<span class='warning'>Your phylactery is gone!</span>")
return
+4 -4
View File
@@ -1,6 +1,6 @@
/obj/effect/proc_holder/spell/targeted/touch
var/hand_path = /obj/item/weapon/melee/touch_attack
var/obj/item/weapon/melee/touch_attack/attached_hand = null
var/hand_path = /obj/item/melee/touch_attack
var/obj/item/melee/touch_attack/attached_hand = null
invocation_type = "none" //you scream on connecting, not summoning
include_user = 1
range = -1
@@ -47,7 +47,7 @@
/obj/effect/proc_holder/spell/targeted/touch/disintegrate
name = "Disintegrate"
desc = "This spell charges your hand with vile energy that can be used to violently explode victims."
hand_path = /obj/item/weapon/melee/touch_attack/disintegrate
hand_path = /obj/item/melee/touch_attack/disintegrate
school = "evocation"
charge_max = 600
@@ -59,7 +59,7 @@
/obj/effect/proc_holder/spell/targeted/touch/flesh_to_stone
name = "Flesh to Stone"
desc = "This spell charges your hand with the power to turn victims into inert statues for a long period of time."
hand_path = /obj/item/weapon/melee/touch_attack/fleshtostone
hand_path = /obj/item/melee/touch_attack/fleshtostone
school = "transmutation"
charge_max = 600
+16 -19
View File
@@ -5,8 +5,8 @@
var/target
/obj/effect/statclick/New(ntarget, text)
name = text
target = ntarget
name = text
/obj/effect/statclick/proc/update(text)
name = text
@@ -15,25 +15,22 @@
/obj/effect/statclick/debug
var/class
/obj/effect/statclick/debug/New(ntarget)
name = "Initializing..."
target = ntarget
if(istype(target, /datum/controller/process))
class = "process"
else if(istype(target, /datum/controller/processScheduler))
class = "scheduler"
else if(istype(target, /datum/controller))
class = "controller"
else if(istype(target, /datum))
class = "datum"
else
class = "unknown"
// This bit is called when clicked in the stat panel
/obj/effect/statclick/debug/Click()
if(!is_admin(usr))
if(!is_admin(usr) || !target)
return
if(!class)
if(istype(target, /datum/controller/process))
class = "process"
else if(istype(target, /datum/controller/processScheduler))
class = "scheduler"
if(istype(target, /datum/controller/subsystem))
class = "subsystem"
else if(istype(target, /datum/controller))
class = "controller"
else if(istype(target, /datum))
class = "datum"
else
class = "unknown"
usr.client.debug_variables(target)
message_admins("Admin [key_name_admin(usr)] is debugging the [target] [class].")
message_admins("Admin [key_name_admin(usr)] is debugging the [target] [class].")
+350 -341
View File
File diff suppressed because it is too large Load Diff
+95 -88
View File
@@ -99,7 +99,7 @@ var/list/uplink_items = list()
var/mob/living/carbon/human/A = user
A.put_in_any_hand_if_possible(I)
if(istype(I,/obj/item/weapon/storage/box/) && I.contents.len>0)
if(istype(I,/obj/item/storage/box/) && I.contents.len>0)
for(var/atom/o in I)
U.purchase_log += "<BIG>[bicon(o)]</BIG>"
else
@@ -124,7 +124,7 @@ var/list/uplink_items = list()
name = "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"
reference = "BG"
item = /obj/item/weapon/grenade/clown_grenade
item = /obj/item/grenade/clown_grenade
cost = 5
job = list("Clown")
@@ -133,7 +133,7 @@ var/list/uplink_items = list()
name = "Cane Shotgun + Assassination Darts"
desc = "A specialized, one shell shotgun with a built-in cloaking device to mimic a cane. The shotgun is capable of hiding it's contents and the pin alongside being supressed. Comes with 6 special darts and a preloaded shrapnel round."
reference = "MCS"
item = /obj/item/weapon/storage/box/syndie_kit/caneshotgun
item = /obj/item/storage/box/syndie_kit/caneshotgun
cost = 10
job = list("Mime")
@@ -142,7 +142,7 @@ 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."
reference = "CESS"
item = /obj/item/weapon/reagent_containers/food/condiment/syndisauce
item = /obj/item/reagent_containers/food/condiment/syndisauce
cost = 2
job = list("Chef")
@@ -150,7 +150,7 @@ var/list/uplink_items = list()
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."
reference = "MC"
item = /obj/item/weapon/kitchen/knife/butcher/meatcleaver
item = /obj/item/kitchen/knife/butcher/meatcleaver
cost = 10
job = list("Chef")
@@ -158,7 +158,7 @@ var/list/uplink_items = list()
name = "Syndicate Donk Pockets"
desc = "A box of highly specialized Donk pockets with a number of regenerative and stimulating chemicals inside of them; the box comes equipped with a self-heating mechanism."
reference = "SDP"
item = /obj/item/weapon/storage/box/syndidonkpockets
item = /obj/item/storage/box/syndidonkpockets
cost = 2
job = list("Chef")
@@ -176,7 +176,7 @@ var/list/uplink_items = list()
name = "Missionary Starter Kit"
desc = "A box containing a missionary staff, missionary robes, and bible. The robes and staff can be linked to allow you to convert victims at range for a short time to do your bidding. The bible is for bible stuff."
reference = "MK"
item = /obj/item/weapon/storage/box/syndie_kit/missionary_set
item = /obj/item/storage/box/syndie_kit/missionary_set
cost = 15
job = list("Chaplain")
@@ -184,7 +184,7 @@ var/list/uplink_items = list()
name = "Artistic Toolbox"
desc = "An accursed toolbox that grants its followers extreme power at the cost of requiring repeated sacrifices to it. If sacrifices are not provided, it will turn on its follower."
reference = "HGAT"
item = /obj/item/weapon/storage/toolbox/green/memetic
item = /obj/item/storage/toolbox/green/memetic
cost = 20
job = list("Chaplain")
surplus = 0 //No lucky chances from the crate; if you get this, this is ALL you're getting
@@ -196,7 +196,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."
reference = "PM"
item = /obj/item/weapon/caution/proximity_sign
item = /obj/item/caution/proximity_sign
cost = 4
job = list("Janitor")
surplus = 0
@@ -214,7 +214,7 @@ var/list/uplink_items = list()
/datum/uplink_item/dangerous/cat_grenade
name = "Feral Cat Delivery Grenade"
desc = "The feral cat delivery grenade contains 8 dehydrated feral cats in a similar manner to dehydrated monkeys, which, upon detonation, will be rehydrated by a small reservoir of water contained within the grenade. These cats will then attack anything in sight."
item = /obj/item/weapon/grenade/spawnergrenade/feral_cats
item = /obj/item/grenade/spawnergrenade/feral_cats
reference = "CCLG"
cost = 4
job = list("Psychiatrist")//why? Becuase its funny that a person in charge of your mental wellbeing has a cat granade..
@@ -235,7 +235,7 @@ var/list/uplink_items = list()
name = "Boozey Shotgun Shells"
desc = "A box containing 6 shotgun shells that simulate the effects of extreme drunkenness on the target, more effective for each type of alcohol in the target's system."
reference = "BSS"
item = /obj/item/weapon/storage/box/syndie_kit/boolets
item = /obj/item/storage/box/syndie_kit/boolets
cost = 3
job = list("Bartender")
@@ -245,7 +245,7 @@ var/list/uplink_items = list()
name = "Safety Scissors"
desc = "A pair of scissors that are anything but what their name implies; can easily cut right into someone's throat."
reference = "CTS"
item = /obj/item/weapon/scissors/safety
item = /obj/item/scissors/safety
cost = 5
job = list("Barber")
@@ -255,7 +255,7 @@ var/list/uplink_items = list()
name = "Briefcase Full of Bees"
desc = "A seemingly innocent briefcase full of not-so-innocent Syndicate-bred bees. Inject the case with blood to train the bees to ignore the donor(s). It also wirelessly taps into station intercomms to broadcast a message of TERROR."
reference = "BEE"
item = /obj/item/weapon/bee_briefcase
item = /obj/item/bee_briefcase
cost = 10
job = list("Botanist")
@@ -275,7 +275,7 @@ var/list/uplink_items = list()
name = "Telegun"
desc = "An extremely high-tech energy gun that utilizes bluespace technology to teleport away living targets. Select the target beacon on the telegun itself; projectiles will send targets to the beacon locked onto."
reference = "TG"
item = /obj/item/weapon/gun/energy/telegun
item = /obj/item/gun/energy/telegun
cost = 12
job = list("Research Director")
@@ -284,7 +284,7 @@ var/list/uplink_items = list()
name = "The E20"
desc = "A seemingly innocent die, those who are not afraid to roll for attack will find it's effects quite explosive. Has a four second timer."
reference = "ETW"
item = /obj/item/weapon/dice/d20/e20
item = /obj/item/dice/d20/e20
cost = 3
job = list("Librarian")
@@ -310,7 +310,7 @@ var/list/uplink_items = list()
name = "Energized Fire Axe"
desc = "A fire axe with a massive electrical charge built into it. It can release this charge on its first victim and will be rather plain after that."
reference = "EFA"
item = /obj/item/weapon/twohanded/energizedfireaxe
item = /obj/item/twohanded/energizedfireaxe
cost = 10
job = list("Life Support Specialist")
@@ -320,7 +320,7 @@ var/list/uplink_items = list()
name = "Stimulants"
desc = "A highly illegal compound contained within a compact auto-injector; when injected it makes the user extremely resistant to incapacitation and greatly enhances the body's ability to repair itself."
reference = "ST"
item = /obj/item/weapon/reagent_containers/hypospray/autoinjector/stimulants
item = /obj/item/reagent_containers/hypospray/autoinjector/stimulants
cost = 7
job = list("Scientist", "Research Director", "Geneticist", "Chief Medical Officer", "Medical Doctor", "Psychiatrist", "Chemist", "Paramedic", "Coroner", "Virologist")
@@ -330,7 +330,7 @@ var/list/uplink_items = list()
name = "Poison Bottle"
desc = "The Syndicate will ship a bottle containing 40 units of a randomly selected poison. The poison can range from highly irritating to incredibly lethal."
reference = "TPB"
item = /obj/item/weapon/reagent_containers/glass/bottle/traitor
item = /obj/item/reagent_containers/glass/bottle/traitor
cost = 2
job = list("Research Director", "Chief Medical Officer", "Medical Doctor", "Psychiatrist", "Chemist", "Paramedic", "Virologist", "Bartender", "Chef")
@@ -340,7 +340,7 @@ var/list/uplink_items = list()
name = "Poison Pen"
desc = "Cutting edge of deadly writing implements technology, this gadget will infuse any piece of paper with delayed contact poison."
reference = "PP"
item = /obj/item/weapon/pen/poison
item = /obj/item/pen/poison
cost = 2
excludefrom = list(/datum/game_mode/nuclear)
job = list("Head of Personnel", "Quartermaster", "Cargo Technician")
@@ -356,14 +356,14 @@ var/list/uplink_items = list()
name = "FK-69 Pistol"
reference = "SPI"
desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible with suppressors."
item = /obj/item/weapon/gun/projectile/automatic/pistol
item = /obj/item/gun/projectile/automatic/pistol
cost = 4
/datum/uplink_item/dangerous/revolver
name = "Syndicate .357 Revolver"
reference = "SR"
desc = "A brutally simple syndicate revolver that fires .357 Magnum cartridges and has 7 chambers."
item = /obj/item/weapon/gun/projectile/revolver
item = /obj/item/gun/projectile/revolver
cost = 13
surplus = 50
@@ -371,7 +371,7 @@ var/list/uplink_items = list()
name = "C-20r Submachine Gun"
reference = "SMG"
desc = "A fully-loaded Scarborough Arms bullpup submachine gun that fires .45 rounds with a 20-round magazine and is compatible with suppressors."
item = /obj/item/weapon/gun/projectile/automatic/c20r
item = /obj/item/gun/projectile/automatic/c20r
cost = 14
gamemodes = list(/datum/game_mode/nuclear)
surplus = 40
@@ -380,7 +380,7 @@ var/list/uplink_items = list()
name = "M-90gl Carbine"
desc = "A fully-loaded three-round burst carbine that uses 30-round 5.56mm magazines with a togglable underslung 40mm grenade launcher."
reference = "AR"
item = /obj/item/weapon/gun/projectile/automatic/m90
item = /obj/item/gun/projectile/automatic/m90
cost = 18
gamemodes = list(/datum/game_mode/nuclear)
surplus = 50
@@ -389,7 +389,7 @@ var/list/uplink_items = list()
name = "L6 Squad Automatic Weapon"
desc = "A fully-loaded Aussec Armory belt-fed machine gun. This deadly weapon has a massive 50-round magazine of devastating 7.62x51mm ammunition."
reference = "LMG"
item = /obj/item/weapon/gun/projectile/automatic/l6_saw
item = /obj/item/gun/projectile/automatic/l6_saw
cost = 40
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
@@ -398,7 +398,7 @@ var/list/uplink_items = list()
name = "Sniper Rifle"
desc = "Ranged fury, Syndicate style. guaranteed to cause shock and awe or your TC back!"
reference = "SSR"
item = /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate
item = /obj/item/gun/projectile/automatic/sniper_rifle/syndicate
cost = 16
surplus = 25
gamemodes = list(/datum/game_mode/nuclear)
@@ -407,7 +407,7 @@ var/list/uplink_items = list()
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."
reference = "EC"
item = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow
item = /obj/item/gun/energy/kinetic_accelerator/crossbow
cost = 12
excludefrom = list(/datum/game_mode/nuclear)
surplus = 50
@@ -416,7 +416,7 @@ var/list/uplink_items = list()
name = "Flamethrower"
desc = "A flamethrower, fuelled by a portion of highly flammable bio-toxins stolen previously from Nanotrasen stations. Make a statement by roasting the filth in their own greed. Use with caution."
reference = "FT"
item = /obj/item/weapon/flamethrower/full/tank
item = /obj/item/flamethrower/full/tank
cost = 8
gamemodes = list(/datum/game_mode/nuclear)
surplus = 40
@@ -425,7 +425,7 @@ var/list/uplink_items = list()
name = "Energy Sword"
desc = "The energy sword 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."
reference = "ES"
item = /obj/item/weapon/melee/energy/sword/saber
item = /obj/item/melee/energy/sword/saber
cost = 8
/datum/uplink_item/dangerous/powerfist
@@ -435,14 +435,14 @@ var/list/uplink_items = list()
Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \
deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks."
reference = "PF"
item = /obj/item/weapon/melee/powerfist
item = /obj/item/melee/powerfist
cost = 8
/datum/uplink_item/dangerous/chainsaw
name = "Chainsaw"
desc = "A high powered chainsaw for cutting up ...you know...."
reference = "CH"
item = /obj/item/weapon/twohanded/chainsaw
item = /obj/item/twohanded/chainsaw
cost = 13
/datum/uplink_item/dangerous/batterer
@@ -456,7 +456,7 @@ var/list/uplink_items = list()
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."
reference = "VDG"
item = /obj/item/weapon/grenade/spawnergrenade/manhacks
item = /obj/item/grenade/spawnergrenade/manhacks
cost = 6
gamemodes = list(/datum/game_mode/nuclear)
surplus = 35
@@ -465,7 +465,7 @@ var/list/uplink_items = list()
name = "Box of Bioterror Syringes"
desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor and broca system , making it impossible for them to move or speak while in their system."
reference = "BTS"
item = /obj/item/weapon/storage/box/syndie_kit/bioterror
item = /obj/item/storage/box/syndie_kit/bioterror
cost = 5
gamemodes = list(/datum/game_mode/nuclear)
@@ -473,7 +473,7 @@ var/list/uplink_items = list()
name = "Sarin Gas Grenades"
desc = "A box of four (4) grenades filled with Sarin, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintained with team to avoid accidental gassings."
reference = "TGG"
item = /obj/item/weapon/storage/box/syndie_kit/sarin
item = /obj/item/storage/box/syndie_kit/sarin
cost = 12
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
@@ -482,7 +482,7 @@ var/list/uplink_items = list()
name = "Atmos Grenades"
desc = "A box of two (2) grenades that wreak havoc with the atmosphere of the target area. Capable of engulfing a large area in lit plasma, or N2O. Deploy with extreme caution!"
reference = "AGG"
item = /obj/item/weapon/storage/box/syndie_kit/atmosgasgrenades
item = /obj/item/storage/box/syndie_kit/atmosgasgrenades
cost = 11
/datum/uplink_item/dangerous/emp
@@ -490,14 +490,14 @@ var/list/uplink_items = list()
desc = "A box that contains two EMP grenades and an EMP implant. Useful to disrupt communication, \
security's energy weapons, and silicon lifeforms when you're in a tight spot."
reference = "EMPK"
item = /obj/item/weapon/storage/box/syndie_kit/emp
item = /obj/item/storage/box/syndie_kit/emp
cost = 2
/datum/uplink_item/dangerous/syndicate_minibomb
name = "Syndicate Minibomb"
desc = "The minibomb is a grenade with a five-second fuse."
reference = "SMB"
item = /obj/item/weapon/grenade/syndieminibomb
item = /obj/item/grenade/syndieminibomb
cost = 6
/datum/uplink_item/dangerous/gygax
@@ -523,7 +523,7 @@ var/list/uplink_items = list()
name = "Syndicate Cyborg"
desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel."
reference = "SC"
item = /obj/item/weapon/antag_spawner/borg_tele
item = /obj/item/antag_spawner/borg_tele
cost = 50
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
@@ -532,7 +532,7 @@ var/list/uplink_items = list()
name = "Toy Submachine Gun"
desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade rounds with a 20-round magazine."
reference = "FSMG"
item = /obj/item/weapon/gun/projectile/automatic/c20r/toy
item = /obj/item/gun/projectile/automatic/c20r/toy
cost = 5
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
@@ -541,7 +541,7 @@ var/list/uplink_items = list()
name = "Toy Machine Gun"
desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating riot grade darts, that can briefly incapacitate someone in just one volley."
reference = "FLMG"
item = /obj/item/weapon/gun/projectile/automatic/l6_saw/toy
item = /obj/item/gun/projectile/automatic/l6_saw/toy
cost = 10
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
@@ -558,14 +558,14 @@ var/list/uplink_items = list()
//for refunding the syndieborg teleporter
/datum/uplink_item/dangerous/syndieborg/spawn_item()
var/obj/item/weapon/antag_spawner/borg_tele/T = ..()
var/obj/item/antag_spawner/borg_tele/T = ..()
if(istype(T))
T.TC_cost = cost
/datum/uplink_item/dangerous/guardian
name = "Holoparasites"
desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an organic host as a home base and source of fuel."
item = /obj/item/weapon/storage/box/syndie_kit/guardian
item = /obj/item/storage/box/syndie_kit/guardian
excludefrom = list(/datum/game_mode/nuclear)
cost = 12
@@ -622,7 +622,7 @@ var/list/uplink_items = list()
name = "Ammo Duffelbag - Shotgun Ammo Grab Bag"
desc = "A duffelbag filled with Bulldog ammo to kit out an entire team, at a discounted price."
reference = "SAGL"
item = /obj/item/weapon/storage/backpack/duffel/syndie/ammo/loaded
item = /obj/item/storage/backpack/duffel/syndie/ammo/loaded
cost = 10 //bulk buyer's discount. Very useful if you're buying a mech and dont have TC left to buy people non-shotgun guns
gamemodes = list(/datum/game_mode/nuclear)
@@ -725,7 +725,7 @@ var/list/uplink_items = list()
desc = "A length of fiber wire between two wooden handles, perfect for the discrete assassin. This weapon, when used on a target from behind \
will instantly put them in your grasp and silence them, as well as causing rapid suffocation. Does not work on those who do not need to breathe."
reference = "GAR"
item = /obj/item/weapon/twohanded/garrote
item = /obj/item/twohanded/garrote
cost = 10
/datum/uplink_item/stealthy_weapons/martialarts
@@ -733,7 +733,7 @@ var/list/uplink_items = list()
desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \
deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry."
reference = "SCS"
item = /obj/item/weapon/sleeping_carp_scroll
item = /obj/item/sleeping_carp_scroll
cost = 17
excludefrom = list(/datum/game_mode/nuclear)
@@ -742,21 +742,21 @@ var/list/uplink_items = list()
desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \
throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs."
reference = "STK"
item = /obj/item/weapon/storage/box/syndie_kit/throwing_weapons
item = /obj/item/storage/box/syndie_kit/throwing_weapons
cost = 3
/datum/uplink_item/stealthy_weapons/edagger
name = "Energy Dagger"
desc = "A dagger made of energy that looks and functions as a pen when off."
reference = "EDP"
item = /obj/item/weapon/pen/edagger
item = /obj/item/pen/edagger
cost = 2
/datum/uplink_item/stealthy_weapons/sleepy_pen
name = "Sleepy Pen"
desc = "A syringe disguised as a functional pen. It's filled with a potent anaesthetic. \ The pen holds two doses of the mixture. The pen can be refilled."
reference = "SP"
item = /obj/item/weapon/pen/sleepy
item = /obj/item/pen/sleepy
cost = 8
excludefrom = list(/datum/game_mode/nuclear)
@@ -764,7 +764,7 @@ var/list/uplink_items = list()
name = "Toy Gun (with Stun Darts)"
desc = "An innocent looking toy pistol designed to fire foam darts. Comes loaded with riot grade darts, to incapacitate a target."
reference = "FSPI"
item = /obj/item/weapon/gun/projectile/automatic/toy/pistol/riot
item = /obj/item/gun/projectile/automatic/toy/pistol/riot
cost = 3
surplus = 10
@@ -772,7 +772,7 @@ var/list/uplink_items = list()
name = "Syndicate Soap"
desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. You can also drop it underfoot to slip people."
reference = "SOAP"
item = /obj/item/weapon/soap/syndie
item = /obj/item/soap/syndie
cost = 1
surplus = 50
@@ -780,7 +780,7 @@ var/list/uplink_items = list()
name = "Dart Pistol"
desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any space a small item can."
reference = "DART"
item = /obj/item/weapon/gun/syringe/syndicate
item = /obj/item/gun/syringe/syndicate
cost = 4
surplus = 50
excludefrom = list(/datum/game_mode/nuclear)
@@ -789,7 +789,7 @@ var/list/uplink_items = list()
name = "Rapid Syringe Gun"
desc = "A rapid syringe gun able to hold six shot and fire them rapidly. Great together with the bioterror syringe"
reference = "RSG"
item = /obj/item/weapon/gun/syringe/rapidsyringe
item = /obj/item/gun/syringe/rapidsyringe
cost = 4
gamemodes = list(/datum/game_mode/nuclear)
@@ -797,14 +797,14 @@ 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."
reference = "DEPC"
item = /obj/item/weapon/cartridge/syndicate
item = /obj/item/cartridge/syndicate
cost = 6
/datum/uplink_item/stealthy_weapons/silencer
name = "Universal Suppressor"
desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the shots of the weapon for increased stealth and superior ambushing capability."
reference = "US"
item = /obj/item/weapon/suppressor
item = /obj/item/suppressor
cost = 1
surplus = 10
@@ -854,7 +854,7 @@ var/list/uplink_items = list()
desc = "A stamp that can be activated to imitate an official Nanotrasen Stamp. The disguised stamp will work exactly like the real stamp and will allow you to forge false documents to gain access or equipment; \
it can also be used in a washing machine to forge clothing."
reference = "CHST"
item = /obj/item/weapon/stamp/chameleon
item = /obj/item/stamp/chameleon
cost = 1
surplus = 35
@@ -878,7 +878,7 @@ var/list/uplink_items = list()
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."
reference = "AIDC"
item = /obj/item/weapon/card/id/syndicate
item = /obj/item/card/id/syndicate
cost = 2
/datum/uplink_item/stealthy_tools/voice_changer
@@ -907,14 +907,14 @@ var/list/uplink_items = list()
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."
reference = "DNAS"
item = /obj/item/weapon/dnascrambler
item = /obj/item/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."
reference = "SMSA"
item = /obj/item/weapon/storage/backpack/satchel_flat
item = /obj/item/storage/backpack/satchel_flat
cost = 2
surplus = 30
@@ -932,7 +932,7 @@ var/list/uplink_items = list()
desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. This pack contains three as well as a \
spraycan for changing their appearances."
reference = "ADCC"
item = /obj/item/weapon/storage/box/syndie_kit/cutouts
item = /obj/item/storage/box/syndie_kit/cutouts
cost = 1
surplus = 20
@@ -946,28 +946,35 @@ var/list/uplink_items = list()
name = "Cryptographic Sequencer"
desc = "The cryptographic sequencer, also known as an emag, is a small card that unlocks hidden functions in electronic devices, subverts intended functions and characteristically breaks security mechanisms."
reference = "EMAG"
item = /obj/item/weapon/card/emag
item = /obj/item/card/emag
cost = 6
/datum/uplink_item/device_tools/toolbox
name = "Fully Loaded Toolbox"
desc = "The syndicate toolbox is a suspicious black and red. Aside from tools, it comes with insulated gloves and a multitool."
reference = "FLTB"
item = /obj/item/weapon/storage/toolbox/syndicate
item = /obj/item/storage/toolbox/syndicate
cost = 1
/datum/uplink_item/device_tools/surgerybag
name = "Syndicate Surgery Duffelbag"
desc = "The Syndicate surgery duffelbag is a toolkit containing all surgery tools, a straitjacket, and a muzzle."
reference = "SSDB"
item = /obj/item/weapon/storage/backpack/duffel/syndie/surgery
item = /obj/item/storage/backpack/duffel/syndie/surgery
cost = 4
/datum/uplink_item/device_tools/bonerepair
name = "Prototype Bone Repair Kit"
desc = "Stolen prototype bone repair nanites. Contains one nanocalcium autoinjector and guide."
reference = "NCAI"
item = /obj/item/storage/box/syndie_kit/bonerepair
cost = 6
/datum/uplink_item/device_tools/military_belt
name = "Military Belt"
desc = "A robust seven-slot red belt made for carrying a broad variety of weapons, ammunition and explosives"
reference = "SBM"
item = /obj/item/weapon/storage/belt/military
item = /obj/item/storage/belt/military
cost = 3
excludefrom = list(/datum/game_mode/nuclear)
@@ -976,7 +983,7 @@ var/list/uplink_items = list()
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."
reference = "SCMK"
item = /obj/item/weapon/storage/firstaid/tactical
item = /obj/item/storage/firstaid/tactical
cost = 7
gamemodes = list(/datum/game_mode/nuclear)
@@ -991,7 +998,7 @@ var/list/uplink_items = list()
fits inside bags, and has a weapon slot. Nanotrasen crewmembers are trained to report red space suit \
sightings, however."
reference = "SS"
item = /obj/item/weapon/storage/box/syndie_kit/space
item = /obj/item/storage/box/syndie_kit/space
cost = 4
/datum/uplink_item/suits/hardsuit
@@ -1003,14 +1010,14 @@ var/list/uplink_items = list()
Additionally the suit is collapsible, making it small enough to fit within a backpack. \
Nanotrasen crew who spot these suits are known to panic."
reference = "BRHS"
item = /obj/item/weapon/storage/box/syndie_kit/hardsuit
item = /obj/item/storage/box/syndie_kit/hardsuit
cost = 8
excludefrom = list(/datum/game_mode/nuclear)
/datum/uplink_item/suits/hardsuit/elite
name = "Elite Syndicate Hardsuit"
desc = "An advanced hardsuit with superior armor and mobility to the standard Syndicate Hardsuit."
item = /obj/item/weapon/storage/box/syndie_kit/elite_hardsuit
item = /obj/item/storage/box/syndie_kit/elite_hardsuit
cost = 8
reference = "ESHS"
excludefrom = list()
@@ -1019,7 +1026,7 @@ var/list/uplink_items = list()
/datum/uplink_item/suits/hardsuit/shielded
name = "Shielded Hardsuit"
desc = "An advanced hardsuit with built in energy shielding. The shields will rapidly recharge when not under fire."
item = /obj/item/weapon/storage/box/syndie_kit/shielded_hardsuit
item = /obj/item/storage/box/syndie_kit/shielded_hardsuit
cost = 30
reference = "SHS"
excludefrom = list()
@@ -1053,7 +1060,7 @@ var/list/uplink_items = list()
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."
reference = "HAI"
item = /obj/item/weapon/aiModule/syndicate
item = /obj/item/aiModule/syndicate
cost = 12
/datum/uplink_item/device_tools/magboots
@@ -1078,14 +1085,14 @@ var/list/uplink_items = list()
name = "Composition C-4"
desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls or connect an assembly to its wiring to make it remotely detonable. It has a modifiable timer with a minimum setting of 10 seconds."
reference = "C4"
item = /obj/item/weapon/grenade/plastic/c4
item = /obj/item/grenade/plastic/c4
cost = 1
/datum/uplink_item/device_tools/breaching_charge
name = "Composition X-4"
desc = "X-4 is a shaped charge designed to be safe to the user while causing maximum damage to the occupants of the room beach breached. It has a modifiable timer with a minimum setting of 10 seconds."
reference = "X4"
item = /obj/item/weapon/grenade/plastic/x4
item = /obj/item/grenade/plastic/x4
cost = 2
gamemodes = list(/datum/game_mode/nuclear)
@@ -1128,7 +1135,7 @@ var/list/uplink_items = list()
name = "Advanced Pinpointer"
desc = "A pinpointer that tracks any specified coordinates, DNA string, high value item or the nuclear authentication disk."
reference = "ADVP"
item = /obj/item/weapon/pinpointer/advpinpointer
item = /obj/item/pinpointer/advpinpointer
cost = 4
/datum/uplink_item/device_tools/ai_detector
@@ -1156,7 +1163,7 @@ var/list/uplink_items = list()
/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
item = /obj/item/circuitboard/teleporter
reference = "TP"
cost = 20
gamemodes = list(/datum/game_mode/nuclear)
@@ -1174,7 +1181,7 @@ var/list/uplink_items = list()
/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
item = /obj/item/shield/energy
reference = "ESD"
cost = 16
gamemodes = list(/datum/game_mode/nuclear)
@@ -1183,7 +1190,7 @@ var/list/uplink_items = list()
/datum/uplink_item/device_tools/medgun
name = "Medbeam Gun"
desc = "Medical Beam Gun, useful in prolonged firefights."
item = /obj/item/weapon/gun/medbeam
item = /obj/item/gun/medbeam
reference = "MBG"
cost = 15
gamemodes = list(/datum/game_mode/nuclear)
@@ -1198,14 +1205,14 @@ 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."
reference = "FI"
item = /obj/item/weapon/implanter/freedom
item = /obj/item/implanter/freedom
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 10 telecrystals. The ability for an agent to open an uplink after their possessions have been stripped from them makes this implant excellent for escaping confinement."
reference = "UI"
item = /obj/item/weapon/implanter/uplink
item = /obj/item/implanter/uplink
cost = 14
surplus = 0
@@ -1213,21 +1220,21 @@ var/list/uplink_items = list()
name = "Storage Implant"
desc = "An implant injected into the body, and later activated at the user's will. It will open a small subspace pocket capable of storing two items."
reference = "ESI"
item = /obj/item/weapon/implanter/storage
item = /obj/item/implanter/storage
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."
reference = "MI"
item = /obj/item/weapon/implanter/traitor
item = /obj/item/implanter/traitor
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."
reference = "AI"
item = /obj/item/weapon/implanter/adrenalin
item = /obj/item/implanter/adrenalin
cost = 8
/datum/uplink_item/implants/microbomb
@@ -1235,7 +1242,7 @@ var/list/uplink_items = list()
desc = "An implant injected into the body, and later activated either manually or automatically upon death. The more implants inside of you, the higher the explosive power. \
This will permanently destroy your body, however."
reference = "MBI"
item = /obj/item/weapon/implanter/explosive
item = /obj/item/implanter/explosive
cost = 2
gamemodes = list(/datum/game_mode/nuclear)
@@ -1251,7 +1258,7 @@ var/list/uplink_items = list()
U.uses -= max(cost, 0)
U.used_TC += cost
feedback_add_details("traitor_uplink_items_bought", name) //this one and the line before copypasted because snowflaek code
return new /obj/item/weapon/storage/box/cyber_implants(loc, item)
return new /obj/item/storage/box/cyber_implants(loc, item)
else
return ..()
@@ -1289,7 +1296,7 @@ var/list/uplink_items = list()
desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. \
Comes with an automated implanting tool."
reference = "CIB"
item = /obj/item/weapon/storage/box/cyber_implants/bundle
item = /obj/item/storage/box/cyber_implants/bundle
cost = 40
// POINTLESS BADASSERY
@@ -1302,14 +1309,14 @@ var/list/uplink_items = list()
name = "Syndicate Smokes"
desc = "Strong flavor, dense smoke, infused with omnizine."
reference = "SYSM"
item = /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate
item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate
cost = 2
/datum/uplink_item/badass/bundle
name = "Syndicate Bundle"
desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. These items are collectively worth more than 20 telecrystals, but you do not know which specialisation you will receive."
reference = "SYB"
item = /obj/item/weapon/storage/box/syndicate
item = /obj/item/storage/box/syndicate
cost = 20
excludefrom = list(/datum/game_mode/nuclear)
@@ -1328,7 +1335,7 @@ var/list/uplink_items = list()
desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods and services at lucrative prices. \
The briefcase also feels a little heavier to hold; it has been manufactured to pack a little bit more of a punch if your client needs some convincing."
reference = "CASH"
item = /obj/item/weapon/storage/secure/briefcase/syndie
item = /obj/item/storage/secure/briefcase/syndie
cost = 1
/datum/uplink_item/badass/balloon
@@ -1342,7 +1349,7 @@ var/list/uplink_items = list()
name = "Macrobomb Implant"
desc = "An implant injected into the body, and later activated either manually or automatically upon death. Upon death, releases a massive explosion that will wipe out everything nearby."
reference = "HAB"
item = /obj/item/weapon/implanter/explosive_macro
item = /obj/item/implanter/explosive_macro
cost = 20
gamemodes = list(/datum/game_mode/nuclear)
@@ -1350,7 +1357,7 @@ var/list/uplink_items = list()
name = "Random Item"
desc = "Picking this choice will send you a random item from the list. Useful for when you cannot think of a strategy to finish your objectives with."
reference = "RAIT"
item = /obj/item/weapon/storage/box/syndicate
item = /obj/item/storage/box/syndicate
cost = 0
/datum/uplink_item/badass/random/spawn_item(var/turf/loc, var/obj/item/device/uplink/U)
@@ -1377,7 +1384,7 @@ var/list/uplink_items = list()
desc = "A crate containing 50 telecrystals worth of random syndicate leftovers."
reference = "SYSC"
cost = 20
item = /obj/item/weapon/storage/box/syndicate
item = /obj/item/storage/box/syndicate
excludefrom = list(/datum/game_mode/nuclear)
/datum/uplink_item/badass/surplus_crate/spawn_item(turf/loc, obj/item/device/uplink/U)
+4 -3
View File
@@ -164,9 +164,10 @@ var/const/AIRLOCK_WIRE_LIGHT = 512
//one wire for door bolts. Sending a pulse through this drops door bolts if they're not down (whether power's on or not),
//raises them if they are down (only if power's on)
if(!A.locked)
A.lock()
else
A.unlock()
if(A.lock())
A.audible_message("<span class='italics'>You hear a click from the bottom of the door.</span>", null, 1)
else if(A.unlock())
A.audible_message("<span class='italics'>You hear a click from the bottom of the door.</span>", null, 1)
if(AIRLOCK_WIRE_BACKUP_POWER1)
//two wires for backup power. Sending a pulse through either one causes a breaker to trip, but this does not disable it unless main power is down too (in which case it is disabled for 1 minute or however long it takes main power to come back, whichever is shorter).
+4 -4
View File
@@ -10,10 +10,10 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
switch(index)
if(AUTOLATHE_HACK_WIRE)
return "Hack"
if(AUTOLATHE_SHOCK_WIRE)
return "Shock"
if(AUTOLATHE_DISABLE_WIRE)
return "Disable"
@@ -69,6 +69,6 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
updateUIs()
/datum/wires/autolathe/proc/updateUIs()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(holder)
nanomanager.update_uis(holder)
SSnanoui.update_uis(holder)
+2 -2
View File
@@ -25,7 +25,7 @@ var/const/WIRE_EXPLODE = 1
..()
/datum/wires/explosive/gibtonite
holder_type = /obj/item/weapon/twohanded/required/gibtonite
holder_type = /obj/item/twohanded/required/gibtonite
/datum/wires/explosive/gibtonite/CanUse(mob/L)
return 1
@@ -34,5 +34,5 @@ var/const/WIRE_EXPLODE = 1
return
/datum/wires/explosive/gibtonite/explode()
var/obj/item/weapon/twohanded/required/gibtonite/P = holder
var/obj/item/twohanded/required/gibtonite/P = holder
P.GibtoniteReaction(null, 2)
+5 -5
View File
@@ -11,12 +11,12 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4
switch(index)
if(NUCLEARBOMB_WIRE_LIGHT)
return "Bomb Light"
if(NUCLEARBOMB_WIRE_TIMING)
return "Bomb Timing"
if(NUCLEARBOMB_WIRE_SAFETY)
return "Bomb Safety"
return "Bomb Safety"
/datum/wires/nuclearbomb/CanUse(mob/living/L)
var/obj/machinery/nuclearbomb/N = holder
@@ -77,6 +77,6 @@ var/const/NUCLEARBOMB_WIRE_SAFETY = 4
N.lighthack = !N.lighthack
/datum/wires/nuclearbomb/proc/updateUIs()
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
if(holder)
nanomanager.update_uis(holder)
SSnanoui.update_uis(holder)
+5 -5
View File
@@ -76,7 +76,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
ui_interact(user)
/datum/wires/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "wires.tmpl", holder.name, window_x, window_y)
ui.open()
@@ -148,7 +148,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
holder.add_hiddenprint(L)
switch(href_list["action"])
if("cut") // Toggles the cut/mend status
if(istype(I, /obj/item/weapon/wirecutters) || L.can_admin_interact())
if(istype(I, /obj/item/wirecutters) || L.can_admin_interact())
if(istype(I))
playsound(holder, I.usesound, 20, 1)
CutWireColour(colour)
@@ -174,7 +174,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
else
to_chat(L, "<span class='error'>You need a remote signaller!</span>")
nanomanager.update_uis(src)
SSnanoui.update_uis(src)
return 1
//
@@ -184,12 +184,12 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
// Called when wires cut/mended.
/datum/wires/proc/UpdateCut(index, mended)
if(holder)
nanomanager.update_uis(holder)
SSnanoui.update_uis(holder)
// Called when wire pulsed. Add code here.
/datum/wires/proc/UpdatePulsed(index)
if(holder)
nanomanager.update_uis(holder)
SSnanoui.update_uis(holder)
/datum/wires/proc/CanUse(mob/L)
return 1