From 1bc69ec9b2a69381eaae9e1b9ab4029c4ee85e86 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sat, 3 Feb 2018 10:28:27 -0600 Subject: [PATCH] Vore alterations --- code/citadel/dogborgstuff.dm | 3 + code/modules/vore/eating/belly_vr.dm | 4 +- code/modules/vore/eating/voreitems.dm | 84 +++++++++++++++++++++------ 3 files changed, 70 insertions(+), 21 deletions(-) diff --git a/code/citadel/dogborgstuff.dm b/code/citadel/dogborgstuff.dm index 92c07bf4f9..7a348ad488 100644 --- a/code/citadel/dogborgstuff.dm +++ b/code/citadel/dogborgstuff.dm @@ -615,6 +615,9 @@ playsound(get_turf(hound),"death_pred",50,0,-6,0,channel=CHANNEL_PRED) T.stop_sound_channel(CHANNEL_PRED) T.playsound_local("death_prey",60) + for(var/obj/item/W in T) + if(!T.doUnEquip(W)) + qdel(W) qdel(T) update_gut() //Handle the target being anything but a mob diff --git a/code/modules/vore/eating/belly_vr.dm b/code/modules/vore/eating/belly_vr.dm index 986e6aad5a..c24ad5fab8 100644 --- a/code/modules/vore/eating/belly_vr.dm +++ b/code/modules/vore/eating/belly_vr.dm @@ -287,9 +287,9 @@ internal_contents.Add(subprey) to_chat(subprey, "As [M] melts away around you, you find yourself in [owner]'s [name]") - //Drop all items into the belly/floor. + //Drop all items into the belly for(var/obj/item/W in M) - if(!M.dropItemToGround(W)) + if(!M.doUnEquip(W)) qdel(W) message_admins("[key_name(owner)] digested [key_name(M)].") diff --git a/code/modules/vore/eating/voreitems.dm b/code/modules/vore/eating/voreitems.dm index 1215605eac..a896a7fe3a 100644 --- a/code/modules/vore/eating/voreitems.dm +++ b/code/modules/vore/eating/voreitems.dm @@ -1,22 +1,68 @@ -/obj/item/restraints/handcuffs/cable/vorecuffs - name = "vorecuffs" - desc = "Because Poojawa is at a loss for actually making people stop being muppets during vore." - icon_state = "vorecuffs" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - materials = list() - breakouttime = 20 //Deciseconds = 2s - trashtype = /obj/item/restraints/handcuffs/cable/vorecuffs/used +// -------------- Sickshot ------------- +/obj/item/gun/energy/sickshot + name = "\improper MPA6 \'Sickshot\'" + desc = "A device that can trigger convusions in specific areas to eject foreign material from a host. Must be used very close to a target" -/obj/item/restraints/handcuffs/cable/vorecuffs/used - desc = "You don't see this coder related vore trick." - icon_state = "vorecuffs_used" - item_state = "vorecuffs" + icon_state = "dragnet" + item_state = "dragnet" + ammo_x_offset = 1 + ammo_type = list(/obj/item/ammo_casing/energy/sickshot) + selfcharge = 1 -/obj/item/restraints/handcuffs/cable/vorecuffs/used/attack() - return +/obj/item/ammo_casing/energy/sickshot + projectile_type = /obj/item/projectile/sickshot + e_cost = 100 -/obj/structure/closet/crate/vore - name = "Slimy ooze" - desc = "A mass of ooze, with something within" - icon_state = "vore_ooze" +//Projectile +/obj/item/projectile/sickshot + name = "sickshot pulse" + icon_state = "e_netting" + damage = 15 + damage_type = STAMINA + range = 2 + +/obj/item/projectile/sickshot/on_hit(var/atom/movable/target, var/blocked = 0) + if(iscarbon(target)) + var/mob/living/carbon/H = target + if(prob(10)) + H.vomit(20) + H.visible_message("[H] vomits on the floor!", \ + "You throw up on the floor!") + if(prob(20)) + for(var/X in H.vore_organs) + var/datum/belly/B = H.vore_organs[X] + B.release_all_contents() + H.visible_message("[H] contracts strangely, spewing out contents on the floor!", \ + "You spew out everything inside you on the floor!") + return + + +////////////////////////// Anti-Noms Drugs ////////////////////////// + +/datum/reagent/medicine/ickypak + name = "Ickypak" + id = "ickypak" + description = "A foul-smelling green liquid, for inducing muscle contractions to expel accidentally ingested things." + reagent_state = LIQUID + color = "#0E900E" + metabolization_rate = 0.25 * REAGENTS_METABOLISM + +/datum/reagent/medicine/ickypak/on_mob_life(var/mob/living/M, method=INGEST) + if(prob(10)) + M.visible_message("[M] retches!", \ + "You don't feel good...") + for(var/I in M.vore_organs) + var/datum/belly/B = M.vore_organs[I] + for(var/atom/movable/A in B.internal_contents) + if(prob(55)) + playsound(M, 'sound/effects/splat.ogg', 50, 1) + B.release_specific_contents(A) + M.visible_message("[M] contracts strangely, spewing out something!", \ + "You spew out something from inside you!") + return ..() + +/datum/chemical_reaction/ickypak + name = "Ickypak" + id = "ickypak" + results = list("ickypak" = 2) + required_reagents = list("chlorine" = 2 , "oil" = 1) \ No newline at end of file