diff --git a/code/WorkInProgress/SkyMarshal/eraser.dm b/code/WorkInProgress/SkyMarshal/eraser.dm
new file mode 100644
index 00000000000..f15384f3f14
--- /dev/null
+++ b/code/WorkInProgress/SkyMarshal/eraser.dm
@@ -0,0 +1,9 @@
+/obj/item/weapon/stamperaser
+ name = "Eraser"
+ desc = "Some type of eraser, you guess."
+ flags = FPRINT | TABLEPASS
+ icon = 'items.dmi'
+ icon_state = "zippo"
+ item_state = "zippo"
+ w_class = 1.0
+ m_amt = 80
\ No newline at end of file
diff --git a/code/datums/diseases/alien_embryo.dm b/code/datums/diseases/alien_embryo.dm
index 1008c7f54b4..29890cd6dc2 100644
--- a/code/datums/diseases/alien_embryo.dm
+++ b/code/datums/diseases/alien_embryo.dm
@@ -11,6 +11,7 @@
max_stages = 5
spread = "None"
spread_type = SPECIAL
+ stage_prob = 2
cure = "Unknown"
cure_id = list("lexorin","toxin","gargleblaster")
cure_chance = 20
diff --git a/code/defines/mob/living/carbon/carbon.dm b/code/defines/mob/living/carbon/carbon.dm
index b34ef524275..3e8250b4b33 100644
--- a/code/defines/mob/living/carbon/carbon.dm
+++ b/code/defines/mob/living/carbon/carbon.dm
@@ -5,6 +5,7 @@
var/brain_op_stage = 0.0
var/eye_op_stage = 0.0
var/appendix_op_stage = 0.0
+ var/embryo_op_stage = 0.0
var/datum/disease2/disease/virus2 = null
var/list/datum/disease2/disease/resistances2 = list()
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 6d829e5e35d..bdea8513101 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -824,6 +824,7 @@
icon = 'paper.dmi'
icon_state = "paper"
var/info = null
+ var/infoold = null
throwforce = 0
w_class = 1.0
throw_speed = 3
@@ -1458,6 +1459,11 @@
icon_state = "stamp-hos"
color = "hosred"
+/obj/item/weapon/stamp/detective
+ name = "detective's rubber stamp"
+ icon_state = "stamp-hos"
+ color = "hosred"
+
/obj/item/weapon/stamp/ce
name = "chief engineer's rubber stamp"
icon_state = "stamp-ce"
@@ -1516,7 +1522,7 @@
name = "d4"
desc = "A dice with four sides."
sides = 4
- icon_state = "d20"
+ icon_state = "dice"
item_state = "dice"
/obj/item/weapon/dice // -- TLE
@@ -1708,4 +1714,4 @@
desc = "A container for hold compressed matter awaiting re-construction."
origin_tech = "materials=5"
rating = 3
- m_amt = 80
+ m_amt = 80
\ No newline at end of file
diff --git a/code/game/objects/devices/PDA/uplink.dm b/code/game/objects/devices/PDA/uplink.dm
index 31e4943d1bc..1ac7813272f 100644
--- a/code/game/objects/devices/PDA/uplink.dm
+++ b/code/game/objects/devices/PDA/uplink.dm
@@ -41,6 +41,7 @@
menu_message += "Syndicate Card (3)
"
menu_message += "Voice-Changer (4)
"
menu_message += "Thermal Glasses (4)
"
+ menu_message += "Stamp Remover (1)
" //Allows doccuments to be de-stamped
menu_message += "
"
menu_message += "Freedom Implant (with injector) (3)
"
menu_message += "Uplink Implant (5 crystals inside) (10)
"
@@ -212,6 +213,10 @@
if(uses >= 10)
uses -= 10
new /obj/item/weapon/storage/box/syndicate(get_turf(hostpda))
+ if("bundle")
+ if(uses >= 1)
+ uses -= 1
+ new /obj/item/weapon/stamperaser(get_turf(hostpda))
generate_menu()
print_to_host(menu_message)
diff --git a/code/game/objects/items/weapons/papers_bins.dm b/code/game/objects/items/weapons/papers_bins.dm
index 1a5d3501f74..46247b0257a 100644
--- a/code/game/objects/items/weapons/papers_bins.dm
+++ b/code/game/objects/items/weapons/papers_bins.dm
@@ -124,6 +124,7 @@ CLIPBOARDS
if(istype(P, /obj/item/weapon/stamp))
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
return
+ src.infoold = src.info
src.info += text("
This paper has been stamped with the [].
", P.name)
switch(P.type)
if(/obj/item/weapon/stamp/captain)
@@ -141,11 +142,7 @@ CLIPBOARDS
if(/obj/item/weapon/stamp/denied)
src.overlays += "paper_stamped_denied"
if(/obj/item/weapon/stamp/clown)
- if (!clown)
- usr << "\red You are totally unable to use the stamp. HONK!"
- return
- else
- src.overlays += "paper_stamped_clown"
+ src.overlays += "paper_stamped_clown"
else
src.overlays += "paper_stamped"
if(!stamped)
@@ -153,6 +150,35 @@ CLIPBOARDS
stamped += P.type
user << "\blue You stamp the paper with your rubber stamp."
+
+ else if(istype(P, /obj/item/weapon/stamperaser))
+ if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
+ return
+ src.info = src.infoold
+ for(var/i, i <= stamped.len, i++)
+ switch(stamped[i])
+ if(/obj/item/weapon/stamp/captain)
+ src.overlays -= "paper_stamped_cap"
+ if(/obj/item/weapon/stamp/hop)
+ src.overlays -= "paper_stamped_hop"
+ if(/obj/item/weapon/stamp/hos)
+ src.overlays -= "paper_stamped_hos"
+ if(/obj/item/weapon/stamp/ce)
+ src.overlays -= "paper_stamped_ce"
+ if(/obj/item/weapon/stamp/rd)
+ src.overlays -= "paper_stamped_rd"
+ if(/obj/item/weapon/stamp/cmo)
+ src.overlays -= "paper_stamped_cmo"
+ if(/obj/item/weapon/stamp/denied)
+ src.overlays -= "paper_stamped_denied"
+ if(/obj/item/weapon/stamp/clown)
+ src.overlays -= "paper_stamped_clown"
+ else
+ src.overlays -= "paper_stamped"
+ stamped = new list()
+
+ user << "\blue You sucessfully remove those pesky stamps."
+
/*
else
if (istype(P, /obj/item/weapon/weldingtool))
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index 4180f9e34ab..c9a40160741 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -19,6 +19,32 @@ CIRCULAR SAW
if(!((locate(/obj/machinery/optable, M.loc) && M.resting) || (locate(/obj/structure/table/, M.loc) && (M.lying || M.weakened || M.stunned || M.paralysis || M.sleeping || M.stat) && prob(50))))
return ..()
+ if(user.zone_sel.selecting == "chest")
+ if(istype(M, /mob/living/carbon/human))
+ switch(M:embryo_op_stage)
+ if(2.0)
+ if(M != user)
+ for(var/mob/O in (viewers(M) - user - M))
+ O.show_message("\red [user] retracts the flap in [M]'s cut open torso with [src].", 1)
+ M << "\red [user] begins to retracts the flap in your chest with [src]!"
+ user << "\red You clamp retracts the flap in [M]'s torso with [src]!"
+ M:embryo_op_stage = 3.0
+ return
+ if(4.0)
+ if(M != user)
+ for(var/mob/O in (viewers(M) - user - M))
+ O.show_message("\red [user] rips the larva out of [M]'s torso!", 1)
+ M << "\red [user] begins to rip the larva out of [M]'s torso!"
+ user << "\red You rip the larva out of [M]'s torso!"
+ var/mob/living/carbon/alien/larva/stupid = new(M.loc)
+ stupid.death(0)
+ //Make a larva and kill it. -- SkyMarshal
+ M:embryo_op_stage = 5.0
+ for(var/datum/disease/alien_embryo in M.viruses)
+ alien_embryo.cure()
+ return
+ return
+
if(user.zone_sel.selecting == "groin")
if(istype(M, /mob/living/carbon/human))
switch(M:appendix_op_stage)
@@ -92,6 +118,26 @@ CIRCULAR SAW
if(!((locate(/obj/machinery/optable, M.loc) && M.resting) || (locate(/obj/structure/table/, M.loc) && M.lying && prob(50))))
return ..()
+ if(user.zone_sel.selecting == "chest")
+ if(istype(M, /mob/living/carbon/human))
+ switch(M:embryo_op_stage)
+ if(1.0)
+ if(M != user)
+ for(var/mob/O in (viewers(M) - user - M))
+ O.show_message("\red [user] is beginning to clamp bleeders in [M]'s cut open torso with [src].", 1)
+ M << "\red [user] begins to torso bleeders in your chest with [src]!"
+ user << "\red You clamp bleeders in [M]'s torso with [src]!"
+ M:embryo_op_stage = 2.0
+ return
+ if(5.0)
+ if(M != user)
+ for(var/mob/O in (viewers(M) - user - M))
+ O.show_message("\red [user] cleans out the debris from [M]'s cut open torso with [src].", 1)
+ M << "\red [user] begins to clean out the debris in your torso with [src]!"
+ user << "\red You clean out the debris from in [M]'s torso with [src]!"
+ M:embryo_op_stage = 6.0
+ return
+
if(user.zone_sel.selecting == "groin")
if(istype(M, /mob/living/carbon/human))
switch(M:appendix_op_stage)
@@ -177,6 +223,18 @@ CIRCULAR SAW
if(!((locate(/obj/machinery/optable, M.loc) && M.resting) || (locate(/obj/structure/table/, M.loc) && M.lying && prob(50))))
return ..()
+ if(user.zone_sel.selecting == "chest")
+ if(istype(M, /mob/living/carbon/human))
+ switch(M:embryo_op_stage)
+ if(6.0)
+ if(M != user)
+ for(var/mob/O in (viewers(M) - user - M))
+ O.show_message("\red [user] is beginning to cauterize the incision in [M]'s torso with [src].", 1)
+ M << "\red [user] begins to cauterize the incision in your torso with [src]!"
+ user << "\red You cauterize the incision in [M]'s torso with [src]!"
+ M:embryo_op_stage = 7.0
+ return
+
if(user.zone_sel.selecting == "groin")
if(istype(M, /mob/living/carbon/human))
switch(M:appendix_op_stage)
@@ -264,6 +322,28 @@ CIRCULAR SAW
src.add_fingerprint(user)
+ if(user.zone_sel.selecting == "chest")
+ if(istype(M, /mob/living/carbon/human))
+ switch(M:embryo_op_stage)
+ if(0.0)
+ if(M != user)
+ for(var/mob/O in (viewers(M) - user - M))
+ O.show_message("\red [M] is beginning to have his torso cut open with [src] by [user].", 1)
+ M << "\red [user] begins to cut open your torso with [src]!"
+ user << "\red You cut [M]'s torso open with [src]!"
+ M:embryo_op_stage = 1.0
+ if(3.0)
+ if(M != user)
+ for(var/mob/O in (viewers(M) - user - M))
+ O.show_message("\red [M] is beginning to have his stomach cut open with [src] by [user].", 1)
+ M << "\red [user] begins to cut open your stomach with [src]!"
+ user << "\red You cut [M]'s stomach open with [src]!"
+ for(var/datum/disease/D in M.viruses)
+ if(istype(D, /datum/disease/alien_embryo))
+ user << "\red There's something wiggling in there!"
+ M:embryo_op_stage = 4.0
+ return
+
if(user.zone_sel.selecting == "groin")
if(istype(M, /mob/living/carbon/human))
switch(M:appendix_op_stage)
diff --git a/code/game/objects/items/weapons/uplinks.dm b/code/game/objects/items/weapons/uplinks.dm
index 39d0d1a9fe6..70db9532826 100644
--- a/code/game/objects/items/weapons/uplinks.dm
+++ b/code/game/objects/items/weapons/uplinks.dm
@@ -44,9 +44,10 @@ SYNDICATE UPLINK
dat += "Syndicate Card (3)
"
dat += "Voice-Changer (4)
"
dat += "Thermal Glasses (4)
"
+ dat += "Stamp Remover (1)
"
dat += "
"
dat += "Freedom Implant (with injector) (3)
"
- dat += "Paralysis Pen (3)
" //Note that this goes to the updated sleepypen now.
+// dat += "Paralysis Pen (3)
" //Note that this goes to the updated sleepypen now.
dat += "Sleepy Pen (4)
" //Terrible -Pete. //Reinstated -Skymarshal
dat += "
"
dat += "Detomatix Cartridge (3)
"