diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index c964dd1e0b4..820a3311cff 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -4,6 +4,7 @@
name = "implant"
icon = 'icons/obj/device.dmi'
icon_state = "implant"
+ origin_tech = "materials=2;biotech=3;programming=2"
var/implanted = null
var/mob/living/imp_in = null
var/obj/item/organ/external/part = null
@@ -52,6 +53,7 @@
/obj/item/weapon/implant/tracking
name = "tracking"
desc = "Track with this."
+ origin_tech = "materials=2;magnets=2;programming=2;biotech=2"
var/id = 1.0
@@ -92,6 +94,7 @@ Implant Specifics:
"}
/obj/item/weapon/implant/dexplosive
name = "explosive"
desc = "And boom goes the weasel."
+ origin_tech = "materials=2;combat=3;biotech=4;syndicate=4"
icon_state = "implant_evil"
get_data()
@@ -127,6 +130,7 @@ Implant Specifics:
"}
/obj/item/weapon/implant/explosive
name = "explosive implant"
desc = "A military grade micro bio-explosive. Highly dangerous."
+ origin_tech = "materials=2;combat=3;biotech=4;syndicate=4"
var/elevel = "Localized Limb"
var/phrase = "supercalifragilisticexpialidocious"
icon_state = "implant_evil"
@@ -252,6 +256,7 @@ Implant Specifics:
"}
/obj/item/weapon/implant/chem
name = "chem"
desc = "Injects things."
+ origin_tech = "materials=3;biotech=4"
allow_reagents = 1
get_data()
@@ -316,6 +321,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/loyalty
name = "loyalty"
desc = "Makes you loyal or such."
+ origin_tech = "materials=2;biotech=4;programming=4"
get_data()
var/dat = {"
@@ -406,6 +412,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/adrenalin
name = "adrenalin"
desc = "Removes all stuns and knockdowns."
+ origin_tech = "materials=2;biotech=4;combat=3;syndicate=4"
var/uses = 3
get_data()
@@ -436,7 +443,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
source.reagents.add_reagent("synaptizine", 10)
source.reagents.add_reagent("omnizine", 10)
- source.reagents.add_reagent("methamphetamine", 10)
+ source.reagents.add_reagent("stimulative_agent", 10)
return
@@ -523,6 +530,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
name = "compressed matter implant"
desc = "Based on compressed matter technology, can store a single item."
icon_state = "implant_evil"
+ origin_tech = "materials=2;magnets=4;bluespace=4;syndicate=4"
var/activation_emote = "sigh"
var/obj/item/scanned = null
@@ -574,7 +582,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/emp
name = "emp implant"
desc = "Triggers an EMP."
-
+ origin_tech = "materials=2;biotech=3;magnets=4;syndicate=4"
var/activation_emote = "chuckle"
var/uses = 2
diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm
index f4f9f3d2400..f32764ae410 100644
--- a/code/game/objects/items/weapons/implants/implantcase.dm
+++ b/code/game/objects/items/weapons/implants/implantcase.dm
@@ -8,7 +8,14 @@
throw_speed = 1
throw_range = 5
w_class = 1.0
+ origin_tech = "materials=1;biotech=2"
+ materials = list(MAT_GLASS=500)
var/obj/item/weapon/implant/imp = null
+
+ New()
+ ..()
+ update()
+
proc
update()
@@ -16,8 +23,10 @@
update()
if (src.imp)
src.icon_state = text("implantcase-[]", src.imp._color)
+ src.origin_tech = src.imp.origin_tech
else
src.icon_state = "implantcase-0"
+ src.origin_tech = initial(src.origin_tech)
return
@@ -148,4 +157,15 @@
New()
src.imp = new /obj/item/weapon/implant/freedom( src )
..()
+ return
+
+/obj/item/weapon/implantcase/adrenaline
+ name = "Glass Case- 'Adrenaline'"
+ desc = "A glass case containing an adrenaline implant."
+ icon = 'icons/obj/items.dmi'
+ icon_state = "implantcase-b"
+
+ New()
+ src.imp = new /obj/item/weapon/implant/adrenalin( src )
+ ..()
return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index 423ab379253..f0cad339826 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -6,16 +6,23 @@
throw_speed = 1
throw_range = 5
w_class = 2.0
+ origin_tech = "materials=1;biotech=3;programming=2"
var/obj/item/weapon/implant/imp = null
+/obj/item/weapon/implanter/New()
+ ..()
+ update()
+
/obj/item/weapon/implanter/proc/update()
/obj/item/weapon/implanter/update()
if (src.imp)
src.icon_state = "implanter1"
+ src.origin_tech = src.imp.origin_tech
else
src.icon_state = "implanter0"
+ src.origin_tech = initial(src.origin_tech)
return
diff --git a/code/game/objects/items/weapons/implants/implantfreedom.dm b/code/game/objects/items/weapons/implants/implantfreedom.dm
index 9b225ac70fc..68497e500b7 100644
--- a/code/game/objects/items/weapons/implants/implantfreedom.dm
+++ b/code/game/objects/items/weapons/implants/implantfreedom.dm
@@ -5,12 +5,12 @@
desc = "Use this to escape from those evil Red Shirts."
_color = "r"
var/activation_emote = "chuckle"
- var/uses = 1.0
+ origin_tech = "materials=2;magnets=3;biotech=3;syndicate=4"
+ var/uses = 4
New()
src.activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
- src.uses = rand(1, 5)
..()
return
diff --git a/code/game/objects/items/weapons/implants/implantuplink.dm b/code/game/objects/items/weapons/implants/implantuplink.dm
index 05b50b49b03..6e7fac76a6c 100644
--- a/code/game/objects/items/weapons/implants/implantuplink.dm
+++ b/code/game/objects/items/weapons/implants/implantuplink.dm
@@ -1,6 +1,7 @@
/obj/item/weapon/implant/uplink
name = "uplink"
desc = "Summon things."
+ origin_tech = "materials=2;magnets=4;programming=4;biotech=4;syndicate=8;bluespace=5"
var/activation_emote = "chuckle"
/obj/item/weapon/implant/uplink/New()
diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm
index ea2675034e7..add5d264d4f 100644
--- a/code/modules/reagents/newchem/medicine.dm
+++ b/code/modules/reagents/newchem/medicine.dm
@@ -825,6 +825,35 @@ datum/reagent/stimulants/reagent_deleted(var/mob/living/M as mob)
..()
return
+/datum/reagent/medicine/stimulative_agent
+ name = "Stimulative Agent"
+ id = "stimulative_agent"
+ description = "An illegal compound that darmatically enhances the body's performance and healing capabilities."
+ color = "#C8A5DC"
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+ overdose_threshold = 60
+
+/datum/reagent/medicine/stimulative_agent/on_mob_life(mob/living/M)
+ M.status_flags |= GOTTAGOFAST
+ if(M.health < 50 && M.health > 0)
+ M.adjustOxyLoss(-1*REM)
+ M.adjustToxLoss(-1*REM)
+ M.adjustBruteLoss(-1*REM)
+ M.adjustFireLoss(-1*REM)
+ M.AdjustParalysis(-3)
+ M.AdjustStunned(-3)
+ M.AdjustWeakened(-3)
+ M.adjustStaminaLoss(-5*REM)
+ ..()
+
+/datum/reagent/medicine/stimulative_agent/overdose_process(mob/living/M)
+ if(prob(33))
+ M.adjustStaminaLoss(2.5*REM)
+ M.adjustToxLoss(1*REM)
+ M.losebreath++
+ ..()
+ return
+
datum/reagent/insulin
name = "Insulin"
id = "insulin"
diff --git a/code/modules/reagents/newchem/newchem_procs.dm b/code/modules/reagents/newchem/newchem_procs.dm
index 5c87c0f0044..b2d6edc0995 100644
--- a/code/modules/reagents/newchem/newchem_procs.dm
+++ b/code/modules/reagents/newchem/newchem_procs.dm
@@ -96,7 +96,7 @@ datum/reagents/proc/check_ignoreslow(var/mob/M)
datum/reagents/proc/check_gofast(var/mob/M)
if(istype(M, /mob))
- if(M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola"))
+ if(M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola")||M.reagents.has_reagent("stimulative_agent"))
return 1
else
M.status_flags &= ~GOTTAGOFAST
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index 07c245d889d..11ca778f6c0 100755
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -190,7 +190,7 @@
/obj/item/device/destTagger
name = "destination tagger"
desc = "Used to set the destination of properly wrapped packages."
- icon_state = "dest_tagger"
+ icon_state = "cargotagger"
var/currTag = 0
//The whole system for the sorttype var is determined based on the order of this list,
//disposals must always be 1, since anything that's untagged will automatically go to disposals, or sorttype = 1 --Superxpdude
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 247bfdf25d8..bfaf774c42f 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -546,3 +546,19 @@
materials = list(MAT_METAL = 4000)
build_path = /obj/item/ammo_casing/shotgun
category = list("hacked", "Security")
+
+/datum/design/desttagger
+ name = "Destination tagger"
+ id = "desttagger"
+ build_type = AUTOLATHE
+ materials = list(MAT_METAL = 250, MAT_GLASS = 125)
+ build_path = /obj/item/device/destTagger
+ category = list("initial", "Electronics")
+
+/datum/design/handlabeler
+ name = "Hand labeler"
+ id = "handlabel"
+ build_type = AUTOLATHE
+ materials = list(MAT_METAL = 150, MAT_GLASS = 125)
+ build_path = /obj/item/weapon/hand_labeler
+ category = list("initial", "Electronics")
\ No newline at end of file
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index cf945134663..1cfd36c2bd6 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -204,4 +204,48 @@
build_type = PROTOLATHE
materials = list (MAT_METAL = 12500, MAT_GLASS = 7500, MAT_SILVER = 1500, MAT_GOLD = 1500, MAT_DIAMOND = 750)
build_path = /obj/item/weapon/scalpel/manager
+ category = list("Medical")
+
+/////////////////////////////////////////
+////////////Regular Implants/////////////
+/////////////////////////////////////////
+
+/datum/design/implanter
+ name = "Implanter"
+ desc = "A sterile automatic implant injector."
+ id = "implanter"
+ req_tech = list("materials" = 1, "programming" = 2, "biotech" = 3)
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 600, MAT_GLASS = 200)
+ build_path = /obj/item/weapon/implanter
+ category = list("Medical")
+
+/datum/design/implantcase
+ name = "Implant Case"
+ desc = "A glass case containing an implant."
+ id = "implantcase"
+ req_tech = list("materials" = 1, "biotech" = 2)
+ build_type = PROTOLATHE
+ materials = list(MAT_GLASS = 500)
+ build_path = /obj/item/weapon/implantcase
+ category = list("Medical")
+
+/datum/design/implant_freedom
+ name = "Freedom Implant Case"
+ desc = "A glass case containing an implant."
+ id = "implant_freedom"
+ req_tech = list("materials" = 2, "biotech" = 3, "magnets" = 3, "syndicate" = 5)
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 50, MAT_GLASS = 500, MAT_GOLD = 250)
+ build_path = /obj/item/weapon/implantcase/freedom
+ category = list("Medical")
+
+/datum/design/implant_adrenalin
+ name = "Adrenalin Implant Case"
+ desc = "A glass case containing an implant."
+ id = "implant_adrenalin"
+ req_tech = list("materials" = 2, "biotech" = 5, "combat" = 3, "syndicate" = 6)
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 50, MAT_GLASS = 500, MAT_GOLD = 500, MAT_URANIUM = 100, MAT_DIAMOND = 200)
+ build_path = /obj/item/weapon/implantcase/adrenaline
category = list("Medical")
\ No newline at end of file
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 64e1b4941be..471cad514e5 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