Further turf updates, add Necropolis/boss turfs
@@ -4,7 +4,7 @@
|
||||
/area/space)
|
||||
"ab" = (
|
||||
/turf/simulated/mineral,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"ac" = (
|
||||
/obj/docking_port/stationary{
|
||||
dheight = 9;
|
||||
@@ -19,10 +19,10 @@
|
||||
/area/space)
|
||||
"ad" = (
|
||||
/turf/simulated/floor/plating/asteroid/airless/cave,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"ae" = (
|
||||
/turf/simulated/mineral/random,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"af" = (
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced{
|
||||
@@ -60,7 +60,7 @@
|
||||
/area/space)
|
||||
"ak" = (
|
||||
/turf/simulated/mineral/random/high_chance,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"al" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
@@ -1287,7 +1287,7 @@
|
||||
/area/mine/north_outpost)
|
||||
"dy" = (
|
||||
/turf/simulated/floor/plating/asteroid/airless,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"dz" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/hidden,
|
||||
/turf/simulated/floor/plasteel{
|
||||
@@ -1595,7 +1595,7 @@
|
||||
/area/mine/abandoned)
|
||||
"em" = (
|
||||
/turf/simulated/mineral/random/labormineral,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"en" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/simulated/floor/plating/airless{
|
||||
@@ -1795,7 +1795,7 @@
|
||||
/area/mine/laborcamp)
|
||||
"eB" = (
|
||||
/turf/simulated/wall,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"eC" = (
|
||||
/obj/machinery/atmospherics/unary/vent_pump{
|
||||
on = 1
|
||||
@@ -1975,7 +1975,7 @@
|
||||
/turf/simulated/floor/plating/airless{
|
||||
icon_state = "asteroidplating"
|
||||
},
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"eX" = (
|
||||
/obj/item/shard{
|
||||
icon_state = "medium"
|
||||
@@ -2175,21 +2175,21 @@
|
||||
icon_state = "asteroidwarning";
|
||||
dir = 10
|
||||
},
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"ft" = (
|
||||
/turf/simulated/floor/plasteel/airless{
|
||||
tag = "icon-asteroidwarning (SOUTHEAST)";
|
||||
icon_state = "asteroidwarning";
|
||||
dir = 6
|
||||
},
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"fu" = (
|
||||
/turf/simulated/floor/plasteel/airless{
|
||||
tag = "icon-asteroidwarning";
|
||||
icon_state = "asteroidwarning";
|
||||
dir = 2
|
||||
},
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"fv" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
@@ -3133,7 +3133,7 @@
|
||||
/area/mine/living_quarters)
|
||||
"hB" = (
|
||||
/turf/space,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"hC" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/space,
|
||||
@@ -3539,7 +3539,7 @@
|
||||
"iz" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/simulated/mineral/random,
|
||||
/area/mine/dangerous/unexplored)
|
||||
/area/mine/unexplored)
|
||||
"iA" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
|
||||
@@ -52,6 +52,10 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
|
||||
|
||||
#define ismineralturf(A) istype(A, /turf/simulated/mineral)
|
||||
|
||||
#define islava(A) (istype(A, /turf/simulated/floor/plating/lava))
|
||||
|
||||
#define ischasm(A) (istype(A, /turf/simulated/floor/chasm))
|
||||
|
||||
//Mobs
|
||||
#define isliving(A) (istype(A, /mob/living))
|
||||
|
||||
|
||||
@@ -141,6 +141,8 @@
|
||||
|
||||
#define LIGHT_COLOR_WHITE "#FFFFFF"
|
||||
|
||||
#define LIGHT_COLOR_LAVA "#C48A18" //Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
|
||||
|
||||
#define RESIZE_DEFAULT_SIZE 1
|
||||
|
||||
//transfer_ai() defines. Main proc in ai_core.dm
|
||||
|
||||
@@ -2012,3 +2012,12 @@ var/mob/dview/dview_mob = new
|
||||
|
||||
/proc/pass()
|
||||
return
|
||||
|
||||
/atom/proc/Shake(pixelshiftx = 15, pixelshifty = 15, duration = 250)
|
||||
var/initialpixelx = pixel_x
|
||||
var/initialpixely = pixel_y
|
||||
var/shiftx = rand(-pixelshiftx,pixelshiftx)
|
||||
var/shifty = rand(-pixelshifty,pixelshifty)
|
||||
animate(src, pixel_x = pixel_x + shiftx, pixel_y = pixel_y + shifty, time = 0.2, loop = duration)
|
||||
pixel_x = initialpixelx
|
||||
pixel_y = initialpixely
|
||||
@@ -18,6 +18,9 @@
|
||||
ambientsounds = list('sound/ambience/ambimine.ogg')
|
||||
flags = NONE
|
||||
|
||||
/area/mine/dangerous/explored/golem
|
||||
name = "Small Asteroid"
|
||||
|
||||
/area/mine/unexplored
|
||||
name = "Mine"
|
||||
icon_state = "unexplored"
|
||||
@@ -78,6 +81,8 @@
|
||||
name = "Labor Camp Security"
|
||||
icon_state = "security"
|
||||
|
||||
/area/mine/podbay
|
||||
name = "Mining Podbay"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@ var/global/max_secret_rooms = 6
|
||||
possiblethemes -= theme //once a theme is selected, it's out of the running!
|
||||
var/floor = pick(floortypes)
|
||||
|
||||
turfs = get_area_turfs(/area/mine/dangerous/unexplored)
|
||||
turfs = get_area_turfs(/area/mine/unexplored)
|
||||
|
||||
if(!turfs.len)
|
||||
return 0
|
||||
|
||||
@@ -40,6 +40,16 @@
|
||||
var/mob/MM = AM
|
||||
if(MM.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("<span class='boldwarning'>[H] falls into [src]!</span>")
|
||||
J.chasm_react(H)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
/turf/simulated/floor/chasm/proc/drop(atom/movable/AM)
|
||||
|
||||
@@ -1,296 +1,421 @@
|
||||
/**********************Mineral deposits**************************/
|
||||
|
||||
#define NORTH_EDGING "north"
|
||||
#define SOUTH_EDGING "south"
|
||||
#define EAST_EDGING "east"
|
||||
#define WEST_EDGING "west"
|
||||
|
||||
var/global/list/rockTurfEdgeCache = list(
|
||||
NORTH_EDGING = image('icons/turf/mining.dmi', "rock_side_n", layer = 6),
|
||||
SOUTH_EDGING = image('icons/turf/mining.dmi', "rock_side_s"),
|
||||
EAST_EDGING = image('icons/turf/mining.dmi', "rock_side_e", layer = 6),
|
||||
WEST_EDGING = image('icons/turf/mining.dmi', "rock_side_w", layer = 6))
|
||||
|
||||
/turf/simulated/mineral //wall piece
|
||||
name = "Rock"
|
||||
name = "rock"
|
||||
icon = 'icons/turf/mining.dmi'
|
||||
icon_state = "rock_nochance"
|
||||
oxygen = 0
|
||||
nitrogen = 0
|
||||
icon_state = "rock"
|
||||
var/smooth_icon = 'icons/turf/smoothrocks.dmi'
|
||||
smooth = SMOOTH_MORE | SMOOTH_BORDER
|
||||
canSmoothWith
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/airless
|
||||
temperature = 2.7
|
||||
opacity = 1
|
||||
density = 1
|
||||
blocks_air = 1
|
||||
layer = EDGED_TURF_LAYER
|
||||
temperature = TCMB
|
||||
var/environment_type = "asteroid"
|
||||
var/turf/simulated/floor/plating/turf_type = /turf/simulated/floor/plating/asteroid/airless
|
||||
var/mineralType = null
|
||||
var/mineralAmt = 3
|
||||
var/mineralName = null
|
||||
var/spread = 0 //will the seam spread?
|
||||
var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles
|
||||
var/last_act = 0
|
||||
var/scan_state = null //Holder for the image we display when we're pinged by a mining scanner
|
||||
var/hidden = 1
|
||||
|
||||
//start xenoarch vars
|
||||
var/datum/geosample/geologic_data
|
||||
var/excavation_level = 0
|
||||
var/list/finds
|
||||
var/next_rock = 0
|
||||
var/archaeo_overlay = ""
|
||||
var/excav_overlay = ""
|
||||
var/obj/item/last_find
|
||||
var/datum/artifact_find/artifact_find
|
||||
//end xenaorch vars
|
||||
|
||||
/turf/simulated/mineral/ex_act(severity, target)
|
||||
..()
|
||||
switch(severity)
|
||||
if(3.0)
|
||||
if(prob(75))
|
||||
src.gets_drilled(null, 1)
|
||||
if(2.0)
|
||||
if(prob(90))
|
||||
src.gets_drilled(null, 1)
|
||||
if(1.0)
|
||||
src.gets_drilled(null, 1)
|
||||
return
|
||||
var/defer_change = 0
|
||||
|
||||
/turf/simulated/mineral/New()
|
||||
if (!canSmoothWith)
|
||||
canSmoothWith = list(/turf/simulated/mineral)
|
||||
pixel_y = -4
|
||||
pixel_x = -4
|
||||
icon = smooth_icon
|
||||
|
||||
..()
|
||||
GLOB.mineral_turfs += src
|
||||
|
||||
if(mineralType && mineralAmt && spread && spreadChance)
|
||||
if (mineralType && mineralAmt && spread && spreadChance)
|
||||
for(var/dir in cardinal)
|
||||
if(prob(spreadChance))
|
||||
var/turf/T = get_step(src, dir)
|
||||
if(istype(T, /turf/simulated/mineral/random))
|
||||
Spread(T)
|
||||
|
||||
HideRock()
|
||||
/turf/simulated/mineral/shuttleRotate(rotation)
|
||||
setDir(angle2dir(rotation + dir2angle(dir)))
|
||||
queue_smooth(src)
|
||||
|
||||
/turf/simulated/mineral/attackby(var/obj/item/pickaxe/P as obj, mob/user as mob, params)
|
||||
if(!user.IsAdvancedToolUser())
|
||||
to_chat(usr, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
return
|
||||
|
||||
if(istype(P, /obj/item/pickaxe))
|
||||
var/turf/T = user.loc
|
||||
if(!isturf(T))
|
||||
return
|
||||
|
||||
if(last_act + (40 * P.toolspeed) > world.time) // Prevents message spam
|
||||
return
|
||||
|
||||
last_act = world.time
|
||||
to_chat(user, "<span class='notice'>You start picking...</span>")
|
||||
P.playDigSound()
|
||||
|
||||
if(do_after(user, 40 * P.toolspeed, target = src))
|
||||
if(istype(src, /turf/simulated/mineral)) //sanity check against turf being deleted during digspeed delay
|
||||
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>")
|
||||
P.update_icon()
|
||||
gets_drilled(user)
|
||||
feedback_add_details("pick_used_mining","[P.name]")
|
||||
else
|
||||
return attack_hand(user)
|
||||
|
||||
/turf/simulated/mineral/proc/gets_drilled()
|
||||
if(mineralType && (mineralAmt > 0) && (mineralAmt < 11))
|
||||
var/i
|
||||
for(i=0; i < mineralAmt; i++)
|
||||
new mineralType(src)
|
||||
feedback_add_details("ore_mined","[mineralType]|[mineralAmt]")
|
||||
ChangeTurf(turf_type, defer_change)
|
||||
addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE)
|
||||
playsound(src, 'sound/effects/break_stone.ogg', 50, 1) //beautiful destruction
|
||||
|
||||
if(rand(1, 750) == 1)
|
||||
visible_message("<span class='notice'>An old dusty crate was buried within!</span>")
|
||||
new /obj/structure/closet/crate/secure/loot(src)
|
||||
|
||||
/turf/simulated/mineral/proc/HideRock()
|
||||
if(hidden)
|
||||
name = "rock"
|
||||
icon_state = "rock"
|
||||
return
|
||||
|
||||
/turf/simulated/mineral/attack_animal(mob/living/simple_animal/user as mob)
|
||||
if((user.environment_smash & ENVIRONMENT_SMASH_WALLS) || (user.environment_smash & ENVIRONMENT_SMASH_RWALLS))
|
||||
gets_drilled()
|
||||
..()
|
||||
|
||||
/turf/simulated/mineral/attack_alien(var/mob/living/carbon/alien/M)
|
||||
to_chat(M, "<span class='notice'>You start digging into the rock...</span>")
|
||||
playsound(src, 'sound/effects/break_stone.ogg', 50, 1)
|
||||
if(do_after(M, 40, target = src))
|
||||
to_chat(M, "<span class='notice'>You tunnel into the rock.</span>")
|
||||
gets_drilled()
|
||||
|
||||
/turf/simulated/mineral/Bumped(AM as mob|obj)
|
||||
. = ..()
|
||||
if(ishuman(AM))
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if((istype(H.l_hand,/obj/item/pickaxe)) && (!H.hand))
|
||||
attackby(H.l_hand,H)
|
||||
else if((istype(H.r_hand,/obj/item/pickaxe)) && H.hand)
|
||||
attackby(H.r_hand,H)
|
||||
return
|
||||
|
||||
else if(isrobot(AM))
|
||||
var/mob/living/silicon/robot/R = AM
|
||||
if(istype(R.module_active,/obj/item/pickaxe))
|
||||
attackby(R.module_active,R)
|
||||
|
||||
else if(ismecha(AM))
|
||||
var/obj/mecha/M = AM
|
||||
if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/drill))
|
||||
M.selected.action(src)
|
||||
|
||||
/turf/simulated/mineral/ex_act(severity, target)
|
||||
..()
|
||||
switch(severity)
|
||||
if(3)
|
||||
if (prob(75))
|
||||
gets_drilled(null, 1)
|
||||
if(2)
|
||||
if (prob(90))
|
||||
gets_drilled(null, 1)
|
||||
if(1)
|
||||
gets_drilled(null, 1)
|
||||
|
||||
/turf/simulated/mineral/proc/Spread(var/turf/T)
|
||||
new src.type(T)
|
||||
|
||||
/hook/startup/proc/add_mineral_edges()
|
||||
var/watch = start_watch()
|
||||
log_startup_progress("Reticulating splines...")
|
||||
for(var/turf/simulated/mineral/M in GLOB.mineral_turfs)
|
||||
M.add_edges()
|
||||
log_startup_progress(" Splines reticulated in [stop_watch(watch)]s.")
|
||||
return 1
|
||||
|
||||
/turf/simulated/mineral/proc/add_edges()
|
||||
var/turf/T
|
||||
if((istype(get_step(src, NORTH), /turf/simulated/floor)) || (istype(get_step(src, NORTH), /turf/space)))
|
||||
T = get_step(src, NORTH)
|
||||
if(T)
|
||||
T.overlays += rockTurfEdgeCache[SOUTH_EDGING]
|
||||
if((istype(get_step(src, SOUTH), /turf/simulated/floor)) || (istype(get_step(src, SOUTH), /turf/space)))
|
||||
T = get_step(src, SOUTH)
|
||||
if(T)
|
||||
T.overlays += rockTurfEdgeCache[NORTH_EDGING]
|
||||
if((istype(get_step(src, EAST), /turf/simulated/floor)) || (istype(get_step(src, EAST), /turf/space)))
|
||||
T = get_step(src, EAST)
|
||||
if(T)
|
||||
T.overlays += rockTurfEdgeCache[WEST_EDGING]
|
||||
if((istype(get_step(src, WEST), /turf/simulated/floor)) || (istype(get_step(src, WEST), /turf/space)))
|
||||
T = get_step(src, WEST)
|
||||
if(T)
|
||||
T.overlays += rockTurfEdgeCache[EAST_EDGING]
|
||||
T.ChangeTurf(type)
|
||||
|
||||
/turf/simulated/mineral/random
|
||||
name = "mineral deposit"
|
||||
icon_state = "rock"
|
||||
var/mineralSpawnChanceList = list(
|
||||
"Uranium" = 5, "Diamond" = 1, "Gold" = 10,
|
||||
"Silver" = 12, "Plasma" = 20, "Iron" = 40,
|
||||
"Gibtonite" = 4, "Cave" = 2, "BScrystal" = 1,
|
||||
"Titanium" = 11)
|
||||
var/mineralSpawnChanceList
|
||||
var/mineralChance = 13
|
||||
var/display_icon_state = "rock"
|
||||
|
||||
/turf/simulated/mineral/random/New()
|
||||
if (!mineralSpawnChanceList)
|
||||
mineralSpawnChanceList = list(
|
||||
/turf/simulated/mineral/uranium = 5, /turf/simulated/mineral/diamond = 1, /turf/simulated/mineral/gold = 10,
|
||||
/turf/simulated/mineral/silver = 12, /turf/simulated/mineral/plasma = 20, /turf/simulated/mineral/iron = 40, /turf/simulated/mineral/titanium = 11,
|
||||
/turf/simulated/mineral/gibtonite = 4, /turf/simulated/floor/plating/asteroid/airless/cave = 2, /turf/simulated/mineral/bscrystal = 1)
|
||||
if (display_icon_state)
|
||||
icon_state = display_icon_state
|
||||
..()
|
||||
if(prob(mineralChance))
|
||||
var/mName = pickweight(mineralSpawnChanceList) //temp mineral name
|
||||
|
||||
if(mName)
|
||||
var/turf/simulated/mineral/M
|
||||
switch(mName)
|
||||
if("Uranium")
|
||||
M = new/turf/simulated/mineral/uranium(src)
|
||||
if("Iron")
|
||||
M = new/turf/simulated/mineral/iron(src)
|
||||
if("Diamond")
|
||||
M = new/turf/simulated/mineral/diamond(src)
|
||||
if("Gold")
|
||||
M = new/turf/simulated/mineral/gold(src)
|
||||
if("Silver")
|
||||
M = new/turf/simulated/mineral/silver(src)
|
||||
if("Plasma")
|
||||
M = new/turf/simulated/mineral/plasma(src)
|
||||
if("Cave")
|
||||
new/turf/simulated/floor/plating/asteroid/airless/cave(src)
|
||||
if("Gibtonite")
|
||||
M = new/turf/simulated/mineral/gibtonite(src)
|
||||
if("Bananium")
|
||||
M = new/turf/simulated/mineral/clown(src)
|
||||
if("Tranquillite")
|
||||
M = new/turf/simulated/mineral/mime(src)
|
||||
if("Titanium")
|
||||
M = new/turf/simulated/mineral/titanium(src)
|
||||
if("BScrystal")
|
||||
M = new/turf/simulated/mineral/bscrystal(src)
|
||||
if(M)
|
||||
M.mineralAmt = rand(1, 5)
|
||||
src = M
|
||||
M.levelupdate()
|
||||
return
|
||||
if (prob(mineralChance))
|
||||
var/path = pickweight(mineralSpawnChanceList)
|
||||
var/turf/T = ChangeTurf(path,FALSE,TRUE)
|
||||
|
||||
if(T && ismineralturf(T))
|
||||
var/turf/simulated/mineral/M = T
|
||||
M.mineralAmt = rand(1, 5)
|
||||
M.environment_type = environment_type
|
||||
M.turf_type = turf_type
|
||||
M.baseturf = baseturf
|
||||
src = M
|
||||
M.levelupdate()
|
||||
|
||||
/turf/simulated/mineral/random/high_chance
|
||||
icon_state = "rock_highchance"
|
||||
mineralChance = 25
|
||||
mineralSpawnChanceList = list(
|
||||
"Uranium" = 35, "Diamond" = 30, "Gold" = 45,
|
||||
"Silver" = 50, "Plasma" = 50, "BScrystal" = 20,
|
||||
"Titanium" = 45)
|
||||
/turf/simulated/mineral/uranium = 35, /turf/simulated/mineral/diamond = 30, /turf/simulated/mineral/gold = 45, /turf/simulated/mineral/titanium = 45,
|
||||
/turf/simulated/mineral/silver = 50, /turf/simulated/mineral/plasma = 50, /turf/simulated/mineral/bscrystal = 20)
|
||||
|
||||
|
||||
/turf/simulated/mineral/random/high_chance_clown
|
||||
/turf/simulated/mineral/random/high_chance/clown
|
||||
mineralChance = 40
|
||||
mineralSpawnChanceList = list(
|
||||
"Uranium" = 35, "Diamond" = 2,
|
||||
"Gold" = 5, "Silver" = 5, "Plasma" = 25,
|
||||
"Iron" = 30, "Bananium" = 15, "Tranquillite" = 15, "BScrystal" = 10)
|
||||
/turf/simulated/mineral/uranium = 35, /turf/simulated/mineral/diamond = 2, /turf/simulated/mineral/gold = 5, /turf/simulated/mineral/silver = 5,
|
||||
/turf/simulated/mineral/iron = 30, /turf/simulated/mineral/clown = 15, /turf/simulated/mineral/mime = 15, /turf/simulated/mineral/bscrystal = 10)
|
||||
|
||||
/turf/simulated/mineral/random/high_chance/New()
|
||||
icon_state = "rock"
|
||||
..()
|
||||
/turf/simulated/mineral/random/high_chance/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
mineralSpawnChanceList = list(
|
||||
/turf/simulated/mineral/uranium/volcanic = 35, /turf/simulated/mineral/diamond/volcanic = 30, /turf/simulated/mineral/gold/volcanic = 45, /turf/simulated/mineral/titanium/volcanic = 45,
|
||||
/turf/simulated/mineral/silver/volcanic = 50, /turf/simulated/mineral/plasma/volcanic = 50, /turf/simulated/mineral/bscrystal/volcanic = 20)
|
||||
|
||||
/turf/simulated/mineral/random/low_chance
|
||||
icon_state = "rock_lowchance"
|
||||
mineralChance = 6
|
||||
mineralSpawnChanceList = list(
|
||||
"Uranium" = 2, "Diamond" = 1, "Gold" = 4,
|
||||
"Silver" = 6, "Plasma" = 15, "Iron" = 40,
|
||||
"Gibtonite" = 2, "BScrystal" = 1, "Titanium" = 4)
|
||||
/turf/simulated/mineral/uranium = 2, /turf/simulated/mineral/diamond = 1, /turf/simulated/mineral/gold = 4, /turf/simulated/mineral/titanium = 4,
|
||||
/turf/simulated/mineral/silver = 6, /turf/simulated/mineral/plasma = 15, /turf/simulated/mineral/iron = 40,
|
||||
/turf/simulated/mineral/gibtonite = 2, /turf/simulated/mineral/bscrystal = 1)
|
||||
|
||||
/turf/simulated/mineral/random/low_chance/New()
|
||||
icon_state = "rock"
|
||||
..()
|
||||
/turf/simulated/mineral/random/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
mineralChance = 10
|
||||
mineralSpawnChanceList = list(
|
||||
/turf/simulated/mineral/uranium/volcanic = 5, /turf/simulated/mineral/diamond/volcanic = 1, /turf/simulated/mineral/gold/volcanic = 10, /turf/simulated/mineral/titanium/volcanic = 11,
|
||||
/turf/simulated/mineral/silver/volcanic = 12, /turf/simulated/mineral/plasma/volcanic = 20, /turf/simulated/mineral/iron/volcanic = 40,
|
||||
/turf/simulated/mineral/gibtonite/volcanic = 4, /turf/simulated/floor/plating/asteroid/airless/cave/volcanic = 1, /turf/simulated/mineral/bscrystal/volcanic = 1)
|
||||
|
||||
/turf/simulated/mineral/random/labormineral
|
||||
mineralSpawnChanceList = list(
|
||||
/turf/simulated/mineral/uranium = 2, /turf/simulated/mineral/diamond = 1, /turf/simulated/mineral/gold = 3, /turf/simulated/mineral/titanium = 4,
|
||||
/turf/simulated/mineral/silver = 6, /turf/simulated/mineral/plasma = 15, /turf/simulated/mineral/iron = 80,
|
||||
/turf/simulated/mineral/gibtonite = 3)
|
||||
icon_state = "rock_labor"
|
||||
|
||||
/turf/simulated/mineral/random/labormineral/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
mineralSpawnChanceList = list(
|
||||
/turf/simulated/mineral/uranium/volcanic = 2, /turf/simulated/mineral/diamond/volcanic = 1, /turf/simulated/mineral/gold/volcanic = 3, /turf/simulated/mineral/titanium/volcanic = 4,
|
||||
/turf/simulated/mineral/silver/volcanic = 6, /turf/simulated/mineral/plasma/volcanic = 15, /turf/simulated/mineral/iron/volcanic = 80,
|
||||
/turf/simulated/mineral/gibtonite/volcanic = 3)
|
||||
|
||||
// Actual minerals
|
||||
/turf/simulated/mineral/iron
|
||||
name = "iron deposit"
|
||||
icon_state = "rock_Iron"
|
||||
mineralType = /obj/item/stack/ore/iron
|
||||
mineralName = "Iron"
|
||||
spreadChance = 20
|
||||
spread = 1
|
||||
hidden = 0
|
||||
scan_state = "rock_Iron"
|
||||
|
||||
/turf/simulated/mineral/iron/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/uranium
|
||||
name = "uranium deposit"
|
||||
mineralType = /obj/item/stack/ore/uranium
|
||||
mineralName = "Uranium"
|
||||
spreadChance = 5
|
||||
spread = 1
|
||||
hidden = 1
|
||||
scan_state = "rock_Uranium"
|
||||
|
||||
/turf/simulated/mineral/uranium/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/diamond
|
||||
name = "diamond deposit"
|
||||
mineralType = /obj/item/stack/ore/diamond
|
||||
mineralName = "Diamond"
|
||||
spreadChance = 0
|
||||
spread = 1
|
||||
hidden = 1
|
||||
scan_state = "rock_Diamond"
|
||||
|
||||
/turf/simulated/mineral/diamond/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/gold
|
||||
name = "gold deposit"
|
||||
mineralType = /obj/item/stack/ore/gold
|
||||
mineralName = "Gold"
|
||||
spreadChance = 5
|
||||
spread = 1
|
||||
hidden = 1
|
||||
scan_state = "rock_Gold"
|
||||
|
||||
/turf/simulated/mineral/gold/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/silver
|
||||
name = "silver deposit"
|
||||
mineralType = /obj/item/stack/ore/silver
|
||||
mineralName = "Silver"
|
||||
spreadChance = 5
|
||||
spread = 1
|
||||
hidden = 1
|
||||
scan_state = "rock_Silver"
|
||||
|
||||
/turf/simulated/mineral/silver/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/titanium
|
||||
name = "titanium deposit"
|
||||
mineralType = /obj/item/stack/ore/titanium
|
||||
spreadChance = 5
|
||||
spread = 1
|
||||
hidden = 1
|
||||
scan_state = "rock_Titanium"
|
||||
|
||||
/turf/simulated/mineral/titanium/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/plasma
|
||||
name = "plasma deposit"
|
||||
icon_state = "rock_Plasma"
|
||||
mineralType = /obj/item/stack/ore/plasma
|
||||
mineralName = "Plasma"
|
||||
spreadChance = 8
|
||||
spread = 1
|
||||
hidden = 1
|
||||
scan_state = "rock_Plasma"
|
||||
|
||||
/turf/simulated/mineral/plasma/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/clown
|
||||
name = "bananium deposit"
|
||||
icon_state = "rock_Clown"
|
||||
mineralType = /obj/item/stack/ore/bananium
|
||||
mineralName = "Bananium"
|
||||
mineralAmt = 3
|
||||
spreadChance = 0
|
||||
spread = 0
|
||||
hidden = 0
|
||||
scan_state = "rock_Clown"
|
||||
|
||||
/turf/simulated/mineral/clown/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/mime
|
||||
name = "tranquillite deposit"
|
||||
icon_state = "rock_Mime"
|
||||
mineralType = /obj/item/stack/ore/tranquillite
|
||||
mineralAmt = 3
|
||||
spreadChance = 0
|
||||
spread = 0
|
||||
hidden = 0
|
||||
|
||||
/turf/simulated/mineral/mime/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/bscrystal
|
||||
name = "bluespace crystal deposit"
|
||||
icon_state = "rock_BScrystal"
|
||||
mineralType = /obj/item/stack/ore/bluespace_crystal
|
||||
mineralName = "Bluespace crystal"
|
||||
mineralAmt = 1
|
||||
spreadChance = 0
|
||||
spread = 0
|
||||
hidden = 1
|
||||
scan_state = "rock_BScrystal"
|
||||
|
||||
////////////////////////////////Gibtonite
|
||||
/turf/simulated/mineral/bscrystal/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
|
||||
/turf/simulated/mineral/volcanic/lava_land_surface
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface
|
||||
defer_change = 1
|
||||
|
||||
// Gibtonite
|
||||
/turf/simulated/mineral/gibtonite
|
||||
name = "gibtonite deposit"
|
||||
icon_state = "rock_Gibtonite"
|
||||
mineralAmt = 1
|
||||
mineralName = "Gibtonite"
|
||||
spreadChance = 0
|
||||
spread = 0
|
||||
hidden = 1
|
||||
scan_state = "rock_Gibtonite"
|
||||
var/det_time = 8 //Countdown till explosion, but also rewards the player for how close you were to detonation when you defuse it
|
||||
var/stage = 0 //How far into the lifecycle of gibtonite we are, 0 is untouched, 1 is active and attempting to detonate, 2 is benign and ready for extraction
|
||||
var/activated_ckey = null //These are to track who triggered the gibtonite deposit for logging purposes
|
||||
var/activated_name = null
|
||||
var/activated_image = null
|
||||
|
||||
/turf/simulated/mineral/gibtonite/volcanic
|
||||
environment_type = "basalt"
|
||||
turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
defer_change = 1
|
||||
|
||||
/turf/simulated/mineral/gibtonite/New()
|
||||
det_time = rand(8,10) //So you don't know exactly when the hot potato will explode
|
||||
@@ -304,7 +429,9 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
|
||||
/turf/simulated/mineral/gibtonite/proc/explosive_reaction(var/mob/user = null, triggered_by_explosion = 0)
|
||||
if(stage == 0)
|
||||
icon_state = "rock_Gibtonite_active"
|
||||
var/image/I = image('icons/turf/smoothrocks.dmi', loc = src, icon_state = "rock_Gibtonite_active", layer = ON_EDGED_TURF_LAYER)
|
||||
add_overlay(I)
|
||||
activated_image = I
|
||||
name = "gibtonite deposit"
|
||||
desc = "An active gibtonite reserve. Run!"
|
||||
stage = 1
|
||||
@@ -328,20 +455,22 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
countdown(notify_admins)
|
||||
|
||||
/turf/simulated/mineral/gibtonite/proc/countdown(notify_admins = 0)
|
||||
spawn(0)
|
||||
while(stage == 1 && det_time > 0 && mineralAmt >= 1)
|
||||
det_time--
|
||||
sleep(5)
|
||||
set waitfor = 0
|
||||
while(istype(src, /turf/simulated/mineral/gibtonite) && stage == 1 && det_time > 0 && mineralAmt >= 1)
|
||||
det_time--
|
||||
sleep(5)
|
||||
if(istype(src, /turf/simulated/mineral/gibtonite))
|
||||
if(stage == 1 && det_time <= 0 && mineralAmt >= 1)
|
||||
var/turf/bombturf = get_turf(src)
|
||||
mineralAmt = 0
|
||||
stage = 3
|
||||
explosion(bombturf,1,3,5, adminlog = notify_admins)
|
||||
if(stage == 0 || stage == 2)
|
||||
return
|
||||
|
||||
/turf/simulated/mineral/gibtonite/proc/defuse()
|
||||
if(stage == 1)
|
||||
icon_state = "rock_Gibtonite_inactive"
|
||||
overlays -= activated_image
|
||||
var/image/I = image('icons/turf/smoothrocks.dmi', loc = src, icon_state = "rock_Gibtonite_inactive", layer = ON_EDGED_TURF_LAYER)
|
||||
add_overlay(I)
|
||||
desc = "An inactive gibtonite reserve. The ore can be extracted."
|
||||
stage = 2
|
||||
if(det_time < 0)
|
||||
@@ -350,13 +479,14 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
|
||||
/turf/simulated/mineral/gibtonite/gets_drilled(var/mob/user, triggered_by_explosion = 0)
|
||||
if(stage == 0 && mineralAmt >= 1) //Gibtonite deposit is activated
|
||||
playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1)
|
||||
playsound(src, 'sound/effects/hit_on_shattered_glass.ogg',50,1)
|
||||
explosive_reaction(user, triggered_by_explosion)
|
||||
return
|
||||
if(stage == 1 && mineralAmt >= 1) //Gibtonite deposit goes kaboom
|
||||
var/turf/bombturf = get_turf(src)
|
||||
mineralAmt = 0
|
||||
explosion(bombturf,1,2,5, adminlog = 0)
|
||||
stage = 3
|
||||
explosion(bombturf, 1, 2, 5, adminlog = 0)
|
||||
if(stage == 2) //Gibtonite deposit is now benign and extractable. Depending on how close you were to it blowing up before defusing, you get better quality ore.
|
||||
var/obj/item/twohanded/required/gibtonite/G = new /obj/item/twohanded/required/gibtonite/(src)
|
||||
if(det_time <= 0)
|
||||
@@ -365,83 +495,6 @@ var/global/list/rockTurfEdgeCache = list(
|
||||
if(det_time >= 1 && det_time <= 2)
|
||||
G.quality = 2
|
||||
G.icon_state = "Gibtonite ore 2"
|
||||
ChangeTurf(/turf/simulated/floor/plating/asteroid/airless/gibtonite_remains)
|
||||
|
||||
/turf/simulated/floor/plating/asteroid/airless/gibtonite_remains
|
||||
var/det_time = 0
|
||||
var/stage = 0
|
||||
|
||||
////////////////////////////////End Gibtonite
|
||||
|
||||
/turf/simulated/mineral/attackby(var/obj/item/pickaxe/P as obj, mob/user as mob, params)
|
||||
|
||||
if(!user.IsAdvancedToolUser())
|
||||
to_chat(usr, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
return
|
||||
|
||||
if(istype(P, /obj/item/pickaxe))
|
||||
var/turf/T = user.loc
|
||||
if(!( istype(T, /turf) ))
|
||||
return
|
||||
|
||||
if(last_act + (40 * P.toolspeed) > world.time)//prevents message spam
|
||||
return
|
||||
last_act = world.time
|
||||
to_chat(user, "<span class='notice'>You start picking...</span>")
|
||||
P.playDigSound()
|
||||
|
||||
if(do_after(user, 40 * P.toolspeed, target = src))
|
||||
if(istype(src, /turf/simulated/mineral)) //sanity check against turf being deleted during digspeed delay
|
||||
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>")
|
||||
P.update_icon()
|
||||
gets_drilled(user)
|
||||
feedback_add_details("pick_used_mining","[P.name]")
|
||||
else
|
||||
return attack_hand(user)
|
||||
return
|
||||
|
||||
/turf/simulated/mineral/proc/gets_drilled()
|
||||
if(mineralType && (src.mineralAmt > 0) && (src.mineralAmt < 11))
|
||||
var/i
|
||||
for(i=0;i<mineralAmt;i++)
|
||||
new mineralType(src)
|
||||
feedback_add_details("ore_mined","[mineralType]|[mineralAmt]")
|
||||
ChangeTurf(/turf/simulated/floor/plating/asteroid/airless)
|
||||
playsound(src, 'sound/effects/break_stone.ogg', 50, 1) //beautiful destruction
|
||||
|
||||
if(rand(1,750) == 1)
|
||||
visible_message("<span class='notice'>An old dusty crate was buried within!</span>")
|
||||
new /obj/structure/closet/crate/secure/loot(src)
|
||||
|
||||
return
|
||||
|
||||
/turf/simulated/mineral/attack_animal(mob/living/simple_animal/user as mob)
|
||||
if((user.environment_smash & ENVIRONMENT_SMASH_WALLS) || (user.environment_smash & ENVIRONMENT_SMASH_RWALLS))
|
||||
gets_drilled()
|
||||
..()
|
||||
|
||||
/turf/simulated/mineral/attack_alien(var/mob/living/carbon/alien/M)
|
||||
to_chat(M, "<span class='notice'>You start digging into the rock...</span>")
|
||||
playsound(src, 'sound/effects/break_stone.ogg', 50, 1)
|
||||
if(do_after(M, 40, target = src))
|
||||
to_chat(M, "<span class='notice'>You tunnel into the rock.</span>")
|
||||
gets_drilled()
|
||||
|
||||
/turf/simulated/mineral/Bumped(AM as mob|obj)
|
||||
. = ..()
|
||||
if(istype(AM,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if((istype(H.l_hand,/obj/item/pickaxe)) && (!H.hand))
|
||||
attackby(H.l_hand,H)
|
||||
else if((istype(H.r_hand,/obj/item/pickaxe)) && H.hand)
|
||||
attackby(H.r_hand,H)
|
||||
|
||||
else if(istype(AM,/mob/living/silicon/robot))
|
||||
var/mob/living/silicon/robot/R = AM
|
||||
if(istype(R.module_active,/obj/item/pickaxe))
|
||||
attackby(R.module_active,R)
|
||||
|
||||
else if(istype(AM,/obj/mecha))
|
||||
var/obj/mecha/M = AM
|
||||
if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/drill))
|
||||
M.selected.action(src)
|
||||
ChangeTurf(turf_type, defer_change)
|
||||
addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE)
|
||||
|
||||
@@ -48,3 +48,49 @@
|
||||
"human" = list('sound/effects/footstep/wood_all.ogg'), //@RonaldVanWonderen of Freesound.org
|
||||
"xeno" = list('sound/effects/footstep/wood_all.ogg') //@RonaldVanWonderen of Freesound.org
|
||||
)
|
||||
|
||||
/turf/unsimulated/floor/necropolis
|
||||
name = "necropolis floor"
|
||||
desc = "It's regarding you suspiciously."
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "necro1"
|
||||
baseturf = /turf/unsimulated/floor/necropolis
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
|
||||
/turf/unsimulated/floor/necropolis/Initialize()
|
||||
. = ..()
|
||||
if(prob(12))
|
||||
icon_state = "necro[rand(2,3)]"
|
||||
|
||||
/turf/unsimulated/floor/necropolis/air
|
||||
oxygen = 0
|
||||
nitrogen = 0
|
||||
temperature = T20C
|
||||
|
||||
/turf/unsimulated/floor/boss //you put stone tiles on this and use it as a base
|
||||
name = "necropolis floor"
|
||||
icon = 'icons/turf/floors/boss_floors.dmi'
|
||||
icon_state = "boss"
|
||||
baseturf = /turf/unsimulated/floor/boss
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
|
||||
/turf/unsimulated/floor/boss/air
|
||||
oxygen = 0
|
||||
nitrogen = 0
|
||||
temperature = T20C
|
||||
|
||||
/turf/unsimulated/floor/hierophant
|
||||
icon_state = "hierophant1"
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
desc = "A floor with a square pattern. It's faintly cool to the touch."
|
||||
|
||||
/turf/unsimulated/floor/hierophant/New()
|
||||
..()
|
||||
if(prob(50))
|
||||
icon_state = "hierophant2"
|
||||
@@ -32,4 +32,32 @@
|
||||
|
||||
/turf/unsimulated/wall/abductor
|
||||
icon_state = "alien1"
|
||||
explosion_block = 50
|
||||
explosion_block = 50
|
||||
|
||||
/turf/unsimulated/wall/necropolis
|
||||
name = "necropolis wall"
|
||||
desc = "A seemingly impenetrable wall."
|
||||
icon = 'icons/turf/walls.dmi'
|
||||
icon_state = "necro"
|
||||
explosion_block = 50
|
||||
baseturf = /turf/unsimulated/wall/necropolis
|
||||
|
||||
/turf/unsimulated/wall/boss
|
||||
name = "necropolis wall"
|
||||
desc = "A thick, seemingly indestructible stone wall."
|
||||
icon = 'icons/turf/walls/boss_wall.dmi'
|
||||
icon_state = "wall"
|
||||
canSmoothWith = list(/turf/unsimulated/wall/boss, /turf/unsimulated/wall/boss/see_through)
|
||||
explosion_block = 50
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/basalt
|
||||
smooth = SMOOTH_TRUE
|
||||
|
||||
/turf/unsimulated/wall/boss/see_through
|
||||
opacity = FALSE
|
||||
|
||||
/turf/unsimulated/wall/hierophant
|
||||
name = "wall"
|
||||
desc = "A wall made out of smooth, cold stone."
|
||||
icon = 'icons/turf/walls/hierophant_wall.dmi'
|
||||
icon_state = "hierophant"
|
||||
smooth = SMOOTH_TRUE
|
||||
@@ -22,9 +22,6 @@ var/global/list/potentialRandomZlevels = generateMapList(filename = "config/away
|
||||
var/atom/A = R
|
||||
if(A.smooth)
|
||||
queue_smooth(A)
|
||||
if(istype(T, /turf/simulated/mineral)) // For the listening post, among other maps
|
||||
var/turf/simulated/mineral/MT = T
|
||||
MT.add_edges()
|
||||
log_debug("\tTook [stop_watch(subtimer)]s")
|
||||
log_debug("Late setup finished - took [stop_watch(total_timer)]s")
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
terrain_theme = pick("lavaland","winter","jungle","alien")
|
||||
switch(terrain_theme)
|
||||
if("lavaland")//Depressurizes the place... and free cult metal, I guess.
|
||||
NewTerrainFloors = /turf/simulated/floor/asteroid/basalt // Needs to be updated after turf update
|
||||
NewTerrainFloors = /turf/simulated/floor/plating/asteroid/basalt // Needs to be updated after turf update
|
||||
NewTerrainWalls = /turf/simulated/wall/cult
|
||||
NewFlora = list(/mob/living/simple_animal/hostile/asteroid/goldgrub)
|
||||
florachance = 1
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
/**********************Mine areas**************************/
|
||||
|
||||
/area/mine
|
||||
icon_state = "mining"
|
||||
|
||||
/area/mine/dangerous/explored
|
||||
name = "Mine"
|
||||
icon_state = "explored"
|
||||
music = null
|
||||
always_unpowered = 1
|
||||
requires_power = 1
|
||||
poweralm = 0
|
||||
power_environ = 0
|
||||
power_equip = 0
|
||||
power_light = 0
|
||||
outdoors = 1
|
||||
ambientsounds = list('sound/ambience/ambimine.ogg')
|
||||
|
||||
/area/mine/dangerous/explored/golem
|
||||
name = "Small Asteroid"
|
||||
|
||||
/area/mine/dangerous/unexplored
|
||||
name = "Mine"
|
||||
icon_state = "unexplored"
|
||||
music = null
|
||||
always_unpowered = 1
|
||||
requires_power = 1
|
||||
poweralm = 0
|
||||
power_environ = 0
|
||||
power_equip = 0
|
||||
power_light = 0
|
||||
outdoors = 1
|
||||
ambientsounds = list('sound/ambience/ambimine.ogg')
|
||||
|
||||
/area/mine/lobby
|
||||
name = "Mining Station"
|
||||
|
||||
/area/mine/storage
|
||||
name = "Mining Station Storage"
|
||||
|
||||
/area/mine/production
|
||||
name = "Mining Station Starboard Wing"
|
||||
icon_state = "mining_production"
|
||||
|
||||
/area/mine/abandoned
|
||||
name = "Abandoned Mining Station"
|
||||
|
||||
/area/mine/living_quarters
|
||||
name = "Mining Station Port Wing"
|
||||
icon_state = "mining_living"
|
||||
|
||||
/area/mine/eva
|
||||
name = "Mining Station EVA"
|
||||
icon_state = "mining_eva"
|
||||
|
||||
/area/mine/maintenance
|
||||
name = "Mining Station Communications"
|
||||
|
||||
/area/mine/cafeteria
|
||||
name = "Mining Station Cafeteria"
|
||||
|
||||
/area/mine/hydroponics
|
||||
name = "Mining Station Hydroponics"
|
||||
|
||||
/area/mine/sleeper
|
||||
name = "Mining Station Emergency Sleeper"
|
||||
|
||||
/area/mine/north_outpost
|
||||
name = "North Mining Outpost"
|
||||
|
||||
/area/mine/west_outpost
|
||||
name = "West Mining Outpost"
|
||||
|
||||
/area/mine/podbay
|
||||
name = "Mining Podbay"
|
||||
@@ -592,23 +592,4 @@ Difficulty: Hard
|
||||
desc = "Heed its words."
|
||||
invisibility = 100
|
||||
|
||||
/turf/simulated/indestructible/hierophant
|
||||
icon_state = "hierophant1"
|
||||
oxygen = 14
|
||||
nitrogen = 23
|
||||
temperature = 300
|
||||
desc = "A floor with a square pattern. It's faintly cool to the touch."
|
||||
|
||||
/turf/simulated/indestructible/hierophant/New()
|
||||
..()
|
||||
if(prob(50))
|
||||
icon_state = "hierophant2"
|
||||
|
||||
/turf/simulated/indestructible/riveted/hierophant
|
||||
name = "wall"
|
||||
desc = "A wall made out of smooth, cold stone."
|
||||
icon = 'icons/turf/walls/hierophant_wall.dmi'
|
||||
icon_state = "hierophant"
|
||||
smooth = SMOOTH_TRUE
|
||||
|
||||
#undef MEDAL_PREFIX
|
||||
|
||||
@@ -0,0 +1,413 @@
|
||||
//The necropolis gate is used to call forth Legion from the Necropolis.
|
||||
/obj/structure/necropolis_gate
|
||||
name = "necropolis gate"
|
||||
desc = "A massive stone gateway."
|
||||
icon = 'icons/effects/96x96.dmi'
|
||||
icon_state = "gate_full"
|
||||
flags = ON_BORDER
|
||||
appearance_flags = 0
|
||||
layer = TABLE_LAYER
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF
|
||||
unacidable = 1
|
||||
light_range = 8
|
||||
light_color = LIGHT_COLOR_LAVA
|
||||
var/open = FALSE
|
||||
var/changing_openness = FALSE
|
||||
var/locked = FALSE
|
||||
var/static/mutable_appearance/top_overlay
|
||||
var/static/mutable_appearance/door_overlay
|
||||
var/static/mutable_appearance/dais_overlay
|
||||
var/obj/structure/opacity_blocker/sight_blocker
|
||||
var/sight_blocker_distance = 1
|
||||
|
||||
/obj/structure/necropolis_gate/Initialize()
|
||||
. = ..()
|
||||
setDir(SOUTH)
|
||||
var/turf/sight_blocker_turf = get_turf(src)
|
||||
if(sight_blocker_distance)
|
||||
for(var/i in 1 to sight_blocker_distance)
|
||||
if(!sight_blocker_turf)
|
||||
break
|
||||
sight_blocker_turf = get_step(sight_blocker_turf, NORTH)
|
||||
if(sight_blocker_turf)
|
||||
sight_blocker = new (sight_blocker_turf) //we need to block sight in a different spot than most things do
|
||||
sight_blocker.pixel_y = initial(sight_blocker.pixel_y) - (32 * sight_blocker_distance)
|
||||
icon_state = "gate_bottom"
|
||||
top_overlay = mutable_appearance('icons/effects/96x96.dmi', "gate_top")
|
||||
top_overlay.layer = EDGED_TURF_LAYER
|
||||
add_overlay(top_overlay)
|
||||
door_overlay = mutable_appearance('icons/effects/96x96.dmi', "door")
|
||||
door_overlay.layer = EDGED_TURF_LAYER
|
||||
add_overlay(door_overlay)
|
||||
dais_overlay = mutable_appearance('icons/effects/96x96.dmi', "gate_dais")
|
||||
dais_overlay.layer = CLOSED_TURF_LAYER
|
||||
add_overlay(dais_overlay)
|
||||
|
||||
/obj/structure/necropolis_gate/Destroy(force)
|
||||
if(force)
|
||||
qdel(sight_blocker, TRUE)
|
||||
. = ..()
|
||||
else
|
||||
return QDEL_HINT_LETMELIVE
|
||||
|
||||
/obj/structure/necropolis_gate/singularity_pull()
|
||||
return 0
|
||||
|
||||
/obj/structure/necropolis_gate/CanPass(atom/movable/mover, turf/target)
|
||||
if(get_dir(loc, target) == dir)
|
||||
return !density
|
||||
return 1
|
||||
|
||||
/obj/structure/necropolis_gate/CheckExit(atom/movable/O, target)
|
||||
if(get_dir(O.loc, target) == dir)
|
||||
return !density
|
||||
return 1
|
||||
|
||||
/obj/structure/opacity_blocker
|
||||
icon = 'icons/effects/96x96.dmi'
|
||||
icon_state = "gate_blocker"
|
||||
layer = EDGED_TURF_LAYER
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
opacity = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/opacity_blocker/singularity_pull()
|
||||
return 0
|
||||
|
||||
/obj/structure/opacity_blocker/Destroy(force)
|
||||
if(force)
|
||||
. = ..()
|
||||
else
|
||||
return QDEL_HINT_LETMELIVE
|
||||
|
||||
//ATTACK HAND IGNORING PARENT RETURN VALUE
|
||||
/obj/structure/necropolis_gate/attack_hand(mob/user)
|
||||
if(locked)
|
||||
to_chat(user, "<span class='boldannounce'>It's [open ? "stuck open":"locked"].</span>")
|
||||
return
|
||||
toggle_the_gate(user)
|
||||
return ..()
|
||||
|
||||
/obj/structure/necropolis_gate/proc/toggle_the_gate(mob/user, legion_damaged)
|
||||
if(changing_openness)
|
||||
return
|
||||
changing_openness = TRUE
|
||||
var/turf/T = get_turf(src)
|
||||
if(open)
|
||||
new /obj/effect/temp_visual/necropolis(T)
|
||||
visible_message("<span class='boldwarning'>The door slams closed!</span>")
|
||||
sleep(1)
|
||||
playsound(T, 'sound/effects/stonedoor_openclose.ogg', 300, TRUE, frequency = 80000)
|
||||
sleep(1)
|
||||
density = TRUE
|
||||
sleep(1)
|
||||
var/turf/sight_blocker_turf = get_turf(src)
|
||||
if(sight_blocker_distance)
|
||||
for(var/i in 1 to sight_blocker_distance)
|
||||
if(!sight_blocker_turf)
|
||||
break
|
||||
sight_blocker_turf = get_step(sight_blocker_turf, NORTH)
|
||||
if(sight_blocker_turf)
|
||||
sight_blocker.pixel_y = initial(sight_blocker.pixel_y) - (32 * sight_blocker_distance)
|
||||
sight_blocker.forceMove(sight_blocker_turf)
|
||||
sleep(2.5)
|
||||
playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 30, TRUE, frequency = 15000)
|
||||
add_overlay(door_overlay)
|
||||
open = FALSE
|
||||
else
|
||||
cut_overlay(door_overlay)
|
||||
new /obj/effect/temp_visual/necropolis/open(T)
|
||||
sleep(2)
|
||||
visible_message("<span class='warning'>The door starts to grind open...</span>")
|
||||
playsound(T, 'sound/effects/stonedoor_openclose.ogg', 300, TRUE, frequency = 20000)
|
||||
sleep(22)
|
||||
sight_blocker.forceMove(src)
|
||||
sleep(5)
|
||||
density = FALSE
|
||||
sleep(5)
|
||||
open = TRUE
|
||||
changing_openness = FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/necropolis_gate/locked
|
||||
locked = TRUE
|
||||
|
||||
GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate)
|
||||
/obj/structure/necropolis_gate/legion_gate
|
||||
desc = "A tremendous, impossibly large gateway, set into a massive tower of stone."
|
||||
sight_blocker_distance = 2
|
||||
|
||||
/obj/structure/necropolis_gate/legion_gate/Initialize()
|
||||
. = ..()
|
||||
GLOB.necropolis_gate = src
|
||||
|
||||
/obj/structure/necropolis_gate/legion_gate/Destroy(force)
|
||||
if(force)
|
||||
if(GLOB.necropolis_gate == src)
|
||||
GLOB.necropolis_gate = null
|
||||
. = ..()
|
||||
else
|
||||
return QDEL_HINT_LETMELIVE
|
||||
|
||||
//ATTACK HAND IGNORING PARENT RETURN VALUE
|
||||
/obj/structure/necropolis_gate/legion_gate/attack_hand(mob/user)
|
||||
if(!open && !changing_openness)
|
||||
var/safety = alert(user, "You think this might be a bad idea...", "Knock on the door?", "Proceed", "Abort")
|
||||
if(safety == "Abort" || !in_range(src, user) || !src || open || changing_openness || user.incapacitated())
|
||||
return
|
||||
user.visible_message("<span class='warning'>[user] knocks on [src]...</span>", "<span class='boldannounce'>You tentatively knock on [src]...</span>")
|
||||
playsound(user.loc, 'sound/effects/shieldbash.ogg', 100, 1)
|
||||
sleep(50)
|
||||
return ..()
|
||||
|
||||
/obj/structure/necropolis_gate/legion_gate/toggle_the_gate(mob/user, legion_damaged)
|
||||
if(open)
|
||||
return
|
||||
. = ..()
|
||||
if(.)
|
||||
locked = TRUE
|
||||
var/turf/T = get_turf(src)
|
||||
visible_message("<span class='userdanger'>Something horrible emerges from the Necropolis!</span>")
|
||||
if(legion_damaged)
|
||||
message_admins("Legion took damage while the necropolis gate was closed, and has released itself!")
|
||||
log_game("Legion took damage while the necropolis gate was closed and released itself.")
|
||||
else
|
||||
message_admins("[user ? ADMIN_LOOKUPFLW(user):"Unknown"] has released Legion!")
|
||||
log_game("[user ? key_name(user) : "Unknown"] released Legion.")
|
||||
|
||||
var/sound/legion_sound = sound('sound/creatures/legion_spawn.ogg')
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(M.z == z)
|
||||
to_chat(M, "<span class='userdanger'>Discordant whispers flood your mind in a thousand voices. Each one speaks your name, over and over. Something horrible has been released.</span>")
|
||||
M.playsound_local(T, null, 100, FALSE, 0, FALSE, pressure_affected = FALSE, S = legion_sound)
|
||||
flash_color(M, flash_color = "#FF0000", flash_time = 50)
|
||||
var/mutable_appearance/release_overlay = mutable_appearance('icons/effects/effects.dmi', "legiondoor")
|
||||
notify_ghosts("Legion has been released in the [get_area(src)]!", source = src, alert_overlay = release_overlay, action = NOTIFY_JUMP)
|
||||
|
||||
/obj/effect/temp_visual/necropolis
|
||||
icon = 'icons/effects/96x96.dmi'
|
||||
icon_state = "door_closing"
|
||||
appearance_flags = 0
|
||||
duration = 6
|
||||
layer = EDGED_TURF_LAYER
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
|
||||
/obj/effect/temp_visual/necropolis/open
|
||||
icon_state = "door_opening"
|
||||
duration = 38
|
||||
|
||||
/obj/structure/necropolis_arch
|
||||
name = "necropolis arch"
|
||||
desc = "A massive arch over the necropolis gate, set into a massive tower of stone."
|
||||
icon = 'icons/effects/160x160.dmi'
|
||||
icon_state = "arch_full"
|
||||
appearance_flags = 0
|
||||
layer = TABLE_LAYER
|
||||
anchored = TRUE
|
||||
pixel_x = -64
|
||||
pixel_y = -40
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF
|
||||
unacidable = TRUE
|
||||
var/open = FALSE
|
||||
var/static/mutable_appearance/top_overlay
|
||||
|
||||
/obj/structure/necropolis_arch/Initialize()
|
||||
. = ..()
|
||||
icon_state = "arch_bottom"
|
||||
top_overlay = mutable_appearance('icons/effects/160x160.dmi', "arch_top")
|
||||
top_overlay.layer = EDGED_TURF_LAYER
|
||||
add_overlay(top_overlay)
|
||||
|
||||
/obj/structure/necropolis_arch/singularity_pull()
|
||||
return 0
|
||||
|
||||
/obj/structure/necropolis_arch/Destroy(force)
|
||||
if(force)
|
||||
. = ..()
|
||||
else
|
||||
return QDEL_HINT_LETMELIVE
|
||||
|
||||
#define STABLE 0 //The tile is stable and won't collapse/sink when crossed.
|
||||
#define COLLAPSE_ON_CROSS 1 //The tile is unstable and will temporary become unusable when crossed.
|
||||
#define DESTROY_ON_CROSS 2 //The tile is nearly broken and will permanently become unusable when crossed.
|
||||
#define UNIQUE_EFFECT 3 //The tile has some sort of unique effect when crossed.
|
||||
//stone tiles for boss arenas
|
||||
/obj/structure/stone_tile
|
||||
name = "stone tile"
|
||||
icon = 'icons/turf/boss_floors.dmi'
|
||||
icon_state = "pristine_tile1"
|
||||
layer = ABOVE_OPEN_TURF_LAYER
|
||||
anchored = TRUE
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF
|
||||
unacidable = TRUE
|
||||
var/tile_key = "pristine_tile"
|
||||
var/tile_random_sprite_max = 24
|
||||
var/fall_on_cross = STABLE //If the tile has some sort of effect when crossed
|
||||
var/fallen = FALSE //If the tile is unusable
|
||||
var/falling = FALSE //If the tile is falling
|
||||
|
||||
/obj/structure/stone_tile/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = "[tile_key][rand(1, tile_random_sprite_max)]"
|
||||
|
||||
/obj/structure/stone_tile/Destroy(force)
|
||||
if(force || fallen)
|
||||
. = ..()
|
||||
else
|
||||
return QDEL_HINT_LETMELIVE
|
||||
|
||||
/obj/structure/stone_tile/singularity_pull()
|
||||
return
|
||||
|
||||
/obj/structure/stone_tile/Crossed(atom/movable/AM)
|
||||
if(falling || fallen)
|
||||
return
|
||||
var/turf/T = get_turf(src)
|
||||
if(!islava(T) && !ischasm(T)) //nothing to sink or fall into
|
||||
return
|
||||
var/obj/item/I
|
||||
if(istype(AM, /obj/item))
|
||||
I = AM
|
||||
var/mob/living/L
|
||||
if(isliving(AM))
|
||||
L = AM
|
||||
switch(fall_on_cross)
|
||||
if(COLLAPSE_ON_CROSS, DESTROY_ON_CROSS)
|
||||
if((I && I.w_class >= WEIGHT_CLASS_BULKY) || (L && !(L.flying) && L.mob_size >= MOB_SIZE_HUMAN)) //too heavy! too big! aaah!
|
||||
collapse()
|
||||
if(UNIQUE_EFFECT)
|
||||
crossed_effect(AM)
|
||||
|
||||
/obj/structure/stone_tile/proc/collapse()
|
||||
falling = TRUE
|
||||
var/break_that_sucker = fall_on_cross == DESTROY_ON_CROSS
|
||||
playsound(src, 'sound/effects/pressureplate.ogg', 50, TRUE)
|
||||
Shake(-1, -1, 25)
|
||||
sleep(5)
|
||||
if(break_that_sucker)
|
||||
playsound(src, 'sound/effects/break_stone.ogg', 50, TRUE)
|
||||
else
|
||||
playsound(src, 'sound/mecha/mechmove04.ogg', 50, TRUE)
|
||||
animate(src, alpha = 0, pixel_y = pixel_y - 3, time = 5)
|
||||
fallen = TRUE
|
||||
if(break_that_sucker)
|
||||
QDEL_IN(src, 10)
|
||||
else
|
||||
addtimer(CALLBACK(src, .proc/rebuild), 55)
|
||||
|
||||
/obj/structure/stone_tile/proc/rebuild()
|
||||
pixel_x = initial(pixel_x)
|
||||
pixel_y = initial(pixel_y) - 5
|
||||
animate(src, alpha = initial(alpha), pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 30)
|
||||
sleep(30)
|
||||
falling = FALSE
|
||||
fallen = FALSE
|
||||
|
||||
/obj/structure/stone_tile/proc/crossed_effect(atom/movable/AM)
|
||||
return
|
||||
|
||||
/obj/structure/stone_tile/block
|
||||
name = "stone block"
|
||||
icon_state = "pristine_block1"
|
||||
tile_key = "pristine_block"
|
||||
tile_random_sprite_max = 4
|
||||
|
||||
/obj/structure/stone_tile/slab
|
||||
name = "stone slab"
|
||||
icon_state = "pristine_slab1"
|
||||
tile_key = "pristine_slab"
|
||||
tile_random_sprite_max = 4
|
||||
|
||||
/obj/structure/stone_tile/center
|
||||
name = "stone center tile"
|
||||
icon_state = "pristine_center1"
|
||||
tile_key = "pristine_center"
|
||||
tile_random_sprite_max = 4
|
||||
|
||||
/obj/structure/stone_tile/surrounding
|
||||
name = "stone surrounding slab"
|
||||
icon_state = "pristine_surrounding1"
|
||||
tile_key = "pristine_surrounding"
|
||||
tile_random_sprite_max = 2
|
||||
|
||||
/obj/structure/stone_tile/surrounding_tile
|
||||
name = "stone surrounding tile"
|
||||
icon_state = "pristine_surrounding_tile1"
|
||||
tile_key = "pristine_surrounding_tile"
|
||||
tile_random_sprite_max = 2
|
||||
|
||||
//cracked stone tiles
|
||||
/obj/structure/stone_tile/cracked
|
||||
name = "cracked stone tile"
|
||||
icon_state = "cracked_tile1"
|
||||
tile_key = "cracked_tile"
|
||||
|
||||
/obj/structure/stone_tile/block/cracked
|
||||
name = "cracked stone block"
|
||||
icon_state = "cracked_block1"
|
||||
tile_key = "cracked_block"
|
||||
|
||||
/obj/structure/stone_tile/slab/cracked
|
||||
name = "cracked stone slab"
|
||||
icon_state = "cracked_slab1"
|
||||
tile_key = "cracked_slab"
|
||||
tile_random_sprite_max = 1
|
||||
|
||||
/obj/structure/stone_tile/center/cracked
|
||||
name = "cracked stone center tile"
|
||||
icon_state = "cracked_center1"
|
||||
tile_key = "cracked_center"
|
||||
|
||||
/obj/structure/stone_tile/surrounding/cracked
|
||||
name = "cracked stone surrounding slab"
|
||||
icon_state = "cracked_surrounding1"
|
||||
tile_key = "cracked_surrounding"
|
||||
tile_random_sprite_max = 1
|
||||
|
||||
/obj/structure/stone_tile/surrounding_tile/cracked
|
||||
name = "cracked stone surrounding tile"
|
||||
icon_state = "cracked_surrounding_tile1"
|
||||
tile_key = "cracked_surrounding_tile"
|
||||
|
||||
//burnt stone tiles
|
||||
/obj/structure/stone_tile/burnt
|
||||
name = "burnt stone tile"
|
||||
icon_state = "burnt_tile1"
|
||||
tile_key = "burnt_tile"
|
||||
|
||||
/obj/structure/stone_tile/block/burnt
|
||||
name = "burnt stone block"
|
||||
icon_state = "burnt_block1"
|
||||
tile_key = "burnt_block"
|
||||
|
||||
/obj/structure/stone_tile/slab/burnt
|
||||
name = "burnt stone slab"
|
||||
icon_state = "burnt_slab1"
|
||||
tile_key = "burnt_slab"
|
||||
|
||||
/obj/structure/stone_tile/center/burnt
|
||||
name = "burnt stone center tile"
|
||||
icon_state = "burnt_center1"
|
||||
tile_key = "burnt_center"
|
||||
|
||||
/obj/structure/stone_tile/surrounding/burnt
|
||||
name = "burnt stone surrounding slab"
|
||||
icon_state = "burnt_surrounding1"
|
||||
tile_key = "burnt_surrounding"
|
||||
|
||||
/obj/structure/stone_tile/surrounding_tile/burnt
|
||||
name = "burnt stone surrounding tile"
|
||||
icon_state = "burnt_surrounding_tile1"
|
||||
tile_key = "burnt_surrounding_tile"
|
||||
|
||||
#undef STABLE
|
||||
#undef COLLAPSE_ON_CROSS
|
||||
#undef DESTROY_ON_CROSS
|
||||
#undef UNIQUE_EFFECT
|
||||
@@ -1,12 +1,11 @@
|
||||
//Parent types
|
||||
|
||||
/area/ruin/
|
||||
/area/ruin
|
||||
name = "\improper Unexplored Location"
|
||||
icon_state = "away"
|
||||
has_gravity = 1
|
||||
there_can_be_many = 1
|
||||
|
||||
|
||||
/area/ruin/unpowered
|
||||
always_unpowered = 0
|
||||
|
||||
@@ -16,9 +15,6 @@
|
||||
/area/ruin/powered
|
||||
requires_power = 0
|
||||
|
||||
|
||||
|
||||
|
||||
//Areas
|
||||
|
||||
/area/ruin/unpowered/no_grav/way_home
|
||||
@@ -35,7 +31,6 @@
|
||||
name = "Hallway"
|
||||
icon_state = "hallC"
|
||||
|
||||
|
||||
/area/ruin/onehalf/drone_bay
|
||||
name = "Mining Drone Bay"
|
||||
icon_state = "engine"
|
||||
|
||||
@@ -358,7 +358,7 @@
|
||||
dwidth = 1
|
||||
width = 3
|
||||
height = 4
|
||||
var/target_area = /area/mine/dangerous/unexplored
|
||||
var/target_area = /area/mine/unexplored
|
||||
|
||||
/obj/docking_port/stationary/random/Initialize()
|
||||
..()
|
||||
|
||||
|
Before Width: | Height: | Size: 509 KiB After Width: | Height: | Size: 533 KiB |
|
Before Width: | Height: | Size: 358 KiB After Width: | Height: | Size: 406 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 419 KiB After Width: | Height: | Size: 422 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 206 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
@@ -1611,7 +1611,6 @@
|
||||
#include "code\modules\mining\machine_processing.dm"
|
||||
#include "code\modules\mining\machine_stacking.dm"
|
||||
#include "code\modules\mining\machine_unloading.dm"
|
||||
#include "code\modules\mining\mine_areas.dm"
|
||||
#include "code\modules\mining\mine_items.dm"
|
||||
#include "code\modules\mining\minebot.dm"
|
||||
#include "code\modules\mining\mint.dm"
|
||||
@@ -2280,6 +2279,7 @@
|
||||
#include "code\modules\response_team\ert.dm"
|
||||
#include "code\modules\response_team\ert_outfits.dm"
|
||||
#include "code\modules\ruins\ruin_areas.dm"
|
||||
#include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm"
|
||||
#include "code\modules\security_levels\keycard authentication.dm"
|
||||
#include "code\modules\security_levels\security levels.dm"
|
||||
#include "code\modules\shuttle\assault_pod.dm"
|
||||
|
||||