diff --git a/code/ATMOSPHERICS/chiller.dm b/code/ATMOSPHERICS/chiller.dm
index 3aa8b0af271..b83d30e2045 100644
--- a/code/ATMOSPHERICS/chiller.dm
+++ b/code/ATMOSPHERICS/chiller.dm
@@ -50,14 +50,14 @@
..(severity)
/obj/machinery/space_heater/air_conditioner/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/weapon/cell))
+ if(istype(I, /obj/item/weapon/stock_parts/cell))
if(open)
if(cell)
user << "There is already a power cell inside."
return
else
// insert cell
- var/obj/item/weapon/cell/C = usr.get_active_hand()
+ var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand()
if(istype(C))
user.drop_item()
cell = C
@@ -138,7 +138,7 @@
if("cellinstall")
if(open && !cell)
- var/obj/item/weapon/cell/C = usr.get_active_hand()
+ var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand()
if(istype(C))
usr.drop_item()
cell = C
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 8034c571818..2bbe14bea42 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -524,8 +524,10 @@
for(var/obj/item/clothing/accessory/AC in U.accessories)
if(AC.icon_action_button)
to_update += AC
- if(I.icon_action_button && (!I in to_update))
- to_update += I
+ continue
+ if(I.icon_action_button)
+ to_update += I
+ continue
for(var/obj/item/I in to_update)
var/obj/screen/item_action/A = new(hud_used)
diff --git a/code/datums/cargoprofile.dm b/code/datums/cargoprofile.dm
index 22b8446aa74..8bf2e281bbb 100644
--- a/code/datums/cargoprofile.dm
+++ b/code/datums/cargoprofile.dm
@@ -264,7 +264,7 @@
name = "Devices & Tools"
id = "tools"
blacklist = null
- whitelist = list(/obj/item/device,/obj/item/weapon/card,/obj/item/weapon/cartridge,/obj/item/weapon/cautery,/obj/item/weapon/cell,/obj/item/weapon/circuitboard,
+ whitelist = list(/obj/item/device,/obj/item/weapon/card,/obj/item/weapon/cartridge,/obj/item/weapon/cautery,/obj/item/weapon/stock_parts/cell,/obj/item/weapon/circuitboard,
/obj/item/weapon/aiModule,/obj/item/weapon/airalarm_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/circular_saw,
/obj/item/weapon/cloaking_device,/obj/item/weapon/crowbar,/obj/item/weapon/disk,/obj/item/weapon/firealarm_electronics,/obj/item/weapon/hand_tele,
/obj/item/weapon/hand_labeler,/obj/item/weapon/hemostat,/obj/item/weapon/mop,/obj/item/weapon/locator,/obj/item/weapon/minihoe,
diff --git a/code/datums/crafting/recipes.dm b/code/datums/crafting/recipes.dm
index 6dda4d79622..4322fcc9f4a 100644
--- a/code/datums/crafting/recipes.dm
+++ b/code/datums/crafting/recipes.dm
@@ -38,9 +38,9 @@
reqs = list(/obj/item/weapon/handcuffs/cable = 1,
/obj/item/stack/rods = 1,
/obj/item/weapon/wirecutters = 1,
- /obj/item/weapon/cell = 1)
+ /obj/item/weapon/stock_parts/cell = 1)
time = 80
- parts = list(/obj/item/weapon/cell = 1)
+ parts = list(/obj/item/weapon/stock_parts/cell = 1)
/datum/crafting_recipe/table/flamethrower
name = "Flamethrower"
@@ -90,7 +90,7 @@
/obj/item/stack/sheet/metal = 5,
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/gun/energy/advtaser = 1,
- /obj/item/weapon/cell = 1,
+ /obj/item/weapon/stock_parts/cell = 1,
/obj/item/device/assembly/prox_sensor = 1,
/obj/item/robot_parts/r_arm = 1)
tools = list(/obj/item/weapon/weldingtool, /obj/item/weapon/screwdriver)
diff --git a/code/datums/spells/charge.dm b/code/datums/spells/charge.dm
index b4603f5e6b1..cabde8c7181 100644
--- a/code/datums/spells/charge.dm
+++ b/code/datums/spells/charge.dm
@@ -53,8 +53,8 @@
W.icon_state = initial(W.icon_state)
charged_item = I
break
- else if(istype(item, /obj/item/weapon/cell/))
- var/obj/item/weapon/cell/C = item
+ else if(istype(item, /obj/item/weapon/stock_parts/cell/))
+ var/obj/item/weapon/stock_parts/cell/C = item
if(prob(80))
C.maxcharge -= 200
if(C.maxcharge <= 1) //Div by 0 protection
@@ -66,8 +66,8 @@
else if(item.contents)
var/obj/I = null
for(I in item.contents)
- if(istype(I, /obj/item/weapon/cell/))
- var/obj/item/weapon/cell/C = I
+ if(istype(I, /obj/item/weapon/stock_parts/cell/))
+ var/obj/item/weapon/stock_parts/cell/C = I
if(prob(80))
C.maxcharge -= 200
if(C.maxcharge <= 1) //Div by 0 protection
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index de49b586def..5c6ef778390 100755
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -464,10 +464,10 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/weapon/storage/toolbox/electrical,
/obj/item/clothing/gloves/yellow,
/obj/item/clothing/gloves/yellow,
- /obj/item/weapon/cell,
- /obj/item/weapon/cell,
- /obj/item/weapon/cell/high,
- /obj/item/weapon/cell/high)
+ /obj/item/weapon/stock_parts/cell,
+ /obj/item/weapon/stock_parts/cell,
+ /obj/item/weapon/stock_parts/cell/high,
+ /obj/item/weapon/stock_parts/cell/high)
cost = 15
containertype = /obj/structure/closet/crate
containername = "Electrical maintenance crate"
@@ -627,8 +627,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/device/flash,
/obj/item/device/flash,
/obj/item/device/flash,
- /obj/item/weapon/cell/high,
- /obj/item/weapon/cell/high)
+ /obj/item/weapon/stock_parts/cell/high,
+ /obj/item/weapon/stock_parts/cell/high)
cost = 10
containertype = /obj/structure/closet/crate/secure/gear
containername = "Robotics Assembly"
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 2e71bd1ac69..0ef743860d2 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -480,7 +480,7 @@ var/list/uplink_items = list()
/datum/uplink_item/device_tools/medkit
- name = "Syndicate Medical Supply Kit"
+ name = "Syndicate Combat Medic Kit"
desc = "The syndicate medkit is a suspicious black and red. Included is a combat stimulant injector for rapid healing, a medical hud for quick identification of injured comrades, \
and other medical supplies helpful for a medical field operative."
item = /obj/item/weapon/storage/firstaid/tactical
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index e8fba96a0d0..c5c01751482 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -596,7 +596,7 @@
item_state = "RPED"
icon_override = 'icons/mob/in-hand/tools.dmi'
w_class = 5
- can_hold = list("/obj/item/weapon/stock_parts","/obj/item/weapon/cell")
+ can_hold = list("/obj/item/weapon/stock_parts")
storage_slots = 50
use_to_pickup = 1
allow_quick_gather = 1
diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm
index 894121ac5ec..9ed56032e33 100644
--- a/code/game/gamemodes/events/ninja_equipment.dm
+++ b/code/game/gamemodes/events/ninja_equipment.dm
@@ -37,7 +37,7 @@ ________________________________________________________________________________
reagents.my_atom = src
for(var/reagent_id in reagent_list)
reagent_id == "uranium" ? reagents.add_reagent(reagent_id, r_maxamount+(a_boost*a_transfer)) : reagents.add_reagent(reagent_id, r_maxamount)//It will take into account uranium used for adrenaline boosting.
- cell = new/obj/item/weapon/cell/high//The suit should *always* have a battery because so many things rely on it.
+ cell = new/obj/item/weapon/stock_parts/cell/high//The suit should *always* have a battery because so many things rely on it.
cell.charge = 9990//Starting charge should not be higher than maximum charge. It leads to problems with recharging.
cell.maxcharge = 10000 // Due to Ponies' overhaul Ninjas began starting with a 15000 energy cell. This should fix that issue.
@@ -880,14 +880,14 @@ ________________________________________________________________________________
U << "Replenished a total of [total_reagent_transfer ? total_reagent_transfer : "zero"] chemical units."//Let the player know how much total volume was added.
return
- else if(istype(I, /obj/item/weapon/cell))
+ else if(istype(I, /obj/item/weapon/stock_parts/cell))
if(I:maxcharge>cell.maxcharge&&n_gloves&&n_gloves.candrain)
U << "\blue Higher maximum capacity detected.\nUpgrading..."
if (n_gloves&&n_gloves.candrain&&do_after(U,s_delay))
U.drop_item()
I.loc = src
I:charge = min(I:charge+cell.charge, I:maxcharge)
- var/obj/item/weapon/cell/old_cell = cell
+ var/obj/item/weapon/stock_parts/cell/old_cell = cell
old_cell.charge = 0
U.put_in_hands(old_cell)
old_cell.add_fingerprint(U)
@@ -1116,7 +1116,7 @@ ________________________________________________________________________________
U << "\red This SMES cell has run dry of power. You must find another source."
if("CELL")
- var/obj/item/weapon/cell/A = target
+ var/obj/item/weapon/stock_parts/cell/A = target
if(A.charge)
if (G.candrain&&do_after(U,30))
U << "\blue Gained [A.charge] energy from the cell."
diff --git a/code/game/gamemodes/newobjective.dm b/code/game/gamemodes/newobjective.dm
index df6b31dec48..7bccda38c63 100644
--- a/code/game/gamemodes/newobjective.dm
+++ b/code/game/gamemodes/newobjective.dm
@@ -883,7 +883,7 @@ datum
return 2
hyper_cell
- steal_target = /obj/item/weapon/cell/hyper
+ steal_target = /obj/item/weapon/stock_parts/cell/hyper
explanation_text = "Steal a hyper capacity power cell."
weight = 20
diff --git a/code/game/gamemodes/scoreboard.dm b/code/game/gamemodes/scoreboard.dm
index 2617fe4e04e..91611404f86 100644
--- a/code/game/gamemodes/scoreboard.dm
+++ b/code/game/gamemodes/scoreboard.dm
@@ -133,7 +133,7 @@
// Check station's power levels
for (var/obj/machinery/power/apc/A in machines)
if (A.z != 1) continue
- for (var/obj/item/weapon/cell/C in A.contents)
+ for (var/obj/item/weapon/stock_parts/cell/C in A.contents)
if (C.charge < 2300) score_powerloss += 1 // 200 charge leeway
// Check how much uncleaned mess is on the station
diff --git a/code/game/gamemodes/steal_items.dm b/code/game/gamemodes/steal_items.dm
index 47d181f9166..4b8cdc34dca 100644
--- a/code/game/gamemodes/steal_items.dm
+++ b/code/game/gamemodes/steal_items.dm
@@ -36,16 +36,17 @@
/datum/theft_objective/hand_tele
name = "a hand teleporter"
typepath = /obj/item/weapon/hand_tele
- protected_jobs = list("Captain")
+ protected_jobs = list("Captain", "Research Director")
/datum/theft_objective/rcd
- name = "an RCD"
+ name = "a rapid-construction-device"
typepath = /obj/item/weapon/rcd
- protected_jobs = list("Chief Engineer")
+ protected_jobs = list("Chief Engineer", "Quartermaster", "Cargo Technician", "Research Director", "Scientist", "Roboticist")
/datum/theft_objective/jetpack
name = "a jetpack"
typepath = /obj/item/weapon/tank/jetpack
+ protected_jobs = list("Chief Engineer")
/datum/theft_objective/cap_jumpsuit
name = "the captain's jumpsuit"
@@ -64,9 +65,9 @@ datum/theft_objective/ai/check_special_completion(var/obj/item/device/aicard/C)
return 0
/datum/theft_objective/defib
- name = "a defibrillator"
- typepath = /obj/item/weapon/defibrillator
- protected_jobs = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Psychiatrist", "Paramedic", "Brig Physician")
+ name = "a compact defibrillator"
+ typepath = /obj/item/weapon/defibrillator/compact
+ protected_jobs = list("Chief Medical Officer")
/datum/theft_objective/magboots
name = "the chief engineer's advanced magnetic boots"
@@ -97,7 +98,7 @@ datum/theft_objective/ai/check_special_completion(var/obj/item/device/aicard/C)
/datum/theft_objective/corgi
name = "a piece of corgi meat"
typepath = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi
- protected_jobs = list("Head of Personnel")
+ protected_jobs = list("Head of Personnel", "Quartermaster", "Cargo Technician")
/datum/theft_objective/capmedal
name = "the medal of captaincy"
@@ -254,7 +255,7 @@ datum/theft_objective/ai/check_special_completion(var/obj/item/device/aicard/C)
/datum/theft_objective/special/hyper_cell
name = "hyper-capacity cell"
- typepath = /obj/item/weapon/cell/hyper
+ typepath = /obj/item/weapon/stock_parts/cell/hyper
/datum/theft_objective/number/special
flags = THEFT_FLAG_SPECIAL
diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm
index 6fb65f8a705..8e6855a8dbf 100644
--- a/code/game/machinery/bots/ed209bot.dm
+++ b/code/game/machinery/bots/ed209bot.dm
@@ -665,7 +665,7 @@ Auto Patrol[]"},
user << "Taser gun attached."
if(9)
- if(istype(W, /obj/item/weapon/cell))
+ if(istype(W, /obj/item/weapon/stock_parts/cell))
build_step++
user << "You complete the ED-209."
var/turf/T = get_turf(src)
diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm
index bd1ee21a88c..f9016a1061f 100644
--- a/code/game/machinery/bots/mulebot.dm
+++ b/code/game/machinery/bots/mulebot.dm
@@ -43,7 +43,7 @@ var/global/mulebot_count = 0
var/auto_pickup = 1 // true if auto-pickup at beacon
var/report_delivery = 1 // true if bot will announce an arrival to a location.
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
var/datum/wires/mulebot/wires = null
// the installed power cell
@@ -96,8 +96,8 @@ var/global/mulebot_count = 0
if(toggle_lock(user))
user << "Controls [(locked ? "locked" : "unlocked")]."
updateUsrDialog()
- else if(istype(I,/obj/item/weapon/cell) && open && !cell)
- var/obj/item/weapon/cell/C = I
+ else if(istype(I,/obj/item/weapon/stock_parts/cell) && open && !cell)
+ var/obj/item/weapon/stock_parts/cell/C = I
user.drop_item()
C.loc = src
cell = C
@@ -286,7 +286,7 @@ var/global/mulebot_count = 0
if("cellinsert")
if(open && !cell)
- var/obj/item/weapon/cell/C = usr.get_active_hand()
+ var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand()
if(istype(C))
usr.drop_item()
cell = C
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 16c39585dfa..5a9822d6531 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -8,7 +8,7 @@
idle_power_usage = 5
active_power_usage = 60
power_channel = EQUIP
- var/obj/item/weapon/cell/charging = null
+ var/obj/item/weapon/stock_parts/cell/charging = null
var/chargelevel = -1
proc
updateicon()
@@ -38,7 +38,7 @@
if(stat & BROKEN)
return
- if(istype(W, /obj/item/weapon/cell) && anchored)
+ if(istype(W, /obj/item/weapon/stock_parts/cell) && anchored)
if(charging)
user << "\red There is already a cell in the charger."
return
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index c108e02822c..0d3dddbba8b 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -289,7 +289,7 @@ to destroy them and players will be able to make replacements.
frame_desc = "Requires 5 pieces of cable, 5 Power Cells and 1 Capacitor."
req_components = list(
/obj/item/stack/cable_coil = 5,
- /obj/item/weapon/cell = 5,
+ /obj/item/weapon/stock_parts/cell = 5,
/obj/item/weapon/stock_parts/capacitor = 1)
@@ -361,7 +361,7 @@ to destroy them and players will be able to make replacements.
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
- /obj/item/weapon/cell = 1)
+ /obj/item/weapon/stock_parts/cell = 1)
/obj/item/weapon/circuitboard/destructive_analyzer
name = "Circuit board (Destructive Analyzer)"
@@ -583,7 +583,7 @@ obj/item/weapon/circuitboard/rdserver
frame_desc = "Requires 2 Capacitors, 1 Power Cell and 1 Manipulator."
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 2,
- /obj/item/weapon/cell = 1,
+ /obj/item/weapon/stock_parts/cell = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
// Telecomms circuit boards:
diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm
index b7203be245d..419b5f7b664 100644
--- a/code/game/machinery/floodlight.dm
+++ b/code/game/machinery/floodlight.dm
@@ -6,7 +6,7 @@
icon_state = "flood00"
density = 1
var/on = 0
- var/obj/item/weapon/cell/high/cell = null
+ var/obj/item/weapon/stock_parts/cell/high/cell = null
var/use = 5
var/unlocked = 0
var/open = 0
@@ -83,7 +83,7 @@
open = 1
user << "You remove the battery panel."
- if (istype(W, /obj/item/weapon/cell))
+ if (istype(W, /obj/item/weapon/stock_parts/cell))
if(open)
if(cell)
user << "There is a power cell already installed."
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 5e69e5701af..94e0efa1e99 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -351,22 +351,6 @@ Class Procs:
user << "[A.name] replaced with [B.name]."
shouldplaysound = 1
break
- // Power cell snowflake
- for(var/obj/item/weapon/cell/A in component_parts)
- for(var/D in CB.req_components)
- if(ispath(A.type, D))
- P = D
- break
- for(var/obj/item/weapon/cell/B in W.contents)
- if(istype(B, P) && istype(A, P))
- if(B.rating > A.rating)
- W.remove_from_storage(B, src)
- W.handle_item_insertion(A, 1)
- component_parts -= A
- component_parts += B
- B.loc = null
- user << "[A.name] replaced with [B.name]."
- break
RefreshParts()
else
user << "Following parts detected in the machine:"
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 7b5ba784ef8..7292ee58a1d 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -19,7 +19,7 @@
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/cell/high(src)
+ component_parts += new /obj/item/weapon/stock_parts/cell/high(src)
RefreshParts()
build_icon()
@@ -28,7 +28,7 @@
component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src)
component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src)
component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(src)
- component_parts += new /obj/item/weapon/cell/hyper(src)
+ component_parts += new /obj/item/weapon/stock_parts/cell/hyper(src)
RefreshParts()
/obj/machinery/recharge_station/RefreshParts()
@@ -38,7 +38,7 @@
recharge_speed += C.rating * 100
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
repairs += M.rating - 1
- for(var/obj/item/weapon/cell/C in component_parts)
+ for(var/obj/item/weapon/stock_parts/cell/C in component_parts)
recharge_speed *= C.maxcharge / 10000
/obj/machinery/recharge_station/process()
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 9a6849dcdf4..1dd7024a41c 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -5,7 +5,7 @@
icon_state = "sheater0"
name = "space heater"
desc = "Made by Space Amish using traditional space techniques, this heater is guaranteed not to set the station on fire."
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
var/on = 0
var/open = 0
var/set_temperature = 50 // in celcius, add T0C for kelvin
@@ -52,14 +52,14 @@
..(severity)
attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/weapon/cell))
+ if(istype(I, /obj/item/weapon/stock_parts/cell))
if(open)
if(cell)
user << "There is already a power cell inside."
return
else
// insert cell
- var/obj/item/weapon/cell/C = usr.get_active_hand()
+ var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand()
if(istype(C))
user.drop_item()
cell = C
@@ -144,7 +144,7 @@
if("cellinstall")
if(open && !cell)
- var/obj/item/weapon/cell/C = usr.get_active_hand()
+ var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand()
if(istype(C))
usr.drop_item()
cell = C
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 2c5f099f53b..938af0c4cdc 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -979,8 +979,8 @@
icon_state = "engivend"
icon_deny = "engivend-deny"
req_access_txt = "11" //Engineering Equipment access
- products = list(/obj/item/clothing/glasses/meson = 2,/obj/item/device/multitool = 4,/obj/item/weapon/airlock_electronics = 10,/obj/item/weapon/module/power_control = 10,/obj/item/weapon/airalarm_electronics = 10,/obj/item/weapon/cell/high = 10)
- contraband = list(/obj/item/weapon/cell/potato = 3)
+ products = list(/obj/item/clothing/glasses/meson = 2,/obj/item/device/multitool = 4,/obj/item/weapon/airlock_electronics = 10,/obj/item/weapon/module/power_control = 10,/obj/item/weapon/airalarm_electronics = 10,/obj/item/weapon/stock_parts/cell/high = 10)
+ contraband = list(/obj/item/weapon/stock_parts/cell/potato = 3)
premium = list(/obj/item/weapon/storage/belt/utility = 3)
//This one's from bay12
@@ -993,7 +993,7 @@
products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/orange = 4,/obj/item/clothing/head/hardhat = 4,
/obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson = 4,/obj/item/clothing/gloves/yellow = 4, /obj/item/weapon/screwdriver = 12,
/obj/item/weapon/crowbar = 12,/obj/item/weapon/wirecutters = 12,/obj/item/device/multitool = 12,/obj/item/weapon/wrench = 12,/obj/item/device/t_scanner = 12,
- /obj/item/stack/cable_coil/heavyduty = 8, /obj/item/weapon/cell = 8, /obj/item/weapon/weldingtool = 8,/obj/item/clothing/head/welding = 8,
+ /obj/item/stack/cable_coil/heavyduty = 8, /obj/item/weapon/stock_parts/cell = 8, /obj/item/weapon/weldingtool = 8,/obj/item/clothing/head/welding = 8,
/obj/item/weapon/light/tube = 10,/obj/item/clothing/suit/fire = 4, /obj/item/weapon/stock_parts/scanning_module = 5,/obj/item/weapon/stock_parts/micro_laser = 5,
/obj/item/weapon/stock_parts/matter_bin = 5,/obj/item/weapon/stock_parts/manipulator = 5,/obj/item/weapon/stock_parts/console_screen = 5)
// There was an incorrect entry (cablecoil/power). I improvised to cablecoil/heavyduty.
@@ -1008,7 +1008,7 @@
icon_deny = "robotics-deny"
req_access_txt = "29"
products = list(/obj/item/clothing/suit/storage/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash = 4,
- /obj/item/weapon/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
+ /obj/item/weapon/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
/obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
/obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5)
//everything after the power cell had no amounts, I improvised. -Sayu
diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm
index 2c723a2e530..26d9d066fd8 100644
--- a/code/game/mecha/combat/gygax.dm
+++ b/code/game/mecha/combat/gygax.dm
@@ -53,7 +53,7 @@
ME.attach(src)
return
-/obj/mecha/combat/gygax/dark/add_cell(var/obj/item/weapon/cell/C=null)
+/obj/mecha/combat/gygax/dark/add_cell(var/obj/item/weapon/stock_parts/cell/C=null)
if(C)
C.forceMove(src)
cell = C
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 97aef5f4afb..e62872c9664 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -29,7 +29,7 @@
var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act.
//the values in this list show how much damage will pass through, not how much will be absorbed.
var/list/damage_absorption = list("brute"=0.8,"fire"=1.2,"bullet"=0.9,"laser"=1,"energy"=1,"bomb"=1)
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
var/state = 0
var/list/log = new
var/last_message = 0
@@ -115,7 +115,7 @@
internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src)
return internal_tank
-/obj/mecha/proc/add_cell(var/obj/item/weapon/cell/C=null)
+/obj/mecha/proc/add_cell(var/obj/item/weapon/stock_parts/cell/C=null)
if(C)
C.forceMove(src)
cell = C
@@ -781,7 +781,7 @@
user << "You screw the cell in place"
return
- else if(istype(W, /obj/item/weapon/cell))
+ else if(istype(W, /obj/item/weapon/stock_parts/cell))
if(state==4)
if(!src.cell)
user << "You install the powercell"
diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm
index 9ef170a7d9b..f4dfd0bf245 100644
--- a/code/game/objects/items/devices/suit_cooling.dm
+++ b/code/game/objects/items/devices/suit_cooling.dm
@@ -17,7 +17,7 @@
var/on = 0 //is it turned on?
var/cover_open = 0 //is the cover open?
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
var/max_cooling = 12 //in degrees per second - probably don't need to mess with heat capacity here
var/charge_consumption = 16.6 //charge per second at max_cooling
var/thermostat = T20C
@@ -25,7 +25,7 @@
//TODO: make it heat up the surroundings when not in space
/obj/item/device/suit_cooling_unit/New()
- cell = new/obj/item/weapon/cell() //comes with the crappy default power cell - high-capacity ones shouldn't be hard to find
+ cell = new/obj/item/weapon/stock_parts/cell() //comes with the crappy default power cell - high-capacity ones shouldn't be hard to find
cell.loc = src
/obj/item/device/suit_cooling_unit/proc/cool_mob(mob/M)
@@ -132,7 +132,7 @@
updateicon()
return
- if (istype(W, /obj/item/weapon/cell))
+ if (istype(W, /obj/item/weapon/stock_parts/cell))
if(cover_open)
if(cell)
user << "There is a [cell] already installed here."
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index 744d5999ff7..b1f5a1570fd 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -49,7 +49,7 @@
construction_time = 350
construction_cost = list("metal"=40000)
var/wires = 0.0
- var/obj/item/weapon/cell/cell = null
+ var/obj/item/weapon/stock_parts/cell/cell = null
/obj/item/robot_parts/head
name = "robot head"
@@ -251,7 +251,7 @@
/obj/item/robot_parts/chest/attackby(obj/item/W as obj, mob/user as mob)
..()
- if(istype(W, /obj/item/weapon/cell))
+ if(istype(W, /obj/item/weapon/stock_parts/cell))
if(src.cell)
user << "\blue You have already inserted a cell!"
return
diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm
index f9a347df9ac..b65a1904116 100644
--- a/code/game/objects/items/weapons/defib.dm
+++ b/code/game/objects/items/weapons/defib.dm
@@ -19,7 +19,8 @@
var/safety = 1 //if you can zap people with the defibs on harm mode
var/powered = 0 //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise
var/obj/item/weapon/twohanded/shockpaddles/paddles
- var/obj/item/weapon/cell/high/bcell = null
+ var/obj/item/weapon/stock_parts/cell/high/bcell = null
+ var/combat = 0 //can we revive through space suits?
/obj/item/weapon/defibrillator/New() //starts without a cell for rnd
..()
@@ -67,7 +68,7 @@
overlays += "defibunit-charge[ratio]"
/obj/item/weapon/defibrillator/CheckParts()
- bcell = locate(/obj/item/weapon/cell) in contents
+ bcell = locate(/obj/item/weapon/stock_parts/cell) in contents
update_icon()
/obj/item/weapon/defibrillator/ui_action_click()
@@ -78,8 +79,8 @@
return
/obj/item/weapon/defibrillator/attackby(obj/item/weapon/W, mob/user)
- if(istype(W, /obj/item/weapon/cell))
- var/obj/item/weapon/cell/C = W
+ if(istype(W, /obj/item/weapon/stock_parts/cell))
+ var/obj/item/weapon/stock_parts/cell/C = W
if(bcell)
user << "[src] already has a cell."
else
@@ -195,6 +196,49 @@
paddles.cooldown = 0
paddles.update_icon()
update_icon()
+
+/obj/item/weapon/defibrillator/compact
+ name = "compact defibrillator"
+ desc = "A belt-equipped defibrillator that can be rapidly deployed."
+ icon_state = "defibcompact"
+ item_state = "defibcompact"
+ w_class = 3
+ slot_flags = SLOT_BELT
+ origin_tech = "biotech=4"
+
+/obj/item/weapon/defibrillator/compact/ui_action_click()
+ if(usr.get_item_by_slot(slot_belt) == src)
+ toggle_paddles()
+ else
+ usr << "Strap the defibrillator's belt on first!"
+ return
+
+/obj/item/weapon/defibrillator/compact/loaded/New()
+ ..()
+ paddles = make_paddles()
+ bcell = new(src)
+ update_icon()
+ return
+
+/obj/item/weapon/defibrillator/compact/combat
+ name = "combat defibrillator"
+ desc = "A belt-equipped blood-red defibrillator that can be rapidly deployed. Does not have the restrictions or safeties of conventional defibrillators and can revive through space suits."
+ combat = 1
+ safety = 0
+
+/obj/item/weapon/defibrillator/compact/combat/loaded/New()
+ ..()
+ paddles = make_paddles()
+ bcell = new /obj/item/weapon/stock_parts/cell/infinite(src)
+ update_icon()
+ return
+
+/obj/item/weapon/defibrillator/compact/combat/attackby(obj/item/weapon/W, mob/user)
+ if(W == paddles)
+ paddles.unwield()
+ toggle_paddles()
+ update_icon()
+ return
//paddles
@@ -254,7 +298,7 @@
else
return 1
-/obj/item/weapon/twohanded/shockpaddles/attack(mob/M as mob, mob/user as mob)
+/obj/item/weapon/twohanded/shockpaddles/attack(mob/M, mob/user)
var/tobehealed
var/threshold = -config.health_threshold_dead
var/mob/living/carbon/human/H = M
@@ -300,18 +344,19 @@
playsound(get_turf(src), 'sound/weapons/flash.ogg', 50, 0)
var/mob/dead/observer/ghost = H.get_ghost()
var/tplus = world.time - H.timeofdeath
- var/tlimit = 3000 //past this much time the patient is unrecoverable (in deciseconds)
- var/tloss = 900 //brain damage starts setting in on the patient after some time left rotting
+ var/tlimit = 6000 //past this much time the patient is unrecoverable (in deciseconds)
+ var/tloss = 3000 //brain damage starts setting in on the patient after some time left rotting
var/total_burn = 0
var/total_brute = 0
if(do_after(user, 20)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
for(var/obj/item/carried_item in H.contents)
- if((istype(carried_item, /obj/item/clothing/suit/armor)) || (istype(carried_item, /obj/item/clothing/suit/space)))
- user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.")
- playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0)
- busy = 0
- update_icon()
- return
+ if(istype(carried_item, /obj/item/clothing/suit/space))
+ if(!defib.combat)
+ user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.")
+ playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0)
+ busy = 0
+ update_icon()
+ return
if(H.stat == 2)
var/health = H.health
M.visible_message("[M]'s body convulses a bit.")
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index e98c641c363..2c68041fb16 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -54,7 +54,7 @@
/obj/item/weapon/melee/energy/sword/cyborg/attack(mob/M, var/mob/living/silicon/robot/R)
if(R.cell)
- var/obj/item/weapon/cell/C = R.cell
+ var/obj/item/weapon/stock_parts/cell/C = R.cell
if(active && !(C.use(hitcost)))
attack_self()
R << "It's out of charge!"
diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm
index cf9abda162f..5a4b7a98d9d 100644
--- a/code/game/objects/items/weapons/power_cells.dm
+++ b/code/game/objects/items/weapons/power_cells.dm
@@ -1,4 +1,4 @@
-/obj/item/weapon/cell
+/obj/item/weapon/stock_parts/cell
name = "power cell"
desc = "A rechargable electrochemical power cell."
icon = 'icons/obj/power.dmi'
@@ -13,7 +13,7 @@
w_class = 3.0
var/charge = 0 // note %age conveted to actual charge in New
var/maxcharge = 10000
- var/rating = 1
+ rating = 1
m_amt = 700
g_amt = 50
var/rigged = 0 // true if rigged to explode
@@ -25,7 +25,7 @@
viewers(user) << "[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide."
return (FIRELOSS)
-/obj/item/weapon/cell/crap
+/obj/item/weapon/stock_parts/cell/crap
name = "\improper Nanotrasen brand rechargable AA battery"
desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT
origin_tech = "powerstorage=0"
@@ -33,22 +33,22 @@
rating = 2
g_amt = 40
-/obj/item/weapon/cell/crap/empty/New()
+/obj/item/weapon/stock_parts/cell/crap/empty/New()
..()
charge = 0
-/obj/item/weapon/cell/secborg
+/obj/item/weapon/stock_parts/cell/secborg
name = "\improper Security borg rechargable D battery"
origin_tech = "powerstorage=0"
maxcharge = 6000 //6000 max charge / 1000 charge per shot = six shots
rating = 2.5
g_amt = 40
-/obj/item/weapon/cell/secborg/empty/New()
+/obj/item/weapon/stock_parts/cell/secborg/empty/New()
..()
charge = 0
-/obj/item/weapon/cell/high
+/obj/item/weapon/stock_parts/cell/high
name = "high-capacity power cell"
origin_tech = "powerstorage=2"
icon_state = "hcell"
@@ -56,11 +56,11 @@
rating = 3
g_amt = 60
-/obj/item/weapon/cell/high/empty/New()
+/obj/item/weapon/stock_parts/cell/high/empty/New()
..()
charge = 0
-/obj/item/weapon/cell/super
+/obj/item/weapon/stock_parts/cell/super
name = "super-capacity power cell"
origin_tech = "powerstorage=5"
icon_state = "scell"
@@ -69,11 +69,11 @@
rating = 4
construction_cost = list("metal"=750,"glass"=100)
-/obj/item/weapon/cell/super/empty/New()
+/obj/item/weapon/stock_parts/cell/super/empty/New()
..()
charge = 0
-/obj/item/weapon/cell/hyper
+/obj/item/weapon/stock_parts/cell/hyper
name = "hyper-capacity power cell"
origin_tech = "powerstorage=6"
icon_state = "hpcell"
@@ -82,11 +82,11 @@
g_amt = 80
construction_cost = list("metal"=500,"glass"=150,"gold"=200,"silver"=200)
-/obj/item/weapon/cell/hyper/empty/New()
+/obj/item/weapon/stock_parts/cell/hyper/empty/New()
..()
charge = 0
-/obj/item/weapon/cell/infinite
+/obj/item/weapon/stock_parts/cell/infinite
name = "infinite-capacity power cell!"
icon_state = "icell"
origin_tech = null
@@ -96,7 +96,7 @@
use()
return 1
-/obj/item/weapon/cell/potato
+/obj/item/weapon/stock_parts/cell/potato
name = "potato battery"
desc = "A rechargable starch based power cell."
origin_tech = "powerstorage=1"
@@ -110,7 +110,7 @@
minor_fault = 1
-/obj/item/weapon/cell/slime
+/obj/item/weapon/stock_parts/cell/slime
name = "charged slime core"
desc = "A yellow slime core infused with plasma, it crackles with power."
origin_tech = "powerstorage=2;biotech=4"
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index 2e9ed7b70c9..8a33f542f4c 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -12,7 +12,7 @@
attack_verb = list("beaten")
var/stunforce = 7
var/status = 0
- var/obj/item/weapon/cell/high/bcell = null
+ var/obj/item/weapon/stock_parts/cell/high/bcell = null
var/hitcost = 1500
/obj/item/weapon/melee/baton/suicide_act(mob/user)
@@ -25,7 +25,7 @@
return
/obj/item/weapon/melee/baton/CheckParts()
- bcell = locate(/obj/item/weapon/cell) in contents
+ bcell = locate(/obj/item/weapon/stock_parts/cell) in contents
update_icon()
/obj/item/weapon/melee/baton/loaded/New() //this one starts with a cell pre-installed.
@@ -61,8 +61,8 @@
user <<"The baton does not have a power source installed."
/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
- if(istype(W, /obj/item/weapon/cell))
- var/obj/item/weapon/cell/C = W
+ if(istype(W, /obj/item/weapon/stock_parts/cell))
+ var/obj/item/weapon/stock_parts/cell/C = W
if(bcell)
user << "[src] already has a cell."
else
diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm
index 832227b12d7..5c66dd46bcb 100644
--- a/code/game/objects/random/random.dm
+++ b/code/game/objects/random/random.dm
@@ -56,11 +56,11 @@
icon = 'icons/obj/power.dmi'
icon_state = "cell"
item_to_spawn()
- return pick(prob(10);/obj/item/weapon/cell/crap,\
- prob(40);/obj/item/weapon/cell,\
- prob(40);/obj/item/weapon/cell/high,\
- prob(9);/obj/item/weapon/cell/super,\
- prob(1);/obj/item/weapon/cell/hyper)
+ return pick(prob(10);/obj/item/weapon/stock_parts/cell/crap,\
+ prob(40);/obj/item/weapon/stock_parts/cell,\
+ prob(40);/obj/item/weapon/stock_parts/cell/high,\
+ prob(9);/obj/item/weapon/stock_parts/cell/super,\
+ prob(1);/obj/item/weapon/stock_parts/cell/hyper)
/obj/random/bomb_supply
diff --git a/code/game/objects/structures/crates_lockers/closets/malfunction.dm b/code/game/objects/structures/crates_lockers/closets/malfunction.dm
index 7cfb4f18e2f..3bf64ba34d8 100644
--- a/code/game/objects/structures/crates_lockers/closets/malfunction.dm
+++ b/code/game/objects/structures/crates_lockers/closets/malfunction.dm
@@ -13,5 +13,5 @@
new /obj/item/clothing/head/helmet/space/nasavoid(src)
new /obj/item/clothing/suit/space/nasavoid(src)
new /obj/item/weapon/crowbar(src)
- new /obj/item/weapon/cell(src)
+ new /obj/item/weapon/stock_parts/cell(src)
new /obj/item/device/multitool(src)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 9e0ffec3dd8..fcd8dafd77f 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -148,7 +148,7 @@
new /obj/item/clothing/shoes/brown (src)
new /obj/item/device/radio/headset/heads/cmo(src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
- new /obj/item/weapon/defibrillator/loaded(src)
+ new /obj/item/weapon/defibrillator/compact/loaded(src)
new /obj/item/weapon/storage/belt/medical(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/reagent_containers/hypospray/CMO(src)
diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm
index 7d81ba1ebbd..ca3b4e50c6e 100644
--- a/code/game/vehicles/spacepods/spacepod.dm
+++ b/code/game/vehicles/spacepods/spacepod.dm
@@ -14,8 +14,8 @@
var/mob/living/carbon/occupant
var/mob/living/carbon/occupant2 //two seaters
var/datum/spacepod/equipment/equipment_system
- var/battery_type = "/obj/item/weapon/cell/high"
- var/obj/item/weapon/cell/battery
+ var/battery_type = "/obj/item/weapon/stock_parts/cell/high"
+ var/obj/item/weapon/stock_parts/cell/battery
var/datum/gas_mixture/cabin_air
var/obj/machinery/portable_atmospherics/canister/internal_tank
var/datum/effect/effect/system/ion_trail_follow/space_trail/ion_trail
@@ -158,7 +158,7 @@
if(iscrowbar(W))
hatch_open = !hatch_open
user << "You [hatch_open ? "open" : "close"] the maintenance hatch."
- if(istype(W, /obj/item/weapon/cell))
+ if(istype(W, /obj/item/weapon/stock_parts/cell))
if(!hatch_open)
return ..()
if(battery)
diff --git a/code/game/vehicles/vehicle.dm b/code/game/vehicles/vehicle.dm
index 3ec73f3eeb9..9924fea07d0 100644
--- a/code/game/vehicles/vehicle.dm
+++ b/code/game/vehicles/vehicle.dm
@@ -16,7 +16,7 @@
//var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act.
//the values in this list show how much damage will pass through, not how much will be absorbed.
var/list/damage_absorption = list("brute"=0.8,"fire"=1.2,"bullet"=0.9,"laser"=1,"energy"=1,"bomb"=1)
- var/obj/item/weapon/cell/cell //Our power source
+ var/obj/item/weapon/stock_parts/cell/cell //Our power source
var/state = 0
var/list/log = new
var/last_message = 0
@@ -93,7 +93,7 @@
internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src)
return internal_tank*/
-/obj/vehicle/proc/add_cell(var/obj/item/weapon/cell/C=null)
+/obj/vehicle/proc/add_cell(var/obj/item/weapon/stock_parts/cell/C=null)
if(C)
C.forceMove(src)
cell = C
diff --git a/code/modules/clothing/gloves/ninja.dm b/code/modules/clothing/gloves/ninja.dm
index 4fbdcdf8607..5876067697b 100644
--- a/code/modules/clothing/gloves/ninja.dm
+++ b/code/modules/clothing/gloves/ninja.dm
@@ -102,7 +102,7 @@
drain("MECHA",A,suit)
return 1
/*
- if(istype(A,/obj/item/weapon/cell))
+ if(istype(A,/obj/item/weapon/stock_parts/cell))
A.add_fingerprint(H)
drain("CELL",A,suit)
return 1
diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm
index 3f162fbf09e..b1b51684ee0 100644
--- a/code/modules/clothing/spacesuits/ninja.dm
+++ b/code/modules/clothing/spacesuits/ninja.dm
@@ -3,7 +3,7 @@
name = "ninja hood"
icon_state = "s-ninja"
item_state = "s-ninja_hood"
- allowed = list(/obj/item/weapon/cell)
+ allowed = list(/obj/item/weapon/stock_parts/cell)
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25)
unacidable = 1
siemens_coefficient = 0.2
@@ -14,7 +14,7 @@
desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins."
icon_state = "s-ninja"
item_state = "s-ninja_suit"
- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank,/obj/item/weapon/cell,/obj/item/device/suit_cooling_unit)
+ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank,/obj/item/weapon/stock_parts/cell,/obj/item/device/suit_cooling_unit)
slowdown = 0
unacidable = 1
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
@@ -22,7 +22,7 @@
//Important parts of the suit.
var/mob/living/carbon/affecting = null//The wearer.
- var/obj/item/weapon/cell/cell//Starts out with a high-capacity cell using New().
+ var/obj/item/weapon/stock_parts/cell/cell//Starts out with a high-capacity cell using New().
var/datum/effect/effect/system/spark_spread/spark_system//To create sparks.
var/reagent_list[] = list("tricordrazine","dexalinp","spaceacillin","anti_toxin","nutriment","uranium","hyronalin")//The reagents ids which are added to the suit at New().
var/stored_research[]//For stealing station research.
diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm
index 6189e2eb464..12508cc5328 100644
--- a/code/modules/clothing/under/accessories/holster.dm
+++ b/code/modules/clothing/under/accessories/holster.dm
@@ -20,7 +20,10 @@
/obj/item/clothing/accessory/holster/attack_self()
var/holsteritem = usr.get_active_hand()
- holster(holsteritem, usr)
+ if(!holstered)
+ holster(holsteritem, usr)
+ else
+ unholster(usr)
/obj/item/clothing/accessory/holster/proc/holster(obj/item/I, mob/user as mob)
if(holstered)
diff --git a/code/modules/computer3/buildandrepair.dm b/code/modules/computer3/buildandrepair.dm
index 38db742ee67..d525f40a73e 100644
--- a/code/modules/computer3/buildandrepair.dm
+++ b/code/modules/computer3/buildandrepair.dm
@@ -61,7 +61,7 @@
// Battery must be installed BEFORE wiring the computer.
// if installing it in an existing computer, you will have to
// get back to this state first.
- var/obj/item/weapon/cell/battery = null
+ var/obj/item/weapon/stock_parts/cell/battery = null
/obj/structure/computer3frame/server
name = "server frame"
@@ -143,7 +143,7 @@
else
user << "\red There's no battery to remove!"
- if(istype(P, /obj/item/weapon/cell))
+ if(istype(P, /obj/item/weapon/stock_parts/cell))
if(!battery)
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(5))
diff --git a/code/modules/computer3/computer.dm b/code/modules/computer3/computer.dm
index 456bdf3d71f..796dee7cd95 100644
--- a/code/modules/computer3/computer.dm
+++ b/code/modules/computer3/computer.dm
@@ -68,7 +68,7 @@
// the comms computer, solar trackers, etc, that should function when all else is off.
// Laptops will require batteries and have no mains power.
- var/obj/item/weapon/cell/battery = null // uninterruptible power supply aka battery
+ var/obj/item/weapon/stock_parts/cell/battery = null // uninterruptible power supply aka battery
verb/ResetComputer()
@@ -185,7 +185,7 @@
toybox.init(src)
continue
- if(ispath(typekey,/obj/item/weapon/cell))
+ if(ispath(typekey,/obj/item/weapon/stock_parts/cell))
if(battery) continue
battery = new typekey(src)
continue
@@ -452,7 +452,7 @@
//Returns percentage of battery charge remaining. Returns -1 if no battery is installed.
proc/check_battery_status()
if (battery)
- var/obj/item/weapon/cell/B = battery
+ var/obj/item/weapon/stock_parts/cell/B = battery
return round(B.charge / (B.maxcharge / 100))
else
return -1
diff --git a/code/modules/computer3/laptop.dm b/code/modules/computer3/laptop.dm
index 819036c6df5..bd45c044748 100644
--- a/code/modules/computer3/laptop.dm
+++ b/code/modules/computer3/laptop.dm
@@ -122,7 +122,7 @@
New(var/L, var/built = 0)
if(!built && !battery)
- battery = new /obj/item/weapon/cell(src)
+ battery = new /obj/item/weapon/stock_parts/cell(src)
..(L,built)
verb/close_computer()
diff --git a/code/modules/computer3/lapvend.dm b/code/modules/computer3/lapvend.dm
index 7d9b14da7ef..7792307d689 100644
--- a/code/modules/computer3/lapvend.dm
+++ b/code/modules/computer3/lapvend.dm
@@ -202,10 +202,10 @@
newlap.spawn_parts += (/obj/item/part/computer/networking/cable)
if (power == 1)
del(newlap.battery)
- newlap.battery = new /obj/item/weapon/cell/high(newlap)
+ newlap.battery = new /obj/item/weapon/stock_parts/cell/high(newlap)
if (power == 2)
del(newlap.battery)
- newlap.battery = new /obj/item/weapon/cell/super(newlap)
+ newlap.battery = new /obj/item/weapon/stock_parts/cell/super(newlap)
newlap.spawn_parts()
@@ -293,7 +293,7 @@
return total
/obj/machinery/lapvend/proc/choose_progs(var/obj/item/weapon/card/id/C)
- if(access_security in C.access || access_forensics_lockers in C.access)
+ if((access_medical in C.access) || (access_forensics_lockers in C.access))
newlap.spawn_files += (/datum/file/program/secure_data)
newlap.spawn_files += (/datum/file/camnet_key)
newlap.spawn_files += (/datum/file/camnet_key/researchoutpost)
@@ -349,9 +349,9 @@
network = 2
if(istype(L.stored_computer.net,/obj/item/part/computer/networking/cable))
network = 3
- if(istype(L.stored_computer.battery, /obj/item/weapon/cell/high))
+ if(istype(L.stored_computer.battery, /obj/item/weapon/stock_parts/cell/high))
power = 1
- if(istype(L.stored_computer.battery, /obj/item/weapon/cell/super))
+ if(istype(L.stored_computer.battery, /obj/item/weapon/stock_parts/cell/super))
power = 2
diff --git a/code/modules/computer3/test_machines.dm b/code/modules/computer3/test_machines.dm
index 998937e6344..1be6f232d61 100644
--- a/code/modules/computer3/test_machines.dm
+++ b/code/modules/computer3/test_machines.dm
@@ -12,7 +12,7 @@
/obj/item/part/computer/cardslot/dual,/obj/item/part/computer/networking/area)
New(var/L,var/built=0)
if(!built && !battery)
- battery = new /obj/item/weapon/cell(src)
+ battery = new /obj/item/weapon/stock_parts/cell(src)
..(L,built)
/obj/machinery/computer3/laptop/testing
@@ -28,7 +28,7 @@
/obj/item/part/computer/cardslot/dual,/obj/item/part/computer/networking/area)
New(var/L,var/built=0)
if(!built && !battery)
- battery = new /obj/item/weapon/cell/super(src)
+ battery = new /obj/item/weapon/stock_parts/cell/super(src)
..(L,built)
/obj/machinery/computer3/wall_comp/testing
@@ -44,7 +44,7 @@
/obj/item/part/computer/cardslot/dual,/obj/item/part/computer/networking/area)
New(var/L,var/built=0)
if(!built && !battery)
- battery = new /obj/item/weapon/cell(src)
+ battery = new /obj/item/weapon/stock_parts/cell(src)
..(L,built)
/obj/machinery/computer3/server/testing
@@ -60,7 +60,7 @@
/obj/item/part/computer/cardslot/dual,/obj/item/part/computer/networking/area)
New(var/L,var/built=0)
if(!built && !battery)
- battery = new /obj/item/weapon/cell(src)
+ battery = new /obj/item/weapon/stock_parts/cell(src)
..(L,built)
/obj/machinery/computer3/server/rack/testing
@@ -76,7 +76,7 @@
/obj/item/part/computer/cardslot/dual,/obj/item/part/computer/networking/area)
New(var/L,var/built=0)
if(!built && !battery)
- battery = new /obj/item/weapon/cell(src)
+ battery = new /obj/item/weapon/stock_parts/cell(src)
..(L,built)
/obj/item/weapon/storage/box/testing_disks
diff --git a/code/modules/jungle/jungle_temple.dm b/code/modules/jungle/jungle_temple.dm
index ca7b21c8cf8..138d1dc47d1 100644
--- a/code/modules/jungle/jungle_temple.dm
+++ b/code/modules/jungle/jungle_temple.dm
@@ -249,7 +249,7 @@
new /obj/item/weapon/storage/toolbox/electrical(C)
if(prob(25))
- new /obj/item/weapon/cell(C)
+ new /obj/item/weapon/stock_parts/cell(C)
if("coffin")
new /obj/structure/closet/coffin(src.loc)
diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm
index 65fc72f1636..4b6f63445d6 100644
--- a/code/modules/mining/drilling/drill.dm
+++ b/code/modules/mining/drilling/drill.dm
@@ -33,7 +33,7 @@
var/obj/item/weapon/stock_parts/matter_bin/storage
var/obj/item/weapon/stock_parts/micro_laser/cutter
var/obj/item/weapon/stock_parts/capacitor/cellmount
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
//Flags
var/need_update_field = 0
@@ -195,7 +195,7 @@
cellmount = W
user << "You install \the [W]."
return
- else if(istype(W,/obj/item/weapon/cell))
+ else if(istype(W,/obj/item/weapon/stock_parts/cell))
if(cell)
user << "The drill already has a cell installed."
else
diff --git a/code/modules/mining/manufacturing.dm b/code/modules/mining/manufacturing.dm
index 07a00bb7561..a59a1071a22 100644
--- a/code/modules/mining/manufacturing.dm
+++ b/code/modules/mining/manufacturing.dm
@@ -814,7 +814,7 @@
/datum/manufacture/powercell
name = "Power Cell"
- item = /obj/item/weapon/cell
+ item = /obj/item/weapon/stock_parts/cell
cost1 = /obj/item/weapon/ore/iron
cname1 = "Iron"
amount1 = 4
diff --git a/code/modules/mining/surprises/tg.dm b/code/modules/mining/surprises/tg.dm
index 5c9b6b201af..e80d3a87115 100644
--- a/code/modules/mining/surprises/tg.dm
+++ b/code/modules/mining/surprises/tg.dm
@@ -130,7 +130,7 @@
spawntypes = list(
/obj/item/weapon/pickaxe/plasmacutter=1,
/obj/machinery/shieldgen=1,
- /obj/item/weapon/cell/hyper=1
+ /obj/item/weapon/stock_parts/cell/hyper=1
)
fluffitems = list(
/obj/structure/table/reinforced=2,
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index c76cb6d2a82..80addc967c6 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -843,8 +843,8 @@ It can still be worn/put on as normal.
if(slot_r_hand)
return r_hand
return null
-
-/mob/living/carbon/human/get_item_by_slot(slot_id)
+
+/mob/living/carbon/get_item_by_slot(slot_id)
switch(slot_id)
if(slot_back)
return back
@@ -860,4 +860,45 @@ It can still be worn/put on as normal.
return r_hand
return null
-
+// Return the item currently in the slot ID
+/mob/living/carbon/human/get_item_by_slot(slot_id)
+ switch(slot_id)
+ if(slot_back)
+ return back
+ if(slot_wear_mask)
+ return wear_mask
+ if(slot_handcuffed)
+ return handcuffed
+ if(slot_legcuffed)
+ return legcuffed
+ if(slot_l_hand)
+ return l_hand
+ if(slot_r_hand)
+ return r_hand
+ if(slot_belt)
+ return belt
+ if(slot_wear_id)
+ return wear_id
+ if(slot_l_ear)
+ return l_ear
+ if(slot_r_ear)
+ return r_ear
+ if(slot_glasses)
+ return glasses
+ if(slot_gloves)
+ return gloves
+ if(slot_head)
+ return head
+ if(slot_shoes)
+ return shoes
+ if(slot_wear_suit)
+ return wear_suit
+ if(slot_w_uniform)
+ return w_uniform
+ if(slot_l_store)
+ return l_store
+ if(slot_r_store)
+ return r_store
+ if(slot_s_store)
+ return s_store
+ return null
diff --git a/code/modules/mob/living/silicon/mommi/life.dm b/code/modules/mob/living/silicon/mommi/life.dm
index 948d5967888..73e6ee16aa5 100644
--- a/code/modules/mob/living/silicon/mommi/life.dm
+++ b/code/modules/mob/living/silicon/mommi/life.dm
@@ -264,7 +264,7 @@
if (src.client)
src.client.screen -= src.contents
for(var/obj/I in src.contents)
- //if(I && !(istype(I,/obj/item/weapon/cell) || istype(I,/obj/item/device/radio) || istype(I,/obj/machinery/camera) || istype(I,/obj/item/device/mmi)))
+ //if(I && !(istype(I,/obj/item/weapon/stock_parts/cell) || istype(I,/obj/item/device/radio) || istype(I,/obj/machinery/camera) || istype(I,/obj/item/device/mmi)))
if(I)
// Make sure we're not showing any of our internal components, as that would be lewd.
// This way of doing it ensures that shit we pick up will be visible, wheras shit inside of us isn't.
diff --git a/code/modules/mob/living/silicon/mommi/mommi.dm b/code/modules/mob/living/silicon/mommi/mommi.dm
index 79034c8782c..91defdaedfb 100644
--- a/code/modules/mob/living/silicon/mommi/mommi.dm
+++ b/code/modules/mob/living/silicon/mommi/mommi.dm
@@ -40,7 +40,7 @@ They can only use one tool at a time, they can't choose modules, and they have 1
updateicon()
if(!cell)
- cell = new /obj/item/weapon/cell(src)
+ cell = new /obj/item/weapon/stock_parts/cell(src)
cell.maxcharge = 7500
cell.charge = 7500
..()
@@ -190,7 +190,7 @@ They can only use one tool at a time, they can't choose modules, and they have 1
opened = 1
updateicon()
- else if (istype(W, /obj/item/weapon/cell) && opened) // trying to put a cell inside
+ else if (istype(W, /obj/item/weapon/stock_parts/cell) && opened) // trying to put a cell inside
if(wiresexposed)
user << "Close the panel first."
else if(cell)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index 1db5b3e059f..fff8878ff0e 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -8,7 +8,7 @@
//Has a list of items that it can hold.
var/list/can_hold = list(
- /obj/item/weapon/cell,
+ /obj/item/weapon/stock_parts/cell,
/obj/item/weapon/firealarm_electronics,
/obj/item/weapon/airalarm_electronics,
/obj/item/weapon/airlock_electronics,
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 3bea2e0ee96..6ecbfbd9dfc 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -309,7 +309,7 @@
if (src.client)
src.client.screen -= src.contents
for(var/obj/I in src.contents)
- if(I && !(istype(I,/obj/item/weapon/cell) || istype(I,/obj/item/device/radio) || istype(I,/obj/machinery/camera) || istype(I,/obj/item/device/mmi)))
+ if(I && !(istype(I,/obj/item/weapon/stock_parts/cell) || istype(I,/obj/item/device/radio) || istype(I,/obj/machinery/camera) || istype(I,/obj/item/device/mmi)))
src.client.screen += I
if(src.module_state_1)
src.module_state_1:screen_loc = ui_inv1
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 1b12f3595fd..1e0a62eedb2 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -30,7 +30,7 @@
var/obj/item/device/radio/borg/radio = null
var/mob/living/silicon/ai/connected_ai = null
- var/obj/item/weapon/cell/cell = null
+ var/obj/item/weapon/stock_parts/cell/cell = null
var/obj/machinery/camera/camera = null
// Components are basically robot organs.
@@ -95,7 +95,7 @@
mmi.icon_state="posibrain-occupied"
if(syndie)
if(!cell)
- cell = new /obj/item/weapon/cell(src)
+ cell = new /obj/item/weapon/stock_parts/cell(src)
laws = new /datum/ai_laws/antimov()
lawupdate = 0
scrambledcodes = 1
@@ -124,7 +124,7 @@
C.wrapped = new C.external_type
if(!cell)
- cell = new /obj/item/weapon/cell(src)
+ cell = new /obj/item/weapon/stock_parts/cell(src)
cell.maxcharge = 7500
cell.charge = 7500
@@ -752,7 +752,7 @@
opened = 1
updateicon()
- else if (istype(W, /obj/item/weapon/cell) && opened) // trying to put a cell inside
+ else if (istype(W, /obj/item/weapon/stock_parts/cell) && opened) // trying to put a cell inside
var/datum/robot_component/C = components["power cell"]
if(wiresexposed)
user << "Close the panel first."
diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
index 0854948bf6a..aa64a6fe921 100644
--- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
+++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
@@ -8,7 +8,7 @@
var/obj/item/device/radio/borg/radio = null
var/mob/living/silicon/ai/connected_ai = null
- var/obj/item/weapon/cell/cell = null
+ var/obj/item/weapon/stock_parts/cell/cell = null
var/obj/machinery/camera/camera = null
var/obj/item/device/mmi/mmi = null
var/list/req_access = list(access_robotics) //Access needed to pop out the brain.
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 7a2eb7c5a38..be181ff7515 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -52,7 +52,7 @@
var/spooky=0
var/area/area
var/areastring = null
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
var/start_charge = 90 // initial cell charge %
var/cell_type = 2500 // 0=no cell, 1=regular, 2=high-cap (x5) <- old, now it's just 0=no cell, otherwise dictate cellcapacity by changing this value. 1 used to be 1000, 2 was 2500
var/opened = 0 //0=closed, 1=opened, 2=cover removed
@@ -142,7 +142,7 @@
has_electronics = 2 //installed and secured
// is starting with a power cell installed, create it and set its charge level
if(cell_type)
- src.cell = new/obj/item/weapon/cell(src)
+ src.cell = new/obj/item/weapon/stock_parts/cell(src)
cell.maxcharge = cell_type // cell_type is maximum charge (old default was 1000 or 2500 (values one and two respectively)
cell.charge = start_charge * cell.maxcharge / 100.0 // (convert percentage to actual value)
@@ -399,7 +399,7 @@
else
opened = 1
update_icon()
- else if (istype(W, /obj/item/weapon/cell) && opened) // trying to put a cell inside
+ else if (istype(W, /obj/item/weapon/stock_parts/cell) && opened) // trying to put a cell inside
if(cell)
user << "There is a power cell already installed."
return
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index e099b39e35d..606d58a4724 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -1,16 +1,16 @@
// the power cell
// charge from 0 to 100%
// fits in APC to provide backup power
-/obj/item/weapon/cell/var/image/overlay_image
+/obj/item/weapon/stock_parts/cell/var/image/overlay_image
-/obj/item/weapon/cell/New()
+/obj/item/weapon/stock_parts/cell/New()
..()
charge = maxcharge
spawn(5)
updateicon()
-/obj/item/weapon/cell/proc/updateicon()
+/obj/item/weapon/stock_parts/cell/proc/updateicon()
if(isnull(src.overlay_image))
src.overlay_image = image('icons/obj/power.dmi')
overlays.Cut()
@@ -24,11 +24,11 @@
src.overlay_image.icon_state = "cell-o1"
overlays += src.overlay_image
-/obj/item/weapon/cell/proc/percent() // return % charge of cell
+/obj/item/weapon/stock_parts/cell/proc/percent() // return % charge of cell
return 100.0*charge/maxcharge
// use power from a cell
-/obj/item/weapon/cell/proc/use(var/amount)
+/obj/item/weapon/stock_parts/cell/proc/use(var/amount)
if(rigged && amount > 0)
explode()
return 0
@@ -38,7 +38,7 @@
return 1
// recharge the cell
-/obj/item/weapon/cell/proc/give(var/amount)
+/obj/item/weapon/stock_parts/cell/proc/give(var/amount)
if(rigged && amount > 0)
explode()
return 0
@@ -55,7 +55,7 @@
return power_used
-/obj/item/weapon/cell/examine()
+/obj/item/weapon/stock_parts/cell/examine()
set src in view(1)
if(usr /*&& !usr.stat*/)
if(maxcharge <= 2500)
@@ -65,7 +65,7 @@
if(crit_fail)
usr << "\red This power cell seems to be faulty."
-/obj/item/weapon/cell/attack_self(mob/user as mob)
+/obj/item/weapon/stock_parts/cell/attack_self(mob/user as mob)
src.add_fingerprint(user)
if(ishuman(user))
@@ -76,7 +76,7 @@
SNG.drain("CELL",src,H.wear_suit)
return
-/obj/item/weapon/cell/attackby(obj/item/W, mob/user)
+/obj/item/weapon/stock_parts/cell/attackby(obj/item/W, mob/user)
..()
if(istype(W, /obj/item/weapon/reagent_containers/syringe))
var/obj/item/weapon/reagent_containers/syringe/S = W
@@ -93,7 +93,7 @@
S.reagents.clear_reagents()
-/obj/item/weapon/cell/proc/explode()
+/obj/item/weapon/stock_parts/cell/proc/explode()
var/turf/T = get_turf(src.loc)
/*
* 1000-cell explosion(T, -1, 0, 1, 1)
@@ -121,13 +121,13 @@
spawn(1)
del(src)
-/obj/item/weapon/cell/proc/corrupt()
+/obj/item/weapon/stock_parts/cell/proc/corrupt()
charge /= 2
maxcharge /= 2
if (prob(10))
rigged = 1 //broken batterys are dangerous
-/obj/item/weapon/cell/emp_act(severity)
+/obj/item/weapon/stock_parts/cell/emp_act(severity)
charge -= 1000 / severity
if (charge < 0)
charge = 0
@@ -135,7 +135,7 @@
reliability -= 10 / severity
..()
-/obj/item/weapon/cell/ex_act(severity)
+/obj/item/weapon/stock_parts/cell/ex_act(severity)
switch(severity)
if(1.0)
@@ -155,10 +155,10 @@
corrupt()
return
-/obj/item/weapon/cell/blob_act()
+/obj/item/weapon/stock_parts/cell/blob_act()
ex_act(1)
-/obj/item/weapon/cell/proc/get_electrocute_damage()
+/obj/item/weapon/stock_parts/cell/proc/get_electrocute_damage()
switch (charge)
/* if (9000 to INFINITY)
return min(rand(90,150),rand(90,150))
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index bff319d9b60..fbb8d479470 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -475,11 +475,11 @@
power_source = Cable.powernet
var/datum/powernet/PN
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
if(istype(power_source,/datum/powernet))
PN = power_source
- else if(istype(power_source,/obj/item/weapon/cell))
+ else if(istype(power_source,/obj/item/weapon/stock_parts/cell))
cell = power_source
else if(istype(power_source,/obj/machinery/power/apc))
var/obj/machinery/power/apc/apc = power_source
@@ -514,7 +514,7 @@
else if (istype(power_source,/datum/powernet))
var/drained_power = drained_energy/CELLRATE //convert from "joules" to "watts"
PN.newload+=drained_power
- else if (istype(power_source, /obj/item/weapon/cell))
+ else if (istype(power_source, /obj/item/weapon/stock_parts/cell))
cell.use(drained_energy)
return drained_energy
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 1613bc46187..a3065ce3bb4 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -33,11 +33,11 @@
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/smes(null)
- component_parts += new /obj/item/weapon/cell/high(null)
- component_parts += new /obj/item/weapon/cell/high(null)
- component_parts += new /obj/item/weapon/cell/high(null)
- component_parts += new /obj/item/weapon/cell/high(null)
- component_parts += new /obj/item/weapon/cell/high(null)
+ component_parts += new /obj/item/weapon/stock_parts/cell/high(null)
+ component_parts += new /obj/item/weapon/stock_parts/cell/high(null)
+ component_parts += new /obj/item/weapon/stock_parts/cell/high(null)
+ component_parts += new /obj/item/weapon/stock_parts/cell/high(null)
+ component_parts += new /obj/item/weapon/stock_parts/cell/high(null)
component_parts += new /obj/item/weapon/stock_parts/capacitor(null)
component_parts += new /obj/item/stack/cable_coil(null, 5)
RefreshParts()
@@ -68,7 +68,7 @@
IO += CP.rating
input_level_max = 200000 * IO
output_level_max = 200000 * IO
- for(var/obj/item/weapon/cell/PC in component_parts)
+ for(var/obj/item/weapon/stock_parts/cell/PC in component_parts)
C += PC.maxcharge
capacity = C / (15000) * 1e6
diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm
index 76ea406751b..177255cfe72 100644
--- a/code/modules/projectiles/guns/alien.dm
+++ b/code/modules/projectiles/guns/alien.dm
@@ -77,7 +77,7 @@
force = 10
projectile_type = "/obj/item/projectile/energy/sonic"
- cell_type = "/obj/item/weapon/cell/super"
+ cell_type = "/obj/item/weapon/stock_parts/cell/super"
fire_delay = 40
fire_sound = 'sound/effects/basscannon.ogg'
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 3d09aadc2c6..b3bb07066e6 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -4,9 +4,9 @@
desc = "A basic energy-based gun."
fire_sound = 'sound/weapons/Taser.ogg'
- var/obj/item/weapon/cell/power_supply //What type of power cell this uses
+ var/obj/item/weapon/stock_parts/cell/power_supply //What type of power cell this uses
var/charge_cost = 1000 //How much energy is needed to fire.
- var/cell_type = "/obj/item/weapon/cell"
+ var/cell_type = "/obj/item/weapon/stock_parts/cell"
var/projectile_type = "/obj/item/projectile/beam"
var/modifystate
@@ -55,7 +55,7 @@
/*
attackby(obj/item/weapon/W, mob/user)
- if(istype(W, /obj/item/weapon/cell))
+ if(istype(W, /obj/item/weapon/stock_parts/cell))
if(!power_supply)
user.drop_item()
W.loc = src
diff --git a/code/modules/projectiles/guns/energy/advtaser.dm b/code/modules/projectiles/guns/energy/advtaser.dm
index ff552909ab8..039c569131e 100644
--- a/code/modules/projectiles/guns/energy/advtaser.dm
+++ b/code/modules/projectiles/guns/energy/advtaser.dm
@@ -4,7 +4,7 @@
icon_state = "advtaser"
item_state = null //so the human update icon uses the icon_state instead.
icon_override = 'icons/mob/in-hand/guns.dmi'
- cell_type = "/obj/item/weapon/cell"
+ cell_type = "/obj/item/weapon/stock_parts/cell"
origin_tech = null
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm
index e11a604b45e..38f14ca87b0 100644
--- a/code/modules/projectiles/guns/energy/pulse.dm
+++ b/code/modules/projectiles/guns/energy/pulse.dm
@@ -7,7 +7,7 @@
fire_sound = 'sound/weapons/pulse.ogg'
charge_cost = 200
projectile_type = "/obj/item/projectile/beam/pulse"
- cell_type = "/obj/item/weapon/cell/super"
+ cell_type = "/obj/item/weapon/stock_parts/cell/super"
var/mode = 2
slot_flags = SLOT_BACK
w_class = 4.0
@@ -52,7 +52,7 @@
/obj/item/weapon/gun/energy/pulse_rifle/destroyer
name = "pulse destroyer"
desc = "A heavy-duty, pulse-based energy weapon."
- cell_type = "/obj/item/weapon/cell/infinite"
+ cell_type = "/obj/item/weapon/stock_parts/cell/infinite"
attack_self(mob/living/user as mob)
user << "\red [src.name] has three settings, and they are all DESTROY."
@@ -63,7 +63,7 @@
name = "m1911-P"
desc = "It's not the size of the gun, it's the size of the hole it puts through people."
icon_state = "m1911-p"
- cell_type = "/obj/item/weapon/cell/infinite"
+ cell_type = "/obj/item/weapon/stock_parts/cell/infinite"
w_class = 3.0
slot_flags = SLOT_BELT
isHandgun()
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 558745deac3..a8353bba498 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -92,7 +92,7 @@
item_state = "c20r"
w_class = 4
projectile_type = "/obj/item/projectile/meteor"
- cell_type = "/obj/item/weapon/cell/potato"
+ cell_type = "/obj/item/weapon/stock_parts/cell/potato"
clumsy_check = 0 //Admin spawn only, might as well let clowns use it.
var/charge_tick = 0
var/recharge_time = 5 //Time it takes for shots to recharge (in ticks)
@@ -229,7 +229,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
projectile_type = "/obj/item/projectile/kinetic"
fire_sound = 'sound/weapons/Kenetic_accel.ogg'
charge_cost = 5000
- cell_type = "/obj/item/weapon/cell/crap"
+ cell_type = "/obj/item/weapon/stock_parts/cell/crap"
var/overheat = 0
var/recent_reload = 1
@@ -255,7 +255,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
icon_state = "disabler"
item_state = null
projectile_type = "/obj/item/projectile/beam/disabler"
- cell_type = "/obj/item/weapon/cell"
+ cell_type = "/obj/item/weapon/stock_parts/cell"
charge_cost = 500
@@ -268,7 +268,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
icon_state = "l6closed0"
icon = 'icons/obj/gun.dmi'
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
- cell_type = "/obj/item/weapon/cell/secborg"
+ cell_type = "/obj/item/weapon/stock_parts/cell/secborg"
projectile_type = "/obj/item/projectile/bullet/midbullet3"
charge_cost = 300 //Yeah, let's NOT give them a 300 round clip that recharges, 20 is more reasonable and will actually hurt the borg's battery for overuse.
var/charge_tick = 0
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index ce9e12a51f8..f5002bdd0f5 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -6,7 +6,7 @@
item_state = null //so the human update icon uses the icon_state instead.
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
- cell_type = "/obj/item/weapon/cell/crap"
+ cell_type = "/obj/item/weapon/stock_parts/cell/crap"
/obj/item/weapon/gun/energy/taser/cyborg
name = "taser gun"
@@ -14,7 +14,7 @@
icon_state = "taser"
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
- cell_type = "/obj/item/weapon/cell/secborg"
+ cell_type = "/obj/item/weapon/stock_parts/cell/secborg"
var/charge_tick = 0
var/recharge_time = 10 //Time it takes for shots to recharge (in ticks)
@@ -49,7 +49,7 @@
fire_sound = "sound/weapons/gunshot.ogg"
origin_tech = "combat=3;materials=3;powerstorage=2"
projectile_type = "/obj/item/projectile/energy/electrode"
- cell_type = "/obj/item/weapon/cell"
+ cell_type = "/obj/item/weapon/stock_parts/cell"
@@ -64,7 +64,7 @@
silenced = 1
fire_sound = 'sound/weapons/Genhit.ogg'
projectile_type = "/obj/item/projectile/energy/bolt"
- cell_type = "/obj/item/weapon/cell/crap"
+ cell_type = "/obj/item/weapon/stock_parts/cell/crap"
var/charge_tick = 0
/obj/item/weapon/gun/energy/crossbow/New()
diff --git a/code/modules/projectiles/guns/energy/temperature.dm b/code/modules/projectiles/guns/energy/temperature.dm
index 520a2cf6c73..ffc680a151a 100644
--- a/code/modules/projectiles/guns/energy/temperature.dm
+++ b/code/modules/projectiles/guns/energy/temperature.dm
@@ -9,7 +9,7 @@
origin_tech = "combat=3;materials=4;powerstorage=3;magnets=2"
projectile_type = "/obj/item/projectile/temp"
- cell_type = "/obj/item/weapon/cell/crap"
+ cell_type = "/obj/item/weapon/stock_parts/cell/crap"
New()
diff --git a/code/modules/projectiles/guns/projectile/crossbow.dm b/code/modules/projectiles/guns/projectile/crossbow.dm
index 17fd65cacee..655fcfb92a8 100644
--- a/code/modules/projectiles/guns/projectile/crossbow.dm
+++ b/code/modules/projectiles/guns/projectile/crossbow.dm
@@ -72,7 +72,7 @@
var/tension = 0 // Current draw on the bow.
var/max_tension = 5 // Highest possible tension.
var/release_speed = 5 // Speed per unit of tension.
- var/obj/item/weapon/cell/cell = null // Used for firing superheated rods.
+ var/obj/item/weapon/stock_parts/cell/cell = null // Used for firing superheated rods.
var/current_user // Used to check if the crossbow has changed hands since being drawn.
/obj/item/weapon/gun/launcher/crossbow/emp_act(severity)
@@ -158,7 +158,7 @@
superheat_rod(user)
return
- if(istype(W, /obj/item/weapon/cell))
+ if(istype(W, /obj/item/weapon/stock_parts/cell))
if(!cell)
user.drop_item()
W.loc = src
@@ -213,7 +213,7 @@
user.visible_message("\The [src] only takes baguettes.")
return
- if(istype(W, /obj/item/weapon/cell))
+ if(istype(W, /obj/item/weapon/stock_parts/cell))
user.visible_message("The [src] is too simple be adapted with a cell.")
return
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 7bf99cec11e..90df4c90982 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -65,7 +65,7 @@
options[/obj/item/weapon/stock_parts/console_screen] = "Replace the console screen to fix it."
options[/obj/item/weapon/stock_parts/manipulator/pico] = "Upgrade to a pico manipulator to fix it."
options[/obj/item/weapon/stock_parts/matter_bin/super] = "Give it a super matter bin to fix it."
- options[/obj/item/weapon/cell/super] = "Replace the reagent synthesizer with a super capacity cell to fix it."
+ options[/obj/item/weapon/stock_parts/cell/super] = "Replace the reagent synthesizer with a super capacity cell to fix it."
options[/obj/item/device/mass_spectrometer/adv] = "Replace the reagent scanner with an advanced mass spectrometer to fix it"
options[/obj/item/weapon/stock_parts/micro_laser/high] = "Repair the reagent synthesizer with an high-power micro-laser to fix it"
options[/obj/item/device/reagent_scanner/adv] = "Replace the reagent scanner with an advanced reagent scanner to fix it"
@@ -290,7 +290,7 @@
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
- component_parts += new /obj/item/weapon/cell/super(src)
+ component_parts += new /obj/item/weapon/stock_parts/cell/super(src)
RefreshParts()
/obj/machinery/chem_dispenser/constructable/RefreshParts()
@@ -303,7 +303,7 @@
max_energy = temp_energy * 5 //max energy = (bin1.rating + bin2.rating - 1) * 5, 5 on lowest 25 on highest
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
time += C.rating
- for(var/obj/item/weapon/cell/P in component_parts)
+ for(var/obj/item/weapon/stock_parts/cell/P in component_parts)
time += round(P.maxcharge, 10000) / 10000
recharge_delay /= time/2 //delay between recharges, double the usual time on lowest 50% less than usual on highest
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index e768546c883..4f3a0990476 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -1323,7 +1323,7 @@ datum
required_container = /obj/item/slime_extract/yellow
required_other = 1
on_reaction(var/datum/reagents/holder, var/created_volume)
- var/obj/item/weapon/cell/slime/P = new /obj/item/weapon/cell/slime
+ var/obj/item/weapon/stock_parts/cell/slime/P = new /obj/item/weapon/stock_parts/cell/slime
P.loc = get_turf_loc(holder.my_atom)
slimeglow
diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm
index c3d41be9820..036e19439d9 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm
@@ -89,7 +89,7 @@
W:amount -= 5
if(!W:amount) del(W)
user << "You add some cable to the potato and slide it inside the battery encasing."
- var/obj/item/weapon/cell/potato/pocell = new /obj/item/weapon/cell/potato(user.loc)
+ var/obj/item/weapon/stock_parts/cell/potato/pocell = new /obj/item/weapon/stock_parts/cell/potato(user.loc)
pocell.maxcharge = src.potency * 10
pocell.charge = pocell.maxcharge
del(src)
diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm
index 2b6efbff3fb..9edc8400e3e 100644
--- a/code/modules/research/designs/power_designs.dm
+++ b/code/modules/research/designs/power_designs.dm
@@ -9,7 +9,7 @@
req_tech = list("powerstorage" = 1)
build_type = PROTOLATHE | AUTOLATHE | MECHFAB
materials = list("$metal" = 700, "$glass" = 50)
- build_path = /obj/item/weapon/cell
+ build_path = /obj/item/weapon/stock_parts/cell
category = list("Misc","Power")
/datum/design/high_cell
@@ -19,7 +19,7 @@
req_tech = list("powerstorage" = 2)
build_type = PROTOLATHE | AUTOLATHE | MECHFAB
materials = list("$metal" = 700, "$glass" = 60)
- build_path = /obj/item/weapon/cell/high
+ build_path = /obj/item/weapon/stock_parts/cell/high
category = list("Misc","Power")
/datum/design/hyper_cell
@@ -30,7 +30,7 @@
reliability_base = 70
build_type = PROTOLATHE | MECHFAB
materials = list("$metal" = 400, "$gold" = 150, "$silver" = 150, "$glass" = 70)
- build_path = /obj/item/weapon/cell/hyper
+ build_path = /obj/item/weapon/stock_parts/cell/hyper
category = list("Misc","Power")
/datum/design/super_cell
@@ -41,7 +41,7 @@
reliability_base = 75
build_type = PROTOLATHE | MECHFAB
materials = list("$metal" = 700, "$glass" = 70)
- build_path = /obj/item/weapon/cell/super
+ build_path = /obj/item/weapon/stock_parts/cell/super
category = list("Misc","Power")
/datum/design/pacman
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm b/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm
index 56954dc6dd1..d770c0def1d 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm
@@ -48,7 +48,7 @@
/obj/item/weapon/caution/cone,\
/obj/item/weapon/crowbar,\
/obj/item/weapon/clipboard,\
- /obj/item/weapon/cell,\
+ /obj/item/weapon/stock_parts/cell,\
/obj/item/weapon/circular_saw,\
/obj/item/weapon/hatchet,\
/obj/item/weapon/handcuffs,\
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm
index d7ff967c2d0..da7f1a012ee 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm
@@ -8,7 +8,7 @@
if(user)
if(istype(user, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = user
- for (var/obj/item/weapon/cell/D in R.contents)
+ for (var/obj/item/weapon/stock_parts/cell/D in R.contents)
D.charge += rand() * 100 + 50
R << "\blue SYSTEM ALERT: Large energy boost detected!"
return 1
@@ -17,12 +17,12 @@
if(holder)
var/turf/T = get_turf(holder)
for (var/obj/machinery/power/apc/C in range(200, T))
- for (var/obj/item/weapon/cell/B in C.contents)
+ for (var/obj/item/weapon/stock_parts/cell/B in C.contents)
B.charge += 25
for (var/obj/machinery/power/smes/S in range (src.effectrange,src))
S.charge += 25
for (var/mob/living/silicon/robot/M in mob_list)
- for (var/obj/item/weapon/cell/D in M.contents)
+ for (var/obj/item/weapon/stock_parts/cell/D in M.contents)
D.charge += 25
M << "\blue SYSTEM ALERT: Energy boost detected!"
return 1
@@ -31,12 +31,12 @@
if(holder)
var/turf/T = get_turf(holder)
for (var/obj/machinery/power/apc/C in range(200, T))
- for (var/obj/item/weapon/cell/B in C.contents)
+ for (var/obj/item/weapon/stock_parts/cell/B in C.contents)
B.charge += rand() * 100
for (var/obj/machinery/power/smes/S in range (src.effectrange,src))
S.charge += 250
for (var/mob/living/silicon/robot/M in mob_list)
- for (var/obj/item/weapon/cell/D in M.contents)
+ for (var/obj/item/weapon/stock_parts/cell/D in M.contents)
D.charge += rand() * 100
M << "\blue SYSTEM ALERT: Energy boost detected!"
return 1
diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm
index 8af61035d49..025cdec5ee0 100644
--- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm
@@ -8,7 +8,7 @@
if(user)
if(istype(user, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = user
- for (var/obj/item/weapon/cell/D in R.contents)
+ for (var/obj/item/weapon/stock_parts/cell/D in R.contents)
D.charge = max(D.charge - rand() * 100, 0)
R << "\blue SYSTEM ALERT: Energy drain detected!"
return 1
@@ -19,12 +19,12 @@
if(holder)
var/turf/T = get_turf(holder)
for (var/obj/machinery/power/apc/C in range(200, T))
- for (var/obj/item/weapon/cell/B in C.contents)
+ for (var/obj/item/weapon/stock_parts/cell/B in C.contents)
B.charge = max(B.charge - 50,0)
for (var/obj/machinery/power/smes/S in range (src.effectrange,src))
S.charge = max(S.charge - 100,0)
for (var/mob/living/silicon/robot/M in mob_list)
- for (var/obj/item/weapon/cell/D in M.contents)
+ for (var/obj/item/weapon/stock_parts/cell/D in M.contents)
D.charge = max(D.charge - 50,0)
M << "\red SYSTEM ALERT: Energy drain detected!"
return 1
@@ -33,12 +33,12 @@
if(holder)
var/turf/T = get_turf(holder)
for (var/obj/machinery/power/apc/C in range(200, T))
- for (var/obj/item/weapon/cell/B in C.contents)
+ for (var/obj/item/weapon/stock_parts/cell/B in C.contents)
B.charge = max(B.charge - rand() * 150,0)
for (var/obj/machinery/power/smes/S in range (src.effectrange,src))
S.charge = max(S.charge - 250,0)
for (var/mob/living/silicon/robot/M in mob_list)
- for (var/obj/item/weapon/cell/D in M.contents)
+ for (var/obj/item/weapon/stock_parts/cell/D in M.contents)
D.charge = max(D.charge - rand() * 150,0)
M << "\red SYSTEM ALERT: Energy drain detected!"
return 1
diff --git a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm
index e0a1faf60d2..2a6df06c6f5 100644
--- a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm
+++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm
@@ -5,7 +5,7 @@
icon_state = "suspension2"
density = 1
req_access = list(access_research)
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
var/obj/item/weapon/card/id/auth_card
var/locked = 1
var/open = 0
@@ -16,7 +16,7 @@
var/list/secured_mobs = list()
/obj/machinery/suspension_gen/New()
- src.cell = new/obj/item/weapon/cell/high(src)
+ src.cell = new/obj/item/weapon/stock_parts/cell/high(src)
..()
/obj/machinery/suspension_gen/process()
@@ -205,7 +205,7 @@
desc = "It has stubby legs bolted up against it's body for stabilising."
else
user << "You are unable to secure [src] while it is active!"
- else if (istype(W, /obj/item/weapon/cell))
+ else if (istype(W, /obj/item/weapon/stock_parts/cell))
if(open)
if(cell)
user << "There is a power cell already installed."
diff --git a/code/modules/vehicles/ambulance.dm b/code/modules/vehicles/ambulance.dm
index 581b8ca8efd..139bf08fde4 100644
--- a/code/modules/vehicles/ambulance.dm
+++ b/code/modules/vehicles/ambulance.dm
@@ -39,7 +39,7 @@
//-------------------------------------------
/obj/vehicle/train/ambulance/engine/New()
..()
- cell = new /obj/item/weapon/cell/high
+ cell = new /obj/item/weapon/stock_parts/cell/high
verbs -= /atom/movable/verb/pull
key = new()
@@ -86,10 +86,10 @@
..()
flick("mulebot-emagged", src)
-/obj/vehicle/train/ambulance/trolley/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H)
+/obj/vehicle/train/ambulance/trolley/insert_cell(var/obj/item/weapon/stock_parts/cell/C, var/mob/living/carbon/human/H)
return
-/obj/vehicle/train/ambulance/engine/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H)
+/obj/vehicle/train/ambulance/engine/insert_cell(var/obj/item/weapon/stock_parts/cell/C, var/mob/living/carbon/human/H)
..()
update_stats()
diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm
index cc416aa34b3..896ee3cc652 100644
--- a/code/modules/vehicles/cargo_train.dm
+++ b/code/modules/vehicles/cargo_train.dm
@@ -40,7 +40,7 @@
//-------------------------------------------
/obj/vehicle/train/cargo/engine/New()
..()
- cell = new /obj/item/weapon/cell/high
+ cell = new /obj/item/weapon/stock_parts/cell/high
verbs -= /atom/movable/verb/pull
key = new()
var/image/I = new(icon = 'icons/obj/vehicles.dmi', icon_state = "cargo_engine_overlay", layer = src.layer + 0.2) //over mobs
@@ -82,10 +82,10 @@
else
icon_state = initial(icon_state)
-/obj/vehicle/train/cargo/trolley/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H)
+/obj/vehicle/train/cargo/trolley/insert_cell(var/obj/item/weapon/stock_parts/cell/C, var/mob/living/carbon/human/H)
return
-/obj/vehicle/train/cargo/engine/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H)
+/obj/vehicle/train/cargo/engine/insert_cell(var/obj/item/weapon/stock_parts/cell/C, var/mob/living/carbon/human/H)
..()
update_stats()
diff --git a/code/modules/vehicles/janicart.dm b/code/modules/vehicles/janicart.dm
index 8219335c24a..39008dfb2ba 100644
--- a/code/modules/vehicles/janicart.dm
+++ b/code/modules/vehicles/janicart.dm
@@ -43,7 +43,7 @@
//-------------------------------------------
/obj/vehicle/train/janitor/engine/New()
..()
- cell = new /obj/item/weapon/cell/high
+ cell = new /obj/item/weapon/stock_parts/cell/high
verbs -= /atom/movable/verb/pull
key = new()
var/datum/reagents/R = new/datum/reagents(100)
@@ -136,10 +136,10 @@
..()
flick("mulebot-emagged", src)
-/obj/vehicle/train/janitor/trolley/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H)
+/obj/vehicle/train/janitor/trolley/insert_cell(var/obj/item/weapon/stock_parts/cell/C, var/mob/living/carbon/human/H)
return
-/obj/vehicle/train/janitor/engine/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H)
+/obj/vehicle/train/janitor/engine/insert_cell(var/obj/item/weapon/stock_parts/cell/C, var/mob/living/carbon/human/H)
..()
update_stats()
diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm
index 1eaf42f62ce..a929e4499d9 100644
--- a/code/modules/vehicles/vehicle.dm
+++ b/code/modules/vehicles/vehicle.dm
@@ -21,7 +21,7 @@
var/move_delay = 1 //set this to limit the speed of the vehicle
var/movable = 1
- var/obj/item/weapon/cell/cell
+ var/obj/item/weapon/stock_parts/cell/cell
var/charge_use = 5 //set this to adjust the amount of power the vehicle uses per move
var/atom/movable/load //all vehicles can take a load, since they should all be a least drivable
@@ -72,7 +72,7 @@
else if(istype(W, /obj/item/weapon/crowbar) && cell && open)
remove_cell(user)
- else if(istype(W, /obj/item/weapon/cell) && !cell && open)
+ else if(istype(W, /obj/item/weapon/stock_parts/cell) && !cell && open)
insert_cell(W, user)
else if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/T = W
@@ -236,7 +236,7 @@
turn_on()
return
-/obj/vehicle/proc/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H)
+/obj/vehicle/proc/insert_cell(var/obj/item/weapon/stock_parts/cell/C, var/mob/living/carbon/human/H)
if(cell)
return
if(!istype(C))
diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi
index bbad97bf8bd..f989cb1ab34 100644
Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ
diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi
index ab98bbb87be..e2f6452cdcd 100644
Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ
diff --git a/maps/RandomZLevels/moonoutpost19.dmm b/maps/RandomZLevels/moonoutpost19.dmm
index c9f561c8109..cf8bcee621f 100644
--- a/maps/RandomZLevels/moonoutpost19.dmm
+++ b/maps/RandomZLevels/moonoutpost19.dmm
@@ -109,7 +109,7 @@
"ce" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{carbon_dioxide = 48.7; dir = 1; heat_capacity = 1e+006; icon_state = "warning"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"})
"cf" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{carbon_dioxide = 48.7; dir = 4; heat_capacity = 1e+006; icon_state = "warningcorner"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"})
"cg" = (/obj/machinery/light/small{active_power_usage = 0; dir = 4; icon_state = "bulb-broken"; status = 2},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{carbon_dioxide = 48.7; dir = 4; heat_capacity = 1e+006; icon_state = "red"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"})
-"ch" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light/small{dir = 8},/obj/item/weapon/cell/high,/obj/item/weapon/paper{info = "Alright, listen up. If you're reading this, I'm either taking a shit or I've been recalled back to Command. Either way, you'll need to know how to restore power. We've stolen this stuff from Nanotrasen, so all the equipment is jury-rigged. We have generators that work on both plasma and uranium, about 50 sheets should power the outpost for quite a while. If the generators aren't working, which is very likely, take the power cell on the desk and put it into the APC in the hallway. That should get the place running, at least for a little while."; name = "Engineering Instructions"},/turf/simulated/floor/plating{dir = 8; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"})
+"ch" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light/small{dir = 8},/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/paper{info = "Alright, listen up. If you're reading this, I'm either taking a shit or I've been recalled back to Command. Either way, you'll need to know how to restore power. We've stolen this stuff from Nanotrasen, so all the equipment is jury-rigged. We have generators that work on both plasma and uranium, about 50 sheets should power the outpost for quite a while. If the generators aren't working, which is very likely, take the power cell on the desk and put it into the APC in the hallway. That should get the place running, at least for a little while."; name = "Engineering Instructions"},/turf/simulated/floor/plating{dir = 8; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"})
"ci" = (/obj/structure/stool,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"})
"cj" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating{dir = 1; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"})
"ck" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{dir = 4; heat_capacity = 1e+006; icon_state = "warnplatecorner"; tag = "icon-warnplatecorner (EAST)"},/area/awaycontent/a4{has_gravity = 1; name = "Syndicate Outpost"})
@@ -332,7 +332,7 @@
"gt" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment{desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 4; name = "Acid-Proof disposal pipe"; unacidable = 1},/obj/machinery/door/poddoor/preopen{desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; id = "Awaylab"; name = "Acid-Proof containment chamber blast door"; unacidable = 1},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/full/reinforced,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
"gu" = (/obj/structure/disposalpipe/segment{desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 4; name = "Acid-Proof disposal pipe"; unacidable = 1},/obj/structure/alien/weeds,/obj/structure/alien/resin/wall,/turf/simulated/floor/engine,/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
"gv" = (/obj/structure/disposalpipe/segment{desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; dir = 2; icon_state = "pipe-c"; name = "Acid-Proof disposal pipe"; unacidable = 1},/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/engine,/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
-"gw" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/obj/item/device/radio/off,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
+"gw" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high,/obj/item/device/radio/off,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
"gx" = (/obj/structure/table,/obj/item/weapon/paper{info = "Ivan Volodin Stories:
Entry Won - 28/05/2554:
Hello. I am Crazy Ivan. Boss say I must write. I do good job fixing outpost. Is very good job. Much better than mines. Many nice people. I cause no trouble.
Entry Too - 05/06/2554:
I am finding problem with Booze-O-Mat. Is not problem. I solve very easy. Use yellow tool to make purple light go off. I am good engineer! Bartender will be very happy.
Entry Tree - 08/06/2554:
Bartender is not happy. Security man is not happy. Cannot feel legs, is very cold in freezer. Is not good. Table is jammed into door, have no tools. Is very not good. But, on bright side, found meat! Shall chew to keep spirits up.
Entry Fore - 12/06/2554:
Big nasty purple bug looked at me today. Make nervous. Blue wall wire can be broken, then bad thing happens. Very very bad thing. Man in orange spacesuit wave at me today too. He seem nice. Wonder who was?
Entry Fiv - 15/06/2554:
I eat cornflakes today. Is good day. Sun shine for a while. Was nice. I also take ride on disposals chute. Was fun, but tiny. Get clog out of pipes, was vodka bottle. Is empty. This make many sads.
Entry Sex: 19/06/2554:
Purple bugs jumpy today. When waved, get hiss. Maybe very bad. Maybe just ill. Do not know. Is science problem, is not engineer problem. I eat sandwich. Is glorious job. Wish to never end."; name = "Personal Log - Ivan Volodin"},/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
"gy" = (/obj/machinery/light/small,/obj/structure/closet/toolcloset,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
"gz" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
@@ -568,7 +568,7 @@
"kV" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "0"},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"kW" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 0; heat_capacity = 1e+006; icon_state = "blue"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"kX" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/multitool,/turf/simulated/floor{dir = 0; heat_capacity = 1e+006; icon_state = "blue"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
-"kY" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 0; heat_capacity = 1e+006; icon_state = "blue"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
+"kY" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 0; heat_capacity = 1e+006; icon_state = "blue"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"kZ" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 0; heat_capacity = 1e+006; icon_state = "blue"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"la" = (/obj/structure/stool/bed/chair,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"lb" = (/obj/structure/extinguisher_cabinet{pixel_x = 26; pixel_y = 0},/obj/machinery/camera{c_tag = "Kitchen"; dir = 8; network = list("MO19")},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
@@ -711,7 +711,7 @@
"nI" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"nJ" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/awaycontent/a3{always_unpowered = 1; has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0})
"nK" = (/obj/machinery/washing_machine,/turf/simulated/floor{carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_state = "barber"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
-"nL" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 4; layer = 2.9},/obj/structure/table,/obj/structure/bedsheetbin,/obj/item/clothing/tie/black,/obj/item/clothing/under/lawyer/black,/turf/simulated/floor{carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_state = "barber"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
+"nL" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 4; layer = 2.9},/obj/structure/table,/obj/structure/bedsheetbin,/obj/item/clothing/accessory/black,/obj/item/clothing/under/lawyer/black,/turf/simulated/floor{carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_state = "barber"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"nM" = (/obj/machinery/alarm{dir = 8; frequency = 1439; locked = 0; pixel_x = 23; pixel_y = 0; req_access = null},/turf/simulated/floor{carbon_dioxide = 48.7; dir = 2; heat_capacity = 1e+006; icon_state = "neutralcorner"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"nN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "201"; req_one_access_txt = "0"},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"nO" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
diff --git a/maps/RandomZLevels/undergroundoutpost45.dmm b/maps/RandomZLevels/undergroundoutpost45.dmm
index 21c5d6950ea..ac64937fec2 100644
--- a/maps/RandomZLevels/undergroundoutpost45.dmm
+++ b/maps/RandomZLevels/undergroundoutpost45.dmm
@@ -464,7 +464,7 @@
"iV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
"iW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
"iX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10; level = 1},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
-"iY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
+"iY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"iZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"ja" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
"jb" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{dir = 4; frequency = 1439; locked = 0; pixel_x = -23; pixel_y = 0; req_access = null},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
@@ -618,10 +618,10 @@
"lT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/sign/deathsposal{desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; name = "\improper DISPOSAL: LEADS TO EXTERIOR"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "bar"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
"lU" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
"lV" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
-"lW" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/plasma{amount = 26},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
+"lW" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/plasma{amount = 26},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"lX" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 2; network = list("UO45")},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"lY" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor/plating{dir = 8; heat_capacity = 1e+006; icon_state = "warnplate"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
-"lZ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor{dir = 4; heat_capacity = 1e+006; icon_state = "warndark"; tag = "icon-warndark (EAST)"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
+"lZ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor{dir = 4; heat_capacity = 1e+006; icon_state = "warndark"; tag = "icon-warndark (EAST)"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
"ma" = (/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
"mb" = (/turf/simulated/floor{burnt = 1; dir = 8; heat_capacity = 1e+006; icon_state = "floorscorched1"; tag = "icon-floorscorched1 (WEST)"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
"mc" = (/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
@@ -845,7 +845,7 @@
"qm" = (/obj/machinery/light/small,/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -11; pixel_y = 0},/obj/structure/mirror{pixel_x = -28},/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"qn" = (/obj/structure/toilet{tag = "icon-toilet00 (WEST)"; icon_state = "toilet00"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{heat_capacity = 1e+006; icon_state = "freezerfloor"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"qo" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/glasses/hud/health,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "whitecorner"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
-"qp" = (/obj/structure/table,/obj/machinery/alarm{frequency = 1439; locked = 0; pixel_y = 23; req_access = null},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/hand_labeler,/obj/item/clothing/tie/stethoscope,/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
+"qp" = (/obj/structure/table,/obj/machinery/alarm{frequency = 1439; locked = 0; pixel_y = 23; req_access = null},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/hand_labeler,/obj/item/clothing/accessory/stethoscope,/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"qq" = (/obj/machinery/vending/medical{req_access_txt = "201"},/turf/simulated/floor{dir = 6; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"qr" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "whitehall"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"qs" = (/obj/structure/stool/bed/chair/wood/normal,/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
@@ -1138,7 +1138,7 @@
"vT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"vU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/vending/engivend{req_access_txt = "0"},/obj/machinery/camera{c_tag = "Engineering Foyer"; dir = 1; network = list("UO45")},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"vV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/vending/tool,/obj/structure/sign/poster{icon_state = "poster5_legit"; pixel_x = 0; pixel_y = -32; serial_number = 21},/turf/simulated/floor{burnt = 1; dir = 8; heat_capacity = 1e+006; icon_state = "floorscorched2"; tag = "icon-floorscorched2 (WEST)"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
-"vW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 6; heat_capacity = 1e+006; icon_state = "yellow"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
+"vW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 6; heat_capacity = 1e+006; icon_state = "yellow"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"vX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"vY" = (/obj/structure/closet/emcloset,/obj/item/clothing/mask/breath,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "bot"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"vZ" = (/obj/structure/closet/firecloset,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; heat_capacity = 1e+006; icon_state = "bot"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm
index 3b8cb2e3279..bbccdf230e1 100644
--- a/maps/cyberiad.dmm
+++ b/maps/cyberiad.dmm
@@ -156,7 +156,7 @@
"acZ" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/security/hos)
"ada" = (/obj/machinery/door_control{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/door_control{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = -28; pixel_y = -3; req_access_txt = "2"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"adb" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
-"adc" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 10},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/security/podbay)
+"adc" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 10},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/security/podbay)
"add" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/engine,/area/security/podbay)
"ade" = (/obj/machinery/light{dir = 1; on = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine,/area/security/podbay)
"adf" = (/obj/machinery/camera{c_tag = "Brig Podbay"; dir = 2; network = list("SS13")},/obj/machinery/door_control{desc = "A remote control-switch for the pod doors."; id = "secpodbay"; name = "Pod Door Control"; pixel_x = 0; pixel_y = 24; req_access_txt = "71"},/turf/simulated/floor/engine,/area/security/podbay)
@@ -1789,7 +1789,7 @@
"aIu" = (/obj/structure/table,/obj/machinery/alarm{pixel_y = 23},/obj/item/device/t_scanner,/turf/simulated/floor,/area/storage/primary)
"aIv" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Primary Tool Storage"},/obj/machinery/requests_console{department = "Tool Storage"; departmentType = 0; pixel_y = 30},/obj/item/device/assembly/igniter{pixel_x = -8; pixel_y = -4},/obj/item/device/assembly/igniter,/obj/item/weapon/screwdriver{pixel_y = 16},/turf/simulated/floor,/area/storage/primary)
"aIw" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/multitool,/obj/item/device/multitool{pixel_x = 4},/turf/simulated/floor,/area/storage/primary)
-"aIx" = (/obj/structure/table,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/turf/simulated/floor,/area/storage/primary)
+"aIx" = (/obj/structure/table,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high,/turf/simulated/floor,/area/storage/primary)
"aIy" = (/obj/structure/table,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/storage/primary)
"aIz" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/storage/primary)
"aIA" = (/obj/machinery/vending/tool,/turf/simulated/floor,/area/storage/primary)
@@ -1882,7 +1882,7 @@
"aKj" = (/obj/structure/table,/obj/item/device/radio{pixel_y = 6},/obj/item/device/radio{pixel_x = 6; pixel_y = 4},/obj/item/device/radio{pixel_x = -6; pixel_y = 4},/obj/item/device/radio,/turf/simulated/floor,/area/gateway)
"aKk" = (/obj/structure/sign/biohazard{pixel_x = 32},/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor,/area/gateway)
"aKl" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots{pixel_y = -5},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
-"aKm" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva)
+"aKm" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva)
"aKn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aKo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/table/reinforced,/obj/item/weapon/book/manual/evaguide,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva)
"aKp" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/weapon/tank/nitrogen,/obj/item/clothing/suit/space/eva/vox,/obj/item/clothing/mask/breath/vox,/obj/item/clothing/head/helmet/space/eva/vox,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/ai_monitored/storage/eva)
@@ -2000,7 +2000,7 @@
"aMx" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access_txt = "22"},/obj/machinery/mass_driver{dir = 1; id = "chapelgun"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/chapel/main)
"aMy" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/escapepodbay)
"aMz" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/crowbar/red,/turf/simulated/floor,/area/escapepodbay)
-"aMA" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/cell,/obj/item/device/flashlight,/turf/simulated/floor,/area/escapepodbay)
+"aMA" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/stock_parts/cell,/obj/item/device/flashlight,/turf/simulated/floor,/area/escapepodbay)
"aMB" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/escapepodbay)
"aMC" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor/engine,/area/escapepodbay)
"aMD" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/engine,/area/escapepodbay)
@@ -3161,7 +3161,7 @@
"biO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage)
"biP" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage)
"biQ" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage)
-"biR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/module/power_control,/obj/item/weapon/cell{maxcharge = 2000},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage)
+"biR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/module/power_control,/obj/item/weapon/stock_parts/cell{maxcharge = 2000},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage)
"biS" = (/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/turf/simulated/floor/plating,/area/quartermaster/office)
"biT" = (/obj/structure/stool,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/office)
"biU" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/office)
@@ -3898,7 +3898,7 @@
"bwX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/warning_stripes/east,/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor,/area/assembly/robotics)
"bwY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
"bwZ" = (/obj/machinery/hologram/holopad,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
-"bxa" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
+"bxa" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
"bxb" = (/obj/structure/closet/firecloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/research{name = "Research Division"})
"bxc" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/research{name = "Research Division"})
"bxd" = (/obj/machinery/light{dir = 8},/obj/machinery/computer/rdconsole/core,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/toxins/lab)
@@ -3982,7 +3982,7 @@
"byD" = (/turf/simulated/floor,/area/assembly/robotics)
"byE" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/assembly/robotics)
"byF" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
-"byG" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/crowbar,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
+"byG" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/crowbar,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
"byH" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area)
"byI" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area)
"byJ" = (/obj/machinery/newscaster{pixel_x = -27; pixel_y = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
@@ -4073,7 +4073,7 @@
"bAq" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"})
"bAr" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"})
"bAs" = (/obj/machinery/door_control{id = "rdlab2"; name = "Research and Development Lab Shutters Control"; pixel_x = -24; pixel_y = -24; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
-"bAt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
+"bAt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
"bAu" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
"bAv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
"bAw" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/scanning_module{pixel_x = 0; pixel_y = 0},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
@@ -5458,7 +5458,7 @@
"caX" = (/obj/machinery/light/small{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plating,/area/storage/tech)
"caY" = (/obj/machinery/camera{c_tag = "Tech Storage"; dir = 2; network = list("SS13")},/obj/machinery/power/apc{dir = 1; name = "Tech Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/cyborgrecharger{pixel_x = -4; pixel_y = -2},/obj/item/weapon/circuitboard/mech_bay_power_console{pixel_x = 2; pixel_y = 2},/obj/item/weapon/circuitboard/mech_recharger,/obj/item/weapon/circuitboard/mechfab{pixel_y = 3},/turf/simulated/floor/plating,/area/storage/tech)
"caZ" = (/obj/structure/table,/obj/item/device/analyzer,/obj/item/device/healthanalyzer,/turf/simulated/floor/plating,/area/storage/tech)
-"cba" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech)
+"cba" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech)
"cbb" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plating,/area/storage/tech)
"cbc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft)
"cbd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft)
@@ -5769,7 +5769,7 @@
"cgW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area)
"cgX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area)
"cgY" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area)
-"cgZ" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech)
+"cgZ" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech)
"cha" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plating,/area/storage/tech)
"chb" = (/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/tech)
"chc" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/tech)
@@ -6559,7 +6559,7 @@
"cwg" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/hardsuitstorage)
"cwh" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/engine/hardsuitstorage)
"cwi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office)
-"cwj" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/structure/table/reinforced,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/device/megaphone,/mob/living/simple_animal/parrot/Poly,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
+"cwj" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/structure/table/reinforced,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/device/megaphone,/mob/living/simple_animal/parrot/Poly,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"cwk" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/photocopier,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"cwl" = (/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 10; pixel_y = 24; req_access_txt = "24"},/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -10; pixel_y = 24; req_access_txt = "10"},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = 0; pixel_y = 24; req_access_txt = "11"},/obj/machinery/light_switch{pixel_y = 38},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"cwm" = (/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
@@ -6681,7 +6681,7 @@
"cyy" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/equipmentstorage)
"cyz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/equipmentstorage)
"cyA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/equipmentstorage)
-"cyB" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/item/weapon/cell/high,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/equipmentstorage)
+"cyB" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/item/weapon/stock_parts/cell/high,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/equipmentstorage)
"cyC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area)
"cyD" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/atmos)
"cyE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/binary/volume_pump/on{dir = 4; name = "External to Filter"},/turf/simulated/floor,/area/atmos)
@@ -6838,7 +6838,7 @@
"cBz" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cBA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/space_heater,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cBB" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/power/monitor{name = "Engine Power Monitoring Computer"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engineering)
-"cBC" = (/obj/structure/table,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/weapon/cell/high,/turf/simulated/floor,/area/engine/engineering)
+"cBC" = (/obj/structure/table,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/weapon/stock_parts/cell/high,/turf/simulated/floor,/area/engine/engineering)
"cBD" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{amount = 30},/obj/item/device/pipe_painter,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering)
"cBE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/engine/engineering)
"cBF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/engine/engineering)
@@ -7156,7 +7156,7 @@
"cHF" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "co2_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos)
"cHG" = (/turf/space,/area/shuttle/constructionsite/station)
"cHH" = (/turf/simulated/floor/plating,/area/storage/secure)
-"cHI" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure)
+"cHI" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure)
"cHJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "engineering_west_pump"; tag_exterior_door = "engineering_west_outer"; frequency = 1379; id_tag = "engineering_west_airlock"; tag_interior_door = "engineering_west_inner"; pixel_x = 25; req_access_txt = "10;13"; tag_chamber_sensor = "engineering_west_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_west_sensor"; pixel_x = 25; pixel_y = 12},/turf/simulated/floor/plating,/area/engine/engineering)
"cHK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area)
"cHL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area)
@@ -8327,7 +8327,7 @@
"deg" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"deh" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"dei" = (/obj/machinery/vending/wallmed1/syndicate{pixel_x = -30},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"dej" = (/obj/structure/table,/obj/item/weapon/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cell/high,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
+"dej" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"dek" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"del" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"dem" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
@@ -8507,7 +8507,7 @@
"dhE" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"dhF" = (/obj/structure/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"dhG" = (/obj/structure/rack,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/storage/box/teargas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
-"dhH" = (/obj/structure/table/reinforced,/obj/item/weapon/defibrillator/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
+"dhH" = (/obj/structure/table/reinforced,/obj/item/weapon/defibrillator/compact/combat/loaded,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"dhI" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/hypospray/CMO,/obj/item/weapon/reagent_containers/hypospray/CMO,/obj/item/weapon/reagent_containers/hypospray/CMO,/obj/item/weapon/reagent_containers/hypospray/CMO,/obj/item/weapon/reagent_containers/hypospray/CMO,/obj/item/weapon/reagent_containers/hypospray/CMO,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/masks,/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"dhJ" = (/obj/machinery/vending/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"dhK" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
@@ -9306,7 +9306,7 @@
"dwX" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
"dwY" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/derelict/ship)
"dwZ" = (/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"dxa" = (/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
+"dxa" = (/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
"dxb" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plating,/area/derelict/ship)
"dxc" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/derelict/ship)
"dxd" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (WEST)"; icon_state = "burst_l"; dir = 8},/turf/space,/area/derelict/ship)
@@ -9634,7 +9634,7 @@
"dDn" = (/obj/machinery/power/apc{dir = 1; name = "Telecoms Sat. Teleporter APC"; pixel_x = 1; pixel_y = 26},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/tcommsat/entrance)
"dDo" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/tcommsat/entrance)
"dDp" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/tcommsat/entrance)
-"dDq" = (/obj/item/weapon/cell,/turf/simulated/floor,/area/tcommsat/entrance)
+"dDq" = (/obj/item/weapon/stock_parts/cell,/turf/simulated/floor,/area/tcommsat/entrance)
"dDr" = (/turf/simulated/floor,/area/tcommsat/entrance)
"dDs" = (/obj/structure/closet/malf/suits,/turf/simulated/floor,/area/tcommsat/entrance)
"dDt" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area)
@@ -9662,7 +9662,7 @@
"dDP" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/AIsattele)
"dDQ" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating/airless,/area/AIsattele)
"dDR" = (/obj/structure/rack,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"dDS" = (/obj/item/weapon/cell,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"dDS" = (/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/plating/airless,/area/AIsattele)
"dDT" = (/obj/item/device/radio/beacon,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating/airless,/area/AIsattele)
"dDU" = (/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating/airless,/area/AIsattele)
"dDV" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating/airless,/area/AIsattele)
@@ -10048,7 +10048,7 @@
"dLl" = (/obj/structure/transit_tube{icon_state = "S-NE"},/obj/structure/lattice,/turf/space,/area)
"dLm" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/research_outpost/maintstore1)
"dLn" = (/obj/structure/closet/hydrant{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/maintstore1)
-"dLo" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/cell,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/machinery/light/small{dir = 1},/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor/plating,/area/research_outpost/maintstore1)
+"dLo" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/stock_parts/cell,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/machinery/light/small{dir = 1},/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor/plating,/area/research_outpost/maintstore1)
"dLp" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1)
"dLq" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1)
"dLr" = (/obj/structure/transit_tube{icon_state = "NE-SW"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1)
@@ -11198,7 +11198,7 @@
"ehr" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/west_outpost)
"ehs" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters)
"eht" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters)
-"ehu" = (/obj/structure/table/reinforced,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored)
+"ehu" = (/obj/structure/table/reinforced,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored)
"ehv" = (/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored)
"ehw" = (/obj/machinery/mining/brace,/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored)
"ehx" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
@@ -11733,7 +11733,7 @@
"erG" = (/obj/machinery/bot/secbot/buzzsky,/turf/simulated/floor,/area/derelict/bridge)
"erH" = (/obj/structure/table,/obj/item/device/paicard,/turf/simulated/floor,/area/derelict/bridge)
"erI" = (/obj/structure/stool,/turf/simulated/floor,/area/derelict/bridge)
-"erJ" = (/obj/structure/table,/obj/item/weapon/cell,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge)
+"erJ" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge)
"erK" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"erL" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
"erM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/derelict/bridge/access)
@@ -11779,7 +11779,7 @@
"esA" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/airless,/area/derelict/bridge/access)
"esB" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/bridge/access)
"esC" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/airless,/area/derelict/bridge/access)
-"esD" = (/obj/structure/table,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/bridge/access)
+"esD" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/bridge/access)
"esE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/derelict/bridge/access)
"esF" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area)
"esG" = (/turf/simulated/floor/airless{icon_state = "circuit"},/area/derelict/singularity_engine)
@@ -12018,7 +12018,7 @@
"exf" = (/obj/structure/window/basic{dir = 1},/turf/simulated/floor/plating,/area/derelict/arrival)
"exg" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/derelict/arrival)
"exh" = (/obj/structure/table,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
-"exi" = (/obj/structure/table,/obj/item/weapon/cell,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
+"exi" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
"exj" = (/obj/machinery/vending/sovietsoda,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
"exk" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
"exl" = (/obj/structure/table,/turf/simulated/floor/airless,/area)
@@ -12149,7 +12149,7 @@
"ezG" = (/obj/machinery/teleport/station,/turf/simulated/floor/airless,/area/derelict/teleporter)
"ezH" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/derelict/teleporter)
"ezI" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/teleporter)
-"ezJ" = (/obj/structure/table,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/teleporter)
+"ezJ" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/teleporter)
"ezK" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/teleporter)
"ezL" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/airless,/area/derelict/teleporter)
"ezM" = (/turf/simulated/floor/plating/airless/asteroid,/area/syndicate_depot)
@@ -12550,6 +12550,8 @@
"eHr" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/obj/item/device/eftpos,/turf/simulated/floor,/area/crew_quarters/heads)
"eHs" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/machinery/camera{c_tag = "Brig Medbay"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/security/medbay)
"eHt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/effect/landmark{name = "JoinLateCryo"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep)
+"eHu" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor,/area/quartermaster/storage)
+"eHv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor,/area/quartermaster/storage)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -12688,7 +12690,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaabtNbvybvzbvAaDxaDxbvBbvCaDxbvDaySbvEbvFbvGbvHbmuaaaaaaaaaaabaabbvIbvIbvIbvIbvIbvIbvIaaaaaabvJbvKbvLbvMbvNbudbudbudbudbudbudbvObvPbvQbvRbvSbvTbvUbvVbiWbiWbvWbiWbiWbvXbvYbvZbwaaaibwbaaqaaqaosaaqaaJbwcaaibwdbuBaaibwebpwbpwbpwbwfaaiaaabuFaaibwgbwhbwibwjbwkabJbwlabJbwmbpFbwnaaibpHbwobwpbwqbwrbwsbwtbwubwvbwwbwxbwybwzbwAbwBbwCboCbwDbtlbwEbwFaaqbwGbwHbwIbwJbwKbwLbwMbqfaaibwNbwObwPbwQbwQbwRbwSbwTbwUbwVbwWbwXbwYbwZbxaaaibxbbvqbxcaaibxdbxebxfbrXbrXbxgaaibrZbsabxhaaiaaaaaaaaaaaaaabbxibxjbxkbxjbxkbxjbxlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxmaDwbxnbxnbxobbgbxpaGbayabxqbxpaySbxrbxsbxtbxubmuaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIaaaaaabxvbxwbudbxxbxybxybxybxybxybxzbxAbxybxBbxCbxDbxEbxFbxGbxHbiWbxIbkebxJbxKbxLbxMbxNbxOaaiaaiaaibxPbxQbxRbxSbxTaaibpubuBaaibxUbxVbxWbxXbxYaaiaaabxZaaibyabybbycaaqbydaaqbyeaaqbyfbpFbygaaiaXibyhbyibyjbykaaqbylbymbynbyobypbypbyqbyrbysbytaaqaaJbyubyvaaqaaqaaqaaJbywaosaaqaaiaaiaaibyxbyyabmbyzbvebvfbyAbwQbyBbyCbyDbyDbyEbrObyFbyGbyHaaibrTbyIaaibyJbyKbrXbyLbyMbyNaaibtLbyOaaiaaiaaaaaaaaaaaaaabbyPbyQbyRbySbySbyTbyPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbyWbyXbyYbyZbudbzabudbzbbzbbzbbzbbsybuebudbudbufbzcbzdbzebzfbzgbzhbzibkebkebzjbzkbxMbxNbzlbzmbznbzobzpbzqbzrbzsbztaaibzubzvacFbzwbzxbzybzzbzAachbrebzBaaibzCbzDbzEaaqbzFaaqbzGaaqbzHbpFbzIaaibzJbzKbzLbzMbzNabJbzObzPabJabJbzQbzRabJabJbzSbzTaxSaxVbzUbzVbzWbzXbzYbzZbAabAbbAcaaibAdbAebAfbAgabmbAhbAibAjbAkbAlaaqbAmbyDbyDbAnbAobyFbApaaibAqbAqbAraaibAsbAtbAubAvbrXbAwaaibtLbAxaaiaaaaaaaaaaaaaaaaabbAybAzbyRbySbyRbAAbxkaabaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbABbACbABbADbAEbzabudbudbudbudbudbsybuebAFbhBbhBbAGbkebuhbzfbAHbAIbAJbAKbAKbALbAMbANbAObAPbAQbARbASbATbAUbAVbAWbAXaaibwdbuBaaibAYbAZbBabBbbBcaaiaaabxZaaiabmaaiaaiaaiaaiaaibBdaaibBebpFbzIaaibBfbBgbBgbBhbBiaaqbBjbBkbBlbBmbBnbBobBpbBlbBqbBrbBsbBtbBubBvbBwbBwbBxbBybBzbBAbBBbBCbBDbBEbBFbBGbBHbBIbBIbBJbBKbBLaaqbBMbrObrObBNbBObyFbBPbBQbBRbBSbBTaaqbBUbBVaQDbBWbjEaaiaaibBXaaiaaibBYbBZbBZbBZbCaaaibyPbySbyRbySbySbCbbyPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbABbACbABbADeHueHveHubAEbudbudbudbsybuebAFbhBbhBbAGbkebuhbzfbAHbAIbAJbAKbAKbALbAMbANbAObAPbAQbARbASbATbAUbAVbAWbAXaaibwdbuBaaibAYbAZbBabBbbBcaaiaaabxZaaiabmaaiaaiaaiaaiaaibBdaaibBebpFbzIaaibBfbBgbBgbBhbBiaaqbBjbBkbBlbBmbBnbBobBpbBlbBqbBrbBsbBtbBubBvbBwbBwbBxbBybBzbBAbBBbBCbBDbBEbBFbBGbBHbBIbBIbBJbBKbBLaaqbBMbrObrObBNbBObyFbBPbBQbBRbBSbBTaaqbBUbBVaQDbBWbjEaaiaaibBXaaiaaibBYbBZbBZbBZbCaaaibyPbySbyRbySbySbCbbyPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaagaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbCcbCdbCcbCebudbzabudbzbbzbbzbbzbbsybuebCfbCgbhBbChbkebuhbzfbCibCjbCkbkeblNbkebClbxMbpFbCmaYObARbCnbCobCpbCqbCrbCsborabtbCtaaiaaibCubCvbCwaaiaaiaaabxZaaibCxbCybCzbCAbCBbCCbCDachbCEbpFbzIbwsbCFbCGbCHbCIbCJaaqbCKbCLbCMbCNbCObCPbCQbCRbCSbCTbCUbCVbCWbCXbCYbCZbDabDbbDcbDdbDeaaibDfbDgbDhbDiaaibDjbDkbDlbDmbDmaaqbDnbDobDpaaqbDqbyFbDraaqbDsbDtbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDEbDFbDGbDGbDHbDIbDJbDKbDLbxjbxkbDMbxkbxjbDNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbDObyXbDPbDQbudbzabudbudbudbudbudbsybuebCfbDRbhBbFnbkebDTbDUbkebDVbkdbkebkebDWbxLbxMbpFbCmaYObARaaibDXbDYbDZbEabEbabmbEcbEdbEeachachbEfbEgachbrebrebEhaaibEibEjbEkbElbEmbEmbEnbEobEpbpFbEqaaiaaqbErbjEbEsbEtaaqbCKbEuaaqbEvbEwbExbEyaaqbCKbEzbEAaaqaaqaaqaosaaqaaqaaqbEBamfaaqaaiaaibECaaqaaqaaiaaiaaqaaJaaqaaqaaqaaqaaqaaqaaqbEDbEEbEFaaqbEGbEHbEIbEJbEJbEKbELbEMbENbEObEPbEQbERbESbETbETbEUbDwbEVaaibEWbEXbEYbEZaaibFaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbCcbCdbCcbFbbFcbFdbudbudbudbFcbudbsybuebCfbFebhBbFfbkebuhbzfbkebolbFgbkebkebFhbzkbxMbpFbFibFjbFkaaibFlbFmeHrbFobFpabmbFqbFrbFsbFtbFubFvbFwaaqaaaaaaaaaaaibFxbFybFzbFzbFAbFBbFCaaibFDbFEbzIbFFbFGbFHbFIbFJbFKbFLbFMbCLbjEbFNbFObFPbFQbjEbCKbEzbFRbFSbFTbFUbFVbFWaaqbFXbFYbFZaaqbGabGbbGcbGdbGebGfbGgbDBbGhbEJbEJbGibGjbEJbGkbGlbGmbGnbGobEJbGpbGqbGrbGsbGtbGuaaiabmaaiaaiaaibBXaaiaaibBYbCaaaibGvbGwbGxbGybGzbGAbGBbGCaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa