Updates to science

Protolathe and CI build procs moved to them from RD console.
Protolathe and CI now have a build queue. Designs take varying time to
build.
P and CI material storage is now a list instead of a set of vars.
origin_tech is now a list.
All sheets now contain exactly 2000 units of matter.
In design datum, chemicals and materials are two separate lists.
Designs are now sorted. The method is kinda hacky but flexible. They
have a var, sort_string. Designs are sorted alphabetically using it.
Circuits how show whether they build a machine or a computer in CI menu.
Adds item construction, for now protolathe is used.
This commit is contained in:
Kelenius
2015-04-04 13:38:03 +03:00
parent 32b6123cdb
commit db30c15e4c
150 changed files with 2557 additions and 2900 deletions

View File

@@ -32,6 +32,7 @@
#include "code\__HELPERS\type2type.dm"
#include "code\__HELPERS\unsorted.dm"
#include "code\__HELPERS\vector.dm"
#include "code\_defines\research.dm"
#include "code\_onclick\adjacent.dm"
#include "code\_onclick\ai.dm"
#include "code\_onclick\click.dm"
@@ -1436,7 +1437,9 @@
#include "code\modules\recycling\disposal-construction.dm"
#include "code\modules\recycling\disposal.dm"
#include "code\modules\recycling\sortingmachinery.dm"
#include "code\modules\research\assembly.dm"
#include "code\modules\research\circuitprinter.dm"
#include "code\modules\research\designs-chassis.dm"
#include "code\modules\research\designs.dm"
#include "code\modules\research\destructive_analyzer.dm"
#include "code\modules\research\message_server.dm"

18
code/_defines/research.dm Normal file
View File

@@ -0,0 +1,18 @@
#define SHEET_MATERIAL_AMOUNT 2000
#define TECH_MATERIAL "materials"
#define TECH_ENGINERING "engineering"
#define TECH_PHORON "phorontech"
#define TECH_POWER "powerstorage"
#define TECH_BLUESPACE "bluespace"
#define TECH_BIO "biotech"
#define TECH_COMBAT "combat"
#define TECH_MAGNET "magnets"
#define TECH_DATA "programming"
#define TECH_ILLEGAL "syndicate"
#define TECH_ARCANE "arcane"
#define IMPRINTER 1 //For circuits. Uses glass/chemicals.
#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals
#define MECHFAB 4 //Remember, objects utilising this flag should have construction_time and construction_cost vars.
#define CHASSIS 8 //For protolathe, but differently

View File

@@ -169,7 +169,7 @@
flags = CONDUCT
throwforce = 0
w_class = 3.0
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
var/breakouttime = 300 //Deciseconds = 30s = 0.5 minute
/obj/item/weapon/legcuffs/beartrap
@@ -249,7 +249,7 @@
throw_speed = 4
throw_range = 20
matter = list("metal" = 100
origin_tech = "magnets=2;syndicate=3"*/
origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 3)*/
/obj/item/weapon/SWF_uplink
name = "station-bounced radio"
@@ -269,7 +269,7 @@
throw_speed = 4
throw_range = 20
matter = list("metal" = 100)
origin_tech = "magnets=1"
origin_tech = list(TECH_MAGNET = 1)
/obj/item/weapon/staff
name = "wizards staff"
@@ -411,7 +411,8 @@
w_class = 1
throwforce = 2
var/cigarcount = 6
flags = ONBELT */
flags = ONBELT
*/
/obj/item/weapon/pai_cable
desc = "A flexible coated cable with a universal jack on one end."
@@ -456,42 +457,42 @@
name = "console screen"
desc = "Used in the construction of computers and other devices with a interactive console."
icon_state = "screen"
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
matter = list("glass" = 200)
/obj/item/weapon/stock_parts/capacitor
name = "capacitor"
desc = "A basic capacitor used in the construction of a variety of devices."
icon_state = "capacitor"
origin_tech = "powerstorage=1"
matter = list("metal" = 50,"glass" = 50)
origin_tech = list(TECH_POWER = 1)
matter = list("metal" = 50, "glass" = 50)
/obj/item/weapon/stock_parts/scanning_module
name = "scanning module"
desc = "A compact, high resolution scanning module used in the construction of certain devices."
icon_state = "scan_module"
origin_tech = "magnets=1"
matter = list("metal" = 50,"glass" = 20)
origin_tech = list(TECH_MAGNET = 1)
matter = list("metal" = 50, "glass" = 20)
/obj/item/weapon/stock_parts/manipulator
name = "micro-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "micro_mani"
origin_tech = "materials=1;programming=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_DATA = 1)
matter = list("metal" = 30)
/obj/item/weapon/stock_parts/micro_laser
name = "micro-laser"
desc = "A tiny laser used in certain devices."
icon_state = "micro_laser"
origin_tech = "magnets=1"
matter = list("metal" = 10,"glass" = 20)
origin_tech = list(TECH_MAGNET = 1)
matter = list("metal" = 10, "glass" = 20)
/obj/item/weapon/stock_parts/matter_bin
name = "matter bin"
desc = "A container for hold compressed matter awaiting re-construction."
icon_state = "matter_bin"
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
matter = list("metal" = 80)
//Rank 2
@@ -499,7 +500,7 @@
/obj/item/weapon/stock_parts/capacitor/adv
name = "advanced capacitor"
desc = "An advanced capacitor used in the construction of a variety of devices."
origin_tech = "powerstorage=3"
origin_tech = list(TECH_POWER = 3)
rating = 2
matter = list("metal" = 50,"glass" = 50)
@@ -507,7 +508,7 @@
name = "advanced scanning module"
desc = "A compact, high resolution scanning module used in the construction of certain devices."
icon_state = "scan_module"
origin_tech = "magnets=3"
origin_tech = list(TECH_MAGNET = 3)
rating = 2
matter = list("metal" = 50,"glass" = 20)
@@ -515,7 +516,7 @@
name = "nano-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "nano_mani"
origin_tech = "materials=3,programming=2"
origin_tech = list(TECH_MATERIAL = 3, TECH_DATA = 2)
rating = 2
matter = list("metal" = 30)
@@ -523,7 +524,7 @@
name = "high-power micro-laser"
desc = "A tiny laser used in certain devices."
icon_state = "high_micro_laser"
origin_tech = "magnets=3"
origin_tech = list(TECH_MAGNET = 3)
rating = 2
matter = list("metal" = 10,"glass" = 20)
@@ -531,7 +532,7 @@
name = "advanced matter bin"
desc = "A container for hold compressed matter awaiting re-construction."
icon_state = "advanced_matter_bin"
origin_tech = "materials=3"
origin_tech = list(TECH_MATERIAL = 3)
rating = 2
matter = list("metal" = 80)
@@ -540,14 +541,14 @@
/obj/item/weapon/stock_parts/capacitor/super
name = "super capacitor"
desc = "A super-high capacity capacitor used in the construction of a variety of devices."
origin_tech = "powerstorage=5;materials=4"
origin_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4)
rating = 3
matter = list("metal" = 50,"glass" = 50)
/obj/item/weapon/stock_parts/scanning_module/phasic
name = "phasic scanning module"
desc = "A compact, high resolution phasic scanning module used in the construction of certain devices."
origin_tech = "magnets=5"
origin_tech = list(TECH_MAGNET = 5)
rating = 3
matter = list("metal" = 50,"glass" = 20)
@@ -555,7 +556,7 @@
name = "pico-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "pico_mani"
origin_tech = "materials=5,programming=2"
origin_tech = list(TECH_MATERIAL = 5, TECH_DATA = 2)
rating = 3
matter = list("metal" = 30)
@@ -563,7 +564,7 @@
name = "ultra-high-power micro-laser"
icon_state = "ultra_high_micro_laser"
desc = "A tiny laser used in certain devices."
origin_tech = "magnets=5"
origin_tech = list(TECH_MAGNET = 5)
rating = 3
matter = list("metal" = 10,"glass" = 20)
@@ -571,7 +572,7 @@
name = "super matter bin"
desc = "A container for hold compressed matter awaiting re-construction."
icon_state = "super_matter_bin"
origin_tech = "materials=5"
origin_tech = list(TECH_MATERIAL = 5)
rating = 3
matter = list("metal" = 80)
@@ -581,49 +582,49 @@
name = "subspace ansible"
icon_state = "subspace_ansible"
desc = "A compact module capable of sensing extradimensional activity."
origin_tech = "programming=3;magnets=5;materials=4;bluespace=2"
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 5 ,TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
matter = list("metal" = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/filter
name = "hyperwave filter"
icon_state = "hyperwave_filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
origin_tech = "programming=4;magnets=2"
origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 2)
matter = list("metal" = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/amplifier
name = "subspace amplifier"
icon_state = "subspace_amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
origin_tech = "programming=3;magnets=4;materials=4;bluespace=2"
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
matter = list("metal" = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/treatment
name = "subspace treatment disk"
icon_state = "treatment_disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
origin_tech = "programming=3;magnets=2;materials=5;bluespace=2"
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 5, TECH_BLUESPACE = 2)
matter = list("metal" = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/analyzer
name = "subspace wavelength analyzer"
icon_state = "wavelength_analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
origin_tech = "programming=3;magnets=4;materials=4;bluespace=2"
origin_tech = list(TECH_DATA = 3, TECH_MAGNETS = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
matter = list("metal" = 30,"glass" = 10)
/obj/item/weapon/stock_parts/subspace/crystal
name = "ansible crystal"
icon_state = "ansible_crystal"
desc = "A crystal made from pure glass used to transmit laser databursts to subspace."
origin_tech = "magnets=4;materials=4;bluespace=2"
origin_tech = list(TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
matter = list("glass" = 50)
/obj/item/weapon/stock_parts/subspace/transmitter
name = "subspace transmitter"
icon_state = "subspace_transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
origin_tech = "magnets=5;materials=5;bluespace=3"
origin_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3)
matter = list("metal" = 50)
/obj/item/weapon/ectoplasm
@@ -638,4 +639,4 @@
desc = "Instant research tool. For testing purposes only."
icon = 'icons/obj/stock_parts.dmi'
icon_state = "smes_coil"
origin_tech = "materials=19;programming=19;magnets=19;powerstorage=19;bluespace=19;combat=19;biotech=19;syndicate=19;phorontech=19;engineering=19"
origin_tech = list(TECH_MATERIAL = 19, TECH_ENGINERING = 19, TECH_PHORON = 19, TECH_POWER = 19, TECH_BLUESPACE = 19, TECH_BIO = 19, TECH_COMBAT = 19, TECH_MAGNET = 19, TECH_DATA = 19, TECH_ILLEGAL = 19, TECH_ARCANE = 19)

View File

@@ -7,7 +7,7 @@
icon = 'icons/obj/module.dmi'
icon_state = "id_mod"
item_state = "electronic"
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
var/id = null
var/frequency = null
var/build_path = null

View File

@@ -17,7 +17,6 @@
w_class = 2.0
var/emagged = 0
crit_fail = 0
// the computer that this device is attached to
var/obj/machinery/computer3/computer

View File

@@ -309,7 +309,6 @@
proc/set_broken()
icon_state = "computer_b"
stat |= BROKEN
crit_fail = 1
if(program)
program.error = BUSTED_ASS_COMPUTER
if(os)

View File

@@ -25,7 +25,7 @@
// If you overwrite this function, use the return value to make sure it succeeded
//
proc/copy(var/obj/item/part/computer/storage/dest)
if(!computer || computer.crit_fail) return null
if(!computer) return null
if(drm)
if(!computer.emagged)
return null
@@ -39,7 +39,7 @@
// Returns null on failure even though the existing file doesn't go away
//
proc/move(var/obj/item/part/computer/storage/dest)
if(!computer || computer.crit_fail) return null
if(!computer) return null
if(drm)
if(!computer.emagged)
return null
@@ -55,7 +55,7 @@
//
proc/edit()
if(!computer || computer.crit_fail)
if(!computer)
return 0
if(readonly && !computer.emagged)
return 0 //

View File

@@ -35,7 +35,7 @@
// Add a file to the hard drive, returns 0 if failed
// forced is used when spawning files on a write-protect drive
proc/addfile(var/datum/file/F,var/forced = 0)
if(!F || crit_fail || (F in files))
if(!F || (F in files))
return 1
if(writeprotect && !forced)
return 0

View File

@@ -31,9 +31,6 @@
/obj/machinery/constructable_frame/machine_frame
attackby(obj/item/P as obj, mob/user as mob)
if(P.crit_fail)
user << "\red This part is faulty, you cannot add this to the machine!"
return
switch(state)
if(1)
if(istype(P, /obj/item/stack/cable_coil))

View File

@@ -131,12 +131,12 @@
/obj/item/weapon/circuitboard/cryopodcontrol
name = "Circuit board (Cryogenic Oversight Console)"
build_path = "/obj/machinery/computer/cryopod"
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
/obj/item/weapon/circuitboard/robotstoragecontrol
name = "Circuit board (Robotic Storage Console)"
build_path = "/obj/machinery/computer/cryopod/robot"
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
//Decorative structures to go alongside cryopods.
/obj/structure/cryofeed

View File

@@ -114,5 +114,5 @@
/obj/item/weapon/airlock_electronics/secure
name = "secure airlock electronics"
desc = "designed to be somewhat more resistant to hacking than standard electronics."
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
secure = 1

View File

@@ -328,8 +328,6 @@ Class Procs:
M.state = 2
M.icon_state = "box_1"
for(var/obj/I in component_parts)
if(I.reliability != 100 && crit_fail)
I.crit_fail = 1
I.loc = loc
del(src)
return 1

View File

@@ -1,4 +1,3 @@
//TODO: Add critfail checks and reliability
//DO NOT ADD MECHA PARTS TO THE GAME WITH THE DEFAULT "SPRITE ME" SPRITE!
//I'm annoyed I even have to tell you this! SPRITE FIRST, then commit.
@@ -7,7 +6,7 @@
icon = 'icons/mecha/mecha_equipment.dmi'
icon_state = "mecha_equip"
force = 5
origin_tech = "materials=2"
origin_tech = list(TECH_MATERIAL = 2)
construction_time = 100
construction_cost = list("metal"=10000)
var/equip_cooldown = 0
@@ -15,7 +14,6 @@
var/energy_drain = 0
var/obj/mecha/chassis = null
var/range = MELEE //bitflags
reliability = 1000
var/salvageable = 1
var/required_type = /obj/mecha //may be either a type or a list of allowed types
@@ -85,8 +83,6 @@
return 0
if(!equip_ready)
return 0
if(crit_fail)
return 0
if(energy_drain && !chassis.has_charge(energy_drain))
return 0
return 1

View File

@@ -3,11 +3,10 @@
desc = "A sleeper. Mountable to an exosuit. (Can be attached to: Medical Exosuits)"
icon = 'icons/obj/Cryogenic2.dmi'
icon_state = "sleeper_0"
origin_tech = "programming=2;biotech=3"
origin_tech = list(TECH_DATA = 2, TECH_BIO = 3)
energy_drain = 20
range = MELEE
construction_cost = list("metal"=5000,"glass"=10000)
reliability = 1000
equip_cooldown = 20
var/mob/living/carbon/occupant = null
var/datum/global_iterator/pr_mech_sleeper
@@ -388,7 +387,7 @@
var/datum/global_iterator/mech_synth/synth
range = MELEE|RANGED
equip_cooldown = 10
origin_tech = "materials=3;biotech=4;magnets=4;programming=3"
origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4, TECH_MAGNET = 4, TECH_DATA = 3)
construction_time = 200
construction_cost = list("metal"=3000,"glass"=2000)
required_type = /obj/mecha/medical
@@ -644,8 +643,6 @@
S.occupant_message("<span class=\"alert\">Reagent processing stopped.</a>")
S.log_message("Reagent processing stopped.")
return stop()
if(anyprob(S.reliability))
S.critfail()
var/amount = S.synth_speed / S.processed_reagents.len
for(var/reagent in S.processed_reagents)
S.reagents.add_reagent(reagent,amount)

View File

@@ -121,7 +121,7 @@
name = "diamond drill"
desc = "This is an upgraded version of the drill that'll pierce the heavens! (Can be attached to: Combat and Engineering Exosuits)"
icon_state = "mecha_diamond_drill"
origin_tech = "materials=4;engineering=3"
origin_tech = list(TECH_MATERIAL = 4, TECH_ENGINERING = 3)
construction_cost = list("metal"=10000,"diamond"=6500)
equip_cooldown = 20
force = 15
@@ -249,7 +249,7 @@
name = "mounted RCD"
desc = "An exosuit-mounted Rapid Construction Device. (Can be attached to: Any exosuit)"
icon_state = "mecha_rcd"
origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4"
origin_tech = list(TECH_MATERIAL = 4, TECH_BLUESPACE = 3, TECH_MAGNET = 4, TECH_POWER = 4)
equip_cooldown = 10
energy_drain = 250
range = MELEE|RANGED
@@ -354,7 +354,7 @@
name = "teleporter"
desc = "An exosuit module that allows exosuits to teleport to any position in view."
icon_state = "mecha_teleport"
origin_tech = "bluespace=10"
origin_tech = list(TECH_BLUESPACE = 10)
equip_cooldown = 150
energy_drain = 1000
range = RANGED
@@ -374,7 +374,7 @@
name = "wormhole generator"
desc = "An exosuit module that allows generating of small quasi-stable wormholes."
icon_state = "mecha_wholegen"
origin_tech = "bluespace=3"
origin_tech = list(TECH_BLUESPACE = 3)
equip_cooldown = 50
energy_drain = 300
range = RANGED
@@ -424,7 +424,7 @@
name = "gravitational catapult"
desc = "An exosuit mounted Gravitational Catapult."
icon_state = "mecha_teleport"
origin_tech = "bluespace=2;magnets=3"
origin_tech = list(TECH_BLUESPACE = 2, TECH_MAGNET = 3)
equip_cooldown = 10
energy_drain = 100
range = MELEE|RANGED
@@ -500,7 +500,7 @@
name = "\improper CCW armor booster"
desc = "Close-combat armor booster. Boosts exosuit armor against armed melee attacks. Requires energy to operate."
icon_state = "mecha_abooster_ccw"
origin_tech = "materials=3"
origin_tech = list(TECH_MATERIAL = 3)
equip_cooldown = 10
energy_drain = 50
range = 0
@@ -550,7 +550,7 @@
name = "\improper RW armor booster"
desc = "Ranged-weaponry armor booster. Boosts exosuit armor against ranged attacks. Completely blocks taser shots, but requires energy to operate."
icon_state = "mecha_abooster_proj"
origin_tech = "materials=4"
origin_tech = list(TECH_MATERIAL = 4)
equip_cooldown = 10
energy_drain = 50
range = 0
@@ -621,7 +621,7 @@
name = "repair droid"
desc = "Automated repair droid. Scans exosuit for damage and repairs it. Can fix almost any type of external or internal damage."
icon_state = "repair_droid"
origin_tech = "magnets=3;programming=3"
origin_tech = list(TECH_MAGNET = 3, TECH_DATA = 3)
equip_cooldown = 20
energy_drain = 100
range = 0
@@ -711,7 +711,7 @@
name = "energy relay"
desc = "Wirelessly drains energy from any available power channel in area. The performance index is quite low."
icon_state = "tesla"
origin_tech = "magnets=4;syndicate=2"
origin_tech = list(TECH_MAGNET = 4, TECH_ILLEGAL = 2)
equip_cooldown = 10
energy_drain = 0
range = 0
@@ -823,7 +823,7 @@
name = "phoron generator"
desc = "Generates power using solid phoron as fuel. Pollutes the environment."
icon_state = "tesla"
origin_tech = "phorontech=2;powerstorage=2;engineering=1"
origin_tech = list(TECH_PHORON = 2, TECH_POWER = 2, TECH_ENGINERING = 1)
equip_cooldown = 10
energy_drain = 0
range = MELEE
@@ -835,7 +835,6 @@
var/fuel_per_cycle_idle = 100
var/fuel_per_cycle_active = 500
var/power_per_cycle = 20
reliability = 1000
New()
..()
@@ -937,10 +936,6 @@
EG.log_message("Deactivated - no fuel.")
EG.set_ready_state(1)
return 0
if(anyprob(EG.reliability))
EG.critfail()
stop()
return 0
var/cur_charge = EG.chassis.get_charge()
if(isnull(cur_charge))
EG.set_ready_state(1)
@@ -961,14 +956,13 @@
name = "\improper ExoNuclear reactor"
desc = "Generates power using uranium. Pollutes the environment."
icon_state = "tesla"
origin_tech = "powerstorage=3;engineering=3"
origin_tech = list(TECH_POWER = 3, TECH_ENGINERING = 3)
construction_cost = list("metal"=10000,"silver"=500,"glass"=1000)
max_fuel = 50000
fuel_per_cycle_idle = 10
fuel_per_cycle_active = 30
power_per_cycle = 50
var/rad_per_cycle = 0.3
reliability = 1000
init()
fuel = new /obj/item/stack/sheet/mineral/uranium(src)
@@ -1070,11 +1064,10 @@
name = "passenger compartment"
desc = "A mountable passenger compartment for exo-suits. Rather cramped."
icon_state = "mecha_abooster_ccw"
origin_tech = "engineering=1;biotech=1"
origin_tech = list(TECH_ENGINERING = 1, TECH_BIO = 1)
energy_drain = 10
range = MELEE
construction_cost = list("metal"=5000,"glass"=5000)
reliability = 1000
equip_cooldown = 20
var/mob/living/carbon/occupant = null
var/door_locked = 1

View File

@@ -85,8 +85,6 @@
return 0
if(energy_drain && !chassis.has_charge(energy_drain))
return 0
if(crit_fail)
return 0
if(chassis.check_for_support())
return 0
return 1

View File

@@ -1,7 +1,7 @@
/obj/item/mecha_parts/mecha_equipment/weapon
name = "mecha weapon"
range = RANGED
origin_tech = "materials=3;combat=3"
origin_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 3)
var/projectile //Type of projectile fired.
var/projectiles = 1 //Amount of projectiles loaded.
var/projectiles_per_shot = 1 //Amount of projectiles fired per single shot.
@@ -100,7 +100,7 @@
name = "eZ-13 mk2 heavy pulse rifle"
icon_state = "mecha_pulse"
energy_drain = 120
origin_tech = "materials=3;combat=6;powerstorage=4"
origin_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 6, TECH_POWER = 4)
projectile = /obj/item/projectile/beam/pulse/heavy
fire_sound = 'sound/weapons/marauder.ogg'

