Merge pull request #4733 from Citadel-Station-13/upstream-merge-34187

[MIRROR] Switches butchering/gib drops to use drop_location
This commit is contained in:
deathride58
2018-01-10 19:56:54 +00:00
committed by GitHub
9 changed files with 25 additions and 21 deletions
@@ -1,8 +1,8 @@
/mob/living/carbon/alien/spawn_gibs(with_bodyparts)
if(with_bodyparts)
new /obj/effect/gibspawner/xeno(get_turf(src))
new /obj/effect/gibspawner/xeno(drop_location())
else
new /obj/effect/gibspawner/xenobodypartless(get_turf(src))
new /obj/effect/gibspawner/xenobodypartless(drop_location())
/mob/living/carbon/alien/gib_animation()
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-a")
@@ -8,9 +8,9 @@
/mob/living/carbon/alien/larva/spawn_gibs(with_bodyparts)
if(with_bodyparts)
new /obj/effect/gibspawner/larva(get_turf(src))
new /obj/effect/gibspawner/larva(drop_location())
else
new /obj/effect/gibspawner/larvabodypartless(get_turf(src))
new /obj/effect/gibspawner/larvabodypartless(drop_location())
/mob/living/carbon/alien/larva/gib_animation()
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-l")
+6 -4
View File
@@ -13,14 +13,16 @@
SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now
/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts)
var/atom/Tsec = drop_location()
for(var/mob/M in src)
if(M in stomach_contents)
stomach_contents.Remove(M)
M.forceMove(loc)
M.forceMove(Tsec)
visible_message("<span class='danger'>[M] bursts out of [src]!</span>")
..()
/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts)
var/atom/Tsec = drop_location()
if(!no_bodyparts)
if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop.
for(var/X in internal_organs)
@@ -35,7 +37,7 @@
var/org_zone = check_zone(O.zone) //both groin and chest organs.
if(org_zone == "chest")
O.Remove(src)
O.forceMove(get_turf(src))
O.forceMove(Tsec)
O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
else
for(var/X in internal_organs)
@@ -47,7 +49,7 @@
qdel(I)
continue
I.Remove(src)
I.forceMove(get_turf(src))
I.forceMove(Tsec)
I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
@@ -55,4 +57,4 @@
for(var/X in bodyparts)
var/obj/item/bodypart/BP = X
BP.drop_limb()
BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
@@ -6,9 +6,9 @@
/mob/living/carbon/human/spawn_gibs(with_bodyparts)
if(with_bodyparts)
new /obj/effect/gibspawner/human(get_turf(src), dna, get_static_viruses())
new /obj/effect/gibspawner/human(drop_location(), dna, get_static_viruses())
else
new /obj/effect/gibspawner/humanbodypartless(get_turf(src), dna, get_static_viruses())
new /obj/effect/gibspawner/humanbodypartless(drop_location(), dna, get_static_viruses())
/mob/living/carbon/human/spawn_dust(just_ash = FALSE)
if(just_ash)
+1 -1
View File
@@ -18,7 +18,7 @@
return
/mob/living/proc/spawn_gibs()
new /obj/effect/gibspawner/generic(get_turf(src), null, get_static_viruses())
new /obj/effect/gibspawner/generic(drop_location(), null, get_static_viruses())
/mob/living/proc/spill_organs()
return
+2 -1
View File
@@ -789,9 +789,10 @@
if(QDELETED(src))
return
if(butcher_results)
var/atom/Tsec = drop_location()
for(var/path in butcher_results)
for(var/i = 1; i <= butcher_results[path];i++)
new path(src.loc)
new path(Tsec)
butcher_results.Remove(path) //In case you want to have things like simple_animals drop their butcher results on gib, so it won't double up below.
visible_message("<span class='notice'>[user] butchers [src].</span>")
gib(0, 0, 1)
+1 -1
View File
@@ -1,5 +1,5 @@
/mob/living/silicon/spawn_gibs()
new /obj/effect/gibspawner/robot(get_turf(src))
new /obj/effect/gibspawner/robot(drop_location())
/mob/living/silicon/spawn_dust()
new /obj/effect/decal/remains/robot(loc)
@@ -247,9 +247,10 @@
/mob/living/simple_animal/gib()
if(butcher_results)
var/atom/Tsec = drop_location()
for(var/path in butcher_results)
for(var/i = 1; i <= butcher_results[path];i++)
new path(src.loc)
new path(Tsec)
..()
/mob/living/simple_animal/gib_animation()
@@ -82,7 +82,7 @@
/obj/item/bodypart/proc/drop_limb(special)
if(!owner)
return
var/turf/T = get_turf(owner)
var/atom/Tsec = owner.drop_location()
var/mob/living/carbon/C = owner
update_limb(1)
C.bodyparts -= src
@@ -126,7 +126,7 @@
C.update_hair()
C.update_canmove()
if(!T) // T = null happens when a "dummy human" used for rendering icons on prefs screen gets its limbs replaced.
if(!Tsec) // Tsec = null happens when a "dummy human" used for rendering icons on prefs screen gets its limbs replaced.
qdel(src)
return
@@ -135,7 +135,7 @@
qdel(src)
return
forceMove(T)
forceMove(Tsec)
@@ -167,7 +167,7 @@
..()
if(C && !special)
if(C.handcuffed)
C.handcuffed.forceMove(C.loc)
C.handcuffed.forceMove(drop_location())
C.handcuffed.dropped(C)
C.handcuffed = null
C.update_handcuffed()
@@ -185,7 +185,7 @@
..()
if(C && !special)
if(C.handcuffed)
C.handcuffed.forceMove(C.loc)
C.handcuffed.forceMove(drop_location())
C.handcuffed.dropped(C)
C.handcuffed = null
C.update_handcuffed()
@@ -201,7 +201,7 @@
/obj/item/bodypart/r_leg/drop_limb(special)
if(owner && !special)
if(owner.legcuffed)
owner.legcuffed.forceMove(owner.loc)
owner.legcuffed.forceMove(drop_location())
owner.legcuffed.dropped(owner)
owner.legcuffed = null
owner.update_inv_legcuffed()
@@ -212,7 +212,7 @@
/obj/item/bodypart/l_leg/drop_limb(special) //copypasta
if(owner && !special)
if(owner.legcuffed)
owner.legcuffed.forceMove(owner.loc)
owner.legcuffed.forceMove(drop_location())
owner.legcuffed.dropped(owner)
owner.legcuffed = null
owner.update_inv_legcuffed()