mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 07:33:34 +01:00
Merge pull request #746 from jack-fractal/write-research-debug
R&D Research Levels Unification
This commit is contained in:
@@ -60,6 +60,7 @@ var/list/admin_verbs_admin = list(
|
||||
/client/proc/toggledrones,
|
||||
/client/proc/man_up,
|
||||
/client/proc/global_man_up,
|
||||
/client/proc/write_RD_json,
|
||||
/client/proc/delbook,
|
||||
/client/proc/empty_ai_core_toggle_latejoin,
|
||||
/client/proc/freeze,
|
||||
@@ -686,3 +687,46 @@ var/list/admin_verbs_mentor = list(
|
||||
|
||||
log_admin("[key_name(usr)] told everyone to man up and deal with it.")
|
||||
message_admins("\blue [key_name_admin(usr)] told everyone to man up and deal with it.", 1)
|
||||
|
||||
|
||||
/client/proc/object_classes_to_origin_tech()
|
||||
usr << "Creating origin classes..."
|
||||
var/list/result = list()
|
||||
for (var/C in (typesof(/obj)-/obj))
|
||||
usr << "Processing... [C]"
|
||||
if (initial(C:origin_tech))
|
||||
var/list/origin_tech = params2list(initial(C:origin_tech))
|
||||
for (var/t in origin_tech)
|
||||
origin_tech[t]=text2num(origin_tech[t])
|
||||
result[C]=list("tech"=origin_tech,"name"=initial(C:name))
|
||||
return result
|
||||
|
||||
|
||||
/client/proc/list_of_build_machines(var/C)
|
||||
var/build_type=initial(C:build_type)
|
||||
var/list/result=list()
|
||||
result["IMPRINTER"]=(build_type & IMPRINTER) ? 1 : 0
|
||||
result["PROTOLATHE"]=(build_type & PROTOLATHE) ? 1 : 0
|
||||
result["AUTOLATHE"]=(build_type & AUTOLATHE) ? 1 : 0
|
||||
result["CRAFTLATHE"]=(build_type & CRAFTLATHE) ? 1 : 0
|
||||
result["MECHFAB"]=(build_type & MECHFAB) ? 1 : 0
|
||||
result["PODFAB"]=(build_type & PODFAB) ? 1 : 0
|
||||
return result
|
||||
|
||||
|
||||
/client/proc/design_classes_to_materials_and_origin()
|
||||
usr << "Creating designs..."
|
||||
var/list/result=list()
|
||||
for (var/C in (typesof(/datum/design)-/datum/design))
|
||||
var/datum/design/instance = new C()
|
||||
usr << "Processing... [C]"
|
||||
result[C]=list("materials"=instance.materials,"requires"=instance.req_tech,"lockbox"=instance.locked,"builds"=instance.build_path,"machines"=list_of_build_machines(C))
|
||||
instance.Del()
|
||||
return result
|
||||
|
||||
|
||||
/client/proc/write_RD_json()
|
||||
set category = "Debug"
|
||||
set name = "Write RD Json"
|
||||
set desc = "Writes a json file describing the R&D components."
|
||||
text2file(list2json(list("objects"=object_classes_to_origin_tech(),"designs"=design_classes_to_materials_and_origin())),"data/origin_data.txt")
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
desc = "Used for seeing walls, floors, and stuff through anything."
|
||||
icon_state = "meson"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=2;engineering=2"
|
||||
origin_tech = "materials=3;magnets=3;engineering=3"
|
||||
vision_flags = SEE_TURFS
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
@@ -29,6 +29,7 @@
|
||||
item_state = "glasses"
|
||||
darkness_view = 8
|
||||
see_darkness = 0
|
||||
origin_tech="materials=5;magnets=5;engineering=4"
|
||||
|
||||
/obj/item/clothing/glasses/meson/prescription
|
||||
name = "prescription mesons"
|
||||
@@ -63,7 +64,7 @@
|
||||
desc = "You can totally see in the dark now!"
|
||||
icon_state = "night"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=2"
|
||||
origin_tech = "magnets=4"
|
||||
darkness_view = 8
|
||||
see_darkness = 0
|
||||
species_fit = list("Vox")
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
item_state = "glasses"
|
||||
darkness_view = 8
|
||||
see_darkness = 0
|
||||
origin_tech="biotech=4;magnets=5"
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/process_hud(var/mob/M)
|
||||
process_med_hud(M,1)
|
||||
@@ -39,6 +40,7 @@
|
||||
name = "Security HUD"
|
||||
desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records."
|
||||
icon_state = "securityhud"
|
||||
origin_tech = "magnets=3;combat=2"
|
||||
var/global/list/jobs[0]
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/jensenshades
|
||||
@@ -55,6 +57,7 @@
|
||||
icon_state = "securityhudnight"
|
||||
darkness_view = 8
|
||||
see_darkness = 0
|
||||
origin_tech = "magnets=5;combat=4;"
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/process_hud(var/mob/M)
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
action_button_name = "Toggle Magboots"
|
||||
icon_action_button = "action_magboots"
|
||||
species_restricted = null
|
||||
origin_tech="materials=4;magnets=4;engineering=5"
|
||||
|
||||
/obj/item/clothing/shoes/magboots/attack_self(mob/user)
|
||||
if(src.magpulse)
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
desc = "A prototype modular receiver and trigger assembly for a firearm."
|
||||
icon = 'icons/obj/improvised.dmi'
|
||||
icon_state = "receiver"
|
||||
origin_tech="combat=5;materials=4"
|
||||
|
||||
|
||||
/obj/item/weaponcrafting/stock
|
||||
name = "rifle stock"
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
icon_state = "diamonddrill"
|
||||
item_state = "jackhammer"
|
||||
digspeed = 5 //Digs through walls, girders, and can dig up sand
|
||||
origin_tech = "materials=6;powerstorage=4;engineering=5"
|
||||
origin_tech = "materials=6;powerstorage=4;engineering=4"
|
||||
hitsound = 'sound/weapons/drill.ogg'
|
||||
digsound = list('sound/weapons/drill.ogg')
|
||||
desc = "Yours is the drill that will pierce the heavens!"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
icon = 'icons/obj/assemblies.dmi'
|
||||
icon_state = "mmi_empty"
|
||||
w_class = 3
|
||||
origin_tech = "biotech=3"
|
||||
origin_tech = "programming=2;biotech=3"
|
||||
|
||||
var/list/construction_cost = list("metal"=1000,"glass"=500)
|
||||
var/construction_time = 75
|
||||
@@ -114,7 +114,7 @@
|
||||
/obj/item/device/mmi/radio_enabled
|
||||
name = "Radio-enabled Man-Machine Interface"
|
||||
desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity. This one comes with a built-in radio."
|
||||
origin_tech = "biotech=4"
|
||||
origin_tech = "programming=2;biotech=4"
|
||||
|
||||
var/obj/item/device/radio/radio = null//Let's give it a radio.
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
w_class = 2.0
|
||||
throw_speed = 5
|
||||
throw_range = 10
|
||||
origin_tech = "magnets=1;biotech=1"
|
||||
origin_tech = "programming=2;magnets=2;biotech=2"
|
||||
var/mode = 1;
|
||||
|
||||
/obj/item/device/robotanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
icon_state = "stunshell"
|
||||
projectile_type = "/obj/item/projectile/bullet/stunshot"
|
||||
m_amt = 200
|
||||
origin_tech="combat=3;materials=3"
|
||||
|
||||
|
||||
/obj/item/ammo_casing/shotgun/meteorshot
|
||||
@@ -143,6 +144,7 @@
|
||||
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
|
||||
icon_state = "cshell"
|
||||
projectile_type = null
|
||||
origin_tech="combat=3;materials=3;powerstorage=4;magnets=3"
|
||||
|
||||
/obj/item/ammo_casing/shotgun/dart
|
||||
name = "shotgun dart"
|
||||
|
||||
@@ -122,6 +122,7 @@
|
||||
ammo_type = "/obj/item/ammo_casing/c9mm"
|
||||
caliber = "9mm"
|
||||
max_ammo = 20
|
||||
origin_tech = "combat=4;materials=3"
|
||||
|
||||
/obj/item/ammo_box/magazine/smgm9mm/update_icon()
|
||||
..()
|
||||
|
||||
@@ -105,7 +105,7 @@ obj/item/weapon/gun/energy/laser/retro
|
||||
desc = "A high-power laser gun capable of expelling concentrated xray blasts."
|
||||
icon_state = "xray"
|
||||
fire_sound = 'sound/weapons/laser3.ogg'
|
||||
origin_tech = "combat=5;materials=3;magnets=2;syndicate=2"
|
||||
origin_tech = "combat=6;materials=5;biotech=5;powerstorage=4"
|
||||
projectile_type = "/obj/item/projectile/beam/xray"
|
||||
charge_cost = 500
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
name = "Advanced Energy Gun"
|
||||
desc = "An energy gun with an experimental miniaturized reactor."
|
||||
icon_state = "nucgun"
|
||||
origin_tech = "combat=3;materials=5;powerstorage=3"
|
||||
origin_tech = "combat=4;materials=5;powerstorage=3"
|
||||
var/lightfail = 0
|
||||
var/charge_tick = 0
|
||||
can_flashlight = 0
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient."
|
||||
icon_state = "ioncarbine"
|
||||
item_state = "ioncarbine"
|
||||
origin_tech = "combat=4;magnets=4;materials=4"
|
||||
origin_tech = "combat=5;magnets=4;materials=4"
|
||||
w_class = 3
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements."
|
||||
icon_state = "decloner"
|
||||
fire_sound = 'sound/weapons/pulse3.ogg'
|
||||
origin_tech = "combat=5;materials=4;powerstorage=3"
|
||||
origin_tech = "combat=6;materials=7;biotech=5;powerstorage=6"
|
||||
projectile_type = "/obj/item/projectile/energy/declone"
|
||||
|
||||
|
||||
@@ -278,7 +278,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
icon_state = "crossbowlarge"
|
||||
w_class = 3
|
||||
m_amt = 4000
|
||||
origin_tech = "combat=2;magnets=2;syndicate=3" //can be further researched for more syndie tech
|
||||
origin_tech = "combat=5;materials=5;engineering=3;biotech=4;syndicate=3" //can be further researched for more syndie tech
|
||||
silenced = 0
|
||||
projectile_type = "/obj/item/projectile/energy/bolt/large"
|
||||
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
projectile_type = "/obj/item/projectile/energy/electrode"
|
||||
cell_type = "/obj/item/weapon/stock_parts/cell"
|
||||
fire_delay = 15
|
||||
origin_tech="combat=3;materials=3;powerstorage=2"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -146,4 +146,5 @@
|
||||
icon_state = "suppressor"
|
||||
w_class = 2
|
||||
var/oldsound = null
|
||||
var/initial_w_class = null
|
||||
var/initial_w_class = null
|
||||
origin_tech="combat=6;engineering=5;syndicate=3"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "A lightweight, prototype 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors."
|
||||
icon_state = "saber"
|
||||
w_class = 3.0
|
||||
origin_tech = "combat=4;materials=2"
|
||||
origin_tech = "combat=4;materials=3"
|
||||
automatic = 1
|
||||
mag_type = "/obj/item/ammo_box/magazine/smgm9mm"
|
||||
var/alarmed = 0
|
||||
|
||||
@@ -247,6 +247,8 @@
|
||||
// /vg/: Logging transfers of bad things
|
||||
|
||||
if(target.reagents_to_log.len)
|
||||
|
||||
var/list/badshit=list()
|
||||
|
||||
for(var/bad_reagent in target.reagents_to_log)
|
||||
|
||||
@@ -257,6 +259,8 @@
|
||||
if(badshit.len)
|
||||
|
||||
var/hl="\red <b>([english_list(badshit)])</b> \black"
|
||||
|
||||
message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
|
||||
|
||||
log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
|
||||
|
||||
|
||||
@@ -64,4 +64,5 @@
|
||||
name = "rapid syringe gun"
|
||||
desc = "A modification of the syringe gun design, using a rotating cylinder to store up to six syringes."
|
||||
icon_state = "rapidsyringegun"
|
||||
max_syringes = 6
|
||||
max_syringes = 6
|
||||
origin_tech="combat=3;materials=3;engineering=3;biotech=2"
|
||||
@@ -5,7 +5,7 @@
|
||||
name = "Artificial Bluespace Crystal"
|
||||
desc = "A small blue crystal with mystical properties."
|
||||
id = "bluespace_crystal"
|
||||
req_tech = list("bluespace" = 4, "materials" = 6)
|
||||
req_tech = list("bluespace" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$diamond" = 1500, "$plasma" = 1500)
|
||||
reliability_base = 100
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
name = "Holographic Sign Projector"
|
||||
desc = "A holograpic projector used to project various warning signs."
|
||||
id = "holosign"
|
||||
req_tech = list("magnets" = 3, "powerstorage" = 2)
|
||||
req_tech = list("programming"=3, "magnets" = 3, "powerstorage" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 2000, "$glass" = 1000)
|
||||
build_path = /obj/item/weapon/holosign_creator
|
||||
|
||||
@@ -296,7 +296,7 @@
|
||||
name = "Machine Board (Programmable Unloader)"
|
||||
desc = "The circuit board for a Programmable Unloader."
|
||||
id = "selunload"
|
||||
req_tech = list("programming" = 5)
|
||||
req_tech = list("engineering"=3, "programming" = 6)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/programmable
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
name = "Defibrillator"
|
||||
desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients."
|
||||
id = "defib"
|
||||
req_tech = list("materials" = 7, "biotech" = 5, "powerstorage" = 5)
|
||||
req_tech = list("biotech" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 5000, "$glass" = 2000, "$silver" = 1000)
|
||||
reliability = 76
|
||||
@@ -105,7 +105,7 @@
|
||||
name = "Positronic Brain"
|
||||
desc = "Allows for the construction of a positronic brain"
|
||||
id = "posibrain"
|
||||
req_tech = list("engineering" = 4, "materials" = 6, "bluespace" = 2, "programming" = 4)
|
||||
req_tech = list("engineering" = 4, "materials" = 4, "bluespace" = 2, "programming" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 2000, "$glass" = 1000, "$silver" = 1000, "$gold" = 500, "$plasma" = 500, "$diamond" = 100)
|
||||
build_path = /obj/item/device/mmi/posibrain
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
reliability_base = 79
|
||||
build_path = /obj/item/weapon/pickaxe/diamonddrill
|
||||
category = list("Mining")
|
||||
|
||||
|
||||
/datum/design/pick_diamond
|
||||
name = "Diamond Pickaxe"
|
||||
desc = "A pickaxe with a diamond pick head, this is just like minecraft."
|
||||
id = "pick_diamond"
|
||||
req_tech = list("materials" = 6)
|
||||
req_tech = list("materials" = 6, "engineering" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$diamond" = 3000)
|
||||
build_path = /obj/item/weapon/pickaxe/diamond
|
||||
@@ -30,8 +30,8 @@
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 6000, "$glass" = 1000)
|
||||
build_path = /obj/item/weapon/pickaxe/drill
|
||||
category = list("Mining")
|
||||
|
||||
category = list("Mining")
|
||||
|
||||
/datum/design/plasmacutter
|
||||
name = "Plasma Cutter"
|
||||
desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff."
|
||||
@@ -42,7 +42,7 @@
|
||||
reliability_base = 79
|
||||
build_path = /obj/item/weapon/pickaxe/plasmacutter
|
||||
category = list("Mining")
|
||||
|
||||
|
||||
/datum/design/jackhammer
|
||||
name = "Sonic Jackhammer"
|
||||
desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards."
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
name = "Super-Capacity Power Cell"
|
||||
desc = "A power cell that holds 20000 units of energy"
|
||||
id = "super_cell"
|
||||
req_tech = list("powerstorage" = 3, "materials" = 2)
|
||||
req_tech = list("powerstorage" = 5, "materials" = 2)
|
||||
reliability_base = 75
|
||||
build_type = PROTOLATHE | MECHFAB | PODFAB
|
||||
materials = list("$metal" = 700, "$glass" = 70)
|
||||
|
||||
@@ -274,6 +274,7 @@ datum/tech/robotics
|
||||
m_amt = 30
|
||||
g_amt = 10
|
||||
var/datum/tech/stored
|
||||
origin_tech="programming=1"
|
||||
|
||||
/obj/item/weapon/disk/tech_disk/New()
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
@@ -289,6 +290,7 @@ datum/tech/robotics
|
||||
m_amt = 30
|
||||
g_amt = 10
|
||||
var/datum/design/blueprint
|
||||
origin_tech = "programming=1"
|
||||
|
||||
/obj/item/weapon/disk/design_disk/New()
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
|
||||
@@ -20,7 +20,7 @@ datum/design/shield_gen_ex
|
||||
name = "Circuit Design (Experimental hull shield generator)"
|
||||
desc = "Allows for the construction of circuit boards used to build an experimental hull shield generator."
|
||||
id = "shield_gen"
|
||||
req_tech = list("bluespace" = 4, "plasmatech" = 3)
|
||||
req_tech = list("powerstorage" = 4, "magnets" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$gold" = 10000)
|
||||
build_path = "/obj/machinery/shield_gen/external"
|
||||
@@ -46,7 +46,7 @@ datum/design/shield_gen
|
||||
name = "Circuit Design (Experimental shield generator)"
|
||||
desc = "Allows for the construction of circuit boards used to build an experimental shield generator."
|
||||
id = "shield_gen"
|
||||
req_tech = list("bluespace" = 4, "plasmatech" = 3)
|
||||
req_tech = list("powerstorage" = 4, "magnets" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$gold" = 10000)
|
||||
build_path = "/obj/machinery/shield_gen/external"
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
//2 use active power
|
||||
idle_power_usage = 20
|
||||
active_power_usage = 100
|
||||
origin_tech="bluespace=4;plasmatech=3"
|
||||
|
||||
/obj/machinery/shield_gen/New()
|
||||
spawn(10)
|
||||
|
||||
@@ -2,9 +2,14 @@
|
||||
//---------- external shield generator
|
||||
//generates an energy field that loops around any built up area in space (is useless inside) halts movement and airflow, is blocked by walls, windows, airlocks etc
|
||||
|
||||
/obj/machinery/shield_gen/external
|
||||
origin_tech="magnets=3;powerstorage=4"
|
||||
|
||||
|
||||
/obj/machinery/shield_gen/external/New()
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/shield_gen/external/get_shielded_turfs()
|
||||
var
|
||||
list
|
||||
|
||||
@@ -6,7 +6,7 @@ var/list/GPS_list = list()
|
||||
icon_state = "gps-c"
|
||||
w_class = 2.0
|
||||
slot_flags = SLOT_BELT
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
origin_tech = "materials=2;magnets=3;bluespace=3"
|
||||
var/gpstag = "COM0"
|
||||
var/emped = 0
|
||||
var/turf/locked_location
|
||||
|
||||
Reference in New Issue
Block a user