diff --git a/code/datums/spell.dm b/code/datums/spell.dm index 75403bef9df..e7a52c5fe1c 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -61,6 +61,9 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin return 0 if(clothes_req) //clothes check + if(!istype(usr, /mob/living/carbon/human)) + usr << "You aren't a human, Why are you trying to cast a human spell, silly non-human? Casting human spells is for humans." + return 0 if(!istype(usr:wear_suit, /obj/item/clothing/suit/wizrobe)) usr << "I don't feel strong enough without my robe." return 0 diff --git a/code/game/dna.dm b/code/game/dna.dm index cb0221b6c50..f6bf9ab1916 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -1029,41 +1029,42 @@ src.subblock-- dopage(src,"unimenu") if (href_list["unipulse"]) - var/block - var/newblock - var/tstructure2 - block = getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),src.subblock,1) - src.delete = 1 - src.temphtml = text("Working ... Please wait ([] Seconds)", src.radduration) - usr << browse(temphtml, "window=scannernew;size=550x650") - onclose(usr, "scannernew") - var/lock_state = src.connected.locked - src.connected.locked = 1//lock it - sleep(10*src.radduration) - if (!src.connected.occupant) - temphtml = null - delete = 0 - return null - /// - if (prob((80 + (src.radduration / 2)))) - block = miniscramble(block, src.radstrength, src.radduration) - newblock = null - if (src.subblock == 1) newblock = block + getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),2,1) + getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),3,1) - if (src.subblock == 2) newblock = getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),1,1) + block + getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),3,1) - if (src.subblock == 3) newblock = getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),1,1) + getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),2,1) + block - tstructure2 = setblock(src.connected.occupant.dna.uni_identity, src.uniblock, newblock,3) - src.connected.occupant.dna.uni_identity = tstructure2 - updateappearance(src.connected.occupant,src.connected.occupant.dna.uni_identity) - src.connected.occupant.radiation += (src.radstrength+src.radduration) - else - if (prob(20+src.radstrength)) - randmutb(src.connected.occupant) - domutcheck(src.connected.occupant,src.connected) - else - randmuti(src.connected.occupant) + if(src.connected.occupant) + var/block + var/newblock + var/tstructure2 + block = getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),src.subblock,1) + src.delete = 1 + src.temphtml = text("Working ... Please wait ([] Seconds)", src.radduration) + usr << browse(temphtml, "window=scannernew;size=550x650") + onclose(usr, "scannernew") + var/lock_state = src.connected.locked + src.connected.locked = 1//lock it + sleep(10*src.radduration) + if (!src.connected.occupant) + temphtml = null + delete = 0 + return null + /// + if (prob((80 + (src.radduration / 2)))) + block = miniscramble(block, src.radstrength, src.radduration) + newblock = null + if (src.subblock == 1) newblock = block + getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),2,1) + getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),3,1) + if (src.subblock == 2) newblock = getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),1,1) + block + getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),3,1) + if (src.subblock == 3) newblock = getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),1,1) + getblock(getblock(src.connected.occupant.dna.uni_identity,src.uniblock,3),2,1) + block + tstructure2 = setblock(src.connected.occupant.dna.uni_identity, src.uniblock, newblock,3) + src.connected.occupant.dna.uni_identity = tstructure2 updateappearance(src.connected.occupant,src.connected.occupant.dna.uni_identity) - src.connected.occupant.radiation += ((src.radstrength*2)+src.radduration) - src.connected.locked = lock_state + src.connected.occupant.radiation += (src.radstrength+src.radduration) + else + if (prob(20+src.radstrength)) + randmutb(src.connected.occupant) + domutcheck(src.connected.occupant,src.connected) + else + randmuti(src.connected.occupant) + updateappearance(src.connected.occupant,src.connected.occupant.dna.uni_identity) + src.connected.occupant.radiation += ((src.radstrength*2)+src.radduration) + src.connected.locked = lock_state dopage(src,"unimenu") src.delete = 0 //////////////////////////////////////////////////////// @@ -1200,7 +1201,7 @@ src.temphtml += text("Data: []
", src.buffer2) src.temphtml += text("By: []
", src.buffer2owner) src.temphtml += text("Label: []
", src.buffer2label) - if (src.connected.occupant && !(src.connected.occupant.mutations & HUSK)) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) + if (src.connected.occupant && !(src.connected.occupant.mutations2 & NOCLONE)) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) if (src.buffer2) src.temphtml += text("Transfer to: Occupant - Injector
", src, src) //if (src.buffer2) src.temphtml += text("Isolate Block
", src) if (src.buffer2) src.temphtml += "Disk: Save To | Load From
" @@ -1214,7 +1215,7 @@ src.temphtml += text("Data: []
", src.buffer3) src.temphtml += text("By: []
", src.buffer3owner) src.temphtml += text("Label: []
", src.buffer3label) - if (src.connected.occupant && !(src.connected.occupant.mutations & HUSK)) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) + if (src.connected.occupant && !(src.connected.occupant.mutations & NOCLONE)) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) if (src.buffer3) src.temphtml += text("Transfer to: Occupant - Injector
", src, src) //if (src.buffer3) src.temphtml += text("Isolate Block
", src) if (src.buffer3) src.temphtml += "Disk: Save To | Load From
" @@ -1222,122 +1223,131 @@ if (src.buffer3) src.temphtml += text("Clear Buffer

