mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 08:36:00 +01:00
468b351b86
## About The Pull Request Inspired by #94233. `grind_results`(list) & `juice_typepath`(typepath) are only used when grinding & juicing after which the atom is deleted. This means if that object is not processed these vars occupy memory & don't do anything. Now these values are only generated on demand by calling their respective procs. Considering how these vars are on the obj level the memory savings are quite significant ## Changelog 🆑 refactor: grinding & juicing have been refactored to occupy low memory. Report bugs on github code: improved grinding & juicing code /🆑
74 lines
3.2 KiB
Plaintext
74 lines
3.2 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
|
|
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'
|
|
|
|
/obj/item/lead_pipe/grind_results()
|
|
return list(/datum/reagent/lead = 20)
|
|
|
|
//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"
|
|
|
|
/obj/item/stock_parts/power_store/cell/lead/grind_results()
|
|
return 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, domain_flags)
|
|
if(domain_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)
|