mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 04:57:12 +01:00
fixes the runtimes
This commit is contained in:
@@ -22,6 +22,8 @@
|
||||
#define BLOCK_GAS_SMOKE_EFFECT 8192 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
|
||||
#define THICKMATERIAL 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. (NOTE: flag shared with BLOCK_GAS_SMOKE_EFFECT)
|
||||
|
||||
#define DROPDEL 16384 // When dropped, it calls qdel on itself
|
||||
|
||||
//Reagent flags
|
||||
#define REAGENT_NOREACT 1
|
||||
|
||||
|
||||
@@ -62,9 +62,9 @@ var/const/tk_maxrange = 15
|
||||
desc = "Magic"
|
||||
icon = 'icons/obj/magic.dmi'//Needs sprites
|
||||
icon_state = "2"
|
||||
flags = NOBLUDGEON | ABSTRACT
|
||||
flags = NOBLUDGEON | ABSTRACT | DROPDEL
|
||||
//item_state = null
|
||||
w_class = 10
|
||||
w_class = WEIGHT_CLASS_GIGANTIC
|
||||
layer = 20
|
||||
plane = HUD_PLANE
|
||||
|
||||
@@ -82,9 +82,8 @@ var/const/tk_maxrange = 15
|
||||
/obj/item/tk_grab/dropped(mob/user)
|
||||
if(focus && user && loc != user && loc != user.loc) // drop_item() gets called when you tk-attack a table/closet with an item
|
||||
if(focus.Adjacent(loc))
|
||||
focus.loc = loc
|
||||
|
||||
qdel(src)
|
||||
focus.forceMove(loc)
|
||||
. = ..()
|
||||
|
||||
|
||||
//stops TK grabs being equipped anywhere but into hands
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "arm_blade"
|
||||
item_state = "arm_blade"
|
||||
flags = ABSTRACT | NODROP
|
||||
flags = ABSTRACT | NODROP | DROPDEL
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
sharp = 1
|
||||
force = 25
|
||||
@@ -140,7 +140,7 @@
|
||||
|
||||
/obj/item/weapon/melee/arm_blade/dropped(mob/user)
|
||||
user.visible_message("<span class='warning'>With a sickening crunch, [user] reforms his blade into an arm!</span>", "<span class='notice'>We assimilate the blade back into our body.</span>", "<span class='warning>You hear organic matter ripping and tearing!</span>")
|
||||
qdel(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/melee/arm_blade/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity)
|
||||
@@ -199,7 +199,7 @@
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "tentacle"
|
||||
item_state = "tentacle"
|
||||
flags = ABSTRACT | NODROP | NOBLUDGEON
|
||||
flags = ABSTRACT | NODROP | NOBLUDGEON | DROPDEL
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
ammo_type = /obj/item/ammo_casing/magic/tentacle
|
||||
fire_sound = 'sound/effects/splat.ogg'
|
||||
@@ -217,10 +217,6 @@
|
||||
else
|
||||
to_chat(loc, "<span class='notice'>You prepare to extend a tentacle.</span>")
|
||||
|
||||
/obj/item/weapon/gun/magic/tentacle/dropped()
|
||||
. = ..()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/gun/magic/tentacle/shoot_with_empty_chamber(mob/living/user as mob|obj)
|
||||
to_chat(user, "<span class='warning'>The [name] is not ready yet.<span>")
|
||||
|
||||
@@ -377,7 +373,7 @@
|
||||
/obj/item/weapon/shield/changeling
|
||||
name = "shield-like mass"
|
||||
desc = "A mass of tough, boney tissue. You can still see the fingers as a twisted pattern in the shield."
|
||||
flags = NODROP
|
||||
flags = NODROP | DROPDEL
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "ling_shield"
|
||||
block_chance = 50
|
||||
@@ -389,9 +385,6 @@
|
||||
if(ismob(loc))
|
||||
loc.visible_message("<span class='warning'>The end of [loc.name]\'s hand inflates rapidly, forming a huge shield-like mass!</span>", "<span class='warning'>We inflate our hand into a strong shield.</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
|
||||
|
||||
/obj/item/weapon/shield/changeling/dropped()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/shield/changeling/hit_reaction()
|
||||
if(remaining_uses < 1)
|
||||
if(ishuman(loc))
|
||||
@@ -429,7 +422,7 @@
|
||||
name = "flesh mass"
|
||||
icon_state = "lingspacesuit"
|
||||
desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel."
|
||||
flags = STOPSPRESSUREDMAGE | NODROP
|
||||
flags = STOPSPRESSUREDMAGE | NODROP | DROPDEL
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/emergency_oxygen, /obj/item/weapon/tank/oxygen)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) //No armor at all.
|
||||
|
||||
@@ -439,9 +432,6 @@
|
||||
loc.visible_message("<span class='warning'>[loc.name]\'s flesh rapidly inflates, forming a bloated mass around their body!</span>", "<span class='warning'>We inflate our flesh, creating a spaceproof suit!</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
|
||||
processing_objects += src
|
||||
|
||||
/obj/item/clothing/suit/space/changeling/dropped()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/clothing/suit/space/changeling/process()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
@@ -451,12 +441,9 @@
|
||||
name = "flesh mass"
|
||||
icon_state = "lingspacehelmet"
|
||||
desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front."
|
||||
flags = BLOCKHAIR | STOPSPRESSUREDMAGE | NODROP
|
||||
flags = BLOCKHAIR | STOPSPRESSUREDMAGE | NODROP | DROPDEL
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/changeling/dropped()
|
||||
qdel(src)
|
||||
|
||||
|
||||
/***************************************\
|
||||
|*****************ARMOR*****************|
|
||||
@@ -481,7 +468,7 @@
|
||||
name = "chitinous mass"
|
||||
desc = "A tough, hard covering of black chitin."
|
||||
icon_state = "lingarmor"
|
||||
flags = NODROP
|
||||
flags = NODROP | DROPDEL
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 10, bio = 4, rad = 0)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
@@ -495,16 +482,10 @@
|
||||
if(ismob(loc))
|
||||
loc.visible_message("<span class='warning'>[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!</span>", "<span class='warning'>We harden our flesh, creating a suit of armor!</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
|
||||
|
||||
/obj/item/clothing/suit/armor/changeling/dropped()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/clothing/head/helmet/changeling
|
||||
name = "chitinous mass"
|
||||
desc = "A tough, hard covering of black chitin with transparent chitin in front."
|
||||
icon_state = "lingarmorhelmet"
|
||||
flags = BLOCKHAIR | NODROP
|
||||
flags = BLOCKHAIR | NODROP | DROPDEL
|
||||
armor = list(melee = 30, bullet = 30, laser = 40, energy = 20, bomb = 10, bio = 4, rad = 0)
|
||||
flags_inv = HIDEEARS
|
||||
|
||||
/obj/item/clothing/head/helmet/changeling/dropped()
|
||||
qdel(src)
|
||||
flags_inv = HIDEEARS
|
||||
@@ -361,32 +361,16 @@
|
||||
/obj/item/weapon/melee/cultblade/ghost
|
||||
name = "eldritch sword"
|
||||
force = 15
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/weapon/melee/cultblade/ghost/dropped(mob/living/carbon/human/user)
|
||||
..()
|
||||
qdel(src)
|
||||
flags = NODROP | DROPDEL
|
||||
|
||||
/obj/item/clothing/head/culthood/alt/ghost
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/head/culthood/alt/ghost/dropped(mob/living/carbon/human/user)
|
||||
..()
|
||||
qdel(src)
|
||||
flags = NODROP | DROPDEL
|
||||
|
||||
/obj/item/clothing/suit/cultrobes/alt/ghost
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/suit/cultrobes/alt/ghost/dropped(mob/living/carbon/human/user)
|
||||
..()
|
||||
qdel(src)
|
||||
flags = NODROP | DROPDEL
|
||||
|
||||
/obj/item/clothing/shoes/cult/ghost
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/shoes/cult/ghost/dropped(mob/living/carbon/human/user)
|
||||
..()
|
||||
qdel(src)
|
||||
flags = NODROP | DROPDEL
|
||||
|
||||
/datum/outfit/ghost_cultist
|
||||
name = "Cultist Ghost"
|
||||
|
||||
@@ -412,7 +412,11 @@
|
||||
trashtype = /obj/item/weapon/restraints/handcuffs/energy/used
|
||||
origin_tech = "materials=2;magnets=5"
|
||||
|
||||
/obj/item/weapon/restraints/handcuffs/energy/used
|
||||
desc = "energy discharge"
|
||||
flags = DROPDEL
|
||||
|
||||
/obj/item/weapon/restraints/handcuffs/energy/cult/used/dropped(mob/user)
|
||||
user.visible_message("<span class='danger'>[user]'s shackles shatter in a discharge of dark magic!</span>", \
|
||||
"<span class='userdanger'>Your [src] shatters in a discharge of dark magic!</span>")
|
||||
qdel(src)
|
||||
. = ..()
|
||||
@@ -454,6 +454,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
|
||||
/obj/item/weapon/restraints/handcuffs/energy/used
|
||||
desc = "energy discharge"
|
||||
flags = DROPDEL
|
||||
|
||||
/obj/item/weapon/restraints/handcuffs/energy/used/dropped(mob/user)
|
||||
user.visible_message("<span class='danger'>[user]'s [src] break in a discharge of energy!</span>", \
|
||||
@@ -461,7 +462,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
var/datum/effect_system/spark_spread/S = new
|
||||
S.set_up(4,0,user.loc)
|
||||
S.start()
|
||||
qdel(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/abductor_baton/examine(mob/user)
|
||||
..()
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "syndballoon"
|
||||
item_state = null
|
||||
flags = ABSTRACT | NODROP
|
||||
flags = ABSTRACT | NODROP | DROPDEL
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
force = 0
|
||||
throwforce = 0
|
||||
@@ -32,10 +32,10 @@
|
||||
attached_spell.attached_hand = null
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/melee/touch_attack/dropped()
|
||||
/obj/item/weapon/melee/touch_attack/Destroy()
|
||||
if(attached_spell)
|
||||
attached_spell.attached_hand = null
|
||||
qdel(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/melee/touch_attack/disintegrate
|
||||
name = "disintegrating touch"
|
||||
|
||||
@@ -101,6 +101,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
new path(src)
|
||||
|
||||
/obj/item/Destroy()
|
||||
flags &= ~DROPDEL //prevent reqdels
|
||||
QDEL_NULL(hidden_uplink)
|
||||
if(ismob(loc))
|
||||
var/mob/m = loc
|
||||
@@ -317,6 +318,8 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.Remove(user)
|
||||
if(DROPDEL & flags)
|
||||
qdel(src)
|
||||
|
||||
// called just as an item is picked up (loc is not yet changed)
|
||||
/obj/item/proc/pickup(mob/user)
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
icon_state = "chronogun"
|
||||
item_state = "chronogun"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
flags = NODROP
|
||||
flags = NODROP | DROPDEL
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/chrono_beam)
|
||||
can_charge = 0
|
||||
fire_delay = 50
|
||||
@@ -63,10 +63,6 @@
|
||||
TED = new(src.loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/gun/energy/chrono_gun/dropped()
|
||||
..()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/gun/energy/chrono_gun/update_icon()
|
||||
return
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
icon_state = "disintegrate"
|
||||
item_state = "disintegrate"
|
||||
desc = "This hand of yours glows with an awesome power!"
|
||||
flags = ABSTRACT | NODROP
|
||||
flags = ABSTRACT | NODROP| DROPDEL
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
hitsound = 'sound/weapons/sear.ogg'
|
||||
damtype = BURN
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
item_color = "b"
|
||||
var/allow_multiple = 0
|
||||
var/uses = -1
|
||||
flags = DROPDEL
|
||||
|
||||
|
||||
/obj/item/weapon/implant/proc/trigger(emote, mob/source)
|
||||
@@ -82,6 +83,5 @@
|
||||
return "No information available"
|
||||
|
||||
/obj/item/weapon/implant/dropped(mob/user)
|
||||
..()
|
||||
. = 1
|
||||
qdel(src)
|
||||
..()
|
||||
@@ -128,19 +128,18 @@
|
||||
armed = 1
|
||||
icon_state = "e_snare"
|
||||
trap_damage = 0
|
||||
flags = DROPDEL
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/energy/New()
|
||||
..()
|
||||
spawn(100)
|
||||
if(!istype(loc, /mob))
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
qdel(src)
|
||||
addtimer(src, "dissipate", 100)
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/energy/dropped()
|
||||
..()
|
||||
qdel(src)
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/energy/proc/dissipate()
|
||||
if(!ismob(loc))
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/energy/attack_hand(mob/user)
|
||||
Crossed(user) //honk
|
||||
|
||||
@@ -79,7 +79,6 @@
|
||||
var/obj/item/weapon/twohanded/offhand/O = new(user) ////Let's reserve his other hand~
|
||||
O.name = "[name] - offhand"
|
||||
O.desc = "Your second grip on the [name]"
|
||||
O.wielded = TRUE
|
||||
user.put_in_inactive_hand(O)
|
||||
return
|
||||
|
||||
@@ -115,18 +114,12 @@
|
||||
name = "offhand"
|
||||
flags = ABSTRACT
|
||||
|
||||
/obj/item/weapon/twohanded/offhand/Destroy()
|
||||
wielded = FALSE
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/twohanded/offhand/unwield()
|
||||
if(wielded)//Only delete if we're wielded
|
||||
wielded = FALSE
|
||||
if(!QDELETED(src))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/twohanded/offhand/wield()
|
||||
if(wielded)//Only delete if we're wielded
|
||||
wielded = FALSE
|
||||
if(!QDELETED(src))
|
||||
qdel(src)
|
||||
|
||||
///////////Two hand required objects///////////////
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
resist_time = 150
|
||||
mute = MUTE_MUFFLE
|
||||
flags = DROPDEL
|
||||
species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin", "Grey")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/mask.dmi',
|
||||
@@ -109,9 +110,8 @@
|
||||
R.loc = T
|
||||
transfer_fingerprints_to(R)
|
||||
playsound(src,'sound/items/poster_ripped.ogg',40,1)
|
||||
spawn(0) // Because of how dropping is done, if the muzzle gets deleted now, icons won't properly update and the whole unEquip() proc will break stuff.
|
||||
qdel(src) // This makes sure it gets deleted AFTER all that has to be done is done.
|
||||
user.emote("scream")
|
||||
user.emote("scream")
|
||||
. = ..()
|
||||
|
||||
/obj/item/clothing/mask/muzzle/safety
|
||||
name = "safety muzzle"
|
||||
|
||||
@@ -93,13 +93,13 @@ var/global/totaltribbles = 0 //global variable so it updates for all tribbles,
|
||||
item_state = "tribble1"
|
||||
w_class = 10
|
||||
var/gestation = 0
|
||||
flags = DROPDEL
|
||||
|
||||
/obj/item/toy/tribble/attack_self(mob/user as mob) //hug that tribble (and play a sound if we add one)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>You nuzzle the tribble and it trills softly.</span>")
|
||||
|
||||
/obj/item/toy/tribble/dropped(mob/user as mob) //now you can't item form them to get rid of them all so easily
|
||||
..()
|
||||
new /mob/living/simple_animal/tribble(user.loc)
|
||||
for(var/mob/living/simple_animal/tribble/T in user.loc)
|
||||
T.icon_state = src.icon_state
|
||||
@@ -108,7 +108,7 @@ var/global/totaltribbles = 0 //global variable so it updates for all tribbles,
|
||||
T.gestation = src.gestation
|
||||
|
||||
to_chat(user, "<span class='notice'>The tribble gets up and wanders around.</span>")
|
||||
qdel(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/toy/tribble/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob) //neutering and un-neutering
|
||||
..()
|
||||
|
||||
@@ -434,7 +434,8 @@
|
||||
return EAT_TIME_FAT //if it doesn't fit into the above, it's probably a fat guy, take EAT_TIME_FAT to do it
|
||||
|
||||
/obj/item/weapon/grab/dropped()
|
||||
qdel(src)
|
||||
if(!QDELETED(src))
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/weapon/grab/Destroy()
|
||||
|
||||
Reference in New Issue
Block a user