", src) if (!src.buffer3) src.temphtml += "
" if (href_list["b1addui"]) - src.buffer1iue = 0 - src.buffer1 = src.connected.occupant.dna.uni_identity - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer1owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer1owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer1iue = 0 + src.buffer1 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer1owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer1owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer1owner = src.connected.occupant.real_name - src.buffer1label = "Unique Identifier" - src.buffer1type = "ui" - dopage(src,"buffermenu") + src.buffer1label = "Unique Identifier" + src.buffer1type = "ui" + dopage(src,"buffermenu") if (href_list["b1adduiue"]) - src.buffer1 = src.connected.occupant.dna.uni_identity - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer1owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer1owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer1 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer1owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer1owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer1owner = src.connected.occupant.real_name - src.buffer1label = "Unique Identifier & Unique Enzymes" - src.buffer1type = "ui" - src.buffer1iue = 1 - dopage(src,"buffermenu") + src.buffer1label = "Unique Identifier & Unique Enzymes" + src.buffer1type = "ui" + src.buffer1iue = 1 + dopage(src,"buffermenu") if (href_list["b2adduiue"]) - src.buffer2 = src.connected.occupant.dna.uni_identity - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer2owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer2owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer2 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer2owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer2owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer2owner = src.connected.occupant.real_name - src.buffer2label = "Unique Identifier & Unique Enzymes" - src.buffer2type = "ui" - src.buffer2iue = 1 - dopage(src,"buffermenu") + src.buffer2label = "Unique Identifier & Unique Enzymes" + src.buffer2type = "ui" + src.buffer2iue = 1 + dopage(src,"buffermenu") if (href_list["b3adduiue"]) - src.buffer3 = src.connected.occupant.dna.uni_identity - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer3owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer3owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer3 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer3owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer3owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer3owner = src.connected.occupant.real_name - src.buffer3label = "Unique Identifier & Unique Enzymes" - src.buffer3type = "ui" - src.buffer3iue = 1 - dopage(src,"buffermenu") + src.buffer3label = "Unique Identifier & Unique Enzymes" + src.buffer3type = "ui" + src.buffer3iue = 1 + dopage(src,"buffermenu") if (href_list["b2addui"]) - src.buffer2iue = 0 - src.buffer2 = src.connected.occupant.dna.uni_identity - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer2owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer2owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer2iue = 0 + src.buffer2 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer2owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer2owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer2owner = src.connected.occupant.real_name - src.buffer2label = "Unique Identifier" - src.buffer2type = "ui" - dopage(src,"buffermenu") + src.buffer2label = "Unique Identifier" + src.buffer2type = "ui" + dopage(src,"buffermenu") if (href_list["b3addui"]) - src.buffer3iue = 0 - src.buffer3 = src.connected.occupant.dna.uni_identity - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer3owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer3owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer3iue = 0 + src.buffer3 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer3owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer3owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer3owner = src.connected.occupant.real_name - src.buffer3label = "Unique Identifier" - src.buffer3type = "ui" - dopage(src,"buffermenu") + src.buffer3label = "Unique Identifier" + src.buffer3type = "ui" + dopage(src,"buffermenu") if (href_list["b1addse"]) - src.buffer1iue = 0 - src.buffer1 = src.connected.occupant.dna.struc_enzymes - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer1owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer1owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer1iue = 0 + src.buffer1 = src.connected.occupant.dna.struc_enzymes + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer1owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer1owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer1owner = src.connected.occupant.real_name - src.buffer1label = "Structural Enzymes" - src.buffer1type = "se" - dopage(src,"buffermenu") + src.buffer1label = "Structural Enzymes" + src.buffer1type = "se" + dopage(src,"buffermenu") if (href_list["b2addse"]) - src.buffer2iue = 0 - src.buffer2 = src.connected.occupant.dna.struc_enzymes - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer2owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer2owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer2iue = 0 + src.buffer2 = src.connected.occupant.dna.struc_enzymes + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer2owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer2owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer2owner = src.connected.occupant.real_name - src.buffer2label = "Structural Enzymes" - src.buffer2type = "se" - dopage(src,"buffermenu") + src.buffer2label = "Structural Enzymes" + src.buffer2type = "se" + dopage(src,"buffermenu") if (href_list["b3addse"]) - src.buffer3iue = 0 - src.buffer3 = src.connected.occupant.dna.struc_enzymes - if (!istype(src.connected.occupant,/mob/living/carbon/human)) - src.buffer3owner = src.connected.occupant.name - else - if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") - src.buffer3owner = src.connected.occupant.dna.original_name //Good god, is that unweildy + if(src.connected.occupant && src.connected.occupant.dna) + src.buffer3iue = 0 + src.buffer3 = src.connected.occupant.dna.struc_enzymes + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer3owner = src.connected.occupant.name + else + if(src.connected.occupant.real_name == "Unknown" && src.connected.occupant.dna.original_name != "Unknown") + src.buffer3owner = src.connected.occupant.dna.original_name //Good god, is that unweildy else src.buffer3owner = src.connected.occupant.real_name - src.buffer3label = "Structural Enzymes" - src.buffer3type = "se" - dopage(src,"buffermenu") + src.buffer3label = "Structural Enzymes" + src.buffer3type = "se" + dopage(src,"buffermenu") if (href_list["b1clear"]) src.buffer1 = null src.buffer1owner = null @@ -1366,7 +1376,7 @@ src.buffer3label = sanitize(input("New Label:","Edit Label","Infos here")) dopage(src,"buffermenu") if (href_list["b1transfer"]) - if (!src.connected.occupant || src.connected.occupant.mutations & HUSK) + if (!src.connected.occupant || src.connected.occupant.mutations2 & NOCLONE || !src.connected.occupant.dna) return if (src.buffer1type == "ui") if (src.buffer1iue) @@ -1382,7 +1392,7 @@ src.connected.occupant.radiation += rand(20,50) src.delete = 0 if (href_list["b2transfer"]) - if (!src.connected.occupant || src.connected.occupant.mutations & HUSK) + if (!src.connected.occupant || src.connected.occupant.mutations2 & NOCLONE || !src.connected.occupant.dna) return if (src.buffer2type == "ui") if (src.buffer2iue) @@ -1398,7 +1408,7 @@ src.connected.occupant.radiation += rand(20,50) src.delete = 0 if (href_list["b3transfer"]) - if (!src.connected.occupant || src.connected.occupant.mutations & HUSK) + if (!src.connected.occupant || src.connected.occupant.mutations2 & NOCLONE || !src.connected.occupant.dna) return if (src.buffer3type == "ui") if (src.buffer3iue) diff --git a/code/game/gamemodes/wizard/spells.dm b/code/game/gamemodes/wizard/spells.dm index d80191f516f..897ae86475c 100644 --- a/code/game/gamemodes/wizard/spells.dm +++ b/code/game/gamemodes/wizard/spells.dm @@ -377,9 +377,13 @@ if(clear) L+=T - usr.loc = pick(L) + if(!L.len) + usr <<"Invalid teleport destination." + return - smoke.start() + else + usr.loc = pick(L) + smoke.start() //JAUNT diff --git a/code/game/machinery/morgue.dm b/code/game/machinery/morgue.dm index 0d8ff6209b5..48ed0675aed 100644 --- a/code/game/machinery/morgue.dm +++ b/code/game/machinery/morgue.dm @@ -251,32 +251,45 @@ return //don't let you cremate something twice or w/e if(length(contents) == 0) - for (var/mob/M in viewers(user)) + for (var/mob/M in viewers(src)) M.show_message("\red You hear a hollow crackle.", 1) return else if(contents) + for (var/mob/M in viewers(src)) + M.show_message("\red You hear a roar as the crematorium activates.", 1) cremating = 1 locked = 1 - for (var/mob/living/M in contents) - M.Stun(100) //You really dont want to place this inside the loop. - spawn(1) - for(var/i=1 to 10) - sleep(10) - M.take_overall_damage(0,30) - if (M.stat!=2 && prob(30)) - M.emote("scream") - new /obj/effect/decal/ash(src) - for (var/obj/item/W in M) - if (prob(10)) - W.loc = src - M.death(1) - M.ghostize() - del(M) + if(locate(/mob/living/, src)) + for (var/obj/item/I in contents) + del(I) + for (var/mob/living/M in contents) + M.Stun(100) //You really dont want to place this inside the loop. + spawn(1) + for(var/i=1 to 10) + sleep(10) + if(M) + M.take_overall_damage(0,30) + if (M.stat!=2 && prob(30)) + M.emote("scream") + new /obj/effect/decal/ash(src) + for (var/obj/item/W in M) + if (prob(10)) + W.loc = src + M.death(1) + M.ghostize() + del(M) + cremating = 0 + locked = 0 + playsound(src.loc, 'ding.ogg', 50, 1) + else + for(var/obj/item/I in contents) + if(!istype(I, /obj/item/weapon/disk/nuclear)) + del(I) + new /obj/effect/decal/ash(src) + sleep(30) cremating = 0 locked = 0 playsound(src.loc, 'ding.ogg', 50, 1) - for (var/mob/M in viewers(src)) - M.show_message("\red You hear a roar as the crematorium activates.", 1) return /obj/structure/c_tray/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) diff --git a/code/game/objects/door_assembly.dm b/code/game/objects/door_assembly.dm index 54438608096..eb41948780e 100644 --- a/code/game/objects/door_assembly.dm +++ b/code/game/objects/door_assembly.dm @@ -263,12 +263,14 @@ obj/structure/door_assembly playsound(src.loc, 'Crowbar.ogg', 100, 1) user.visible_message("[user] adds reinforced glass windows to the airlock assembly.", "You start to install reinforced glass windows into the airlock assembly.") var/obj/item/stack/sheet/rglass/G = W - if(do_after(user, 40) && G.amount>=1) - user << "\blue You installed glass windows the airlock assembly!" - G.use(1) - src.glass = 1 - src.name = "Near finished Window Airlock Assembly" - src.airlock_type = glass_type + if(do_after(user, 40)) + if(G) + if(G.amount>=1) + user << "\blue You installed glass windows the airlock assembly!" + G.use(1) + src.glass = 1 + src.name = "Near finished Window Airlock Assembly" + src.airlock_type = glass_type else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 ) playsound(src.loc, 'Screwdriver.ogg', 100, 1) var/turf/T = get_turf(user) diff --git a/code/game/objects/items/weapons/mops_cleaners.dm b/code/game/objects/items/weapons/mops_cleaners.dm index db2191537b9..153a079b71d 100644 --- a/code/game/objects/items/weapons/mops_cleaners.dm +++ b/code/game/objects/items/weapons/mops_cleaners.dm @@ -430,14 +430,16 @@ obj/item/weapon/mop/proc/clean(turf/simulated/A as turf) for(var/mob/O in viewers(user, null)) O.show_message("\red [user] begins to clean \the [A]", 1) sleep(40) - clean(A) + if(A) + clean(A) user << "\blue You have finished mopping!" mopcount++ else if (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay) || istype(A, /obj/effect/rune)) for(var/mob/O in viewers(user, null)) O.show_message("\red [user] begins to clean \the [get_turf(A)]", 1) sleep(40) - clean(get_turf(A)) + if(A) + clean(get_turf(A)) user << "\blue You have finished mopping!" mopcount++ diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/stacks/glass.dm index 38370bf098d..39881da11e2 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -190,7 +190,14 @@ SHARDS ..() if ( istype(W, /obj/item/weapon/weldingtool) && W:welding ) W:eyecheck(user) - new /obj/item/stack/sheet/glass( user.loc ) + var/obj/item/stack/sheet/glass/NG = new (user.loc) + for (var/obj/item/stack/sheet/glass/G in user.loc) + if(G==NG) + continue + if(G.amount>=G.max_amount) + continue + G.attackby(NG, user) + usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets." //SN src = null del(src) return @@ -211,6 +218,4 @@ SHARDS affecting.take_damage(5, 0) H.UpdateDamageIcon() H.updatehealth() - ..() - - //&& H.wear_suit.body_parts_covered&FEET))) \ No newline at end of file + ..() \ No newline at end of file diff --git a/code/game/turf.dm b/code/game/turf.dm index 2294d2a21bd..9d34b05b5fd 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -394,11 +394,11 @@ user << "\blue Now disassembling the outer wall plating." playsound(src.loc, 'Welder.ogg', 100, 1) sleep(100) - if (istype(src, /turf/simulated/wall)) + if (W && istype(src, /turf/simulated/wall)) if ((get_turf(user) == T && user.equipped() == W)) user << "\blue You disassembled the outer wall plating." dismantle_wall() - W:welding = 1 + W:welding = 1 else user << "\blue You need more welding fuel to complete this task." return @@ -429,7 +429,7 @@ user << "\blue Now disassembling the outer wall plating." playsound(src.loc, 'Welder.ogg', 100, 1) sleep(60) - if (istype(src, /turf/simulated/wall)) + if (W && istype(src, /turf/simulated/wall)) if ((get_turf(user) == T && user.equipped() == W)) user << "\blue You disassembled the outer wall plating." dismantle_wall() @@ -441,10 +441,11 @@ var/turf/T = user.loc user << "\blue Now drilling through wall." sleep(60) - if ((user.loc == T && user.equipped() == W)) - dismantle_wall(1) - for(var/mob/O in viewers(user, 5)) - O.show_message(text("\blue The wall was drilled apart by []!", user), 1, text("\red You hear metal being drilled appart."), 2) + if (W && istype(src, /turf/simulated/wall)) + if ((user.loc == T && user.equipped() == W)) + dismantle_wall(1) + for(var/mob/O in viewers(user, 5)) + O.show_message(text("\blue The wall was drilled apart by []!", user), 1, text("\red You hear metal being drilled appart."), 2) return else if(istype(W, /obj/item/weapon/melee/energy/blade)) @@ -453,13 +454,14 @@ W:spark_system.start() playsound(src.loc, "sparks", 50, 1) sleep(70) - if ((user.loc == T && user.equipped() == W)) - W:spark_system.start() - playsound(src.loc, "sparks", 50, 1) - playsound(src.loc, 'blade1.ogg', 50, 1) - dismantle_wall(1) - for(var/mob/O in viewers(user, 5)) - O.show_message(text("\blue The wall was sliced apart by []!", user), 1, text("\red You hear metal being sliced and sparks flying."), 2) + if (W && istype(src, /turf/simulated/wall)) + if ((user.loc == T && user.equipped() == W)) + W:spark_system.start() + playsound(src.loc, "sparks", 50, 1) + playsound(src.loc, 'blade1.ogg', 50, 1) + dismantle_wall(1) + for(var/mob/O in viewers(user, 5)) + O.show_message(text("\blue The wall was sliced apart by []!", user), 1, text("\red You hear metal being sliced and sparks flying."), 2) return else if(istype(W,/obj/item/apc_frame))