Files
Bubberstation/code/game/objects/items/maintenance_loot.dm
b23b4c0fb0 Buffs the amount EMPs drain cells to be worthwhile (#92902)
Simply put, EMPs now drain cells at hopefully decent rates. Starting at
basic high capacity, a heavy emp (aka a direct ion rifle hit) drains 1/3
of the battery, with each successive tier of cell taking an extra heavy
emp to drain it. At the end, the data looks like this:

- Basic Cell: Instantly drained. Unchanged.
- High Capacity: 3 hits
- Super Capacity: 4 Hits
- Hyper Capacity: 6 Hits
- Bluespace: 8 hits.

Also potatoes take halfed emp damage, because theres not really much
silicon to emp, given its a potato.
## Why It's Good For The Game

As of now, this is the stats to drain a cell with EMPs. (Do note some
stuff just doesnt drain at all and this is for those that do just run
the proc to the cell itself)

- Basic Cell: Instantly drained.
- High Capacity: 10 hits
- Super Capacity: 20 Hits
- Hyper Capacity: 30 Hits
- Bluespace: 40 hits.

The EMP gun on the station can shoot 10 bolts before needing a recharge.
It is *physically impossible* to use the ion to depower something with
an upgraded cell without needing to reload, and even landing 10 direct
hits with the ion to bring down a stock cell is frankly a big ask.
Additionally, using emps as crew or sec runs the risk of you getting
caught in the splash damage and now your modsuit/pda/whatever doesnt
work. Hopefully, this will make the EMP gun actually useful for its
intended purpose of countering silicons/mechs.

## Changelog
🆑 WebcomicArtist
balance: EMPs now drain cells better, starting at 3 emps to drain a
basic cell, up to 8 for bluespace.
/🆑

---------

Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2025-09-14 23:32:32 -04:00

70 lines
3.1 KiB
Plaintext

//The items defined in this file are intended be scarce maintenance loot items some of these items are used as a non-renewable resource in crafting or ghetto chem.
//Exercise good judgement and don't add these to a lathe willy nilly.
//Saw-tier bulky & blunt weapon. A decent bone breaker. Source of lead reagent.
//Add lead material to this once implemented.
/obj/item/lead_pipe
name = "lead pipe"
icon = 'icons/obj/maintenance_loot.dmi'
icon_state = "lead_pipe"
inhand_icon_state = "lead_pipe"
icon_angle = -45
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
resistance_flags = FIRE_PROOF | ACID_PROOF
//wow, lore
desc = "A hefty lead pipe.\nLead is an uncommon sight in this sector after being phased out due to employee health concerns. \
\nThose of a more cynical disposition have claimed that the NT lead ban is a scheme to prevent diversion to Syndicate ammunition factories."
force = 15
throwforce = 12
throw_range = 4
w_class = WEIGHT_CLASS_BULKY
wound_bonus = 20
demolition_mod = 1.25
grind_results = list(/datum/reagent/lead = 20)
pickup_sound = 'sound/items/handling/lead_pipe/lead_pipe_pickup.ogg'
drop_sound = 'sound/items/handling/materials/metal_drop.ogg'
throw_drop_sound = 'sound/items/handling/lead_pipe/lead_pipe_drop.ogg'
hitsound = 'sound/items/lead_pipe_hit.ogg'
//A good battery early in the shift. Source of lead & sulfuric acid reagents.
//Add lead material to this once implemented.
/obj/item/stock_parts/power_store/cell/lead
name = "lead-acid battery"
desc = "A primitive battery. It is quite large and feels unexpectedly heavy."
icon = 'icons/obj/maintenance_loot.dmi'
icon_state = "lead_battery"
force = 10 // double the force of a normal cell
throwforce = 10
w_class = WEIGHT_CLASS_NORMAL
maxcharge = STANDARD_CELL_CHARGE * 60 // initial charge reduced on init
chargerate = STANDARD_CELL_RATE * 0.3 //charging is about 70% less efficient than lithium batteries.
emp_damage_modifier = 4 // 15 shots.
charge_light_type = null
connector_type = "leadacid"
grind_results = list(/datum/reagent/lead = 15, /datum/reagent/toxin/acid = 15, /datum/reagent/water = 20)
//starts partially discharged
/obj/item/stock_parts/power_store/cell/lead/Initialize(mapload)
AddElement(/datum/element/update_icon_blocker)
. = ..()
var/initial_percent = rand(40, 60) / 100 // 250kJ to 350kJ
charge = initial_percent * maxcharge
ADD_TRAIT(src, TRAIT_FISHING_BAIT, INNATE_TRAIT)
AddComponent(/datum/component/loads_avatar_gear, \
load_callback = CALLBACK(src, PROC_REF(shockingly_improve_avatar)), \
)
// Give our owner shock touch when entering the digital realm
/obj/item/stock_parts/power_store/cell/lead/proc/shockingly_improve_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, external_load_flags)
if(external_load_flags & DOMAIN_FORBIDS_ABILITIES)
return BITRUNNER_GEAR_LOAD_BLOCKED
if(!avatar.can_mutate())
return BITRUNNER_GEAR_LOAD_FAILED
if(avatar.dna.mutation_in_sequence(/datum/mutation/shock))
avatar.dna.activate_mutation(/datum/mutation/shock)
else
avatar.dna.add_mutation(/datum/mutation/shock, MUTATION_SOURCE_MUTATOR)