Exosuit Heavy Kinetic Accelerators (#20246)

* Added an exosuit compatible kinetic accelerator, capable of clearing
vast swathes of mineable walls. Machinists can print them at a steep
steel cost, and the mining mech dropped from the dropper comes with it
equipped.
This commit is contained in:
Geeves
2024-12-24 12:43:06 +00:00
committed by GitHub
parent 1a493a998e
commit 9724f02187
7 changed files with 106 additions and 0 deletions
+35
View File
@@ -145,6 +145,41 @@
if(istype(external) && external.use(charge_to_give*5))
stored_charge += charge_to_give
/obj/item/custom_ka_upgrade/cells/exosuit
name = "exosuit KA cell"
build_name = "battery powered"
desc = "A pumpless cell assembly that leaches power from the exosuit's power core."
icon_state = "cell_cyborg"
damage_increase = 0
recoil_increase = 0
cost_increase = 0
cell_increase = 150
capacity_increase = 0
mod_limit_increase = 0
firedelay_increase = 0.1 SECONDS
pump_restore = 0
pump_delay = 0
origin_tech = list()
/obj/item/custom_ka_upgrade/cells/exosuit/on_update(var/obj/item/gun/custom_ka/the_gun)
var/charge_to_give = cell_increase - stored_charge
if(!charge_to_give)
return
var/obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator/owner_equipment = the_gun.loc
if(!istype(owner_equipment))
return
var/mob/living/heavy_vehicle/owner_exosuit = owner_equipment.loc
if(!istype(owner_exosuit))
return
var/obj/item/cell/external = owner_exosuit.get_cell()
if(istype(external) && external.use(charge_to_give * 5))
stored_charge += charge_to_give
/obj/item/custom_ka_upgrade/cells/illegal
//Pump Action
name = "pump action KA cell"
+17
View File
@@ -77,6 +77,23 @@
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel02
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/damage
/obj/item/gun/custom_ka/exosuit
name = "exosuit kinetic accelerator"
build_name = "exosuit compatible"
icon_state = "frame_cyborg"
desc = "A kinetic accelerator frame meant for exosuits. Uses an exosuit's internal charge as power."
w_class = WEIGHT_CLASS_HUGE
recoil_increase = -10
capacity_increase = 100
mod_limit_increase = 100
origin_tech = list()
can_disassemble_cell = FALSE
cyborg_maptext_override = TRUE
installed_cell = /obj/item/custom_ka_upgrade/cells/exosuit
installed_barrel = /obj/item/custom_ka_upgrade/barrels/barrel04
installed_upgrade_chip = /obj/item/custom_ka_upgrade/upgrade_chips/explosive/exosuit
/obj/item/gun/custom_ka/frameA
name = "vented kinetic accelerator frame"
build_name = "vented"
+8
View File
@@ -52,6 +52,14 @@
cost_increase = 5
aoe_increase = 2
/obj/item/custom_ka_upgrade/upgrade_chips/explosive/exosuit
name = "upgrade chip - aoe explosion EXO"
desc = "Kinetic blasts explode in a massively increased AoE radius at significantly increased power drain per shot, leveraging the exosuit's internal power core to sustain itself."
icon_state = "upgrade_chip"
cost_increase = 10
aoe_increase = 4
range_increase = 2
/obj/item/custom_ka_upgrade/upgrade_chips/illegal
name = "illegal custom KA upgrade chip"
desc = "Overrides safety settings for a custom kinetic accelerator. What's the worst that could happen?"
@@ -84,3 +84,37 @@
brace.dropInto(get_turf(src))
held_braces -= brace
. = ..()
ABSTRACT_TYPE(/obj/item/mecha_equipment/mounted_system/mining)
name = "mounted mining equipment"
desc = DESC_PARENT
icon_state = "mecha_taser"
restricted_hardpoints = list(HARDPOINT_LEFT_HAND, HARDPOINT_RIGHT_HAND, HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER)
restricted_software = list(MECH_SOFTWARE_UTILITY)
/obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator
name = "mounted heavy kinetic accelerator"
desc = "A heavy-duty kinetic accelerator designed to be mounted on an exosuit."
icon_state = "mecha_taser" // would be too difficult to get a proper sprite for this, would rather just get it in
holding_type = /obj/item/gun/custom_ka/exosuit
/obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator/get_hardpoint_status_value()
if(!holding)
return null
var/obj/item/gun/custom_ka/exosuit/exosuit_ka = holding
if(!exosuit_ka.installed_cell)
return null
return exosuit_ka.installed_cell.stored_charge / exosuit_ka.installed_cell.cell_increase
/obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator/get_hardpoint_maptext()
if(!holding)
return null
var/obj/item/gun/custom_ka/exosuit/exosuit_ka = holding
if(!exosuit_ka.installed_cell)
return null
return "[exosuit_ka.get_ammo()]/[exosuit_ka.installed_cell.cell_increase / exosuit_ka.cost_increase]"
@@ -10,6 +10,7 @@
h_l_hand = /obj/item/mecha_equipment/drill
h_r_hand = /obj/item/mecha_equipment/clamp
h_l_shoulder = /obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator
/mob/living/heavy_vehicle/premade/miner/remote
name = "remote mining mecha"
@@ -149,3 +149,8 @@
. = ..()
desc += " It needs an anomaly core to function, however."
/datum/design/item/mechfab/exosuit_equipment/kinetic_accelerator
name = "Mounted Heavy Kinetic Accelerator"
materials = list(MATERIAL_STEEL = 25000, MATERIAL_GLASS = 5000)
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_POWER = 3)
build_path = /obj/item/mecha_equipment/mounted_system/mining/kinetic_accelerator