mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Change humanoid gibbing to use per species gib() act. (#24819)
* Unique gibbing proc for each humanoid species * remove else add return * Update species.dm * Update species.dm * im not sure what to title this * remove as mob
This commit is contained in:
@@ -1,10 +1,17 @@
|
|||||||
/mob/living/carbon/human/gib()
|
/mob/living/carbon/human/gib()
|
||||||
|
if(species)
|
||||||
|
species.gib(src)
|
||||||
|
return
|
||||||
|
|
||||||
death(1)
|
death(1)
|
||||||
monkeyizing = 1
|
monkeyizing = 1
|
||||||
canmove = 0
|
canmove = 0
|
||||||
icon = null
|
icon = null
|
||||||
invisibility = 101
|
invisibility = 101
|
||||||
|
default_gib()
|
||||||
|
|
||||||
|
//This will get called often at first until custom gibbing events get made up for each species.
|
||||||
|
/mob/living/carbon/human/proc/default_gib()
|
||||||
for(var/datum/organ/external/E in src.organs)
|
for(var/datum/organ/external/E in src.organs)
|
||||||
if(istype(E, /datum/organ/external/chest) || istype(E, /datum/organ/external/groin)) //Really bad stuff happens when either get removed
|
if(istype(E, /datum/organ/external/chest) || istype(E, /datum/organ/external/groin)) //Really bad stuff happens when either get removed
|
||||||
continue
|
continue
|
||||||
@@ -19,7 +26,8 @@
|
|||||||
|
|
||||||
anim(target = src, a_icon = 'icons/mob/mob.dmi', flick_anim = "gibbed-h", sleeptime = 15)
|
anim(target = src, a_icon = 'icons/mob/mob.dmi', flick_anim = "gibbed-h", sleeptime = 15)
|
||||||
hgibs(loc, virus2, dna, species.flesh_color, species.blood_color, gib_radius)
|
hgibs(loc, virus2, dna, species.flesh_color, species.blood_color, gib_radius)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|
||||||
/mob/living/carbon/human/dust(var/drop_everything = FALSE)
|
/mob/living/carbon/human/dust(var/drop_everything = FALSE)
|
||||||
death(1)
|
death(1)
|
||||||
|
|||||||
@@ -157,6 +157,13 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
myhuman = null
|
myhuman = null
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
/datum/species/proc/gib(var/mob/living/carbon/human/H)
|
||||||
|
H.death(1)
|
||||||
|
H.monkeyizing = 1
|
||||||
|
H.canmove = 0
|
||||||
|
H.icon = null
|
||||||
|
H.invisibility = 101
|
||||||
|
|
||||||
/datum/species/proc/handle_speech(var/datum/speech/speech, mob/living/carbon/human/H)
|
/datum/species/proc/handle_speech(var/datum/speech/speech, mob/living/carbon/human/H)
|
||||||
if(H.dna)
|
if(H.dna)
|
||||||
if(length(speech.message) >= 2)
|
if(length(speech.message) >= 2)
|
||||||
@@ -298,6 +305,10 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
|
|
||||||
anatomy_flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT | HAS_SWEAT_GLANDS
|
anatomy_flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT | HAS_SWEAT_GLANDS
|
||||||
|
|
||||||
|
/datum/species/human/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/manifested
|
/datum/species/manifested
|
||||||
name = "Manifested"
|
name = "Manifested"
|
||||||
icobase = 'icons/mob/human_races/r_manifested.dmi'
|
icobase = 'icons/mob/human_races/r_manifested.dmi'
|
||||||
@@ -344,6 +355,9 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
/datum/species/manifested/can_artifact_revive()
|
/datum/species/manifested/can_artifact_revive()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
/datum/species/manifested/gib(mob/living/carbon/human/H)
|
||||||
|
handle_death(H)
|
||||||
|
|
||||||
/datum/species/unathi
|
/datum/species/unathi
|
||||||
name = "Unathi"
|
name = "Unathi"
|
||||||
icobase = 'icons/mob/human_races/r_lizard.dmi'
|
icobase = 'icons/mob/human_races/r_lizard.dmi'
|
||||||
@@ -377,6 +391,9 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
speech.message = replacetext(speech.message, "s", "s-s") //not using stutter("s") because it likes adding more s's.
|
speech.message = replacetext(speech.message, "s", "s-s") //not using stutter("s") because it likes adding more s's.
|
||||||
speech.message = replacetext(speech.message, "s-ss-s", "ss-ss") //asshole shows up as ass-sshole
|
speech.message = replacetext(speech.message, "s-ss-s", "ss-ss") //asshole shows up as ass-sshole
|
||||||
|
|
||||||
|
/datum/species/unathi/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/skellington // /vg/
|
/datum/species/skellington // /vg/
|
||||||
name = "Skellington"
|
name = "Skellington"
|
||||||
@@ -418,6 +435,19 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
/datum/species/skellington/can_artifact_revive()
|
/datum/species/skellington/can_artifact_revive()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
/datum/species/skellington/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
var/datum/organ/external/head_organ = H.get_organ(LIMB_HEAD)
|
||||||
|
if(head_organ.status & ORGAN_DESTROYED)
|
||||||
|
new /obj/effect/decal/remains/human/noskull(H.loc)
|
||||||
|
else
|
||||||
|
new /obj/effect/decal/remains/human(H.loc)
|
||||||
|
head_organ.droplimb(1,1)
|
||||||
|
|
||||||
|
H.drop_all()
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
|
|
||||||
/datum/species/skellington/skelevox // Science never goes too far, it's the public that's too conservative
|
/datum/species/skellington/skelevox // Science never goes too far, it's the public that's too conservative
|
||||||
name = "Skeletal Vox"
|
name = "Skeletal Vox"
|
||||||
icobase = 'icons/mob/human_races/vox/r_voxboney.dmi'
|
icobase = 'icons/mob/human_races/vox/r_voxboney.dmi'
|
||||||
@@ -565,6 +595,10 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
speech.message = speech_filter.FilterSpeech(speech.message)
|
speech.message = speech_filter.FilterSpeech(speech.message)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/datum/species/tajaran/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/grey // /vg/
|
/datum/species/grey // /vg/
|
||||||
name = "Grey"
|
name = "Grey"
|
||||||
icobase = 'icons/mob/human_races/r_grey.dmi'
|
icobase = 'icons/mob/human_races/r_grey.dmi'
|
||||||
@@ -612,6 +646,10 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
You are particularly allergic to water, which acts like acid to you, but the inverse is so for acid, so you're fun at parties.<br>\
|
You are particularly allergic to water, which acts like acid to you, but the inverse is so for acid, so you're fun at parties.<br>\
|
||||||
You're not as good in a fist fight as a regular baseline human, but you make up for this by bullying them from afar by talking directly into peoples minds."
|
You're not as good in a fist fight as a regular baseline human, but you make up for this by bullying them from afar by talking directly into peoples minds."
|
||||||
|
|
||||||
|
/datum/species/grey/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/muton // /vg/
|
/datum/species/muton // /vg/
|
||||||
name = "Muton"
|
name = "Muton"
|
||||||
icobase = 'icons/mob/human_races/r_muton.dmi'
|
icobase = 'icons/mob/human_races/r_muton.dmi'
|
||||||
@@ -650,6 +688,10 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
|
|
||||||
move_speed_mod = 1
|
move_speed_mod = 1
|
||||||
|
|
||||||
|
/datum/species/muton/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/skrell
|
/datum/species/skrell
|
||||||
name = "Skrell"
|
name = "Skrell"
|
||||||
icobase = 'icons/mob/human_races/r_skrell.dmi'
|
icobase = 'icons/mob/human_races/r_skrell.dmi'
|
||||||
@@ -666,7 +708,10 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
head_icons = 'icons/mob/species/skrell/head.dmi'
|
head_icons = 'icons/mob/species/skrell/head.dmi'
|
||||||
wear_suit_icons = 'icons/mob/species/skrell/suit.dmi'
|
wear_suit_icons = 'icons/mob/species/skrell/suit.dmi'
|
||||||
|
|
||||||
|
/datum/species/skrell/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/vox
|
/datum/species/vox
|
||||||
name = "Vox"
|
name = "Vox"
|
||||||
icobase = 'icons/mob/human_races/vox/r_vox.dmi'
|
icobase = 'icons/mob/human_races/vox/r_vox.dmi'
|
||||||
@@ -871,6 +916,10 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
icobase = 'icons/mob/human_races/vox/r_vox.dmi'
|
icobase = 'icons/mob/human_races/vox/r_vox.dmi'
|
||||||
deform = 'icons/mob/human_races/vox/r_def_vox.dmi'
|
deform = 'icons/mob/human_races/vox/r_def_vox.dmi'
|
||||||
|
|
||||||
|
/datum/species/vox/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/diona
|
/datum/species/diona
|
||||||
name = "Diona"
|
name = "Diona"
|
||||||
icobase = 'icons/mob/human_races/r_plant.dmi'
|
icobase = 'icons/mob/human_races/r_plant.dmi'
|
||||||
@@ -909,6 +958,10 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
You do not need to breathe, do not feel pain, you are incredibly resistant to cold and low pressure, and have no blood to bleed.<br>\
|
You do not need to breathe, do not feel pain, you are incredibly resistant to cold and low pressure, and have no blood to bleed.<br>\
|
||||||
However, as you are a plant, you are incredibly susceptible to burn damage, which is something you can not regenerate normally."
|
However, as you are a plant, you are incredibly susceptible to burn damage, which is something you can not regenerate normally."
|
||||||
|
|
||||||
|
/datum/species/diona/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/golem
|
/datum/species/golem
|
||||||
name = "Golem"
|
name = "Golem"
|
||||||
icobase = 'icons/mob/human_races/r_golem.dmi'
|
icobase = 'icons/mob/human_races/r_golem.dmi'
|
||||||
@@ -983,6 +1036,9 @@ var/list/has_died_as_golem = list()
|
|||||||
/datum/species/golem/can_artifact_revive()
|
/datum/species/golem/can_artifact_revive()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
/datum/species/golem/gib(mob/living/carbon/human/H)
|
||||||
|
handle_death()
|
||||||
|
|
||||||
/mob/living/adamantine_dust //serves as the corpse of adamantine golems
|
/mob/living/adamantine_dust //serves as the corpse of adamantine golems
|
||||||
name = "adamantine dust"
|
name = "adamantine dust"
|
||||||
desc = "The remains of an adamantine golem."
|
desc = "The remains of an adamantine golem."
|
||||||
@@ -1059,7 +1115,10 @@ var/list/has_died_as_golem = list()
|
|||||||
/datum/species/grue/makeName()
|
/datum/species/grue/makeName()
|
||||||
return "grue"
|
return "grue"
|
||||||
|
|
||||||
|
/datum/species/grue/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/ghoul
|
/datum/species/ghoul
|
||||||
name = "Ghoul"
|
name = "Ghoul"
|
||||||
icobase = 'icons/mob/human_races/r_ghoul.dmi'
|
icobase = 'icons/mob/human_races/r_ghoul.dmi'
|
||||||
@@ -1077,6 +1136,10 @@ var/list/has_died_as_golem = list()
|
|||||||
|
|
||||||
primitive = /mob/living/carbon/monkey //Just to keep them SoC friendly.
|
primitive = /mob/living/carbon/monkey //Just to keep them SoC friendly.
|
||||||
|
|
||||||
|
/datum/species/ghoul/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/slime
|
/datum/species/slime
|
||||||
name = "Slime"
|
name = "Slime"
|
||||||
icobase = 'icons/mob/human_races/r_slime.dmi'
|
icobase = 'icons/mob/human_races/r_slime.dmi'
|
||||||
@@ -1124,6 +1187,10 @@ var/list/has_died_as_golem = list()
|
|||||||
S.slime_person = H
|
S.slime_person = H
|
||||||
H.forceMove(S)
|
H.forceMove(S)
|
||||||
|
|
||||||
|
/datum/species/slime/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/mob/living/slime_pile //serves as the corpse of slime people
|
/mob/living/slime_pile //serves as the corpse of slime people
|
||||||
name = "puddle of slime"
|
name = "puddle of slime"
|
||||||
desc = "The remains of a slime person."
|
desc = "The remains of a slime person."
|
||||||
@@ -1241,6 +1308,10 @@ var/list/has_died_as_golem = list()
|
|||||||
However, you lack a mouth with which to talk. Instead you can remotely talk into somebodies mind should you examine them, or they talk to you.<br>\
|
However, you lack a mouth with which to talk. Instead you can remotely talk into somebodies mind should you examine them, or they talk to you.<br>\
|
||||||
You also have access to the Sporemind, which allows you to communicate with others on the Sporemind through :~"
|
You also have access to the Sporemind, which allows you to communicate with others on the Sporemind through :~"
|
||||||
|
|
||||||
|
/datum/species/mushroom/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
H.default_gib()
|
||||||
|
|
||||||
/datum/species/lich
|
/datum/species/lich
|
||||||
name = "Undead"
|
name = "Undead"
|
||||||
icobase = 'icons/mob/human_races/r_lich.dmi'
|
icobase = 'icons/mob/human_races/r_lich.dmi'
|
||||||
@@ -1265,3 +1336,15 @@ var/list/has_died_as_golem = list()
|
|||||||
A more refined version of the skellington, you're not as brittle, but not quite as fast.<br>\
|
A more refined version of the skellington, you're not as brittle, but not quite as fast.<br>\
|
||||||
You have no skin, no blood, and only a brain to guide you.<br>\
|
You have no skin, no blood, and only a brain to guide you.<br>\
|
||||||
You can not eat normally, as your necrotic state permits you to only eat raw flesh. As you lack skin, you can not be injected via syringe."
|
You can not eat normally, as your necrotic state permits you to only eat raw flesh. As you lack skin, you can not be injected via syringe."
|
||||||
|
|
||||||
|
/datum/species/lich/gib(mob/living/carbon/human/H)
|
||||||
|
..()
|
||||||
|
var/datum/organ/external/head_organ = H.get_organ(LIMB_HEAD)
|
||||||
|
if(head_organ.status & ORGAN_DESTROYED)
|
||||||
|
new /obj/effect/decal/remains/human/noskull(H.loc)
|
||||||
|
else
|
||||||
|
new /obj/effect/decal/remains/human(H.loc)
|
||||||
|
head_organ.droplimb(1,1)
|
||||||
|
|
||||||
|
H.drop_all()
|
||||||
|
qdel(src)
|
||||||
|
|||||||
Reference in New Issue
Block a user