Merge pull request #5469 from VOREStation/upstream-merge-6245

[MIRROR] The great rock update.
This commit is contained in:
Novacat
2019-07-14 01:36:40 -04:00
committed by GitHub
8 changed files with 240 additions and 4 deletions

View File

@@ -0,0 +1,117 @@
/obj/structure/outcrop
name = "outcrop"
desc = "A boring rocky outcrop."
icon = 'icons/obj/outcrop.dmi'
density = 1
throwpass = 1
climbable = 1
anchored = 1
icon_state = "outcrop"
var/mindrop = 5
var/upperdrop = 10
var/outcropdrop = /obj/item/weapon/ore/glass
/obj/structure/outcrop/Initialize()
. = ..()
if(prob(1))
overlays += image(icon, "[initial(icon_state)]-egg")
/obj/structure/outcrop/diamond
name = "shiny outcrop"
desc = "A shiny rocky outcrop."
icon_state = "outcrop-diamond"
mindrop = 2
upperdrop = 4
outcropdrop = /obj/item/weapon/ore/diamond
/obj/structure/outcrop/phoron
name = "shiny outcrop"
desc = "A shiny rocky outcrop."
icon_state = "outcrop-phoron"
mindrop = 4
upperdrop = 8
outcropdrop = /obj/item/weapon/ore/phoron
/obj/structure/outcrop/iron
name = "rugged outcrop"
desc = "A rugged rocky outcrop."
icon_state = "outcrop-iron"
mindrop = 10
upperdrop = 20
outcropdrop = /obj/item/weapon/ore/iron
/obj/structure/outcrop/coal
name = "rugged outcrop"
desc = "A rugged rocky outcrop."
icon_state = "outcrop-coal"
mindrop = 10
upperdrop = 20
outcropdrop = /obj/item/weapon/ore/coal
/obj/structure/outcrop/lead
name = "rugged outcrop"
desc = "A rugged rocky outcrop."
icon_state = "outcrop-lead"
mindrop = 2
upperdrop = 5
outcropdrop = /obj/item/weapon/ore/lead
/obj/structure/outcrop/gold
name = "hollow outcrop"
desc = "A hollow rocky outcrop."
icon_state = "outcrop-gold"
mindrop = 4
upperdrop = 6
outcropdrop = /obj/item/weapon/ore/gold
/obj/structure/outcrop/silver
name = "hollow outcrop"
desc = "A hollow rocky outcrop."
icon_state = "outcrop-silver"
mindrop = 6
upperdrop = 8
outcropdrop = /obj/item/weapon/ore/silver
/obj/structure/outcrop/platinum
name = "hollow outcrop"
desc = "A hollow rocky outcrop."
icon_state = "outcrop-platinum"
mindrop = 2
upperdrop = 5
outcropdrop = /obj/item/weapon/ore/osmium
/obj/structure/outcrop/uranium
name = "spiky outcrop"
desc = "A spiky rocky outcrop, it glows faintly."
icon_state = "outcrop-uranium"
mindrop = 4
upperdrop = 8
outcropdrop = /obj/item/weapon/ore/uranium
/obj/structure/outcrop/attackby(obj/item/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/pickaxe))
to_chat(user, "<span class='notice'>[user] begins to hack away at \the [src].</span>")
if(do_after(user,40))
to_chat(user, "<span class='notice'>You have finished digging!</span>")
for(var/i=0;i<(rand(mindrop,upperdrop));i++)
new outcropdrop(get_turf(src))
qdel(src)
return
/obj/random/outcrop //In case you want an outcrop without pre-determining the type of ore.
name = "random rock outcrop"
desc = "This is a random rock outcrop."
icon = 'icons/obj/outcrop.dmi'
icon_state = "outcrop-random"
/obj/random/outcrop/item_to_spawn()
return pick(prob(100);/obj/structure/outcrop,
prob(100);/obj/structure/outcrop/iron,
prob(100);/obj/structure/outcrop/coal,
prob(65);/obj/structure/outcrop/silver,
prob(50);/obj/structure/outcrop/gold,
prob(30);/obj/structure/outcrop/uranium,
prob(30);/obj/structure/outcrop/phoron,
prob(7);/obj/structure/outcrop/diamond,
prob(15);/obj/structure/outcrop/platinum,
prob(15);/obj/structure/outcrop/lead)

View File

@@ -11,6 +11,10 @@ var/list/mining_overlay_cache = list()
name = "rock"
icon = 'icons/turf/walls.dmi'
icon_state = "rock"
var/rock_side_icon_state = "rock_side"
var/sand_icon_state = "asteroid"
var/rock_icon_state = "rock"
var/random_icon = 0
oxygen = 0
nitrogen = 0
opacity = 1
@@ -54,6 +58,14 @@ var/list/mining_overlay_cache = list()
has_resources = 1
// Alternative rock wall sprites.
/turf/simulated/mineral/light
icon_state = "rock-light"
rock_side_icon_state = "rock_side-light"
sand_icon_state = "sand-light"
rock_icon_state = "rock-light"
random_icon = 1
/turf/simulated/mineral/ignore_mapgen
ignore_mapgen = 1
@@ -66,6 +78,23 @@ var/list/mining_overlay_cache = list()
blocks_air = 0
can_build_into_floor = TRUE
//Alternative sand floor sprite.
turf/simulated/mineral/floor/light
icon_state = "sand-light"
sand_icon_state = "sand-light"
turf/simulated/mineral/floor/light_border
icon_state = "sand-light-border"
sand_icon_state = "sand-light-border"
turf/simulated/mineral/floor/light_nub
icon_state = "sand-light-nub"
sand_icon_state = "sand-light-nub"
turf/simulated/mineral/floor/light_corner
icon_state = "sand-light-corner"
sand_icon_state = "sand-light-corner"
/turf/simulated/mineral/floor/ignore_mapgen
ignore_mapgen = 1
@@ -130,6 +159,9 @@ var/list/mining_overlay_cache = list()
update_icon(1)
if(density && mineral)
. = INITIALIZE_HINT_LATELOAD
if(random_icon)
dir = pick(alldirs)
. = INITIALIZE_HINT_LATELOAD
/turf/simulated/mineral/LateInitialize()
if(density && mineral)
@@ -147,13 +179,13 @@ var/list/mining_overlay_cache = list()
name = "rock"
icon = 'icons/turf/walls.dmi'
icon_state = "rock"
icon_state = rock_icon_state
//Apply overlays if we should have borders
for(var/direction in cardinal)
var/turf/T = get_step(src,direction)
if(istype(T) && !T.density)
add_overlay(get_cached_border("rock_side",direction,icon,"rock_side"))
add_overlay(get_cached_border(rock_side_icon_state,direction,icon,rock_side_icon_state))
if(archaeo_overlay)
add_overlay(archaeo_overlay)
@@ -165,7 +197,7 @@ var/list/mining_overlay_cache = list()
else
name = "sand"
icon = 'icons/turf/flooring/asteroid.dmi'
icon_state = "asteroid"
icon_state = sand_icon_state
if(sand_dug)
add_overlay("dug_overlay")
@@ -179,7 +211,7 @@ var/list/mining_overlay_cache = list()
else
var/turf/T = get_step(src, direction)
if(istype(T) && T.density)
add_overlay(get_cached_border("rock_side",direction,'icons/turf/walls.dmi',"rock_side"))
add_overlay(get_cached_border(rock_side_icon_state,direction,'icons/turf/walls.dmi',rock_side_icon_state))
if(overlay_detail)
add_overlay('icons/turf/flooring/decals.dmi',overlay_detail)