mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 20:13:45 +01:00
Here we go again
This commit is contained in:
@@ -219,7 +219,12 @@
|
||||
destination.Entered(src)
|
||||
for(var/atom/movable/AM in destination)
|
||||
AM.Crossed(src)
|
||||
|
||||
var/turf/oldturf = get_turf(old_loc)
|
||||
var/turf/destturf = get_turf(destination)
|
||||
var/old_z = (oldturf ? oldturf.z : null)
|
||||
var/dest_z = (destturf ? destturf.z : null)
|
||||
if(old_z != dest_z)
|
||||
onTransitZ(old_z, dest_z)
|
||||
if(isturf(destination) && opacity)
|
||||
var/turf/new_loc = destination
|
||||
new_loc.reconsider_lights()
|
||||
@@ -232,6 +237,11 @@
|
||||
|
||||
return 1
|
||||
|
||||
/atom/movable/proc/onTransitZ(old_z,new_z)
|
||||
for(var/item in src) // Notify contents of Z-transition. This can be overridden IF we know the items contents do not care.
|
||||
var/atom/movable/AM = item
|
||||
AM.onTransitZ(old_z,new_z)
|
||||
|
||||
/mob/living/forceMove(atom/destination)
|
||||
if(buckled)
|
||||
addtimer(CALLBACK(src, .proc/check_buckled), 1, TIMER_UNIQUE)
|
||||
|
||||
@@ -135,4 +135,9 @@
|
||||
else
|
||||
log_debug("/obj/structure/blob/core/proc/lateblobcheck: Blob core lacks a overmind.mind.")
|
||||
else
|
||||
log_debug("/obj/structure/blob/core/proc/lateblobcheck: Blob core lacks an overmind.")
|
||||
log_debug("/obj/structure/blob/core/proc/lateblobcheck: Blob core lacks an overmind.")
|
||||
|
||||
/obj/structure/blob/core/onTransitZ(old_z, new_z)
|
||||
if(overmind && is_station_level(new_z))
|
||||
overmind.forceMove(get_turf(src))
|
||||
return ..()
|
||||
@@ -320,69 +320,6 @@
|
||||
for(var/mob/living/carbon/human/H in oview(3,owner)) //Blood decals for simple animals would be neat. aka Carp with blood on it.
|
||||
H.add_mob_blood(owner)
|
||||
|
||||
/obj/item/organ/internal/heart/gland/bodysnatch
|
||||
cooldown_low = 600
|
||||
cooldown_high = 600
|
||||
human_only = 1
|
||||
uses = 1
|
||||
|
||||
/obj/item/organ/internal/heart/gland/bodysnatch/activate()
|
||||
to_chat(owner, "<span class='warning'>You feel something moving around inside you...</span>")
|
||||
//spawn cocoon with clone greytide snpc inside
|
||||
if(ishuman(owner))
|
||||
var/obj/effect/cocoon/abductor/C = new (get_turf(owner))
|
||||
C.Copy(owner)
|
||||
C.Start()
|
||||
owner.adjustBruteLoss(40)
|
||||
owner.add_splatter_floor()
|
||||
|
||||
/obj/effect/cocoon/abductor
|
||||
name = "slimy cocoon"
|
||||
desc = "Something is moving inside."
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cocoon_large3"
|
||||
color = rgb(10,120,10)
|
||||
density = 1
|
||||
var/hatch_time = 0
|
||||
|
||||
/obj/effect/cocoon/abductor/proc/Copy(mob/living/carbon/human/H)
|
||||
var/mob/living/carbon/human/interactive/greytide/clone = new(src)
|
||||
var/datum/dna/owner_dna = H.dna
|
||||
clone.rename_character(clone.name, owner_dna.real_name)
|
||||
clone.set_species(owner_dna.species.type)
|
||||
clone.dna = owner_dna.Clone()
|
||||
clone.body_accessory = H.body_accessory
|
||||
domutcheck(clone)
|
||||
|
||||
for(var/obj/item/I in clone)
|
||||
if(istype(I, /obj/item/implant))
|
||||
continue
|
||||
if(istype(I, /obj/item/organ))
|
||||
continue
|
||||
qdel(I)
|
||||
|
||||
//There's no define for this / get all items ?
|
||||
var/list/slots = list(slot_back,slot_w_uniform,slot_wear_suit,\
|
||||
slot_wear_mask,slot_head,slot_shoes,slot_gloves,slot_l_ear,slot_r_ear,\
|
||||
slot_glasses,slot_belt,slot_s_store,slot_l_store,slot_r_store,slot_wear_id,slot_wear_pda)
|
||||
|
||||
for(var/slot in slots)
|
||||
var/obj/item/I = H.get_item_by_slot(slot)
|
||||
if(I)
|
||||
clone.equip_to_slot_or_del(new I.type(clone), slot)
|
||||
|
||||
/obj/effect/cocoon/abductor/proc/Start()
|
||||
hatch_time = world.time + 600
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/effect/cocoon/abductor/process()
|
||||
if(world.time > hatch_time)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
for(var/mob/M in contents)
|
||||
src.visible_message("<span class='warning'>[src] hatches!</span>")
|
||||
M.forceMove(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/organ/internal/heart/gland/plasma
|
||||
cooldown_low = 1200
|
||||
|
||||
@@ -741,6 +741,8 @@
|
||||
throw_item.throw_at(target, 16, 3, src)
|
||||
visible_message("<span class='danger'>[src] launches [throw_item.name] at [target.name]!</span>")
|
||||
|
||||
/obj/machinery/vending/onTransitZ()
|
||||
return
|
||||
/*
|
||||
* Vending machine types
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user