From 3769ce09983e4389aee158b7c029504f9f4ec8b8 Mon Sep 17 00:00:00 2001 From: "quartz235@gmail.com" Date: Fri, 6 Jan 2012 21:45:49 +0000 Subject: [PATCH] - Welding shards while on top of a stack of glass (with less than 50 sheets) now adds the produced glass to the stack. - Some runtime fixes git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2919 316c924e-a436-60f5-8080-3fe189b3f50e --- code/datums/spell.dm | 3 + code/game/dna.dm | 171 +++++++++--------- code/game/gamemodes/wizard/spells.dm | 8 +- code/game/machinery/morgue.dm | 7 +- code/game/objects/devices/PDA/PDA.dm | 2 +- code/game/objects/door_assembly.dm | 16 +- .../objects/items/weapons/mops_cleaners.dm | 6 +- code/game/objects/stacks/glass.dm | 9 +- code/game/turf.dm | 30 +-- 9 files changed, 141 insertions(+), 111 deletions(-) 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 7d35d7aa18b..36c2650196f 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -1029,95 +1029,104 @@ 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 - src.buffer1owner = src.connected.occupant.real_name - src.buffer1label = "Unique Identifier" - src.buffer1type = "ui" - dopage(src,"buffermenu") + if(src.connected.occupant) + 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 + src.buffer1owner = src.connected.occupant.real_name + 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 - src.buffer1owner = src.connected.occupant.real_name - src.buffer1label = "Unique Identifier & Unique Enzymes" - src.buffer1type = "ui" - src.buffer1iue = 1 - dopage(src,"buffermenu") + if(src.connected.occupant) + src.buffer1 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer1owner = src.connected.occupant.name + else + src.buffer1owner = src.connected.occupant.real_name + 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 - src.buffer2owner = src.connected.occupant.real_name - src.buffer2label = "Unique Identifier & Unique Enzymes" - src.buffer2type = "ui" - src.buffer2iue = 1 - dopage(src,"buffermenu") + if(src.connected.occupant) + src.buffer2 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer2owner = src.connected.occupant.name + else + src.buffer2owner = src.connected.occupant.real_name + 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 - src.buffer3owner = src.connected.occupant.real_name - src.buffer3label = "Unique Identifier & Unique Enzymes" - src.buffer3type = "ui" - src.buffer3iue = 1 - dopage(src,"buffermenu") + if(src.connected.occupant) + src.buffer3 = src.connected.occupant.dna.uni_identity + if (!istype(src.connected.occupant,/mob/living/carbon/human)) + src.buffer3owner = src.connected.occupant.name + else + src.buffer3owner = src.connected.occupant.real_name + 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 - src.buffer2owner = src.connected.occupant.real_name - src.buffer2label = "Unique Identifier" - src.buffer2type = "ui" - dopage(src,"buffermenu") + if(src.connected.occupant) + 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 + src.buffer2owner = src.connected.occupant.real_name + 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 - src.buffer3owner = src.connected.occupant.real_name - src.buffer3label = "Unique Identifier" - src.buffer3type = "ui" - dopage(src,"buffermenu") + if(src.connected.occupant) + 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 + src.buffer3owner = src.connected.occupant.real_name + 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 - src.buffer1owner = src.connected.occupant.real_name - src.buffer1label = "Structural Enzymes" - src.buffer1type = "se" - dopage(src,"buffermenu") + if(src.connected.occupant) + 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 + src.buffer1owner = src.connected.occupant.real_name + 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 - src.buffer2owner = src.connected.occupant.real_name - src.buffer2label = "Structural Enzymes" - src.buffer2type = "se" - dopage(src,"buffermenu") + if(src.connected.occupant) + 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 + src.buffer2owner = src.connected.occupant.real_name + 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 - src.buffer3owner = src.connected.occupant.real_name - src.buffer3label = "Structural Enzymes" - src.buffer3type = "se" - dopage(src,"buffermenu") + if(src.connected.occupant) + 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 + src.buffer3owner = src.connected.occupant.real_name + src.buffer3label = "Structural Enzymes" + src.buffer3type = "se" + dopage(src,"buffermenu") if (href_list["b1clear"]) src.buffer1 = null src.buffer1owner = null diff --git a/code/game/gamemodes/wizard/spells.dm b/code/game/gamemodes/wizard/spells.dm index eb5c1fd98ac..a51b02b4db3 100644 --- a/code/game/gamemodes/wizard/spells.dm +++ b/code/game/gamemodes/wizard/spells.dm @@ -375,9 +375,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..c90de554ced 100644 --- a/code/game/machinery/morgue.dm +++ b/code/game/machinery/morgue.dm @@ -262,9 +262,10 @@ 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") + 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)) diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm index 8cdce400ddf..bf3bd82327e 100644 --- a/code/game/objects/devices/PDA/PDA.dm +++ b/code/game/objects/devices/PDA/PDA.dm @@ -517,7 +517,7 @@ playsound(P.loc, 'twobeep.ogg', 50, 1) - log_pda("[usr] (PDA: [src.owner]) sent \"[t]\" to [P.owner]") + log_pda("[usr] (PDA: [src.name]) sent \"[t]\" to [P.name]") if("Send Honk")//Honk virus diff --git a/code/game/objects/door_assembly.dm b/code/game/objects/door_assembly.dm index 757fec3f52c..650a68567c4 100644 --- a/code/game/objects/door_assembly.dm +++ b/code/game/objects/door_assembly.dm @@ -237,13 +237,15 @@ 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 = /obj/machinery/door/airlock/glass - src.base_icon_state = "door_as_g" //this will be applied to the icon_state with the correct state number at the proc's end. + 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 = /obj/machinery/door/airlock/glass + src.base_icon_state = "door_as_g" //this will be applied to the icon_state with the correct state number at the proc's end. 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 a3ac792f579..6cc3f93332f 100644 --- a/code/game/objects/items/weapons/mops_cleaners.dm +++ b/code/game/objects/items/weapons/mops_cleaners.dm @@ -365,14 +365,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 2696f01b235..a814e25841d 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -148,7 +148,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 diff --git a/code/game/turf.dm b/code/game/turf.dm index 795d316aee2..ca3c5098bfb 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -386,11 +386,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 @@ -421,7 +421,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() @@ -433,10 +433,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)) @@ -445,13 +446,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))