mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-20 03:26:37 +01:00
@@ -160,7 +160,7 @@
|
||||
|
||||
//Splatter a turf.
|
||||
/datum/seed/proc/splatter(var/turf/T,var/obj/item/thrown)
|
||||
if(splat_type)
|
||||
if(splat_type && !(locate(/obj/effect/plant) in T))
|
||||
var/obj/effect/plant/splat = new splat_type(T, src)
|
||||
if(!istype(splat)) // Plants handle their own stuff.
|
||||
splat.name = "[thrown.name] [pick("smear","smudge","splatter")]"
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
if(!C || !host || !(C.mob && istype(C.mob,/mob/dead))) return // We don't want to spam them repeatedly if they're already in a mob.
|
||||
|
||||
var/response = alert(C, "Someone is harvesting [display_name]. Would you like to play as one?", "Sentient plant harvest", "Yes", "No", "Never for this round.")
|
||||
var/response = alert(C, "Someone is harvesting [display_name]. Would you like to play as one?", "Sentient plant harvest", "Yes", "No", "Never for this round")
|
||||
|
||||
if(!C || !host || !(C.mob && istype(C.mob,/mob/dead))) return // ...or accidentally accept an invalid argument for transfer.
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
..()
|
||||
recipes += new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1)
|
||||
recipes += new/datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1)
|
||||
recipes += new/datum/stack_recipe("knife grip", /obj/item/weapon/material/butterflyhandle, 4, time = 20, one_per_turf = 0, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("knife grip", /obj/item/weapon/material/butterflyhandle, 4, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]")
|
||||
|
||||
/material/sandstone/generate_recipes()
|
||||
..()
|
||||
|
||||
@@ -24,9 +24,6 @@
|
||||
qdel(src)
|
||||
return 0
|
||||
|
||||
// Update from material datum.
|
||||
name = "[material.display_name] sheets"
|
||||
desc = "A stack of sheets of [material.display_name]."
|
||||
recipes = material.get_recipes()
|
||||
stacktype = material.stack_type
|
||||
origin_tech = material.stack_origin_tech
|
||||
@@ -39,13 +36,32 @@
|
||||
flags |= CONDUCT
|
||||
|
||||
matter = material.get_matter()
|
||||
update_strings()
|
||||
return 1
|
||||
|
||||
/obj/item/stack/material/proc/update_strings()
|
||||
// Update from material datum.
|
||||
if(amount>1)
|
||||
name = "[material.use_name] [material.sheet_plural_name]"
|
||||
desc = "A stack of [material.use_name] [material.sheet_plural_name]."
|
||||
gender = PLURAL
|
||||
else
|
||||
name = "[material.use_name] [material.sheet_singular_name]"
|
||||
desc = "A [material.sheet_singular_name] of [material.use_name]."
|
||||
gender = NEUTER
|
||||
|
||||
/obj/item/stack/material/use(var/used)
|
||||
. = ..()
|
||||
update_strings()
|
||||
return
|
||||
|
||||
/obj/item/stack/material/transfer_to(obj/item/stack/S, var/tamount=null, var/type_verified)
|
||||
var/obj/item/stack/material/M = S
|
||||
if(!istype(M) || material.name != M.material.name)
|
||||
return 0
|
||||
..(S,tamount,1)
|
||||
if(src) update_strings()
|
||||
if(M) M.update_strings()
|
||||
|
||||
/obj/item/stack/material/attack_self(var/mob/user)
|
||||
if(!material.build_windows(user, src))
|
||||
@@ -68,10 +84,14 @@
|
||||
|
||||
/obj/item/stack/material/sandstone
|
||||
name = "sandstone brick"
|
||||
singular_name = "sandstone brick"
|
||||
icon_state = "sheet-sandstone"
|
||||
default_type = "sandstone"
|
||||
|
||||
/obj/item/stack/material/marble
|
||||
name = "marble brick"
|
||||
icon_state = "sheet-marble"
|
||||
default_type = "marble"
|
||||
|
||||
/obj/item/stack/material/diamond
|
||||
name = "diamond"
|
||||
icon_state = "sheet-diamond"
|
||||
@@ -129,51 +149,43 @@
|
||||
|
||||
/obj/item/stack/material/steel
|
||||
name = DEFAULT_WALL_MATERIAL
|
||||
singular_name = "steel sheet"
|
||||
icon_state = "sheet-metal"
|
||||
default_type = DEFAULT_WALL_MATERIAL
|
||||
|
||||
/obj/item/stack/material/plasteel
|
||||
name = "plasteel"
|
||||
singular_name = "plasteel sheet"
|
||||
icon_state = "sheet-plasteel"
|
||||
item_state = "sheet-metal"
|
||||
default_type = "plasteel"
|
||||
|
||||
/obj/item/stack/material/wood
|
||||
name = "wooden plank"
|
||||
singular_name = "wood plank"
|
||||
icon_state = "sheet-wood"
|
||||
default_type = "wood"
|
||||
|
||||
/obj/item/stack/material/cloth
|
||||
name = "cloth"
|
||||
singular_name = "cloth roll"
|
||||
icon_state = "sheet-cloth"
|
||||
default_type = "cloth"
|
||||
|
||||
/obj/item/stack/material/cardboard
|
||||
name = "cardboard"
|
||||
singular_name = "cardboard sheet"
|
||||
icon_state = "sheet-card"
|
||||
default_type = "cardboard"
|
||||
|
||||
/obj/item/stack/material/leather
|
||||
name = "leather"
|
||||
desc = "The by-product of mob grinding."
|
||||
singular_name = "leather piece"
|
||||
icon_state = "sheet-leather"
|
||||
default_type = "leather"
|
||||
|
||||
/obj/item/stack/material/glass
|
||||
name = "glass"
|
||||
singular_name = "glass sheet"
|
||||
icon_state = "sheet-glass"
|
||||
default_type = "glass"
|
||||
|
||||
/obj/item/stack/material/glass/reinforced
|
||||
name = "reinforced glass"
|
||||
singular_name = "reinforced glass sheet"
|
||||
icon_state = "sheet-rglass"
|
||||
default_type = "reinforced glass"
|
||||
|
||||
@@ -185,6 +197,5 @@
|
||||
|
||||
/obj/item/stack/material/glass/phoronrglass
|
||||
name = "reinforced phoron glass"
|
||||
singular_name = "reinforced phoron glass sheet"
|
||||
icon_state = "sheet-phoronrglass"
|
||||
default_type = "reinforced phoron glass"
|
||||
|
||||
@@ -50,6 +50,8 @@ var/list/name_to_material
|
||||
var/display_name // Prettier name for display.
|
||||
var/use_name
|
||||
var/flags = 0 // Various status modifiers.
|
||||
var/sheet_singular_name = "sheet"
|
||||
var/sheet_plural_name = "sheets"
|
||||
|
||||
// Shards/tables/structures
|
||||
var/shard_type = SHARD_SHRAPNEL // Path of debris object.
|
||||
@@ -233,6 +235,8 @@ var/list/name_to_material
|
||||
weight = 24
|
||||
hardness = 40
|
||||
stack_origin_tech = "materials=4"
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/gold/bronze //placeholder for ashtrays
|
||||
name = "bronze"
|
||||
@@ -245,6 +249,8 @@ var/list/name_to_material
|
||||
weight = 22
|
||||
hardness = 50
|
||||
stack_origin_tech = "materials=3"
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/phoron
|
||||
name = "phoron"
|
||||
@@ -256,6 +262,8 @@ var/list/name_to_material
|
||||
hardness = 30
|
||||
stack_origin_tech = "phorontech=2;materials=2"
|
||||
door_icon_base = "stone"
|
||||
sheet_singular_name = "crystal"
|
||||
sheet_plural_name = "crystals"
|
||||
|
||||
/*
|
||||
// Commenting this out while fires are so spectacularly lethal, as I can't seem to get this balanced appropriately.
|
||||
@@ -284,6 +292,8 @@ var/list/name_to_material
|
||||
weight = 22
|
||||
hardness = 55
|
||||
door_icon_base = "stone"
|
||||
sheet_singular_name = "brick"
|
||||
sheet_plural_name = "bricks"
|
||||
|
||||
/material/stone/marble
|
||||
name = "marble"
|
||||
@@ -291,6 +301,7 @@ var/list/name_to_material
|
||||
weight = 26
|
||||
hardness = 100
|
||||
integrity = 201 //hack to stop kitchen benches being flippable, todo: refactor into weight system
|
||||
stack_type = /obj/item/stack/material/marble
|
||||
|
||||
/material/steel
|
||||
name = DEFAULT_WALL_MATERIAL
|
||||
@@ -472,12 +483,16 @@ var/list/name_to_material
|
||||
stack_type = /obj/item/stack/material/osmium
|
||||
icon_colour = "#9999FF"
|
||||
stack_origin_tech = "materials=5"
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/tritium
|
||||
name = "tritium"
|
||||
stack_type = /obj/item/stack/material/tritium
|
||||
icon_colour = "#777777"
|
||||
stack_origin_tech = "materials=5"
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/mhydrogen
|
||||
name = "mhydrogen"
|
||||
@@ -491,6 +506,8 @@ var/list/name_to_material
|
||||
icon_colour = "#9999FF"
|
||||
weight = 27
|
||||
stack_origin_tech = "materials=2"
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/iron
|
||||
name = "iron"
|
||||
@@ -498,6 +515,8 @@ var/list/name_to_material
|
||||
icon_colour = "#5C5454"
|
||||
weight = 22
|
||||
stack_per_sheet = 3750
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
// Adminspawn only, do not let anyone get this.
|
||||
/material/voxalloy
|
||||
@@ -528,6 +547,8 @@ var/list/name_to_material
|
||||
dooropen_noise = 'sound/effects/doorcreaky.ogg'
|
||||
door_icon_base = "wood"
|
||||
destruction_desc = "splinters"
|
||||
sheet_singular_name = "plank"
|
||||
sheet_plural_name = "planks"
|
||||
|
||||
/material/wood/holographic
|
||||
name = "holographic wood"
|
||||
@@ -566,6 +587,8 @@ var/list/name_to_material
|
||||
icon_colour = "#402821"
|
||||
icon_reinf = "reinf_cult"
|
||||
shard_type = SHARD_STONE_PIECE
|
||||
sheet_singular_name = "brick"
|
||||
sheet_plural_name = "bricks"
|
||||
|
||||
/material/cult/place_dismantled_girder(var/turf/target)
|
||||
new /obj/structure/girder/cult(target)
|
||||
@@ -586,6 +609,8 @@ var/list/name_to_material
|
||||
dooropen_noise = 'sound/effects/attackblob.ogg'
|
||||
door_icon_base = "resin"
|
||||
melting_point = T0C+300
|
||||
sheet_singular_name = "blob"
|
||||
sheet_plural_name = "blobs"
|
||||
|
||||
/material/resin/can_open_material_door(var/mob/living/user)
|
||||
var/mob/living/carbon/M = user
|
||||
@@ -610,6 +635,8 @@ var/list/name_to_material
|
||||
flags = MATERIAL_PADDING
|
||||
ignition_point = T0C+232
|
||||
melting_point = T0C+300
|
||||
sheet_singular_name = "tile"
|
||||
sheet_plural_name = "tiles"
|
||||
|
||||
/material/cotton
|
||||
name = "cotton"
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
/mob/living/silicon/robot/drone/proc/question(var/client/C)
|
||||
spawn(0)
|
||||
if(!C || jobban_isbanned(C,"Cyborg")) return
|
||||
var/response = alert(C, "Someone is attempting to reboot a maintenance drone. Would you like to play as one?", "Maintenance drone reboot", "Yes", "No", "Never for this round.")
|
||||
var/response = alert(C, "Someone is attempting to reboot a maintenance drone. Would you like to play as one?", "Maintenance drone reboot", "Yes", "No", "Never for this round")
|
||||
if(!C || ckey)
|
||||
return
|
||||
if(response == "Yes")
|
||||
|
||||
@@ -15,6 +15,12 @@
|
||||
response_harm = "whacks"
|
||||
harm_intent_damage = 5
|
||||
var/datum/seed/seed
|
||||
var/harvest_time
|
||||
var/min_explode_time = 1200
|
||||
|
||||
/mob/living/simple_animal/mushroom/New()
|
||||
..()
|
||||
harvest_time = world.time
|
||||
|
||||
/mob/living/simple_animal/mushroom/verb/spawn_spores()
|
||||
|
||||
@@ -31,6 +37,10 @@
|
||||
usr << "<span class='danger'>You are sterile!</span>"
|
||||
return
|
||||
|
||||
if(world.time < harvest_time + min_explode_time)
|
||||
usr << "<span class='danger'>You are not mature enough for that.</span>"
|
||||
return
|
||||
|
||||
spore_explode()
|
||||
|
||||
/mob/living/simple_animal/mushroom/death()
|
||||
@@ -40,15 +50,13 @@
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/mushroom/proc/spore_explode()
|
||||
|
||||
if(!seed)
|
||||
return
|
||||
|
||||
var/list/target_turfs = list()
|
||||
for(var/turf/new_turf in orange(1,src))
|
||||
if(prob(60) && !new_turf.density && src.Adjacent(new_turf)) target_turfs |= new_turf
|
||||
for(var/turf/target_turf in target_turfs)
|
||||
new /obj/machinery/portable_atmospherics/hydroponics/soil/invisible(target_turf,seed)
|
||||
if(world.time < harvest_time + min_explode_time)
|
||||
return
|
||||
for(var/turf/simulated/target_turf in orange(1,src))
|
||||
if(prob(60) && !target_turf.density && src.Adjacent(target_turf))
|
||||
new /obj/machinery/portable_atmospherics/hydroponics/soil/invisible(target_turf,seed)
|
||||
seed.thrown_at(src,get_turf(src),1)
|
||||
if(src)
|
||||
gib()
|
||||
|
||||
Reference in New Issue
Block a user