From d8c9f0fe42deeeb5ed96bb1ec2867178e2d27601 Mon Sep 17 00:00:00 2001 From: GhostActual Date: Mon, 18 Apr 2022 15:56:17 -0400 Subject: [PATCH] Fix Commit --- code/modules/power/cells/device_cells.dm | 52 ++++++++++- code/modules/power/cells/power_cells.dm | 91 +++++++++++++++---- code/modules/research/designs/power_cells.dm | 22 ++++- icons/obj/power_cells.dmi | Bin 2845 -> 3539 bytes 4 files changed, 141 insertions(+), 24 deletions(-) diff --git a/code/modules/power/cells/device_cells.dm b/code/modules/power/cells/device_cells.dm index 4caec97207..342089fe96 100644 --- a/code/modules/power/cells/device_cells.dm +++ b/code/modules/power/cells/device_cells.dm @@ -1,4 +1,6 @@ -//currently only used by energy-type guns, that may change in the future. +/* + * Device + */ /obj/item/weapon/cell/device name = "device power cell" desc = "A small power cell designed to power handheld devices." @@ -13,6 +15,29 @@ 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 //UNUSED + name = "shielded device power cell" + desc = "A small power cell designed to power handheld devices. Shielded from EMPs." + icon_state = "up_device_cell" + matter = list(MAT_STEEL = 400, MAT_GLASS = 60) + emp_proof = TRUE + +/obj/item/weapon/cell/device/empproof/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/* + * Weapon + */ /obj/item/weapon/cell/device/weapon name = "weapon power cell" desc = "A small power cell designed to power handheld weaponry." @@ -25,22 +50,45 @@ 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 = "emp_weapon_cell" + matter = list(MAT_STEEL = 400, MAT_GLASS = 60) emp_proof = TRUE +/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 = "sc_weapon_cell" + matter = list(MAT_STEEL = 400, MAT_GLASS = 80) self_recharge = TRUE charge_amount = 120 charge_delay = 75 +/* + * Captain's Self-charging Weapon + */ /obj/item/weapon/cell/device/weapon/recharge/captain + icon_state = "cap_weapon_cell" + 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 \ diff --git a/code/modules/power/cells/power_cells.dm b/code/modules/power/cells/power_cells.dm index 375e4cb2b6..bae1028a16 100644 --- a/code/modules/power/cells/power_cells.dm +++ b/code/modules/power/cells/power_cells.dm @@ -1,3 +1,6 @@ +/* + * Crap + */ /obj/item/weapon/cell/crap name = "\improper rechargable AA battery" desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT @@ -10,6 +13,9 @@ ..() charge = 0 +/* + * Security Borg + */ /obj/item/weapon/cell/secborg name = "security borg rechargable D battery" origin_tech = list(TECH_POWER = 0) @@ -22,6 +28,9 @@ charge = 0 update_icon() +/* + * APC + */ /obj/item/weapon/cell/apc name = "heavy-duty power cell" origin_tech = list(TECH_POWER = 1) @@ -29,6 +38,9 @@ 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) @@ -41,6 +53,9 @@ charge = 0 update_icon() +/* + * Super + */ /obj/item/weapon/cell/super name = "super-capacity power cell" origin_tech = list(TECH_POWER = 5) @@ -53,6 +68,9 @@ charge = 0 update_icon() +/* + * Hyper + */ /obj/item/weapon/cell/hyper name = "hyper-capacity power cell" origin_tech = list(TECH_POWER = 6) @@ -65,15 +83,38 @@ charge = 0 update_icon() +/* + * Mecha + */ /obj/item/weapon/cell/mech name = "mecha power cell" icon_state = "mech" 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 = "blue" + 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 = "white" + 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" + icon_state = "infinity" origin_tech = null maxcharge = 30000 //determines how badly mobs get shocked matter = list(MAT_STEEL = 700, MAT_GLASS = 80) @@ -84,6 +125,9 @@ /obj/item/weapon/cell/infinite/use() return 1 +/* + * Potato + */ /obj/item/weapon/cell/potato name = "potato battery" desc = "A rechargable starch based power cell." @@ -92,8 +136,10 @@ charge = 100 maxcharge = 300 minor_fault = 1 - standard_overlays = FALSE +/* + * Slime + */ /obj/item/weapon/cell/slime name = "charged slime core" desc = "A yellow slime core infused with phoron, it crackles with power." @@ -106,7 +152,28 @@ self_recharge = TRUE standard_overlays = FALSE -//Not actually a cell, but if people look for it, they'll probably look near other cells +/* + * 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." @@ -118,7 +185,7 @@ /obj/item/device/fbp_backup_cell/Initialize() . = ..() - add_overlay("[icon_state]1") + 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)) @@ -142,18 +209,4 @@ 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.") - -/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 \ No newline at end of file + 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/code/modules/research/designs/power_cells.dm b/code/modules/research/designs/power_cells.dm index 08cc3336f9..995c5d8d4a 100644 --- a/code/modules/research/designs/power_cells.dm +++ b/code/modules/research/designs/power_cells.dm @@ -17,7 +17,6 @@ /datum/design/item/powercell/basic name = "basic" - build_type = PROTOLATHE | MECHFAB id = "basic_cell" req_tech = list(TECH_POWER = 1) materials = list(MAT_STEEL = 700, MAT_GLASS = 50) @@ -27,7 +26,6 @@ /datum/design/item/powercell/high name = "high-capacity" - build_type = PROTOLATHE | MECHFAB id = "high_cell" req_tech = list(TECH_POWER = 2) materials = list(MAT_STEEL = 700, MAT_GLASS = 60) @@ -69,4 +67,22 @@ materials = list(MAT_STEEL = 700, MAT_GLASS = 50) build_path = /obj/item/weapon/cell/device/weapon category = list("Misc") - sort_string = "BAABB" \ No newline at end of file + sort_string = "BAABB" + +/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 diff --git a/icons/obj/power_cells.dmi b/icons/obj/power_cells.dmi index d17c1c39efad15b50027f68723a4c2c6d3ea364e..96fa666da2199ebde209222a26fd4d4c02b5bf1b 100644 GIT binary patch delta 3417 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 delta 2718 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 k@&y=g9sFRUlL