From a80dfada2198889b68f666f35df655f776368a6e Mon Sep 17 00:00:00 2001 From: Dap Date: Fri, 23 Aug 2019 12:38:07 -0600 Subject: [PATCH] [WIP] Plasmaglass Tables! ## About The Pull Request Hey hey people, now you can have pink tables. The scientists on SS13 have really out done themselves today. So far it drops regular glass shards, but tg already has plasma glass shards that I'll try to port once I get around to it. ## Why It's Good For The Game New thing for people to make, basically a stronger table, but it still breaks when a player stands on it. ## Changelog :cl: add: Plasmaglass tables /:cl: --- code/game/objects/structures/table_frames.dm | 8 ++ code/game/objects/structures/tables_racks.dm | 77 ++++++++++++++++++ .../smooth_structures/plasmaglass_table.dmi | Bin 0 -> 2363 bytes 3 files changed, 85 insertions(+) create mode 100644 icons/obj/smooth_structures/plasmaglass_table.dmi diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index e979d4f18e..226d279288 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -100,6 +100,14 @@ to_chat(user, "You start adding [B] to [src]...") if(do_after(user, 20, target = src) && B.use(1)) make_new_table(/obj/structure/table/bronze) + else if(istype(I, /obj/item/stack/sheet/plasmaglass)) + var/obj/item/stack/sheet/plasmaglass/G = I + if(G.get_amount() < 1) + to_chat(user, "You need one plasmaglass sheet to do this!") + return + to_chat(user, "You start adding [G] to [src]...") + if(do_after(user, 20, target = src) && G.use(1)) + make_new_table(/obj/structure/table/plasmaglass) else return ..() diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 8c29c1b2c5..af2461c7ec 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -258,6 +258,83 @@ for(var/obj/item/shard/S in debris) S.color = NARSIE_WINDOW_COLOUR +/* + * Plasmaglass tables + */ +/obj/structure/table/plasmaglass + name = "plasmaglass table" + desc = "A glasstable, but pink. What will Nanotrasen design next with plasma?" + icon = 'icons/obj/smooth_structures/plasmaglass_table.dmi' + icon_state = "plasmaglass_table" + buildstack = /obj/item/stack/sheet/plasmaglass + canSmoothWith = null + max_integrity = 270 + resistance_flags = ACID_PROOF + armor = list("melee" = 10, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) + var/list/debris = list() + +/obj/structure/table/plasmaglass/New() + . = ..() + debris += new frame + debris += new /obj/item/shard + +/obj/structure/table/plasmaglass/Destroy() + QDEL_LIST(debris) + . = ..() + +/obj/structure/table/plasmaglass/Crossed(atom/movable/AM) + . = ..() + if(flags_1 & NODECONSTRUCT_1) + return + if(!isliving(AM)) + return + // Don't break if they're just flying past + if(AM.throwing) + addtimer(CALLBACK(src, .proc/throw_check, AM), 5) + else + check_break(AM) + +/obj/structure/table/plasmaglass/proc/throw_check(mob/living/M) + if(M.loc == get_turf(src)) + check_break(M) + +/obj/structure/table/plasmaglass/proc/check_break(mob/living/M) + if(M.has_gravity() && M.mob_size > MOB_SIZE_SMALL && !(M.movement_type & FLYING)) + table_shatter(M) + +/obj/structure/table/plasmaglass/proc/table_shatter(mob/living/L) + visible_message("[src] breaks!", + "You hear breaking glass.") + var/turf/T = get_turf(src) + playsound(T, "shatter", 50, 1) + for(var/I in debris) + var/atom/movable/AM = I + AM.forceMove(T) + debris -= AM + if(istype(AM, /obj/item/shard)) + AM.throw_impact(L) + L.Knockdown(100) + qdel(src) + +/obj/structure/table/plasmaglass/deconstruct(disassembled = TRUE, wrench_disassembly = 0) + if(!(flags_1 & NODECONSTRUCT_1)) + if(disassembled) + ..() + return + else + var/turf/T = get_turf(src) + playsound(T, "shatter", 50, 1) + for(var/X in debris) + var/atom/movable/AM = X + AM.forceMove(T) + debris -= AM + qdel(src) + +/obj/structure/table/plasmaglass/narsie_act() + color = NARSIE_WINDOW_COLOUR + for(var/obj/item/shard/S in debris) + S.color = NARSIE_WINDOW_COLOUR + /* * Wooden tables */ diff --git a/icons/obj/smooth_structures/plasmaglass_table.dmi b/icons/obj/smooth_structures/plasmaglass_table.dmi new file mode 100644 index 0000000000000000000000000000000000000000..808e79aa43b1397c854a4afb8b9b5115ade72e4b GIT binary patch literal 2363 zcmZvedpy(oAIHDnZM0d-OvRDQrXg}C96GjXXE7lmmy^2^l{-13Op`X(9U^y=OQ|VD z2$|HvNiK)v5_OP>+;ehSXU_Tk{`&p?_`F|_*Zci=eExVp-tXt_r1^@uc z!km0csGOYx7Zt|DZeIX*%iN!sw}(9QpFTd#N!YV7~dl-5HamC6gPDc*~C=`(8-!YuHMz ziC#;dZhZ|wAsy+Zr#en1cLm0a1&hVV zVFnPA^(2~f|GFty_(h+^Jij~ZcysJtLy(H(wr9R8+IhAJ_*)KW~d_v{Jl+ z5&Z&=%o`ku`F=|<5>wP{Y@J9cZk4+xQNK<%R@&W9_wC;Isg<#7^|s(%*|R>`#Yc3hA3M^N(Pl&-*=Xkrs_xq3yel@^i(dzTz(Lr$=#f#P4(#y9)$IUXQ1q zPFVR|H~7K_hEvdnIcjR1NA!V^2oN(1LJG|GA{unI3jxSi08@s9CGq?)RFcb4TZEN) zZFVm;*mQ2%I+VcHGSoA)(qb8Q93iB&%w8qv8Oj;oRQv({smPJmGGP>U_3_;1P-8mO zFTOvW!GMl0WiR1qO>1$gIe&S`_Apq7=T0OIAz^dx7Z)pkGSNHs%gBhnuC8Jk$DX}a z(1QTEL?TZN2K!g$o^^JLU52x8-XnNt9t1lt~V;#CKCo4-fJVOz%&KP zb)VI~!-C3X(;-Ni?r&Fh&9dU&YXq+w&XG3+NuCJVfM;#SAn=>=^}t<7i(@M?-YIH}~vDp9Bmn;ox`PDw+#g)A(*ebU?`hGE#e)%)uxsj6K5oLlHU zm7e{S;I1;d6e?+0s6DeRUIE%lzD<6;yf6$qX4cs2Ah7bU|hvdTCl%w2zV=kzZPfErpZBd{f78<^GxN=%v_3hCFTaa>YWtzlw!j%!%1*q!;31I z5<7-@XvbWtL^6MXHvYeQh$(00Tl8pFfz4eP!EJwHP?D7f2-};Wfl)(dT^A>*DVKzl zXT~TV!QxM(axL$wdt~N7%gwE)PHB86`}2%QNkZa`J;XlA~DJayNfX}ZK;7}n=t9JaV&l4?#&o4D{XvD?$zH3y-~bFq%c!on9q%?c%N~F zpn!mswGFydi8pxq-*=?FJJ}9|_VA|2#C3}wjh$RwE*vu>_S-@+wzCLGuzU)<+J?w0 zD#EGl73=q}{j@e_TQVKL*3{k*`|Elh5J^&jRYE}UFdF@jxQblVmtnc$J3?bGevk~R z)+HrV7_)1}8KS?lR_QDzl`-Yg>~@2RC3;AIoUJ{a>xVa{#qp^|LDwFNMn4Iilj|#^ zYeLrP?eCz*h*2npWX4G)qL}LEIO#o}(&q56-f&qo1|pYdED1r7hU0{!kB!4xJ^5EP zAbPmsj6a+H7!_A9%*)O#yJKP%5;H9i