Merge pull request #918 from Kabramen/new-wood-types

New wood types + lavaland red grass
This commit is contained in:
QuoteFox
2021-01-22 08:45:11 +00:00
committed by GitHub
17 changed files with 445 additions and 2 deletions
@@ -11,6 +11,9 @@
* Brass (clockwork cult)
* Bronze (bake brass)
* Cotton/Duracotton
* Shwadon
*
*
*/
/*
@@ -769,3 +772,95 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra
merge_type = /obj/item/stack/sheet/cotton/durathread
pull_effort = 70
loom_result = /obj/item/stack/sheet/durathread
/*
* Shadow Wood
*/
GLOBAL_LIST_INIT(shadoww_recipes, list ( \
new/datum/stack_recipe("Shadow wood floor tile", /obj/item/stack/tile/shadoww, 1, 4, 20), \
new/datum/stack_recipe("Shadow wood table frame", /obj/structure/table_frame/shadoww, 2, time = 10), \
null, \
))
/obj/item/stack/sheet/mineral/shadoww
name = "shadow wood"
desc = "An purplish wood, it has nothing of special besides its color."
singular_name = "shadow wood plank"
icon_state = "sheet-shadoww"
item_state = "sheet-shadoww"
icon = 'icons/obj/stack_objects.dmi'
sheettype = "shadoww"
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0)
resistance_flags = FLAMMABLE
merge_type = /obj/item/stack/sheet/mineral/shadoww
novariants = TRUE
grind_results = list(/datum/reagent/carbon = 20)
/obj/item/stack/sheet/mineral/shadoww/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.shadoww_recipes
return ..()
/obj/item/stack/sheet/mineral/shadoww/fifty
amount = 50
/*
* Giant mushroom
*/
GLOBAL_LIST_INIT(gmushroom_recipes, list ( \
new/datum/stack_recipe("Mushroom floor tile", /obj/item/stack/tile/gmushroom, 1, 4, 20), \
new/datum/stack_recipe("Mushroom table frame", /obj/structure/table_frame/gmushroom, 2, time = 10), \
null, \
))
/obj/item/stack/sheet/mineral/gmushroom
name = "mushroom 'wood'"
desc = "A material similar to wood, except for being fireproof."
singular_name = "mushroom plank"
icon_state = "sheet-gmushroom"
item_state = "sheet-gmushroom"
icon = 'icons/obj/stack_objects.dmi'
sheettype = "gmushroom"
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 0)
resistance_flags = FIRE_PROOF
merge_type = /obj/item/stack/sheet/mineral/gmushroom
novariants = TRUE
grind_results = list(/datum/reagent/carbon = 20)
/obj/item/stack/sheet/mineral/gmushroom/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.gmushroom_recipes
return ..()
/obj/item/stack/sheet/mineral/gmushroom/fifty
amount = 50
/*
* Plaswood
*/
GLOBAL_LIST_INIT(plaswood_recipes, list ( \
new/datum/stack_recipe("Plaswood floor tile", /obj/item/stack/tile/plaswood, 1, 4, 20), \
new/datum/stack_recipe("Plaswood table frame", /obj/structure/table_frame/plaswood, 2, time = 10), \
null, \
))
/obj/item/stack/sheet/mineral/plaswood
name = "plaswood"
desc = "A type of resistant wood acquired from Plasma Trees. It amost looks like metal!"
singular_name = "plaswood plank"
icon_state = "sheet-plaswood"
item_state = "sheet-plaswood"
icon = 'icons/obj/stack_objects.dmi'
sheettype = "plaswood"
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 80)
resistance_flags = FLAMMABLE | ACID_PROOF
throwforce = 10
merge_type = /obj/item/stack/sheet/mineral/plaswood
novariants = TRUE
grind_results = list(/datum/reagent/carbon = 20, /datum/reagent/toxin/plasma = 20)
point_value = 23
/obj/item/stack/sheet/mineral/plaswood/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.plaswood_recipes
return ..()
/obj/item/stack/sheet/mineral/plaswood/fifty
amount = 50
@@ -270,3 +270,30 @@
materials = list() // All other Borg versions of items have no Metal or Glass - RR
is_cyborg = 1
cost = 125
//Mushroom
/obj/item/stack/tile/gmushroom
name = "mushroom floor tile"
singular_name = "mushroom floor tile"
desc = "An easy to fit mushroom floor tile."
icon_state = "tile-gmushroom"
turf_type = /turf/open/floor/gmushroom
resistance_flags = FIRE_PROOF
//Shadown Wood
/obj/item/stack/tile/shadoww
name = "shadow wood floor tile"
singular_name = "shadow wood floor tile"
desc = "An easy to fit wood floor tile."
icon_state = "tile-shadoww"
turf_type = /turf/open/floor/shadoww
resistance_flags = FLAMMABLE
//Plaswood
/obj/item/stack/tile/plaswood
name = "plaswood floor tile"
singular_name = "plaswood floor tile"
desc = "An easy to fit wood floor tile."
icon_state = "tile-plaswood"
turf_type = /turf/open/floor/plaswood
resistance_flags = FLAMMABLE | ACID_PROOF
+15
View File
@@ -435,3 +435,18 @@
/obj/structure/flora/rock/pile/largejungle/Initialize()
. = ..()
icon_state = "[initial(icon_state)][rand(1,3)]"
//lavaland grass
/obj/structure/flora/redgrass
name = "tall grass"
desc = "A patch of overgrown red grass."
icon = 'icons/obj/lavaland/redgrass.dmi'
gender = PLURAL //"this is grass" not "this is a grass"
/obj/structure/flora/redgrass/redg
icon_state = "tallgrass1bb"
/obj/structure/flora/redgrass/redg/Initialize()
icon_state = "tallgrass[rand(1, 4)]bb"
. = ..()
@@ -2,6 +2,9 @@
* Contains:
* Frames
* Wooden Frames
* Shadow Wood Frames
* Plaswood Frames
* Mushroom Frames
*/
@@ -126,3 +129,90 @@
color = "#960000"
animate(src, color = previouscolor, time = 8)
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
/*
* Plaswood Frames
*/
/obj/structure/table_frame/plaswood
name = "Plaswood table frame"
desc = "Four wooden legs with four framing wooden rods for a wooden table. You could easily pass through this."
icon_state = "plaswood_frame"
framestack = /obj/item/stack/sheet/mineral/plaswood
framestackamount = 2
resistance_flags = FLAMMABLE | ACID_PROOF
/obj/structure/table_frame/plaswood/attackby(obj/item/I, mob/user, params)
if (istype(I, /obj/item/stack))
var/obj/item/stack/material = I
var/toConstruct // stores the table variant
if(istype(I, /obj/item/stack/sheet/mineral/plaswood))
toConstruct = /obj/structure/table/plaswood
if (toConstruct)
if(material.get_amount() < 1)
to_chat(user, "<span class='warning'>You need one [material.name] sheet to do this!</span>")
return
to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
if(do_after(user, 20, target = src) && material.use(1))
make_new_table(toConstruct)
else
return ..()
/*
* Mushroom Frames
*/
/obj/structure/table_frame/gmushroom
name = "mushroom table frame"
desc = "Four wooden legs with four framing wooden rods for a wooden table. You could easily pass through this."
icon_state = "gmushroom_frame"
framestack = /obj/item/stack/sheet/mineral/gmushroom
framestackamount = 2
resistance_flags = FIRE_PROOF
/obj/structure/table_frame/gmushroom/attackby(obj/item/I, mob/user, params)
if (istype(I, /obj/item/stack))
var/obj/item/stack/material = I
var/toConstruct // stores the table variant
if(istype(I, /obj/item/stack/sheet/mineral/gmushroom))
toConstruct = /obj/structure/table/gmushroom
if (toConstruct)
if(material.get_amount() < 1)
to_chat(user, "<span class='warning'>You need one [material.name] sheet to do this!</span>")
return
to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
if(do_after(user, 20, target = src) && material.use(1))
make_new_table(toConstruct)
else
return ..()
/*
* Shadow Wood Frames
*/
/obj/structure/table_frame/shadoww
name = "shadow wood frame"
desc = "Four wooden legs with four framing wooden rods for a wooden table. You could easily pass through this."
icon_state = "shadoww_frame"
framestack = /obj/item/stack/sheet/mineral/shadoww
framestackamount = 2
resistance_flags = FLAMMABLE
/obj/structure/table_frame/shadoww/attackby(obj/item/I, mob/user, params)
if (istype(I, /obj/item/stack))
var/obj/item/stack/material = I
var/toConstruct // stores the table variant
if(istype(I, /obj/item/stack/sheet/mineral/shadoww))
toConstruct = /obj/structure/table/shadoww
if (toConstruct)
if(material.get_amount() < 1)
to_chat(user, "<span class='warning'>You need one [material.name] sheet to do this!</span>")
return
to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
if(do_after(user, 20, target = src) && material.use(1))
make_new_table(toConstruct)
else
return ..()
@@ -318,6 +318,56 @@
for(var/obj/item/shard/S in debris)
S.color = NARSIE_WINDOW_COLOUR
/*
* Shadow wood tables
*/
/obj/structure/table/shadoww
name = "Shadow wood table"
desc = "Do not apply fire to this. Rumour says it burns easily."
icon = 'icons/obj/smooth_structures/shadoww_table.dmi'
icon_state = "wood_table"
frame = /obj/structure/table_frame/shadoww
framestack = /obj/item/stack/sheet/mineral/shadoww
buildstack = /obj/item/stack/sheet/mineral/shadoww
resistance_flags = FLAMMABLE
max_integrity = 70
canSmoothWith = null
/*
* Plaswood tables
*/
/obj/structure/table/plaswood
name = "plaswood table"
desc = "An strong and grey wooden table."
icon = 'icons/obj/smooth_structures/plaswood_table.dmi'
icon_state = "wood_table"
frame = /obj/structure/table_frame/wood
framestack = /obj/item/stack/sheet/mineral/plaswood
buildstack = /obj/item/stack/sheet/mineral/plaswood
resistance_flags = FLAMMABLE
max_integrity = 200
integrity_failure = 50
armor = list("melee" = 10, "bullet" = 30, "laser" = 30, "energy" = 100, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
canSmoothWith = null
/*
* Mushroom tables
*/
/obj/structure/table/gmushroom
name = "Mushroom table"
desc = "A pinkish table. And is fireproof!"
icon = 'icons/obj/smooth_structures/gmushroom_table.dmi'
icon_state = "gmushroom_table"
frame = /obj/structure/table_frame/gmushroom
framestack = /obj/item/stack/sheet/mineral/gmushroom
buildstack = /obj/item/stack/sheet/mineral/gmushroom
resistance_flags = FIRE_PROOF
max_integrity = 70
canSmoothWith = null
/*
* Wooden tables
*/
@@ -5,6 +5,9 @@
* Carpet floor
* Fake pits
* Fake space
* Plaswood floor
* Shadow wood floor
* Giant mushroom floor
*/
/turf/open/floor/wood
@@ -309,3 +312,166 @@
underlay_appearance.icon_state = SPACE_ICON_STATE
underlay_appearance.plane = PLANE_SPACE
return TRUE
/turf/open/floor/shadoww
desc = "Stylish shadown wood."
icon_state = "shadoww"
floor_tile = /obj/item/stack/tile/shadoww
broken_states = list("shadoww-broken", "shadoww-broken2", "shadoww-broken3", "shadoww-broken4", "shadoww-broken5", "shadoww-broken6", "shadoww-broken7")
footstep = FOOTSTEP_WOOD
barefootstep = FOOTSTEP_WOOD_BAREFOOT
clawfootstep = FOOTSTEP_WOOD_CLAW
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
tiled_dirt = FALSE
/turf/open/floor/shadoww/examine(mob/user)
. = ..()
. += "<span class='notice'>There's a few <b>screws</b> and a <b>small crack</b> visible.</span>"
/turf/open/floor/shadoww/screwdriver_act(mob/living/user, obj/item/I)
if(..())
return TRUE
return pry_tile(I, user)
/turf/open/floor/shadoww/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
if(T.turf_type == type)
return
var/obj/item/tool = user.is_holding_item_of_type(/obj/item/screwdriver)
if(!tool)
tool = user.is_holding_item_of_type(/obj/item/crowbar)
if(!tool)
return
var/turf/open/floor/plating/P = pry_tile(tool, user, TRUE)
if(!istype(P))
return
P.attackby(T, user, params)
/turf/open/floor/shadoww/pry_tile(obj/item/C, mob/user, silent = FALSE)
C.play_tool_sound(src, 80)
return remove_tile(user, silent, (C.tool_behaviour == TOOL_SCREWDRIVER))
/turf/open/floor/shadoww/remove_tile(mob/user, silent = FALSE, make_tile = TRUE, forced = FALSE)
if(broken || burnt)
broken = 0
burnt = 0
if(user && !silent)
to_chat(user, "<span class='notice'>You remove the broken planks.</span>")
else
if(make_tile)
if(user && !silent)
to_chat(user, "<span class='notice'>You unscrew the planks.</span>")
if(floor_tile)
new floor_tile(src)
else
if(user && !silent)
to_chat(user, "<span class='notice'>You forcefully pry off the planks, destroying them in the process.</span>")
return make_plating()
/turf/open/floor/gmushroom
desc = "Stylish mushroom 'wood'."
icon_state = "gmushroom"
floor_tile = /obj/item/stack/tile/gmushroom
broken_states = list("gmushroom-broken", "gmushroom-broken2", "gmushroom-broken3", "gmushroom-broken4", "gmushroom-broken5", "gmushroom-broken6", "gmushroom-broken7")
footstep = FOOTSTEP_WOOD
barefootstep = FOOTSTEP_WOOD_BAREFOOT
clawfootstep = FOOTSTEP_WOOD_CLAW
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
tiled_dirt = FALSE
/turf/open/floor/gmushroom/examine(mob/user)
. = ..()
. += "<span class='notice'>There's a few <b>screws</b> and a <b>small crack</b> visible.</span>"
/turf/open/floor/gmushroom/screwdriver_act(mob/living/user, obj/item/I)
if(..())
return TRUE
return pry_tile(I, user)
/turf/open/floor/gmushroom/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
if(T.turf_type == type)
return
var/obj/item/tool = user.is_holding_item_of_type(/obj/item/screwdriver)
if(!tool)
tool = user.is_holding_item_of_type(/obj/item/crowbar)
if(!tool)
return
var/turf/open/floor/plating/P = pry_tile(tool, user, TRUE)
if(!istype(P))
return
P.attackby(T, user, params)
/turf/open/floor/gmushroom/pry_tile(obj/item/C, mob/user, silent = FALSE)
C.play_tool_sound(src, 80)
return remove_tile(user, silent, (C.tool_behaviour == TOOL_SCREWDRIVER))
/turf/open/floor/gmushroom/remove_tile(mob/user, silent = FALSE, make_tile = TRUE, forced = FALSE)
if(broken || burnt)
broken = 0
burnt = 0
if(user && !silent)
to_chat(user, "<span class='notice'>You remove the broken planks.</span>")
else
if(make_tile)
if(user && !silent)
to_chat(user, "<span class='notice'>You unscrew the planks.</span>")
if(floor_tile)
new floor_tile(src)
else
if(user && !silent)
to_chat(user, "<span class='notice'>You forcefully pry off the planks, destroying them in the process.</span>")
return make_plating()
/turf/open/floor/plaswood
desc = "Stylish plaswood."
icon_state = "plaswood"
floor_tile = /obj/item/stack/tile/plaswood
broken_states = list("plaswood-broken", "plaswood-broken2", "plaswood-broken3", "plaswood-broken4", "plaswood-broken5", "plaswood-broken6", "plaswood-broken7")
footstep = FOOTSTEP_WOOD
barefootstep = FOOTSTEP_WOOD_BAREFOOT
clawfootstep = FOOTSTEP_WOOD_CLAW
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
tiled_dirt = FALSE
/turf/open/floor/plaswood/examine(mob/user)
. = ..()
. += "<span class='notice'>There's a few <b>screws</b> and a <b>small crack</b> visible.</span>"
/turf/open/floor/plaswood/screwdriver_act(mob/living/user, obj/item/I)
if(..())
return TRUE
return pry_tile(I, user)
/turf/open/floor/plaswood/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
if(T.turf_type == type)
return
var/obj/item/tool = user.is_holding_item_of_type(/obj/item/screwdriver)
if(!tool)
tool = user.is_holding_item_of_type(/obj/item/crowbar)
if(!tool)
return
var/turf/open/floor/plating/P = pry_tile(tool, user, TRUE)
if(!istype(P))
return
P.attackby(T, user, params)
/turf/open/floor/plaswood/pry_tile(obj/item/C, mob/user, silent = FALSE)
C.play_tool_sound(src, 80)
return remove_tile(user, silent, (C.tool_behaviour == TOOL_SCREWDRIVER))
/turf/open/floor/plaswood/remove_tile(mob/user, silent = FALSE, make_tile = TRUE, forced = FALSE)
if(broken || burnt)
broken = 0
burnt = 0
if(user && !silent)
to_chat(user, "<span class='notice'>You remove the broken planks.</span>")
else
if(make_tile)
if(user && !silent)
to_chat(user, "<span class='notice'>You unscrew the planks.</span>")
if(floor_tile)
new floor_tile(src)
else
if(user && !silent)
to_chat(user, "<span class='notice'>You forcefully pry off the planks, destroying them in the process.</span>")
return make_plating()
@@ -169,7 +169,7 @@
if (!megafauna_spawn_list)
megafauna_spawn_list = list(/mob/living/simple_animal/hostile/megafauna/dragon = 4, /mob/living/simple_animal/hostile/megafauna/colossus = 2, /mob/living/simple_animal/hostile/megafauna/bubblegum = SPAWN_BUBBLEGUM)
if (!flora_spawn_list)
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/tall_shroom = 2)
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/tall_shroom = 2, /obj/structure/flora/redgrass/redg = 1)
. = ..()
@@ -283,7 +283,7 @@
return //if the random is a standard mob, avoid spawning if there's another one within 12 tiles
if((ispath(randumb, /obj/structure/spawner/lavaland) || istype(H, /obj/structure/spawner/lavaland)) && get_dist(src, H) <= 2)
return //prevents tendrils spawning in each other's collapse range
for (var/area/L in range(8, T))
if (istype(L, /area/lavaland/surface/outdoors/) && !istype(L, /area/lavaland/surface/outdoors/unexplored)\
&& istype(L, /area/ruin) && istype(randumb, /mob/living/simple_animal/hostile/megafauna))
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 KiB

After

Width:  |  Height:  |  Size: 327 KiB