diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index d1beea37f7c..b68899065de 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -456,7 +456,7 @@ /obj/item/reagent_containers/glass/bottle/antitoxin = 4, /obj/item/reagent_containers/glass/bottle/inaprovaline = 4, /obj/item/reagent_containers/glass/bottle/perconol = 3, - /obj/item/reagent_containers/glass/bottle/toxin = 4, + /obj/item/reagent_containers/glass/bottle/toxin = 1, /obj/item/reagent_containers/glass/bottle/coughsyrup = 4, /obj/item/reagent_containers/syringe = 12, /obj/item/device/healthanalyzer = 5, diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index bce5331e928..55f32745cd1 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -79,6 +79,7 @@ name = "egg cluster" desc = "They seem to pulse slightly with an inner life." icon_state = "eggs" + health = 10 var/amount_grown = 0 var/last_itch = 0 @@ -119,6 +120,14 @@ last_itch = world.time to_chat(O.owner, "Your [O.name] itches.") +/obj/effect/spider/eggcluster/proc/take_damage(var/damage) + health -= damage + if(health <= 0) + var/obj/item/organ/external/O = loc + if(istype(O) && O.owner) + to_chat(O.owner, SPAN_WARNING("You feel something dissolve in your [O.name]...")) + qdel(src) + /obj/effect/spider/spiderling name = "spiderling" desc = "It never stays still for long." diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index b6cb5506849..0cfdcc42efa 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -39,6 +39,7 @@ speed = 3 mob_size = 6 + attacktext = "bitten" attack_emote = "skitters toward" emote_sounds = list('sound/effects/creatures/spider_critter.ogg') diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index 264a9e58618..7ab0ebcb521 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -16,18 +16,24 @@ /datum/reagent/toxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(strength && alien != IS_DIONA) var/dam = (strength * removed) - if(target_organ && ishuman(M)) + if(ishuman(M)) var/mob/living/carbon/human/H = M - var/obj/item/organ/internal/I = H.internal_organs_by_name[target_organ] - if(I) - var/can_damage = I.max_damage - I.damage - if(can_damage > 0) - if(dam > can_damage) - I.take_internal_damage(can_damage, silent=TRUE) - dam -= can_damage - else - I.take_internal_damage(dam, silent=TRUE) - dam = 0 + if(target_organ) + var/obj/item/organ/internal/I = H.internal_organs_by_name[target_organ] + if(I) + var/can_damage = I.max_damage - I.damage + if(can_damage > 0) + if(dam > can_damage) + I.take_internal_damage(can_damage, silent=TRUE) + dam -= can_damage + else + I.take_internal_damage(dam, silent=TRUE) + dam = 0 + for(var/organ in H.organs) + var/obj/item/organ/external/O = organ + var/obj/effect/spider/eggcluster/C = locate() in O + if(C) + C.take_damage(removed * 2) if(dam) M.adjustToxLoss(target_organ ? (dam * 0.5) : dam) diff --git a/html/changelogs/geeves-useful_toxin.yml b/html/changelogs/geeves-useful_toxin.yml new file mode 100644 index 00000000000..0adf922beb4 --- /dev/null +++ b/html/changelogs/geeves-useful_toxin.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Toxin now does damage to any egg clusters that a nurse spider injected into someone." + - tweak: "The amount of toxin bottles in medical vendors have been lowered to 1, down from 4." \ No newline at end of file