mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-15 09:57:49 +01:00
Merge pull request #921 from Kabramen/trees
Lavaland trees and some cargo stuff
This commit is contained in:
@@ -450,3 +450,209 @@
|
||||
/obj/structure/flora/redgrass/redg/Initialize()
|
||||
icon_state = "tallgrass[rand(1, 4)]bb"
|
||||
. = ..()
|
||||
|
||||
|
||||
//lavaland trees
|
||||
|
||||
/obj/structure/flora/ashtree
|
||||
name = "Ashtree"
|
||||
desc = "A small native lavaland tree."
|
||||
max_integrity = 80
|
||||
density = TRUE
|
||||
pixel_x = -16
|
||||
layer = FLY_LAYER
|
||||
var/log_amount = 10
|
||||
|
||||
/obj/structure/flora/ashtree/attackby(obj/item/W, mob/user, params)
|
||||
if(log_amount && (!(flags_1 & NODECONSTRUCT_1)))
|
||||
if(W.sharpness && W.force > 0)
|
||||
if(W.hitsound)
|
||||
playsound(get_turf(src), W.hitsound, 100, 0, 0)
|
||||
user.visible_message("<span class='notice'>[user] begins to cut down [src] with [W].</span>","<span class='notice'>You begin to cut down [src] with [W].</span>", "You hear the sound of sawing.")
|
||||
if(do_after(user, 1000/W.force, target = src)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard.
|
||||
user.visible_message("<span class='notice'>[user] fells [src] with the [W].</span>","<span class='notice'>You fell [src] with the [W].</span>", "You hear the sound of a tree falling.")
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0)
|
||||
for(var/i=1 to log_amount)
|
||||
new /obj/item/grown/log/ashtree(get_turf(src))
|
||||
|
||||
var/obj/structure/ashtree/ashstump/S = new(loc)
|
||||
S.name = "[name] stump"
|
||||
|
||||
qdel(src)
|
||||
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/ashtree/ashstump
|
||||
name = "Ashtree stump"
|
||||
desc = "Return to ashes."
|
||||
icon = 'icons/obj/flora/ashtree.dmi'
|
||||
icon_state = "ashtree_stump"
|
||||
density = FALSE
|
||||
pixel_x = -16
|
||||
|
||||
/obj/structure/flora/ashtree/ashtreee
|
||||
name = "Ashtree"
|
||||
desc = "A small native lavaland tree."
|
||||
icon = 'icons/obj/flora/ashtree.dmi'
|
||||
icon_state = "ashtree_1"
|
||||
var/list/icon_states = list("ashtree_1", "ashtree_2")
|
||||
|
||||
/obj/structure/flora/ashtree/ashtreee/Initialize()
|
||||
. = ..()
|
||||
|
||||
if(islist(icon_states && icon_states.len))
|
||||
icon_state = pick(icon_states)
|
||||
|
||||
//
|
||||
/obj/structure/flora/gmushroom
|
||||
name = "Giant mushroom"
|
||||
desc = "An impressive overgrown mushroom."
|
||||
max_integrity = 80
|
||||
density = TRUE
|
||||
pixel_x = -16
|
||||
layer = FLY_LAYER
|
||||
var/log_amount = 10
|
||||
|
||||
/obj/structure/flora/gmushroom/attackby(obj/item/W, mob/user, params)
|
||||
if(log_amount && (!(flags_1 & NODECONSTRUCT_1)))
|
||||
if(W.sharpness && W.force > 0)
|
||||
if(W.hitsound)
|
||||
playsound(get_turf(src), W.hitsound, 100, 0, 0)
|
||||
user.visible_message("<span class='notice'>[user] begins to cut down [src] with [W].</span>","<span class='notice'>You begin to cut down [src] with [W].</span>", "You hear the sound of sawing.")
|
||||
if(do_after(user, 1000/W.force, target = src)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard.
|
||||
user.visible_message("<span class='notice'>[user] fells [src] with the [W].</span>","<span class='notice'>You fell [src] with the [W].</span>", "You hear the sound of a tree falling.")
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0)
|
||||
for(var/i=1 to log_amount)
|
||||
new /obj/item/grown/log/gmushroom(get_turf(src))
|
||||
|
||||
var/obj/structure/gmushroom/gmushroomstump/S = new(loc)
|
||||
S.name = "[name] stump"
|
||||
|
||||
qdel(src)
|
||||
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/gmushroom/gmushroomstump
|
||||
name = "Giant mushroom stump"
|
||||
desc = "It will grow back. Maybe. One day."
|
||||
icon = 'icons/obj/flora/gmushroom.dmi'
|
||||
icon_state = "gmushroom_stump"
|
||||
density = FALSE
|
||||
pixel_x = -16
|
||||
|
||||
/obj/structure/flora/gmushroom/gggmushroom
|
||||
name = "Giant mushroom"
|
||||
desc = "An impressive overgrown mushroom."
|
||||
icon = 'icons/obj/flora/gmushroom.dmi'
|
||||
icon_state = "gmushroom_1"
|
||||
var/list/icon_states = list("gmushroom_1", "gmushroom_2")
|
||||
|
||||
/obj/structure/flora/gmushroom/gggmushroom/Initialize()
|
||||
. = ..()
|
||||
|
||||
if(islist(icon_states && icon_states.len))
|
||||
icon_state = pick(icon_states)
|
||||
|
||||
//
|
||||
/obj/structure/flora/shadowtree
|
||||
name = "Shadow tree"
|
||||
desc = "A native lavaland tree, with a remarkable purple color."
|
||||
max_integrity = 80
|
||||
density = TRUE
|
||||
pixel_x = -16
|
||||
layer = FLY_LAYER
|
||||
var/log_amount = 10
|
||||
|
||||
/obj/structure/flora/shadowtree/attackby(obj/item/W, mob/user, params)
|
||||
if(log_amount && (!(flags_1 & NODECONSTRUCT_1)))
|
||||
if(W.sharpness && W.force > 0)
|
||||
if(W.hitsound)
|
||||
playsound(get_turf(src), W.hitsound, 100, 0, 0)
|
||||
user.visible_message("<span class='notice'>[user] begins to cut down [src] with [W].</span>","<span class='notice'>You begin to cut down [src] with [W].</span>", "You hear the sound of sawing.")
|
||||
if(do_after(user, 1000/W.force, target = src)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard.
|
||||
user.visible_message("<span class='notice'>[user] fells [src] with the [W].</span>","<span class='notice'>You fell [src] with the [W].</span>", "You hear the sound of a tree falling.")
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0)
|
||||
for(var/i=1 to log_amount)
|
||||
new /obj/item/grown/log/shadowtree(get_turf(src))
|
||||
|
||||
var/obj/structure/shadowtree/shadowtreestump/S = new(loc)
|
||||
S.name = "[name] stump"
|
||||
|
||||
qdel(src)
|
||||
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/shadowtree/shadowtreestump
|
||||
name = "Shadow tree stump"
|
||||
desc = "Hidden in the shadowns."
|
||||
icon = 'icons/obj/flora/shadowtree.dmi'
|
||||
icon_state = "shadowtree_stump"
|
||||
density = FALSE
|
||||
pixel_x = -16
|
||||
|
||||
/obj/structure/flora/shadowtree/shadowtreee
|
||||
name = "Shadow tree"
|
||||
desc = "A native Lavaland tree, with a remarkable purple color."
|
||||
icon = 'icons/obj/flora/shadowtree.dmi'
|
||||
icon_state = "shadowtree_1"
|
||||
var/list/icon_states = list("shadowtree_1", "shadowtree_2")
|
||||
|
||||
/obj/structure/flora/shadowtree/shadowtreee/Initialize()
|
||||
. = ..()
|
||||
|
||||
if(islist(icon_states && icon_states.len))
|
||||
icon_state = pick(icon_states)
|
||||
|
||||
//
|
||||
/obj/structure/flora/plasmatree
|
||||
name = "Plasma tree"
|
||||
desc = "A tree that has absorved plasma from the ground, making its wood strong like metal."
|
||||
max_integrity = 100
|
||||
density = TRUE
|
||||
pixel_x = -16
|
||||
layer = FLY_LAYER
|
||||
var/log_amount = 10
|
||||
|
||||
/obj/structure/flora/plasmatree/attackby(obj/item/W, mob/user, params)
|
||||
if(log_amount && (!(flags_1 & NODECONSTRUCT_1)))
|
||||
if(W.sharpness && W.force > 0)
|
||||
if(W.hitsound)
|
||||
playsound(get_turf(src), W.hitsound, 100, 0, 0)
|
||||
user.visible_message("<span class='notice'>[user] begins to cut down [src] with [W].</span>","<span class='notice'>You begin to cut down [src] with [W].</span>", "You hear the sound of sawing.")
|
||||
if(do_after(user, 1000/W.force, target = src)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard.
|
||||
user.visible_message("<span class='notice'>[user] fells [src] with the [W].</span>","<span class='notice'>You fell [src] with the [W].</span>", "You hear the sound of a tree falling.")
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0)
|
||||
for(var/i=1 to log_amount)
|
||||
new /obj/item/grown/log/plasmatree(get_turf(src))
|
||||
|
||||
var/obj/structure/plasmatree/plasmatreestump/S = new(loc)
|
||||
S.name = "[name] stump"
|
||||
|
||||
qdel(src)
|
||||
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/plasmatree/plasmatreestump
|
||||
name = "Plasma tree stump"
|
||||
desc = "Pointy and sharp."
|
||||
icon = 'icons/obj/flora/plasmatree.dmi'
|
||||
icon_state = "plasmatree_stump"
|
||||
density = FALSE
|
||||
pixel_x = -16
|
||||
|
||||
/obj/structure/flora/plasmatree/plasmatreee
|
||||
name = "Plasma tree"
|
||||
desc = "A tree that has absorved plasma from the ground, making its wood strong like metal."
|
||||
icon = 'icons/obj/flora/plasmatree.dmi'
|
||||
icon_state = "plasmatree_1"
|
||||
var/list/icon_states = list("plasmatree_1", "plasmatree_2")
|
||||
|
||||
/obj/structure/flora/plasmatree/plasmatreee/Initialize()
|
||||
. = ..()
|
||||
|
||||
if(islist(icon_states && icon_states.len))
|
||||
icon_state = pick(icon_states)
|
||||
|
||||
@@ -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, /obj/structure/flora/redgrass/redg = 1)
|
||||
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 = 2, /obj/structure/flora/ashtree/ashtreee = 2, /obj/structure/flora/gmushroom/gggmushroom = 2, /obj/structure/flora/shadowtree/shadowtreee = 2, /obj/structure/flora/plasmatree/plasmatreee = 2)
|
||||
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -63,3 +63,10 @@
|
||||
reward = 1000
|
||||
required_count = 1
|
||||
wanted_types = list(/obj/item/seeds/lavaland/cactus)
|
||||
|
||||
datum/bounty/item/mining/plaswood
|
||||
name = "Plaswood Planks"
|
||||
description = "Central Command's carpentry department needs more exotic wood, send us some plaswood planks!"
|
||||
reward = 5500
|
||||
required_count = 50
|
||||
wanted_types = list(/obj/item/stack/sheet/mineral/plaswood)
|
||||
|
||||
@@ -30,6 +30,13 @@
|
||||
contains = list(/obj/item/stack/sheet/metal/fifty)
|
||||
crate_name = "metal sheets crate"
|
||||
|
||||
/datum/supply_pack/materials/gmushroom50
|
||||
name = "50 Mushroom Planks"
|
||||
desc = "Looks like wood AND is fire proof? Of course you need fifty mushroom planks!"
|
||||
cost = 1700
|
||||
contains = list(/obj/item/stack/sheet/mineral/gmushroom/fifty)
|
||||
crate_name = "mushroom planks crate"
|
||||
|
||||
/datum/supply_pack/materials/plasteel20
|
||||
name = "20 Plasteel Sheets"
|
||||
desc = "Reinforce the station's integrity with twenty plasteel sheets!"
|
||||
@@ -51,6 +58,13 @@
|
||||
contains = list(/obj/item/stack/sheet/plastic/fifty)
|
||||
crate_name = "plastic sheets crate"
|
||||
|
||||
/datum/supply_pack/materials/plaswood50
|
||||
name = "50 Plaswood Planks"
|
||||
desc = "Who need metal when you can have fifty plaswood planks?"
|
||||
cost = 9000
|
||||
contains = list(/obj/item/stack/sheet/mineral/plaswood/fifty)
|
||||
crate_name = "Plaswood crate"
|
||||
|
||||
/datum/supply_pack/materials/sandstone30
|
||||
name = "30 Sandstone Blocks"
|
||||
desc = "Neither sandy nor stoney, these thirty blocks will still get the job done."
|
||||
@@ -58,6 +72,13 @@
|
||||
contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty)
|
||||
crate_name = "sandstone blocks crate"
|
||||
|
||||
/datum/supply_pack/materials/shadoww50
|
||||
name = "50 Shadow Wood Planks"
|
||||
desc = "Time to bring the dark side with fifty shadow wooden planks!"
|
||||
cost = 1450
|
||||
contains = list(/obj/item/stack/sheet/mineral/shadoww/fifty)
|
||||
crate_name = "Shadown wood planks crate"
|
||||
|
||||
/datum/supply_pack/materials/wood50
|
||||
name = "50 Wood Planks"
|
||||
desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with fifty wooden planks!"
|
||||
@@ -79,7 +100,7 @@
|
||||
name = "Bulk Raw Cotton Crate"
|
||||
desc = "Plushies are more down in the market than ever before; bulk cotton now for use! Contains 100 raw cotton sheets."
|
||||
cost = 1700 //Same math as before, but since it's bulk, you get a 100 credit discount to encourage bulk buys. Welcome to space Costco.
|
||||
contains = list(/obj/item/stack/sheet/cotton/thirty,
|
||||
contains = list(/obj/item/stack/sheet/cotton/thirty,
|
||||
/obj/item/stack/sheet/cotton/thirty,
|
||||
/obj/item/stack/sheet/cotton/thirty,
|
||||
/obj/item/stack/sheet/cotton/ten
|
||||
|
||||
@@ -98,6 +98,45 @@
|
||||
/obj/item/grown/log/steel/CheckAccepted(obj/item/I)
|
||||
return FALSE
|
||||
|
||||
/obj/item/grown/log/ashtree
|
||||
seed = null
|
||||
name = "ashtree log"
|
||||
desc = "A piece of log."
|
||||
icon_state = "ashtree_log"
|
||||
|
||||
/obj/item/grown/log/gmushroom
|
||||
seed = null
|
||||
name = "mushroom log"
|
||||
desc = "Looks like candy! Do not eat it."
|
||||
icon_state = "mushroom_log"
|
||||
plank_type = /obj/item/stack/sheet/mineral/gmushroom
|
||||
plank_name = "mushroom planks"
|
||||
|
||||
/obj/item/grown/log/gmushroom/CheckAccepted(obj/item/I)
|
||||
return FALSE
|
||||
|
||||
/obj/item/grown/log/shadowtree
|
||||
seed = null
|
||||
name = "shadow log"
|
||||
desc = "A piece of dark log."
|
||||
icon_state = "shadow_log"
|
||||
plank_type = /obj/item/stack/sheet/mineral/shadoww
|
||||
plank_name = "shadow planks"
|
||||
|
||||
/obj/item/grown/log/gmushroom/CheckAccepted(obj/item/I)
|
||||
return FALSE
|
||||
|
||||
/obj/item/grown/log/plasmatree
|
||||
seed = null
|
||||
name = "plasma tree log"
|
||||
desc = "A heavy piece log."
|
||||
icon_state = "plasmatree_log"
|
||||
plank_type = /obj/item/stack/sheet/mineral/plaswood
|
||||
plank_name = "plaswood planks"
|
||||
|
||||
/obj/item/grown/log/plasmatree/CheckAccepted(obj/item/I)
|
||||
return FALSE
|
||||
|
||||
/obj/item/seeds/bamboo
|
||||
name = "pack of bamboo seeds"
|
||||
desc = "A plant known for its flexible and resistant logs."
|
||||
@@ -163,7 +202,7 @@
|
||||
/obj/structure/bonfire/prelit/Initialize()
|
||||
. = ..()
|
||||
StartBurning()
|
||||
|
||||
|
||||
/obj/structure/bonfire/CanPass(atom/movable/mover, turf/target)
|
||||
if(istype(mover) && (mover.pass_flags & PASSTABLE))
|
||||
return TRUE
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 88 KiB |
Reference in New Issue
Block a user