From 7e26f9d1a14667f5174bc63dbc107b2418264d1b Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 18 May 2022 00:28:31 -0700 Subject: [PATCH 1/6] Restore power cell sprite to "V2" and add cells to protolathe -Restored power cell sprites to the "V2" sprites as I called them. -Disabled base and virgo power cell/device/power_cell_research files and moved them into chomp modularity folder instead. Added to the protolathe (I hope because I forgot to last time): -Giga device cells -Giga large cells -Rechargeable weapon cell -EMP-proof device cell -EMP-proof weapon device cell -Potato device cell All the giga and recharging cells will require precursor tech 1. --- code/modules/power/cells/device_cells.dm | 1 + code/modules/power/cells/device_cells_vr.dm | 2 +- code/modules/power/cells/esoteric_cells.dm | 2 +- code/modules/power/cells/power_cells.dm | 1 + code/modules/research/designs/power_cells.dm | 1 + .../code/modules/power/cells/device_cells.dm | 234 ++++++++++++++++++ .../modules/power/cells/esoteric_cells.dm | 74 ++++++ .../code/modules/power/cells/power_cells.dm | 226 +++++++++++++++++ modular_chomp/icons/obj/power_cells.dmi | Bin 0 -> 18012 bytes vorestation.dme | 9 +- 10 files changed, 543 insertions(+), 7 deletions(-) create mode 100644 modular_chomp/code/modules/power/cells/device_cells.dm create mode 100644 modular_chomp/code/modules/power/cells/esoteric_cells.dm create mode 100644 modular_chomp/code/modules/power/cells/power_cells.dm create mode 100644 modular_chomp/icons/obj/power_cells.dmi diff --git a/code/modules/power/cells/device_cells.dm b/code/modules/power/cells/device_cells.dm index 614834a503..c4ae8b5637 100644 --- a/code/modules/power/cells/device_cells.dm +++ b/code/modules/power/cells/device_cells.dm @@ -1,3 +1,4 @@ +//CHOMP Disabled in DME in favor of modular_chomp folder /* * Device */ diff --git a/code/modules/power/cells/device_cells_vr.dm b/code/modules/power/cells/device_cells_vr.dm index 54fd8965aa..fd2e46970c 100644 --- a/code/modules/power/cells/device_cells_vr.dm +++ b/code/modules/power/cells/device_cells_vr.dm @@ -1,4 +1,4 @@ - +//CHOMP Disabled in DME in favor of modular_chomp folder //The device cell /obj/item/weapon/cell/device/weapon/recharge/alien name = "void cell (device)" diff --git a/code/modules/power/cells/esoteric_cells.dm b/code/modules/power/cells/esoteric_cells.dm index a94a7223e0..95a1a22048 100644 --- a/code/modules/power/cells/esoteric_cells.dm +++ b/code/modules/power/cells/esoteric_cells.dm @@ -1,4 +1,4 @@ - +//CHOMP Disabled in DME in favor of modular_chomp folder /obj/item/weapon/cell/spike name = "modified power cell" desc = "A modified power cell sitting in a highly conductive chassis." diff --git a/code/modules/power/cells/power_cells.dm b/code/modules/power/cells/power_cells.dm index bae1028a16..2c1091a90a 100644 --- a/code/modules/power/cells/power_cells.dm +++ b/code/modules/power/cells/power_cells.dm @@ -1,3 +1,4 @@ +//CHOMP Disabled in DME in favor of modular_chomp folder /* * Crap */ diff --git a/code/modules/research/designs/power_cells.dm b/code/modules/research/designs/power_cells.dm index 0454817d2c..4a58a06ebc 100644 --- a/code/modules/research/designs/power_cells.dm +++ b/code/modules/research/designs/power_cells.dm @@ -1,3 +1,4 @@ +//CHOMP Disabled in DME in favor of modular_chomp folder /datum/design/item/powercell build_type = PROTOLATHE | MECHFAB diff --git a/modular_chomp/code/modules/power/cells/device_cells.dm b/modular_chomp/code/modules/power/cells/device_cells.dm new file mode 100644 index 0000000000..93bc939176 --- /dev/null +++ b/modular_chomp/code/modules/power/cells/device_cells.dm @@ -0,0 +1,234 @@ +/* + * Device + */ +/obj/item/weapon/cell/device + name = "device power cell" + desc = "A small power cell designed to power handheld devices." + icon = 'modular_chomp/icons/obj/power_cells.dmi' + icon_state = "m_st" + item_state = "egg6" + w_class = ITEMSIZE_SMALL + force = 0 + throw_speed = 5 + throw_range = 7 + maxcharge = 480 + charge_amount = 5 + matter = list(MAT_STEEL = 350, MAT_GLASS = 50) + preserve_item = 1 + +/obj/item/weapon/cell/device/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/* + * EMP Proof Device + */ +/obj/item/weapon/cell/device/empproof + name = "shielded device power cell" + desc = "A small power cell designed to power handheld devices. Shielded from EMPs." + icon_state = "s_st" + matter = list(MAT_STEEL = 400, MAT_GLASS = 60) + emp_proof = TRUE + origin_tech = list(TECH_POWER = 3) + +/obj/item/weapon/cell/device/empproof/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/* + * Weapon + */ +/obj/item/weapon/cell/device/weapon + name = "advanced device power cell" //This was a yawn change. I quite like this, makes more sense. + desc = "A small upgraded power cell designed to power handheld devices." + icon_state = "m_sup" + maxcharge = 2400 + charge_amount = 20 + origin_tech = list(TECH_POWER = 2) + +/obj/item/weapon/cell/device/weapon/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/obj/item/weapon/cell/device/super + name = "super device power cell" + desc = "A small upgraded power cell designed to power handheld devices." + icon_state = "m_hy" //CHOMP Add + maxcharge = 3600 + charge_amount = 20 + origin_tech = list(TECH_POWER = 3) + +/obj/item/weapon/cell/device/super/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/* + * Hyper + */ +/obj/item/weapon/cell/device/hyper + name = "hyper device power cell" + desc = "A small upgraded power cell designed to hold much more power for handheld devices." + icon_state = "meb_m_st" //CHOMP Add + maxcharge = 4800 + charge_amount = 20 + origin_tech = list(TECH_POWER = 4) + +/obj/item/weapon/cell/device/hyper/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/* + * Giga + */ +/obj/item/weapon/cell/device/giga + name = "giga device power cell" + desc = "A small power cell that holds a blistering amount of energy, constructed by clever scientists using secrets gleaned from alien technology." + icon_state = "meb_m_hi" + maxcharge = 6000 + charge_amount = 20 + origin_tech = list(TECH_POWER = 5, TECH_PRECURSOR = 1) + +/obj/item/weapon/cell/device/giga/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/* + * EMP Proof Weapon + */ +/obj/item/weapon/cell/device/weapon/empproof + name = "shielded weapon power cell" + desc = "A small power cell designed to power handheld weaponry. Shielded from EMPs." + icon_state = "s_hi" + maxcharge = 2400 + charge_amount = 20 + matter = list(MAT_STEEL = 400, MAT_GLASS = 60) + emp_proof = TRUE + origin_tech = list(TECH_POWER = 4) + +/obj/item/weapon/cell/device/weapon/empproof/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/* + * Self-charging Weapon + */ +/obj/item/weapon/cell/device/weapon/recharge + name = "self-charging weapon power cell" + desc = "A small power cell designed to power handheld weaponry. This one recharges itself." + icon_state = "meb_m_nu" + matter = list(MAT_STEEL = 400, MAT_GLASS = 80) + self_recharge = TRUE + charge_amount = 120 + charge_delay = 75 + origin_tech = list(TECH_POWER = 5, TECH_PRECURSOR = 1) + +/* + * Captain's Self-charging Weapon + */ +/obj/item/weapon/cell/device/weapon/recharge/captain + icon_state = "infinite_m" + matter = list(MAT_STEEL = 400, MAT_GLASS = 100) + charge_amount = 160 //Recharges a lot more quickly... + charge_delay = 100 //... but it takes a while to get started + +/* + * Alien Void Cell + */ +/datum/category_item/catalogue/anomalous/precursor_a/alien_void_cell + name = "Precursor Alpha Object - Void Cell" + desc = "This is a very enigmatic and small machine. It is able to output a direct electrical current \ + from itself to another device or machine that it is connected to. Its shape has a similar form as \ + a battery cell, which might imply that the species who created these had a desire for some form of \ + a modular power supply.\ +

