diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index 37f2943a0f4..1984663ad0a 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -285,6 +285,9 @@ if(!source.dropItemToGround(item)) return FALSE + if(istype(item, /obj/item/clothing/mask/facehugger)) + GLOB.round_statistics.failed_impregnations++ + source.log_message("[key_name(source)] has been stripped of [item] by [key_name(user)]", LOG_ATTACK, color="red") user.log_message("[key_name(source)] has been stripped of [item] by [key_name(user)]", LOG_ATTACK, color="red", log_globally=FALSE) diff --git a/code/datums/gamemodes/_game_mode.dm b/code/datums/gamemodes/_game_mode.dm index 0de7a051b96..6b07ef7da91 100644 --- a/code/datums/gamemodes/_game_mode.dm +++ b/code/datums/gamemodes/_game_mode.dm @@ -406,6 +406,10 @@ GLOBAL_LIST_INIT(bioscan_locations, list( parts += "[SSevacuation.human_escaped] marines manage to evacuate, among [SSevacuation.initial_human_on_ship] that were on ship when xenomorphs arrived." if(GLOB.round_statistics.now_pregnant) parts += "[GLOB.round_statistics.now_pregnant] people infected among which [GLOB.round_statistics.total_larva_burst] burst. For a [(GLOB.round_statistics.total_larva_burst / max(GLOB.round_statistics.now_pregnant, 1)) * 100]% successful delivery rate!" + if(GLOB.round_statistics.failed_impregnations) + parts += "[GLOB.round_statistics.failed_impregnations] failed impregnations." + if(GLOB.round_statistics.larva_surgically_removed) + parts += "[GLOB.round_statistics.larva_surgically_removed] larvas surgically removed before burst." if(length(GLOB.round_statistics.workout_counts)) for(var/faction in GLOB.round_statistics.workout_counts) parts += "The [faction] faction did [GLOB.round_statistics.workout_counts[faction]] workout sets." diff --git a/code/datums/round_statistics.dm b/code/datums/round_statistics.dm index 415d30f50a0..29de3a19d47 100644 --- a/code/datums/round_statistics.dm +++ b/code/datums/round_statistics.dm @@ -64,6 +64,8 @@ GLOBAL_DATUM_INIT(round_statistics, /datum/round_statistics, new) var/rocket_shells_fired = 0 var/queen_screech = 0 var/now_pregnant = 0 + var/failed_impregnations = 0 + var/larva_surgically_removed = 0 var/sentinel_drain_stings = 0 var/sentinel_neurotoxin_stings = 0 var/ozelomelyn_stings = 0 diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index cef924ff4b3..cc6852b1135 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -547,6 +547,8 @@ if(!Adjacent(M)|| !I || I != M.get_item_by_slot(slot_to_process)) return M.dropItemToGround(I) + if(istype(I, /obj/item/clothing/mask/facehugger)) + GLOB.round_statistics.failed_impregnations++ log_combat(src, M, "removed [key_name(I)] ([slot_to_process])") if(isidcard(I)) message_admins("[ADMIN_TPMONTY(src)] took the [I] of [ADMIN_TPMONTY(M)].") diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 8063e541617..c8d8c89c40e 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -56,6 +56,7 @@ else A.forceMove(target.loc) target.status_flags &= ~XENO_HOST + GLOB.round_statistics.larva_surgically_removed++ affected.createwound(CUT, rand(0,20), 1) target.updatehealth()