Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into Ghommie-cit731
This commit is contained in:
@@ -112,8 +112,8 @@
|
||||
/datum/design/rcd_ammo_large
|
||||
name = "Large Compressed Matter Cartridge"
|
||||
id = "rcd_ammo_large"
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 48000, /datum/material/glass = 32000)
|
||||
build_path = /obj/item/rcd_ammo/large
|
||||
category = list("Tool Designs")
|
||||
category = list("hacked", "Construction", "Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@
|
||||
/datum/design/kitchen_knife
|
||||
name = "Kitchen Knife"
|
||||
id = "kitchen_knife"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 12000)
|
||||
build_path = /obj/item/kitchen/knife
|
||||
category = list("initial","Dinnerware")
|
||||
@@ -140,7 +140,7 @@
|
||||
/datum/design/healthanalyzer
|
||||
name = "Health Analyzer"
|
||||
id = "healthanalyzer"
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 500, /datum/material/glass = 50)
|
||||
build_path = /obj/item/healthanalyzer
|
||||
category = list("initial", "Medical")
|
||||
|
||||
+19
-19
@@ -36,7 +36,7 @@
|
||||
/datum/design/large_welding_tool
|
||||
name = "Industrial Welding Tool"
|
||||
id = "large_welding_tool"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 70, /datum/material/glass = 60)
|
||||
build_path = /obj/item/weldingtool/largetank
|
||||
category = list("hacked", "Tools")
|
||||
@@ -44,7 +44,7 @@
|
||||
/datum/design/flamethrower
|
||||
name = "Flamethrower"
|
||||
id = "flamethrower"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 500)
|
||||
build_path = /obj/item/flamethrower/full
|
||||
category = list("hacked", "Security")
|
||||
@@ -52,7 +52,7 @@
|
||||
/datum/design/rcd
|
||||
name = "Rapid Construction Device (RCD)"
|
||||
id = "rcd"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 30000)
|
||||
build_path = /obj/item/construction/rcd
|
||||
category = list("hacked", "Construction")
|
||||
@@ -60,7 +60,7 @@
|
||||
/datum/design/rpd
|
||||
name = "Rapid Pipe Dispenser (RPD)"
|
||||
id = "rpd"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500)
|
||||
build_path = /obj/item/pipe_dispenser
|
||||
category = list("hacked", "Construction")
|
||||
@@ -68,7 +68,7 @@
|
||||
/datum/design/handcuffs
|
||||
name = "Handcuffs"
|
||||
id = "handcuffs"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 500)
|
||||
build_path = /obj/item/restraints/handcuffs
|
||||
category = list("hacked", "Security")
|
||||
@@ -76,7 +76,7 @@
|
||||
/datum/design/receiver
|
||||
name = "Modular Receiver"
|
||||
id = "receiver"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 15000)
|
||||
build_path = /obj/item/weaponcrafting/receiver
|
||||
category = list("hacked", "Security")
|
||||
@@ -84,7 +84,7 @@
|
||||
/datum/design/shotgun_slug
|
||||
name = "Shotgun Slug"
|
||||
id = "shotgun_slug"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 4000)
|
||||
build_path = /obj/item/ammo_casing/shotgun
|
||||
category = list("hacked", "Security")
|
||||
@@ -92,7 +92,7 @@
|
||||
/datum/design/buckshot_shell
|
||||
name = "Buckshot Shell"
|
||||
id = "buckshot_shell"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 4000)
|
||||
build_path = /obj/item/ammo_casing/shotgun/buckshot
|
||||
category = list("hacked", "Security")
|
||||
@@ -100,7 +100,7 @@
|
||||
/datum/design/shotgun_dart
|
||||
name = "Shotgun Dart"
|
||||
id = "shotgun_dart"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 4000)
|
||||
build_path = /obj/item/ammo_casing/shotgun/dart
|
||||
category = list("hacked", "Security")
|
||||
@@ -108,7 +108,7 @@
|
||||
/datum/design/incendiary_slug
|
||||
name = "Incendiary Slug"
|
||||
id = "incendiary_slug"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 4000)
|
||||
build_path = /obj/item/ammo_casing/shotgun/incendiary
|
||||
category = list("hacked", "Security")
|
||||
@@ -116,7 +116,7 @@
|
||||
/datum/design/riot_dart
|
||||
name = "Foam Riot Dart"
|
||||
id = "riot_dart"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 1125) //Discount for making individually - no box = less metal!
|
||||
build_path = /obj/item/ammo_casing/caseless/foam_dart/riot
|
||||
category = list("hacked", "Security")
|
||||
@@ -124,7 +124,7 @@
|
||||
/datum/design/riot_darts
|
||||
name = "Foam Riot Dart Box"
|
||||
id = "riot_darts"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 50000) //Comes with 40 darts
|
||||
build_path = /obj/item/ammo_box/foambox/riot
|
||||
category = list("hacked", "Security")
|
||||
@@ -132,7 +132,7 @@
|
||||
/datum/design/a357
|
||||
name = "Revolver Bullet (.357)"
|
||||
id = "a357"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 4000)
|
||||
build_path = /obj/item/ammo_casing/a357
|
||||
category = list("hacked", "Security")
|
||||
@@ -140,7 +140,7 @@
|
||||
/datum/design/a762
|
||||
name = "Rifle Bullet (7.62mm)"
|
||||
id = "a762"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 5000) //need seclathe for clips
|
||||
build_path = /obj/item/ammo_casing/a762
|
||||
category = list("hacked", "Security")
|
||||
@@ -148,7 +148,7 @@
|
||||
/datum/design/c10mm
|
||||
name = "Ammo Box (10mm)"
|
||||
id = "c10mm"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 30000)
|
||||
build_path = /obj/item/ammo_box/c10mm
|
||||
category = list("hacked", "Security")
|
||||
@@ -156,7 +156,7 @@
|
||||
/datum/design/c45
|
||||
name = "Ammo Box (.45)"
|
||||
id = "c45"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 30000)
|
||||
build_path = /obj/item/ammo_box/c45
|
||||
category = list("hacked", "Security")
|
||||
@@ -164,7 +164,7 @@
|
||||
/datum/design/c9mm
|
||||
name = "Ammo Box (9mm)"
|
||||
id = "c9mm"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 30000)
|
||||
build_path = /obj/item/ammo_box/c9mm
|
||||
category = list("hacked", "Security")
|
||||
@@ -172,7 +172,7 @@
|
||||
/datum/design/electropack
|
||||
name = "Electropack"
|
||||
id = "electropack"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 10000, /datum/material/glass = 2500)
|
||||
build_path = /obj/item/electropack
|
||||
category = list("hacked", "Security")
|
||||
@@ -180,7 +180,7 @@
|
||||
/datum/design/cleaver
|
||||
name = "Butcher's Cleaver"
|
||||
id = "cleaver"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 18000)
|
||||
build_path = /obj/item/kitchen/knife/butcher
|
||||
category = list("hacked", "Dinnerware")
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
/datum/design/multitool
|
||||
name = "Multitool"
|
||||
id = "multitool"
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 50, /datum/material/glass = 20)
|
||||
build_path = /obj/item/multitool
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
@@ -75,7 +75,7 @@
|
||||
/datum/design/weldingtool
|
||||
name = "Welding Tool"
|
||||
id = "welding_tool"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 70, /datum/material/glass = 20)
|
||||
build_path = /obj/item/weldingtool
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
@@ -97,6 +97,7 @@
|
||||
build_path = /obj/item/screwdriver
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/wirecutters
|
||||
name = "Wirecutters"
|
||||
id = "wirecutters"
|
||||
|
||||
@@ -562,6 +562,7 @@
|
||||
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
|
||||
build_path = /obj/item/gun/ballistic/automatic/x9/toy
|
||||
category = list("initial", "Rifles")
|
||||
build_type = TOYLATHE | NO_PUBLIC_LATHE
|
||||
|
||||
/datum/design/foam_dart
|
||||
name = "Box of Foam Darts"
|
||||
@@ -586,6 +587,7 @@
|
||||
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
|
||||
build_path = /obj/item/gun/ballistic/automatic/toy/magrifle
|
||||
category = list("initial", "Rifles")
|
||||
build_type = TOYLATHE | NO_PUBLIC_LATHE
|
||||
|
||||
/datum/design/foam_hyperburst
|
||||
name = "MagTag Hyper Rifle"
|
||||
@@ -618,6 +620,7 @@
|
||||
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
|
||||
build_path = /obj/item/gun/ballistic/automatic/AM4C
|
||||
category = list("initial", "Rifles")
|
||||
build_type = TOYLATHE | NO_PUBLIC_LATHE
|
||||
|
||||
/datum/design/foam_f3
|
||||
name = "Replica F3 Justicar"
|
||||
@@ -650,6 +653,7 @@
|
||||
materials = list(/datum/material/plastic = 2000, /datum/material/iron = 250)
|
||||
build_path = /obj/item/gun/ballistic/automatic/toy/unrestricted
|
||||
category = list("initial", "Pistols")
|
||||
build_type = TOYLATHE | NO_PUBLIC_LATHE
|
||||
|
||||
/datum/design/foam_pistol
|
||||
name = "Foam Force Pistol"
|
||||
@@ -698,6 +702,7 @@
|
||||
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
|
||||
build_path = /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted
|
||||
category = list("hacked", "Rifles")
|
||||
build_type = TOYLATHE | NO_PUBLIC_LATHE
|
||||
|
||||
/datum/design/foam_l6
|
||||
name = "Donksoft LMG"
|
||||
@@ -706,3 +711,4 @@
|
||||
materials = list(/datum/material/plastic = 4000, /datum/material/iron = 500)
|
||||
build_path = /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted
|
||||
category = list("hacked", "Rifles")
|
||||
build_type = TOYLATHE | NO_PUBLIC_LATHE
|
||||
|
||||
@@ -135,6 +135,15 @@
|
||||
//Ammo Shells/
|
||||
//////////////
|
||||
|
||||
/datum/design/shell_clip
|
||||
name = "stripper clip (shotgun shells)"
|
||||
id = "sec_shellclip"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 5000)
|
||||
build_path = /obj/item/ammo_box/shotgun
|
||||
category = list("Ammo")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/beanbag_slug/sec
|
||||
id = "sec_beanbag"
|
||||
build_type = PROTOLATHE
|
||||
@@ -166,7 +175,7 @@
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/incendiary_slug/sec
|
||||
id = "sec_Islug"
|
||||
id = "sec_islug"
|
||||
build_type = PROTOLATHE
|
||||
category = list("Ammo")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
layer = BELOW_OBJ_LAYER
|
||||
var/consoleless_interface = TRUE //Whether it can be used without a console.
|
||||
var/offstation_security_levels = TRUE
|
||||
var/efficiency_coeff = 1 //Materials needed / coeff = actual.
|
||||
var/print_cost_coeff = 1 //Materials needed * coeff = actual.
|
||||
var/list/categories = list()
|
||||
var/datum/component/remote_materials/materials
|
||||
var/allowed_department_flags = ALL
|
||||
@@ -76,13 +76,13 @@
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
total_manip_rating += M.rating
|
||||
manips++
|
||||
efficiency_coeff = STANDARD_PART_LEVEL_LATHE_COEFFICIENT(total_manip_rating / (manips? manips : 1))
|
||||
print_cost_coeff = STANDARD_PART_LEVEL_LATHE_COEFFICIENT(total_manip_rating / (manips? manips : 1))
|
||||
|
||||
/obj/machinery/rnd/production/examine(mob/user)
|
||||
. = ..()
|
||||
var/datum/component/remote_materials/materials = GetComponent(/datum/component/remote_materials)
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
. += "<span class='notice'>The status display reads: Storing up to <b>[materials.local_size]</b> material units locally.<br>Material usage efficiency at <b>[efficiency_coeff*100]%</b>.</span>"
|
||||
. += "<span class='notice'>The status display reads: Storing up to <b>[materials.local_size]</b> material units locally.<br>Material usage cost at <b>[print_cost_coeff*100]%</b>.</span>"
|
||||
|
||||
//we eject the materials upon deconstruction.
|
||||
/obj/machinery/rnd/production/on_deconstruction()
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
// these types don't have their .materials set in do_print, so don't allow
|
||||
// them to be constructed efficiently
|
||||
var/ef = efficient_with(being_built.build_path) ? efficiency_coeff : 1
|
||||
var/ef = efficient_with(being_built.build_path) ? print_cost_coeff : 1
|
||||
return round(A / max(1, all_materials[mat] * ef))
|
||||
|
||||
/obj/machinery/rnd/production/proc/efficient_with(path)
|
||||
@@ -152,7 +152,7 @@
|
||||
power += round(D.materials[M] * amount / 35)
|
||||
power = min(3000, power)
|
||||
use_power(power)
|
||||
var/coeff = efficient_with(D.build_path) ? efficiency_coeff : 1
|
||||
var/coeff = efficient_with(D.build_path) ? print_cost_coeff : 1
|
||||
var/list/efficient_mats = list()
|
||||
for(var/MAT in D.materials)
|
||||
efficient_mats[MAT] = D.materials[MAT] * coeff
|
||||
@@ -170,7 +170,7 @@
|
||||
busy = TRUE
|
||||
if(production_animation)
|
||||
flick(production_animation, src)
|
||||
var/timecoeff = D.lathe_time_factor * efficiency_coeff
|
||||
var/timecoeff = D.lathe_time_factor * print_cost_coeff
|
||||
addtimer(CALLBACK(src, .proc/reset_busy), (20 * timecoeff * amount) ** 0.5)
|
||||
addtimer(CALLBACK(src, .proc/do_print, D.build_path, amount, efficient_mats, D.dangerous_construction, usr), (20 * timecoeff * amount) ** 0.5)
|
||||
return TRUE
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
/obj/machinery/rnd/production/proc/ui_screen_search()
|
||||
var/list/l = list()
|
||||
var/coeff = efficiency_coeff
|
||||
var/coeff = print_cost_coeff
|
||||
l += "<h2>Search Results:</h2>"
|
||||
l += "<form name='search' action='?src=[REF(src)]'>\
|
||||
<input type='hidden' name='src' value='[REF(src)]'>\
|
||||
@@ -264,7 +264,7 @@
|
||||
if(!istype(D))
|
||||
return
|
||||
if(!coeff)
|
||||
coeff = efficiency_coeff
|
||||
coeff = print_cost_coeff
|
||||
if(!efficient_with(D.build_path))
|
||||
coeff = 1
|
||||
var/list/l = list()
|
||||
@@ -276,9 +276,9 @@
|
||||
t = check_mat(D, M)
|
||||
temp_material += " | "
|
||||
if (t < 1)
|
||||
temp_material += "<span class='bad'>[all_materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
temp_material += "<span class='bad'>[all_materials[M] * coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]"
|
||||
temp_material += " [all_materials[M] * coeff] [CallMaterialName(M)]"
|
||||
c = min(c,t)
|
||||
|
||||
var/clearance = !(obj_flags & EMAGGED) && (offstation_security_levels || is_station_level(z))
|
||||
@@ -366,7 +366,7 @@
|
||||
return ui_screen_main()
|
||||
var/list/l = list()
|
||||
l += "<div class='statusDisplay'><h3>Browsing [selected_category]:</h3>"
|
||||
var/coeff = efficiency_coeff
|
||||
var/coeff = print_cost_coeff
|
||||
for(var/v in stored_research.researched_designs)
|
||||
var/datum/design/D = SSresearch.techweb_design_by_id(v)
|
||||
if(!(selected_category in D.category)|| !(D.build_type & allowed_buildtypes))
|
||||
|
||||
@@ -25,11 +25,6 @@
|
||||
|
||||
/obj/machinery/rnd/production/circuit_imprinter/calculate_efficiency()
|
||||
. = ..()
|
||||
var/total_rating = 0
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
total_rating += M.rating * 2 //There is only one.
|
||||
total_rating = max(1, total_rating)
|
||||
efficiency_coeff = total_rating
|
||||
var/obj/item/circuitboard/machine/circuit_imprinter/C = circuit
|
||||
offstation_security_levels = C.offstation_security_levels
|
||||
|
||||
|
||||
@@ -76,7 +76,8 @@
|
||||
var/problems = FALSE
|
||||
if(iscarbon(host_mob))
|
||||
var/mob/living/carbon/C = host_mob
|
||||
if(length(C.get_traumas()))
|
||||
var/obj/item/organ/brain/B = C.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
if(length(B?.get_traumas_type(TRAUMA_RESILIENCE_BASIC)))
|
||||
problems = TRUE
|
||||
if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0)
|
||||
problems = TRUE
|
||||
@@ -198,7 +199,8 @@
|
||||
var/problems = FALSE
|
||||
if(iscarbon(host_mob))
|
||||
var/mob/living/carbon/C = host_mob
|
||||
if(length(C.get_traumas()))
|
||||
var/obj/item/organ/brain/B = C.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
if(length(B?.get_traumas_type(TRAUMA_RESILIENCE_SURGERY)))
|
||||
problems = TRUE
|
||||
if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0)
|
||||
problems = TRUE
|
||||
@@ -208,7 +210,7 @@
|
||||
host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2)
|
||||
if(iscarbon(host_mob) && prob(10))
|
||||
var/mob/living/carbon/C = host_mob
|
||||
C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_LOBOTOMY)
|
||||
C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_SURGERY)
|
||||
|
||||
/datum/nanite_program/defib
|
||||
name = "Defibrillation"
|
||||
|
||||
@@ -290,7 +290,7 @@ Nothing else in the console has ID requirements.
|
||||
continue
|
||||
var/temp_material
|
||||
var/c = 50
|
||||
var/coeff = linked_lathe.efficiency_coeff
|
||||
var/coeff = linked_lathe.print_cost_coeff
|
||||
if(!linked_lathe.efficient_with(D.build_path))
|
||||
coeff = 1
|
||||
|
||||
@@ -299,9 +299,9 @@ Nothing else in the console has ID requirements.
|
||||
var/t = linked_lathe.check_mat(D, M)
|
||||
temp_material += " | "
|
||||
if (t < 1)
|
||||
temp_material += "<span class='bad'>[all_materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
temp_material += "<span class='bad'>[all_materials[M] * coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]"
|
||||
temp_material += " [all_materials[M] * coeff] [CallMaterialName(M)]"
|
||||
c = min(c,t)
|
||||
|
||||
var/clearance = !(linked_lathe.obj_flags & EMAGGED) && (linked_lathe.offstation_security_levels || is_station_level(linked_lathe.z))
|
||||
@@ -356,16 +356,16 @@ Nothing else in the console has ID requirements.
|
||||
var/temp_material
|
||||
var/c = 50
|
||||
var/all_materials = D.materials + D.reagents_list
|
||||
var/coeff = linked_lathe.efficiency_coeff
|
||||
var/coeff = linked_lathe.print_cost_coeff
|
||||
if(!linked_lathe.efficient_with(D.build_path))
|
||||
coeff = 1
|
||||
for(var/M in all_materials)
|
||||
var/t = linked_lathe.check_mat(D, M)
|
||||
temp_material += " | "
|
||||
if (t < 1)
|
||||
temp_material += "<span class='bad'>[all_materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
temp_material += "<span class='bad'>[all_materials[M] * coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]"
|
||||
temp_material += " [all_materials[M] * coeff] [CallMaterialName(M)]"
|
||||
c = min(c,t)
|
||||
|
||||
if (c >= 1)
|
||||
@@ -457,7 +457,7 @@ Nothing else in the console has ID requirements.
|
||||
var/check_materials = TRUE
|
||||
|
||||
var/all_materials = D.materials + D.reagents_list
|
||||
var/coeff = linked_imprinter.efficiency_coeff
|
||||
var/coeff = linked_imprinter.print_cost_coeff
|
||||
if(!linked_imprinter.efficient_with(D.build_path))
|
||||
coeff = 1
|
||||
|
||||
@@ -465,9 +465,9 @@ Nothing else in the console has ID requirements.
|
||||
temp_materials += " | "
|
||||
if (!linked_imprinter.check_mat(D, M))
|
||||
check_materials = FALSE
|
||||
temp_materials += " <span class='bad'>[all_materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
temp_materials += " <span class='bad'>[all_materials[M] * coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]"
|
||||
temp_materials += " [all_materials[M] * coeff] [CallMaterialName(M)]"
|
||||
if (check_materials)
|
||||
l += "<A href='?src=[REF(src)];imprint=[D.id]'>[D.name]</A>[temp_materials]"
|
||||
else
|
||||
@@ -488,16 +488,16 @@ Nothing else in the console has ID requirements.
|
||||
var/temp_materials
|
||||
var/check_materials = TRUE
|
||||
var/all_materials = D.materials + D.reagents_list
|
||||
var/coeff = linked_imprinter.efficiency_coeff
|
||||
var/coeff = linked_imprinter.print_cost_coeff
|
||||
if(!linked_imprinter.efficient_with(D.build_path))
|
||||
coeff = 1
|
||||
for(var/M in all_materials)
|
||||
temp_materials += " | "
|
||||
if (!linked_imprinter.check_mat(D, M))
|
||||
check_materials = FALSE
|
||||
temp_materials += " <span class='bad'>[all_materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
temp_materials += " <span class='bad'>[all_materials[M] * coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]"
|
||||
temp_materials += " [all_materials[M] * coeff] [CallMaterialName(M)]"
|
||||
if (check_materials)
|
||||
l += "<A href='?src=[REF(src)];imprint=[D.id]'>[D.name]</A>[temp_materials]"
|
||||
else
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
// Default research tech, prevents bricking
|
||||
design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "desttagger", "handlabel", "packagewrap",
|
||||
"destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab",
|
||||
"space_heater", "beaker", "large_beaker", "bucket", "xlarge_beaker", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "sec_38lethal",
|
||||
"space_heater", "beaker", "large_beaker", "bucket", "xlarge_beaker", "sec_shellclip", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_islug", "sec_dart", "sec_38", "sec_38lethal",
|
||||
"rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass")
|
||||
|
||||
/datum/techweb_node/mmi
|
||||
|
||||
@@ -959,9 +959,10 @@ datum/status_effect/stabilized/blue/on_remove()
|
||||
familiar = new linked.mob_type(get_turf(owner.loc))
|
||||
familiar.name = linked.mob_name
|
||||
familiar.del_on_death = TRUE
|
||||
familiar.copy_known_languages_from(owner, FALSE)
|
||||
familiar.copy_languages(owner, LANGUAGE_MASTER)
|
||||
if(linked.saved_mind)
|
||||
linked.saved_mind.transfer_to(familiar)
|
||||
familiar.update_atom_languages()
|
||||
familiar.ckey = linked.saved_mind.key
|
||||
else
|
||||
if(familiar.mind)
|
||||
|
||||
@@ -684,7 +684,7 @@
|
||||
if(SM.flags_1 & HOLOGRAM_1) //Check to see if it's a holodeck creature
|
||||
to_chat(SM, "<span class='userdanger'>You also become depressingly aware that you are not a real creature, but instead a holoform. Your existence is limited to the parameters of the holodeck.</span>")
|
||||
to_chat(user, "<span class='notice'>[SM] accepts [src] and suddenly becomes attentive and aware. It worked!</span>")
|
||||
SM.copy_known_languages_from(user, FALSE)
|
||||
SM.copy_languages(user)
|
||||
after_success(user, SM)
|
||||
qdel(src)
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user