\ + These appear to be limited in throughput, only able to put out so much energy at a time. It is unknown \ + if this was intentional, or was a design constraint that the creators of this object had to work around. \ + Regardless, it will likely function inside of various devices which run off of conventional power cells.\ +

\ + Scanning similar objects may yield more information." + value = CATALOGUER_REWARD_EASY + +/obj/item/weapon/cell/device/weapon/recharge/alien + name = "void cell" + desc = "An alien technology that produces energy seemingly out of nowhere. Its small, cylinderal shape means it might be able to be used with human technology, perhaps?" + catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_void_cell) + icon = 'icons/obj/abductor.dmi' + icon_state = "cell" + charge_amount = 120 // 5%. + charge_delay = 50 // Every five seconds, bit faster than the default. + origin_tech = list(TECH_POWER = 8, TECH_ENGINEERING = 6) + +/obj/item/weapon/cell/device/weapon/recharge/alien/update_icon() + return // No overlays please. + +//CHOMP Add Putting virgo code into our code to make sure this does not change. +//The device cell +/obj/item/weapon/cell/device/weapon/recharge/alien + name = "void cell (device)" + var/swaps_to = /obj/item/weapon/cell/void + standard_overlays = FALSE + +/obj/item/weapon/cell/device/weapon/recharge/alien/attack_self(var/mob/user) + user.remove_from_mob(src) + to_chat(user, "You swap [src] to 'machinery cell' mode.") + var/obj/item/weapon/cell/newcell = new swaps_to(null) + user.put_in_active_hand(newcell) + var/percentage = charge/maxcharge + newcell.charge = newcell.maxcharge * percentage + qdel(src) + +//The machine cell +/obj/item/weapon/cell/void + name = "void cell (machinery)" + desc = "An alien technology that produces energy seemingly out of nowhere. Its small, cylinderal shape means it might be able to be used with human technology, perhaps?" + origin_tech = list(TECH_POWER = 8, TECH_ENGINEERING = 6) + icon = 'icons/obj/abductor.dmi' + icon_state = "cell" + maxcharge = 4800 //10x the device version + charge_amount = 1200 //10x the device version + self_recharge = TRUE + charge_delay = 50 + matter = null + standard_overlays = FALSE + var/swaps_to = /obj/item/weapon/cell/device/weapon/recharge/alien + +/obj/item/weapon/cell/void/attack_self(var/mob/user) + user.remove_from_mob(src) + to_chat(user, "You swap [src] to 'device cell' mode.") + var/obj/item/weapon/cell/newcell = new swaps_to(null) + user.put_in_active_hand(newcell) + var/percentage = charge/maxcharge + newcell.charge = newcell.maxcharge * percentage + qdel(src) + +// Bloo friendlier hybrid tech +/obj/item/weapon/cell/device/weapon/recharge/alien/hybrid + icon = 'icons/obj/power_vr.dmi' + icon_state = "cellb" + swaps_to = /obj/item/weapon/cell/void/hybrid + +/obj/item/weapon/cell/void/hybrid + icon = 'icons/obj/power_vr.dmi' + icon_state = "cellb" + swaps_to = /obj/item/weapon/cell/device/weapon/recharge/alien/hybrid + + +//YAWN Addtion +/obj/item/weapon/cell/device/weapon/recharge/alien/omni + name = "omni weapon power cell" + desc = "A mix between alien technology and phoron tech. Seems to fit in almost any cell slot..." + charge_amount = 90 // 5%. + maxcharge = 1800 + charge_delay = 50 SECONDS + origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 4, TECH_PHORON = 3) + +/obj/item/weapon/cell/device/weapon/recharge/alien/omni/empty/Initialize() + . = ..() + charge = 0 diff --git a/modular_chomp/code/modules/power/cells/esoteric_cells.dm b/modular_chomp/code/modules/power/cells/esoteric_cells.dm new file mode 100644 index 0000000000..53a7e738e0 --- /dev/null +++ b/modular_chomp/code/modules/power/cells/esoteric_cells.dm @@ -0,0 +1,74 @@ +//I don't know what this is, but whatever it is, I am taking it from virgo code so they stop messing with cells. +/obj/item/weapon/cell/spike + name = "modified power cell" + desc = "A modified power cell sitting in a highly conductive chassis." + origin_tech = list(TECH_POWER = 2) + icon_state = "modded" + maxcharge = 10000 + matter = list(MAT_STEEL = 1000, MAT_GLASS = 80, MAT_SILVER = 100) + self_recharge = TRUE + charge_amount = 150 + +/obj/item/weapon/cell/spike/process() + ..() + + var/turf/Center = get_turf(src) + + var/shock_count = 0 + for(var/turf/T in range(Center, 1)) + + if(prob(round(charge / 250)) && charge >= (maxcharge / 4)) + + if(locate(/obj/effect/temporary_effect/pulse/staticshock) in T) + continue + + var/conductive = FALSE + + if(istype(T, /turf/simulated/wall)) + var/turf/simulated/wall/WT = T + + if(WT.material.conductive) + conductive = TRUE + else if(WT.girder_material.conductive) + conductive = TRUE + else if(WT.reinf_material && WT.reinf_material.conductive) + conductive = TRUE + + if(istype(T, /turf/simulated/floor)) + var/turf/simulated/floor/F = T + if(istype(F.flooring, /decl/flooring/reinforced)) + conductive = TRUE + + if(conductive) + shock_count += 1 + new /obj/effect/temporary_effect/pulse/staticshock(T) + + if(shock_count) + while(shock_count) + use(200) + shock_count-- + +/obj/effect/temporary_effect/pulse/staticshock + name = "electric field" + desc = "Caution: Do not touch." + pulses_remaining = 10 + pulse_delay = 2 SECONDS + icon_state = "blue_static" + +/obj/effect/temporary_effect/pulse/staticshock/on_pulse() + ..() + + for(var/mob/living/L in view(1, src)) + if(!issilicon(L) && prob(L.mob_size)) + var/obj/item/projectile/beam/shock/weak/P = new (get_turf(src)) + P.launch_projectile_from_turf(L, BP_TORSO) + + var/obj/item/weapon/plastique/C4 = locate() in get_turf(src) + + if(C4) + C4.visible_message("The current fries \the [C4]!") + + if(prob(10)) + C4.explode(get_turf(src)) + else + qdel(C4) diff --git a/modular_chomp/code/modules/power/cells/power_cells.dm b/modular_chomp/code/modules/power/cells/power_cells.dm new file mode 100644 index 0000000000..d07ec94263 --- /dev/null +++ b/modular_chomp/code/modules/power/cells/power_cells.dm @@ -0,0 +1,226 @@ +/* + * Crap + */ +/obj/item/weapon/cell/crap + name = "\improper rechargable AA battery" + desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT + origin_tech = list(TECH_POWER = 0) + icon_state = "crap" + maxcharge = 500 + matter = list(MAT_STEEL = 700, MAT_GLASS = 40) + +/obj/item/weapon/cell/crap/empty/New() + ..() + charge = 0 + +/* + * Security Borg + */ +/obj/item/weapon/cell/secborg + name = "security borg rechargable D battery" + origin_tech = list(TECH_POWER = 0) + icon_state = "secborg" + maxcharge = 600 //600 max charge / 100 charge per shot = six shots + matter = list(MAT_STEEL = 700, MAT_GLASS = 40) + +/obj/item/weapon/cell/secborg/empty/New() + ..() + charge = 0 + update_icon() + +/* + * APC + */ +/obj/item/weapon/cell/apc + name = "heavy-duty power cell" + origin_tech = list(TECH_POWER = 1) + icon_state = "apc" + maxcharge = 5000 + matter = list(MAT_STEEL = 700, MAT_GLASS = 50) + +/* + * High + */ +/obj/item/weapon/cell/high + name = "high-capacity power cell" + origin_tech = list(TECH_POWER = 2) + icon_state = "b_hi" + maxcharge = 10000 + matter = list(MAT_STEEL = 700, MAT_GLASS = 60) + +/obj/item/weapon/cell/high/empty/New() + ..() + charge = 0 + update_icon() + +/* + * Super + */ +/obj/item/weapon/cell/super + name = "super-capacity power cell" + origin_tech = list(TECH_POWER = 5) + icon_state = "b_sup" + maxcharge = 20000 + matter = list(MAT_STEEL = 700, MAT_GLASS = 70) + +/obj/item/weapon/cell/super/empty/New() + ..() + charge = 0 + update_icon() + +/* + * Hyper + */ +/obj/item/weapon/cell/hyper + name = "hyper-capacity power cell" + origin_tech = list(TECH_POWER = 6) + icon_state = "b_hy" + maxcharge = 30000 + matter = list(MAT_STEEL = 700, MAT_GLASS = 80) + +/obj/item/weapon/cell/hyper/empty/New() + ..() + charge = 0 + update_icon() + +/* + * Giga + */ +/obj/item/weapon/cell/giga + name = "giga-capacity power cell made with a dash of precursor technology" + origin_tech = list(TECH_POWER = 6, TECH_PRECURSOR = 1) + icon_state = "meb_b_hi" + maxcharge = 40000 + matter = list(MAT_STEEL = 1000, MAT_GLASS = 100) + +/obj/item/weapon/cell/giga/empty/New() + ..() + charge = 0 + update_icon() +/* + * Mecha + */ +/obj/item/weapon/cell/mech + name = "mecha power cell" + icon_state = "exs_s" + charge = 15000 + maxcharge = 15000 + matter = list(MAT_STEEL = 800, MAT_GLASS = 60) + +/obj/item/weapon/cell/mech/high + name = "high-capacity mecha power cell" + origin_tech = list(TECH_POWER = 3) + icon_state = "exs_m" + charge = 20000 + maxcharge = 20000 + matter = list(MAT_STEEL = 800, MAT_GLASS = 80) + +/obj/item/weapon/cell/mech/super + name = "super-capacity mecha power cell" + origin_tech = list(TECH_POWER = 6) + icon_state = "exs_l" + charge = 25000 + maxcharge = 25000 + matter = list(MAT_STEEL = 800, MAT_GLASS = 100) + +/* + * Infinite + */ +/obj/item/weapon/cell/infinite + name = "infinite-capacity power cell!" + icon_state = "infinite_b" + origin_tech = null + maxcharge = 30000 //determines how badly mobs get shocked + matter = list(MAT_STEEL = 700, MAT_GLASS = 80) + +/obj/item/weapon/cell/infinite/check_charge() + return 1 + +/obj/item/weapon/cell/infinite/use() + return 1 + +/* + * Potato + */ +/obj/item/weapon/cell/potato + name = "potato battery" + desc = "A rechargable starch based power cell." + origin_tech = list(TECH_POWER = 0) + icon_state = "potato" + charge = 100 + maxcharge = 300 + minor_fault = 1 + +/* + * Slime + */ +/obj/item/weapon/cell/slime + name = "charged slime core" + desc = "A yellow slime core infused with phoron, it crackles with power." + origin_tech = list(TECH_POWER = 4, TECH_BIO = 5) + icon = 'icons/mob/slimes.dmi' //'icons/obj/harvest.dmi' + icon_state = "yellow slime extract" //"potato_battery" + description_info = "This 'cell' holds a max charge of 10k and self recharges over time." + maxcharge = 10000 + matter = null + self_recharge = TRUE + standard_overlays = FALSE + +/* + * Emergency Light + */ +/obj/item/weapon/cell/emergency_light + name = "miniature power cell" + desc = "A tiny power cell with a very low power capacity. Used in light fixtures to power them in the event of an outage." + maxcharge = 120 //Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell + matter = list(MAT_GLASS = 20) + icon_state = "em_light" + w_class = ITEMSIZE_TINY + +/obj/item/weapon/cell/emergency_light/Initialize() + . = ..() + var/area/A = get_area(src) + if(!A.lightswitch || !A.light_power) + charge = 0 //For naturally depowered areas, we start with no power + +/* + * Backup Battery + * + * Not actually a cell, but if people look for it, they'll probably look near other cells + */ +/obj/item/device/fbp_backup_cell + name = "backup battery" + desc = "A small one-time-use chemical battery for synthetic crew when they are low on power in emergency situations." + icon = 'icons/obj/power_cells.dmi' + icon_state = "backup" + w_class = ITEMSIZE_SMALL + var/amount = 100 + var/used = FALSE + +/obj/item/device/fbp_backup_cell/Initialize() + . = ..() + add_overlay("[icon_state]_100") + +/obj/item/device/fbp_backup_cell/attack(mob/living/M as mob, mob/user as mob) + if(!used && ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.isSynthetic()) + if(H.nutrition <= amount) + use(user,H) + else + to_chat(user,"The difference in potential is too great. [user == M ? "You have" : "[H] has"] too much charge to use such a small battery.") + else if(M == user) + to_chat(user,"You lick the cell, and your tongue tingles slightly.") + else + to_chat(user,"This cell is meant for use on humanoid synthetics only.") + + . = ..() + +/obj/item/device/fbp_backup_cell/proc/use(var/mob/living/user, var/mob/living/target) + if(used) + return + used = TRUE + desc += " This one has already been used." + cut_overlays() + target.adjust_nutrition(amount) + user.custom_emote(message = "connects \the [src] to [user == target ? "their" : "[target]'s"] charging port, expending it.") \ No newline at end of file diff --git a/modular_chomp/icons/obj/power_cells.dmi b/modular_chomp/icons/obj/power_cells.dmi new file mode 100644 index 0000000000000000000000000000000000000000..fd5f9d1d7cd14c8a4851822609ecc6b801244470 GIT binary patch literal 18012 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 J!fW@Q{eO^QP51x+ literal 0 HcmV?d00001 diff --git a/vorestation.dme b/vorestation.dme index ce23de4a35..d2d96c23f1 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3721,10 +3721,6 @@ #include "code\modules\power\antimatter\containment_jar.dm" #include "code\modules\power\antimatter\control.dm" #include "code\modules\power\antimatter\shielding.dm" -#include "code\modules\power\cells\device_cells.dm" -#include "code\modules\power\cells\device_cells_vr.dm" -#include "code\modules\power\cells\esoteric_cells.dm" -#include "code\modules\power\cells\power_cells.dm" #include "code\modules\power\fusion\_setup.dm" #include "code\modules\power\fusion\fusion_circuits.dm" #include "code\modules\power\fusion\fusion_particle_catcher.dm" @@ -4025,7 +4021,6 @@ #include "code\modules\research\designs\misc_vr.dm" #include "code\modules\research\designs\modular_computer.dm" #include "code\modules\research\designs\pdas.dm" -#include "code\modules\research\designs\power_cells.dm" #include "code\modules\research\designs\precursor.dm" #include "code\modules\research\designs\stock_parts.dm" #include "code\modules\research\designs\subspace_parts.dm" @@ -4495,4 +4490,8 @@ #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\xenomorph.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\xenomorph_abilities.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\bigdragon.dm" +#include "modular_chomp\code\modules\power\cells\device_cells.dm" +#include "modular_chomp\code\modules\power\cells\esoteric_cells.dm" +#include "modular_chomp\code\modules\power\cells\power_cells.dm" +#include "modular_chomp\code\modules\research\designs\power_cells.dm" // END_INCLUDE From 2b8a52938d6f61e63b68625081c06d3cc7f4ef70 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 18 May 2022 13:22:39 -0700 Subject: [PATCH 2/6] Research file for batteries --- .../modules/research/designs/power_cells.dm | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 modular_chomp/code/modules/research/designs/power_cells.dm diff --git a/modular_chomp/code/modules/research/designs/power_cells.dm b/modular_chomp/code/modules/research/designs/power_cells.dm new file mode 100644 index 0000000000..f618641c46 --- /dev/null +++ b/modular_chomp/code/modules/research/designs/power_cells.dm @@ -0,0 +1,169 @@ +/datum/design/item/powercell + build_type = PROTOLATHE | MECHFAB + +/datum/design/item/powercell/AssembleDesignName() + name = "Power Cell Model ([item_name])" + +/datum/design/item/powercell/AssembleDesignDesc() + if(build_path) + var/obj/item/weapon/cell/C = build_path + desc = "Allows the construction of power cells that can hold [initial(C.maxcharge)] units of energy." + +/datum/design/item/powercell/Fabricate() + var/obj/item/weapon/cell/C = ..() + C.charge = 0 //shouldn't produce power out of thin air. + C.update_icon() + return C + +/* +//Big Cells +*/ +/datum/design/item/powercell/basic + name = "basic" + id = "basic_cell" + req_tech = list(TECH_POWER = 1) + materials = list(MAT_STEEL = 700, MAT_GLASS = 50) + build_path = /obj/item/weapon/cell + category = list("Misc") + sort_string = "BAAAA" + +/datum/design/item/powercell/high + name = "high-capacity" + id = "high_cell" + req_tech = list(TECH_POWER = 2) + materials = list(MAT_STEEL = 700, MAT_GLASS = 60) + build_path = /obj/item/weapon/cell/high + category = list("Misc") + sort_string = "BAAAB" + +/datum/design/item/powercell/super + name = "super-capacity" + id = "super_cell" + req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2) + materials = list(MAT_STEEL = 700, MAT_GLASS = 70) + build_path = /obj/item/weapon/cell/super + category = list("Misc") + sort_string = "BAAAC" + +/datum/design/item/powercell/hyper + name = "hyper-capacity" + id = "hyper_cell" + req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4) + materials = list(MAT_STEEL = 400, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 70) + build_path = /obj/item/weapon/cell/hyper + category = list("Misc") + sort_string = "BAAAD" + +/datum/design/item/powercell/giga + name = "giga-capacity" + id = "giga_cell" + req_tech = list(TECH_POWER = 6, TECH_MATERIAL = 5, TECH_PRECURSOR = 1, TECH_PHORON = 4) + materials = list(MAT_STEEL = 1000, MAT_GOLD = 300, MAT_SILVER = 300, MAT_GLASS = 100, MAT_PHORON = 1000, MAT_METALHYDROGEN = 250, MAT_DURASTEEL = 100, MAT_URANIUM = 100) + build_path = /obj/item/weapon/cell/giga + category = list("Misc") + sort_string = "BAAAE" + +/datum/design/item/powercell/potato + name = "potato cell" + id = "potato_cell" + materials = list(MAT_STEEL = 100, MAT_GLASS = 10) + build_path = /obj/item/weapon/cell/potato + category = list("Misc") + sort_string = "BAAAF" + +/* +//Device Cells +*/ +/datum/design/item/powercell/device + name = "device" + build_type = PROTOLATHE + id = "device" + materials = list(MAT_STEEL = 350, MAT_GLASS = 25) + build_path = /obj/item/weapon/cell/device + category = list("Misc") + sort_string = "BAABA" + +/datum/design/item/powercell/device_empproof + name = "device, empproof" + id = "empproof_device" + req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2, TECH_PHORON = 1) + materials = list(MAT_STEEL = 350, MAT_GLASS = 25, MAT_MORPHIUM = 25, MAT_PHORON = 25) + build_path = /obj/item/weapon/cell/device + category = list("Misc") + sort_string = "BAABB" + +/datum/design/item/powercell/advance_device + name = "device, advanced" + id = "advance_device" + req_tech = list(TECH_POWER = 2, TECH_MATERIAL = 1) + materials = list(MAT_STEEL = 700, MAT_GLASS = 50) + build_path = /obj/item/weapon/cell/device/weapon + category = list("Misc") + sort_string = "BAABC" + +/datum/design/item/powercell/advance_device_empproof + name = "device, advanced empproof" + id = "empproof_advanced_device" + req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4, TECH_PHORON = 4) + materials = list(MAT_STEEL = 700, MAT_GLASS = 50, MAT_MORPHIUM = 50, MAT_PHORON = 50) + build_path = /obj/item/weapon/cell/device + category = list("Misc") + sort_string = "BAABD" + +/datum/design/item/powercell/super_device + name = "device, super" + id = "super_device" + req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2) + materials = list(MAT_STEEL = 700, MAT_GLASS = 70, MAT_GOLD = 50, MAT_SILVER = 20) + build_path = /obj/item/weapon/cell/device/super + category = list("Misc") + sort_string = "BAABE" + +/datum/design/item/powercell/hype_device + name = "device, hyper" + id = "hyper_device" + req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4) + materials = list(MAT_STEEL = 1400, MAT_GLASS = 1400, MAT_GOLD = 150, MAT_SILVER = 150) + build_path = /obj/item/weapon/cell/device/hyper + category = list("Misc") + sort_string = "BAABF" + +/datum/design/item/powercell/giga_device + name = "device, giga" + id = "giga_device" + req_tech = list(TECH_POWER = 6, TECH_MATERIAL = 6, TECH_PRECURSOR = 1, TECH_PHORON = 4) + materials = list(MAT_STEEL = 2000, MAT_GOLD = 500, MAT_SILVER = 500, MAT_GLASS = 100, MAT_PHORON = 2000, MAT_METALHYDROGEN = 500, MAT_DURASTEEL = 200, MAT_URANIUM = 200) + build_path = /obj/item/weapon/cell/giga + category = list("Misc") + sort_string = "BAAAG" + +/datum/design/item/powercell/omni_device + name = "device, omni" + req_tech = list(TECH_POWER = 8, TECH_MATERIAL = 7, TECH_ARCANE = 2, TECH_PHORON = 4, TECH_PRECURSOR = 2) + build_type = PROTOLATHE + id = "omni-device" + materials = list(MAT_STEEL = 1700, MAT_GLASS = 550, MAT_DURASTEEL = 230, MAT_MORPHIUM = 320, MAT_METALHYDROGEN = 600, MAT_URANIUM = 60, MAT_VERDANTIUM = 150, MAT_PHORON = 900) + build_path = /obj/item/weapon/cell/device/weapon/recharge/alien/omni + category = list("Misc") + sort_string = "BAABH" + +/* +//Mecha Cells +*/ +/datum/design/item/powercell/mecha/high + name = "high-capacity mecha" + id = "high_mech_cell" + req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 3) + materials = list(MAT_STEEL = 600, MAT_SILVER = 150, MAT_GLASS = 70) + build_path = /obj/item/weapon/cell/mech/high + category = list("Misc") + sort_string = "BAACA" + +/datum/design/item/powercell/mecha/super + name = "super-capacity mecha" + id = "super_mech_cell" + req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4) + materials = list(MAT_STEEL = 500, MAT_GOLD = 200, MAT_SILVER = 200, MAT_GLASS = 80) + build_path = /obj/item/weapon/cell/mech/super + category = list("Misc") + sort_string = "BAACB" \ No newline at end of file From b0f73a4986ea9e9eb61cba0150592a662fa7d6dc Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 18 May 2022 13:40:30 -0700 Subject: [PATCH 3/6] Update power_cells.dm --- .../modules/research/designs/power_cells.dm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/modular_chomp/code/modules/research/designs/power_cells.dm b/modular_chomp/code/modules/research/designs/power_cells.dm index f618641c46..151f24d784 100644 --- a/modular_chomp/code/modules/research/designs/power_cells.dm +++ b/modular_chomp/code/modules/research/designs/power_cells.dm @@ -88,7 +88,7 @@ id = "empproof_device" req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2, TECH_PHORON = 1) materials = list(MAT_STEEL = 350, MAT_GLASS = 25, MAT_MORPHIUM = 25, MAT_PHORON = 25) - build_path = /obj/item/weapon/cell/device + build_path = /obj/item/weapon/cell/device/empproof category = list("Misc") sort_string = "BAABB" @@ -106,7 +106,16 @@ id = "empproof_advanced_device" req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4, TECH_PHORON = 4) materials = list(MAT_STEEL = 700, MAT_GLASS = 50, MAT_MORPHIUM = 50, MAT_PHORON = 50) - build_path = /obj/item/weapon/cell/device + build_path = /obj/item/weapon/cell/device/weapon/empproof + category = list("Misc") + sort_string = "BAABD" + +/datum/design/item/powercell/advance_device_recharge + name = "device, advanced recharging" + id = "recharging_advanced_device" + req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_PRECURSOR = 2) + materials = list(MAT_STEEL = 1500, MAT_GLASS = 100, MAT_MORPHIUM = 100, MAT_PHORON = 500, MAT_DURASTEEL = 500, MAT_URANIUM = 200, MAT_VERDANTIUM = 150) + build_path = /obj/item/weapon/cell/device/weapon/recharge category = list("Misc") sort_string = "BAABD" @@ -133,7 +142,7 @@ id = "giga_device" req_tech = list(TECH_POWER = 6, TECH_MATERIAL = 6, TECH_PRECURSOR = 1, TECH_PHORON = 4) materials = list(MAT_STEEL = 2000, MAT_GOLD = 500, MAT_SILVER = 500, MAT_GLASS = 100, MAT_PHORON = 2000, MAT_METALHYDROGEN = 500, MAT_DURASTEEL = 200, MAT_URANIUM = 200) - build_path = /obj/item/weapon/cell/giga + build_path = /obj/item/weapon/cell/device/giga category = list("Misc") sort_string = "BAAAG" @@ -145,7 +154,7 @@ materials = list(MAT_STEEL = 1700, MAT_GLASS = 550, MAT_DURASTEEL = 230, MAT_MORPHIUM = 320, MAT_METALHYDROGEN = 600, MAT_URANIUM = 60, MAT_VERDANTIUM = 150, MAT_PHORON = 900) build_path = /obj/item/weapon/cell/device/weapon/recharge/alien/omni category = list("Misc") - sort_string = "BAABH" + sort_string = "BAABI" /* //Mecha Cells @@ -166,4 +175,4 @@ materials = list(MAT_STEEL = 500, MAT_GOLD = 200, MAT_SILVER = 200, MAT_GLASS = 80) build_path = /obj/item/weapon/cell/mech/super category = list("Misc") - sort_string = "BAACB" \ No newline at end of file + sort_string = "BAACB" From 882db5960665fab3d1308775e0ba491c9e2f7e19 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 18 May 2022 13:41:03 -0700 Subject: [PATCH 4/6] Update power_cells.dm --- .../code/modules/research/designs/power_cells.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modular_chomp/code/modules/research/designs/power_cells.dm b/modular_chomp/code/modules/research/designs/power_cells.dm index 151f24d784..174c3aa6df 100644 --- a/modular_chomp/code/modules/research/designs/power_cells.dm +++ b/modular_chomp/code/modules/research/designs/power_cells.dm @@ -117,7 +117,7 @@ materials = list(MAT_STEEL = 1500, MAT_GLASS = 100, MAT_MORPHIUM = 100, MAT_PHORON = 500, MAT_DURASTEEL = 500, MAT_URANIUM = 200, MAT_VERDANTIUM = 150) build_path = /obj/item/weapon/cell/device/weapon/recharge category = list("Misc") - sort_string = "BAABD" + sort_string = "BAABE" /datum/design/item/powercell/super_device name = "device, super" @@ -126,7 +126,7 @@ materials = list(MAT_STEEL = 700, MAT_GLASS = 70, MAT_GOLD = 50, MAT_SILVER = 20) build_path = /obj/item/weapon/cell/device/super category = list("Misc") - sort_string = "BAABE" + sort_string = "BAABF" /datum/design/item/powercell/hype_device name = "device, hyper" @@ -135,7 +135,7 @@ materials = list(MAT_STEEL = 1400, MAT_GLASS = 1400, MAT_GOLD = 150, MAT_SILVER = 150) build_path = /obj/item/weapon/cell/device/hyper category = list("Misc") - sort_string = "BAABF" + sort_string = "BAABG" /datum/design/item/powercell/giga_device name = "device, giga" @@ -144,7 +144,7 @@ materials = list(MAT_STEEL = 2000, MAT_GOLD = 500, MAT_SILVER = 500, MAT_GLASS = 100, MAT_PHORON = 2000, MAT_METALHYDROGEN = 500, MAT_DURASTEEL = 200, MAT_URANIUM = 200) build_path = /obj/item/weapon/cell/device/giga category = list("Misc") - sort_string = "BAAAG" + sort_string = "BAAAH" /datum/design/item/powercell/omni_device name = "device, omni" From d2927f408389696b4bf45f28b2b00f5d7916d924 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 18 May 2022 14:00:56 -0700 Subject: [PATCH 5/6] Update cell.dm --- code/modules/power/cell.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index eaafdcba81..ffaac4b966 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -5,7 +5,7 @@ /obj/item/weapon/cell name = "power cell" desc = "A rechargable electrochemical power cell." - icon = 'icons/obj/power_cells.dmi' + icon = 'modular_chomp/icons/obj/power_cells.dmi' //CHOMP Edit using modular folders now icon_state = "standard" item_state = "cell" origin_tech = list(TECH_POWER = 1) @@ -258,4 +258,4 @@ if (1000 to 50000-1) return min(rand(10,20),rand(10,20)) else - return 0 \ No newline at end of file + return 0 From 975d04c425604c35633eec92d9b0d912cbf35f75 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 18 May 2022 14:35:07 -0700 Subject: [PATCH 6/6] Update cell.dm --- code/modules/power/cell.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index ffaac4b966..3d2d9f4791 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -6,7 +6,7 @@ name = "power cell" desc = "A rechargable electrochemical power cell." icon = 'modular_chomp/icons/obj/power_cells.dmi' //CHOMP Edit using modular folders now - icon_state = "standard" + icon_state = "b_st" //CHOMP Edit item_state = "cell" origin_tech = list(TECH_POWER = 1) force = 5.0