mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-01-17 04:24:44 +00:00
- Changed mineral walls, they have their own type by mineral instead of a variable - Now you can spawn the different mineral walls with the game panel - Fixed the examining in walls, they will now show the text on the 'desc' var There are still some stuff out there with mineral walls, ugly chunks of code that does the same thing, two vars that have the same value and stuff like that. All of that will be purged, but, as always, to be continued~ git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5061 316c924e-a436-60f5-8080-3fe189b3f50e
317 lines
8.7 KiB
Plaintext
317 lines
8.7 KiB
Plaintext
/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"
|
|
icon_state = ""
|
|
mineral = "gold"
|
|
|
|
/obj/structure/falsewall/silver
|
|
name = "silver wall"
|
|
desc = "A wall with silver plating. Shiny"
|
|
icon_state = ""
|
|
mineral = "silver"
|
|
|
|
/obj/structure/falsewall/diamond
|
|
name = "diamond wall"
|
|
desc = "A wall with diamond plating. You monster"
|
|
icon_state = ""
|
|
mineral = "diamond"
|
|
|
|
/obj/structure/falsewall/uranium
|
|
name = "uranium wall"
|
|
desc = "A wall with uranium plating. This is probably a bad idea"
|
|
icon_state = ""
|
|
mineral = "uranium"
|
|
var/active = null
|
|
var/last_event = 0
|
|
|
|
/obj/structure/falsewall/plasma
|
|
name = "plasma wall"
|
|
desc = "A wall with plasma plating. This is definately a bad idea"
|
|
icon_state = ""
|
|
mineral = "plasma"
|
|
|
|
//-----------wtf?-----------start
|
|
/obj/structure/falsewall/bananium
|
|
name = "bananium wall"
|
|
desc = "A wall with bananium plating. Honk"
|
|
icon_state = ""
|
|
|
|
/obj/structure/falsewall/clown
|
|
mineral = "clown"
|
|
|
|
/obj/structure/falsewall/sand
|
|
name = "sandstone wall"
|
|
desc = "A wall with sandstone plating."
|
|
icon_state = ""
|
|
|
|
/obj/structure/falsewall/sandstone
|
|
mineral = "sandstone"
|
|
//------------wtf?------------end
|
|
|
|
/obj/structure/falserwall
|
|
name = "r wall"
|
|
desc = "A huge chunk of reinforced metal used to seperate rooms."
|
|
icon = 'icons/turf/walls.dmi'
|
|
icon_state = "r_wall"
|
|
density = 1
|
|
opacity = 1
|
|
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
|
|
icon_state = "[mineral]fwall_open"
|
|
flick("[mineral]fwall_opening", src)
|
|
sleep(15)
|
|
src.density = 0
|
|
SetOpacity(0)
|
|
else
|
|
flick("[mineral]fwall_closing", src)
|
|
icon_state = "[mineral]0"
|
|
density = 1
|
|
sleep(15)
|
|
SetOpacity(1)
|
|
src.relativewall()
|
|
|
|
/obj/structure/falsewall/uranium/attack_hand(mob/user as mob)
|
|
radiate()
|
|
..()
|
|
|
|
/obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open
|
|
..()
|
|
if(density)
|
|
icon_state = "[mineral]0"
|
|
src.relativewall()
|
|
else
|
|
icon_state = "[mineral]fwall_open"
|
|
|
|
/obj/structure/falsewall/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(density)
|
|
if(istype(W, /obj/item/weapon/screwdriver))
|
|
var/turf/T = get_turf(src)
|
|
user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.")
|
|
if(!mineral || mineral == "metal")
|
|
T.ChangeTurf(/turf/simulated/wall)
|
|
else
|
|
T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]"))
|
|
del(src)
|
|
|
|
if( istype(W, /obj/item/weapon/weldingtool) )
|
|
var/obj/item/weapon/weldingtool/WT = W
|
|
if( WT:welding )
|
|
var/turf/T = get_turf(src)
|
|
if(!mineral)
|
|
T.ChangeTurf(/turf/simulated/wall)
|
|
else
|
|
T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]"))
|
|
if(mineral != "plasma")//Stupid shit keeps me from pushing the attackby() to plasma walls -Sieve
|
|
T = get_turf(src)
|
|
T.attackby(W,user)
|
|
del(src)
|
|
else
|
|
user << "\blue You can't reach, close it first!"
|
|
|
|
if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
|
|
var/turf/T = get_turf(src)
|
|
if(!mineral)
|
|
T.ChangeTurf(/turf/simulated/wall)
|
|
else
|
|
T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]"))
|
|
if(mineral != "plasma")
|
|
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)
|
|
if(!mineral)
|
|
T.ChangeTurf(/turf/simulated/wall)
|
|
else
|
|
T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]"))
|
|
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)
|
|
if(!mineral)
|
|
T.ChangeTurf(/turf/simulated/wall)
|
|
else
|
|
T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]"))
|
|
if(mineral != "plasma")
|
|
T = get_turf(src)
|
|
T.attackby(W,user)
|
|
del(src)
|
|
/*
|
|
|
|
var/turf/T = get_turf(user)
|
|
user << "\blue Now adding plating..."
|
|
sleep(40)
|
|
if (get_turf(user) == T)
|
|
user << "\blue You added the plating!"
|
|
var/turf/Tsrc = get_turf(src)
|
|
Tsrc.ReplaceWithWall()
|
|
|
|
*/
|
|
|
|
/obj/structure/falsewall/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
radiate()
|
|
..()
|
|
|
|
/obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open
|
|
..()
|
|
if(density)
|
|
icon_state = "[mineral]0"
|
|
src.relativewall()
|
|
else
|
|
icon_state = "[mineral]fwall_open"
|
|
|
|
/obj/structure/falserwall/
|
|
anchored = 1
|
|
|
|
attack_hand(mob/user as mob)
|
|
if(density)
|
|
// Open wall
|
|
icon_state = "frwall_open"
|
|
flick("frwall_opening", src)
|
|
sleep(15)
|
|
density = 0
|
|
SetOpacity(0)
|
|
else
|
|
icon_state = "r_wall"
|
|
flick("frwall_closing", src)
|
|
density = 1
|
|
sleep(15)
|
|
SetOpacity(1)
|
|
relativewall()
|
|
|
|
/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
|
|
|
|
|
|
|
|
/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.ChangeTurf(/turf/simulated/wall) //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.ChangeTurf(/turf/simulated/wall)
|
|
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.ChangeTurf(/turf/simulated/wall)
|
|
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.ChangeTurf(/turf/simulated/wall)
|
|
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.ChangeTurf(/turf/simulated/wall)
|
|
T = get_turf(src)
|
|
T.attackby(W,user)
|
|
del(src)
|
|
|
|
/obj/structure/falsewall/uranium/proc/radiate()
|
|
if(!active)
|
|
if(world.time > last_event+15)
|
|
active = 1
|
|
for(var/mob/living/L in range(3,src))
|
|
L.apply_effect(12,IRRADIATE,0)
|
|
for(var/turf/simulated/wall/mineral/uranium/T in range(3,src))
|
|
T.radiate()
|
|
last_event = world.time
|
|
active = null
|
|
return
|
|
return
|