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))