diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index ee3fd2400cd..7c0fe9edba7 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -1,8 +1,28 @@ /obj/structure/falsewall + name = "wall" anchored = 1 icon = 'icons/turf/walls.dmi' var/mineral = "metal" +/obj/structure/falsewall/New() + relativewall_neighbours() + ..() + +/obj/structure/falsewall/Del() + + var/temploc = src.loc + + spawn(10) + for(var/turf/simulated/wall/W in range(temploc,1)) + W.relativewall() + + for(var/obj/structure/falsewall/W in range(temploc,1)) + W.relativewall() + + for(var/obj/structure/falserwall/W in range(temploc,1)) + W.relativewall() + ..() + /obj/structure/falsewall/gold name = "gold wall" desc = "A wall with gold plating. Swag" @@ -63,6 +83,33 @@ anchored = 1 var/mineral = "metal" +/obj/structure/falserwall/New() + relativewall_neighbours() + ..() + +/obj/structure/falsewall/relativewall() + + if(!density) + icon_state = "[mineral]fwall_open" + return + + var/junction = 0 //will be used to determine from which side the wall is connected to other walls + + for(var/turf/simulated/wall/W in orange(src,1)) + if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls + if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve + junction |= get_dir(src,W) + for(var/obj/structure/falsewall/W in orange(src,1)) + if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls + if(src.mineral == W.mineral) + junction |= get_dir(src,W) + for(var/obj/structure/falserwall/W in orange(src,1)) + if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls + if(src.mineral == W.mineral) + junction |= get_dir(src,W) + icon_state = "[mineral][junction]" + return + /obj/structure/falsewall/attack_hand(mob/user as mob) if(density) // Open wall @@ -192,44 +239,68 @@ SetOpacity(1) relativewall() +/obj/structure/falserwall/relativewall() - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/screwdriver)) - var/turf/T = get_turf(src) - user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the wall.") - T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you). - del(src) + if(!density) + icon_state = "frwall_open" + return - if( istype(W, /obj/item/weapon/weldingtool) ) - var/obj/item/weapon/weldingtool/WT = W - if( WT.remove_fuel(0,user) ) - var/turf/T = get_turf(src) - T.ReplaceWithWall() - T = get_turf(src) - T.attackby(W,user) - del(src) + var/junction = 0 //will be used to determine from which side the wall is connected to other walls - else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) ) + for(var/turf/simulated/wall/W in orange(src,1)) + if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls + if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve + junction |= get_dir(src,W) + for(var/obj/structure/falsewall/W in orange(src,1)) + if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls + if(src.mineral == W.mineral) + junction |= get_dir(src,W) + for(var/obj/structure/falserwall/W in orange(src,1)) + if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls + if(src.mineral == W.mineral) + junction |= get_dir(src,W) + icon_state = "rwall[junction]" + return + + + +/obj/structure/falserwall/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/screwdriver)) + var/turf/T = get_turf(src) + user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the wall.") + T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you). + del(src) + + if( istype(W, /obj/item/weapon/weldingtool) ) + var/obj/item/weapon/weldingtool/WT = W + if( WT.remove_fuel(0,user) ) var/turf/T = get_turf(src) T.ReplaceWithWall() T = get_turf(src) T.attackby(W,user) del(src) - //DRILLING - else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) - var/turf/T = get_turf(src) - T.ReplaceWithWall() - T = get_turf(src) - T.attackby(W,user) - del(src) + else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) ) + var/turf/T = get_turf(src) + T.ReplaceWithWall() + T = get_turf(src) + T.attackby(W,user) + del(src) - else if( istype(W, /obj/item/weapon/melee/energy/blade) ) - var/turf/T = get_turf(src) - T.ReplaceWithWall() - T = get_turf(src) - T.attackby(W,user) - del(src) + //DRILLING + else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + var/turf/T = get_turf(src) + T.ReplaceWithWall() + T = get_turf(src) + T.attackby(W,user) + del(src) + + else if( istype(W, /obj/item/weapon/melee/energy/blade) ) + var/turf/T = get_turf(src) + T.ReplaceWithWall() + T = get_turf(src) + T.attackby(W,user) + del(src) /obj/structure/falsewall/uranium/proc/radiate() if(!active) diff --git a/code/game/smoothwall.dm b/code/game/smoothwall.dm index cf72f1a8a07..1ec091ed6c6 100644 --- a/code/game/smoothwall.dm +++ b/code/game/smoothwall.dm @@ -91,14 +91,6 @@ relativewall_neighbours() ..() -/obj/structure/falsewall/New() - relativewall_neighbours() - ..() - -/obj/structure/falserwall/New() - relativewall_neighbours() - ..() - /*/turf/simulated/shuttle/wall/New() spawn(20) //testing if this will make /obj/machinery/shuttle and /door count - It does, it stays. @@ -129,21 +121,6 @@ ..() -/obj/structure/falsewall/Del() - - var/temploc = src.loc - - spawn(10) - for(var/turf/simulated/wall/W in range(temploc,1)) - W.relativewall() - - for(var/obj/structure/falsewall/W in range(temploc,1)) - W.relativewall() - - for(var/obj/structure/falserwall/W in range(temploc,1)) - W.relativewall() - ..() - /*/turf/simulated/shuttle/wall/Del() var/temploc = src.loc @@ -174,50 +151,4 @@ junction |= get_dir(src,W) var/turf/simulated/wall/wall = src wall.icon_state = "[wall.walltype][junction]" - return - -/obj/structure/falsewall/relativewall() - - if(!density) - icon_state = "[mineral]fwall_open" - return - - var/junction = 0 //will be used to determine from which side the wall is connected to other walls - - for(var/turf/simulated/wall/W in orange(src,1)) - if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls - if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve - junction |= get_dir(src,W) - for(var/obj/structure/falsewall/W in orange(src,1)) - if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls - if(src.mineral == W.mineral) - junction |= get_dir(src,W) - for(var/obj/structure/falserwall/W in orange(src,1)) - if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls - if(src.mineral == W.mineral) - junction |= get_dir(src,W) - icon_state = "[mineral][junction]" - return - -/obj/structure/falserwall/relativewall() - - if(!density) - icon_state = "frwall_open" - return - - var/junction = 0 //will be used to determine from which side the wall is connected to other walls - - for(var/turf/simulated/wall/W in orange(src,1)) - if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls - if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve - junction |= get_dir(src,W) - for(var/obj/structure/falsewall/W in orange(src,1)) - if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls - if(src.mineral == W.mineral) - junction |= get_dir(src,W) - for(var/obj/structure/falserwall/W in orange(src,1)) - if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls - if(src.mineral == W.mineral) - junction |= get_dir(src,W) - icon_state = "rwall[junction]" - return + return \ No newline at end of file