-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MIRROR] Replace natural beheading with cranial fissures (splitting y…
…our skull) (#1556) * [MIRROR] Replace natural beheading with cranial fissures (splitting your skull) (#80703) (#382) * Replace natural beheading with cranial fissures (splitting your skull) (#80703) Replaces natural beheading (doing a lot of damage to the head) with cranial fissures, which split your skull in half. ![dreamseeker_2023-12-31T19-38-16](https://github.com/tgstation/tgstation/assets/35135081/f84dc479-6156-45b7-bb23-4e4ec7378f6b) While you have this wound, your eyes can be pulled out of your head with bare hands, and slipping will spill your brain out of your head. Removes beheading objective from traitor. Zombies can be beheaded all the same. Any other way of beheading, such as surgery or amputation shears, is still possible. Closes #80439 I've enjoyed seeing the results of the test merge to remove natural beheading. At 947 beheadings in a week, 1 in every 7 deaths resulted in a beheading. This makes it significantly easier to remove people from rounds as the brain is generally critical to actually reviving someone. While round removal is fine, it should be something that is intentionally performed with enough effort. Mass round removals ought to require a significant amount of effort. There are plenty of ways to round remove someone, but it ought not be an incidental choice. The effects of beheading removal have shown some interesting anecdotal highlights (nothing here is backed up with stats, so take it with a grain of salt): 1. As a whole, people did not really replace it with anything. The biggest alternative has been lighting people on fire, but this has not been done at a significant enough scale at all to be a noteworthy problem, and is still fixable with enough effort. 2. Cult and rev rounds have played out far more interestingly. In one round I was adminning a head of staff who intended to behead every revolutionary they saw, but because they didn't, the back and forth continues. I've also had opportunities to revive head revs that I am skeptical would've been available to me otherwise. Complete removal of beheading was not chosen as it does not feel right for a repeated fire axe to the head to do basically nothing. The current implementation is intended to be something that is just not useful enough to do on everyone you see, but is still appreciably an effect. :cl: balance: Instead of too much damage to the head beheading someone, it will now split their skull in half. While their skull is open, you can rip out their eyes with your hands. and they will spill their brain out of their head if they slip. balance: The Path of Blades ascension will accept either a beheaded person, or someone with their skull split open. del: Removed the beheading objectives from traitor. /:cl: * Update _traits.dm --------- Co-authored-by: Mothblocks <[email protected]> * removed fissure and enabled beheading back --------- Co-authored-by: Bloop <[email protected]> Co-authored-by: Mothblocks <[email protected]> Co-authored-by: Iajret <[email protected]>
- Loading branch information
1 parent
dd57037
commit a81ab62
Showing
14 changed files
with
298 additions
and
121 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
/datum/wound_pregen_data/cranial_fissure | ||
wound_path_to_generate = /datum/wound/cranial_fissure | ||
required_limb_biostate = BIO_BONE | ||
|
||
required_wounding_types = list(WOUND_ALL) | ||
|
||
wound_series = WOUND_SERIES_CRANIAL_FISSURE | ||
|
||
threshold_minimum = 150 | ||
weight = 0 //FLUFFY FRONTIER EDIT. ORIGINAL //weight = 10 | ||
|
||
viable_zones = list(BODY_ZONE_HEAD) | ||
|
||
/datum/wound_pregen_data/cranial_fissure/get_weight(obj/item/bodypart/limb, woundtype, damage, attack_direction, damage_source) | ||
if (limb.owner?.stat < HARD_CRIT) | ||
return 0 | ||
|
||
return ..() | ||
|
||
/// A wound applied when receiving significant enough damage to the head. | ||
/// Will allow other players to take your eyes out of your head, and slipping | ||
/// will cause your brain to fall out of your head. | ||
/datum/wound/cranial_fissure | ||
name = "Cranial Fissure" | ||
desc = "Patient's crown is agape, revealing severe damage to the skull." | ||
treat_text = "Immediate surgical reconstruction of the skull." | ||
examine_desc = "is split open" | ||
occur_text = "is split into two separated chunks" | ||
|
||
simple_desc = "Patient's skull is split open." | ||
threshold_penalty = 40 | ||
|
||
severity = WOUND_SEVERITY_CRITICAL | ||
sound_effect = 'sound/effects/dismember.ogg' | ||
|
||
#define CRANIAL_FISSURE_FILTER_DISPLACEMENT "cranial_fissure_displacement" | ||
|
||
/datum/wound/cranial_fissure/wound_injury(datum/wound/old_wound = null, attack_direction = null) | ||
ADD_TRAIT(limb, TRAIT_IMMUNE_TO_CRANIAL_FISSURE, type) | ||
ADD_TRAIT(victim, TRAIT_HAS_CRANIAL_FISSURE, type) | ||
|
||
victim.add_filter(CRANIAL_FISSURE_FILTER_DISPLACEMENT, 2, displacement_map_filter(icon('icons/effects/cranial_fissure.dmi', "displacement"), size = 3)) | ||
|
||
RegisterSignal(victim, COMSIG_MOB_SLIPPED, PROC_REF(on_owner_slipped)) | ||
|
||
/datum/wound/cranial_fissure/remove_wound(ignore_limb, replaced) | ||
REMOVE_TRAIT(limb, TRAIT_IMMUNE_TO_CRANIAL_FISSURE, type) | ||
REMOVE_TRAIT(victim, TRAIT_HAS_CRANIAL_FISSURE, type) | ||
|
||
victim.remove_filter(CRANIAL_FISSURE_FILTER_DISPLACEMENT) | ||
|
||
UnregisterSignal(victim, COMSIG_MOB_SLIPPED) | ||
|
||
return ..() | ||
|
||
/datum/wound/cranial_fissure/proc/on_owner_slipped(mob/source) | ||
SIGNAL_HANDLER | ||
|
||
if (source.stat == DEAD) | ||
return | ||
|
||
var/obj/item/organ/internal/brain/brain = source.get_organ_by_type(/obj/item/organ/internal/brain) | ||
if (isnull(brain)) | ||
return | ||
|
||
brain.Remove(source) | ||
|
||
var/turf/source_turf = get_turf(source) | ||
brain.forceMove(source_turf) | ||
brain.throw_at(get_step(source_turf, source.dir), 1, 1) | ||
|
||
source.visible_message( | ||
span_boldwarning("[source]'s brain spills right out of [source.p_their()] head!"), | ||
span_userdanger("Your brain spills right out of your head!"), | ||
) | ||
|
||
/datum/wound/cranial_fissure/try_handling(mob/living/carbon/human/user) | ||
if (user.zone_selected != BODY_ZONE_HEAD && user.zone_selected != BODY_ZONE_PRECISE_EYES) | ||
return FALSE | ||
|
||
if (victim.body_position != LYING_DOWN) | ||
return FALSE | ||
|
||
var/obj/item/organ/internal/eyes/eyes = victim.get_organ_by_type(/obj/item/organ/internal/eyes) | ||
if (isnull(eyes)) | ||
victim.balloon_alert(user, "no eyes to take!") | ||
return TRUE | ||
|
||
victim.balloon_alert(user, "pulling out eyes...") | ||
victim.show_message( | ||
span_userdanger("[victim] starts to pull out your eyes!"), | ||
MSG_VISUAL, | ||
span_userdanger("An arm reaches inside your brain, and starts pulling on your eyes!"), | ||
) | ||
|
||
if (!do_after(user, 10 SECONDS, victim, extra_checks = CALLBACK(src, PROC_REF(still_has_eyes), eyes))) | ||
return TRUE | ||
|
||
eyes.Remove(victim) | ||
user.put_in_hands(eyes) | ||
|
||
log_combat(user, victim, "pulled out the eyes of") | ||
|
||
user.visible_message( | ||
span_boldwarning("You rip out [victim]'s eyes!"), | ||
span_boldwarning("[user] rips out [victim]'s eyes!"), | ||
ignored_mobs = victim, | ||
) | ||
|
||
victim.show_message( | ||
span_userdanger("[user] rips out your eyes!"), | ||
MSG_VISUAL, | ||
span_userdanger("You feel an arm yank from inside your head, as you feel something very important is missing!"), | ||
) | ||
|
||
return TRUE | ||
|
||
/datum/wound/cranial_fissure/proc/still_has_eyes(obj/item/organ/internal/eyes/eyes) | ||
PRIVATE_PROC(TRUE) | ||
|
||
return victim?.get_organ_by_type(/obj/item/organ/internal/eyes) == eyes | ||
|
||
#undef CRANIAL_FISSURE_FILTER_DISPLACEMENT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.