mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 10:03:50 +01:00
Merge pull request #10373 from TDSSS/gibber-fix
Fixes gamebreaking gibber bug
This commit is contained in:
@@ -75,8 +75,7 @@
|
||||
to_chat(user, "<span class='warning'>Wait for [occupant.name] to finish being loaded!</span>")
|
||||
return
|
||||
|
||||
else
|
||||
startgibbing(user)
|
||||
startgibbing(user)
|
||||
|
||||
/obj/machinery/gibber/attackby(obj/item/P, mob/user, params)
|
||||
if(istype(P, /obj/item/grab))
|
||||
@@ -113,7 +112,7 @@
|
||||
|
||||
move_into_gibber(user,target)
|
||||
|
||||
/obj/machinery/gibber/proc/move_into_gibber(var/mob/user,var/mob/living/victim)
|
||||
/obj/machinery/gibber/proc/move_into_gibber(mob/user, mob/living/victim)
|
||||
if(occupant)
|
||||
to_chat(user, "<span class='danger'>The [src] is full, empty it first!</span>")
|
||||
return
|
||||
@@ -215,7 +214,7 @@
|
||||
qdel(holder2) //get rid of holder object
|
||||
locked = 0 //unlock
|
||||
|
||||
/obj/machinery/gibber/proc/startgibbing(var/mob/user, var/UserOverride=0)
|
||||
/obj/machinery/gibber/proc/startgibbing(mob/user, UserOverride=0)
|
||||
if(!istype(user) && !UserOverride)
|
||||
log_debug("Some shit just went down with the gibber at X[x], Y[y], Z[z] with an invalid user. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)")
|
||||
return
|
||||
@@ -249,11 +248,11 @@
|
||||
for(var/i=1 to slab_count)
|
||||
var/obj/item/reagent_containers/food/snacks/meat/new_meat = new slab_type(src)
|
||||
new_meat.name = "[slab_name] [new_meat.name]"
|
||||
new_meat.reagents.add_reagent("nutriment",slab_nutrition)
|
||||
new_meat.reagents.add_reagent("nutriment", slab_nutrition)
|
||||
|
||||
|
||||
if(occupant.reagents)
|
||||
occupant.reagents.trans_to(new_meat, round(occupant.reagents.total_volume/slab_count,1))
|
||||
occupant.reagents.trans_to(new_meat, round(occupant.reagents.total_volume/slab_count, 1))
|
||||
|
||||
if(ishuman(occupant))
|
||||
var/mob/living/carbon/human/H = occupant
|
||||
@@ -279,11 +278,10 @@
|
||||
occupant.death(1)
|
||||
occupant.ghostize()
|
||||
|
||||
qdel(occupant)
|
||||
QDEL_NULL(occupant)
|
||||
|
||||
spawn(gibtime)
|
||||
playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1)
|
||||
operating = 0
|
||||
|
||||
if(stealthmode)
|
||||
for(var/atom/movable/AM in contents)
|
||||
@@ -292,12 +290,12 @@
|
||||
else
|
||||
for(var/obj/item/thing in contents) //Meat is spawned inside the gibber and thrown out afterwards.
|
||||
thing.loc = get_turf(thing) // Drop it onto the turf for throwing.
|
||||
thing.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(1,5),15) // Being pelted with bits of meat and bone would hurt.
|
||||
thing.throw_at(get_edge_target_turf(src, gib_throw_dir), rand(1, 5), 15) // Being pelted with bits of meat and bone would hurt.
|
||||
sleep(1)
|
||||
|
||||
for(var/obj/effect/gibs in contents) //throw out the gibs too
|
||||
gibs.loc = get_turf(gibs) //drop onto turf for throwing
|
||||
gibs.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(1,5),15)
|
||||
gibs.throw_at(get_edge_target_turf(src, gib_throw_dir), rand(1, 5), 15)
|
||||
sleep(1)
|
||||
|
||||
pixel_x = initial(pixel_x) //return to it's spot after shaking
|
||||
@@ -358,7 +356,7 @@
|
||||
break
|
||||
victim_targets.Cut()
|
||||
|
||||
/obj/machinery/gibber/autogibber/proc/force_move_into_gibber(var/mob/living/carbon/human/victim)
|
||||
/obj/machinery/gibber/autogibber/proc/force_move_into_gibber(mob/living/carbon/human/victim)
|
||||
if(!istype(victim)) return 0
|
||||
visible_message("<span class='danger'>\The [victim.name] gets sucked into \the [src]!</span>")
|
||||
|
||||
@@ -385,7 +383,7 @@
|
||||
qdel(O) //they are already dead by now
|
||||
H.unEquip(O)
|
||||
O.loc = loc
|
||||
O.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(1,5),15)
|
||||
O.throw_at(get_edge_target_turf(src, gib_throw_dir), rand(1, 5), 15)
|
||||
sleep(1)
|
||||
|
||||
for(var/obj/item/clothing/C in H)
|
||||
@@ -393,7 +391,7 @@
|
||||
qdel(C)
|
||||
H.unEquip(C)
|
||||
C.loc = loc
|
||||
C.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(1,5),15)
|
||||
C.throw_at(get_edge_target_turf(src, gib_throw_dir), rand(1, 5), 15)
|
||||
sleep(1)
|
||||
|
||||
visible_message("<span class='warning'>\The [src] spits out \the [H.name]'s possessions!")
|
||||
@@ -405,7 +403,7 @@
|
||||
qdel(O)
|
||||
else if(istype(O))
|
||||
O.loc = loc
|
||||
O.throw_at(get_edge_target_turf(src,gib_throw_dir),rand(1,5),15)
|
||||
O.throw_at(get_edge_target_turf(src, gib_throw_dir), rand(1, 5), 15)
|
||||
spats++
|
||||
sleep(1)
|
||||
if(spats)
|
||||
|
||||
Reference in New Issue
Block a user