Kinetic Accelerator Additions (#4965)

I want mining to be able to find some unique, powerful kinetic accelerators while out on the dig. Most of these are pretty high tier (Class B to S, or BS for short) and should be great finds for miners.

I also made it so that you can only pump the assemblies if you have two hands, and some kinetic accelerators are just too heavy to fire with one hand.
This commit is contained in:
BurgerLUA
2018-08-02 15:15:55 -07:00
committed by Werner
parent 76cb0a59eb
commit d93d155fdd
10 changed files with 439 additions and 14 deletions

View File

@@ -94,3 +94,54 @@
fire_sound = 'sound/weapons/lasercannonfire.ogg'
projectile_type = /obj/item/projectile/beam/midlaser
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4,TECH_MAGNET = 4,TECH_COMBAT = 5,TECH_ILLEGAL = 5)
/obj/item/custom_ka_upgrade/barrels/barrel02_alt
name = "rapid core KA power converter"
build_name = "'rapid Professional'"
desc = "A more advanced kinetic accelerator energy converter and barrel assembly intended for professional miners out on the rock. This one seems to fire significantly quicker at the cost of reduced aoe capabilities, damage, amd increased cost."
icon_state = "barrel02_alt"
damage_increase = 10
firedelay_increase = 0.1 SECONDS
range_increase = 6
recoil_increase = 3
cost_increase = 2
cell_increase = 0
capacity_increase = -2
aoe_increase = -100
fire_sound = 'sound/weapons/Kenetic_accel.ogg'
projectile_type = /obj/item/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 3, TECH_PHORON = 2)
/obj/item/custom_ka_upgrade/barrels/phoron
name = "phoron core KA power converter"
build_name = "'Phoron'"
desc = "A highly experimental kinetic accelerator barrel equipped with phoron focusing crystals and a massive magnetic discharger that's big enough to block the upgrade chip slot. Use with caution."
icon_state = "barrel_phoron"
damage_increase = 50
firedelay_increase = 2 SECONDS
range_increase = 5
recoil_increase = 20
cost_increase = 50
cell_increase = 0
capacity_increase = -5
fire_sound = 'sound/weapons/marauder.ogg'
projectile_type = /obj/item/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5,TECH_MAGNET = 6, TECH_PHORON = 6)
disallow_chip = TRUE
/obj/item/custom_ka_upgrade/barrels/supermatter
name = "supermatter core KA power converter"
build_name = "'Supermatter'"
desc = "What have you done?"
icon_state = "barrel_supermatter"
damage_increase = 150 //Don't worry there is a hardcap of 50 damage per shot to a person. Also currently this is spawn only.
firedelay_increase = 4 SECONDS
range_increase = 20
recoil_increase = 50
cost_increase = 200
cell_increase = 0
capacity_increase = -5
fire_sound = 'sound/weapons/pulse2.ogg'
projectile_type = /obj/item/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 8,TECH_ENGINEERING = 8,TECH_MAGNET = 8, TECH_ILLEGAL = 8)
disallow_chip = TRUE

View File

