mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-16 01:23:41 +01:00
Purges Unused Mining Files
This commit is contained in:
@@ -1,27 +0,0 @@
|
||||
//Alloys that contain subsets of each other's ingredients must be ordered in the desired sequence
|
||||
//eg. steel comes after plasteel because plasteel's ingredients contain the ingredients for steel and
|
||||
//it would be impossible to produce.
|
||||
|
||||
/datum/alloy
|
||||
var/list/requires
|
||||
var/product_mod = 1
|
||||
var/product
|
||||
var/metaltag
|
||||
|
||||
/datum/alloy/plasteel
|
||||
metaltag = "plasteel"
|
||||
requires = list(
|
||||
"platinum" = 1,
|
||||
"coal" = 2,
|
||||
"hematite" = 2
|
||||
)
|
||||
product_mod = 0.3
|
||||
product = /obj/item/stack/sheet/plasteel
|
||||
|
||||
/datum/alloy/steel
|
||||
metaltag = "steel"
|
||||
requires = list(
|
||||
"coal" = 1,
|
||||
"hematite" = 1
|
||||
)
|
||||
product = /obj/item/stack/sheet/metal
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,147 +0,0 @@
|
||||
/**
|
||||
* Materials system
|
||||
*
|
||||
* Replaces all of the horrible variables that tracked each individual thing.
|
||||
*/
|
||||
|
||||
/**
|
||||
* MATERIALS DATUM
|
||||
*
|
||||
* Tracks and manages material storage for an object.
|
||||
*/
|
||||
/datum/materials
|
||||
var/list/datum/material/storage[0]
|
||||
|
||||
/datum/materials/New()
|
||||
for(var/matdata in subtypesof(/datum/material))
|
||||
var/datum/material/mat = new matdata
|
||||
storage[mat.id]=mat
|
||||
|
||||
/datum/materials/proc/addAmount(var/mat_id,var/amount)
|
||||
if(!(mat_id in storage))
|
||||
warning("addAmount(): Unknown material [mat_id]!")
|
||||
return
|
||||
// I HATE BYOND
|
||||
// storage[mat_id].stored++
|
||||
var/datum/material/mat=storage[mat_id]
|
||||
mat.stored += amount
|
||||
storage[mat_id]=mat
|
||||
|
||||
/datum/materials/proc/removeAmount(var/mat_id,var/amount)
|
||||
if(!(mat_id in storage))
|
||||
warning("removeAmount(): Unknown material [mat_id]!")
|
||||
return
|
||||
addAmount(mat_id,-amount)
|
||||
|
||||
/datum/materials/proc/getAmount(var/mat_id)
|
||||
if(!(mat_id in storage))
|
||||
warning("getAmount(): Unknown material [mat_id]!")
|
||||
return 0
|
||||
|
||||
var/datum/material/mat=getMaterial(mat_id)
|
||||
return mat.stored
|
||||
|
||||
/datum/materials/proc/getMaterial(var/mat_id)
|
||||
if(!(mat_id in storage))
|
||||
warning("getMaterial(): Unknown material [mat_id]!")
|
||||
return 0
|
||||
|
||||
return storage[mat_id]
|
||||
|
||||
|
||||
/datum/material
|
||||
var/name=""
|
||||
var/processed_name=""
|
||||
var/id=""
|
||||
var/stored=0
|
||||
var/cc_per_sheet=CC_PER_SHEET_MISC
|
||||
var/oretype=null
|
||||
var/sheettype=null
|
||||
var/cointype=null
|
||||
var/value=0
|
||||
|
||||
/datum/material/New()
|
||||
if(processed_name=="")
|
||||
processed_name=name
|
||||
|
||||
/datum/material/iron
|
||||
name="Iron"
|
||||
id="iron"
|
||||
value=1
|
||||
cc_per_sheet=CC_PER_SHEET_METAL
|
||||
oretype=/obj/item/weapon/ore/iron
|
||||
sheettype=/obj/item/stack/sheet/metal
|
||||
cointype=/obj/item/weapon/coin/iron
|
||||
|
||||
/datum/material/glass
|
||||
name="Sand"
|
||||
processed_name="Glass"
|
||||
id="glass"
|
||||
value=1
|
||||
cc_per_sheet=CC_PER_SHEET_GLASS
|
||||
oretype=/obj/item/weapon/ore/glass
|
||||
sheettype=/obj/item/stack/sheet/glass
|
||||
|
||||
/datum/material/diamond
|
||||
name="Diamond"
|
||||
id="diamond"
|
||||
value=40
|
||||
oretype=/obj/item/weapon/ore/diamond
|
||||
sheettype=/obj/item/stack/sheet/mineral/diamond
|
||||
cointype=/obj/item/weapon/coin/diamond
|
||||
|
||||
/datum/material/plasma
|
||||
name="Plasma"
|
||||
id="plasma"
|
||||
value=40
|
||||
oretype=/obj/item/weapon/ore/plasma
|
||||
sheettype=/obj/item/stack/sheet/mineral/plasma
|
||||
cointype=/obj/item/weapon/coin/plasma
|
||||
|
||||
/datum/material/gold
|
||||
name="Gold"
|
||||
id="gold"
|
||||
value=20
|
||||
oretype=/obj/item/weapon/ore/gold
|
||||
sheettype=/obj/item/stack/sheet/mineral/gold
|
||||
cointype=/obj/item/weapon/coin/gold
|
||||
|
||||
/datum/material/silver
|
||||
name="Silver"
|
||||
id="silver"
|
||||
value=20
|
||||
oretype=/obj/item/weapon/ore/silver
|
||||
sheettype=/obj/item/stack/sheet/mineral/silver
|
||||
cointype=/obj/item/weapon/coin/silver
|
||||
|
||||
/datum/material/uranium
|
||||
name="Uranium"
|
||||
id="uranium"
|
||||
value=20
|
||||
oretype=/obj/item/weapon/ore/uranium
|
||||
sheettype=/obj/item/stack/sheet/mineral/uranium
|
||||
cointype=/obj/item/weapon/coin/uranium
|
||||
|
||||
/datum/material/clown
|
||||
name="Bananium"
|
||||
id="clown"
|
||||
value=100
|
||||
oretype=/obj/item/weapon/ore/clown
|
||||
sheettype=/obj/item/stack/sheet/mineral/clown
|
||||
cointype=/obj/item/weapon/coin/clown
|
||||
|
||||
/datum/material/plastic
|
||||
name="Plastic"
|
||||
id="plastic"
|
||||
value=1
|
||||
oretype=null
|
||||
sheettype=/obj/item/stack/sheet/mineral/plastic
|
||||
cointype=null
|
||||
|
||||
/datum/material/fabric
|
||||
name="Fabric"
|
||||
id="fabric"
|
||||
value=20
|
||||
oretype=/obj/item/weapon/ore/fabric
|
||||
sheettype=null
|
||||
cointype=null
|
||||
@@ -1,107 +0,0 @@
|
||||
var/list/name_to_mineral
|
||||
|
||||
proc/SetupMinerals()
|
||||
name_to_mineral = list()
|
||||
for(var/type in subtypesof(/mineral))
|
||||
var/mineral/new_mineral = new type
|
||||
if(!new_mineral.name)
|
||||
continue
|
||||
name_to_mineral[new_mineral.name] = new_mineral
|
||||
return 1
|
||||
|
||||
mineral
|
||||
///What am I called?
|
||||
var/name
|
||||
var/display_name
|
||||
///How much ore?
|
||||
var/result_amount
|
||||
///Does this type of deposit spread?
|
||||
var/spread = 1
|
||||
///Chance of spreading in any direction
|
||||
var/spread_chance
|
||||
|
||||
///Path to the resultant ore.
|
||||
var/ore
|
||||
|
||||
New()
|
||||
. = ..()
|
||||
if(!display_name)
|
||||
display_name = name
|
||||
|
||||
proc/UpdateTurf(var/turf/simulated/mineral/T)
|
||||
T.UpdateMineral()
|
||||
|
||||
mineral/uranium
|
||||
name = "Uranium"
|
||||
result_amount = 5
|
||||
spread_chance = 10
|
||||
ore = /obj/item/weapon/ore/uranium
|
||||
|
||||
mineral/iron
|
||||
name = "Iron"
|
||||
result_amount = 5
|
||||
spread_chance = 25
|
||||
ore = /obj/item/weapon/ore/iron
|
||||
|
||||
mineral/diamond
|
||||
name = "Diamond"
|
||||
result_amount = 5
|
||||
spread_chance = 10
|
||||
ore = /obj/item/weapon/ore/diamond
|
||||
|
||||
mineral/gold
|
||||
name = "Gold"
|
||||
result_amount = 5
|
||||
spread_chance = 10
|
||||
ore = /obj/item/weapon/ore/gold
|
||||
|
||||
mineral/silver
|
||||
name = "Silver"
|
||||
result_amount = 5
|
||||
spread_chance = 10
|
||||
ore = /obj/item/weapon/ore/silver
|
||||
|
||||
mineral/platinum
|
||||
name = "Platinum"
|
||||
result_amount = 5
|
||||
spread_chance = 10
|
||||
ore = /obj/item/weapon/ore/osmium
|
||||
|
||||
mineral/plasma
|
||||
name = "Plasma"
|
||||
result_amount = 5
|
||||
spread_chance = 25
|
||||
ore = /obj/item/weapon/ore/plasma
|
||||
|
||||
mineral/clown
|
||||
display_name = "Bananium"
|
||||
name = "Clown"
|
||||
result_amount = 3
|
||||
spread = 0
|
||||
ore = /obj/item/weapon/ore/clown
|
||||
|
||||
mineral/coal
|
||||
name = "Coal"
|
||||
result_amount = 5
|
||||
spread_chance = 25
|
||||
ore = /obj/item/weapon/ore/coal
|
||||
|
||||
mineral/hydrogen
|
||||
name = "Hydrogen"
|
||||
result_amount = 5
|
||||
spread_chance = 10
|
||||
ore = /obj/item/weapon/ore/coal
|
||||
|
||||
|
||||
mineral/cave
|
||||
display_name = "Cave"
|
||||
name = "Cave"
|
||||
result_amount = 1
|
||||
spread_chance = 10
|
||||
ore = null
|
||||
UpdateTurf(var/turf/T)
|
||||
if(!istype(T,/turf/simulated/floor/plating/airless/asteroid/cave))
|
||||
T.ChangeTurf(/turf/simulated/floor/plating/airless/asteroid/cave)
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -1,252 +0,0 @@
|
||||
/obj/machinery/manufacturer/mining
|
||||
name = "Mining Fabricator"
|
||||
desc = "A manufacturing unit calibrated to produce mining related equipment."
|
||||
acceptdisk = 1
|
||||
|
||||
New()
|
||||
..()
|
||||
src.available += new /datum/manufacture/pick(src)
|
||||
src.available += new /datum/manufacture/shovel(src)
|
||||
src.available += new /datum/manufacture/oresatchel(src)
|
||||
src.available += new /datum/manufacture/breathmask(src)
|
||||
src.available += new /datum/manufacture/spacesuit(src)
|
||||
src.available += new /datum/manufacture/spacehelm(src)
|
||||
src.available += new /datum/manufacture/eyes_meson(src)
|
||||
src.hidden += new /datum/manufacture/RCD(src)
|
||||
src.hidden += new /datum/manufacture/RCDammo(src)
|
||||
|
||||
|
||||
// Mining Gear
|
||||
/datum/manufacture/pick
|
||||
name = "Pickaxe"
|
||||
item = /obj/item/weapon/pickaxe
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 5
|
||||
time = 5
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/shovel
|
||||
name = "Shovel"
|
||||
item = /obj/item/weapon/shovel
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 3
|
||||
time = 2
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/spick
|
||||
name = "Silver Pickaxe"
|
||||
item = /obj/item/weapon/pickaxe/silver
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 5
|
||||
cost2 = /obj/item/weapon/ore/silver
|
||||
cname2 = "Silver"
|
||||
amount2 = 5
|
||||
time = 10
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/gpick
|
||||
name = "Gold Pickaxe"
|
||||
item = /obj/item/weapon/pickaxe/gold
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 5
|
||||
cost2 = /obj/item/weapon/ore/gold
|
||||
cname2 = "Gold"
|
||||
amount2 = 5
|
||||
time = 15
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/dpick
|
||||
name = "Diamond Pickaxe"
|
||||
item = /obj/item/weapon/pickaxe/diamond
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 5
|
||||
cost2 = /obj/item/weapon/ore/diamond
|
||||
cname2 = "Uranium"
|
||||
amount2 = 5
|
||||
time = 30
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/jackhammer
|
||||
name = "Sonic Jackhammer"
|
||||
item = /obj/item/weapon/pickaxe/jackhammer
|
||||
cost1 = /obj/item/weapon/ore/gold
|
||||
cname1 = "Gold"
|
||||
amount1 = 8
|
||||
cost2 = /obj/item/weapon/ore/silver
|
||||
cname2 = "Silver"
|
||||
amount2 = 12
|
||||
time = 30
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/drill
|
||||
name = "Hand Drill"
|
||||
item = /obj/item/weapon/pickaxe/drill
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 15
|
||||
time = 20
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/diamonddrill
|
||||
name = "Diamond Drill"
|
||||
item = /obj/item/weapon/pickaxe/diamonddrill
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 15
|
||||
cost2 = /obj/item/weapon/ore/diamond
|
||||
cname2 = "Diamond"
|
||||
amount2 = 15
|
||||
cost3 = /obj/item/weapon/ore/silver
|
||||
cname3 = "Silver"
|
||||
amount3 = 15
|
||||
time = 40
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/cutter
|
||||
name = "Plasma Cutter"
|
||||
item = /obj/item/weapon/pickaxe/plasmacutter
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 10
|
||||
cost2 = /obj/item/weapon/ore/gold
|
||||
cname2 = "Gold"
|
||||
amount2 = 10
|
||||
cost3 = /obj/item/weapon/ore/plasma
|
||||
cname3 = "Plasma"
|
||||
amount3 = 15
|
||||
time = 30
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/eyes_meson
|
||||
name = "Optical Meson Scanner"
|
||||
item = /obj/item/clothing/glasses/meson
|
||||
cost1 = /obj/item/weapon/ore/glass
|
||||
cname1 = "Glass"
|
||||
amount1 = 5
|
||||
cost2 = /obj/item/weapon/ore/silver
|
||||
cname2 = "Silver"
|
||||
amount2 = 3
|
||||
time = 10
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/miningsuit
|
||||
name = "Mining Hardsuit"
|
||||
item = /obj/item/clothing/suit/space/rig/mining
|
||||
cost1 = /obj/item/weapon/ore/osmium
|
||||
cname1 = "Platinum"
|
||||
amount1 = 30
|
||||
cost2 = /obj/item/weapon/ore/iron
|
||||
cname2 = "Iron"
|
||||
amount2 = 30
|
||||
time = 30
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/mininghelm
|
||||
name = "Mining Hardsuit Helmet"
|
||||
item = /obj/item/clothing/head/helmet/space/rig/mining
|
||||
cost1 = /obj/item/weapon/ore/osmium
|
||||
cname1 = "Platinum"
|
||||
amount1 = 30
|
||||
cost2 = /obj/item/weapon/ore/iron
|
||||
cname2 = "Iron"
|
||||
amount2 = 30
|
||||
time = 20
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/breathmask
|
||||
name = "Breath Mask"
|
||||
item = /obj/item/clothing/mask/breath
|
||||
cost1 = /obj/item/weapon/ore/fabric
|
||||
cname1 = "Fabric"
|
||||
amount1 = 1
|
||||
time = 5
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/spacesuit
|
||||
name = "Space Suit"
|
||||
item = /obj/item/clothing/suit/space
|
||||
cost1 = /obj/item/weapon/ore/fabric
|
||||
cname1 = "Fabric"
|
||||
amount1 = 5
|
||||
cost2 = /obj/item/weapon/ore/iron
|
||||
cname2 = "Iron"
|
||||
amount2 = 5
|
||||
time = 15
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/spacehelm
|
||||
name = "Space Helmet"
|
||||
item = /obj/item/clothing/head/helmet/space
|
||||
cost1 = /obj/item/weapon/ore/fabric
|
||||
cname1 = "Fabric"
|
||||
amount1 = 5
|
||||
cost2 = /obj/item/weapon/ore/glass
|
||||
cname2 = "Glass"
|
||||
amount2 = 5
|
||||
time = 10
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/oresatchel
|
||||
name = "Ore Satchel"
|
||||
item = /obj/item/weapon/storage/bag/ore
|
||||
cost1 = /obj/item/weapon/ore/fabric
|
||||
cname1 = "Fabric"
|
||||
amount1 = 5
|
||||
time = 5
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/jetpack
|
||||
name = "Jetpack"
|
||||
item = /obj/item/weapon/tank/jetpack
|
||||
cost1 = /obj/item/weapon/ore/gold
|
||||
cname1 = "Gold"
|
||||
amount1 = 15
|
||||
cost2 = /obj/item/weapon/ore/silver
|
||||
cname2 = "Silver"
|
||||
amount2 = 20
|
||||
time = 30
|
||||
create = 1
|
||||
|
||||
//Diskettes!
|
||||
/obj/item/weapon/disk/data/schematic/mining1
|
||||
name = "Mining Schematics Level 1"
|
||||
desc = "Contains the schematics for a new range of Pickaxes."
|
||||
|
||||
New()
|
||||
src.schematics += new /datum/manufacture/spick(src)
|
||||
src.schematics += new /datum/manufacture/gpick(src)
|
||||
src.schematics += new /datum/manufacture/dpick(src)
|
||||
|
||||
/obj/item/weapon/disk/data/schematic/mining2
|
||||
name = "Mining Schematics Level 2"
|
||||
desc = "Contains the schematics for a new line of drills. And a Plasma Cutter. Has the previous level as well."
|
||||
|
||||
New()
|
||||
src.schematics += new /datum/manufacture/spick(src)
|
||||
src.schematics += new /datum/manufacture/gpick(src)
|
||||
src.schematics += new /datum/manufacture/dpick(src)
|
||||
src.schematics += new /datum/manufacture/drill(src)
|
||||
src.schematics += new /datum/manufacture/jackhammer(src)
|
||||
src.schematics += new /datum/manufacture/diamonddrill(src)
|
||||
src.schematics += new /datum/manufacture/cutter(src)
|
||||
|
||||
/obj/item/weapon/disk/data/schematic/mining3
|
||||
name = "Mining Schematics Level 3"
|
||||
desc = "Contains the schematics for a new type of Spacesuit, and schematics for a Jetpack. Has the previous levels as well."
|
||||
|
||||
New()
|
||||
src.schematics += new /datum/manufacture/spick(src)
|
||||
src.schematics += new /datum/manufacture/gpick(src)
|
||||
src.schematics += new /datum/manufacture/dpick(src)
|
||||
src.schematics += new /datum/manufacture/drill(src)
|
||||
src.schematics += new /datum/manufacture/jackhammer(src)
|
||||
src.schematics += new /datum/manufacture/diamonddrill(src)
|
||||
src.schematics += new /datum/manufacture/cutter(src)
|
||||
src.schematics += new /datum/manufacture/miningsuit(src)
|
||||
src.schematics += new /datum/manufacture/mininghelm(src)
|
||||
src.schematics += new /datum/manufacture/jetpack(src)
|
||||
@@ -1,55 +0,0 @@
|
||||
/datum/ore
|
||||
var/oretag
|
||||
var/alloy
|
||||
var/smelts_to
|
||||
var/compresses_to
|
||||
|
||||
/datum/ore/uranium
|
||||
smelts_to = /obj/item/stack/sheet/mineral/uranium
|
||||
oretag = "uranium"
|
||||
|
||||
/datum/ore/iron
|
||||
smelts_to = /obj/item/stack/sheet/mineral/iron
|
||||
alloy = 1
|
||||
oretag = "hematite"
|
||||
|
||||
/datum/ore/coal
|
||||
smelts_to = /obj/item/stack/sheet/mineral/plastic
|
||||
alloy = 1
|
||||
oretag = "coal"
|
||||
|
||||
/datum/ore/glass
|
||||
smelts_to = /obj/item/stack/sheet/glass
|
||||
compresses_to = /obj/item/stack/sheet/mineral/sandstone
|
||||
oretag = "sand"
|
||||
|
||||
/datum/ore/plasma
|
||||
smelts_to = /obj/item/stack/sheet/mineral/plasma
|
||||
oretag = "plasma"
|
||||
|
||||
/datum/ore/silver
|
||||
smelts_to = /obj/item/stack/sheet/mineral/silver
|
||||
oretag = "silver"
|
||||
|
||||
/datum/ore/gold
|
||||
smelts_to = /obj/item/stack/sheet/mineral/gold
|
||||
oretag = "gold"
|
||||
|
||||
/datum/ore/diamond
|
||||
compresses_to = /obj/item/stack/sheet/mineral/diamond
|
||||
oretag = "diamond"
|
||||
|
||||
/datum/ore/osmium
|
||||
smelts_to = /obj/item/stack/sheet/mineral/platinum
|
||||
compresses_to = /obj/item/stack/sheet/mineral/osmium
|
||||
alloy = 1
|
||||
oretag = "platinum"
|
||||
|
||||
/datum/ore/hydrogen
|
||||
smelts_to = /obj/item/stack/sheet/mineral/tritium
|
||||
compresses_to = /obj/item/stack/sheet/mineral/mhydrogen
|
||||
oretag = "hydrogen"
|
||||
|
||||
/datum/ore/clown
|
||||
smelts_to = /obj/item/stack/sheet/mineral/clown
|
||||
oretag = "clown"
|
||||
@@ -1,128 +0,0 @@
|
||||
/obj/machinery/manufacturer/security
|
||||
name = "Security Fabricator"
|
||||
desc = "A manufacturing unit calibrated to produce security and military related equipment."
|
||||
acceptdisk = 1
|
||||
|
||||
New()
|
||||
..()
|
||||
src.available += new /datum/manufacture/beret(src)
|
||||
src.available += new /datum/manufacture/helmet1(src)
|
||||
src.available += new /datum/manufacture/sunglasses(src)
|
||||
src.available += new /datum/manufacture/sechud(src)
|
||||
src.available += new /datum/manufacture/secpants(src)
|
||||
src.available += new /datum/manufacture/secbelt(src)
|
||||
src.available += new /datum/manufacture/armor1(src)
|
||||
src.available += new /datum/manufacture/taser(src)
|
||||
src.available += new /datum/manufacture/baton(src)
|
||||
|
||||
// Security Gear Tier-0. AKA Clothing and basic as shit gear.
|
||||
/datum/manufacture/beret
|
||||
name = "Beret"
|
||||
item = /obj/item/clothing/head/beret/sec
|
||||
cost1 = /obj/item/weapon/ore/fabric
|
||||
cname1 = "Fabric"
|
||||
amount1 = 2
|
||||
time = 3
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/helmet1
|
||||
name = "Helmet"
|
||||
item = /obj/item/clothing/head/helmet
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 10
|
||||
cost2 = /obj/item/weapon/ore/fabric
|
||||
cname2 = "Fabric"
|
||||
amount2 = 10
|
||||
time = 10
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/sunglasses
|
||||
name = "Sunglasses"
|
||||
item = /obj/item/clothing/glasses/sunglasses
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 5
|
||||
cost2 = /obj/item/weapon/ore/glass
|
||||
cname2 = "Glass"
|
||||
amount2 = 10
|
||||
time = 8
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/sechud
|
||||
name = "Security HUD"
|
||||
item = /obj/item/clothing/glasses/hud/security
|
||||
cost1 = /obj/item/weapon/ore/osmium
|
||||
cname1 = "Platinum"
|
||||
amount1 = 10
|
||||
cost2 = /obj/item/weapon/ore/glass
|
||||
cname2 = "Glass"
|
||||
amount2 = 15
|
||||
time = 12
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/secpants
|
||||
name = "Security Uniform"
|
||||
item = /obj/item/clothing/under/rank/security
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 2
|
||||
cost2 = /obj/item/weapon/ore/fabric
|
||||
cname2 = "Fabric"
|
||||
amount2 = 1
|
||||
time = 10
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/secbelt
|
||||
name = "Security Belt"
|
||||
item = /obj/item/weapon/storage/belt/security
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 2
|
||||
cost2 = /obj/item/weapon/ore/fabric
|
||||
cname2 = "Fabric"
|
||||
amount2 = 5
|
||||
time = 15
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/armor1
|
||||
name = "Armored Vest"
|
||||
item = /obj/item/clothing/suit/armor/vest
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 15
|
||||
cost2 = /obj/item/weapon/ore/fabric
|
||||
cname2 = "Fabric"
|
||||
amount2 = 15
|
||||
time = 20
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/taser
|
||||
name = "Advanced Taser"
|
||||
item = /obj/item/weapon/gun/energy/gun/advtaser
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 15
|
||||
cost2 = /obj/item/weapon/ore/glass
|
||||
cname2 = "Glass"
|
||||
amount2 = 10
|
||||
cost3 = /obj/item/weapon/ore/osmium
|
||||
cname3 = "Platinum"
|
||||
amount3 = 20
|
||||
time = 25
|
||||
create = 1
|
||||
|
||||
/datum/manufacture/baton
|
||||
name = "Stun Baton"
|
||||
item = /obj/item/weapon/melee/baton
|
||||
cost1 = /obj/item/weapon/ore/iron
|
||||
cname1 = "Iron"
|
||||
amount1 = 10
|
||||
cost2 = /obj/item/weapon/ore/glass
|
||||
cname2 = "Glass"
|
||||
amount2 = 10
|
||||
cost3 = /obj/item/weapon/ore/osmium
|
||||
cname3 = "Platinum"
|
||||
amount3 = 15
|
||||
time = 20
|
||||
create = 1
|
||||
@@ -1,342 +0,0 @@
|
||||
#define CONTIGUOUS_WALLS 1
|
||||
#define CONTIGUOUS_FLOORS 2
|
||||
|
||||
#define TURF_FLOOR 0
|
||||
#define TURF_WALL 1
|
||||
var/global/list/mining_surprises = subtypesof(/mining_surprise)
|
||||
|
||||
/surprise_turf_info
|
||||
var/list/types[0]
|
||||
var/list/adjacents
|
||||
var/turf_type=TURF_FLOOR
|
||||
|
||||
New()
|
||||
adjacents=list(
|
||||
"[NORTH]"=list(),
|
||||
"[SOUTH]"=list(),
|
||||
"[EAST]"=list(),
|
||||
"[WEST]"=list()
|
||||
)
|
||||
|
||||
proc/GetAdjacentTypes(var/dir)
|
||||
return adjacents["[dir]"]
|
||||
|
||||
/surprise_room
|
||||
var/list/turfs[0]
|
||||
|
||||
// Used for layout system.
|
||||
var/list/turf_info[0]
|
||||
|
||||
var/size_x=0
|
||||
var/size_y=0
|
||||
|
||||
proc/UpdateTurfs()
|
||||
for(var/turf/T in turfs)
|
||||
UpdateTurf(T)
|
||||
|
||||
proc/GetTurfs(var/ttype)
|
||||
var/list/selected[0]
|
||||
for(var/turf/T in turfs)
|
||||
var/surprise_turf_info/Ti = GetTurfInfo(T)
|
||||
if(Ti.turf_type==ttype)
|
||||
selected |= T
|
||||
return selected
|
||||
|
||||
proc/GetTurfInfo(var/turf/T)
|
||||
var/surprise_turf_info/sti
|
||||
if(!(T in turf_info))
|
||||
sti = new
|
||||
turf_info[T]=sti
|
||||
else
|
||||
sti = turf_info[T]
|
||||
return sti
|
||||
|
||||
proc/UpdateTurf(var/turf/T, var/no_adjacent=0)
|
||||
// List types in this turf.
|
||||
var/surprise_turf_info/sti = GetTurfInfo(T)
|
||||
|
||||
sti.types=0
|
||||
for(var/atom/A in T.contents)
|
||||
sti.types |= A.type
|
||||
|
||||
if(no_adjacent) return
|
||||
UpdateAdjacentsOfTurf(T)
|
||||
|
||||
proc/AddTypeToTurf(var/turf/T, var/newtype)
|
||||
var/surprise_turf_info/sti = GetTurfInfo(T)
|
||||
sti.types |= newtype
|
||||
|
||||
//UpdateAdjacentsOfTurf(T)
|
||||
|
||||
proc/UpdateAdjacentsOfTurf(var/turf/T)
|
||||
var/surprise_turf_info/Ti = turf_info[T]
|
||||
for(var/dir in cardinal)
|
||||
var/turf/AT = get_step(T,dir)
|
||||
if(!(AT in turfs))
|
||||
return
|
||||
if(!(AT in turf_info))
|
||||
UpdateTurf(AT, no_adjacent=1)
|
||||
var/surprise_turf_info/ATi = turf_info[AT]
|
||||
// By-Ref so shit gets updated.
|
||||
ATi.adjacents["[reverse_direction(dir)]"]=Ti.types
|
||||
|
||||
|
||||
// For room layouts.
|
||||
/layout_rule
|
||||
var/mining_surprise/root
|
||||
var/surprise_room/room
|
||||
|
||||
// What to place if true
|
||||
var/placetype=null
|
||||
|
||||
var/min_to_place=5 // Force placement at ALL candidates.
|
||||
var/max_to_place=10 // 0 = max amount of ALL candidates.
|
||||
|
||||
var/placed_times=0
|
||||
|
||||
var/list/decorations=list() // types, empty for no decorations
|
||||
|
||||
var/flags = 0
|
||||
|
||||
New(var/mining_surprise/_root,var/surprise_room/_room)
|
||||
root=_root
|
||||
room=_room
|
||||
|
||||
// Called in Evaluate
|
||||
proc/Plop(var/turf/T)
|
||||
new placetype(T)
|
||||
placed_times++
|
||||
room.AddTypeToTurf(T,placetype)
|
||||
if(decorations.len)
|
||||
var/decoration = pickweight(decorations)
|
||||
new decoration(T)
|
||||
room.AddTypeToTurf(T,decoration)
|
||||
|
||||
// Return 1 if we Plop()'d something.
|
||||
// Return 0 if we didn't or something went wrong.
|
||||
proc/Evaluate()
|
||||
var/list/candidates=GetCandidates()
|
||||
if(candidates.len==0)
|
||||
return 0
|
||||
if(max_to_place<=0)
|
||||
max_to_place=candidates.len
|
||||
var/n=candidates.len
|
||||
if(min_to_place>0)
|
||||
n = min(candidates.len,rand(min_to_place,max_to_place))
|
||||
if(n==0)
|
||||
return 0
|
||||
for(var/i=0;i<n;i++)
|
||||
var/turf/T = candidates[1]
|
||||
candidates-=T
|
||||
Plop(T)
|
||||
|
||||
// Return list of turfs.
|
||||
proc/GetCandidates()
|
||||
return list()
|
||||
|
||||
/layout_rule/place_adjacent
|
||||
// MUST be next to any of these. Anywhere if not set.
|
||||
var/list/next_to=list(
|
||||
// type = list(NORTH,SOUTH,etc)
|
||||
)
|
||||
// MUST NOT be next to these.
|
||||
var/list/not_next_to=list(
|
||||
// type = list(NORTH,SOUTH,etc)
|
||||
)
|
||||
GetCandidates()
|
||||
// Organize next_to/not_next_to so it's easier to use.
|
||||
var/list/opt_nt[0]
|
||||
var/list/opt_nnt[0]
|
||||
var/list/candidates[0]
|
||||
for(var/dir in cardinal)
|
||||
var/di = "[dir]"
|
||||
if(!di in opt_nt)
|
||||
opt_nt[di]=list()
|
||||
opt_nnt[di]=list()
|
||||
for(var/t in next_to)
|
||||
if(dir in next_to[t])
|
||||
var/list/tl = opt_nt[di]
|
||||
tl |= t
|
||||
for(var/t in not_next_to)
|
||||
if(dir in not_next_to[t])
|
||||
var/list/tl = opt_nnt[di]
|
||||
tl |= t
|
||||
// Check each turf.
|
||||
for(var/turf/T in room.turfs)
|
||||
if(IsTurfCandidate(T,opt_nt,opt_nnt))
|
||||
candidates += T
|
||||
return candidates
|
||||
|
||||
proc/IsTurfCandidate(var/turf/T,var/list/opt_nt,var/list/opt_nnt)
|
||||
var/surprise_turf_info/sti = room.GetTurfInfo(T)
|
||||
for(var/dir in cardinal)
|
||||
var/di = "[dir]"
|
||||
for(var/_type in sti.adjacents[di])
|
||||
if(_type in opt_nnt[di])
|
||||
return 0
|
||||
if(_type in opt_nt[di])
|
||||
return 1
|
||||
return 1
|
||||
|
||||
/mining_surprise
|
||||
var/name = "Hidden Complex"
|
||||
|
||||
//: Types of floor to use
|
||||
var/list/floortypes[0]
|
||||
var/list/walltypes[0]
|
||||
var/list/spawntypes[0]
|
||||
var/list/fluffitems[0]
|
||||
|
||||
var/max_richness=2
|
||||
|
||||
//: How many rooms?
|
||||
var/complex_max_size=1
|
||||
|
||||
var/room_size_max=5
|
||||
|
||||
var/flags=0
|
||||
|
||||
var/list/rooms=list()
|
||||
var/list/goodies=list()
|
||||
var/list/candidates=list()
|
||||
|
||||
var/area/asteroid/artifactroom/complex_area
|
||||
|
||||
proc/spawn_complex(var/atom/start_loc)
|
||||
name = "[initial(name)] #[rand(100,999)]"
|
||||
complex_area = new
|
||||
complex_area.name = name
|
||||
var/atom/pos=start_loc
|
||||
var/nrooms=complex_max_size
|
||||
var/maxtries=50
|
||||
var/l_size_x=0
|
||||
var/l_size_y=0
|
||||
while(nrooms && maxtries)
|
||||
var/sx=rand(3,room_size_max)
|
||||
var/sy=rand(3,room_size_max)
|
||||
var/o_x=l_size_x?rand(0,l_size_x):0
|
||||
var/o_y=l_size_y?rand(0,l_size_y):0
|
||||
var/atom/npos
|
||||
switch(pick(cardinal))
|
||||
if(NORTH)
|
||||
npos=locate(pos.x+o_x, pos.y+sy-1, pos.z)
|
||||
if(SOUTH)
|
||||
npos=locate(pos.x+o_x, pos.y-sy+1, pos.z)
|
||||
if(WEST)
|
||||
npos=locate(pos.x-sx-1, pos.y+o_y, pos.z)
|
||||
if(EAST)
|
||||
npos=locate(pos.x+sx+1, pos.y+o_y, pos.z)
|
||||
if(spawn_room(npos,sx,sy,1))
|
||||
pos=npos
|
||||
l_size_x=sx
|
||||
l_size_y=sy
|
||||
else if(complex_max_size==nrooms)
|
||||
// Failed to make first room, abort.
|
||||
del(complex_area)
|
||||
return 0
|
||||
else
|
||||
maxtries--
|
||||
continue
|
||||
nrooms--
|
||||
postProcessComplex()
|
||||
message_admins("Complex spawned at [formatJumpTo(start_loc)]")
|
||||
return 1
|
||||
|
||||
proc/postProcessRoom(var/surprise_room/room)
|
||||
for(var/turf/floor in room.turfs)
|
||||
if(floor.density) continue
|
||||
for(var/turf/T in floor.AdjacentTurfs())
|
||||
if(T in room.turfs)
|
||||
if(T.density) continue
|
||||
candidates|=T
|
||||
break
|
||||
|
||||
proc/postProcessComplex()
|
||||
for(var/i=0;i<=rand(1,max_richness);i++)
|
||||
if(!candidates.len)
|
||||
return
|
||||
var/turf/T = pick(candidates)
|
||||
var/thing = pickweight(spawntypes)
|
||||
if(thing==null)
|
||||
continue
|
||||
new thing(T)
|
||||
candidates -= T
|
||||
message_admins("Goodie [thing] spawned at [formatJumpTo(T)]")
|
||||
|
||||
for(var/i=0;i<=rand(5,10);i++)
|
||||
if(!candidates.len)
|
||||
return
|
||||
var/turf/T = pick(candidates)
|
||||
var/thing = pickweight(fluffitems)
|
||||
if(thing==null)
|
||||
continue
|
||||
new thing(T)
|
||||
|
||||
proc/spawn_room(var/atom/start_loc, var/x_size, var/y_size, var/clean=0)
|
||||
if(!check_complex_placement(start_loc,x_size,y_size))
|
||||
return 0
|
||||
|
||||
// If walls/floors are contiguous, pick them out.
|
||||
var/wall_type
|
||||
if(flags & CONTIGUOUS_WALLS)
|
||||
wall_type = pickweight(walltypes)
|
||||
|
||||
var/floor_type
|
||||
if(flags & CONTIGUOUS_FLOORS)
|
||||
floor_type = pickweight(floortypes)
|
||||
|
||||
|
||||
var/list/walls[0]
|
||||
var/list/floors[0]
|
||||
for(var/x = 0,x<x_size,x++)
|
||||
for(var/y = 0,y<y_size,y++)
|
||||
var/turf/cur_loc = locate(start_loc.x+x,start_loc.y+y,start_loc.z)
|
||||
|
||||
if(clean)
|
||||
for(var/O in cur_loc)
|
||||
qdel(O)
|
||||
|
||||
if(x == 0 || x==x_size-1 || y==0 || y==y_size-1)
|
||||
walls |= cur_loc
|
||||
else
|
||||
floors |= cur_loc
|
||||
|
||||
var/surprise_room/room = new
|
||||
for(var/turf/turf in walls)
|
||||
|
||||
if(!(flags & CONTIGUOUS_WALLS))
|
||||
wall_type=pickweight(walltypes)
|
||||
|
||||
var/turf/T
|
||||
if(dd_hasprefix("[wall_type]","/obj"))
|
||||
if(!(flags & CONTIGUOUS_FLOORS))
|
||||
floor_type=pickweight(floortypes)
|
||||
T=new floor_type(turf)
|
||||
new wall_type(T)
|
||||
else
|
||||
//testing("Creating wall of type [wall_type].")
|
||||
T=new wall_type(turf)
|
||||
room.turfs += T
|
||||
complex_area.contents += T
|
||||
var/surprise_turf_info/Ti = room.GetTurfInfo(T)
|
||||
Ti.turf_type=TURF_WALL
|
||||
|
||||
for(var/turf/turf in floors)
|
||||
if(!(flags & CONTIGUOUS_FLOORS))
|
||||
floor_type=pickweight(floortypes)
|
||||
|
||||
var/turf/T = new floor_type(turf)
|
||||
room.turfs += T
|
||||
complex_area.contents += T
|
||||
var/surprise_turf_info/Ti = room.GetTurfInfo(T)
|
||||
Ti.turf_type=TURF_FLOOR
|
||||
|
||||
room.UpdateTurfs()
|
||||
|
||||
postProcessRoom(room)
|
||||
|
||||
rooms += room
|
||||
|
||||
message_admins("Room spawned at [formatJumpTo(start_loc)]")
|
||||
|
||||
return 1
|
||||
@@ -1,181 +0,0 @@
|
||||
///////////////////
|
||||
// /tg/ Surprises
|
||||
///////////////////
|
||||
|
||||
/mining_surprise/organharvest
|
||||
walltypes = list(
|
||||
/turf/simulated/wall/r_wall=2,
|
||||
/turf/simulated/wall=2,
|
||||
/turf/simulated/mineral/random/high_chance=1
|
||||
)
|
||||
floortypes = list(
|
||||
/turf/simulated/floor=1,
|
||||
/turf/simulated/floor/engine=1
|
||||
)
|
||||
spawntypes = list(
|
||||
/obj/item/device/mass_spectrometer/adv=1,
|
||||
/obj/item/clothing/glasses/hud/health=1,
|
||||
/obj/machinery/bot/medbot/syndicate=1
|
||||
)
|
||||
fluffitems = list(
|
||||
/obj/effect/decal/cleanable/blood=5,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/appendix=2, // OM NOM
|
||||
/obj/structure/closet/crate/freezer=2,
|
||||
/obj/machinery/optable=1,
|
||||
/obj/item/weapon/scalpel=1,
|
||||
/obj/item/weapon/storage/firstaid/regular=3,
|
||||
/obj/item/weapon/tank/anesthetic=1,
|
||||
///obj/item/weapon/surgical_drapes=2
|
||||
)
|
||||
|
||||
flags = CONTIGUOUS_WALLS | CONTIGUOUS_FLOORS
|
||||
|
||||
complex_max_size=3
|
||||
room_size_max=7
|
||||
|
||||
/mining_surprise/cult
|
||||
name = "Hidden Temple"
|
||||
walltypes = list(
|
||||
/turf/simulated/wall/cult=3,
|
||||
/turf/simulated/mineral/random/high_chance=1
|
||||
)
|
||||
floortypes = list(
|
||||
/turf/simulated/floor/engine/cult=1
|
||||
)
|
||||
spawntypes = list(
|
||||
/mob/living/simple_animal/hostile/creature=1,
|
||||
// /obj/item/organ/heart=2,
|
||||
/obj/item/device/soulstone=1
|
||||
)
|
||||
fluffitems = list(
|
||||
/obj/effect/gateway=1,
|
||||
/obj/effect/gibspawner=1,
|
||||
/obj/structure/cult/talisman=1,
|
||||
/obj/item/toy/crayon/red=2,
|
||||
/obj/effect/decal/cleanable/blood=4,
|
||||
/obj/structure/table/woodentable=2,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/ectoplasm=3
|
||||
)
|
||||
|
||||
flags = CONTIGUOUS_WALLS | CONTIGUOUS_FLOORS
|
||||
|
||||
complex_max_size=3
|
||||
room_size_max=5
|
||||
|
||||
/mining_surprise/wizden
|
||||
name = "Hidden Den"
|
||||
walltypes = list(
|
||||
/turf/simulated/wall/mineral/plasma=3,
|
||||
/turf/simulated/mineral/random/high_chance=1
|
||||
)
|
||||
floortypes = list(
|
||||
/turf/simulated/floor/wood=1
|
||||
)
|
||||
spawntypes = list(
|
||||
// /vg/: Let's not. /obj/item/weapon/veilrender/vealrender=1,
|
||||
// /vg/: /obj/item/key=1
|
||||
/obj/item/clothing/glasses/monocle=5,
|
||||
)
|
||||
fluffitems = list(
|
||||
/obj/structure/safe/floor=1,
|
||||
// /obj/structure/wardrobe=1,
|
||||
/obj/item/weapon/storage/belt/soulstone=1,
|
||||
/obj/item/trash/candle=3,
|
||||
/obj/item/weapon/dice=3,
|
||||
/obj/item/weapon/twohanded/staff=2,
|
||||
/obj/effect/decal/cleanable/dirt=3,
|
||||
)
|
||||
|
||||
flags = CONTIGUOUS_WALLS | CONTIGUOUS_FLOORS
|
||||
|
||||
complex_max_size=1
|
||||
room_size_max=7
|
||||
|
||||
/mining_surprise/cavein
|
||||
name="Cave-In"
|
||||
|
||||
walltypes = list(
|
||||
/turf/simulated/mineral/random/high_chance=1
|
||||
)
|
||||
floortypes = list(
|
||||
/turf/simulated/floor/plating/airless/asteroid=1
|
||||
)
|
||||
spawntypes = list(
|
||||
/obj/mecha/working/ripley/mining=1,
|
||||
/obj/item/weapon/pickaxe/jackhammer=2,
|
||||
/obj/item/weapon/pickaxe/diamonddrill=2
|
||||
)
|
||||
fluffitems = list(
|
||||
/obj/effect/decal/cleanable/blood=3,
|
||||
/obj/effect/decal/remains/human=1,
|
||||
/obj/item/clothing/under/overalls=1,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/chili=1,
|
||||
/obj/item/weapon/tank/oxygen/red=2
|
||||
)
|
||||
|
||||
complex_max_size=3
|
||||
room_size_max=7
|
||||
|
||||
/mining_surprise/human/hitech
|
||||
complex_max_size=3
|
||||
room_size_max=7
|
||||
|
||||
walltypes = list(
|
||||
/turf/simulated/wall/r_wall=1
|
||||
)
|
||||
floortypes = list(
|
||||
/turf/simulated/floor/greengrid=1,
|
||||
/turf/simulated/floor/bluegrid=1
|
||||
)
|
||||
spawntypes = list(
|
||||
/obj/item/weapon/pickaxe/plasmacutter=1,
|
||||
/obj/machinery/shieldgen=1,
|
||||
/obj/item/weapon/stock_parts/cell/hyper=1
|
||||
)
|
||||
fluffitems = list(
|
||||
/obj/structure/table/reinforced=2,
|
||||
/obj/item/weapon/stock_parts/scanning_module/phasic=3,
|
||||
/obj/item/weapon/stock_parts/matter_bin/super=3,
|
||||
/obj/item/weapon/stock_parts/manipulator/pico=3,
|
||||
/obj/item/weapon/stock_parts/capacitor/super=3,
|
||||
/obj/item/device/pda/clear=1
|
||||
)
|
||||
|
||||
/mining_surprise/human/speakeasy
|
||||
complex_max_size=3
|
||||
room_size_max=7
|
||||
|
||||
floortypes = list(
|
||||
/turf/simulated/floor,
|
||||
/turf/simulated/floor/wood)
|
||||
spawntypes = list(
|
||||
/obj/item/weapon/melee/energy/sword/pirate=1,
|
||||
/obj/structure/closet/syndicate/resources=2
|
||||
)
|
||||
fluffitems = list(
|
||||
/obj/structure/table/woodentable=2,
|
||||
/obj/structure/reagent_dispensers/beerkeg=1,
|
||||
/obj/item/weapon/spacecash/c500=4,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/shaker=1,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/wine=3,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey=3,
|
||||
/obj/item/clothing/shoes/laceup=2
|
||||
)
|
||||
|
||||
/mining_surprise/human/plantlab
|
||||
complex_max_size=2
|
||||
room_size_max=7
|
||||
|
||||
spawntypes = list(
|
||||
/obj/item/weapon/gun/energy/floragun=1,
|
||||
/obj/item/seeds/bluespacetomatoseed=2
|
||||
)
|
||||
fluffitems = list(
|
||||
// /obj/structure/flora/kirbyplants=1,
|
||||
/obj/structure/table/reinforced=2,
|
||||
/obj/machinery/portable_atmospherics/hydroponics=1,
|
||||
/obj/effect/glowshroom/single=2,
|
||||
/obj/item/weapon/reagent_containers/syringe/charcoal=2,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/diethylamine=3,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/ammonia=3
|
||||
)
|
||||
@@ -1,133 +0,0 @@
|
||||
/* Not quite there yet
|
||||
#define ANY_SIDE list(NORTH,SOUTH,EAST,WEST)
|
||||
|
||||
/layout_rule/place_adjacent/workbench
|
||||
placetype=/obj/structure/table
|
||||
|
||||
min_to_place=3
|
||||
min_to_place=7
|
||||
|
||||
next_to=list(
|
||||
/turf/simulated/wall = ANY_SIDE,
|
||||
/turf/simulated/wall/r_wall = ANY_SIDE,
|
||||
)
|
||||
// MUST NOT be next to these.
|
||||
not_next_to=list()
|
||||
|
||||
decorations=list(
|
||||
/obj/item/weapon/screwdriver=2,
|
||||
/obj/item/weapon/crowbar=2,
|
||||
/obj/item/stack/metal=1,
|
||||
/obj/item/weapon/wrench=2
|
||||
)
|
||||
|
||||
/layout_rule/place_adjacent/workbench/wooden
|
||||
placetype=/obj/structure/table/woodentable
|
||||
|
||||
/layout_rule/place_adjacent/workbench/reinforced
|
||||
placetype=/obj/structure/table/reinforced
|
||||
|
||||
/layout_rule/place_adjacent/chair
|
||||
placetype=/obj/structure/stool/bed/chair
|
||||
|
||||
min_to_place=1
|
||||
min_to_place=2
|
||||
|
||||
next_to=list(
|
||||
/obj/structure/table = ANY_SIDE,
|
||||
)
|
||||
// MUST NOT be next to these.
|
||||
not_next_to=list(
|
||||
/obj/structure/stool/bed/chair = ANY_SIDE
|
||||
)
|
||||
|
||||
//flags = FACE_MATCH
|
||||
|
||||
/layout_rule/place_adjacent/chair/wooden
|
||||
placetype=/obj/structure/stool/bed/chair/wooden
|
||||
|
||||
min_to_place=1
|
||||
min_to_place=2
|
||||
|
||||
next_to=list(
|
||||
/obj/structure/table/wooden = ANY_SIDE,
|
||||
)
|
||||
// MUST NOT be next to these.
|
||||
not_next_to=list(
|
||||
/obj/structure/stool/bed/chair = ANY_SIDE
|
||||
)
|
||||
|
||||
//flags = FACE_MATCH
|
||||
*/
|
||||
/mining_surprise/human
|
||||
name="Hidden Complex"
|
||||
floortypes = list(
|
||||
/turf/simulated/floor/plasteel/airless=95,
|
||||
/turf/simulated/floor/plating/airless=5
|
||||
)
|
||||
walltypes = list(
|
||||
/turf/simulated/wall=100
|
||||
)
|
||||
spawntypes = list(
|
||||
/obj/item/weapon/pickaxe/silver =4,
|
||||
/obj/item/weapon/pickaxe/drill =4,
|
||||
/obj/item/weapon/pickaxe/jackhammer =4,
|
||||
/obj/item/weapon/pickaxe/diamond =3,
|
||||
/obj/item/weapon/pickaxe/diamonddrill =3,
|
||||
/obj/item/weapon/pickaxe/gold =3,
|
||||
/obj/item/weapon/pickaxe/plasmacutter =2,
|
||||
/obj/structure/closet/syndicate/resources =2,
|
||||
/obj/item/weapon/melee/energy/sword/pirate =1,
|
||||
/obj/mecha/working/ripley/mining =1
|
||||
)
|
||||
complex_max_size=2
|
||||
|
||||
flags = CONTIGUOUS_WALLS | CONTIGUOUS_FLOORS
|
||||
|
||||
/mining_surprise/alien_nest
|
||||
name="Hidden Nest"
|
||||
floortypes = list(
|
||||
/turf/simulated/floor/plating/airless/asteroid=100
|
||||
)
|
||||
|
||||
walltypes = list(
|
||||
/turf/simulated/mineral/random/high_chance=1
|
||||
)
|
||||
|
||||
spawntypes = list(
|
||||
/obj/item/clothing/mask/facehugger =4,
|
||||
/obj/mecha/working/ripley/mining =1
|
||||
)
|
||||
fluffitems = list(
|
||||
/obj/effect/decal/remains/human = 5,
|
||||
/obj/effect/decal/cleanable/blood/xeno = 5,
|
||||
/obj/effect/decal/mecha_wreckage/ripley = 1
|
||||
)
|
||||
complex_max_size=6
|
||||
room_size_max=7
|
||||
|
||||
var/const/eggs_left=10 // Per complex
|
||||
var/turf/weeds[0] // Turfs with weeds.
|
||||
postProcessComplex()
|
||||
..()
|
||||
var/list/all_floors=list()
|
||||
for(var/surprise_room/room in rooms)
|
||||
var/list/w_cand=room.GetTurfs(TURF_FLOOR)
|
||||
all_floors |= w_cand
|
||||
var/egged=0
|
||||
while(w_cand.len>0)
|
||||
var/turf/weed_turf = pick(w_cand)
|
||||
w_cand -= weed_turf
|
||||
if(weed_turf.density)
|
||||
continue
|
||||
if(locate(/obj/structure/alien) in weed_turf)
|
||||
continue
|
||||
if(weed_turf && !egged)
|
||||
new /obj/structure/alien/weeds/node(weed_turf)
|
||||
weeds += weed_turf
|
||||
break
|
||||
|
||||
for(var/e=0;e<eggs_left;e++)
|
||||
var/turf/egg_turf = pick(all_floors)
|
||||
if(egg_turf && !(locate(/obj/structure/alien) in egg_turf))
|
||||
new /obj/structure/alien/egg(egg_turf)
|
||||
Reference in New Issue
Block a user