Gibs spawn correctly. Just need to figure out the overlays now

This commit is contained in:
Poojawa
2019-06-11 04:33:38 -05:00
parent 69cefb604b
commit 26855d0698
5 changed files with 93 additions and 108 deletions
@@ -10,20 +10,17 @@
/obj/effect/decal/cleanable/blood/gibs/xeno
color = BLOOD_COLOR_XENO
unique_body = "x"
/obj/effect/decal/cleanable/blood/gibs/xeno/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidxenogibs", 5)
guts()
/obj/effect/decal/cleanable/blood/gibs/xeno/guts()
/obj/effect/decal/cleanable/blood/gibs/xeno/update_icon()
if(gib_overlay)
var/icon/blood = new(icon,"[icon_state]",dir)
var/image/gibz = new(icon, icon_state + "[unique_body]-overlay")
var/image/gibz = new(icon, icon_state + "x-overlay")
blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY)
icon = blood
cut_overlays()
gibz.appearance_flags = RESET_COLOR
add_overlay(gibz)
/obj/effect/decal/cleanable/blood/gibs/xeno/streak(list/directions)
@@ -7,23 +7,26 @@
mergeable_decal = FALSE
var/gib_overlay = FALSE
var/body_colors = "e3ba84" //a default color just in case.
var/unique_body = "c"
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases)
. = ..()
/obj/effect/decal/cleanable/blood/gibs/update_icon()
. = ..()
guts()
cut_overlays()
var/list/guts = list()
var/mutable_appearance/blood = new(icon, "[icon_state]")
blood.appearance_flags |= RESET_COLOR|KEEP_APART
blood.color = blood_DNA_to_color()
guts += blood
var/mutable_appearance/gibz = new(icon, "[icon_state]-guts")
gibz.appearance_flags |= RESET_COLOR|KEEP_APART
guts += gibz
var/mutable_appearance/gibz2 = new(icon, "[icon_state]c-overlay")
gibz2.appearance_flags |= RESET_COLOR|KEEP_APART
gibz2.color = body_colors
guts += gibz2
/obj/effect/decal/cleanable/blood/gibs/proc/guts()
if(gib_overlay)
var/icon/blood = new(icon,"[icon_state]",dir)
var/icon/gibz = new(icon, icon_state + "-overlay")
var/image/gibz2 = new(icon, icon_state + "[unique_body]-overlay")
blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY)
gibz2.color = body_colors
icon = blood
cut_overlays()
add_overlay(gibz)
add_overlay(gibz2)
add_overlay(guts)
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
return
@@ -107,20 +110,6 @@
/obj/effect/decal/cleanable/blood/gibs/human/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidgibs", 5)
update_icon()
/obj/effect/decal/cleanable/blood/gibs/human/guts()
if(gib_overlay)
var/icon/blood = new(icon,"[icon_state]",dir)
var/icon/gibz = new(icon, icon_state + "-overlay")
var/image/gibz2 = new(icon, icon_state + "[unique_body]-overlay")
blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY)
gibz2.color = body_colors
icon = blood
cut_overlays()
add_overlay(gibz)
add_overlay(gibz2)
/obj/effect/decal/cleanable/blood/gibs/human/up
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
@@ -150,24 +139,6 @@
/obj/effect/decal/cleanable/blood/gibs/human/lizard
body_colors = "117720"
/obj/effect/decal/cleanable/blood/gibs/human/lizard/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidgibs", 5)
update_icon()
/obj/effect/decal/cleanable/blood/gibs/human/lizard/guts()
if(gib_overlay)
var/icon/blood = new(icon,"[icon_state]",dir)
var/icon/gibz = new(icon, icon_state + "-overlay")
var/image/gibz2 = new(icon, icon_state + "[unique_body]-overlay")
blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY)
gibz2.color = body_colors
icon = blood
cut_overlays()
add_overlay(gibz)
add_overlay(gibz2)
/obj/effect/decal/cleanable/blood/gibs/human/lizard/up
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
gib_overlay = TRUE
@@ -195,24 +166,16 @@
// Slime Gibs
/obj/effect/decal/cleanable/blood/gibs/slime
desc = "They look gooey and gruesome."
unique_body = "c"
body_colors = "00fff"
/obj/effect/decal/cleanable/blood/gibs/slime/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidslimegibs", 5)
update_icon()
guts()
/obj/effect/decal/cleanable/blood/gibs/slime/guts()
/*
/obj/effect/decal/cleanable/blood/gibs/slime/update_icon()
if(gib_overlay)
var/icon/blood = new(icon,"[icon_state]",dir)
var/image/gibz = new(icon, icon_state + "[unique_body]-overlay")
blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY)
var/image/gibz = new(icon, icon_state + "c-overlay")
gibz.color = body_colors
icon = blood
cut_overlays()
add_overlay(gibz)
add_overlay(gibz) */
/obj/effect/decal/cleanable/blood/gibs/slime/up
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
@@ -240,34 +203,26 @@
/obj/effect/decal/cleanable/blood/gibs/synth
desc = "They look sludgy and disgusting."
unique_body = "r"
/obj/effect/decal/cleanable/blood/gibs/synth/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidsyntheticgibs", 5)
update_icon()
guts()
//IPCs
/obj/effect/decal/cleanable/blood/gibs/ipc
desc = "They look sharp yet oozing."
unique_body = "r"
body_colors = "00ff00"
/obj/effect/decal/cleanable/blood/gibs/ipc/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidoilgibs", 5)
update_icon()
guts()
/obj/effect/decal/cleanable/blood/gibs/ipc/guts()
/obj/effect/decal/cleanable/blood/gibs/ipc/update_icon()
if(gib_overlay)
var/icon/blood = new(icon,"[icon_state]",dir)
var/image/gibz = new(icon, icon_state + "[unique_body]-overlay")
var/image/gibz = new(icon, icon_state + "r-overlay")
blood.Blend(blood_DNA_to_color(),ICON_MULTIPLY)
gibz.color = body_colors
icon = blood
cut_overlays()
gibz.appearance_flags = RESET_COLOR
add_overlay(gibz)
/obj/effect/decal/cleanable/blood/gibs/ipc/up
@@ -293,12 +248,3 @@
/obj/effect/decal/cleanable/blood/gibs/ipc/core
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
gib_overlay = TRUE
/obj/effect/decal/cleanable/blood/gibs/synth
desc = "They look sludgy and disgusting."
/obj/effect/decal/cleanable/blood/gibs/synth/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidsyntheticgibs", 5)
update_icon()
guts()
@@ -73,7 +73,7 @@
var/mob/living/carbon/digester = loc
digester.stomach_contents += gib
if(dna_to_add.len)
if(dna_to_add && dna_to_add.len)
gib.add_blood(dna_to_add)
gib.body_colors = body_coloring
gib.update_icon()
@@ -111,7 +111,6 @@
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
return ..()
/obj/effect/gibspawner/human/bodypartless //only the gibs that don't look like actual full bodyparts (except torso).
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/core, /obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/core, /obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/torso)
gibamounts = list(1, 1, 1, 1, 1, 1)
@@ -121,33 +120,70 @@
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
return ..()
/obj/effect/gibspawner/human/lizard
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/lizard/torso)
gibamounts = list(1, 1, 1, 1, 1, 1)
/obj/effect/gibspawner/lizard
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human/lizard/up, /obj/effect/decal/cleanable/blood/gibs/human/lizard/down, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/body, /obj/effect/decal/cleanable/blood/gibs/human/lizard/limb, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core)
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
gib_mob_type = /mob/living/carbon/human/species/lizard
gib_mob_species = /datum/species/lizard
sound_vol = 50
/obj/effect/gibspawner/human/lizard/bodypartless
/obj/effect/gibspawner/lizard/Initialize()
if(!gibdirections.len)
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
return ..()
/obj/effect/gibspawner/lizard/bodypartless
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/torso)
gibamounts = list(2, 0, 1, 1, 2, 0)
gibamounts = list(1, 1, 1, 1, 1, 1)
/obj/effect/gibspawner/human/slimeperson
/obj/effect/gibspawner/lizard/bodypartless/Initialize()
if(!gibdirections.len)
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
return ..()
/obj/effect/gibspawner/slime
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/slime/up, /obj/effect/decal/cleanable/blood/gibs/slime/down, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/body, /obj/effect/decal/cleanable/blood/gibs/slime/limb, /obj/effect/decal/cleanable/blood/gibs/slime/core)
gib_mob_species = /datum/species/jelly
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
gib_mob_type = /mob/living/carbon/human/species/roundstartslime
gib_mob_species = /datum/species/jelly/roundstartslime
sound_vol = 50
/obj/effect/gibspawner/human/slimeperson/bodypartless
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/core, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/core, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/torso)
gibamounts = list(2, 0, 1, 1, 2, 0)
/obj/effect/gibspawner/slime/Initialize()
if(!gibdirections.len)
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
return ..()
/obj/effect/gibspawner/human/ipc
sparks = TRUE
/obj/effect/gibspawner/slime/bodypartless //only the gibs that don't look like actual full bodyparts (except torso).
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/core, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/core, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/torso)
gibamounts = list(1, 1, 1, 1, 1, 1)
/obj/effect/gibspawner/slime/bodypartless/Initialize()
if(!gibdirections.len)
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
return ..()
/obj/effect/gibspawner/ipc
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/ipc/up, /obj/effect/decal/cleanable/blood/gibs/ipc/down, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/body, /obj/effect/decal/cleanable/blood/gibs/ipc/limb, /obj/effect/decal/cleanable/blood/gibs/ipc/core)
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
gib_mob_type = /mob/living/carbon/human
gib_mob_type = /mob/living/carbon/human/species/ipc
gib_mob_species = /datum/species/ipc
sound_vol = 50
sparks = TRUE
sound_to_play = 'sound/effects/bang.ogg'
/obj/effect/gibspawner/human/ipc/bodypartless
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/ipc/up, /obj/effect/decal/cleanable/blood/gibs/ipc/down, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/body, /obj/effect/decal/cleanable/blood/gibs/ipc/limb, /obj/effect/decal/cleanable/blood/gibs/ipc/core)
gibamounts = list(1, 1, 2, 2, 0, 0, 1)
/obj/effect/gibspawner/ipc/Initialize()
if(!gibdirections.len)
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
return ..()
/obj/effect/gibspawner/ipc/bodypartless //only the gibs that don't look like actual full bodyparts (except torso).
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/core, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/core, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/torso)
gibamounts = list(1, 1, 1, 1, 1, 1)
/obj/effect/gibspawner/ipc/bodypartless/Initialize()
if(!gibdirections.len)
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
return ..()
/obj/effect/gibspawner/xeno
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno/up, /obj/effect/decal/cleanable/blood/gibs/xeno/down, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/body, /obj/effect/decal/cleanable/blood/gibs/xeno/limb, /obj/effect/decal/cleanable/blood/gibs/xeno/core)
@@ -169,7 +205,7 @@
return ..()
/obj/effect/gibspawner/xeno/xenoperson
gib_mob_type = /mob/living/carbon/human
gib_mob_type = /mob/living/carbon/human/species/xeno
gib_mob_species = /datum/species/xeno
/obj/effect/gibspawner/xeno/xenoperson/bodypartless
@@ -197,7 +233,7 @@
sparks = TRUE
gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up, /obj/effect/decal/cleanable/robot_debris/down, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris/limb)
gibamounts = list(1, 1, 1, 1, 1, 1)
gib_mob_type = /mob/living/silicon
gib_mob_type = /mob/living/silicon/robot
/obj/effect/gibspawner/robot/Initialize()
if(!gibdirections.len)
+10 -4
View File
@@ -7,15 +7,15 @@
/mob/living/carbon/human/spawn_gibs(with_bodyparts)
if(isjellyperson(src))
if(with_bodyparts)
new /obj/effect/gibspawner/human/slimeperson(drop_location(), dna, get_static_viruses())
new /obj/effect/gibspawner/slime(drop_location(), dna, get_static_viruses())
else
new /obj/effect/gibspawner/human/slimeperson/bodypartless(drop_location(), dna, get_static_viruses())
new /obj/effect/gibspawner/slime/bodypartless(drop_location(), dna, get_static_viruses())
if(isipcperson(src))
if(with_bodyparts)
new /obj/effect/gibspawner/human/ipc(drop_location(), dna, get_static_viruses())
new /obj/effect/gibspawner/ipc(drop_location(), dna, get_static_viruses())
else
new /obj/effect/gibspawner/human/ipc/bodypartless(drop_location(), dna, get_static_viruses())
new /obj/effect/gibspawner/ipc/bodypartless(drop_location(), dna, get_static_viruses())
if(isxenoperson(src))
if(with_bodyparts)
@@ -23,6 +23,12 @@
else
new /obj/effect/gibspawner/xeno/xenoperson/bodypartless(drop_location(), dna, get_static_viruses())
if(islizard(src))
if(with_bodyparts)
new /obj/effect/gibspawner/lizard(drop_location(), dna, get_static_viruses())
else
new /obj/effect/gibspawner/lizard/bodypartless(drop_location(), dna, get_static_viruses())
else
if(with_bodyparts)
new /obj/effect/gibspawner/human(drop_location(), dna, get_static_viruses())
Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB