diff --git a/code/datums/uplink/implants.dm b/code/datums/uplink/implants.dm index 3f5d8a67e9c..e6afa972bb0 100644 --- a/code/datums/uplink/implants.dm +++ b/code/datums/uplink/implants.dm @@ -17,7 +17,7 @@ /datum/uplink_item/item/implants/imp_explosive name = "Explosive Implant (DANGER!)" - item_cost = 4 + item_cost = 3 desc = "A box containing an explosive implant and implanter. Use the implant in-hand to set the explosion size and trigger phrase." path = /obj/item/storage/box/syndie_kit/imp_explosive diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 8212ee515b2..fc1f0c0ce8a 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -122,77 +122,6 @@ Implant Specifics:
"} spawn(delay) malfunction-- - -/obj/item/implant/explosive/deadman - name = "deadman explosive" - desc = "A military grade micro bio-explosive that detonates upon death." - icon_state = "implant_evil" - uses_codewords = FALSE - -/obj/item/implant/explosive/deadman/get_data() - . = {" -Implant Specifications:
-Name: Robust Corp RX-78 Employee Management Implant
-Life: Activates upon death.
-Important Notes: Explodes
-
-Implant Details:
-Function: Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.
-Special Features: Explodes
-Integrity: Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."} - -/obj/item/implant/explosive/deadman/attack_self(mob/user) - return - -/obj/item/implant/explosive/deadman/hear(var/msg) - return - -/obj/item/implant/explosive/deadman/process() - if(malfunction) - STOP_PROCESSING(SSprocessing, src) - return - if (!implanted) - return - var/mob/M = imp_in - - if(M.stat == DEAD) - activate() - -/obj/item/implant/explosive/deadman/activate(var/cause) - small_countdown(src) - STOP_PROCESSING(SSprocessing, src) - -/obj/item/implant/explosive/deadman/small_boom() - if(imp_in) - explosion(get_turf(src), 0, 0, 2, 4, 5) - qdel(src) - imp_in.gib() - -/obj/item/implant/explosive/deadman/implanted(mob/source) - START_PROCESSING(SSprocessing, src) - return TRUE - -/obj/item/implant/explosive/deadman/emp_act(severity) - if(malfunction) - return - malfunction = MALFUNCTION_TEMPORARY - switch (severity) - if(3.0) - if(prob(1)) - small_countdown() - else if(prob(5)) - meltdown() - if(2.0) - if(prob(5)) - small_countdown() - else if (prob(10)) - meltdown() - if(1.0) - if(prob(10)) - small_countdown() - else if (prob(30)) - meltdown() - //BS12 Explosive /obj/item/implant/explosive name = "explosive implant" @@ -201,6 +130,7 @@ Implant Specifics:
"} var/phrase var/setup_done = FALSE //Have we set this yet? var/uses_codewords = TRUE + var/list/possible_explosions = list("Localized Limb", "Destroy Body") icon_state = "implant_evil" /obj/item/implant/explosive/Initialize() @@ -264,7 +194,7 @@ Implant Specifics:
"} small_countdown() return //to avoid hotspot_expose. if(elevel == "Destroy Body") - explosion(get_turf(T), -1, 0, 1, 6) + explosion(get_turf(T), -1, 0, 2, 6) T.gib() if(elevel == "Full Explosion") explosion_spread(get_turf(T), rand(8,13)) @@ -324,7 +254,7 @@ Implant Specifics:
"} return TRUE /obj/item/implant/explosive/attack_self(mob/user) - elevel = alert("What sort of explosion would you prefer?", "Implant Intent", "Localized Limb", "Destroy Body", "Full Explosion") + elevel = input(user, "What sort of explosion would you prefer?", "Implant Intent") as null|anything in possible_explosions phrase = input("Choose activation phrase:") as text var/list/replacechars = list("\"" = "",">" = "","<" = "","(" = "",")" = "") phrase = replace_characters(phrase, replacechars) @@ -365,6 +295,78 @@ Implant Specifics:
"} listening_objects -= src return ..() +/obj/item/implant/explosive/full + possible_explosions = list("Localized Limb", "Destroy Body", "Full Explosion") + +/obj/item/implant/explosive/deadman + name = "deadman explosive" + desc = "A military grade micro bio-explosive that detonates upon death." + icon_state = "implant_evil" + uses_codewords = FALSE + +/obj/item/implant/explosive/deadman/get_data() + . = {" +Implant Specifications:
+Name: Robust Corp RX-78 Employee Management Implant
+Life: Activates upon death.
+Important Notes: Explodes
+
+Implant Details:
+Function: Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.
+Special Features: Explodes
+Integrity: Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."} + +/obj/item/implant/explosive/deadman/attack_self(mob/user) + return + +/obj/item/implant/explosive/deadman/hear(var/msg) + return + +/obj/item/implant/explosive/deadman/process() + if(malfunction) + STOP_PROCESSING(SSprocessing, src) + return + if (!implanted) + return + var/mob/M = imp_in + + if(M.stat == DEAD) + activate() + +/obj/item/implant/explosive/deadman/activate(var/cause) + small_countdown(src) + STOP_PROCESSING(SSprocessing, src) + +/obj/item/implant/explosive/deadman/small_boom() + if(imp_in) + explosion(get_turf(src), -1, 0, 1, 6) + imp_in.gib() + qdel(src) + +/obj/item/implant/explosive/deadman/implanted(mob/source) + START_PROCESSING(SSprocessing, src) + return TRUE + +/obj/item/implant/explosive/deadman/emp_act(severity) + if(malfunction) + return + malfunction = MALFUNCTION_TEMPORARY + switch (severity) + if(3.0) + if(prob(1)) + small_countdown() + else if(prob(5)) + meltdown() + if(2.0) + if(prob(5)) + small_countdown() + else if (prob(10)) + meltdown() + if(1.0) + if(prob(10)) + small_countdown() + else if (prob(30)) + meltdown() /obj/item/implant/chem name = "chemical implant" diff --git a/html/changelogs/alberyk_implant.yml b/html/changelogs/alberyk_implant.yml new file mode 100644 index 00000000000..0bcd942dd9f --- /dev/null +++ b/html/changelogs/alberyk_implant.yml @@ -0,0 +1,6 @@ +author: Alberyk + +delete-after: True + +changes: + - rscdel: "Removed the full explosion option from the explosive implant. It is now one telecrystal cheaper."