mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Merge branch 'master' into hair-gradients
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
/proc/gibs(atom/location, datum/dna/MobDNA) //CARN MARKER
|
||||
new /obj/effect/gibspawner/generic(get_turf(location), MobDNA)
|
||||
/proc/gibs(atom/location, datum/dna/mob_dna) //CARN MARKER
|
||||
new /obj/effect/gibspawner/generic(get_turf(location), mob_dna)
|
||||
|
||||
/proc/hgibs(atom/location, datum/dna/MobDNA)
|
||||
new /obj/effect/gibspawner/human(get_turf(location), MobDNA)
|
||||
/proc/hgibs(atom/location, datum/dna/mob_dna)
|
||||
new /obj/effect/gibspawner/human(get_turf(location), mob_dna)
|
||||
|
||||
/proc/xgibs(atom/location)
|
||||
new /obj/effect/gibspawner/xeno(get_turf(location))
|
||||
@@ -16,38 +16,55 @@
|
||||
var/list/gibamounts = list()
|
||||
var/list/gibdirections = list() //of lists
|
||||
|
||||
/obj/effect/gibspawner/New(location, datum/dna/MobDNA)
|
||||
/obj/effect/gibspawner/Initialize(mapload, datum/dna/mob_dna)
|
||||
..()
|
||||
ASSERT(length(gibtypes) == length(gibamounts))
|
||||
ASSERT(length(gibamounts) == length(gibdirections))
|
||||
|
||||
if(istype(loc,/turf)) //basically if a badmin spawns it
|
||||
Gib(loc, MobDNA)
|
||||
if(isturf(loc))
|
||||
spawn_gibs(loc, mob_dna)
|
||||
|
||||
/obj/effect/gibspawner/proc/Gib(atom/location, datum/dna/MobDNA = null)
|
||||
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
|
||||
to_chat(world, "<span class='warning'>Gib list length mismatch!</span>")
|
||||
return
|
||||
return INITIALIZE_HINT_QDEL // qdel once done
|
||||
|
||||
/**
|
||||
* Spawns the gibs (and sparks if applicable) from the gib spawner.
|
||||
*
|
||||
* Arguments:
|
||||
* * location - The position to spawn the gibs on.
|
||||
* * mob_dna - The [/datum/dna] controlling the blood DNA and colour of the gibs.
|
||||
*/
|
||||
/obj/effect/gibspawner/proc/spawn_gibs(atom/location, datum/dna/mob_dna)
|
||||
var/obj/effect/decal/cleanable/blood/gibs/gib = null
|
||||
|
||||
if(sparks)
|
||||
do_sparks(2, 1, location)
|
||||
|
||||
for(var/i = 1, i<= gibtypes.len, i++)
|
||||
if(gibamounts[i])
|
||||
for(var/j = 1, j<= gibamounts[i], j++)
|
||||
var/gibType = gibtypes[i]
|
||||
gib = new gibType(location)
|
||||
for(var/gibtype in 1 to length(gibtypes))
|
||||
if(!gibamounts[gibtype])
|
||||
continue
|
||||
for(var/I in 1 to gibamounts[gibtype])
|
||||
var/gib_type = gibtypes[gibtype]
|
||||
gib = new gib_type(location)
|
||||
|
||||
gib_dna(gib, mob_dna)
|
||||
|
||||
gib.blood_DNA = list()
|
||||
if(MobDNA)
|
||||
gib.blood_DNA[MobDNA.unique_enzymes] = MobDNA.blood_type
|
||||
else if(istype(src, /obj/effect/gibspawner/xeno))
|
||||
gib.blood_DNA["UNKNOWN DNA"] = "X*"
|
||||
else if(istype(src, /obj/effect/gibspawner/human)) // Probably a monkey
|
||||
gib.blood_DNA["Non-human DNA"] = "A+"
|
||||
var/list/directions = gibdirections[i]
|
||||
if(directions.len)
|
||||
gib.streak(directions)
|
||||
var/list/directions = gibdirections[gibtype]
|
||||
if(length(directions))
|
||||
gib.streak(directions)
|
||||
|
||||
qdel(src)
|
||||
/**
|
||||
* Assigns DNA and blood colour to mob gibs.
|
||||
*
|
||||
* Returns FALSE if there was no DNA data to transfer to the gibs, and TRUE if there was.
|
||||
* Arguments:
|
||||
* * gib - The [/obj/effect/decal/cleanable/blood/gibs] that is being edited.
|
||||
* * mob_dna - The [/datum/dna] which is being transferred onto the gib.
|
||||
*/
|
||||
/obj/effect/gibspawner/proc/gib_dna(obj/effect/decal/cleanable/blood/gibs/gib, datum/dna/mob_dna)
|
||||
if(!mob_dna)
|
||||
return FALSE
|
||||
|
||||
gib.basecolor = mob_dna.species.blood_color
|
||||
gib.update_icon()
|
||||
gib.blood_DNA[mob_dna.unique_enzymes] = mob_dna.blood_type
|
||||
return TRUE
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
gibamounts[6] = pick(0,1,2)
|
||||
..()
|
||||
|
||||
/obj/effect/gibspawner/human/gib_dna(obj/effect/decal/cleanable/blood/gibs/gib, datum/dna/mob_dna)
|
||||
if(!..()) // Probably admin spawned
|
||||
gib.blood_DNA["Non-human DNA"] = "A+"
|
||||
|
||||
/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)
|
||||
gibamounts = list(1,1,1,1,1,1,1)
|
||||
@@ -24,6 +28,10 @@
|
||||
gibamounts[6] = pick(0,1,2)
|
||||
..()
|
||||
|
||||
/obj/effect/gibspawner/xeno/gib_dna(obj/effect/decal/cleanable/blood/gibs/gib, datum/dna/mob_dna)
|
||||
if(!..())
|
||||
gib.blood_DNA["UNKNOWN DNA"] = "X*"
|
||||
|
||||
/obj/effect/gibspawner/robot
|
||||
sparks = 1
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/robot/up,/obj/effect/decal/cleanable/blood/gibs/robot/down,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot/limb)
|
||||
|
||||
@@ -409,7 +409,6 @@
|
||||
new /obj/item/soap(src)
|
||||
new /obj/item/grenade/chem_grenade/cleaner(src)
|
||||
new /obj/item/grenade/chem_grenade/cleaner(src)
|
||||
new /obj/item/melee/flyswatter(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/storage/belt/lazarus
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
icon = 'icons/obj/structures.dmi'
|
||||
pressure_resistance = 8
|
||||
max_integrity = 300
|
||||
face_while_pulling = TRUE
|
||||
var/climbable
|
||||
var/mob/climber
|
||||
var/broken = FALSE
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon = 'icons/obj/curtain.dmi'
|
||||
name = "curtain"
|
||||
icon_state = "closed"
|
||||
face_while_pulling = FALSE
|
||||
layer = SHOWER_CLOSED_LAYER
|
||||
opacity = 1
|
||||
density = 0
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
desc = "A cart for storing engineering items."
|
||||
icon = 'icons/obj/engicart.dmi'
|
||||
icon_state = "cart"
|
||||
face_while_pulling = FALSE
|
||||
anchored = 0
|
||||
density = 1
|
||||
var/obj/item/stack/sheet/glass/myglass = null
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
desc = "A cart for transporting food and drinks."
|
||||
icon = 'icons/obj/foodcart.dmi'
|
||||
icon_state = "cart"
|
||||
face_while_pulling = FALSE
|
||||
anchored = 0
|
||||
density = 1
|
||||
//Food slots
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
icon_state = "cart"
|
||||
anchored = 0
|
||||
density = 1
|
||||
face_while_pulling = FALSE
|
||||
container_type = OPENCONTAINER
|
||||
//copypaste sorry
|
||||
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
name = "roller bed"
|
||||
icon = 'icons/obj/rollerbed.dmi'
|
||||
icon_state = "down"
|
||||
face_while_pulling = FALSE
|
||||
resistance_flags = NONE
|
||||
anchored = FALSE
|
||||
comfort = 1
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
max_integrity = 250
|
||||
integrity_failure = 25
|
||||
buckle_offset = 0
|
||||
face_while_pulling = FALSE
|
||||
var/buildstacktype = /obj/item/stack/sheet/metal
|
||||
var/buildstackamount = 1
|
||||
var/item_chair = /obj/item/chair // if null it can't be picked up
|
||||
|
||||
Reference in New Issue
Block a user