mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 12:08:28 +01:00
Merge remote-tracking branch 'upstream/dev-freeze' into dev
Conflicts: code/modules/hydroponics/seed_mobs.dm code/modules/materials/materials.dm
This commit is contained in:
@@ -1344,7 +1344,7 @@
|
||||
var/obj/item/fax = locate(href_list["AdminFaxView"])
|
||||
if (istype(fax, /obj/item/weapon/paper))
|
||||
var/obj/item/weapon/paper/P = fax
|
||||
P.show_content(usr)
|
||||
P.show_content(usr,1)
|
||||
else if (istype(fax, /obj/item/weapon/photo))
|
||||
var/obj/item/weapon/photo/H = fax
|
||||
H.show(usr)
|
||||
|
||||
@@ -213,9 +213,9 @@
|
||||
else if(charge.charges < chems_to_use)
|
||||
chems_to_use = charge.charges
|
||||
|
||||
var/mob/living/target_mob
|
||||
var/mob/living/carbon/target_mob
|
||||
if(target)
|
||||
if(istype(target,/mob/living))
|
||||
if(istype(target,/mob/living/carbon))
|
||||
target_mob = target
|
||||
else
|
||||
return 0
|
||||
@@ -439,4 +439,4 @@
|
||||
else if(device == deniedstamp)
|
||||
device = iastamp
|
||||
holder.wearer << "<span class='notice'>Switched to internal affairs stamp.</span>"
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -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")]"
|
||||
|
||||
@@ -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
|
||||
if(islist(material.stack_origin_tech))
|
||||
@@ -40,13 +37,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))
|
||||
@@ -69,10 +85,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"
|
||||
@@ -130,51 +150,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"
|
||||
|
||||
@@ -186,6 +198,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.
|
||||
@@ -231,6 +233,8 @@ var/list/name_to_material
|
||||
weight = 24
|
||||
hardness = 40
|
||||
stack_origin_tech = list(TECH_MATERIAL = 4)
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/gold/bronze //placeholder for ashtrays
|
||||
name = "bronze"
|
||||
@@ -243,6 +247,8 @@ var/list/name_to_material
|
||||
weight = 22
|
||||
hardness = 50
|
||||
stack_origin_tech = list(TECH_MATERIAL = 3)
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/phoron
|
||||
name = "phoron"
|
||||
@@ -254,6 +260,8 @@ var/list/name_to_material
|
||||
hardness = 30
|
||||
stack_origin_tech = list(TECH_MATERIAL = 2, TECH_PHORON = 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.
|
||||
@@ -282,6 +290,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"
|
||||
@@ -289,6 +299,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
|
||||
@@ -473,12 +484,16 @@ var/list/name_to_material
|
||||
stack_type = /obj/item/stack/material/osmium
|
||||
icon_colour = "#9999FF"
|
||||
stack_origin_tech = list(TECH_MATERIAL = 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 = list(TECH_MATERIAL = 5)
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/mhydrogen
|
||||
name = "mhydrogen"
|
||||
@@ -492,12 +507,16 @@ var/list/name_to_material
|
||||
icon_colour = "#9999FF"
|
||||
weight = 27
|
||||
stack_origin_tech = list(TECH_MATERIAL = 2)
|
||||
sheet_singular_name = "ingot"
|
||||
sheet_plural_name = "ingots"
|
||||
|
||||
/material/iron
|
||||
name = "iron"
|
||||
stack_type = /obj/item/stack/material/iron
|
||||
icon_colour = "#5C5454"
|
||||
weight = 22
|
||||
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"
|
||||
|
||||
@@ -231,7 +231,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()
|
||||
|
||||
@@ -120,8 +120,11 @@
|
||||
observer.started_as_observer = 1
|
||||
close_spawn_windows()
|
||||
var/obj/O = locate("landmark*Observer-Start")
|
||||
src << "\blue Now teleporting."
|
||||
observer.loc = O.loc
|
||||
if(istype(O))
|
||||
src << "<span class='notice'>Now teleporting.</span>"
|
||||
observer.loc = O.loc
|
||||
else
|
||||
src << "<span class='danger'>Could not locate an observer spawn point. Use the Teleport verb to jump to the station map.</span>"
|
||||
observer.timeofdeath = world.time // Set the time of death so that the respawn timer works correctly.
|
||||
|
||||
announce_ghost_joinleave(src)
|
||||
|
||||
Reference in New Issue
Block a user