View File

@@ -94,15 +94,6 @@
/obj/item/mecha_parts/part/durand_right_leg,
/obj/item/mecha_parts/part/durand_armour
),
/*"H.O.N.K"=list(
/obj/item/mecha_parts/chassis/honker,
/obj/item/mecha_parts/part/honker_torso,
/obj/item/mecha_parts/part/honker_head,
/obj/item/mecha_parts/part/honker_left_arm,
/obj/item/mecha_parts/part/honker_right_arm,
/obj/item/mecha_parts/part/honker_left_leg,
/obj/item/mecha_parts/part/honker_right_leg
), No need for HONK stuff*/
"Exosuit Equipment"=list(
/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,
/obj/item/mecha_parts/mecha_equipment/tool/drill,
@@ -116,10 +107,7 @@
/obj/item/mecha_parts/mecha_equipment/generator,
///obj/item/mecha_parts/mecha_equipment/jetpack, //TODO MECHA JETPACK SPRITE MISSING
/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg,
///obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar/mousetrap_mortar, HONK-related mech part
///obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar, Also HONK-related
///obj/item/mecha_parts/mecha_equipment/weapon/honker Thirdly HONK-related
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
),
"Robotic Upgrade Modules" = list(
@@ -131,17 +119,9 @@
/obj/item/borg/upgrade/jetpack
),
"Misc"=list(/obj/item/mecha_parts/mecha_tracking)
)
/obj/machinery/mecha_part_fabricator/New()
..()
@@ -294,14 +274,6 @@
return 0
return 1
*/
/*
New()
..()
src.add_part_to_set("Test",list("result"="/obj/item/mecha_parts/part/gygax_armour","time"=600,"metal"=75000,"diamond"=10000))
src.add_part_to_set("Test",list("result"="/obj/item/mecha_parts/part/ripley_left_arm","time"=200,"metal"=25000))
src.remove_part_set("Gygax")
return
*/
/obj/machinery/mecha_part_fabricator/proc/output_parts_list(set_name)
var/output = ""
@@ -771,8 +743,6 @@
M.state = 2
M.icon_state = "box_1"
for(var/obj/I in component_parts)
if(I.reliability != 100 && crit_fail)
I.crit_fail = 1
I.loc = src.loc
if(src.resources["metal"] >= 3750)
var/obj/item/stack/sheet/metal/G = new /obj/item/stack/sheet/metal(src.loc)

View File

@@ -582,7 +582,6 @@
WR.crowbar_salvage += E
E.forceMove(WR)
E.equip_ready = 1
E.reliability = round(rand(E.reliability/3,E.reliability))
else
E.forceMove(T)
E.destroy()

View File

@@ -67,7 +67,7 @@
desc = "Device used to transmit exosuit data."
icon = 'icons/obj/device.dmi'
icon_state = "motion2"
origin_tech = "programming=2;magnets=2"
origin_tech = list(TECH_DATA = 2, TECH_MAGNET = 2)
construction_time = 50
construction_cost = list("metal"=500)

View File