@@ -95,7 +95,7 @@
/obj/item/custom_ka_upgrade/cells/cell05
name = "recoil reloader KA cell"
build_name = "recoil-reloading"
desc = "A very experimental and well designed cell and pump assembly that converts some of the kinetic energy from the weapon's recoil into usable energy. Only works if the recoil is high enough. Contains a basic top-mounted pump just in case."
desc = "A very experimental and well designed cell and pump assembly that converts some of the kinetic energy from the weapon's recoil into usable energy. Only works if the recoil is high enough. Contains a basic top-mounted pump just in case, however it blocks the chip slot."
icon_state = "cell05"
firedelay_increase = 0.4 SECONDS
damage_increase = 0
@@ -110,6 +110,8 @@
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 6,TECH_MAGNET = 5,TECH_POWER = 5, TECH_PHORON = 5)
disallow_chip = TRUE
/obj/item/custom_ka_upgrade/cells/cell05/on_fire(var/obj/item/weapon/gun/custom_ka/the_gun)
if(the_gun.recoil_increase > 0)
stored_charge = min(stored_charge + min(the_gun.recoil_increase*2,the_gun.cost_increase*0.5),cell_increase)
@@ -159,4 +161,100 @@
pump_restore = 1
pump_delay = 0.3 SECONDS
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3,TECH_MAGNET = 3,TECH_POWER = 3, TECH_ILLEGAL = 4)
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3,TECH_MAGNET = 3,TECH_POWER = 3, TECH_ILLEGAL = 4)
/obj/item/custom_ka_upgrade/cells/kinetic_charging
name = "kinetic charging KA cell"
build_name = "kinetic recharging"
desc = "A curious cell and pump combo that automatically charges based on how much charge is already present in the cell."
icon_state = "cell_burst"
firedelay_increase = 0.1 SECONDS
damage_increase = 0
recoil_increase = 0
cost_increase = 0
cell_increase = 30
capacity_increase = -4
mod_limit_increase = 0
pump_restore = 3
pump_delay = 0.3 SECONDS
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5,TECH_MAGNET = 4,TECH_POWER = 6)
/obj/item/custom_ka_upgrade/cells/cell04/on_update(var/obj/item/weapon/gun/custom_ka/the_gun)
stored_charge = min(stored_charge + round(stored_charge*0.2),cell_increase)
/obj/item/custom_ka_upgrade/cells/loader
name = "phoron loading KA cell"
build_name = "phoron loading"
desc = "A bottom feeding mount that accepts sheets of phoron, and processes them into useable energy. Wildy ineffecient and expensive to maintain, however the charge lasts a while and the damage boost makes it worth it."
icon_state = "cell_phoronloader"
damage_increase = 10
recoil_increase = 2
cell_increase = 250
capacity_increase = -5
pump_restore = 0
pump_delay = 0
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 6,TECH_MAGNET = 5,TECH_POWER = 6, TECH_PHORON = 5)
var/type_to_take = "phoron"
var/charge_per_sheet = 100
/obj/item/custom_ka_upgrade/cells/loader/attackby(var/obj/item/I as obj, var/mob/user as mob)
var/obj/item/stack/material/the_sheet = I
if(istype(the_sheet) && the_sheet.default_type == type_to_take)
var/amount_to_take = 1
if(stored_charge + charge_per_sheet > cell_increase)
to_chat(user,"<span class='notice'>You can't put any more [I] into \the [src].</span>")
return
amount_to_take = min(amount_to_take,the_sheet.amount)
the_sheet.amount -= amount_to_take
stored_charge += amount_to_take*charge_per_sheet
user.visible_message("<span class='notice'>\The [user] inserts a sheet [I] into \the [src].</span>", \
"<span class='notice'>You insert a sheet of [I]s into \the [src].</span>", \
"<span class='notice'>You hear mechanical whirring.</span>")
if(the_sheet.amount <= 0)
qdel(I)
/obj/item/custom_ka_upgrade/cells/loader/uranium
name = "uranium loading KA cell"
build_name = "uranium loading"
desc = "A bottom feeding mount that accepts sheets of uranium, and processes them into useable energy. Wildy ineffecient and expensive to maintain, however the charge lasts a while."
icon_state = "cell_uraniumloader"
cell_increase = 300
capacity_increase = -5
pump_restore = 0
pump_delay = 0
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 6,TECH_MAGNET = 5,TECH_POWER = 6)
type_to_take = "uranium"
charge_per_sheet = 75
/obj/item/custom_ka_upgrade/cells/loader/hydrogen
name = "hydrogen loading KA cell"
build_name = "hydrogen loading"
desc = "A bottom feeding mount that accepts sheets of hydrogen, and processes them into useable energy. Wildy ineffecient and expensive to maintain."
icon_state = "cell_hydrogenloader"
cell_increase = 100
capacity_increase = -4
pump_restore = 0
pump_delay = 0
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 5,TECH_MAGNET = 4,TECH_POWER = 4)
type_to_take = "uranium"
charge_per_sheet = 50

