diff --git a/code/game/gamemodes/clock_cult/clock_structures.dm b/code/game/gamemodes/clock_cult/clock_structures.dm index 937dbccf4df..790c7063d5a 100644 --- a/code/game/gamemodes/clock_cult/clock_structures.dm +++ b/code/game/gamemodes/clock_cult/clock_structures.dm @@ -617,6 +617,9 @@ icon_state = "clockwork_floor" layer = TURF_LAYER +/obj/effect/clockwork/overlay/floor/bloodcult //this is used by BLOOD CULT, it shouldn't use such a path... + icon_state = "cult" + /obj/effect/clockwork/general_marker name = "general marker" desc = "Some big guy. For you." diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index e22fb4fa86e..f1498e119aa 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -89,3 +89,11 @@ desc = "A wall layered with impenetrable sheets of paper." icon = 'icons/turf/walls.dmi' icon_state = "paperwall" + +/turf/closed/indestructible/necropolis + name = "necropolis wall" + desc = "A seemingly impenetrable wall." + icon = 'icons/turf/walls.dmi' + icon_state = "necro" + explosion_block = 50 + baseturf = /turf/closed/indestructible/necropolis diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 10851dcd9dd..0a0f55b71f8 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -18,6 +18,19 @@ if(istype(AM)) playsound(src,sound,50,1) +/turf/open/indestructible/necropolis + name = "necropolis floor" + desc = "It's regarding you suspiciously." + icon = 'icons/turf/floors.dmi' + icon_state = "necro1" + baseturf = /turf/open/indestructible/necropolis + +/turf/open/indestructible/necropolis/New() + ..() + if(prob(12)) + icon_state = "necro[rand(2,3)]" + + /turf/open/Initalize_Atmos(times_fired) excited = 0 update_visuals() diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm new file mode 100644 index 00000000000..d633a040611 --- /dev/null +++ b/code/game/turfs/simulated/chasm.dm @@ -0,0 +1,117 @@ + +//////////////CHASM////////////////// + +/turf/open/chasm + name = "chasm" + desc = "Watch your step." + baseturf = /turf/open/chasm + smooth = SMOOTH_TRUE | SMOOTH_BORDER + icon = 'icons/turf/floors/Chasms.dmi' + icon_state = "smooth" + var/drop_x = 1 + var/drop_y = 1 + var/drop_z = 1 + +/turf/open/chasm/Entered(atom/movable/AM) + START_PROCESSING(SSobj, src) + drop_stuff(AM) + +/turf/open/chasm/process() + if(!drop_stuff()) + STOP_PROCESSING(SSobj, src) + +/turf/open/chasm/proc/drop_stuff(AM) + . = 0 + var/thing_to_check = src + if(AM) + thing_to_check = list(AM) + for(var/thing in thing_to_check) + if(droppable(thing)) + . = 1 + addtimer(src, "drop", 0, FALSE, thing) + +/turf/open/chasm/proc/droppable(atom/movable/AM) + if(!isliving(AM) && !isobj(AM)) + return 0 + if(istype(AM, /obj/singularity) || istype(AM, /obj/item/projectile) || AM.throwing) + return 0 + if(istype(AM, /obj/effect/portal)) + //Portals aren't affected by gravity. Probably. + return 0 + //Flies right over the chasm + if(isanimal(AM)) + var/mob/living/simple_animal/SA = AM + if(SA.flying) + return 0 + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + if(istype(H.belt, /obj/item/device/wormhole_jaunter)) + var/obj/item/device/wormhole_jaunter/J = H.belt + //To freak out any bystanders + visible_message("[H] falls into [src]!") + J.chasm_react(H) + return 0 + if(H.dna && H.dna.species && (FLYING in H.dna.species.specflags)) + return 0 + return 1 + +/turf/open/chasm/proc/drop(atom/movable/AM) + //Make sure the item is still there after our sleep + if(!AM || qdeleted(AM)) + return + + var/turf/T = locate(drop_x, drop_y, drop_z) + if(T) + AM.visible_message("[AM] falls into [src]!", "GAH! Ah... where are you?") + T.visible_message("[AM] falls from above!") + AM.forceMove(T) + if(isliving(AM)) + var/mob/living/L = AM + L.Weaken(5) + L.adjustBruteLoss(30) + + +/turf/open/chasm/straight_down/New() + ..() + drop_x = x + drop_y = y + if(z+1 <= world.maxz) + drop_z = z+1 + + +/turf/open/chasm/straight_down/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + planetary_atmos = TRUE + baseturf = /turf/open/chasm/straight_down/lava_land_surface + +/turf/open/chasm/straight_down/lava_land_surface/drop(atom/movable/AM) + //Make sure the item is still there after our sleep + if(!AM || qdeleted(AM)) + return + AM.visible_message("[AM] falls into [src]!", "You stumble and stare into an abyss before you. It stares back, and you fall \ + into the enveloping dark.") + if(isliving(AM)) + var/mob/living/L = AM + L.notransform = TRUE + L.Stun(10) + L.resting = TRUE + animate(AM, transform = matrix() - matrix(), alpha = 0, color = rgb(0, 0, 0), time = 10) + for(var/i in 1 to 5) + //Make sure the item is still there after our sleep + if(!AM || qdeleted(AM)) + return + AM.pixel_y-- + sleep(2) + + //Make sure the item is still there after our sleep + if(!AM || qdeleted(AM)) + return + + if(iscyborg(AM)) + var/mob/living/silicon/robot/S = AM + qdel(S.mmi) + + qdel(AM) + +/turf/open/chasm/straight_down/lava_land_surface/normal_air + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm index 70c49521b35..98b11b30cb1 100644 --- a/code/game/turfs/simulated/floor/mineral_floor.dm +++ b/code/game/turfs/simulated/floor/mineral_floor.dm @@ -218,14 +218,3 @@ /turf/open/floor/mineral/abductor/make_plating() return ChangeTurf(/turf/open/floor/plating/abductor2) - - -/turf/open/floor/plating/abductor2 - name = "alien plating" - icon_state = "alienplating" - -/turf/open/floor/plating/abductor2/break_tile() - return //unbreakable - -/turf/open/floor/plating/abductor2/burn_tile() - return //unburnable \ No newline at end of file diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index a1d8ea6dfdf..768c05efd59 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -26,82 +26,23 @@ icon_state = "gcircuit" floor_tile = /obj/item/stack/tile/plasteel -/turf/open/floor/plating/beach - name = "beach" - icon = 'icons/misc/beach.dmi' - flags = NONE -/turf/open/floor/plating/beach/ex_act(severity, target) - contents_explosion(severity, target) +/turf/open/floor/pod + name = "pod floor" + icon_state = "podfloor" + icon_regular_floor = "podfloor" + floor_tile = /obj/item/stack/tile/pod -/turf/open/floor/plating/beach/sand - name = "sand" - desc = "Surf's up." - icon_state = "sand" - baseturf = /turf/open/floor/plating/beach/sand +/turf/open/floor/pod/light + icon_state = "podfloor_light" + icon_regular_floor = "podfloor_light" + floor_tile = /obj/item/stack/tile/pod/light -/turf/open/floor/plating/beach/coastline_t - name = "coastline" - desc = "Tide's high tonight. Charge your batons." - icon_state = "sandwater_t" - baseturf = /turf/open/floor/plating/beach/coastline_t +/turf/open/floor/pod/dark + icon_state = "podfloor_dark" + icon_regular_floor = "podfloor_dark" + floor_tile = /obj/item/stack/tile/pod/dark -/turf/open/floor/plating/beach/coastline_b - name = "coastline" - icon_state = "sandwater_b" - baseturf = /turf/open/floor/plating/beach/coastline_b - -/turf/open/floor/plating/beach/water - name = "water" - desc = "You get the feeling that nobody's bothered to actually make this water functional..." - icon_state = "water" - baseturf = /turf/open/floor/plating/beach/water - -/turf/open/floor/plating/ironsand - name = "iron sand" - desc = "Like sand, but more metal." - -/turf/open/floor/plating/ironsand/New() - ..() - icon_state = "ironsand[rand(1,15)]" - -/turf/open/floor/plating/ironsand/burn_tile() - return - -/turf/open/floor/plating/ice - name = "ice sheet" - desc = "A sheet of solid ice. Looks slippery." - icon = 'icons/turf/snow.dmi' - icon_state = "ice" - temperature = 180 - baseturf = /turf/open/floor/plating/ice - slowdown = 1 - wet = TURF_WET_PERMAFROST - -/turf/open/floor/plating/ice/colder - temperature = 140 - -/turf/open/floor/plating/ice/temperate - temperature = 255.37 - -/turf/open/floor/plating/ice/break_tile() - return - -/turf/open/floor/plating/ice/burn_tile() - return - -/turf/open/floor/plating/snowed - name = "snowed-over plating" - desc = "A section of plating covered in a light layer of snow." - icon = 'icons/turf/snow.dmi' - icon_state = "snowplating" - temperature = 180 - -/turf/open/floor/plating/snowed/colder - temperature = 140 - -/turf/open/floor/plating/snowed/temperatre - temperature = 255.37 /turf/open/floor/noslip name = "high-traction floor" @@ -203,3 +144,18 @@ var/previouscolor = color color = "#960000" animate(src, color = previouscolor, time = 8) + + +/turf/open/floor/bluespace + slowdown = -1 + icon_state = "bluespace" + desc = "Through a series of micro-teleports these tiles let people move at incredible speeds" + floor_tile = /obj/item/stack/tile/bluespace + + +/turf/open/floor/sepia + slowdown = 2 + icon_state = "sepia" + desc = "Time seems to flow very slowly around these tiles" + floor_tile = /obj/item/stack/tile/sepia + diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm index 06ba6397f7b..793661bc795 100644 --- a/code/game/turfs/simulated/floor/plasteel_floor.dm +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -11,6 +11,9 @@ icon_state = icon_regular_floor +/turf/open/floor/plasteel/airless + initial_gas_mix = "TEMP=2.7" + /turf/open/floor/plasteel/black icon_state = "dark" @@ -302,6 +305,18 @@ /turf/open/floor/plasteel/shuttle/purple icon_state = "shuttlefloor5" +/turf/open/floor/plasteel/airless/shuttle + icon_state = "shuttlefloor" +/turf/open/floor/plasteel/airless/shuttle/red + name = "Brig floor" + icon_state = "shuttlefloor4" +/turf/open/floor/plasteel/airless/shuttle/yellow + icon_state = "shuttlefloor2" +/turf/open/floor/plasteel/airless/shuttle/white + icon_state = "shuttlefloor3" +/turf/open/floor/plasteel/airless/shuttle/purple + icon_state = "shuttlefloor5" + /turf/open/floor/plasteel/asteroid icon_state = "asteroidfloor" @@ -441,7 +456,9 @@ /turf/open/floor/plasteel/sandeffect icon_state = "sandeffect" + /turf/open/floor/plasteel/sandeffect/warning icon_state = "warningsandeffect" + /turf/open/floor/plasteel/sandeffect/warning/corner - icon_state = "warningsandeffectcorners" \ No newline at end of file + icon_state = "warningsandeffectcorners" diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index a5d13a2f3d5..4d97a997bbf 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -67,264 +67,3 @@ icon_state = icon_plating burnt = 0 broken = 0 - -/turf/open/floor/plating/airless - icon_state = "plating" - initial_gas_mix = "TEMP=2.7" - -/turf/open/floor/engine - name = "reinforced floor" - icon_state = "engine" - thermal_conductivity = 0.025 - heat_capacity = INFINITY - floor_tile = /obj/item/stack/rods - -/turf/open/floor/engine/airless - initial_gas_mix = "TEMP=2.7" - -/turf/open/floor/engine/break_tile() - return //unbreakable - -/turf/open/floor/engine/burn_tile() - return //unburnable - -/turf/open/floor/engine/make_plating(force = 0) - if(force) - ..() - return //unplateable - -/turf/open/floor/engine/attackby(obj/item/weapon/C, mob/user, params) - if(!C || !user) - return - if(istype(C, /obj/item/weapon/wrench)) - user << "You begin removing rods..." - playsound(src, 'sound/items/Ratchet.ogg', 80, 1) - if(do_after(user, 30/C.toolspeed, target = src)) - if(!istype(src, /turf/open/floor/engine)) - return - new /obj/item/stack/rods(src, 2) - ChangeTurf(/turf/open/floor/plating) - return - - -/turf/open/floor/engine/ex_act(severity,target) - switch(severity) - if(1) - if(prob(80)) - ReplaceWithLattice() - else if(prob(50)) - qdel(src) - else - make_plating(1) - if(2) - if(prob(50)) - make_plating(1) - -//air filled floors; used in atmos pressure chambers - -/turf/open/floor/engine/n2o - name = "n2o floor" - initial_gas_mix = "n2o=6000;TEMP=293.15" - -/turf/open/floor/engine/co2 - name = "co2 floor" - initial_gas_mix = "co2=50000;TEMP=293.15" - -/turf/open/floor/engine/plasma - name = "plasma floor" - initial_gas_mix = "plasma=70000;TEMP=293.15" - -/turf/open/floor/engine/o2 - name = "o2 floor" - initial_gas_mix = "o2=100000;TEMP=293.15" - -/turf/open/floor/engine/n2 - name = "n2 floor" - initial_gas_mix = "n2=100000;TEMP=293.15" - -/turf/open/floor/engine/air - name = "air floor" - initial_gas_mix = "o2=2644;n2=10580;TEMP=293.15" - - - -/turf/open/floor/engine/cult - name = "engraved floor" - icon_state = "plating" - var/obj/effect/clockwork/overlay/floor/bloodcult/realappearence - -/turf/open/floor/engine/cult/New() - ..() - PoolOrNew(/obj/effect/overlay/temp/cult/turf/floor, src) - realappearence = PoolOrNew(/obj/effect/clockwork/overlay/floor/bloodcult, src) - realappearence.linked = src - -/obj/effect/clockwork/overlay/floor/bloodcult - icon_state = "cult" - -/turf/open/floor/engine/cult/Destroy() - be_removed() - return ..() - -/turf/open/floor/engine/cult/ChangeTurf(path, defer_change = FALSE) - if(path != type) - be_removed() - return ..() - -/turf/open/floor/engine/cult/proc/be_removed() - qdel(realappearence) - realappearence = null - -/turf/open/floor/engine/cult/narsie_act() - return - -/turf/open/floor/engine/cult/ratvar_act() - ..() - if(istype(src, /turf/open/floor/engine/cult)) //if we haven't changed type - var/previouscolor = color - color = "#FAE48C" - animate(src, color = previouscolor, time = 8) - -/turf/open/floor/engine/singularity_pull(S, current_size) - if(current_size >= STAGE_FIVE) - if(floor_tile) - if(prob(30)) - PoolOrNew(floor_tile, src) - make_plating() - else if(prob(30)) - ReplaceWithLattice() - -/turf/open/floor/engine/cult/airless - initial_gas_mix = "TEMP=2.7" - -/turf/open/floor/engine/vacuum - name = "vacuum floor" - icon_state = "engine" - initial_gas_mix = "TEMP=2.7" - -/turf/open/floor/plasteel/airless - initial_gas_mix = "TEMP=2.7" - -// ONE DAY WE WILL HAVE SUBTYPES -/turf/open/floor/plasteel/airless/shuttle - icon_state = "shuttlefloor" -/turf/open/floor/plasteel/airless/shuttle/red - name = "Brig floor" - icon_state = "shuttlefloor4" -/turf/open/floor/plasteel/airless/shuttle/yellow - icon_state = "shuttlefloor2" -/turf/open/floor/plasteel/airless/shuttle/white - icon_state = "shuttlefloor3" -/turf/open/floor/plasteel/airless/shuttle/purple - icon_state = "shuttlefloor5" - -/turf/open/floor/plating/abductor - name = "alien floor" - icon_state = "alienpod1" - -/turf/open/floor/plating/abductor/New() - ..() - icon_state = "alienpod[rand(1,9)]" - -///LAVA - -/turf/open/floor/plating/lava - name = "lava" - icon_state = "lava" - baseturf = /turf/open/floor/plating/lava //lava all the way down - slowdown = 2 - luminosity = 1 - -/turf/open/floor/plating/lava/ex_act() - return - -/turf/open/floor/plating/lava/airless - initial_gas_mix = "TEMP=2.7" - -/turf/open/floor/plating/lava/Entered(atom/movable/AM) - if(burn_stuff(AM)) - START_PROCESSING(SSobj, src) - -/turf/open/floor/plating/lava/hitby(atom/movable/AM) - if(burn_stuff(AM)) - START_PROCESSING(SSobj, src) - -/turf/open/floor/plating/lava/process() - if(!burn_stuff()) - STOP_PROCESSING(SSobj, src) - -/turf/open/floor/plating/lava/make_plating() - return - -/turf/open/floor/plating/lava/GetHeatCapacity() - . = 700000 - -/turf/open/floor/plating/lava/GetTemperature() - . = 5000 - -/turf/open/floor/plating/lava/TakeTemperature(temp) - -/turf/open/floor/plating/lava/proc/burn_stuff(AM) - . = 0 - var/thing_to_check = src - if (AM) - thing_to_check = list(AM) - for(var/thing in thing_to_check) - if(isobj(thing)) - var/obj/O = thing - if((O.resistance_flags & (LAVA_PROOF|ON_FIRE|INDESTRUCTIBLE)) || O.throwing) - continue - . = 1 - if(!(O.resistance_flags & FLAMMABLE)) - O.resistance_flags |= FLAMMABLE //Even fireproof things burn up in lava - O.resistance_flags = ~FIRE_PROOF - if(O.armor["fire"] > 50) //obj with 100% fire armor still get slowly burned away. - O.armor["fire"] = 50 - O.fire_act(10000, 1000) - - - else if (isliving(thing)) - . = 1 - var/mob/living/L = thing - if("lava" in L.weather_immunities) - continue - if(L.buckled) - if(isobj(L.buckled)) - var/obj/O = L.buckled - if(O.resistance_flags & LAVA_PROOF) - continue - if(isliving(L.buckled)) //Goliath riding - var/mob/living/live = L.buckled - if("lava" in live.weather_immunities) - continue - - L.adjustFireLoss(20) - if(L) //mobs turning into object corpses could get deleted here. - L.adjust_fire_stacks(20) - L.IgniteMob() - - -/turf/open/floor/plating/lava/attackby(obj/item/C, mob/user, params) //Lava isn't a good foundation to build on - return - -/turf/open/floor/plating/lava/break_tile() - return - -/turf/open/floor/plating/lava/burn_tile() - return - -/turf/open/floor/plating/lava/smooth - name = "lava" - baseturf = /turf/open/floor/plating/lava/smooth - icon = 'icons/turf/floors/lava.dmi' - icon_state = "unsmooth" - smooth = SMOOTH_MORE | SMOOTH_BORDER - canSmoothWith = list(/turf/open/floor/plating/lava/smooth) - -/turf/open/floor/plating/lava/smooth/airless - initial_gas_mix = "TEMP=2.7" - -/turf/open/floor/plating/astplate - icon_state = "asteroidplating" -/turf/open/floor/plating/airless/astplate - icon_state = "asteroidplating" diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm new file mode 100644 index 00000000000..23ada23098e --- /dev/null +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -0,0 +1,305 @@ + + + +/**********************Asteroid**************************/ + +/turf/open/floor/plating/asteroid //floor piece + name = "asteroid sand" + baseturf = /turf/open/floor/plating/asteroid + icon = 'icons/turf/floors.dmi' + icon_state = "asteroid" + icon_plating = "asteroid" + var/environment_type = "asteroid" + var/turf_type = /turf/open/floor/plating/asteroid //Because caves do whacky shit to revert to normal + var/dug = 0 //0 = has not yet been dug, 1 = has already been dug + var/sand_type = /obj/item/weapon/ore/glass + var/floor_variance = 20 //probability floor has a different icon state + +/turf/open/floor/plating/asteroid/New() + var/proper_name = name + ..() + name = proper_name + if(prob(floor_variance)) + icon_state = "[environment_type][rand(0,12)]" + +/turf/open/floor/plating/asteroid/burn_tile() + return + +/turf/open/floor/plating/asteroid/ex_act(severity, target) + contents_explosion(severity, target) + switch(severity) + if(3) + return + if(2) + if(prob(20)) + src.gets_dug() + if(1) + src.gets_dug() + +/turf/open/floor/plating/asteroid/attackby(obj/item/weapon/W, mob/user, params) + //note that this proc does not call ..() + if(!W || !user) + return 0 + var/digging_speed = 0 + if (istype(W, /obj/item/weapon/shovel)) + var/obj/item/weapon/shovel/S = W + digging_speed = S.digspeed + else if (istype(W, /obj/item/weapon/pickaxe)) + var/obj/item/weapon/pickaxe/P = W + digging_speed = P.digspeed + if (digging_speed) + var/turf/T = user.loc + if(!isturf(T)) + return + + if (dug) + user << "This area has already been dug!" + return + + user << "You start digging..." + playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) + + if(do_after(user, digging_speed, target = src)) + if(istype(src, /turf/open/floor/plating/asteroid)) + user << "You dig a hole." + gets_dug() + feedback_add_details("pick_used_mining","[W.type]") + + if(istype(W,/obj/item/weapon/storage/bag/ore)) + var/obj/item/weapon/storage/bag/ore/S = W + if(S.collection_mode == 1) + for(var/obj/item/weapon/ore/O in src.contents) + O.attackby(W,user) + return + + if(istype(W, /obj/item/stack/tile)) + var/obj/item/stack/tile/Z = W + if(!Z.use(1)) + return + var/turf/open/floor/T = ChangeTurf(Z.turf_type) + if(istype(Z,/obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow + var/obj/item/stack/tile/light/L = Z + var/turf/open/floor/light/F = T + F.state = L.state + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + +/turf/open/floor/plating/asteroid/proc/gets_dug() + if(dug) + return + for(var/i in 1 to 5) + new sand_type(src) + dug = 1 + icon_plating = "[environment_type]_dug" + icon_state = "[environment_type]_dug" + slowdown = 0 + return + +/turf/open/floor/plating/asteroid/singularity_act() + return + +/turf/open/floor/plating/asteroid/singularity_pull(S, current_size) + return + + +/turf/open/floor/plating/asteroid/basalt + name = "volcanic floor" + baseturf = /turf/open/floor/plating/asteroid/basalt + icon = 'icons/turf/floors.dmi' + icon_state = "basalt" + icon_plating = "basalt" + environment_type = "basalt" + sand_type = /obj/item/weapon/ore/glass/basalt + floor_variance = 15 + +/turf/open/floor/plating/asteroid/basalt/lava //lava underneath + baseturf = /turf/open/floor/plating/lava/smooth + +/turf/open/floor/plating/asteroid/basalt/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/plating/asteroid/basalt/New() + ..() + switch(icon_state) + if("basalt1", "basalt2", "basalt3") //5 and 9 are too dark to glow and make the amount of glows in tunnels too high + SetLuminosity(1, 1) //this is basically a 3.75% chance that a basalt floor glows + +/turf/open/floor/plating/asteroid/basalt/gets_dug() + if(!dug) + SetLuminosity(0) + ..() + + +///////Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground. + +/turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + planetary_atmos = TRUE + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + + + + +/turf/open/floor/plating/asteroid/airless + initial_gas_mix = "TEMP=2.7" + turf_type = /turf/open/floor/plating/asteroid/airless + + + + +/turf/open/floor/plating/asteroid/airless/cave + var/length = 100 + var/mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3) + var/flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash = 2) + var/sanity = 1 + var/forward_cave_dir = 1 + var/backward_cave_dir = 2 + var/going_backwards = TRUE + var/has_data = FALSE + var/data_having_type = /turf/open/floor/plating/asteroid/airless/cave/has_data + turf_type = /turf/open/floor/plating/asteroid/airless + +/turf/open/floor/plating/asteroid/airless/cave/has_data //subtype for producing a tunnel with given data + has_data = TRUE + +/turf/open/floor/plating/asteroid/airless/cave/volcanic + mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 10, /mob/living/simple_animal/hostile/asteroid/goliath/beast = 50, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher = 40, /mob/living/simple_animal/hostile/asteroid/hivelord/legion = 30, + /mob/living/simple_animal/hostile/spawner/lavaland = 2, /mob/living/simple_animal/hostile/spawner/lavaland/goliath = 3, /mob/living/simple_animal/hostile/spawner/lavaland/legion = 3, \ + /mob/living/simple_animal/hostile/megafauna/dragon = 2, /mob/living/simple_animal/hostile/megafauna/bubblegum = 2, /mob/living/simple_animal/hostile/megafauna/colossus = 2) + + data_having_type = /turf/open/floor/plating/asteroid/airless/cave/volcanic/has_data + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + +/turf/open/floor/plating/asteroid/airless/cave/volcanic/has_data //subtype for producing a tunnel with given data + has_data = TRUE + +/turf/open/floor/plating/asteroid/airless/cave/New(loc) + if(!has_data) + produce_tunnel_from_data() + ..() + +/turf/open/floor/plating/asteroid/airless/cave/proc/get_cave_data(set_length, exclude_dir = -1) + // If set_length (arg1) isn't defined, get a random length; otherwise assign our length to the length arg. + if(!set_length) + length = rand(25, 50) + else + length = set_length + + // Get our directiosn + forward_cave_dir = pick(alldirs - exclude_dir) + // Get the opposite direction of our facing direction + backward_cave_dir = angle2dir(dir2angle(forward_cave_dir) + 180) + +/turf/open/floor/plating/asteroid/airless/cave/proc/produce_tunnel_from_data(tunnel_length, excluded_dir = -1) + get_cave_data(tunnel_length, excluded_dir) + // Make our tunnels + make_tunnel(forward_cave_dir) + if(going_backwards) + make_tunnel(backward_cave_dir) + // Kill ourselves by replacing ourselves with a normal floor. + SpawnFloor(src) + +/turf/open/floor/plating/asteroid/airless/cave/proc/make_tunnel(dir) + var/turf/closed/mineral/tunnel = src + var/next_angle = pick(45, -45) + + for(var/i = 0; i < length; i++) + if(!sanity) + break + + var/list/L = list(45) + if(IsOdd(dir2angle(dir))) // We're going at an angle and we want thick angled tunnels. + L += -45 + + // Expand the edges of our tunnel + for(var/edge_angle in L) + var/turf/closed/mineral/edge = get_step(tunnel, angle2dir(dir2angle(dir) + edge_angle)) + if(istype(edge)) + SpawnFloor(edge) + + if(!sanity) + break + + // Move our tunnel forward + tunnel = get_step(tunnel, dir) + + if(istype(tunnel)) + // Small chance to have forks in our tunnel; otherwise dig our tunnel. + if(i > 3 && prob(20)) + var/turf/open/floor/plating/asteroid/airless/cave/C = tunnel.ChangeTurf(data_having_type) + C.going_backwards = FALSE + C.produce_tunnel_from_data(rand(10, 15), dir) + else + SpawnFloor(tunnel) + else //if(!istype(tunnel, src.parent)) // We hit space/normal/wall, stop our tunnel. + break + + // Chance to change our direction left or right. + if(i > 2 && prob(33)) + // We can't go a full loop though + next_angle = -next_angle + setDir(angle2dir(dir2angle(dir) )+ next_angle) + + +/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T) + for(var/S in RANGE_TURFS(1, src)) + var/turf/NT = S + if(!NT || isspaceturf(NT) || istype(NT.loc, /area/mine/explored) || istype(NT.loc, /area/lavaland/surface/outdoors/explored)) + sanity = 0 + break + if(!sanity) + return + SpawnFlora(T) + + SpawnMonster(T) + T.ChangeTurf(turf_type) + +/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T) + if(prob(30)) + if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored)) + return + for(var/mob/living/simple_animal/hostile/H in urange(12,T)) //prevents mob clumps + if(istype(H, /mob/living/simple_animal/hostile/asteroid)) + return + if(ismegafauna(H) && get_dist(src, H) <= 7) + return + if(istype(H, /mob/living/simple_animal/hostile/spawner/lavaland) && get_dist(src, H) <= 3) //prevents tendrils spawning in collapse range + return + var/randumb = pickweight(mob_spawn_list) + new randumb(T) + return + +/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFlora(turf/T) + if(prob(12)) + if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored)) + return + for(var/obj/structure/flora/ash/F in urange(3,T)) //Allows for growing patches, but not ridiculous stacks of flora + return + var/randumb = pickweight(flora_spawn_list) + new randumb(T) + + + +/turf/open/floor/plating/asteroid/snow + name = "snow" + desc = "Looks cold." + icon = 'icons/turf/snow.dmi' + baseturf = /turf/open/floor/plating/asteroid/snow + icon_state = "snow" + icon_plating = "snow" + initial_gas_mix = "TEMP=180" + slowdown = 2 + environment_type = "snow" + sand_type = /obj/item/stack/sheet/mineral/snow + +/turf/open/floor/plating/asteroid/snow/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/plating/asteroid/snow/temperatre + initial_gas_mix = "TEMP=255.37" + +/turf/open/floor/plating/asteroid/snow/atmosphere + initial_gas_mix = "o2=22;n2=82;TEMP=180" + + + diff --git a/code/game/turfs/simulated/floor/plating/lava.dm b/code/game/turfs/simulated/floor/plating/lava.dm new file mode 100644 index 00000000000..fb88aa21225 --- /dev/null +++ b/code/game/turfs/simulated/floor/plating/lava.dm @@ -0,0 +1,103 @@ +///LAVA + +/turf/open/floor/plating/lava + name = "lava" + icon_state = "lava" + baseturf = /turf/open/floor/plating/lava //lava all the way down + slowdown = 2 + luminosity = 1 + +/turf/open/floor/plating/lava/ex_act() + return + +/turf/open/floor/plating/lava/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/plating/lava/Entered(atom/movable/AM) + if(burn_stuff(AM)) + START_PROCESSING(SSobj, src) + +/turf/open/floor/plating/lava/hitby(atom/movable/AM) + if(burn_stuff(AM)) + START_PROCESSING(SSobj, src) + +/turf/open/floor/plating/lava/process() + if(!burn_stuff()) + STOP_PROCESSING(SSobj, src) + +/turf/open/floor/plating/lava/make_plating() + return + +/turf/open/floor/plating/lava/GetHeatCapacity() + . = 700000 + +/turf/open/floor/plating/lava/GetTemperature() + . = 5000 + +/turf/open/floor/plating/lava/TakeTemperature(temp) + +/turf/open/floor/plating/lava/proc/burn_stuff(AM) + . = 0 + var/thing_to_check = src + if (AM) + thing_to_check = list(AM) + for(var/thing in thing_to_check) + if(isobj(thing)) + var/obj/O = thing + if((O.resistance_flags & (LAVA_PROOF|ON_FIRE|INDESTRUCTIBLE)) || O.throwing) + continue + . = 1 + if(!(O.resistance_flags & FLAMMABLE)) + O.resistance_flags |= FLAMMABLE //Even fireproof things burn up in lava + O.resistance_flags = ~FIRE_PROOF + if(O.armor["fire"] > 50) //obj with 100% fire armor still get slowly burned away. + O.armor["fire"] = 50 + O.fire_act(10000, 1000) + + + else if (isliving(thing)) + . = 1 + var/mob/living/L = thing + if("lava" in L.weather_immunities) + continue + if(L.buckled) + if(isobj(L.buckled)) + var/obj/O = L.buckled + if(O.resistance_flags & LAVA_PROOF) + continue + if(isliving(L.buckled)) //Goliath riding + var/mob/living/live = L.buckled + if("lava" in live.weather_immunities) + continue + + L.adjustFireLoss(20) + if(L) //mobs turning into object corpses could get deleted here. + L.adjust_fire_stacks(20) + L.IgniteMob() + + +/turf/open/floor/plating/lava/attackby(obj/item/C, mob/user, params) //Lava isn't a good foundation to build on + return + +/turf/open/floor/plating/lava/break_tile() + return + +/turf/open/floor/plating/lava/burn_tile() + return + +/turf/open/floor/plating/lava/smooth + name = "lava" + baseturf = /turf/open/floor/plating/lava/smooth + icon = 'icons/turf/floors/lava.dmi' + icon_state = "unsmooth" + smooth = SMOOTH_MORE | SMOOTH_BORDER + canSmoothWith = list(/turf/open/floor/plating/lava/smooth) + + +/turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + planetary_atmos = TRUE + baseturf = /turf/open/chasm/straight_down/lava_land_surface + +/turf/open/floor/plating/lava/smooth/airless + initial_gas_mix = "TEMP=2.7" diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm new file mode 100644 index 00000000000..730cc7b0ab6 --- /dev/null +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -0,0 +1,160 @@ + +/turf/open/floor/plating/airless + icon_state = "plating" + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/plating/abductor + name = "alien floor" + icon_state = "alienpod1" + +/turf/open/floor/plating/abductor/New() + ..() + icon_state = "alienpod[rand(1,9)]" + + +/turf/open/floor/plating/abductor2 + name = "alien plating" + icon_state = "alienplating" + +/turf/open/floor/plating/abductor2/break_tile() + return //unbreakable + +/turf/open/floor/plating/abductor2/burn_tile() + return //unburnable + + +/turf/open/floor/plating/astplate + icon_state = "asteroidplating" + +/turf/open/floor/plating/airless/astplate + icon_state = "asteroidplating" + + +/turf/open/floor/plating/ashplanet + icon = 'icons/turf/mining.dmi' + name = "ash" + icon_state = "ash" + smooth = SMOOTH_MORE|SMOOTH_BORDER + var/smooth_icon = 'icons/turf/floors/ash.dmi' + desc = "The ground is covered in volcanic ash." + baseturf = /turf/open/floor/plating/ashplanet/wateryrock //I assume this will be a chasm eventually, once this becomes an actual surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + planetary_atmos = TRUE + +/turf/open/floor/plating/ashplanet/New() + if(smooth) + pixel_y = -4 + pixel_x = -4 + icon = smooth_icon + ..() + +/turf/open/floor/plating/ashplanet/break_tile() + return + +/turf/open/floor/plating/ashplanet/burn_tile() + return + +/turf/open/floor/plating/ashplanet/ash + canSmoothWith = list(/turf/open/floor/plating/ashplanet/ash, /turf/closed) + layer = HIGH_TURF_LAYER + slowdown = 1 + +/turf/open/floor/plating/ashplanet/rocky + name = "rocky ground" + icon_state = "rockyash" + smooth_icon = 'icons/turf/floors/rocky_ash.dmi' + layer = MID_TURF_LAYER + canSmoothWith = list(/turf/open/floor/plating/ashplanet/rocky, /turf/closed) + +/turf/open/floor/plating/ashplanet/wateryrock + name = "wet rocky ground" + smooth = null + icon_state = "wateryrock" + slowdown = 2 + +/turf/open/floor/plating/ashplanet/wateryrock/New() + icon_state = "[icon_state][rand(1, 9)]" + ..() + + +/turf/open/floor/plating/beach + name = "beach" + icon = 'icons/misc/beach.dmi' + flags = NONE + +/turf/open/floor/plating/beach/ex_act(severity, target) + contents_explosion(severity, target) + +/turf/open/floor/plating/beach/sand + name = "sand" + desc = "Surf's up." + icon_state = "sand" + baseturf = /turf/open/floor/plating/beach/sand + +/turf/open/floor/plating/beach/coastline_t + name = "coastline" + desc = "Tide's high tonight. Charge your batons." + icon_state = "sandwater_t" + baseturf = /turf/open/floor/plating/beach/coastline_t + +/turf/open/floor/plating/beach/coastline_b + name = "coastline" + icon_state = "sandwater_b" + baseturf = /turf/open/floor/plating/beach/coastline_b + +/turf/open/floor/plating/beach/water + name = "water" + desc = "You get the feeling that nobody's bothered to actually make this water functional..." + icon_state = "water" + baseturf = /turf/open/floor/plating/beach/water + + +/turf/open/floor/plating/ironsand + name = "iron sand" + desc = "Like sand, but more metal." + +/turf/open/floor/plating/ironsand/New() + ..() + icon_state = "ironsand[rand(1,15)]" + +/turf/open/floor/plating/ironsand/burn_tile() + return + + +/turf/open/floor/plating/ice + name = "ice sheet" + desc = "A sheet of solid ice. Looks slippery." + icon = 'icons/turf/snow.dmi' + icon_state = "ice" + temperature = 180 + baseturf = /turf/open/floor/plating/ice + slowdown = 1 + wet = TURF_WET_PERMAFROST + +/turf/open/floor/plating/ice/colder + temperature = 140 + +/turf/open/floor/plating/ice/temperate + temperature = 255.37 + +/turf/open/floor/plating/ice/break_tile() + return + +/turf/open/floor/plating/ice/burn_tile() + return + + +/turf/open/floor/plating/snowed + name = "snowed-over plating" + desc = "A section of plating covered in a light layer of snow." + icon = 'icons/turf/snow.dmi' + icon_state = "snowplating" + temperature = 180 + +/turf/open/floor/plating/snowed/colder + temperature = 140 + +/turf/open/floor/plating/snowed/temperatre + temperature = 255.37 + + diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm new file mode 100644 index 00000000000..9ee7121ff9e --- /dev/null +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -0,0 +1,152 @@ + +/turf/open/floor/engine + name = "reinforced floor" + icon_state = "engine" + thermal_conductivity = 0.025 + heat_capacity = INFINITY + floor_tile = /obj/item/stack/rods + +/turf/open/floor/engine/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/engine/break_tile() + return //unbreakable + +/turf/open/floor/engine/burn_tile() + return //unburnable + +/turf/open/floor/engine/make_plating(force = 0) + if(force) + ..() + return //unplateable + +/turf/open/floor/engine/attackby(obj/item/weapon/C, mob/user, params) + if(!C || !user) + return + if(istype(C, /obj/item/weapon/wrench)) + user << "You begin removing rods..." + playsound(src, 'sound/items/Ratchet.ogg', 80, 1) + if(do_after(user, 30/C.toolspeed, target = src)) + if(!istype(src, /turf/open/floor/engine)) + return + new /obj/item/stack/rods(src, 2) + ChangeTurf(/turf/open/floor/plating) + return + + +/turf/open/floor/engine/ex_act(severity, target) + contents_explosion(severity, target) + switch(severity) + if(1) + ChangeTurf(src.baseturf) + if(2) + if(prob(50)) + ChangeTurf(src.baseturf) + else + return + +/turf/open/floor/engine/ex_act(severity,target) + var/shielded = is_shielded() + contents_explosion(severity, target) + if(severity != 1 && shielded && target != src) + return + if(target == src) + src.ChangeTurf(src.baseturf) + return + switch(severity) + if(1) + if(prob(80)) + ReplaceWithLattice() + else if(prob(50)) + ChangeTurf(src.baseturf) + else + make_plating(1) + if(2) + if(prob(50)) + make_plating(1) + +/turf/open/floor/engine/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + if(floor_tile) + if(prob(30)) + PoolOrNew(floor_tile, src) + make_plating() + else if(prob(30)) + ReplaceWithLattice() + +/turf/open/floor/engine/attack_paw(mob/user) + return src.attack_hand(user) + +/turf/open/floor/engine/attack_hand(mob/user) + user.Move_Pulled(src) + + +//air filled floors; used in atmos pressure chambers + +/turf/open/floor/engine/n2o + name = "n2o floor" + initial_gas_mix = "n2o=6000;TEMP=293.15" + +/turf/open/floor/engine/co2 + name = "co2 floor" + initial_gas_mix = "co2=50000;TEMP=293.15" + +/turf/open/floor/engine/plasma + name = "plasma floor" + initial_gas_mix = "plasma=70000;TEMP=293.15" + +/turf/open/floor/engine/o2 + name = "o2 floor" + initial_gas_mix = "o2=100000;TEMP=293.15" + +/turf/open/floor/engine/n2 + name = "n2 floor" + initial_gas_mix = "n2=100000;TEMP=293.15" + +/turf/open/floor/engine/air + name = "air floor" + initial_gas_mix = "o2=2644;n2=10580;TEMP=293.15" + + + +/turf/open/floor/engine/cult + name = "engraved floor" + icon_state = "plating" + var/obj/effect/clockwork/overlay/floor/bloodcult/realappearence + +/turf/open/floor/engine/cult/New() + ..() + PoolOrNew(/obj/effect/overlay/temp/cult/turf/floor, src) + realappearence = PoolOrNew(/obj/effect/clockwork/overlay/floor/bloodcult, src) + realappearence.linked = src + +/turf/open/floor/engine/cult/Destroy() + be_removed() + return ..() + +/turf/open/floor/engine/cult/ChangeTurf(path, defer_change = FALSE) + if(path != type) + be_removed() + return ..() + +/turf/open/floor/engine/cult/proc/be_removed() + qdel(realappearence) + realappearence = null + +/turf/open/floor/engine/cult/narsie_act() + return + +/turf/open/floor/engine/cult/ratvar_act() + ..() + if(istype(src, /turf/open/floor/engine/cult)) //if we haven't changed type + var/previouscolor = color + color = "#FAE48C" + animate(src, color = previouscolor, time = 8) + +/turf/open/floor/engine/cult/airless + initial_gas_mix = "TEMP=2.7" + + +/turf/open/floor/engine/vacuum + name = "vacuum floor" + initial_gas_mix = "TEMP=2.7" diff --git a/code/modules/mining/mine_turfs.dm b/code/game/turfs/simulated/minerals.dm similarity index 51% rename from code/modules/mining/mine_turfs.dm rename to code/game/turfs/simulated/minerals.dm index ef5da5bb2af..22e87cb6814 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -37,15 +37,82 @@ Spread(T) + +/turf/closed/mineral/attackby(obj/item/weapon/pickaxe/P, mob/user, params) + + if (!user.IsAdvancedToolUser()) + usr << "You don't have the dexterity to do this!" + return + + if (istype(P, /obj/item/weapon/pickaxe)) + var/turf/T = user.loc + if (!isturf(T)) + return + + if(last_act+P.digspeed > world.time)//prevents message spam + return + last_act = world.time + user << "You start picking..." + P.playDigSound() + + if(do_after(user,P.digspeed, target = src)) + if(ismineralturf(src)) + user << "You finish cutting into the rock." + gets_drilled(user) + feedback_add_details("pick_used_mining","[P.type]") + else + return attack_hand(user) + return + +/turf/closed/mineral/proc/gets_drilled() + if (mineralType && (src.mineralAmt > 0) && (src.mineralAmt < 11)) + var/i + for (i=0;i= 2) + gets_drilled() + ..() + +/turf/closed/mineral/attack_alien(mob/living/carbon/alien/M) + M << "You start digging into the rock..." + playsound(src, 'sound/effects/break_stone.ogg', 50, 1) + if(do_after(M,40, target = src)) + M << "You tunnel into the rock." + gets_drilled(M) + +/turf/closed/mineral/Bumped(AM as mob|obj) + ..() + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + var/obj/item/I = H.is_holding_item_of_type(/obj/item/weapon/pickaxe) + if(I) + attackby(I,H) + return + else if(iscyborg(AM)) + var/mob/living/silicon/robot/R = AM + if(istype(R.module_active,/obj/item/weapon/pickaxe)) + src.attackby(R.module_active,R) + return +/* else if(istype(AM,/obj/mecha)) + var/obj/mecha/M = AM + if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/drill)) + src.attackby(M.selected,M) + return*/ +//Aparantly mechs are just TOO COOL to call Bump(), so fuck em (for now) + else + return + /turf/closed/mineral/acid_melt() ChangeTurf(baseturf) -/turf/closed/mineral/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt - baseturf = /turf/open/floor/plating/asteroid/basalt - initial_gas_mix = "o2=14;n2=23;TEMP=300" - /turf/closed/mineral/ex_act(severity, target) ..() switch(severity) @@ -86,6 +153,7 @@ src = M M.levelupdate() + /turf/closed/mineral/random/high_chance icon_state = "rock_highchance" mineralChance = 25 @@ -97,6 +165,18 @@ icon_state = "rock" ..() +/turf/closed/mineral/random/high_chance/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/gold/volcanic = 45, /turf/closed/mineral/titanium/volcanic = 45, + /turf/closed/mineral/silver/volcanic = 50, /turf/closed/mineral/plasma/volcanic = 50, /turf/closed/mineral/bscrystal/volcanic = 20) + + + /turf/closed/mineral/random/low_chance icon_state = "rock_lowchance" mineralChance = 6 @@ -109,48 +189,141 @@ icon_state = "rock" ..() + +/turf/closed/mineral/random/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + mineralChance = 10 + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/volcanic = 5, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 10, /turf/closed/mineral/titanium/volcanic = 11, + /turf/closed/mineral/silver/volcanic = 12, /turf/closed/mineral/plasma/volcanic = 20, /turf/closed/mineral/iron/volcanic = 40, + /turf/closed/mineral/gibtonite/volcanic = 4, /turf/open/floor/plating/asteroid/airless/cave/volcanic = 1, /turf/closed/mineral/bscrystal/volcanic = 1) + +/turf/closed/mineral/random/labormineral + mineralSpawnChanceList = list( + /turf/closed/mineral/iron = 100, /turf/closed/mineral/uranium = 1, /turf/closed/mineral/diamond = 1, + /turf/closed/mineral/gold = 1, /turf/closed/mineral/silver = 1, /turf/closed/mineral/plasma = 1) + icon_state = "rock_labor" + +/turf/closed/mineral/random/labormineral/New() + icon_state = "rock" + ..() + +/turf/closed/mineral/random/labormineral/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + mineralSpawnChanceList = list( + /turf/closed/mineral/iron/volcanic = 100, /turf/closed/mineral/uranium/volcanic = 1, /turf/closed/mineral/diamond/volcanic = 1, + /turf/closed/mineral/gold/volcanic = 1, /turf/closed/mineral/silver/volcanic = 1, /turf/closed/mineral/plasma/volcanic = 1) + + + + /turf/closed/mineral/iron mineralType = /obj/item/weapon/ore/iron spreadChance = 20 spread = 1 scan_state = "rock_Iron" +/turf/closed/mineral/iron/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + /turf/closed/mineral/uranium mineralType = /obj/item/weapon/ore/uranium spreadChance = 5 spread = 1 scan_state = "rock_Uranium" +/turf/closed/mineral/uranium/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + /turf/closed/mineral/diamond mineralType = /obj/item/weapon/ore/diamond spreadChance = 0 spread = 1 scan_state = "rock_Diamond" +/turf/closed/mineral/diamond/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + /turf/closed/mineral/gold mineralType = /obj/item/weapon/ore/gold spreadChance = 5 spread = 1 scan_state = "rock_Gold" +/turf/closed/mineral/gold/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + /turf/closed/mineral/silver mineralType = /obj/item/weapon/ore/silver spreadChance = 5 spread = 1 scan_state = "rock_Silver" +/turf/closed/mineral/silver/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + /turf/closed/mineral/titanium mineralType = /obj/item/weapon/ore/titanium spreadChance = 5 spread = 1 scan_state = "rock_Titanium" +/turf/closed/mineral/titanium/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + /turf/closed/mineral/plasma mineralType = /obj/item/weapon/ore/plasma spreadChance = 8 spread = 1 scan_state = "rock_Plasma" +/turf/closed/mineral/plasma/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + /turf/closed/mineral/clown mineralType = /obj/item/weapon/ore/bananium mineralAmt = 3 @@ -158,6 +331,7 @@ spread = 0 scan_state = "rock_Clown" + /turf/closed/mineral/bscrystal mineralType = /obj/item/weapon/ore/bluespace_crystal mineralAmt = 1 @@ -165,7 +339,42 @@ spread = 0 scan_state = "rock_BScrystal" -////////////////////////////////Gibtonite +/turf/closed/mineral/bscrystal/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt + baseturf = /turf/open/floor/plating/asteroid/basalt + initial_gas_mix = "o2=14;n2=23;TEMP=300" + +/turf/closed/mineral/volcanic/lava_land_surface + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + defer_change = 1 + +/turf/closed/mineral/ash_rock //wall piece + name = "rock" + icon = 'icons/turf/mining.dmi' + smooth_icon = 'icons/turf/walls/rock_wall.dmi' + icon_state = "rock2" + smooth = SMOOTH_MORE|SMOOTH_BORDER + canSmoothWith = list (/turf/closed) + baseturf = /turf/open/floor/plating/ashplanet/wateryrock + initial_gas_mix = "o2=14;n2=23;TEMP=300" + environment_type = "waste" + turf_type = /turf/open/floor/plating/ashplanet/rocky + defer_change = 1 + + +//GIBTONITE + /turf/closed/mineral/gibtonite mineralAmt = 1 spreadChance = 0 @@ -260,523 +469,6 @@ spawn(10) AfterChange() -/turf/closed/mineral/gibtonite/volcanic - initial_gas_mix = "o2=14;n2=23;TEMP=300" - -////////////////////////////////End Gibtonite - -/turf/open/floor/plating/asteroid/airless/cave - var/length = 100 - var/mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3) - var/flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash = 2) - var/sanity = 1 - var/forward_cave_dir = 1 - var/backward_cave_dir = 2 - var/going_backwards = TRUE - var/has_data = FALSE - var/data_having_type = /turf/open/floor/plating/asteroid/airless/cave/has_data - turf_type = /turf/open/floor/plating/asteroid/airless - -/turf/open/floor/plating/asteroid/airless/cave/has_data //subtype for producing a tunnel with given data - has_data = TRUE - -/turf/open/floor/plating/asteroid/airless/cave/volcanic - mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 10, /mob/living/simple_animal/hostile/asteroid/goliath/beast = 50, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher = 40, /mob/living/simple_animal/hostile/asteroid/hivelord/legion = 30, - /mob/living/simple_animal/hostile/spawner/lavaland = 2, /mob/living/simple_animal/hostile/spawner/lavaland/goliath = 3, /mob/living/simple_animal/hostile/spawner/lavaland/legion = 3, \ - /mob/living/simple_animal/hostile/megafauna/dragon = 2, /mob/living/simple_animal/hostile/megafauna/bubblegum = 2, /mob/living/simple_animal/hostile/megafauna/colossus = 2) - - data_having_type = /turf/open/floor/plating/asteroid/airless/cave/volcanic/has_data - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - -/turf/open/floor/plating/asteroid/airless/cave/volcanic/has_data //subtype for producing a tunnel with given data - has_data = TRUE - -/turf/open/floor/plating/asteroid/airless/cave/New(loc) - if(!has_data) - produce_tunnel_from_data() - ..() - -/turf/open/floor/plating/asteroid/airless/cave/proc/get_cave_data(set_length, exclude_dir = -1) - // If set_length (arg1) isn't defined, get a random length; otherwise assign our length to the length arg. - if(!set_length) - length = rand(25, 50) - else - length = set_length - - // Get our directiosn - forward_cave_dir = pick(alldirs - exclude_dir) - // Get the opposite direction of our facing direction - backward_cave_dir = angle2dir(dir2angle(forward_cave_dir) + 180) - -/turf/open/floor/plating/asteroid/airless/cave/proc/produce_tunnel_from_data(tunnel_length, excluded_dir = -1) - get_cave_data(tunnel_length, excluded_dir) - // Make our tunnels - make_tunnel(forward_cave_dir) - if(going_backwards) - make_tunnel(backward_cave_dir) - // Kill ourselves by replacing ourselves with a normal floor. - SpawnFloor(src) - -/turf/open/floor/plating/asteroid/airless/cave/proc/make_tunnel(dir) - var/turf/closed/mineral/tunnel = src - var/next_angle = pick(45, -45) - - for(var/i = 0; i < length; i++) - if(!sanity) - break - - var/list/L = list(45) - if(IsOdd(dir2angle(dir))) // We're going at an angle and we want thick angled tunnels. - L += -45 - - // Expand the edges of our tunnel - for(var/edge_angle in L) - var/turf/closed/mineral/edge = get_step(tunnel, angle2dir(dir2angle(dir) + edge_angle)) - if(istype(edge)) - SpawnFloor(edge) - - if(!sanity) - break - - // Move our tunnel forward - tunnel = get_step(tunnel, dir) - - if(istype(tunnel)) - // Small chance to have forks in our tunnel; otherwise dig our tunnel. - if(i > 3 && prob(20)) - var/turf/open/floor/plating/asteroid/airless/cave/C = tunnel.ChangeTurf(data_having_type) - C.going_backwards = FALSE - C.produce_tunnel_from_data(rand(10, 15), dir) - else - SpawnFloor(tunnel) - else //if(!istype(tunnel, src.parent)) // We hit space/normal/wall, stop our tunnel. - break - - // Chance to change our direction left or right. - if(i > 2 && prob(33)) - // We can't go a full loop though - next_angle = -next_angle - setDir(angle2dir(dir2angle(dir) )+ next_angle) - - -/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T) - for(var/S in RANGE_TURFS(1, src)) - var/turf/NT = S - if(!NT || isspaceturf(NT) || istype(NT.loc, /area/mine/explored) || istype(NT.loc, /area/lavaland/surface/outdoors/explored)) - sanity = 0 - break - if(!sanity) - return - SpawnFlora(T) - - SpawnMonster(T) - T.ChangeTurf(turf_type) - -/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T) - if(prob(30)) - if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored)) - return - for(var/mob/living/simple_animal/hostile/H in urange(12,T)) //prevents mob clumps - if(istype(H, /mob/living/simple_animal/hostile/asteroid)) - return - if(ismegafauna(H) && get_dist(src, H) <= 7) - return - if(istype(H, /mob/living/simple_animal/hostile/spawner/lavaland) && get_dist(src, H) <= 3) //prevents tendrils spawning in collapse range - return - var/randumb = pickweight(mob_spawn_list) - new randumb(T) - return -/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFlora(turf/T) - if(prob(12)) - if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored)) - return - for(var/obj/structure/flora/ash/F in urange(3,T)) //Allows for growing patches, but not ridiculous stacks of flora - return - var/randumb = pickweight(flora_spawn_list) - new randumb(T) - - -/turf/closed/mineral/attackby(obj/item/weapon/pickaxe/P, mob/user, params) - - if (!user.IsAdvancedToolUser()) - usr << "You don't have the dexterity to do this!" - return - - if (istype(P, /obj/item/weapon/pickaxe)) - var/turf/T = user.loc - if (!isturf(T)) - return - - if(last_act+P.digspeed > world.time)//prevents message spam - return - last_act = world.time - user << "You start picking..." - P.playDigSound() - - if(do_after(user,P.digspeed, target = src)) - if(ismineralturf(src)) - user << "You finish cutting into the rock." - gets_drilled(user) - feedback_add_details("pick_used_mining","[P.type]") - else - return attack_hand(user) - return - -/turf/closed/mineral/proc/gets_drilled() - if (mineralType && (src.mineralAmt > 0) && (src.mineralAmt < 11)) - var/i - for (i=0;i= 2) - gets_drilled() - ..() - -/turf/closed/mineral/attack_alien(mob/living/carbon/alien/M) - M << "You start digging into the rock..." - playsound(src, 'sound/effects/break_stone.ogg', 50, 1) - if(do_after(M,40, target = src)) - M << "You tunnel into the rock." - gets_drilled(M) - -/turf/closed/mineral/Bumped(AM as mob|obj) - ..() - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - var/obj/item/I = H.is_holding_item_of_type(/obj/item/weapon/pickaxe) - if(I) - attackby(I,H) - return - else if(iscyborg(AM)) - var/mob/living/silicon/robot/R = AM - if(istype(R.module_active,/obj/item/weapon/pickaxe)) - src.attackby(R.module_active,R) - return -/* else if(istype(AM,/obj/mecha)) - var/obj/mecha/M = AM - if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/drill)) - src.attackby(M.selected,M) - return*/ -//Aparantly mechs are just TOO COOL to call Bump(), so fuck em (for now) - else - return - -/**********************Asteroid**************************/ - -/turf/open/floor/plating/asteroid //floor piece - name = "asteroid sand" - baseturf = /turf/open/floor/plating/asteroid - icon = 'icons/turf/floors.dmi' - icon_state = "asteroid" - icon_plating = "asteroid" - var/environment_type = "asteroid" - var/turf_type = /turf/open/floor/plating/asteroid //Because caves do whacky shit to revert to normal - var/dug = 0 //0 = has not yet been dug, 1 = has already been dug - var/sand_type = /obj/item/weapon/ore/glass - var/floor_variance = 20 //probability floor has a different icon state - -/turf/open/floor/plating/asteroid/airless - initial_gas_mix = "TEMP=2.7" - turf_type = /turf/open/floor/plating/asteroid/airless - -/turf/open/floor/plating/asteroid/basalt - name = "volcanic floor" - baseturf = /turf/open/floor/plating/asteroid/basalt - icon = 'icons/turf/floors.dmi' - icon_state = "basalt" - icon_plating = "basalt" - environment_type = "basalt" - sand_type = /obj/item/weapon/ore/glass/basalt - floor_variance = 15 - -/turf/open/floor/plating/asteroid/basalt/lava //lava underneath - baseturf = /turf/open/floor/plating/lava/smooth - -/turf/open/floor/plating/asteroid/basalt/airless - initial_gas_mix = "TEMP=2.7" - -/turf/open/floor/plating/asteroid/snow - name = "snow" - desc = "Looks cold." - icon = 'icons/turf/snow.dmi' - baseturf = /turf/open/floor/plating/asteroid/snow - icon_state = "snow" - icon_plating = "snow" - initial_gas_mix = "TEMP=180" - slowdown = 2 - environment_type = "snow" - sand_type = /obj/item/stack/sheet/mineral/snow - -/turf/open/floor/plating/asteroid/snow/airless - initial_gas_mix = "TEMP=2.7" - -/turf/open/floor/plating/asteroid/snow/temperatre - initial_gas_mix = "TEMP=255.37" - -/turf/open/floor/plating/asteroid/snow/atmosphere - initial_gas_mix = "o2=22;n2=82;TEMP=180" - -/turf/open/floor/plating/asteroid/New() - var/proper_name = name - ..() - name = proper_name - if(prob(floor_variance)) - icon_state = "[environment_type][rand(0,12)]" - -/turf/open/floor/plating/asteroid/basalt/New() - ..() - switch(icon_state) - if("basalt1", "basalt2", "basalt3") //5 and 9 are too dark to glow and make the amount of glows in tunnels too high - SetLuminosity(1, 1) //this is basically a 3.75% chance that a basalt floor glows - -/turf/open/floor/plating/asteroid/burn_tile() - return - -/turf/open/floor/plating/asteroid/ex_act(severity, target) - contents_explosion(severity, target) - switch(severity) - if(3) - return - if(2) - if(prob(20)) - src.gets_dug() - if(1) - src.gets_dug() - -/turf/open/floor/plating/asteroid/attackby(obj/item/weapon/W, mob/user, params) - //note that this proc does not call ..() - if(!W || !user) - return 0 - var/digging_speed = 0 - if (istype(W, /obj/item/weapon/shovel)) - var/obj/item/weapon/shovel/S = W - digging_speed = S.digspeed - else if (istype(W, /obj/item/weapon/pickaxe)) - var/obj/item/weapon/pickaxe/P = W - digging_speed = P.digspeed - if (digging_speed) - var/turf/T = user.loc - if(!isturf(T)) - return - - if (dug) - user << "This area has already been dug!" - return - - user << "You start digging..." - playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) - - if(do_after(user, digging_speed, target = src)) - if(istype(src, /turf/open/floor/plating/asteroid)) - user << "You dig a hole." - gets_dug() - feedback_add_details("pick_used_mining","[W.type]") - - if(istype(W,/obj/item/weapon/storage/bag/ore)) - var/obj/item/weapon/storage/bag/ore/S = W - if(S.collection_mode == 1) - for(var/obj/item/weapon/ore/O in src.contents) - O.attackby(W,user) - return - - if(istype(W, /obj/item/stack/tile)) - var/obj/item/stack/tile/Z = W - if(!Z.use(1)) - return - var/turf/open/floor/T = ChangeTurf(Z.turf_type) - if(istype(Z,/obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow - var/obj/item/stack/tile/light/L = Z - var/turf/open/floor/light/F = T - F.state = L.state - playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) - -/turf/open/floor/plating/asteroid/proc/gets_dug() - if(dug) - return - for(var/i in 1 to 5) - new sand_type(src) - dug = 1 - icon_plating = "[environment_type]_dug" - icon_state = "[environment_type]_dug" - slowdown = 0 - return - -/turf/open/floor/plating/asteroid/basalt/gets_dug() - if(!dug) - SetLuminosity(0) - ..() - -/turf/open/floor/plating/asteroid/singularity_act() - return - -/turf/open/floor/plating/asteroid/singularity_pull(S, current_size) - return - -//////////////CHASM////////////////// - -/turf/open/chasm - name = "chasm" - desc = "Watch your step." - baseturf = /turf/open/chasm - smooth = SMOOTH_TRUE | SMOOTH_BORDER - icon = 'icons/turf/floors/Chasms.dmi' - icon_state = "smooth" - var/drop_x = 1 - var/drop_y = 1 - var/drop_z = 1 - -/turf/open/chasm/Entered(atom/movable/AM) - START_PROCESSING(SSobj, src) - drop_stuff(AM) - -/turf/open/chasm/process() - if(!drop_stuff()) - STOP_PROCESSING(SSobj, src) - -/turf/open/chasm/proc/drop_stuff(AM) - . = 0 - var/thing_to_check = src - if(AM) - thing_to_check = list(AM) - for(var/thing in thing_to_check) - if(droppable(thing)) - . = 1 - addtimer(src, "drop", 0, FALSE, thing) - -/turf/open/chasm/proc/droppable(atom/movable/AM) - if(!isliving(AM) && !isobj(AM)) - return 0 - if(istype(AM, /obj/singularity) || istype(AM, /obj/item/projectile) || AM.throwing) - return 0 - if(istype(AM, /obj/effect/portal)) - //Portals aren't affected by gravity. Probably. - return 0 - //Flies right over the chasm - if(isanimal(AM)) - var/mob/living/simple_animal/SA = AM - if(SA.flying) - return 0 - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - if(istype(H.belt, /obj/item/device/wormhole_jaunter)) - var/obj/item/device/wormhole_jaunter/J = H.belt - //To freak out any bystanders - visible_message("[H] falls into [src]!") - J.chasm_react(H) - return 0 - if(H.dna && H.dna.species && (FLYING in H.dna.species.specflags)) - return 0 - return 1 - -/turf/open/chasm/proc/drop(atom/movable/AM) - //Make sure the item is still there after our sleep - if(!AM || qdeleted(AM)) - return - - var/turf/T = locate(drop_x, drop_y, drop_z) - if(T) - AM.visible_message("[AM] falls into [src]!", "GAH! Ah... where are you?") - T.visible_message("[AM] falls from above!") - AM.forceMove(T) - if(isliving(AM)) - var/mob/living/L = AM - L.Weaken(5) - L.adjustBruteLoss(30) - -/turf/open/chasm/straight_down/New() - ..() - drop_x = x - drop_y = y - if(z+1 <= world.maxz) - drop_z = z+1 - -/**********************Lavaland Turfs**************************/ - -///////Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground. - -/turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - planetary_atmos = TRUE - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - -/turf/open/chasm/straight_down/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - planetary_atmos = TRUE - baseturf = /turf/open/chasm/straight_down/lava_land_surface - -/turf/open/chasm/straight_down/lava_land_surface/normal_air - initial_gas_mix = "o2=22;n2=82;TEMP=293.15" - -/turf/open/chasm/straight_down/lava_land_surface/drop(atom/movable/AM) - //Make sure the item is still there after our sleep - if(!AM || qdeleted(AM)) - return - AM.visible_message("[AM] falls into [src]!", "You stumble and stare into an abyss before you. It stares back, and you fall \ - into the enveloping dark.") - if(isliving(AM)) - var/mob/living/L = AM - L.notransform = TRUE - L.Stun(10) - L.resting = TRUE - animate(AM, transform = matrix() - matrix(), alpha = 0, color = rgb(0, 0, 0), time = 10) - for(var/i in 1 to 5) - //Make sure the item is still there after our sleep - if(!AM || qdeleted(AM)) - return - AM.pixel_y-- - sleep(2) - - //Make sure the item is still there after our sleep - if(!AM || qdeleted(AM)) - return - - if(iscyborg(AM)) - var/mob/living/silicon/robot/S = AM - qdel(S.mmi) - - qdel(AM) - -/turf/closed/mineral/volcanic/lava_land_surface - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - defer_change = 1 - -/turf/closed/mineral/random/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - - mineralChance = 10 - mineralSpawnChanceList = list( - /turf/closed/mineral/uranium/volcanic = 5, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 10, /turf/closed/mineral/titanium/volcanic = 11, - /turf/closed/mineral/silver/volcanic = 12, /turf/closed/mineral/plasma/volcanic = 20, /turf/closed/mineral/iron/volcanic = 40, - /turf/closed/mineral/gibtonite/volcanic = 4, /turf/open/floor/plating/asteroid/airless/cave/volcanic = 1, /turf/closed/mineral/bscrystal/volcanic = 1) - -/turf/closed/mineral/random/high_chance/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - mineralSpawnChanceList = list( - /turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/gold/volcanic = 45, /turf/closed/mineral/titanium/volcanic = 45, - /turf/closed/mineral/silver/volcanic = 50, /turf/closed/mineral/plasma/volcanic = 50, /turf/closed/mineral/bscrystal/volcanic = 20) - -/turf/open/floor/plating/lava/smooth/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - planetary_atmos = TRUE - baseturf = /turf/open/chasm/straight_down/lava_land_surface /turf/closed/mineral/gibtonite/volcanic environment_type = "basalt" @@ -784,143 +476,3 @@ baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = "o2=14;n2=23;TEMP=300" defer_change = 1 - -/turf/closed/mineral/uranium/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - -/turf/closed/mineral/diamond/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - -/turf/closed/mineral/gold/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - -/turf/closed/mineral/silver/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - -/turf/closed/mineral/titanium/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - -/turf/closed/mineral/plasma/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - -/turf/closed/mineral/iron/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - -/turf/closed/mineral/bscrystal/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - - -//BECAUSE ONE PLANET WASNT ENOUGH - -/turf/closed/mineral/ash_rock //wall piece - name = "rock" - icon = 'icons/turf/mining.dmi' - smooth_icon = 'icons/turf/walls/rock_wall.dmi' - icon_state = "rock2" - smooth = SMOOTH_MORE|SMOOTH_BORDER - canSmoothWith = list (/turf/closed) - baseturf = /turf/open/floor/plating/ashplanet/wateryrock - initial_gas_mix = "o2=14;n2=23;TEMP=300" - environment_type = "waste" - turf_type = /turf/open/floor/plating/ashplanet/rocky - defer_change = 1 - -/turf/open/floor/plating/ashplanet - icon = 'icons/turf/mining.dmi' - name = "ash" - icon_state = "ash" - smooth = SMOOTH_MORE|SMOOTH_BORDER - var/smooth_icon = 'icons/turf/floors/ash.dmi' - desc = "The ground is covered in volcanic ash." - baseturf = /turf/open/floor/plating/ashplanet/wateryrock //I assume this will be a chasm eventually, once this becomes an actual surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - planetary_atmos = TRUE - -/turf/open/floor/plating/ashplanet/New() - if(smooth) - pixel_y = -4 - pixel_x = -4 - icon = smooth_icon - ..() - -/turf/open/floor/plating/ashplanet/break_tile() - return - -/turf/open/floor/plating/ashplanet/burn_tile() - return - -/turf/open/floor/plating/ashplanet/ash - canSmoothWith = list(/turf/open/floor/plating/ashplanet/ash, /turf/closed) - layer = HIGH_TURF_LAYER - slowdown = 1 - -/turf/open/floor/plating/ashplanet/rocky - name = "rocky ground" - icon_state = "rockyash" - smooth_icon = 'icons/turf/floors/rocky_ash.dmi' - layer = MID_TURF_LAYER - canSmoothWith = list(/turf/open/floor/plating/ashplanet/rocky, /turf/closed) - -/turf/open/floor/plating/ashplanet/wateryrock - name = "wet rocky ground" - smooth = null - icon_state = "wateryrock" - slowdown = 2 - -/turf/open/floor/plating/ashplanet/wateryrock/New() - icon_state = "[icon_state][rand(1, 9)]" - ..() - -//Necropolis - -/turf/closed/indestructible/necropolis - name = "necropolis wall" - desc = "A seemingly impenetrable wall." - icon = 'icons/turf/walls.dmi' - icon_state = "necro" - explosion_block = 50 - baseturf = /turf/closed/indestructible/necropolis - -/turf/open/indestructible/necropolis - name = "necropolis floor" - desc = "It's regarding you suspiciously." - icon = 'icons/turf/floors.dmi' - icon_state = "necro1" - baseturf = /turf/open/indestructible/necropolis - -/turf/open/indestructible/necropolis/New() - ..() - if(prob(12)) - icon_state = "necro[rand(2,3)]" diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/wall/mineral_walls.dm similarity index 97% rename from code/game/turfs/simulated/walls_mineral.dm rename to code/game/turfs/simulated/wall/mineral_walls.dm index 56abbf90fbc..8244dea7fc6 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -167,13 +167,6 @@ explosion_block = 3 canSmoothWith = list(/turf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor) -/turf/closed/wall/shuttle //nosmoothing shuttle walls - name = "wall" - icon = 'icons/turf/shuttle.dmi' - icon_state = "wall" - sheet_type = /obj/item/stack/sheet/mineral/titanium - smooth = SMOOTH_FALSE - /turf/closed/wall/mineral/titanium //has to use this path due to how building walls works name = "wall" desc = "A light-weight titanium wall used in shuttles." diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/wall/misc_walls.dm similarity index 79% rename from code/game/turfs/simulated/walls_misc.dm rename to code/game/turfs/simulated/wall/misc_walls.dm index 73f79bd650a..3c0933e5839 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -161,51 +161,4 @@ icon_state = "rrust" hardness = 15 -/turf/closed/wall/shuttle - name = "wall" - icon = 'icons/turf/shuttle.dmi' - icon_state = "wall" - smooth = SMOOTH_FALSE - -/turf/closed/wall/shuttle/syndie - icon_state = "wall3" - sheet_type = /obj/item/stack/sheet/mineral/plastitanium - -/turf/closed/wall/shuttle/smooth - name = "wall" - icon = 'icons/turf/walls/shuttle_wall.dmi' - icon_state = "shuttle" - sheet_type = /obj/item/stack/sheet/mineral/titanium - smooth = SMOOTH_MORE|SMOOTH_DIAGONAL - canSmoothWith = list(/turf/closed/wall/shuttle/smooth, /obj/structure/window/shuttle, /obj/structure/shuttle, /obj/machinery/door/airlock/glass, /obj/machinery/door/airlock/shuttle) - -/turf/closed/wall/shuttle/smooth/nodiagonal - smooth = SMOOTH_MORE - icon_state = "shuttle_nd" - -/turf/closed/wall/shuttle/smooth/overspace - icon_state = "overspace" - fixed_underlay = list("space"=1) - -//sub-type to be used for interior shuttle walls -//won't get an underlay of the destination turf on shuttle move -/turf/closed/wall/shuttle/interior/copyTurf(turf/T) - if(T.type != type) - T.ChangeTurf(type) - if(underlays.len) - T.underlays = underlays - if(T.icon_state != icon_state) - T.icon_state = icon_state - if(T.icon != icon) - T.icon = icon - if(T.color != color) - T.color = color - if(T.dir != dir) - T.setDir(dir) - T.transform = transform - return T - -/turf/closed/wall/shuttle/copyTurf(turf/T) - . = ..() - T.transform = transform diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/wall/reinf_walls.dm similarity index 100% rename from code/game/turfs/simulated/walls_reinforced.dm rename to code/game/turfs/simulated/wall/reinf_walls.dm diff --git a/code/game/turfs/simulated/wall/shuttle_walls.dm b/code/game/turfs/simulated/wall/shuttle_walls.dm new file mode 100644 index 00000000000..877b915f661 --- /dev/null +++ b/code/game/turfs/simulated/wall/shuttle_walls.dm @@ -0,0 +1,66 @@ + + +/turf/closed/wall/shuttle + name = "wall" + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall" + sheet_type = /obj/item/stack/sheet/mineral/titanium + smooth = SMOOTH_FALSE + +/turf/closed/wall/shuttle/copyTurf(turf/T) + . = ..() + T.transform = transform + +/turf/closed/wall/shuttle/survival + name = "pod wall" + desc = "An easily-compressable wall used for temporary shelter." + icon = 'icons/turf/walls/survival_pod_walls.dmi' + icon_state = "smooth" + smooth = SMOOTH_MORE|SMOOTH_DIAGONAL + canSmoothWith = list(/turf/closed/wall/shuttle/survival, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod, /obj/structure/shuttle/engine) + +/turf/closed/wall/shuttle/survival/nodiagonal + smooth = SMOOTH_MORE + +/turf/closed/wall/shuttle/survival/pod + canSmoothWith = list(/turf/closed/wall/shuttle/survival, /obj/machinery/door/airlock, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/shuttle, /obj/structure/shuttle/engine) + + +/turf/closed/wall/shuttle/syndie + icon_state = "wall3" + sheet_type = /obj/item/stack/sheet/mineral/plastitanium + +/turf/closed/wall/shuttle/smooth + name = "wall" + icon = 'icons/turf/walls/shuttle_wall.dmi' + icon_state = "shuttle" + sheet_type = /obj/item/stack/sheet/mineral/titanium + smooth = SMOOTH_MORE|SMOOTH_DIAGONAL + canSmoothWith = list(/turf/closed/wall/shuttle/smooth, /obj/structure/window/shuttle, /obj/structure/shuttle, /obj/machinery/door/airlock/glass, /obj/machinery/door/airlock/shuttle) + +/turf/closed/wall/shuttle/smooth/nodiagonal + smooth = SMOOTH_MORE + icon_state = "shuttle_nd" + +/turf/closed/wall/shuttle/smooth/overspace + icon_state = "overspace" + fixed_underlay = list("space"=1) + +//sub-type to be used for interior shuttle walls +//won't get an underlay of the destination turf on shuttle move +/turf/closed/wall/shuttle/interior/copyTurf(turf/T) + if(T.type != type) + T.ChangeTurf(type) + if(underlays.len) + T.underlays = underlays + if(T.icon_state != icon_state) + T.icon_state = icon_state + if(T.icon != icon) + T.icon = icon + if(T.color != color) + T.color = color + if(T.dir != dir) + T.setDir(dir) + T.transform = transform + return T + diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 3a522e10267..be82bc02b45 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -349,3 +349,22 @@ /turf/proc/acid_melt() return + +/turf/proc/copyTurf(turf/T) + if(T.type != type) + var/obj/O + if(underlays.len) //we have underlays, which implies some sort of transparency, so we want to a snapshot of the previous turf as an underlay + O = new() + O.underlays.Add(T) + T.ChangeTurf(type) + if(underlays.len) + T.underlays = O.underlays + if(T.icon_state != icon_state) + T.icon_state = icon_state + if(T.icon != icon) + T.icon = icon + if(T.color != color) + T.color = color + if(T.dir != dir) + T.setDir(dir) + return T diff --git a/code/modules/mining/laborcamp/laborminerals.dm b/code/modules/mining/laborcamp/laborminerals.dm deleted file mode 100644 index 5299d953754..00000000000 --- a/code/modules/mining/laborcamp/laborminerals.dm +++ /dev/null @@ -1,19 +0,0 @@ -/turf/closed/mineral/random/labormineral - mineralSpawnChanceList = list( - /turf/closed/mineral/iron = 100, /turf/closed/mineral/uranium = 1, /turf/closed/mineral/diamond = 1, - /turf/closed/mineral/gold = 1, /turf/closed/mineral/silver = 1, /turf/closed/mineral/plasma = 1) - icon_state = "rock_labor" - -/turf/closed/mineral/random/labormineral/New() - icon_state = "rock" - ..() - -/turf/closed/mineral/random/labormineral/volcanic - environment_type = "basalt" - turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface - initial_gas_mix = "o2=14;n2=23;TEMP=300" - defer_change = 1 - mineralSpawnChanceList = list( - /turf/closed/mineral/iron/volcanic = 100, /turf/closed/mineral/uranium/volcanic = 1, /turf/closed/mineral/diamond/volcanic = 1, - /turf/closed/mineral/gold/volcanic = 1, /turf/closed/mineral/silver/volcanic = 1, /turf/closed/mineral/plasma/volcanic = 1) \ No newline at end of file diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index fcfd1f05717..18a4afeb28a 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -287,41 +287,11 @@ PoolOrNew(/obj/effect/particle_effect/smoke, get_turf(src)) qdel(src) + + //Pod turfs and objects -//Floors -/turf/open/floor/pod - name = "pod floor" - icon_state = "podfloor" - icon_regular_floor = "podfloor" - floor_tile = /obj/item/stack/tile/pod - -/turf/open/floor/pod/light - icon_state = "podfloor_light" - icon_regular_floor = "podfloor_light" - floor_tile = /obj/item/stack/tile/pod/light - -/turf/open/floor/pod/dark - icon_state = "podfloor_dark" - icon_regular_floor = "podfloor_dark" - floor_tile = /obj/item/stack/tile/pod/dark - -//Walls -/turf/closed/wall/shuttle/survival - name = "pod wall" - desc = "An easily-compressable wall used for temporary shelter." - icon = 'icons/turf/walls/survival_pod_walls.dmi' - icon_state = "smooth" - smooth = SMOOTH_MORE|SMOOTH_DIAGONAL - canSmoothWith = list(/turf/closed/wall/shuttle/survival, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod, /obj/structure/shuttle/engine) - -/turf/closed/wall/shuttle/survival/nodiagonal - smooth = SMOOTH_MORE - -/turf/closed/wall/shuttle/survival/pod - canSmoothWith = list(/turf/closed/wall/shuttle/survival, /obj/machinery/door/airlock, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/shuttle, /obj/structure/shuttle/engine) - //Window /obj/structure/window/shuttle/survival_pod name = "pod window" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index d43314eb8f5..e25ef50c5a4 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -547,6 +547,7 @@ user << "You replace the damaged APC frame with a new one." qdel(W) stat &= ~BROKEN + obj_integrity = max_integrity malfai = null malfhack = 0 if (opened==2) diff --git a/code/modules/power/engine.dm b/code/modules/power/engine.dm deleted file mode 100644 index dc01f9f5a37..00000000000 --- a/code/modules/power/engine.dm +++ /dev/null @@ -1,16 +0,0 @@ -/turf/open/floor/engine/attack_paw(mob/user) - return src.attack_hand(user) - -/turf/open/floor/engine/attack_hand(mob/user) - user.Move_Pulled(src) - -/turf/open/floor/engine/ex_act(severity, target) - contents_explosion(severity, target) - switch(severity) - if(1) - ChangeTurf(src.baseturf) - if(2) - if(prob(50)) - ChangeTurf(src.baseturf) - else - return \ No newline at end of file diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 8afa443751b..b0ee4fc1f62 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -625,13 +625,6 @@ turf_type = /turf/open/floor/bluespace -/turf/open/floor/bluespace - slowdown = -1 - icon_state = "bluespace" - desc = "Through a series of micro-teleports these tiles let people move at incredible speeds" - floor_tile = /obj/item/stack/tile/bluespace - - /obj/item/stack/tile/sepia name = "sepia floor tile" singular_name = "floor tile" @@ -648,13 +641,6 @@ turf_type = /turf/open/floor/sepia -/turf/open/floor/sepia - slowdown = 2 - icon_state = "sepia" - desc = "Time seems to flow very slowly around these tiles" - floor_tile = /obj/item/stack/tile/sepia - - /obj/item/areaeditor/blueprints/slime name = "cerulean prints" desc = "A one use yet of blueprints made of jelly like organic material. Renaming an area to 'Xenobiology Lab' will extend the reach of the management console." diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 770a1673ac2..d513b4c3dd5 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -669,22 +669,3 @@ . += " towards [dst ? dst.name : "unknown location"] ([timeLeft(600)] minutes)" #undef DOCKING_PORT_HIGHLIGHT - -/turf/proc/copyTurf(turf/T) - if(T.type != type) - var/obj/O - if(underlays.len) //we have underlays, which implies some sort of transparency, so we want to a snapshot of the previous turf as an underlay - O = new() - O.underlays.Add(T) - T.ChangeTurf(type) - if(underlays.len) - T.underlays = O.underlays - if(T.icon_state != icon_state) - T.icon_state = icon_state - if(T.icon != icon) - T.icon = icon - if(T.color != color) - T.color = color - if(T.dir != dir) - T.setDir(dir) - return T diff --git a/tgstation.dme b/tgstation.dme index 577697aa0de..e8b2b6d2c4f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -829,20 +829,27 @@ #include "code\game\turfs\closed.dm" #include "code\game\turfs\open.dm" #include "code\game\turfs\turf.dm" +#include "code\game\turfs\simulated\chasm.dm" #include "code\game\turfs\simulated\dirtystation.dm" #include "code\game\turfs\simulated\floor.dm" +#include "code\game\turfs\simulated\minerals.dm" #include "code\game\turfs\simulated\river.dm" #include "code\game\turfs\simulated\walls.dm" -#include "code\game\turfs\simulated\walls_mineral.dm" -#include "code\game\turfs\simulated\walls_misc.dm" -#include "code\game\turfs\simulated\walls_reinforced.dm" #include "code\game\turfs\simulated\floor\fancy_floor.dm" #include "code\game\turfs\simulated\floor\light_floor.dm" #include "code\game\turfs\simulated\floor\mineral_floor.dm" #include "code\game\turfs\simulated\floor\misc_floor.dm" #include "code\game\turfs\simulated\floor\plasteel_floor.dm" #include "code\game\turfs\simulated\floor\plating.dm" +#include "code\game\turfs\simulated\floor\reinf_floor.dm" #include "code\game\turfs\simulated\floor\warning.dm" +#include "code\game\turfs\simulated\floor\plating\asteroid.dm" +#include "code\game\turfs\simulated\floor\plating\lava.dm" +#include "code\game\turfs\simulated\floor\plating\misc_plating.dm" +#include "code\game\turfs\simulated\wall\mineral_walls.dm" +#include "code\game\turfs\simulated\wall\misc_walls.dm" +#include "code\game\turfs\simulated\wall\reinf_walls.dm" +#include "code\game\turfs\simulated\wall\shuttle_walls.dm" #include "code\game\turfs\space\space.dm" #include "code\game\turfs\space\transit.dm" #include "code\js\byjax.dm" @@ -1272,14 +1279,12 @@ #include "code\modules\mining\machine_vending.dm" #include "code\modules\mining\mine_areas.dm" #include "code\modules\mining\mine_items.dm" -#include "code\modules\mining\mine_turfs.dm" #include "code\modules\mining\minebot.dm" #include "code\modules\mining\mint.dm" #include "code\modules\mining\money_bag.dm" #include "code\modules\mining\ores_coins.dm" #include "code\modules\mining\satchel_ore_boxdm.dm" #include "code\modules\mining\shelters.dm" -#include "code\modules\mining\laborcamp\laborminerals.dm" #include "code\modules\mining\laborcamp\laborshuttle.dm" #include "code\modules\mining\laborcamp\laborstacker.dm" #include "code\modules\mining\lavaland\ash_flora.dm" @@ -1629,7 +1634,6 @@ #include "code\modules\power\apc.dm" #include "code\modules\power\cable.dm" #include "code\modules\power\cell.dm" -#include "code\modules\power\engine.dm" #include "code\modules\power\generator.dm" #include "code\modules\power\gravitygenerator.dm" #include "code\modules\power\lighting.dm"