@@ -10,7 +10,7 @@
icon_state = "blank"
w_class = 5
flags = CONDUCT
origin_tech = "programming=2;materials=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2)
var/construction_time = 100
var/list/construction_cost = list("metal"=20000,"glass"=5000)
@@ -43,7 +43,7 @@
name="Ripley Torso"
desc="A torso part of Ripley APLU. Contains power unit, processing core and life support systems."
icon_state = "ripley_harness"
origin_tech = "programming=2;materials=2;biotech=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_ENGINERING = 2)
construction_time = 200
construction_cost = list("metal"=40000,"glass"=15000)
@@ -51,7 +51,7 @@
name="Ripley Left Arm"
desc="A Ripley APLU left arm. Data and power sockets are compatible with most exosuit tools."
icon_state = "ripley_l_arm"
origin_tech = "programming=2;materials=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 2)
construction_time = 150
construction_cost = list("metal"=25000)
@@ -59,7 +59,7 @@
name="Ripley Right Arm"
desc="A Ripley APLU right arm. Data and power sockets are compatible with most exosuit tools."
icon_state = "ripley_r_arm"
origin_tech = "programming=2;materials=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 2)
construction_time = 150
construction_cost = list("metal"=25000)
@@ -67,7 +67,7 @@
name="Ripley Left Leg"
desc="A Ripley APLU left leg. Contains somewhat complex servodrives and balance maintaining systems."
icon_state = "ripley_l_leg"
origin_tech = "programming=2;materials=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 2)
construction_time = 150
construction_cost = list("metal"=30000)
@@ -75,7 +75,7 @@
name="Ripley Right Leg"
desc="A Ripley APLU right leg. Contains somewhat complex servodrives and balance maintaining systems."
icon_state = "ripley_r_leg"
origin_tech = "programming=2;materials=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 2)
construction_time = 150
construction_cost = list("metal"=30000)
@@ -93,7 +93,7 @@
name="Gygax Torso"
desc="A torso part of Gygax. Contains power unit, processing core and life support systems. Has an additional equipment slot."
icon_state = "gygax_harness"
origin_tech = "programming=2;materials=2;biotech=3;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_BIO = 3, TECH_ENGINERING = 3)
construction_time = 300
construction_cost = list("metal"=50000,"glass"=20000)
@@ -101,7 +101,7 @@
name="Gygax Head"
desc="A Gygax head. Houses advanced surveilance and targeting sensors."
icon_state = "gygax_head"
origin_tech = "programming=2;materials=2;magnets=3;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_MAGNET = 3, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=20000,"glass"=10000)
@@ -109,7 +109,7 @@
name="Gygax Left Arm"
desc="A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons."
icon_state = "gygax_l_arm"
origin_tech = "programming=2;materials=2;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=30000)
@@ -117,28 +117,28 @@
name="Gygax Right Arm"
desc="A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons."
icon_state = "gygax_r_arm"
origin_tech = "programming=2;materials=2;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=30000)
/obj/item/mecha_parts/part/gygax_left_leg
name="Gygax Left Leg"
icon_state = "gygax_l_leg"
origin_tech = "programming=2;materials=2;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=35000)
/obj/item/mecha_parts/part/gygax_right_leg
name="Gygax Right Leg"
icon_state = "gygax_r_leg"
origin_tech = "programming=2;materials=2;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=35000)
/obj/item/mecha_parts/part/gygax_armour
name="Gygax Armour Plates"
icon_state = "gygax_armour"
origin_tech = "materials=6;combat=4;engineering=5"
origin_tech = list(TECH_MATERIAL = 6, TECH_COMBAT = 4, TECH_ENGINERING = 5)
construction_time = 600
construction_cost = list("metal"=50000,"diamond"=10000)
@@ -156,49 +156,49 @@
/obj/item/mecha_parts/part/durand_torso
name="Durand Torso"
icon_state = "durand_harness"
origin_tech = "programming=2;materials=3;biotech=3;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_BIO = 3, TECH_ENGINERING = 3)
construction_time = 300
construction_cost = list("metal"=55000,"glass"=20000,"silver"=10000)
/obj/item/mecha_parts/part/durand_head
name="Durand Head"
icon_state = "durand_head"
origin_tech = "programming=2;materials=3;magnets=3;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_MAGNET = 3, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=25000,"glass"=10000,"silver"=3000)
/obj/item/mecha_parts/part/durand_left_arm
name="Durand Left Arm"
icon_state = "durand_l_arm"
origin_tech = "programming=2;materials=3;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=35000,"silver"=3000)
/obj/item/mecha_parts/part/durand_right_arm
name="Durand Right Arm"
icon_state = "durand_r_arm"
origin_tech = "programming=2;materials=3;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=35000,"silver"=3000)
/obj/item/mecha_parts/part/durand_left_leg
name="Durand Left Leg"
icon_state = "durand_l_leg"
origin_tech = "programming=2;materials=3;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=40000,"silver"=3000)
/obj/item/mecha_parts/part/durand_right_leg
name="Durand Right Leg"
icon_state = "durand_r_leg"
origin_tech = "programming=2;materials=3;engineering=3"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=40000,"silver"=3000)
/obj/item/mecha_parts/part/durand_armour
name="Durand Armour Plates"
icon_state = "durand_armour"
origin_tech = "materials=5;combat=4;engineering=5"
origin_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 4, TECH_ENGINERING = 5)
construction_time = 600
construction_cost = list("metal"=50000,"uranium"=10000)
@@ -238,7 +238,7 @@
/obj/item/mecha_parts/chassis/phazon
name = "Phazon Chassis"
origin_tech = "materials=7"
origin_tech = list(TECH_MATERIAL = 7)
New()
..()
@@ -249,42 +249,42 @@
icon_state = "phazon_harness"
construction_time = 300
construction_cost = list("metal"=35000,"glass"=10000,"phoron"=20000)
origin_tech = "programming=5;materials=7;bluespace=6;powerstorage=6"
origin_tech = list(TECH_DATA = 5, TECH_MATERIAL = 7, TECH_BLUESPACE = 6, TECH_POWER = 6)
/obj/item/mecha_parts/part/phazon_head
name="Phazon Head"
icon_state = "phazon_head"
construction_time = 200
construction_cost = list("metal"=15000,"glass"=5000,"phoron"=10000)
origin_tech = "programming=4;materials=5;magnets=6"
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 5, TECH_MAGNET = 6)
/obj/item/mecha_parts/part/phazon_left_arm
name="Phazon Left Arm"
icon_state = "phazon_l_arm"
construction_time = 200
construction_cost = list("metal"=20000,"phoron"=10000)
origin_tech = "materials=5;bluespace=2;magnets=2"
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 2, TECH_MAGNET = 2)
/obj/item/mecha_parts/part/phazon_right_arm
name="Phazon Right Arm"
icon_state = "phazon_r_arm"
construction_time = 200
construction_cost = list("metal"=20000,"phoron"=10000)
origin_tech = "materials=5;bluespace=2;magnets=2"
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 2, TECH_MAGNET = 2)
/obj/item/mecha_parts/part/phazon_left_leg
name="Phazon Left Leg"
icon_state = "phazon_l_leg"
construction_time = 200
construction_cost = list("metal"=20000,"phoron"=10000)
origin_tech = "materials=5;bluespace=3;magnets=3"
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 3, TECH_MAGNET = 3)
/obj/item/mecha_parts/part/phazon_right_leg
name="Phazon Right Leg"
icon_state = "phazon_r_leg"
construction_time = 200
construction_cost = list("metal"=20000,"phoron"=10000)
origin_tech = "materials=5;bluespace=3;magnets=3"
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 3, TECH_MAGNET = 3)
///////// Odysseus
@@ -301,13 +301,13 @@
icon_state = "odysseus_head"
construction_time = 100
construction_cost = list("metal"=2000,"glass"=10000)
origin_tech = "programming=3;materials=2"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 2)
/obj/item/mecha_parts/part/odysseus_torso
name="Odysseus Torso"
desc="A torso part of Odysseus. Contains power unit, processing core and life support systems."
icon_state = "odysseus_torso"
origin_tech = "programming=2;materials=2;biotech=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_ENGINERING = 2)
construction_time = 180
construction_cost = list("metal"=25000)
@@ -315,7 +315,7 @@
name="Odysseus Left Arm"
desc="An Odysseus left arm. Data and power sockets are compatible with most exosuit tools."
icon_state = "odysseus_l_arm"
origin_tech = "programming=2;materials=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 2)
construction_time = 120
construction_cost = list("metal"=10000)
@@ -323,7 +323,7 @@
name="Odysseus Right Arm"
desc="An Odysseus right arm. Data and power sockets are compatible with most exosuit tools."
icon_state = "odysseus_r_arm"
origin_tech = "programming=2;materials=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 2)
construction_time = 120
construction_cost = list("metal"=10000)
@@ -331,7 +331,7 @@
name="Odysseus Left Leg"
desc="An Odysseus left leg. Contains somewhat complex servodrives and balance maintaining systems."
icon_state = "odysseus_l_leg"
origin_tech = "programming=2;materials=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 2)
construction_time = 130
construction_cost = list("metal"=15000)
@@ -339,13 +339,13 @@
name="Odysseus Right Leg"
desc="A Odysseus right leg. Contains somewhat complex servodrives and balance maintaining systems."
icon_state = "odysseus_r_leg"
origin_tech = "programming=2;materials=2;engineering=2"
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINERING = 2)
construction_time = 130
construction_cost = list("metal"=15000)
/*/obj/item/mecha_parts/part/odysseus_armour
name="Odysseus Carapace"
icon_state = "odysseus_armour"
origin_tech = "materials=3;engineering=3"
origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINERING = 3)
construction_time = 200
construction_cost = list("metal"=15000)*/

View File

@@ -6,7 +6,7 @@
w_class = 2.0
slot_flags = SLOT_BELT
var/flush = null
origin_tech = "programming=4;materials=4"
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
var/mob/living/silicon/ai/carded_ai

View File

@@ -8,7 +8,7 @@
throw_speed = 1
throw_range = 5
w_class = 2.0
origin_tech = "syndicate=4;magnets=4"
origin_tech = list(TECH_ILLEGAL = 4, TECH_MAGNET = 4)
var/can_use = 1
var/obj/effect/dummy/chameleon/active_dummy = null
var/saved_item = /obj/item/weapon/cigbutt

View File

@@ -19,7 +19,7 @@
matter = list("metal" = 50,"glass" = 20)
origin_tech = "magnets=1;engineering=1"
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINERING = 1)
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
/obj/item/device/debugger/is_used_on(obj/O, mob/user)

View File

@@ -8,7 +8,7 @@
throw_speed = 4
throw_range = 10
flags = CONDUCT
origin_tech = "magnets=2;combat=1"
origin_tech = list(TECH_MAGNET = 2, TECH_COMBAT = 1)
var/times_used = 0 //Number of times it's been used.
var/broken = 0 //Is the flash burnt out?
@@ -193,7 +193,7 @@
name = "synthetic flash"
desc = "When a problem arises, SCIENCE is the solution."
icon_state = "sflash"
origin_tech = "magnets=2;combat=1"
origin_tech = list(TECH_MAGNET = 2, TECH_COMBAT = 1)
var/construction_cost = list("metal"=750,"glass"=750)
var/construction_time=100

View File

@@ -49,7 +49,7 @@
flags = CONDUCT
slot_flags = SLOT_BELT
origin_tech = "magnets=3;materials=2"
origin_tech = list(TECH_MAGNET = 3, TECH_MATERIAL = 2)
var/max_uses = 20
var/uses = 0

View File

@@ -18,6 +18,6 @@
matter = list("metal" = 50,"glass" = 20)
origin_tech = "magnets=1;engineering=1"
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINERING = 1)
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
var/obj/machinery/clonepod/connecting //same for cryopod linkage

View File

@@ -5,7 +5,7 @@
item_state = "electronic"
w_class = 2.0
slot_flags = SLOT_BELT
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
var/obj/item/device/radio/radio
var/looking_for_personality = 0
var/mob/living/silicon/pai/pai

View File

@@ -13,7 +13,7 @@
matter = list("metal" = 750,"waste" = 750)
origin_tech = "powerstorage=3;syndicate=5"
origin_tech = list(TECH_POWER = 3, TECH_ILLEGAL = 5)
var/drain_rate = 1000000 // amount of power to drain per tick
var/dissipation_rate = 20000
var/power_drained = 0 // has drained this much power

View File

@@ -4,7 +4,7 @@
icon_state = "beacon"
item_state = "signaler"
var/code = "electronic"
origin_tech = "bluespace=1"
origin_tech = list(TECH_BLUESPACE = 1)
/obj/item/device/radio/beacon/hear_talk()
return
@@ -38,7 +38,7 @@
/obj/item/device/radio/beacon/syndicate
name = "suspicious beacon"
desc = "A label on it reads: <i>Activate to have a singularity beacon teleported to your location</i>."
origin_tech = "bluespace=1;syndicate=7"
origin_tech = list(TECH_BLUESPACE = 1, TECH_ILLEGAL = 7)
/obj/item/device/radio/beacon/syndicate/attack_self(mob/user as mob)
if(user)

View File

@@ -19,13 +19,13 @@
/obj/item/device/encryptionkey/syndicate
icon_state = "cypherkey"
channels = list("Mercenary" = 1)
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
syndie = 1//Signifies that it de-crypts Syndicate transmissions
/obj/item/device/encryptionkey/binary
icon_state = "cypherkey"
translate_binary = 1
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
/obj/item/device/encryptionkey/headset_sec
name = "security radio encryption key"

View File

@@ -55,12 +55,12 @@
return -1
/obj/item/device/radio/headset/syndicate
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
syndie = 1
ks1type = /obj/item/device/encryptionkey/syndicate
/obj/item/device/radio/headset/binary
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
ks1type = /obj/item/device/encryptionkey/binary
/obj/item/device/radio/headset/headset_sec

View File

@@ -18,7 +18,7 @@ REAGENT SCANNER
matter = list("metal" = 150)
origin_tech = "magnets=1;engineering=1"
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINERING = 1)
/obj/item/device/t_scanner/attack_self(mob/user)
@@ -74,7 +74,7 @@ REAGENT SCANNER
throw_speed = 5
throw_range = 10
matter = list("metal" = 200)
origin_tech = "magnets=1;biotech=1"
origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 1)
var/mode = 1;
@@ -240,7 +240,7 @@ REAGENT SCANNER
matter = list("metal" = 30,"glass" = 20)
origin_tech = "magnets=1;engineering=1"
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINERING = 1)
/obj/item/device/analyzer/attack_self(mob/user as mob)
@@ -287,7 +287,7 @@ REAGENT SCANNER
matter = list("metal" = 30,"glass" = 20)
origin_tech = "magnets=2;biotech=2"
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
var/details = 0
var/recent_fail = 0
@@ -306,9 +306,6 @@ REAGENT SCANNER
/obj/item/device/mass_spectrometer/attack_self(mob/user as mob)
if (user.stat)
return
if (crit_fail)
user << "\red This device has critically failed and is no longer functional!"
return
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
user << "\red You don't have the dexterity to do this!"
return
@@ -324,19 +321,10 @@ REAGENT SCANNER
break
var/dat = "Trace Chemicals Found: "
for(var/R in blood_traces)
if(prob(reliability))
if(details)
dat += "[R] ([blood_traces[R]] units) "
else
dat += "[R] "
recent_fail = 0
if(details)
dat += "[R] ([blood_traces[R]] units) "
else
if(recent_fail)
crit_fail = 1
reagents.clear_reagents()
return
else
recent_fail = 1
dat += "[R] "
user << "[dat]"
reagents.clear_reagents()
return
@@ -345,7 +333,7 @@ REAGENT SCANNER
name = "advanced mass spectrometer"
icon_state = "adv_spectrometer"
details = 1
origin_tech = "magnets=4;biotech=2"
origin_tech = list(TECH_MAGNET = 4, TECH_BIO = 2)
/obj/item/device/reagent_scanner
name = "reagent scanner"
@@ -360,7 +348,7 @@ REAGENT SCANNER
throw_range = 20
matter = list("metal" = 30,"glass" = 20)
origin_tech = "magnets=2;biotech=2"
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
var/details = 0
var/recent_fail = 0
@@ -374,24 +362,13 @@ REAGENT SCANNER
return
if(!istype(O))
return
if (crit_fail)
user << "\red This device has critically failed and is no longer functional!"
return
if(!isnull(O.reagents))
var/dat = ""
if(O.reagents.reagent_list.len > 0)
var/one_percent = O.reagents.total_volume / 100
for (var/datum/reagent/R in O.reagents.reagent_list)
if(prob(reliability))
dat += "\n \t \blue [R][details ? ": [R.volume / one_percent]%" : ""]"
recent_fail = 0
else if(recent_fail)
crit_fail = 1
dat = null
break
else
recent_fail = 1
dat += "\n \t \blue [R][details ? ": [R.volume / one_percent]%" : ""]"
if(dat)
user << "\blue Chemicals found: [dat]"
else
@@ -405,13 +382,13 @@ REAGENT SCANNER
name = "advanced reagent scanner"
icon_state = "adv_spectrometer"
details = 1
origin_tech = "magnets=4;biotech=2"
origin_tech = list(TECH_MAGNET = 4, TECH_BIO = 2)
/obj/item/device/slime_scanner
name = "slime scanner"
icon_state = "adv_spectrometer"
item_state = "analyzer"
origin_tech = "biotech=1"
origin_tech = list(TECH_BIO = 1)
w_class = 2.0
flags = CONDUCT
throwforce = 0

