TG sync Sunday (#201)
* stage one * datums and shit * game stuff * modules * tgstation.dme * tools * these things for icons * compiling fixes * merge spree on TG * other updates * updated maps with deepfryers * My helpers were not helping
This commit is contained in:
@@ -264,7 +264,7 @@ list(name = "- Carbon Dioxide", desc = " This informational poster teaches the v
|
||||
playsound(D.loc, 'sound/items/poster_being_created.ogg', 100, 1)
|
||||
|
||||
if(do_after(user,D.placespeed,target=src))
|
||||
if(!D || qdeleted(D))
|
||||
if(!D || QDELETED(D))
|
||||
return
|
||||
|
||||
if(iswallturf(src) && user && user.loc == temp_loc) //Let's check if everything is still there
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
return
|
||||
|
||||
/obj/effect/countdown/process()
|
||||
if(!attached_to || qdeleted(attached_to))
|
||||
if(!attached_to || QDELETED(attached_to))
|
||||
qdel(src)
|
||||
forceMove(get_turf(attached_to))
|
||||
var/new_val = get_value()
|
||||
|
||||
@@ -42,3 +42,7 @@
|
||||
|
||||
/obj/effect/experience_pressure_difference()
|
||||
return
|
||||
|
||||
/obj/effect/singularity_act()
|
||||
qdel(src)
|
||||
return 0
|
||||
@@ -258,10 +258,11 @@
|
||||
|
||||
/obj/effect/overlay/temp/ratvar/door
|
||||
icon_state = "ratvardoorglow"
|
||||
layer = CLOSED_FIREDOOR_LAYER //above closed doors
|
||||
layer = CLOSED_DOOR_LAYER //above closed doors
|
||||
|
||||
/obj/effect/overlay/temp/ratvar/door/window
|
||||
icon_state = "ratvarwindoorglow"
|
||||
layer = ABOVE_WINDOW_LAYER
|
||||
|
||||
/obj/effect/overlay/temp/ratvar/beam
|
||||
icon_state = "ratvarbeamglow"
|
||||
@@ -295,7 +296,10 @@
|
||||
|
||||
/obj/effect/overlay/temp/ratvar/window
|
||||
icon_state = "ratvarwindowglow"
|
||||
layer = ABOVE_WINDOW_LAYER
|
||||
layer = ABOVE_OBJ_LAYER
|
||||
|
||||
/obj/effect/overlay/temp/ratvar/window/single
|
||||
icon_state = "ratvarwindowglow_s"
|
||||
|
||||
/obj/effect/overlay/temp/ratvar/gear
|
||||
icon_state = "ratvargearglow"
|
||||
@@ -308,9 +312,6 @@
|
||||
/obj/effect/overlay/temp/ratvar/grille/broken
|
||||
icon_state = "ratvarbrokengrilleglow"
|
||||
|
||||
/obj/effect/overlay/temp/ratvar/window/single
|
||||
icon_state = "ratvarwindowglow_s"
|
||||
|
||||
/obj/effect/overlay/temp/ratvar/volt_hit
|
||||
name = "volt blast"
|
||||
layer = ABOVE_MOB_LAYER
|
||||
|
||||
@@ -503,7 +503,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
|
||||
else ..()
|
||||
|
||||
/obj/item/throw_impact(atom/A)
|
||||
if(A && !qdeleted(A))
|
||||
if(A && !QDELETED(A))
|
||||
var/itempush = 1
|
||||
if(w_class < 4)
|
||||
itempush = 0 //too light to push anything
|
||||
@@ -582,7 +582,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
|
||||
return 0
|
||||
|
||||
/obj/item/burn()
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
var/turf/T = get_turf(src)
|
||||
var/ash_type = /obj/effect/decal/cleanable/ash
|
||||
if(w_class == WEIGHT_CLASS_HUGE || w_class == WEIGHT_CLASS_GIGANTIC)
|
||||
@@ -592,7 +592,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
|
||||
..()
|
||||
|
||||
/obj/item/acid_melt()
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/effect/decal/cleanable/molten_object/MO = new(T)
|
||||
MO.pixel_x = rand(-16,16)
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
/obj/item/toy/crayon/proc/check_empty(mob/user)
|
||||
// When eating a crayon, check_empty() can be called twice producing
|
||||
// two messages unless we check for being deleted first
|
||||
if(qdeleted(src))
|
||||
if(QDELETED(src))
|
||||
return TRUE
|
||||
|
||||
. = FALSE
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
flick("carp_swell", src)
|
||||
//Wait for animation to end
|
||||
sleep(6)
|
||||
if(!src || qdeleted(src))//we got toasted while animating
|
||||
if(!src || QDELETED(src))//we got toasted while animating
|
||||
return
|
||||
//Make space carp
|
||||
var/mob/living/M = new mobtype(get_turf(src))
|
||||
|
||||
@@ -663,7 +663,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
M << "[link] <span class='name'>[msg.sender] </span><span class='game say'>PDA Message</span> --> <span class='name'>[multiple ? "Everyone" : msg.recipient]</span>: <span class='message'>[msg.message][msg.get_photo_ref()]</span></span>"
|
||||
|
||||
/obj/item/device/pda/proc/can_send(obj/item/device/pda/P)
|
||||
if(!P || qdeleted(P) || P.toff)
|
||||
if(!P || QDELETED(P) || P.toff)
|
||||
return null
|
||||
|
||||
var/obj/machinery/message_server/useMS = null
|
||||
@@ -676,7 +676,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
var/datum/signal/signal = src.telecomms_process()
|
||||
|
||||
if(!P || qdeleted(P) || P.toff) //in case the PDA or mob gets destroyed during telecomms_process()
|
||||
if(!P || QDELETED(P) || P.toff) //in case the PDA or mob gets destroyed during telecomms_process()
|
||||
return null
|
||||
|
||||
var/useTC = 0
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
/obj/item/device/geiger_counter/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/obj/item/device/geiger_counter/process()
|
||||
if(emagged)
|
||||
|
||||
@@ -97,11 +97,11 @@
|
||||
addtimer(CALLBACK(src, .proc/explode), timer * 10)
|
||||
|
||||
/obj/item/weapon/c4/proc/explode()
|
||||
if(qdeleted(src))
|
||||
if(QDELETED(src))
|
||||
return
|
||||
var/turf/location
|
||||
if(target)
|
||||
if(!qdeleted(target))
|
||||
if(!QDELETED(target))
|
||||
location = get_turf(target)
|
||||
target.overlays -= image_overlay
|
||||
target.priority_overlays -= image_overlay
|
||||
|
||||
@@ -381,6 +381,25 @@
|
||||
beakers += B2
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/ez_clean
|
||||
name = "cleaner grenade"
|
||||
desc = "Waffle Co.-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas."
|
||||
stage = READY
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/ez_clean/New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("fluorosurfactant", 40)
|
||||
B2.reagents.add_reagent("water", 40)
|
||||
B2.reagents.add_reagent("ez_clean", 60) //ensures a t h i c c distribution
|
||||
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/teargas
|
||||
name = "teargas grenade"
|
||||
desc = "Used for nonlethal riot control. Contents under pressure. Do not directly inhale contents."
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
walk_away(P,loc,rand(1,4))
|
||||
|
||||
spawn(rand(15,60))
|
||||
if(P && !qdeleted(P))
|
||||
if(P && !QDELETED(P))
|
||||
P.prime()
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/obj/item/weapon/grenade/deconstruct(disassembled = TRUE)
|
||||
if(!disassembled)
|
||||
prime()
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/grenade/proc/clown_check(mob/living/carbon/human/user)
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
/obj/item/weapon/grenade/plastic/c4/prime()
|
||||
var/turf/location
|
||||
if(target)
|
||||
if(!qdeleted(target))
|
||||
if(!QDELETED(target))
|
||||
location = get_turf(target)
|
||||
target.overlays -= image_overlay
|
||||
target.priority_overlays -= image_overlay
|
||||
@@ -156,7 +156,7 @@
|
||||
/obj/item/weapon/grenade/plastic/x4/prime()
|
||||
var/turf/location
|
||||
if(target)
|
||||
if(!qdeleted(target))
|
||||
if(!QDELETED(target))
|
||||
location = get_turf(target)
|
||||
target.overlays -= image_overlay
|
||||
target.priority_overlays -= image_overlay
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
tracked_chem_implants += src
|
||||
|
||||
/obj/item/weapon/implant/chem/Destroy()
|
||||
..()
|
||||
. = ..()
|
||||
tracked_chem_implants -= src
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
tracked_implants += src
|
||||
|
||||
/obj/item/weapon/implant/tracking/Destroy()
|
||||
..()
|
||||
. = ..()
|
||||
tracked_implants -= src
|
||||
|
||||
/obj/item/weapon/implanter/tracking/New()
|
||||
|
||||
@@ -144,8 +144,8 @@
|
||||
playsound(loc, 'sound/weapons/batonextend.ogg', 50, 1)
|
||||
add_fingerprint(user)
|
||||
sleep(3)
|
||||
if (H && !qdeleted(H))
|
||||
if (B && !qdeleted(B))
|
||||
if (H && !QDELETED(H))
|
||||
if (B && !QDELETED(B))
|
||||
H.internal_organs -= B
|
||||
qdel(B)
|
||||
new /obj/effect/gibspawner/generic(H.loc, H.viruses, H.dna)
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
var/A
|
||||
|
||||
A = input(user, "Area to jump to", "BOOYEA", A) as null|anything in teleportlocs
|
||||
if(!src || qdeleted(src) || !user || !user.is_holding(src) || user.incapacitated() || !A || !uses)
|
||||
if(!src || QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated() || !A || !uses)
|
||||
return
|
||||
var/area/thearea = teleportlocs[A]
|
||||
|
||||
|
||||
@@ -273,13 +273,6 @@
|
||||
level = 1
|
||||
cant_hold = list(/obj/item/weapon/storage/backpack/satchel/flat) //muh recursive backpacks
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/duty
|
||||
name = "duty satchel"
|
||||
desc = "An extra trendy looking satchel."
|
||||
icon_state = "satchel-duty"
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/flat/hide(var/intact)
|
||||
if(intact)
|
||||
invisibility = INVISIBILITY_MAXIMUM
|
||||
|
||||
@@ -56,7 +56,6 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible",
|
||||
|
||||
if(B.icon_state == "honk1" || B.icon_state == "honk2")
|
||||
var/mob/living/carbon/human/H = usr
|
||||
new /obj/item/weapon/bikehorn(B)
|
||||
H.dna.add_mutation(CLOWNMUT)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask)
|
||||
|
||||
@@ -157,8 +156,4 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible",
|
||||
|
||||
/obj/item/weapon/storage/book/bible/booze/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
|
||||
new /obj/item/stack/spacecash(src)
|
||||
new /obj/item/stack/spacecash(src)
|
||||
new /obj/item/stack/spacecash(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey(src)
|
||||
|
||||
@@ -301,3 +301,8 @@
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/romerol(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
new /obj/item/weapon/reagent_containers/dropper(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/ez_clean/New()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new/obj/item/weapon/grenade/chem_grenade/ez_clean(src)
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
user.visible_message("<span class='suicide'>[user] is putting [src]'s valve to [user.p_their()] lips! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
playsound(loc, 'sound/effects/spray.ogg', 10, 1, -3)
|
||||
if (H && !qdeleted(H))
|
||||
if (H && !QDELETED(H))
|
||||
for(var/obj/item/W in H)
|
||||
H.dropItemToGround(W)
|
||||
if(prob(50))
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
var/obj/item/weapon/twohanded/O = user.get_inactive_held_item()
|
||||
if (istype(O) && !istype(O, /obj/item/weapon/twohanded/offhand/)) //If you have a proper item in your other hand that the offhand is for, do nothing. This should never happen.
|
||||
return
|
||||
if (qdeleted(src))
|
||||
if (QDELETED(src))
|
||||
return
|
||||
qdel(src) //If it's another offhand, or literally anything else, qdel. If I knew how to add logging messages I'd put one here.
|
||||
|
||||
@@ -169,8 +169,8 @@
|
||||
..()
|
||||
var/slotbit = slotdefine2slotbit(slot)
|
||||
if(slot_flags & slotbit)
|
||||
var/O = user.is_holding_item_of_type(/obj/item/weapon/twohanded/offhand)
|
||||
if(!O || qdeleted(O))
|
||||
var/datum/O = user.is_holding_item_of_type(/obj/item/weapon/twohanded/offhand)
|
||||
if(!O || QDELETED(O))
|
||||
return
|
||||
qdel(O)
|
||||
return
|
||||
@@ -700,7 +700,7 @@
|
||||
if(source.z == ZLEVEL_STATION && get_dist(turfhit, source) < maxdist || source.z != ZLEVEL_STATION)
|
||||
..()
|
||||
if(do_after_mob(user, src, 5, uninterruptible = 1, progress = 0))
|
||||
if(qdeleted(src))
|
||||
if(QDELETED(src))
|
||||
return
|
||||
var/turf/landing = get_turf(src)
|
||||
if (loc != landing)
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
|
||||
/obj/singularity_act()
|
||||
ex_act(1)
|
||||
if(src && !qdeleted(src))
|
||||
if(src && !QDELETED(src))
|
||||
qdel(src)
|
||||
return 2
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
/obj/proc/rewrite(mob/user)
|
||||
var/penchoice = alert("What would you like to edit?", "Rename or change description?", "Rename", "Change description", "Cancel")
|
||||
if(!qdeleted(src) && user.canUseTopic(src, BE_CLOSE))
|
||||
if(!QDELETED(src) && user.canUseTopic(src, BE_CLOSE))
|
||||
if(penchoice == "Rename")
|
||||
rename_obj(user)
|
||||
if(penchoice == "Change description")
|
||||
@@ -206,7 +206,7 @@
|
||||
var/input = stripped_input(M,"What do you want to name \the [name]?", ,"", MAX_NAME_LEN)
|
||||
var/oldname = name
|
||||
|
||||
if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
|
||||
if(!QDELETED(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
|
||||
if(oldname == input)
|
||||
M << "You changed \the [name] to... well... \the [name]."
|
||||
return
|
||||
@@ -220,7 +220,7 @@
|
||||
/obj/proc/redesc_obj(mob/M)
|
||||
var/input = stripped_input(M,"Describe \the [name] here", ,"", 100)
|
||||
|
||||
if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
|
||||
if(!QDELETED(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
|
||||
desc = input
|
||||
M << "You have successfully changed \the [name]'s description."
|
||||
return
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
if(density)
|
||||
do_the_flick()
|
||||
sleep(5)
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
density = 0
|
||||
SetOpacity(0)
|
||||
update_icon()
|
||||
@@ -63,7 +63,7 @@
|
||||
do_the_flick()
|
||||
density = 1
|
||||
sleep(5)
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
SetOpacity(1)
|
||||
update_icon()
|
||||
air_update_turf(1)
|
||||
|
||||
@@ -27,7 +27,15 @@
|
||||
|
||||
/obj/structure/grille/Bumped(atom/user)
|
||||
if(ismob(user))
|
||||
shock(user, 70)
|
||||
var/tile_density = FALSE
|
||||
for(var/atom/movable/AM in get_turf(src))
|
||||
if(AM == src)
|
||||
continue
|
||||
if(AM.density && AM.layer >= layer)
|
||||
tile_density = TRUE
|
||||
break
|
||||
if(!tile_density)
|
||||
shock(user, 70)
|
||||
|
||||
|
||||
/obj/structure/grille/attack_paw(mob/user)
|
||||
|
||||
@@ -79,6 +79,8 @@
|
||||
return
|
||||
if(L.buckled)
|
||||
return
|
||||
if(user.pulling != L)
|
||||
return
|
||||
playsound(src.loc, "sound/effects/splat.ogg", 25, 1)
|
||||
L.visible_message("<span class='danger'>[user] slams [L] onto the meat spike!</span>", "<span class='userdanger'>[user] slams you onto the meat spike!</span>", "<span class='italics'>You hear a squishy wet noise.</span>")
|
||||
L.loc = src.loc
|
||||
|
||||
@@ -218,7 +218,7 @@ var/global/list/crematoriums = new/list()
|
||||
|
||||
new /obj/effect/decal/cleanable/ash(src)
|
||||
sleep(30)
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
locked = 0
|
||||
update_icon()
|
||||
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
open_animation()
|
||||
sleep(OPEN_DURATION + 2)
|
||||
pod_moving = 0
|
||||
if(!qdeleted(pod))
|
||||
if(!QDELETED(pod))
|
||||
pod.air_contents.share(loc.return_air()) //mix the pod's gas mixture with the tile it's on
|
||||
|
||||
/obj/structure/transit_tube/station/init_tube_dirs()
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
add_fingerprint(user)
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 40*I.toolspeed, target = src))
|
||||
if(qdeleted(src))
|
||||
if(QDELETED(src))
|
||||
return
|
||||
user << "<span class='notice'>You attach the [name].</span>"
|
||||
var/obj/structure/transit_tube/R = new build_type(loc, dir)
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
/obj/structure/transit_tube_pod/ex_act(severity, target)
|
||||
..()
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
empty_pod()
|
||||
|
||||
/obj/structure/transit_tube_pod/contents_explosion(severity, target)
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
playsound(loc, I.usesound, 75, 1)
|
||||
user << "<span class='notice'> You begin to disassemble [src]...</span>"
|
||||
if(do_after(user, 40*I.toolspeed, target = src))
|
||||
if(qdeleted(src))
|
||||
if(QDELETED(src))
|
||||
return
|
||||
|
||||
var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount)
|
||||
@@ -233,7 +233,7 @@
|
||||
|
||||
|
||||
/obj/structure/window/deconstruct(disassembled = TRUE)
|
||||
if(qdeleted(src))
|
||||
if(QDELETED(src))
|
||||
return
|
||||
if(!disassembled)
|
||||
playsound(src, "shatter", 70, 1)
|
||||
@@ -335,7 +335,7 @@
|
||||
|
||||
//merges adjacent full-tile windows into one
|
||||
/obj/structure/window/update_icon()
|
||||
if(!qdeleted(src))
|
||||
if(!QDELETED(src))
|
||||
if(!fulltile)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user