diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index b695f77e4fa..b2faad41626 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -296,11 +296,10 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. spawn (0) target_tile.hotspot_expose(temperature, 400) for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve var/turf/T = get_turf(F) - T.ReplaceWithMineralWall("plasma") + T.ChangeTurf(/turf/simulated/wall/mineral/plasma/) del (F) - for(var/turf/simulated/wall/mineral/W in range(3,src)) - if(mineral == "plasma") - W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame + for(var/turf/simulated/wall/mineral/plasma/W in range(3,src)) + W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame for(var/obj/machinery/door/airlock/plasma/D in range(3,src)) D.ignite(temperature/4) new/obj/structure/door_assembly/door_assembly_0( src.loc ) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index fc67a6111a7..ed905898557 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -146,7 +146,7 @@ if(!mineral || mineral == "metal") T.ChangeTurf(/turf/simulated/wall) else - T.ReplaceWithMineralWall(mineral) + T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]")) del(src) if( istype(W, /obj/item/weapon/weldingtool) ) @@ -156,7 +156,7 @@ if(!mineral) T.ChangeTurf(/turf/simulated/wall) else - T.ReplaceWithMineralWall(mineral) + 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) @@ -169,7 +169,7 @@ if(!mineral) T.ChangeTurf(/turf/simulated/wall) else - T.ReplaceWithMineralWall(mineral) + T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]")) if(mineral != "plasma") T = get_turf(src) T.attackby(W,user) @@ -181,7 +181,7 @@ if(!mineral) T.ChangeTurf(/turf/simulated/wall) else - T.ReplaceWithMineralWall(mineral) + T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]")) T = get_turf(src) T.attackby(W,user) del(src) @@ -191,7 +191,7 @@ if(!mineral) T.ChangeTurf(/turf/simulated/wall) else - T.ReplaceWithMineralWall(mineral) + T.ChangeTurf(text2path("/turf/simulated/wall/mineral/[mineral]")) if(mineral != "plasma") T = get_turf(src) T.attackby(W,user) @@ -308,9 +308,8 @@ active = 1 for(var/mob/living/L in range(3,src)) L.apply_effect(12,IRRADIATE,0) - for(var/turf/simulated/wall/mineral/T in range(3,src)) - if(T.mineral == "uranium") - T.radiate() + for(var/turf/simulated/wall/mineral/uranium/T in range(3,src)) + T.radiate() last_event = world.time active = null return diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index a71b6104f6e..9e735b16cca 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -139,7 +139,7 @@ S.use(2) user << "\blue You added the plating!" var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("gold") + Tsrc.ChangeTurf(/turf/simulated/wall/mineral/gold) for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 for(var/turf/simulated/wall/mineral/X in Tsrc.loc) @@ -162,7 +162,7 @@ S.use(2) user << "\blue You added the plating!" var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("silver") + Tsrc.ChangeTurf(/turf/simulated/wall/mineral/silver) for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 for(var/turf/simulated/wall/mineral/X in Tsrc.loc) @@ -185,7 +185,7 @@ S.use(2) user << "\blue You added the plating!" var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("diamond") + Tsrc.ChangeTurf(/turf/simulated/wall/mineral/diamond) for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 for(var/turf/simulated/wall/mineral/X in Tsrc.loc) @@ -208,7 +208,7 @@ S.use(2) user << "\blue You added the plating!" var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("uranium") + Tsrc.ChangeTurf(/turf/simulated/wall/mineral/uranium) for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 for(var/turf/simulated/wall/mineral/X in Tsrc.loc) @@ -231,7 +231,7 @@ S.use(2) user << "\blue You added the plating!" var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("plasma") + Tsrc.ChangeTurf(/turf/simulated/wall/mineral/plasma) for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 for(var/turf/simulated/wall/mineral/X in Tsrc.loc) @@ -254,7 +254,7 @@ S.use(2) user << "\blue You added the plating!" var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("clown") + Tsrc.ChangeTurf(/turf/simulated/wall/mineral/clown) for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 for(var/turf/simulated/wall/mineral/X in Tsrc.loc) @@ -277,7 +277,7 @@ S.use(2) user << "\blue You added the plating!" var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("sandstone") + Tsrc.ChangeTurf(/turf/simulated/wall/mineral/sandstone) for(var/obj/machinery/atmospherics/pipe/P in Tsrc) P.layer = 1 for(var/turf/simulated/wall/mineral/X in Tsrc.loc) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 5e45ddcd049..1cff3ce6419 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -122,7 +122,7 @@ /turf/simulated/wall/examine() set src in oview(1) - usr << "It looks like a regular wall." + usr << "[desc]." return /turf/simulated/wall/ex_act(severity) diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index a0b09923f6e..4ffd724712b 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -5,91 +5,93 @@ var/last_event = 0 var/active = null -/turf/simulated/wall/mineral/New() - switch(mineral) - if("gold") - name = "gold wall" - desc = "A wall with gold plating. Swag!" - icon_state = "gold0" - walltype = "gold" -// var/electro = 1 -// var/shocked = null - if("silver") - name = "silver wall" - desc = "A wall with silver plating. Shiny!" - icon_state = "silver0" - walltype = "silver" -// var/electro = 0.75 -// var/shocked = null - if("diamond") - name = "diamond wall" - desc = "A wall with diamond plating. You monster." - icon_state = "diamond0" - walltype = "diamond" - if("uranium") - name = "uranium wall" - desc = "A wall with uranium plating. This is probably a bad idea." - icon_state = "uranium0" - walltype = "uranium" - if("plasma") - name = "plasma wall" - desc = "A wall with plasma plating. This is definately a bad idea." - icon_state = "plasma0" - walltype = "plasma" - if("clown") - name = "bananium wall" - desc = "A wall with bananium plating. Honk!" - icon_state = "clown0" - walltype = "clown" - if("sandstone") - name = "sandstone wall" - desc = "A wall with sandstone plating." - icon_state = "sandstone0" - walltype = "sandstone" - ..() +/turf/simulated/wall/mineral/gold + name = "gold wall" + desc = "A wall with gold plating. Swag!" + icon_state = "gold0" + walltype = "gold" + mineral = "gold" + //var/electro = 1 + //var/shocked = null -/turf/simulated/wall/mineral/proc/radiate() +/turf/simulated/wall/mineral/silver + name = "silver wall" + desc = "A wall with silver plating. Shiny!" + icon_state = "silver0" + walltype = "silver" + //var/electro = 0.75 + //var/shocked = null + +/turf/simulated/wall/mineral/diamond + name = "diamond wall" + desc = "A wall with diamond plating. You monster." + icon_state = "diamond0" + walltype = "diamond" + mineral = "diamond" + +/turf/simulated/wall/mineral/clown + name = "bananium wall" + desc = "A wall with bananium plating. Honk!" + icon_state = "clown0" + walltype = "clown" + mineral = "clown" + +/turf/simulated/wall/mineral/sandstone + name = "sandstone wall" + desc = "A wall with sandstone plating." + icon_state = "sandstone0" + walltype = "sandstone" + mineral = "sandstone" + +/turf/simulated/wall/mineral/uranium + name = "uranium wall" + desc = "A wall with uranium plating. This is probably a bad idea." + icon_state = "uranium0" + walltype = "uranium" + mineral = "uranium" + +/turf/simulated/wall/mineral/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/T in range(3,src)) - if(T.mineral == "uranium") - T.radiate() + for(var/turf/simulated/wall/mineral/uranium/T in range(3,src)) + T.radiate() last_event = world.time active = null return return -/*/turf/simulated/wall/mineral/proc/shock() - if (electrocute_mob(user, C, src)) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - return 1 - else - return 0 - */ - -/turf/simulated/wall/mineral/attack_hand(mob/user as mob) - if(mineral == "uranium") - radiate() +/turf/simulated/wall/mineral/uranium/attack_hand(mob/user as mob) + radiate() ..() -/turf/simulated/wall/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob) - if((mineral == "plasma") && W) - if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite - ignite(is_hot(W)) - return - if(mineral == "uranium") - radiate() +/turf/simulated/wall/mineral/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob) + radiate() + +/turf/simulated/wall/mineral/uranium/Bumped(AM as mob|obj) + radiate() + ..() + +/turf/simulated/wall/mineral/plasma + name = "plasma wall" + desc = "A wall with plasma plating. This is definately a bad idea." + icon_state = "plasma0" + walltype = "plasma" + mineral = "plasma" + +/turf/simulated/wall/mineral/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite + ignite(is_hot(W)) + return + // if((mineral == "gold") || (mineral == "silver")) // if(shocked) // shock() ..() -/turf/simulated/wall/mineral/proc/PlasmaBurn(temperature) +/turf/simulated/wall/mineral/plasma/proc/PlasmaBurn(temperature) spawn(2) new /obj/structure/girder(src) src.ChangeTurf(/turf/simulated/floor) @@ -104,33 +106,34 @@ spawn (0) target_tile.hotspot_expose(temperature, 400) for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve var/turf/T = get_turf(F) - T.ReplaceWithMineralWall("plasma") + T.ChangeTurf(/turf/simulated/wall/mineral/plasma/) del (F) - for(var/turf/simulated/wall/mineral/W in range(3,src)) - if(mineral == "plasma") - W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame + for(var/turf/simulated/wall/mineral/plasma/W in range(3,src)) + W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame for(var/obj/machinery/door/airlock/plasma/D in range(3,src)) D.ignite(temperature/4) -/turf/simulated/wall/mineral/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)//Doesn't fucking work because walls don't interact with air :( - if(mineral == "plasma") - if(exposed_temperature > 300) - PlasmaBurn(exposed_temperature) +/turf/simulated/wall/mineral/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)//Doesn't fucking work because walls don't interact with air :( + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) -/turf/simulated/wall/mineral/proc/ignite(exposed_temperature) - if(mineral == "plasma") - if(exposed_temperature > 300) - PlasmaBurn(exposed_temperature) +/turf/simulated/wall/mineral/plasma/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) -/turf/simulated/wall/mineral/Bumped(AM as mob|obj) - if(mineral == "uranium") - radiate() +/turf/simulated/wall/mineral/plasma/bullet_act(var/obj/item/projectile/Proj) + if(istype(Proj,/obj/item/projectile/beam)) + PlasmaBurn(2500) + else if(istype(Proj,/obj/item/projectile/ion)) + PlasmaBurn(500) ..() -/turf/simulated/wall/mineral/bullet_act(var/obj/item/projectile/Proj) - if(mineral == "plasma") - if(istype(Proj,/obj/item/projectile/beam)) - PlasmaBurn(2500) - else if(istype(Proj,/obj/item/projectile/ion)) - PlasmaBurn(500) - ..() \ No newline at end of file +/*/turf/simulated/wall/mineral/proc/shock() + if (electrocute_mob(user, C, src)) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + return 1 + else + return 0 + */ \ No newline at end of file diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 686b1322291..5024aee2c82 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -217,9 +217,8 @@ var/old_lumcount = lighting_lumcount - initial(lighting_lumcount) - if(N in typesof(/turf/simulated)) + if(N in typesof(/turf/simulated/floor)) var/turf/simulated/W = new N( locate(src.x, src.y, src.z) ) - W.Assimilate_Air() W.lighting_lumcount += old_lumcount @@ -234,7 +233,6 @@ return W else var/turf/W = new N( locate(src.x, src.y, src.z) ) - W.lighting_lumcount += old_lumcount if(old_lumcount != W.lighting_lumcount) W.lighting_changed = 1 @@ -272,31 +270,10 @@ air.toxins = (atox/max(turf_count,1)) air.temperature = (atemp/max(turf_count,1))//Trace gases can get bant -/turf/proc/ReplaceWithFloor() - return - /turf/proc/ReplaceWithLattice() src.ChangeTurf(/turf/space) new /obj/structure/lattice( locate(src.x, src.y, src.z) ) -/turf/proc/ReplaceWithMineralWall(var/ore) - var/old_icon = icon_state - - var/old_lumcount = lighting_lumcount - initial(lighting_lumcount) - var/turf/simulated/wall/mineral/S = new /turf/simulated/wall/mineral( locate(src.x, src.y, src.z) ) - S.lighting_lumcount += old_lumcount - if(old_lumcount != S.lighting_lumcount) - S.lighting_changed = 1 - lighting_controller.changed_turfs += S - - S.icon_old = old_icon - S.mineral = ore - S.New()//Hackish as fuck, but what can you do? -Sieve //build it into the goddamn new() call up there ^ ~Carn - //e.g. new(turf/loc, mineral) - S.levelupdate() - return S - - /turf/proc/kill_creatures(mob/U = null)//Will kill people/creatures and damage mechs./N //Useful to batch-add creatures to the list. for(var/mob/living/M in src) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 4a004149cd8..52e077f5eea 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1524,16 +1524,21 @@ if(target) for (var/path in paths) for (var/i = 0; i < number; i++) - var/atom/O = new path(target) - if(O) - O.dir = obj_dir - if(obj_name) - O.name = obj_name - if(istype(O,/mob)) - var/mob/M = O - M.real_name = obj_name - - + if(path in typesof(/turf)) + var/turf/O = target + var/turf/N = O.ChangeTurf(path) + if(N) + if(obj_name) + N.name = obj_name + else + var/atom/O = new path(target) + if(O) + O.dir = obj_dir + if(obj_name) + O.name = obj_name + if(istype(O,/mob)) + var/mob/M = O + M.real_name = obj_name if (number == 1) log_admin("[key_name(usr)] created a [english_list(paths)]") diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 7e28043c2ac..2d992fede69 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -171,6 +171,8 @@ spreadChance = 0 spread = 0 +/* +commented out in r5061, I left it because of the shroom thingies /turf/simulated/mineral/ReplaceWithFloor() if(!icon_old) icon_old = icon_state @@ -197,7 +199,7 @@ W.fullUpdateMineralOverlays() W.levelupdate() return W - +*/ /turf/simulated/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -248,7 +250,8 @@ new /obj/item/weapon/ore/diamond(src) if (src.mineralName == "Clown") new /obj/item/weapon/ore/clown(src) - ReplaceWithFloor() + var/turf/simulated/floor/plating/airless/asteroid/N = ChangeTurf(/turf/simulated/floor/plating/airless/asteroid) + N.fullUpdateMineralOverlays() return /*