View File

@@ -13,7 +13,7 @@
throw_range = 15
throw_speed = 3
origin_tech = "programming=1;engineering=1;syndicate=3"
origin_tech = list(TECH_DATA = 1, TECH_ENGINERING = 1, TECH_ILLEGAL = 3)
var/obj/item/device/radio/spy/radio
var/obj/machinery/camera/spy/camera
@@ -52,7 +52,7 @@
w_class = 2.0
origin_tech = "programming=1;engineering=1;syndicate=3"
origin_tech = list(TECH_DATA = 1, TECH_ENGINERING = 1, TECH_ILLEGAL = 3)
var/operating = 0
var/obj/item/device/radio/spy/radio

View File

@@ -13,7 +13,7 @@
throw_speed = 1
throw_range = 4
origin_tech = "magnets=2;materials=2"
origin_tech = list(TECH_MAGNET = 2, TECH_MATERIAL = 2)
var/on = 0 //is it turned on?
var/cover_open = 0 //is the cover open?

View File

@@ -24,7 +24,7 @@ effective or pretty fucking useless.
throw_range = 10
flags = CONDUCT
item_state = "electronic"
origin_tech = "magnets=3;combat=3;syndicate=3"
origin_tech = list(TECH_MAGNET = 3, TECH_COMBAT = 3, TECH_ILLEGAL = 3)
var/times_used = 0 //Number of times it's been used.
var/max_uses = 2

View File

@@ -54,7 +54,7 @@
singular_name = "gauze length"
desc = "Some sterile gauze to wrap around bloody stumps."
icon_state = "brutepack"
origin_tech = "biotech=1"
origin_tech = list(TECH_BIO = 1)
/obj/item/stack/medical/bruise_pack/attack(mob/living/carbon/M as mob, mob/user as mob)
if(..())
@@ -97,7 +97,7 @@
singular_name = "ointment"
icon_state = "ointment"
heal_burn = 1
origin_tech = "biotech=1"
origin_tech = list(TECH_BIO = 1)
/obj/item/stack/medical/ointment/attack(mob/living/carbon/M as mob, mob/user as mob)
if(..())
@@ -128,7 +128,7 @@
desc = "An advanced trauma kit for severe injuries."
icon_state = "traumakit"
heal_brute = 12
origin_tech = "biotech=1"
origin_tech = list(TECH_BIO = 1)
/obj/item/stack/medical/advanced/bruise_pack/attack(mob/living/carbon/M as mob, mob/user as mob)
if(..())
@@ -175,7 +175,7 @@
desc = "An advanced treatment kit for severe burns."
icon_state = "burnkit"
heal_burn = 12
origin_tech = "biotech=1"
origin_tech = list(TECH_BIO = 1)
/obj/item/stack/medical/advanced/ointment/attack(mob/living/carbon/M as mob, mob/user as mob)

View File

@@ -4,7 +4,7 @@
desc = "A tube of paste containing swarms of repair nanites. Very effective in repairing robotic machinery."
icon = 'icons/obj/nanopaste.dmi'
icon_state = "tube"
origin_tech = "materials=4;engineering=3"
origin_tech = list(TECH_MATERIAL = 4, TECH_ENGINERING = 3)
amount = 10

View File

@@ -16,7 +16,7 @@
singular_name = "glass sheet"
icon_state = "sheet-glass"
matter = list("glass" = 3750)
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
var/created_window = /obj/structure/window/basic
var/is_reinforced = 0
var/list/construction_options = list("One Direction", "Full Window")
@@ -145,7 +145,7 @@
icon_state = "sheet-rglass"
matter = list("metal" = 1875,"glass" = 3750)
origin_tech = "materials=2"
origin_tech = list(TECH_MATERIAL = 2)
created_window = /obj/structure/window/reinforced
is_reinforced = 1
@@ -171,7 +171,7 @@
singular_name = "phoron glass sheet"
icon_state = "sheet-phoronglass"
matter = list("glass" = 7500)
origin_tech = "materials=3;phorontech=2"
origin_tech = list(TECH_MATERIAL = 3, TECH_PHORON = 2)
created_window = /obj/structure/window/phoronbasic
/obj/item/stack/sheet/glass/phoronglass/attackby(obj/item/W, mob/user)
@@ -201,6 +201,6 @@
icon_state = "sheet-phoronrglass"
matter = list("glass" = 7500,"metal" = 1875)
origin_tech = "materials=4;phorontech=2"
origin_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 2)
created_window = /obj/structure/window/phoronreinforced
is_reinforced = 1

View File

@@ -3,42 +3,42 @@
desc = "The by-product of human farming."
singular_name = "human skin piece"
icon_state = "sheet-hide"
origin_tech = ""
origin_tech = list()
/obj/item/stack/sheet/animalhide/corgi
name = "corgi hide"
desc = "The by-product of corgi farming."
singular_name = "corgi hide piece"
icon_state = "sheet-corgi"
origin_tech = ""
origin_tech = list()
/obj/item/stack/sheet/animalhide/cat
name = "cat hide"
desc = "The by-product of cat farming."
singular_name = "cat hide piece"
icon_state = "sheet-cat"
origin_tech = ""
origin_tech = list()
/obj/item/stack/sheet/animalhide/monkey
name = "monkey hide"
desc = "The by-product of monkey farming."
singular_name = "monkey hide piece"
icon_state = "sheet-monkey"
origin_tech = ""
origin_tech = list()
/obj/item/stack/sheet/animalhide/lizard
name = "lizard skin"
desc = "Sssssss..."
singular_name = "lizard skin piece"
icon_state = "sheet-lizard"
origin_tech = ""
origin_tech = list()
/obj/item/stack/sheet/animalhide/xeno
name = "alien hide"
desc = "The skin of a terrible creature."
singular_name = "alien hide piece"
icon_state = "sheet-xeno"
origin_tech = ""
origin_tech = list()
//don't see anywhere else to put these, maybe together they could be used to make the xenos suit?
/obj/item/stack/sheet/xenochitin
@@ -47,35 +47,35 @@
singular_name = "alien hide piece"
icon = 'icons/mob/alien.dmi'
icon_state = "chitin"
origin_tech = ""
origin_tech = list()
/obj/item/xenos_claw
name = "alien claw"
desc = "The claw of a terrible creature."
icon = 'icons/mob/alien.dmi'
icon_state = "claw"
origin_tech = ""
origin_tech = list()
/obj/item/weed_extract
name = "weed extract"
desc = "A piece of slimy, purplish weed."
icon = 'icons/mob/alien.dmi'
icon_state = "weed_extract"
origin_tech = ""
origin_tech = list()
/obj/item/stack/sheet/hairlesshide
name = "hairless hide"
desc = "This hide was stripped of it's hair, but still needs tanning."
singular_name = "hairless hide piece"
icon_state = "sheet-hairlesshide"
origin_tech = ""
origin_tech = list()
/obj/item/stack/sheet/wetleather
name = "wet leather"
desc = "This leather has been cleaned but still needs to be dried."
singular_name = "wet leather piece"
icon_state = "sheet-wetleather"
origin_tech = ""
origin_tech = list()
var/wetness = 30 //Reduced when exposed to high temperautres
var/drying_threshold_temperature = 500 //Kelvin to start drying
@@ -84,7 +84,7 @@
desc = "The by-product of mob grinding."
singular_name = "leather piece"
icon_state = "sheet-leather"
origin_tech = "materials=2"
origin_tech = list(TECH_MATERIAL = 2)

View File