View File

@@ -8,7 +8,7 @@
item_state = "kineticgun"
contained_sprite = 1
flags = CONDUCT
slot_flags = SLOT_BELT|SLOT_HOLSTER
slot_flags = SLOT_BELT
matter = list(DEFAULT_WALL_MATERIAL = 2000)
w_class = 3
origin_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2)
@@ -28,6 +28,8 @@
dispersion = list(0)
reliability = 100
action_button_name = "Wield kinetic accelerator"
var/obj/item/projectile/projectile_type = /obj/item/projectile/kinetic
pin = /obj/item/device/firing_pin
@@ -42,6 +44,8 @@
wielded = 0
needspin = TRUE
var/require_wield = FALSE
var/build_name = ""
//Custom stuff
@@ -66,6 +70,20 @@
var/can_disassemble_cell = TRUE
/obj/item/weapon/gun/custom_ka/verb/wield_accelerator()
set name = "Wield"
set category = "Object"
set src in usr
toggle_wield(usr)
/obj/item/weapon/gun/custom_ka/ui_action_click()
if(src in usr)
toggle_wield(usr)
/obj/item/weapon/gun/custom_ka/can_wield()
return 1
/obj/item/weapon/gun/custom_ka/examine(var/mob/user)
. = ..()
if(installed_upgrade_chip)
@@ -95,6 +113,10 @@
/obj/item/weapon/gun/custom_ka/Fire(atom/target, mob/living/user, clickparams, pointblank=0, reflex=0)
if(require_wield && !wielded)
to_chat(user,"<span class='warning'>\The [src] is too heavy to fire with one hand!</span>")
return
if(!fire_checks(target,user,clickparams,pointblank,reflex))
return
@@ -102,7 +124,7 @@
var/warning_message
var/disaster
if(is_emped && prob(10))
if( (is_emped && prob(10)) || prob(1))
var/list/warning_messages = list(
"ERROR CODE: ERROR CODE",
"ERROR CODE: PLEASE REPORT THIS",
@@ -114,8 +136,9 @@
"ERROR CODE: NO ERROR CODE FOUND",
"ERROR CODE: LOADING.."
)
warning_message = pick(warning_messages)
spark(src.loc, 3, alldirs)
if(is_emped)
warning_message = pick(warning_messages)
spark(src.loc, 3, alldirs)
else if(!installed_cell || !installed_barrel)
if(!is_emagged || (is_emped && prob(5)) )
warning_message = "ERROR CODE: 0"
@@ -221,7 +244,6 @@
/obj/item/weapon/gun/custom_ka/Initialize()
. = ..()
START_PROCESSING(SSprocessing, src)
if(installed_cell)
installed_cell = new installed_cell(src)
@@ -233,6 +255,8 @@
update_stats()
queue_icon_update()
START_PROCESSING(SSprocessing, src)
/obj/item/weapon/gun/custom_ka/Destroy()
. = ..()
STOP_PROCESSING(SSprocessing, src)
@@ -336,11 +360,21 @@
//Gun stats
recoil = recoil_increase*0.25
recoil = recoil*0.5
fire_delay = firedelay_increase
fire_delay_wielded = accuracy * 0.9
accuracy = round(recoil_increase*0.25)
accuracy_wielded = accuracy * 0.5
/obj/item/weapon/gun/custom_ka/attack_self(mob/user as mob)
. = ..()
if(!wielded)
to_chat(user,"<span class='warning'>You must be holding \the [src] with two hands to do this!</span>")
return
if(installed_cell)
installed_cell.attack_self(user)
if(installed_barrel)
@@ -412,6 +446,10 @@
to_chat(user,"A barrel and a cell need to be installed before you install \the [I].")
else if(installed_upgrade_chip)
to_chat(user,"There is already \an [installed_upgrade_chip] installed.")
else if(installed_cell.disallow_chip == TRUE)
to_chat(user,"\The [installed_cell] prevents you from installing \the [I]!")
else if(installed_barrel.disallow_chip == TRUE)
to_chat(user,"\The [installed_barrel] prevents you from installing \the [I]!")
else
var/obj/item/custom_ka_upgrade/upgrade_chips/tempvar = I
installed_upgrade_chip = tempvar
@@ -421,6 +459,13 @@
update_icon()
playsound(src,'sound/items/Wirecutter.ogg', 50, 0)
if(installed_cell)
installed_cell.attackby(I,user)
if(installed_barrel)
installed_barrel.attackby(I,user)
if(installed_upgrade_chip)
installed_upgrade_chip.attackby(I,user)
/obj/item/custom_ka_upgrade //base item
name = null //abstract
icon = 'icons/obj/kinetic_accelerators.dmi'
@@ -439,6 +484,8 @@
var/is_emagged = 0
var/is_emped = 0
var/disallow_chip = FALSE //Prevent installation of an upgrade chip.
/obj/item/custom_ka_upgrade/proc/on_update(var/obj/item/weapon/gun/custom_ka)
//Do update related things here
return
@@ -482,7 +529,7 @@
origin_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2,TECH_MAGNET = 2)
/obj/item/custom_ka_upgrade/upgrade_chips
name = null
name = null //Abstract
icon = 'icons/obj/kinetic_accelerators.dmi'
damage_increase = 0
firedelay_increase = 0
@@ -493,4 +540,42 @@
capacity_increase = 0
mod_limit_increase = 0
origin_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
origin_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
/obj/item/device/kinetic_analyzer
name = "kinetic analyzer"
desc = "Analyzes the kinetic accelerator and prints useful information on it's statistics."
icon = 'icons/obj/device.dmi'
icon_state = "kinetic_anal"
/obj/item/device/kinetic_analyzer/afterattack(var/atom/target, var/mob/living/user, proximity, params)
user.visible_message(
"<span class='warning'>\The [user] scans \the [target] with \the [src].</span>",
"<span class='alert'>You scan \the [target] with \the [src].</span>")
if(istype(target,/obj/item/weapon/gun/custom_ka))
playsound(src, 'sound/machines/ping.ogg', 10, 1)
var/obj/item/weapon/gun/custom_ka/ka = target
var/total_message = "<b>Kinetic Accelerator Stats:</b><br>\
Damage Rating: [ka.damage_increase*0.1]MJ<br>\
Energy Rating: [ka.cost_increase]MJ<br>\
Cell Rating: [ka.cell_increase]MJ<br>\
Fire Delay: [ka.firedelay_increase]<br>\
Range: [ka.range_increase]<br>\
Recoil Rating: [ka.recoil_increase]kJ<br>\
<b>Software Stats:</b><br>\
Software Version: [ka.mod_limit_increase].[ka.mod_limit_increase*32 % 10].[ka.mod_limit_increase*64 % 324]<br>\
Available Power Flow: [ka.capacity_increase*10]kW<br>"
to_chat(user,"<span class='notice'>[total_message]</span>")
else
to_chat(user,"<span class='notice'>Nothing happens.</span>")
user.setClickCooldown(DEFAULT_QUICK_COOLDOWN)