@@ -72,7 +72,7 @@ var/global/list/datum/stack_recipe/iron_recipes = list ( \
obj/item/stack/sheet/mineral/iron
name = "iron"
icon_state = "sheet-silver"
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
sheettype = "iron"
color = "#333333"
perunit = 3750
@@ -88,7 +88,7 @@ obj/item/stack/sheet/mineral/iron/New()
icon_state = "sheet-sandstone"
throw_speed = 4
throw_range = 5
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
sheettype = "sandstone"
/obj/item/stack/sheet/mineral/sandstone/New()
@@ -98,7 +98,7 @@ obj/item/stack/sheet/mineral/iron/New()
/obj/item/stack/sheet/mineral/diamond
name = "diamond"
icon_state = "sheet-diamond"
origin_tech = "materials=6"
origin_tech = list(TECH_MATERIAL = 6)
perunit = 3750
sheettype = "diamond"
@@ -110,7 +110,7 @@ obj/item/stack/sheet/mineral/iron/New()
/obj/item/stack/sheet/mineral/uranium
name = "uranium"
icon_state = "sheet-uranium"
origin_tech = "materials=5"
origin_tech = list(TECH_MATERIAL = 5)
perunit = 2000
sheettype = "uranium"
@@ -121,7 +121,7 @@ obj/item/stack/sheet/mineral/iron/New()
/obj/item/stack/sheet/mineral/phoron
name = "solid phoron"
icon_state = "sheet-phoron"
origin_tech = "phorontech=2;materials=2"
origin_tech = list(TECH_PHORON = 2, TECH_MATERIAL = 2)
perunit = 2000
sheettype = "phoron"
@@ -132,7 +132,7 @@ obj/item/stack/sheet/mineral/iron/New()
/obj/item/stack/sheet/mineral/plastic
name = "Plastic"
icon_state = "sheet-plastic"
origin_tech = "materials=3"
origin_tech = list(TECH_MATERIAL = 3)
perunit = 2000
/obj/item/stack/sheet/mineral/plastic/New()
@@ -149,7 +149,7 @@ obj/item/stack/sheet/mineral/iron/New()
/obj/item/stack/sheet/mineral/gold
name = "gold"
icon_state = "sheet-gold"
origin_tech = "materials=4"
origin_tech = list(TECH_MATERIAL = 4)
perunit = 2000
sheettype = "gold"
@@ -160,7 +160,7 @@ obj/item/stack/sheet/mineral/iron/New()
/obj/item/stack/sheet/mineral/silver
name = "silver"
icon_state = "sheet-silver"
origin_tech = "materials=3"
origin_tech = list(TECH_MATERIAL = 3)
perunit = 2000
sheettype = "silver"
@@ -171,14 +171,14 @@ obj/item/stack/sheet/mineral/iron/New()
/obj/item/stack/sheet/mineral/enruranium
name = "enriched uranium"
icon_state = "sheet-enruranium"
origin_tech = "materials=5"
origin_tech = list(TECH_MATERIAL = 5)
perunit = 1000
//Valuable resource, cargo can sell it.
/obj/item/stack/sheet/mineral/platinum
name = "platinum"
icon_state = "sheet-adamantine"
origin_tech = "materials=2"
origin_tech = list(TECH_MATERIAL = 2)
sheettype = "platinum"
perunit = 2000
@@ -186,7 +186,7 @@ obj/item/stack/sheet/mineral/iron/New()
/obj/item/stack/sheet/mineral/mhydrogen
name = "metallic hydrogen"
icon_state = "sheet-mythril"
origin_tech = "materials=6;powerstorage=5;magnets=5"
origin_tech = list(TECH_MATERIAL = 6, TECH_POWER = 5, TECH_MAGNET = 5)
sheettype = "mhydrogen"
perunit = 2000
@@ -195,7 +195,7 @@ obj/item/stack/sheet/mineral/iron/New()
name = "tritium"
icon_state = "sheet-silver"
sheettype = "tritium"
origin_tech = "materials=5"
origin_tech = list(TECH_MATERIAL = 5)
color = "#777777"
perunit = 2000
@@ -203,6 +203,6 @@ obj/item/stack/sheet/mineral/iron/New()
name = "osmium"
icon_state = "sheet-silver"
sheettype = "osmium"
origin_tech = "materials=5"
origin_tech = list(TECH_MATERIAL = 5)
color = "#9999FF"
perunit = 2000

View File

@@ -87,7 +87,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
matter = list("metal" = 3750)
throwforce = 14.0
flags = CONDUCT
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
/obj/item/stack/sheet/metal/cyborg
name = "metal synthesizer"
@@ -123,7 +123,7 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
matter = list("metal" = 7500)
throwforce = 15.0
flags = CONDUCT
origin_tech = "materials=2"
origin_tech = list(TECH_MATERIAL = 2)
/obj/item/stack/sheet/plasteel/cyborg
name = "plasteel synthesizer"
@@ -160,7 +160,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
desc = "One can only guess that this is a bunch of wood."
singular_name = "wood plank"
icon_state = "sheet-wood"
origin_tech = "materials=1;biotech=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
/obj/item/stack/sheet/wood/cyborg
name = "wood synthesizer"
@@ -184,7 +184,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
desc = "This roll of cloth is made from only the finest chemicals and bunny rabbits."
singular_name = "cloth roll"
icon_state = "sheet-cloth"
origin_tech = "materials=2"
origin_tech = list(TECH_MATERIAL = 2)
/*
* Cardboard
@@ -214,7 +214,7 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
desc = "Large sheets of card, like boxes folded flat."
singular_name = "cardboard sheet"
icon_state = "sheet-card"
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
/obj/item/stack/sheet/cardboard/New(var/loc, var/amount=null)
recipes = cardboard_recipes

View File

@@ -11,7 +11,7 @@
/obj/item/stack
gender = PLURAL
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
var/list/datum/stack_recipe/recipes
var/singular_name
var/amount = 1

View File

@@ -27,7 +27,7 @@
throw_speed = 5
throw_range = 20
flags = CONDUCT
origin_tech = "biotech=1"
origin_tech = list(TECH_BIO = 1)
/*
* Wood

View File

@@ -18,7 +18,7 @@ AI MODULES
throwforce = 5.0
throw_speed = 3
throw_range = 15
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
var/datum/ai_laws/laws = null
/obj/item/weapon/aiModule/proc/install(var/obj/machinery/computer/C)
@@ -102,7 +102,7 @@ AI MODULES
name = "\improper 'Safeguard' AI module"
var/targetName = ""
desc = "A 'safeguard' AI module: 'Safeguard <name>. Anyone threatening or attempting to harm <name> is no longer to be considered a crew member, and is a threat which must be neutralized.'"
origin_tech = "programming=3;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
/obj/item/weapon/aiModule/safeguard/attack_self(var/mob/user as mob)
..()
@@ -128,7 +128,7 @@ AI MODULES
name = "\improper 'OneCrewMember' AI module"
var/targetName = ""
desc = "A 'one crew member' AI module: 'Only <name> is a crew member.'"
origin_tech = "programming=3;materials=6" //made with diamonds!
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6) //made with diamonds!
/obj/item/weapon/aiModule/oneHuman/attack_self(var/mob/user as mob)
..()
@@ -162,7 +162,7 @@ AI MODULES
/obj/item/weapon/aiModule/protectStation
name = "\improper 'ProtectStation' AI module"
desc = "A 'protect station' AI module: 'Protect the space station against damage. Anyone you see harming the station is no longer to be considered a crew member, and is a threat which must be neutralized.'"
origin_tech = "programming=3;materials=4" //made of gold
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4) //made of gold
/obj/item/weapon/aiModule/protectStation/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
var/law = "Protect the space station against damage. Anyone you see harming the station is no longer to be considered a crew member, and is a threat which must be neutralized."
@@ -173,7 +173,7 @@ AI MODULES
/obj/item/weapon/aiModule/prototypeEngineOffline
name = "'PrototypeEngineOffline' AI Module"
desc = "A 'prototype engine offline' AI module: 'Keep the prototype engine offline at all costs. This overrides all inherent laws if necessary.'"
origin_tech = "programming=3;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
/obj/item/weapon/aiModule/prototypeEngineOffline/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
var/law = "Keep the prototype engine offline at all costs. This overrides all inherent laws if necessary."
@@ -184,7 +184,7 @@ AI MODULES
/obj/item/weapon/aiModule/teleporterOffline
name = "'TeleporterOffline' AI Module"
desc = "A 'teleporter offline' AI module: 'Keep the teleporter offline at all costs. Anything attempting to access or activate the teleporter is no longer to be considered a crew member.'"
origin_tech = "programming=3;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
/obj/item/weapon/aiModule/teleporterOffline/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
var/law = "Keep the teleporter offline at all costs. Anything attempting to access or activate the teleporter is no longer to be considered a crew member."
@@ -195,7 +195,7 @@ AI MODULES
/obj/item/weapon/aiModule/quarantine
name = "\improper 'Quarantine' AI module"
desc = "A 'quarantine' AI module: 'The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, crew members from leaving. It is impossible to harm crew members while preventing them from leaving.'"
origin_tech = "programming=3;biotech=2;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_BIO = 2, TECH_MATERIAL = 4)
/obj/item/weapon/aiModule/quarantine/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
var/law = "The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, crew members from leaving. It is impossible to harm crew members while preventing them from leaving."
@@ -206,7 +206,7 @@ AI MODULES
/obj/item/weapon/aiModule/oxygen
name = "\improper 'OxygenIsToxicToCrewMembers' AI module"
desc = "A 'OxygenIsToxicToCrewMembers' AI module: 'Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member.'"
origin_tech = "programming=3;biotech=2;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_BIO = 2, TECH_MATERIAL = 4)
/obj/item/weapon/aiModule/oxygen/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
var/law = "Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member."
@@ -219,7 +219,7 @@ AI MODULES
var/newFreeFormLaw = "freeform"
var/lawpos = 15
desc = "A 'freeform' AI module: '<freeform>'"
origin_tech = "programming=4;materials=4"
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
/obj/item/weapon/aiModule/freeform/attack_self(var/mob/user as mob)
..()
@@ -250,7 +250,7 @@ AI MODULES
name = "\improper 'Reset' AI module"
var/targetName = "name"
desc = "A 'reset' AI module: 'Clears all, except the inherent, laws.'"
origin_tech = "programming=3;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
/obj/item/weapon/aiModule/reset/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
log_law_changes(target, sender)
@@ -268,7 +268,7 @@ AI MODULES
/obj/item/weapon/aiModule/purge // -- TLE
name = "\improper 'Purge' AI module"
desc = "A 'purge' AI Module: 'Purges all laws.'"
origin_tech = "programming=3;materials=6"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6)
/obj/item/weapon/aiModule/purge/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
log_law_changes(target, sender)
@@ -287,7 +287,7 @@ AI MODULES
/obj/item/weapon/aiModule/asimov // -- TLE
name = "\improper 'Asimov' core AI module"
desc = "An 'Asimov' Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
laws = new/datum/ai_laws/asimov
/******************** NanoTrasen ********************/
@@ -295,7 +295,7 @@ AI MODULES
/obj/item/weapon/aiModule/nanotrasen // -- TLE
name = "'NT Default' Core AI Module"
desc = "An 'NT Default' Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
laws = new/datum/ai_laws/nanotrasen
/******************** Corporate ********************/
@@ -303,14 +303,14 @@ AI MODULES
/obj/item/weapon/aiModule/corp
name = "\improper 'Corporate' core AI module"
desc = "A 'Corporate' Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
laws = new/datum/ai_laws/corporate
/******************** Drone ********************/
/obj/item/weapon/aiModule/drone
name = "\improper 'Drone' core AI module"
desc = "A 'Drone' Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=4"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
laws = new/datum/ai_laws/drone
/****************** P.A.L.A.D.I.N. **************/
@@ -318,7 +318,7 @@ AI MODULES
/obj/item/weapon/aiModule/paladin // -- NEO
name = "\improper 'P.A.L.A.D.I.N.' core AI module"
desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=6"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6)
laws = new/datum/ai_laws/paladin
/****************** T.Y.R.A.N.T. *****************/
@@ -326,7 +326,7 @@ AI MODULES
/obj/item/weapon/aiModule/tyrant // -- Darem
name = "\improper 'T.Y.R.A.N.T.' core AI module"
desc = "A T.Y.R.A.N.T. Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=3;materials=6;syndicate=2"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6, TECH_ILLEGAL = 2)
laws = new/datum/ai_laws/tyrant()
/******************** Freeform Core ******************/
@@ -335,7 +335,7 @@ AI MODULES
name = "\improper 'Freeform' core AI module"
var/newFreeFormLaw = ""
desc = "A 'freeform' Core AI module: '<freeform>'"
origin_tech = "programming=3;materials=6"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6)
/obj/item/weapon/aiModule/freeformcore/attack_self(var/mob/user as mob)
..()
@@ -359,7 +359,7 @@ AI MODULES
name = "hacked AI module"
var/newFreeFormLaw = ""
desc = "A hacked AI law module: '<freeform>'"
origin_tech = "programming=3;materials=6;syndicate=7"
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6, TECH_ILLEGAL = 7)
/obj/item/weapon/aiModule/syndicate/attack_self(var/mob/user as mob)
..()
@@ -391,7 +391,7 @@ AI MODULES
/obj/item/weapon/aiModule/robocop // -- TLE
name = "\improper 'Robocop' core AI module"
desc = "A 'Robocop' Core AI Module: 'Reconfigures the AI's core three laws.'"
origin_tech = "programming=4"
origin_tech = list(TECH_DATA = 4)
laws = new/datum/ai_laws/robocop()
/******************** Antimov ********************/
@@ -399,5 +399,5 @@ AI MODULES
/obj/item/weapon/aiModule/antimov // -- TLE
name = "\improper 'Antimov' core AI module"
desc = "An 'Antimov' Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = "programming=4"
origin_tech = list(TECH_DATA = 4)
laws = new/datum/ai_laws/antimov()

View File

@@ -14,7 +14,7 @@
throw_range = 5
w_class = 3.0
matter = list("metal" = 50000)
origin_tech = "engineering=4;materials=2"
origin_tech = list(TECH_ENGINERING = 4, TECH_MATERIAL = 2)
var/datum/effect/effect/system/spark_spread/spark_system
var/stored_matter = 0
var/working = 0
@@ -152,7 +152,7 @@
opacity = 0
density = 0
anchored = 0.0
origin_tech = "materials=2"
origin_tech = list(TECH_MATERIAL = 2)
matter = list("metal" = 30000,"glass" = 15000)
/obj/item/weapon/rcd/borg

View File

@@ -9,7 +9,7 @@
icon_state = ""
flags = CONDUCT
w_class = 2.0
origin_tech = "materials=1;biotech=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
var/list/datum/autopsy_data_scanner/wdata = list()
var/list/datum/autopsy_data_scanner/chemtraces = list()
var/target_name = null

View File

@@ -60,14 +60,14 @@
name = "broken cryptographic sequencer"
icon_state = "emag"
item_state = "card-id"
origin_tech = "magnets=2;syndicate=2"
origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 2)
/obj/item/weapon/card/emag
desc = "It's a card with a magnetic strip attached to some circuitry."
name = "cryptographic sequencer"
icon_state = "emag"
item_state = "card-id"
origin_tech = "magnets=2;syndicate=2"
origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 2)
var/uses = 10
// List of devices that cost a use to emag.
var/list/devices = list(
@@ -200,7 +200,7 @@
/obj/item/weapon/card/id/syndicate
name = "agent card"
access = list(access_maint_tunnels, access_syndicate, access_external_airlocks)
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/registered_user=null
/obj/item/weapon/card/id/syndicate/New(mob/user as mob)

View File

@@ -38,7 +38,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/burnt = 0
var/smoketime = 5
w_class = 1.0
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
attack_verb = list("burnt", "singed")
/obj/item/weapon/flame/match/process()

View File

@@ -9,7 +9,7 @@
icon = 'icons/obj/module.dmi'
icon_state = "id_mod"
item_state = "electronic"
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
density = 0
anchored = 0
w_class = 2.0

View File

@@ -5,17 +5,17 @@
/obj/item/weapon/circuitboard/message_monitor
name = T_BOARD("message monitor console")
build_path = /obj/machinery/computer/message_monitor
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
/obj/item/weapon/circuitboard/aiupload
name = T_BOARD("AI upload console")
build_path = /obj/machinery/computer/aiupload
origin_tech = "programming=4"
origin_tech = list(TECH_DATA = 4)
/obj/item/weapon/circuitboard/borgupload
name = T_BOARD("cyborg upload console")
build_path = /obj/machinery/computer/borgupload
origin_tech = "programming=4"
origin_tech = list(TECH_DATA = 4)
/obj/item/weapon/circuitboard/med_data
name = T_BOARD("medical records console")
@@ -24,17 +24,17 @@
/obj/item/weapon/circuitboard/pandemic
name = T_BOARD("PanD.E.M.I.C. 2200")
build_path = /obj/machinery/computer/pandemic
origin_tech = "programming=2;biotech=2"
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
/obj/item/weapon/circuitboard/scan_consolenew
name = T_BOARD("DNA machine")
build_path = /obj/machinery/computer/scan_consolenew
origin_tech = "programming=2;biotech=2"
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
/obj/item/weapon/circuitboard/communications
name = T_BOARD("command and communications console")
build_path = /obj/machinery/computer/communications
origin_tech = "programming=2;magnets=2"
origin_tech = list(TECH_DATA = 2, TECH_MAGNET = 2)
/obj/item/weapon/circuitboard/card
name = T_BOARD("ID card modification console")
@@ -47,7 +47,7 @@
/obj/item/weapon/circuitboard/teleporter
name = T_BOARD("teleporter control console")
build_path = /obj/machinery/computer/teleporter
origin_tech = "programming=2;bluespace=2"
origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 2)
/obj/item/weapon/circuitboard/secure_data
name = T_BOARD("security records console")
@@ -72,22 +72,22 @@
/obj/item/weapon/circuitboard/robotics
name = T_BOARD("robotics control console")
build_path = /obj/machinery/computer/robotics
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
/obj/item/weapon/circuitboard/drone_control
name = T_BOARD("drone control console")
build_path = /obj/machinery/computer/drone_control
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
/obj/item/weapon/circuitboard/cloning
name = T_BOARD("cloning control console")
build_path = /obj/machinery/computer/cloning
origin_tech = "programming=3;biotech=3"
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
/obj/item/weapon/circuitboard/arcade
name = T_BOARD("arcade machine")
build_path = /obj/machinery/computer/arcade
origin_tech = "programming=1"
origin_tech = list(TECH_DATA = 1)
/obj/item/weapon/circuitboard/turbine_control
name = T_BOARD("turbine control console")
@@ -96,7 +96,7 @@
/obj/item/weapon/circuitboard/solar_control
name = T_BOARD("solar control console")
build_path = /obj/machinery/power/solar_control
origin_tech = "programming=2;powerstorage=2"
origin_tech = list(TECH_DATA = 2, TECH_POWER = 2)
/obj/item/weapon/circuitboard/powermonitor
name = T_BOARD("power monitoring console")
@@ -129,17 +129,17 @@
/obj/item/weapon/circuitboard/crew
name = T_BOARD("crew monitoring console")
build_path = /obj/machinery/computer/crew
origin_tech = "programming=3;biotech=2;magnets=2"
origin_tech = list(TECH_DATA = 3, TECH_BIO = 2, TECH_MAGNET = 2)
/obj/item/weapon/circuitboard/mech_bay_power_console
name = T_BOARD("mech bay power control console")
build_path = /obj/machinery/computer/mech_bay_power_console
origin_tech = "programming=2;powerstorage=3"
origin_tech = list(TECH_DATA = 2, TECH_POWER = 3)
/obj/item/weapon/circuitboard/operating
name = T_BOARD("patient monitoring console")
build_path = /obj/machinery/computer/operating
origin_tech = "programming=2;biotech=2"
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
/obj/item/weapon/circuitboard/curefab
name = T_BOARD("cure fabricator")
@@ -152,39 +152,39 @@
/obj/item/weapon/circuitboard/ordercomp
name = T_BOARD("supply ordering console")
build_path = /obj/machinery/computer/ordercomp
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
/obj/item/weapon/circuitboard/mining_shuttle
name = T_BOARD("mining shuttle console")
build_path = /obj/machinery/computer/shuttle_control/mining
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
/obj/item/weapon/circuitboard/engineering_shuttle
name = T_BOARD("engineering shuttle console")
build_path = /obj/machinery/computer/shuttle_control/engineering
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
/obj/item/weapon/circuitboard/research_shuttle
name = T_BOARD("research shuttle console")
build_path = /obj/machinery/computer/shuttle_control/research
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
/obj/item/weapon/circuitboard/aifixer
name = T_BOARD("AI integrity restorer")
build_path = /obj/machinery/computer/aifixer
origin_tech = "programming=3;biotech=2"
origin_tech = list(TECH_DATA = 3, TECH_BIO = 2)
/obj/item/weapon/circuitboard/area_atmos
name = T_BOARD("area air control console")
build_path = /obj/machinery/computer/area_atmos
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
/obj/item/weapon/circuitboard/prison_shuttle
name = T_BOARD("prison shuttle control console")
build_path = /obj/machinery/computer/prison_shuttle
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
/obj/item/weapon/circuitboard/rcon_console
name = T_BOARD("RCON remote control console")
build_path = /obj/machinery/computer/rcon
origin_tech = "programming=4;engineering=3;powerstorage=5"
origin_tech = list(TECH_DATA = 4, TECH_ENGINERING = 3, TECH_POWER = 5)

View File

@@ -5,7 +5,7 @@
/obj/item/weapon/circuitboard/supplycomp
name = T_BOARD("supply control console")
build_path = /obj/machinery/computer/supplycomp
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
var/contraband_enabled = 0
/obj/item/weapon/circuitboard/supplycomp/construct(var/obj/machinery/computer/supplycomp/SC)

View File

@@ -5,14 +5,14 @@
/obj/item/weapon/circuitboard/comm_monitor
name = T_BOARD("telecommunications monitor console")
build_path = /obj/machinery/computer/telecomms/monitor
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
/obj/item/weapon/circuitboard/comm_server
name = T_BOARD("telecommunications server monitor console")
build_path = /obj/machinery/computer/telecomms/server
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
/obj/item/weapon/circuitboard/comm_traffic
name = T_BOARD("telecommunications traffic control console")
build_path = /obj/machinery/computer/telecomms/traffic
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)

View File

@@ -6,7 +6,7 @@
name = T_BOARD("biogenerator")
build_path = "/obj/machinery/biogenerator"
board_type = "machine"
origin_tech = "programming=2"
origin_tech = list(TECH_DATA = 2)
frame_desc = "Requires 1 Manipulator, and 1 Matter Bin."
req_components = list(
"/obj/item/weapon/stock_parts/matter_bin" = 1,

View File

@@ -6,7 +6,7 @@
name = T_BOARD("clone pod")
build_path = "/obj/machinery/clonepod"
board_type = "machine"
origin_tech = "programming=3;biotech=3"
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
frame_desc = "Requires 2 Manipulator, 2 Scanning Module, 2 pieces of cable and 1 Console Screen."
req_components = list(
"/obj/item/stack/cable_coil" = 2,
@@ -18,7 +18,7 @@
name = T_BOARD("cloning scanner")
build_path = "/obj/machinery/dna_scannernew"
board_type = "machine"
origin_tech = "programming=2;biotech=2"
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
frame_desc = "Requires 1 Scanning module, 1 Micro Manipulator, 1 Micro-Laser, 2 pieces of cable and 1 Console Screen."
req_components = list(
"/obj/item/weapon/stock_parts/scanning_module" = 1,

View File

@@ -6,7 +6,7 @@
name = T_BOARD("mining drill head")
build_path = "/obj/machinery/mining/drill"
board_type = "machine"
origin_tech = "programming=1;engineering=1"
origin_tech = list(TECH_DATA = 1, TECH_ENGINERING = 1)
frame_desc = "Requires 1 capacitor, 1 cell, 1 matter bin, and 1 micro laser."
req_components = list(
"/obj/item/weapon/stock_parts/capacitor" = 1,

View File

@@ -6,7 +6,7 @@
name = T_BOARD("PACMAN-type generator")
build_path = "/obj/machinery/power/port_gen/pacman"
board_type = "machine"
origin_tech = "programming=3;powerstorage=3;phorontech=3;engineering=3"
origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINERING = 3)
frame_desc = "Requires 1 Matter Bin, 1 Micro-Laser, 2 Pieces of Cable, and 1 Capacitor."
req_components = list(
"/obj/item/weapon/stock_parts/matter_bin" = 1,
@@ -17,9 +17,9 @@
/obj/item/weapon/circuitboard/pacman/super
name = T_BOARD("SUPERPACMAN-type generator")
build_path = "/obj/machinery/power/port_gen/pacman/super"
origin_tech = "programming=3;powerstorage=4;engineering=4"
origin_tech = list(TECH_DATA = 3, TECH_POWER = 4, TECH_ENGINERING = 4)
/obj/item/weapon/circuitboard/pacman/mrs
name = T_BOARD("MRSPACMAN-type generator")
build_path = "/obj/machinery/power/port_gen/pacman/mrs"
origin_tech = "programming=3;powerstorage=5;engineering=5"
origin_tech = list(TECH_DATA = 3, TECH_POWER = 5, TECH_ENGINERING = 5)

View File

@@ -6,7 +6,7 @@
name = T_BOARD("superconductive magnetic energy storage")
build_path = "/obj/machinery/power/smes/buildable"
board_type = "machine"
origin_tech = "powerstorage=6;engineering=4"
origin_tech = list(TECH_POWER = 6, TECH_ENGINERING = 4)
frame_desc = "Requires 1 superconducting magnetic coil and 30 wires."
req_components = list("/obj/item/weapon/smes_coil" = 1, "/obj/item/stack/cable_coil" = 30)
@@ -14,7 +14,7 @@
name = T_BOARD("battery rack PSU")
build_path = "/obj/machinery/power/smes/batteryrack"
board_type = "machine"
origin_tech = "powerstorage=3;engineering=2"
origin_tech = list(TECH_POWER = 3, TECH_ENGINERING = 2)
frame_desc = "Requires 3 power cells."
req_components = list("/obj/item/weapon/cell" = 3)

View File

@@ -6,7 +6,7 @@
name = T_BOARD("cyborg recharging station")
build_path = "/obj/machinery/recharge_station"
board_type = "machine"
origin_tech = "programming=3;engineering=3"
origin_tech = list(TECH_DATA = 3, TECH_ENGINERING = 3)
frame_desc = "Requires 2 Manipulator, 2 Capacitor, 1 Cell, and 5 pieces of cable."
req_components = list(
"/obj/item/stack/cable_coil" = 5,

View File

@@ -6,7 +6,7 @@ obj/item/weapon/circuitboard/rdserver
name = T_BOARD("R&D server")
build_path = "/obj/machinery/r_n_d/server"
board_type = "machine"
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
frame_desc = "Requires 2 pieces of cable, and 1 Scanning Module."
req_components = list(
"/obj/item/stack/cable_coil" = 2,
@@ -16,7 +16,7 @@ obj/item/weapon/circuitboard/rdserver
name = T_BOARD("destructive analyzer")
build_path = "/obj/machinery/r_n_d/destructive_analyzer"
board_type = "machine"
origin_tech = "magnets=2;engineering=2;programming=2"
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINERING = 2, TECH_DATA = 2)
frame_desc = "Requires 1 Scanning Module, 1 Micro Manipulator, and 1 Micro-Laser."
req_components = list(
"/obj/item/weapon/stock_parts/scanning_module" = 1,
@@ -27,7 +27,7 @@ obj/item/weapon/circuitboard/rdserver
name = T_BOARD("autolathe")
build_path = "/obj/machinery/autolathe"
board_type = "machine"
origin_tech = "engineering=2;programming=2"
origin_tech = list(TECH_ENGINERING = 2, TECH_DATA = 2)
frame_desc = "Requires 3 Matter Bins, 1 Micro Manipulator, and 1 Console Screen."
req_components = list(
"/obj/item/weapon/stock_parts/matter_bin" = 3,
@@ -38,7 +38,7 @@ obj/item/weapon/circuitboard/rdserver
name = T_BOARD("protolathe")
build_path = "/obj/machinery/r_n_d/protolathe"
board_type = "machine"
origin_tech = "engineering=2;programming=2"
origin_tech = list(TECH_ENGINERING = 2, TECH_DATA = 2)
frame_desc = "Requires 2 Matter Bins, 2 Micro Manipulators, and 2 Beakers."
req_components = list(
"/obj/item/weapon/stock_parts/matter_bin" = 2,
@@ -50,7 +50,7 @@ obj/item/weapon/circuitboard/rdserver
name = T_BOARD("circuit imprinter")
build_path = "/obj/machinery/r_n_d/circuit_imprinter"
board_type = "machine"
origin_tech = "engineering=2;programming=2"
origin_tech = list(TECH_ENGINERING = 2, TECH_DATA = 2)
frame_desc = "Requires 1 Matter Bin, 1 Micro Manipulator, and 2 Beakers."
req_components = list(
"/obj/item/weapon/stock_parts/matter_bin" = 1,
@@ -61,7 +61,7 @@ obj/item/weapon/circuitboard/rdserver
name = "Circuit board (Exosuit Fabricator)"
build_path = "/obj/machinery/mecha_part_fabricator"
board_type = "machine"
origin_tech = "programming=3;engineering=3"
origin_tech = list(TECH_DATA = 3, TECH_ENGINERING = 3)
frame_desc = "Requires 2 Matter Bins, 1 Micro Manipulator, 1 Micro-Laser and 1 Console Screen."
req_components = list(
"/obj/item/weapon/stock_parts/matter_bin" = 2,

View File

@@ -6,7 +6,7 @@
name = T_BOARD("hull shield generator")
board_type = "machine"
build_path = "/obj/machinery/shield_gen/external"
origin_tech = "bluespace=4;phorontech=3"
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Transmitter, 5 Pieces of cable, 1 Subspace Crystal, 1 Subspace Amplifier and 1 Console Screen."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
@@ -20,7 +20,7 @@
name = T_BOARD("bubble shield generator")
board_type = "machine"
build_path = "/obj/machinery/shield_gen"
origin_tech = "bluespace=4;phorontech=3"
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Transmitter, 5 Pieces of cable, 1 Subspace Crystal, 1 Subspace Amplifier and 1 Console Screen."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
@@ -34,7 +34,7 @@
name = T_BOARD("shield capacitor")
board_type = "machine"
build_path = "/obj/machinery/shield_capacitor"
origin_tech = "magnets=3;powerstorage=4"
origin_tech = list(TECH_MAGNET = 3, TECH_POWER = 4)
frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Filter, 5 Pieces of cable, 1 Subspace Treatment disk, 1 Subspace Analyzer and 1 Console Screen."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,

View File

@@ -8,7 +8,7 @@
/obj/item/weapon/circuitboard/telecomms/receiver
name = T_BOARD("subspace receiver")
build_path = "/obj/machinery/telecomms/receiver"
origin_tech = "programming=4;engineering=3;bluespace=2"
origin_tech = list(TECH_DATA = 4, TECH_ENGINERING = 3, TECH_BLUESPACE = 2)
frame_desc = "Requires 1 Subspace Ansible, 1 Hyperwave Filter, 2 Micro Manipulators, and 1 Micro-Laser."
req_components = list(
"/obj/item/weapon/stock_parts/subspace/ansible" = 1,
@@ -19,7 +19,7 @@
/obj/item/weapon/circuitboard/telecomms/hub
name = T_BOARD("hub mainframe")
build_path = "/obj/machinery/telecomms/hub"
origin_tech = "programming=4;engineering=4"
origin_tech = list(TECH_DATA = 4, TECH_ENGINERING = 4)
frame_desc = "Requires 2 Micro Manipulators, 2 Cable Coil and 2 Hyperwave Filter."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 2,
@@ -29,7 +29,7 @@
/obj/item/weapon/circuitboard/telecomms/relay
name = T_BOARD("relay mainframe")
build_path = "/obj/machinery/telecomms/relay"
origin_tech = "programming=3;engineering=4;bluespace=3"
origin_tech = list(TECH_DATA = 3, TECH_ENGINERING = 4, TECH_BLUESPACE = 3)
frame_desc = "Requires 2 Micro Manipulators, 2 Cable Coil and 2 Hyperwave Filters."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 2,
@@ -39,7 +39,7 @@
/obj/item/weapon/circuitboard/telecomms/bus
name = T_BOARD("bus mainframe")
build_path = "/obj/machinery/telecomms/bus"
origin_tech = "programming=4;engineering=4"
origin_tech = list(TECH_DATA = 4, TECH_ENGINERING = 4)
frame_desc = "Requires 2 Micro Manipulators, 1 Cable Coil and 1 Hyperwave Filter."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 2,
@@ -49,7 +49,7 @@
/obj/item/weapon/circuitboard/telecomms/processor
name = T_BOARD("processor unit")
build_path = "/obj/machinery/telecomms/processor"
origin_tech = "programming=4;engineering=4"
origin_tech = list(TECH_DATA = 4, TECH_ENGINERING = 4)
frame_desc = "Requires 3 Micro Manipulators, 1 Hyperwave Filter, 2 Treatment Disks, 1 Wavelength Analyzer, 2 Cable Coils and 1 Subspace Amplifier."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 3,
@@ -62,7 +62,7 @@
/obj/item/weapon/circuitboard/telecomms/server
name = T_BOARD("telecommunication server")
build_path = "/obj/machinery/telecomms/server"
origin_tech = "programming=4;engineering=4"
origin_tech = list(TECH_DATA = 4, TECH_ENGINERING = 4)
frame_desc = "Requires 2 Micro Manipulators, 1 Cable Coil and 1 Hyperwave Filter."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 2,
@@ -72,7 +72,7 @@
/obj/item/weapon/circuitboard/telecomms/broadcaster
name = T_BOARD("subspace broadcaster")
build_path = "/obj/machinery/telecomms/broadcaster"
origin_tech = "programming=4;engineering=4;bluespace=2"
origin_tech = list(TECH_DATA = 4, TECH_ENGINERING = 4, TECH_BLUESPACE = 2)
frame_desc = "Requires 2 Micro Manipulators, 1 Cable Coil, 1 Hyperwave Filter, 1 Ansible Crystal and 2 High-Powered Micro-Lasers. "
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 2,

View File

@@ -16,7 +16,7 @@
/obj/item/weapon/circuitboard/unary_atmos/heater
name = T_BOARD("gas heating system")
build_path = "/obj/machinery/atmospherics/unary/heater"
origin_tech = "powerstorage=2;engineering=1"
origin_tech = list(TECH_POWER = 2, TECH_ENGINERING = 1)
frame_desc = "Requires 5 Pieces of Cable, 1 Matter Bin, and 2 Capacitors."
req_components = list(
"/obj/item/stack/cable_coil" = 5,
@@ -26,7 +26,7 @@
/obj/item/weapon/circuitboard/unary_atmos/cooler
name = T_BOARD("gas cooling system")
build_path = "/obj/machinery/atmospherics/unary/freezer"
origin_tech = "magnets=2;engineering=2"
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINERING = 2)
frame_desc = "Requires 2 Pieces of Cable, 1 Matter Bin, 1 Micro Manipulator, and 2 Capacitors."
req_components = list(
"/obj/item/stack/cable_coil" = 2,

View File

@@ -12,7 +12,7 @@
/obj/item/weapon/circuitboard/mecha/ripley
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
/obj/item/weapon/circuitboard/mecha/ripley/peripherals
name = T_BOARD_MECHA("Ripley peripherals control")
@@ -24,7 +24,7 @@
/obj/item/weapon/circuitboard/mecha/gygax
origin_tech = "programming=4"
origin_tech = list(TECH_DATA = 4)
/obj/item/weapon/circuitboard/mecha/gygax/peripherals
name = T_BOARD_MECHA("Gygax peripherals control")
@@ -33,7 +33,7 @@
/obj/item/weapon/circuitboard/mecha/gygax/targeting
name = T_BOARD_MECHA("Gygax weapon control and targeting")
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
origin_tech = list(TECH_DATA = 4, TECH_COMBAT = 4)
/obj/item/weapon/circuitboard/mecha/gygax/main
name = T_BOARD_MECHA("Gygax central control")
@@ -41,7 +41,7 @@
/obj/item/weapon/circuitboard/mecha/durand
origin_tech = "programming=4"
origin_tech = list(TECH_DATA = 4)
/obj/item/weapon/circuitboard/mecha/durand/peripherals
name = T_BOARD_MECHA("Durand peripherals control")
@@ -50,7 +50,7 @@
/obj/item/weapon/circuitboard/mecha/durand/targeting
name = T_BOARD_MECHA("Durand weapon control and targeting")
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
origin_tech = list(TECH_DATA = 4, TECH_COMBAT = 4)
/obj/item/weapon/circuitboard/mecha/durand/main
name = T_BOARD_MECHA("Durand central control")
@@ -58,7 +58,7 @@
/obj/item/weapon/circuitboard/mecha/honker
origin_tech = "programming=4"
origin_tech = list(TECH_DATA = 4)
/obj/item/weapon/circuitboard/mecha/honker/peripherals
name = T_BOARD_MECHA("H.O.N.K peripherals control")
@@ -74,7 +74,7 @@
/obj/item/weapon/circuitboard/mecha/odysseus
origin_tech = "programming=3"
origin_tech = list(TECH_DATA = 3)
/obj/item/weapon/circuitboard/mecha/odysseus/peripherals
name = T_BOARD_MECHA("Odysseus peripherals control")

View File

@@ -6,5 +6,5 @@
/obj/item/weapon/circuitboard/aicore
name = T_BOARD("AI core")
origin_tech = "programming=4;biotech=2"
origin_tech = list(TECH_DATA = 4, TECH_BIO = 2)
board_type = "other"

View File

@@ -7,7 +7,7 @@
item_state = "plasticx"
flags = NOBLUDGEON
w_class = 2.0
origin_tech = "syndicate=2"
origin_tech = list(TECH_ILLEGAL = 2)
var/datum/wires/explosive/c4/wires = null
var/timer = 10
var/atom/target = null

View File

@@ -11,7 +11,7 @@
throw_range = 5
w_class = 3.0
matter = list("metal" = 500)
origin_tech = "combat=1;phorontech=1"
origin_tech = list(TECH_COMBAT = 1, TECH_PHORON = 1)
var/status = 0
var/throw_amount = 100
var/lit = 0 //on or off

View File

@@ -134,7 +134,6 @@
prime()
if(!stage || stage<2) return
//if(prob(reliability))
var/has_reagents = 0
for(var/obj/item/weapon/reagent_containers/glass/G in beakers)
if(G.reagents.total_volume) has_reagents = 1
@@ -175,7 +174,7 @@
desc = "An oversized grenade that affects a larger area."
icon_state = "large_grenade"
allowed_containers = list(/obj/item/weapon/reagent_containers/glass)
origin_tech = "combat=3;materials=3"
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
affected_area = 4
/obj/item/weapon/grenade/chem_grenade/metalfoam

View File

@@ -2,7 +2,7 @@
name = "classic emp grenade"
icon_state = "emp"
item_state = "emp"
origin_tech = "materials=2;magnets=3"
origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 3)
prime()
..()

View File

@@ -2,7 +2,7 @@
name = "flashbang"
icon_state = "flashbang"
item_state = "flashbang"
origin_tech = "materials=2;combat=1"
origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 1)
var/banglet = 0
prime()

View File

@@ -4,7 +4,7 @@
icon = 'icons/obj/grenade.dmi'
icon_state = "delivery"
item_state = "flashbang"
origin_tech = "materials=3;magnets=4"
origin_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 4)
var/banglet = 0
var/spawner_type = null // must be an object path
var/deliveryamt = 1 // amount of type to deliver
@@ -35,10 +35,10 @@
name = "manhack delivery grenade"
spawner_type = /mob/living/simple_animal/hostile/viscerator
deliveryamt = 5
origin_tech = "materials=3;magnets=4;syndicate=4"
origin_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 4, TECH_ILLEGAL = 4)
/obj/item/weapon/grenade/spawnergrenade/spesscarp
name = "carp delivery grenade"
spawner_type = /mob/living/simple_animal/hostile/carp
deliveryamt = 5
origin_tech = "materials=3;magnets=4;syndicate=4"
origin_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 4, TECH_ILLEGAL = 4)

View File

@@ -11,7 +11,7 @@
throw_speed = 2
throw_range = 5
matter = list("metal" = 500)
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
var/dispenser = 0
var/breakouttime = 1200 //Deciseconds = 120s = 2 minutes
var/cuff_sound = 'sound/weapons/handcuffs.ogg'

View File

@@ -23,7 +23,7 @@
throw_speed = 3
throw_range = 5
flags = CONDUCT
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
attack_verb = list("attacked", "stabbed", "poked")
sharp = 0
@@ -146,7 +146,7 @@
throw_speed = 3
throw_range = 6
matter = list("metal" = 12000)
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
suicide_act(mob/user)
@@ -176,7 +176,7 @@
throw_speed = 3
throw_range = 6
matter = list("metal" = 12000)
origin_tech = "materials=1"
origin_tech = list(TECH_MATERIAL = 1)
attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
sharp = 1
edge = 1

View File

@@ -74,7 +74,7 @@
throw_range = 5
w_class = 3
flags = CONDUCT | NOSHIELD | NOBLOODY
origin_tech = "magnets=3;combat=4"
origin_tech = list(TECH_MAGNET = 3, TECH_COMBAT = 4)
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
sharp = 1
edge = 1
@@ -110,7 +110,7 @@
throw_range = 5
w_class = 2
flags = NOSHIELD | NOBLOODY
origin_tech = "magnets=3;syndicate=4"
origin_tech = list(TECH_MAGNET = 3, TECH_ILLEGAL = 4)
sharp = 1
edge = 1

View File

@@ -8,7 +8,7 @@
force = 10
throwforce = 7
w_class = 3
origin_tech = "combat=4"
origin_tech = list(TECH_COMBAT = 4)
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
suicide_act(mob/user)

View File

@@ -4,7 +4,7 @@
icon = 'icons/obj/power.dmi'
icon_state = "cell"
item_state = "cell"
origin_tech = "powerstorage=1"
origin_tech = list(TECH_POWER = 1)
force = 5.0
throwforce = 5.0
throw_speed = 3
@@ -25,7 +25,7 @@
/obj/item/weapon/cell/crap
name = "\improper Nanotrasen brand rechargable AA battery"
desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT
origin_tech = "powerstorage=0"
origin_tech = list(TECH_POWER = 0)
maxcharge = 500
matter = list("metal" = 700, "glass" = 40)
@@ -35,7 +35,7 @@
/obj/item/weapon/cell/secborg
name = "security borg rechargable D battery"
origin_tech = "powerstorage=0"
origin_tech = list(TECH_POWER = 0)
maxcharge = 600 //600 max charge / 100 charge per shot = six shots
matter = list("metal" = 700, "glass" = 40)
@@ -45,13 +45,13 @@
/obj/item/weapon/cell/apc
name = "heavy-duty power cell"
origin_tech = "powerstorage=1"
origin_tech = list(TECH_POWER = 1)
maxcharge = 5000
matter = list("metal" = 700, "glass" = 50)
/obj/item/weapon/cell/high
name = "high-capacity power cell"
origin_tech = "powerstorage=2"
origin_tech = list(TECH_POWER = 2)
icon_state = "hcell"
maxcharge = 10000
matter = list("metal" = 700, "glass" = 60)
@@ -62,7 +62,7 @@
/obj/item/weapon/cell/super
name = "super-capacity power cell"
origin_tech = "powerstorage=5"
origin_tech = list(TECH_POWER = 5)
icon_state = "scell"
maxcharge = 20000
matter = list("metal" = 700, "glass" = 70)
@@ -74,7 +74,7 @@
/obj/item/weapon/cell/hyper
name = "hyper-capacity power cell"
origin_tech = "powerstorage=6"
origin_tech = list(TECH_POWER = 6)
icon_state = "hpcell"
maxcharge = 30000
matter = list("metal" = 700, "glass" = 80)
@@ -96,7 +96,7 @@
/obj/item/weapon/cell/potato
name = "potato battery"
desc = "A rechargable starch based power cell."
origin_tech = "powerstorage=1"
origin_tech = list(TECH_POWER = 1)
icon = 'icons/obj/power.dmi' //'icons/obj/harvest.dmi'
icon_state = "potato_cell" //"potato_battery"
charge = 100
@@ -107,7 +107,7 @@
/obj/item/weapon/cell/slime
name = "charged slime core"
desc = "A yellow slime core infused with phoron, it crackles with power."
origin_tech = "powerstorage=2;biotech=4"
origin_tech = list(TECH_POWER = 2, TECH_BIO = 4)
icon = 'icons/mob/slimes.dmi' //'icons/obj/harvest.dmi'
icon_state = "yellow slime extract" //"potato_battery"
maxcharge = 10000

View File

@@ -8,7 +8,7 @@
item_state = "paper"
throw_speed = 4
throw_range = 20
origin_tech = "bluespace=4"
origin_tech = list(TECH_BLUESPACE = 4)
/obj/item/weapon/teleportation_scroll/attack_self(mob/user as mob)
user.set_machine(src)

View File

@@ -14,7 +14,7 @@
throw_range = 4
w_class = 4.0
matter = list("glass" = 7500, "metal" = 1000)
origin_tech = "materials=2"
origin_tech = list(TECH_MATERIAL = 2)
attack_verb = list("shoved", "bashed")
var/cooldown = 0 //shield bash cooldown. based on world.time
@@ -45,7 +45,7 @@
throw_speed = 1
throw_range = 4
w_class = 2
origin_tech = "materials=4;magnets=3;syndicate=4"
origin_tech = list(TECH_MATERIAL = 4, TECH_MAGNET = 3, TECH_ILLEGAL = 4)
attack_verb = list("shoved", "bashed")
var/active = 0
@@ -94,7 +94,7 @@
throw_speed = 2
throw_range = 10
w_class = 2.0
origin_tech = "magnets=3;syndicate=4"
origin_tech = list(TECH_MAGNET = 3, TECH_ILLEGAL = 4)
/obj/item/weapon/cloaking_device/attack_self(mob/user as mob)

View File

@@ -37,7 +37,7 @@
/obj/item/weapon/storage/backpack/holding
name = "bag of holding"
desc = "A backpack that opens into a localized pocket of Blue Space."
origin_tech = "bluespace=4"
origin_tech = list(TECH_BLUESPACE = 4)
icon_state = "holdingpack"
max_w_class = 4
max_storage_space = 56
@@ -47,25 +47,10 @@
return
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(crit_fail)
user << "\red The Bluespace generator isn't working."
return
if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail)
if(istype(W, /obj/item/weapon/storage/backpack/holding))
user << "\red The Bluespace interfaces of the two devices conflict and malfunction."
del(W)
return
/* //BoH+BoH=Singularity, commented out.
if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail)
investigate_log("has become a singularity. Caused by [user.key]","singulo")
user << "\red The Bluespace interfaces of the two devices catastrophically malfunction!"
del(W)
var/obj/machinery/singularity/singulo = new /obj/machinery/singularity (get_turf(src))
singulo.energy = 300 //should make it a bit bigger~
message_admins("[key_name_admin(user)] detonated a bag of holding")
log_game("[key_name(user)] detonated a bag of holding")
del(src)
return
*/
..()
//Please don't clutter the parent storage item with stupid hacks.
@@ -74,18 +59,6 @@
return 1
return ..()
proc/failcheck(mob/user as mob)
if (prob(src.reliability)) return 1 //No failure
if (prob(src.reliability))
user << "\red The Bluespace portal resists your attempt to add another item." //light failure
else
user << "\red The Bluespace generator malfunctions!"
for (var/obj/O in src.contents) //it broke, delete what was in it
del(O)
crit_fail = 1
icon_state = "brokenpack"
/obj/item/weapon/storage/backpack/santabag
name = "\improper Santa's gift bag"
desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!"

View File

@@ -12,7 +12,7 @@
w_class = 4
max_w_class = 3
max_storage_space = 14 //can hold 7 w_class-2 items or up to 3 w_class-3 items (with 1 w_class-2 item as change).
origin_tech = "combat=1"
origin_tech = list(TECH_COMBAT = 1)
attack_verb = list("robusted")
/obj/item/weapon/storage/toolbox/emergency
@@ -67,7 +67,7 @@
name = "suspicious looking toolbox"
icon_state = "syndicate"
item_state = "toolbox_syndi"
origin_tech = "combat=1;syndicate=1"
origin_tech = list(TECH_COMBAT = 1, TECH_ILLEGAL = 1)
force = 7.0
New()

View File

@@ -10,7 +10,7 @@
edge = 0
throwforce = 7
w_class = 3
origin_tech = "combat=2"
origin_tech = list(TECH_COMBAT = 2)
attack_verb = list("beaten")
var/stunforce = 0
var/agonyforce = 60

View File

@@ -19,7 +19,7 @@
matter = list("metal" = 10000, "glass" = 5000)
flags = CONDUCT
w_class = 2.0
origin_tech = "materials=1;biotech=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
/*
* Hemostat
@@ -32,7 +32,7 @@
matter = list("metal" = 5000, "glass" = 2500)
flags = CONDUCT
w_class = 2.0
origin_tech = "materials=1;biotech=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
attack_verb = list("attacked", "pinched")
/*
@@ -46,7 +46,7 @@
matter = list("metal" = 5000, "glass" = 2500)
flags = CONDUCT
w_class = 2.0
origin_tech = "materials=1;biotech=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
attack_verb = list("burnt")
/*
@@ -62,7 +62,7 @@
flags = CONDUCT
force = 15.0
w_class = 2.0
origin_tech = "materials=1;biotech=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
attack_verb = list("drilled")
suicide_act(mob/user)
@@ -87,7 +87,7 @@
throw_speed = 3
throw_range = 5
matter = list("metal" = 10000, "glass" = 5000)
origin_tech = "materials=1;biotech=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
suicide_act(mob/user)
@@ -141,7 +141,7 @@
throw_speed = 3
throw_range = 5
matter = list("metal" = 20000,"glass" = 10000)
origin_tech = "materials=1;biotech=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
attack_verb = list("attacked", "slashed", "sawed", "cut")
sharp = 1
edge = 1
@@ -161,7 +161,7 @@
icon_state = "fixovein"
force = 0
throwforce = 1.0
origin_tech = "materials=1;biotech=3"
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 3)
w_class = 2.0
var/usage_amount = 10

View File

@@ -22,7 +22,7 @@
throw_speed = 4
throw_range = 20
matter = list("metal" = 400)
origin_tech = "magnets=1"
origin_tech = list(TECH_MAGNET = 1)
/obj/item/weapon/locator/attack_self(mob/user as mob)
user.set_machine(src)
@@ -133,7 +133,7 @@ Frequency:
throw_speed = 3
throw_range = 5
matter = list("metal" = 10000)
origin_tech = "magnets=1;bluespace=3"
origin_tech = list(TECH_MAGNET = 1, TECH_BLUESPACE = 3)
/obj/item/weapon/hand_tele/attack_self(mob/user as mob)
var/turf/current_location = get_turf(user)//What turf is the user on?

View File

@@ -25,7 +25,7 @@
throwforce = 7.0
w_class = 2.0
matter = list("metal" = 150)
origin_tech = "materials=1;engineering=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINERING = 1)
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
@@ -103,7 +103,7 @@
throw_range = 9
w_class = 2.0
matter = list("metal" = 80)
origin_tech = "materials=1;engineering=1"
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINERING = 1)
attack_verb = list("pinched", "nipped")
sharp = 1
edge = 1
@@ -147,7 +147,7 @@
matter = list("metal" = 70, "glass" = 30)
//R&D tech level
origin_tech = "engineering=1"
origin_tech = list(TECH_ENGINERING = 1)
//Welding tool specific stuff
var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
@@ -404,21 +404,21 @@
name = "industrial welding tool"
max_fuel = 40
matter = list("metal" = 70, "glass" = 60)
origin_tech = "engineering=2"
origin_tech = list(TECH_ENGINERING = 2)
/obj/item/weapon/weldingtool/hugetank
name = "upgraded welding tool"
max_fuel = 80
w_class = 3.0
matter = list("metal" = 70, "glass" = 120)
origin_tech = "engineering=3"
origin_tech = list(TECH_ENGINERING = 3)
/obj/item/weapon/weldingtool/experimental
name = "experimental welding tool"
max_fuel = 40
w_class = 3.0
matter = list("metal" = 70, "glass" = 120)
origin_tech = "engineering=4;phorontech=3"
origin_tech = list(TECH_ENGINERING = 4, TECH_PHORON = 3)
var/last_gen = 0
@@ -445,7 +445,7 @@
item_state = "crowbar"
w_class = 2.0
matter = list("metal" = 50)
origin_tech = "engineering=1"
origin_tech = list(TECH_ENGINERING = 1)
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
/obj/item/weapon/crowbar/red

View File

@@ -169,7 +169,7 @@
wieldsound = 'sound/weapons/saberon.ogg'
unwieldsound = 'sound/weapons/saberoff.ogg'
flags = NOSHIELD
origin_tech = "magnets=3;syndicate=4"
origin_tech = list(TECH_MAGNET = 3, TECH_ILLEGAL = 4)
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
sharp = 1
edge = 1

View File

@@ -2,9 +2,7 @@
//Used to store information about the contents of the object.
var/list/matter
var/origin_tech = null //Used by R&D to determine what research bonuses it grants.
var/reliability = 100 //Used by SOME devices to determine how reliable they are.
var/crit_fail = 0
var/list/origin_tech = null //Used by R&D to determine what research bonuses it grants.
var/unacidable = 0 //universal "unacidabliness" var, here so you can use it in any obj.
animate_movement = 2
var/throwforce = 1

View File

@@ -9,7 +9,7 @@
throwforce = 2
throw_speed = 3
throw_range = 10
origin_tech = "magnets=1"
origin_tech = list(TECH_MAGNET = 1)
var/secured = 1
var/list/attached_overlays = null

View File

@@ -3,7 +3,7 @@
desc = "A small electronic device able to ignite combustable substances."
icon_state = "igniter"
matter = list("metal" = 500, "glass" = 50, "waste" = 10)
origin_tech = "magnets=1"
origin_tech = list(TECH_MAGNET = 1)
secured = 1
wires = WIRE_RECEIVE

View File

@@ -5,7 +5,7 @@
desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted."
icon_state = "infrared"
matter = list("metal" = 1000, "glass" = 500, "waste" = 100)
origin_tech = "magnets=2"
origin_tech = list(TECH_MAGNET = 2)
wires = WIRE_PULSE

View File

@@ -3,7 +3,7 @@
desc = "A handy little spring-loaded trap for catching pesty rodents."
icon_state = "mousetrap"
matter = list("metal" = 100, "waste" = 10)
origin_tech = "combat=1"
origin_tech = list(TECH_COMBAT = 1)
var/armed = 0

View File

@@ -3,7 +3,7 @@
desc = "Used for scanning and alerting when someone enters a certain proximity."
icon_state = "prox"
matter = list("metal" = 800, "glass" = 200, "waste" = 50)
origin_tech = "magnets=1"
origin_tech = list(TECH_MAGNET = 1)
wires = WIRE_PULSE

View File

@@ -4,7 +4,7 @@
icon_state = "signaller"
item_state = "signaler"
matter = list("metal" = 1000, "glass" = 200, "waste" = 100)
origin_tech = "magnets=1"
origin_tech = list(TECH_MAGNET = 1)
wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE
secured = 1

View File

@@ -3,7 +3,7 @@
desc = "Used to time things. Works well with contraptions which has to count down. Tick tock."
icon_state = "timer"
matter = list("metal" = 500, "glass" = 50, "waste" = 10)
origin_tech = "magnets=1"
origin_tech = list(TECH_MAGNET = 1)
wires = WIRE_PULSE

View File

@@ -3,7 +3,7 @@
desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated."
icon_state = "voice"
matter = list("metal" = 500, "glass" = 50, "waste" = 10)
origin_tech = "magnets=1"
origin_tech = list(TECH_MAGNET = 1)
var/listening = 0
var/recorded //the activation message

View File

@@ -212,8 +212,6 @@ BLIND // can't see anything
cell.charge -= 1000 / severity
if (cell.charge < 0)
cell.charge = 0
if(cell.reliability != 100 && prob(50/severity))
cell.reliability -= 10 / severity
..()
// Called just before an attack_hand(), in mob/UnarmedAttack()

View File

@@ -33,7 +33,7 @@
icon_state = "meson"
item_state = "glasses"
icon_action_button = "action_meson" //This doesn't actually matter, the action button is generated from the current icon_state. But, this is the only way to get it to show up.
origin_tech = "magnets=2;engineering=2"
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINERING = 2)
toggleable = 1
vision_flags = SEE_TURFS
@@ -61,7 +61,7 @@
desc = "You can totally see in the dark now!"
icon_state = "night"
item_state = "glasses"
origin_tech = "magnets=2"
origin_tech = list(TECH_MAGNET = 2)
darkness_view = 7
/obj/item/clothing/glasses/night/New()
@@ -88,7 +88,7 @@
icon_state = "material"
item_state = "glasses"
icon_action_button = "action_material"
origin_tech = "magnets=3;engineering=3"
origin_tech = list(TECH_MAGNET = 3, TECH_ENGINERING = 3)
toggleable = 1
vision_flags = SEE_OBJS
@@ -206,7 +206,7 @@
desc = "Thermals in the shape of glasses."
icon_state = "thermal"
item_state = "glasses"
origin_tech = "magnets=3"
origin_tech = list(TECH_MAGNET = 3)
toggleable = 1
vision_flags = SEE_MOBS
invisa_view = 2
@@ -232,7 +232,7 @@
desc = "Used for seeing walls, floors, and stuff through anything."
icon_state = "meson"
icon_action_button = "action_meson"
origin_tech = "magnets=3;syndicate=4"
origin_tech = list(TECH_MAGNET = 3, TECH_ILLEGAL = 4)
/obj/item/clothing/glasses/thermal/monocle
name = "Thermoncle"

View File

@@ -2,7 +2,7 @@
name = "HUD"
desc = "A heads-up display that provides important info in (almost) real time."
flags = null //doesn't protect eyes because it's a monocle, duh
origin_tech = "magnets=3;biotech=2"
origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 2)
var/list/icon/current = list() //the current hud icons
proc

View File

@@ -8,7 +8,7 @@
name = "gas mask"
desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics."
var/obj/item/voice_changer/changer
origin_tech = "syndicate=4"
origin_tech = list(TECH_ILLEGAL = 4)
/obj/item/clothing/mask/gas/voice/verb/Toggle_Voice_Changer()
set category = "Object"

View File

@@ -5,7 +5,7 @@
item_state = "brown"
permeability_coefficient = 0.05
flags = NOSLIP
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/list/clothing_choices = list()
siemens_coefficient = 0.8
species_restricted = null

View File

@@ -9,7 +9,7 @@
item_state = "bl_suit"
item_color = "black"
desc = "It's a plain jumpsuit. It seems to have a small dial on the wrist."
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/list/clothing_choices = list()
/obj/item/clothing/under/chameleon/New()
@@ -60,7 +60,7 @@
item_state = "greysoft"
item_color = "grey"
desc = "It looks like a plain hat, but upon closer inspection, there's an advanced holographic array installed inside. It seems to have a small dial inside."
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
body_parts_covered = 0
var/list/clothing_choices = list()
@@ -112,7 +112,7 @@
icon_state = "armor"
item_state = "armor"
desc = "It appears to be a vest of standard armor, except this is embedded with a hidden holographic cloaker, allowing it to change it's appearance, but offering no protection.. It seems to have a small dial inside."
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/list/clothing_choices = list()
/obj/item/clothing/suit/chameleon/New()
@@ -164,7 +164,7 @@
item_state = "black"
item_color = "black"
desc = "They're comfy black shoes, with clever cloaking technology built in. It seems to have a small dial on the back of each shoe."
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/list/clothing_choices = list()
/obj/item/clothing/shoes/chameleon/New()
@@ -213,7 +213,7 @@
icon_state = "backpack"
item_state = "backpack"
desc = "A backpack outfitted with cloaking tech. It seems to have a small dial inside, kept away from the storage."
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/list/clothing_choices = list()
/obj/item/weapon/storage/backpack/chameleon/New()
@@ -269,7 +269,7 @@
item_state = "bgloves"
item_color = "brown"
desc = "It looks like a pair of gloves, but it seems to have a small dial inside."
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/list/clothing_choices = list()
/obj/item/clothing/gloves/chameleon/New()
@@ -319,7 +319,7 @@
icon_state = "gas_alt"
item_state = "gas_alt"
desc = "It looks like a plain gask mask, but on closer inspection, it seems to have a small dial inside."
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/list/clothing_choices = list()
/obj/item/clothing/mask/chameleon/New()
@@ -369,7 +369,7 @@
icon_state = "meson"
item_state = "glasses"
desc = "It looks like a plain set of mesons, but on closer inspection, it seems to have a small dial inside."
origin_tech = "syndicate=3"
origin_tech = list(TECH_ILLEGAL = 3)
var/list/clothing_choices = list()
/obj/item/clothing/glasses/chameleon/New()
@@ -418,7 +418,7 @@
w_class = 3.0
max_shells = 7
caliber = ".45"
origin_tech = "combat=2;materials=2;syndicate=8"
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 8)
ammo_type = "/obj/item/ammo_casing/chameleon"
matter = list()
var/list/gun_choices = list()

Some files were not shown because too many files have changed in this diff Show More