View File

@@ -1,7 +1,9 @@
//Made KAs
/obj/item/weapon/gun/custom_ka/frame01
name = "compact kinetic accelerator frame"
build_name = "compact"
icon_state = "frame01"
desc = "A very minimal kinetic accelerator frame that holds cheap and inexpensive parts."
w_class = 3
capacity_increase = 3
mod_limit_increase = 2
@@ -12,6 +14,7 @@
name = "light kinetic accelerator frame"
build_name = "light"
icon_state = "frame02"
desc = "A lightweight kinetic accelerator frame that holds standard issue parts."
w_class = 3
recoil_increase = -1
capacity_increase = 5
@@ -22,6 +25,7 @@
name = "medium kinetic accelerator frame"
build_name = "medium"
icon_state = "frame03"
desc = "A more durable and robust kinetic accelerator frame that allows the installation of advanced parts."
w_class = 4
recoil_increase = -2
capacity_increase = 7
@@ -32,26 +36,31 @@
name = "heavy kinetic accelerator frame"
build_name = "heavy"
icon_state = "frame04"
desc = "A very high-tech kinetic accelerator frame that is compatable with the more experimental kinetic accelerator parts. Requires two hands to fire."
w_class = 5
recoil_increase = -5
capacity_increase = 9
mod_limit_increase = 5
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 5)
require_wield = TRUE
/obj/item/weapon/gun/custom_ka/frame05
name = "tactical kinetic accelerator frame"
build_name = "tactical"
icon_state = "frame05"
desc = "An incredibly robust and experimental kinetic accelerator frame that has has the ability to hold top of the line kinetic accelerator parts and chips. Requires two hands to fire."
w_class = 5
recoil_increase = -6
capacity_increase = 10
mod_limit_increase = 5
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 6)
require_wield = TRUE
/obj/item/weapon/gun/custom_ka/cyborg
name = "cyborg kinetic accelerator frame"
name = "cyborg kinetic accelerator"
build_name = "cyborg compatible"
icon_state = "frame_cyborg"
desc = "A kinetic accelerator frame meant for cyborgs. Uses a cyborg's internal charge as power."
w_class = 5
recoil_increase = -10 //Cyborgs are STRONG
capacity_increase = 100
@@ -62,36 +71,155 @@
installed_cell = /obj/item/custom_ka_upgrade/cells/cyborg
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel01
/obj/item/weapon/gun/custom_ka/frameA
name = "vented kinetic accelerator frame"
build_name = "vented"
icon_state = "frameA"
w_class = 3
desc = "A very specialized kinetic accelerator frame that can hold moderately powerful parts, however it contains special heat sink technology that allows the weapon to fire faster."
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3)
damage_increase = 0
firedelay_increase = -0.125 SECONDS //How long it takes for the weapon to fire, in deciseconds.
range_increase = 1
recoil_increase = -2
cost_increase = 0
capacity_increase = 7
mod_limit_increase = 4
aoe_increase = 0
/obj/item/weapon/gun/custom_ka/frameB
name = "ultra heavy kinetic accelerator frame"
build_name = "ultra heavy"
icon_state = "frameB"
desc = "A massive kinetic accelerator frame intended for unathi miners who don't mind carrying the extra weight. It's size and built in power core allows for a significant power and range increase. Requires two hands to fire."
w_class = 5
damage_increase = 10
range_increase = 3
recoil_increase = -5
capacity_increase = 100 //Fit anything
mod_limit_increase = 100 //Fit anything
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 6)
require_wield = TRUE
/obj/item/weapon/gun/custom_ka/frameC
name = "vaurca kinetic accelerator frame"
build_name = "vaurca"
icon_state = "frameC"
desc = "An advanced kinetic accelerator frame designed for vaurca graspers. Boasts increased recoil reduction and a lightweight alloy."
w_class = 4
recoil_increase = -10
capacity_increase = 9
mod_limit_increase = 5
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 5)
/obj/item/weapon/gun/custom_ka/frameD
name = "burst fire kinetic accelerator frame"
build_name = "burst-fire"
icon_state = "frameD"
desc = "A disgustingly bulky kinetic accelerator frame that supports a 3 round burstfire. You just can't seem to hold it right. Requires two hands to fire and pump."
firedelay_increase = (2*3)
w_class = 5
recoil_increase = -3
capacity_increase = 10
mod_limit_increase = 5
burst = 3
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 6)
require_wield = TRUE
/obj/item/weapon/gun/custom_ka/frameE
name = "large kinetic accelerator frame"
build_name = "large"
icon_state = "frameE"
desc = "An incredibly large kinetic accelerator frame that's meant to absorb a ton of recoil per shot while carrying large additions. Requires two hands to fire."
w_class = 5
recoil_increase = -20
capacity_increase = 100 //Fit anything
mod_limit_increase = 100 //Fit anything
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 6)
require_wield = TRUE
/obj/item/weapon/gun/custom_ka/frameF
name = "long kinetic accelerator frame"
build_name = "long"
icon_state = "frameF"
desc = "A lightweight long kinetic accelerator frame with increase stability and range support, at the cost of reduced firerate. Requires two hands to fire."
w_class = 5
recoil_increase = -8
range_increase = 5
capacity_increase = 7
mod_limit_increase = 4
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3)
require_wield = TRUE
//Built KAs
/obj/item/weapon/gun/custom_ka/frame01/prebuilt
name = "class E kinetic accelerator"
installed_cell = /obj/item/custom_ka_upgrade/cells/cell01
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel01
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/focusing
/obj/item/weapon/gun/custom_ka/frame02/prebuilt
name = "class D kinetic accelerator"
installed_cell = /obj/item/custom_ka_upgrade/cells/cell02
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel02
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/firerate
/obj/item/weapon/gun/custom_ka/frame03/prebuilt
name = "class C kinetic accelerator"
installed_cell = /obj/item/custom_ka_upgrade/cells/cell03
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel03
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/focusing
/obj/item/weapon/gun/custom_ka/frame04/prebuilt
name = "class B kinetic accelerator"
installed_cell = /obj/item/custom_ka_upgrade/cells/cell04
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel04
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/effeciency
/obj/item/weapon/gun/custom_ka/frame04/illegal
name = "illegal kinetic accelerator"
installed_cell = /obj/item/custom_ka_upgrade/cells/illegal
installed_barrel = /obj/item/custom_ka_upgrade/barrels/illegal
/obj/item/weapon/gun/custom_ka/frame05/prebuilt
name = "class A kinetic accelerator"
installed_cell = /obj/item/custom_ka_upgrade/cells/cell05
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel05
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/damage
/obj/item/weapon/gun/custom_ka/frame01/illegal
name = "illegal kinetic accelerator"
installed_cell = /obj/item/custom_ka_upgrade/cells/illegal
installed_barrel = /obj/item/custom_ka_upgrade/barrels/illegal
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/illegal
/obj/item/weapon/gun/custom_ka/frameA/prebuilt
installed_cell = /obj/item/custom_ka_upgrade/cells/kinetic_charging
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel02_alt
/obj/item/weapon/gun/custom_ka/frameB/prebuilt
installed_cell = /obj/item/custom_ka_upgrade/cells/loader
installed_barrel = /obj/item/custom_ka_upgrade/barrels/phoron
/obj/item/weapon/gun/custom_ka/frameC/prebuilt
installed_cell = /obj/item/custom_ka_upgrade/cells/cell03
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel03
/obj/item/weapon/gun/custom_ka/frameD/prebuilt
installed_cell = /obj/item/custom_ka_upgrade/cells/cell03
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel04
/obj/item/weapon/gun/custom_ka/frameE/prebuilt //ADMIN SPAWN ONLY
installed_cell = /obj/item/custom_ka_upgrade/cells/loader/uranium
installed_barrel = /obj/item/custom_ka_upgrade/barrels/supermatter
/obj/item/weapon/gun/custom_ka/frameF/prebuilt01
installed_cell = /obj/item/custom_ka_upgrade/cells/cell04
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel02
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/damage
/obj/item/weapon/gun/custom_ka/frameF/prebuilt02
installed_cell = /obj/item/custom_ka_upgrade/cells/loader/hydrogen
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel04
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/capacity