From d867f56b75fe314069884dca24837e9ed29fe58b Mon Sep 17 00:00:00 2001 From: n3ophyt3 Date: Fri, 19 Aug 2011 00:37:16 +0000 Subject: [PATCH] Finally got around to working on that power armor overhaul I'd told myself I was gonna do. tl;dr is that instead of being a single object, power armor now has component objects, which determine how good it is at things. They are still a work in progress, lacking a way to actually construct them and such. That said, there are adminspawnable sets. One is more or less what the old power armor was, sans a runtime error that was causing it to be immune to everything, the other is an adminbus set that is genuinely immune to everything. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2023 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/objects/items/clothing.dm | 178 ----------- .../game/objects/items/clothing/powerarmor.dm | 281 ++++++++++++++++++ .../items/clothing/powerarmorcomponents.dm | 256 ++++++++++++++++ tgstation.dme | 4 + 4 files changed, 541 insertions(+), 178 deletions(-) create mode 100644 code/game/objects/items/clothing/powerarmor.dm create mode 100644 code/game/objects/items/clothing/powerarmorcomponents.dm diff --git a/code/game/objects/items/clothing.dm b/code/game/objects/items/clothing.dm index c494b096c1d..b0de9244dad 100644 --- a/code/game/objects/items/clothing.dm +++ b/code/game/objects/items/clothing.dm @@ -371,182 +371,4 @@ THERMAL GLASSES M.disabilities &= ~1 ..() -/obj/item/clothing/suit/armor/powered - name = "Powered armor" - desc = "Not for rookies." - icon_state = "swat" - item_state = "swat" - w_class = 4//bulky item - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.02 - heat_transfer_coefficient = 0.02 - radiation_protection = 0.25 - protective_temperature = 1000 - flags = FPRINT | TABLEPASS - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS - armor = list(melee = 40, bullet = 30, laser = 20, taser = 15, bomb = 25, bio = 10, rad = 10) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/gun,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen) - slowdown = 9 - var/fuel = 0 - var/list/togglearmor = list(melee = 90, bullet = 70, laser = 60, taser = 40, bomb = 75, bio = 75, rad = 75) - var/active = 0 - var/obj/item/clothing/head/helmet/powered/helm = null - New() - verbs += /obj/item/clothing/suit/armor/powered/proc/poweron - - proc/poweron() - set category = "Object" - set name = "Activate armor systems" - - var/mob/living/carbon/human/user = usr - - if(user.stat) - return //if you're unconscious or dead, no dicking with your armor. --NEO - - if(!istype(user)) - user << "\red This suit was engineered for human use only." - return - - if(user.wear_suit!=src) - user << "\red The suit functions best if you are inside of it." - return - - if(!istype(user.head, /obj/item/clothing/head/helmet/powered)) - user << "\red Helmet missing, unable to initiate power-on procedure." - return - - if(active) - user << "\red The suit is already on, you can't turn it on twice." - return - - if(fuel < 1) - user << "\red Insufficient fuel." - return - - verbs -= /obj/item/clothing/suit/armor/powered/proc/poweron - - user << "\blue Suit interlocks engaged." - helm = user.head - helm.canremove = 0 - canremove = 0 - sleep(20) - - user << "\blue Atmospheric seals engaged." - flags |= SUITSPACE - helm.flags |= HEADSPACE - sleep(20) - - user << "\blue Reactive armor systems engaged." - var/list/switchover = list() - for (var/armorvar in togglearmor) - switchover[armorvar] = "[togglearmor[armorvar]]" - togglearmor[armorvar] = "[armor[armorvar]]" - armor[armorvar] = "[switchover[armorvar]]" - helm.armor[armorvar] = armor[armorvar] - sleep(20) - - user << "\blue Movement assist servos engaged." - slowdown = 2.5 - sleep(20) - - user << "\blue All systems online." - active = 1 - powered() - verbs += /obj/item/clothing/suit/armor/powered/proc/poweroff - - - proc/poweroff() - set category = "Object" - set name = "Deactivate armor systems" - powerdown() //BYOND doesn't seem to like it if you try using a proc with vars in it as a verb, hence this. --NEO - - proc/powerdown(sudden = 0) - - var/delay = sudden?0:20 - - var/mob/living/carbon/human/user = usr - - if(user.stat && !sudden) - return //if you're unconscious or dead, no dicking with your armor. --NEO - - if(!active) - return - - verbs -= /obj/item/clothing/suit/armor/powered/proc/poweroff - - if(sudden) - user << "\red Your armor loses power!" - - if(!sudden) - user << "\blue Movement assist servos disengaged." - slowdown = 9 - sleep(delay) - - - if(!sudden) - user << "\blue Reactive armor systems disengaged." - var/list/switchover = list() - for (var/armorvar in armor) - switchover[armorvar] = "[togglearmor[armorvar]]" - togglearmor[armorvar] = "[armor[armorvar]]" - armor[armorvar] = "[switchover[armorvar]]" - helm.armor[armorvar] = armor[armorvar] - sleep(delay) - - if(!sudden) - user << "\blue Atmospheric seals disengaged." - flags &= ~SUITSPACE - helm.flags &= ~HEADSPACE - sleep(delay) - - if(!sudden) - user << "\blue Suit interlocks disengaged." - helm.canremove = 1 - canremove = 1 - helm = null - //Not a tabbing error, the thing only unlocks if you intentionally power-down the armor. --NEO - sleep(20) - - if(!sudden) - user << "\blue All systems disengaged." - active = 0 - - - verbs += /obj/item/clothing/suit/armor/powered/proc/poweron - - proc/powered() - if (fuel > 0 && active) - fuel-- - spawn(50) - powered() - return - else if (active) - powerdown(1) - return - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/stack/sheet/plasma)) - if(fuel < 50) - user << "\blue You feed some plasma into the armor's generator." - fuel += 25 - W:amount-- - if (W:amount <= 0) - del(W) - return - else - user << "\red The generator already has plenty of plasma." - return - else - ..() - - -/obj/item/clothing/head/helmet/powered - name = "Powered armor helmet" - icon_state = "swat" - desc = "Not for rookies." - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH - see_face = 0.0 - item_state = "swat" - permeability_coefficient = 0.01 - armor = list(melee = 40, bullet = 30, laser = 20, taser = 15, bomb = 25, bio = 10, rad = 10) diff --git a/code/game/objects/items/clothing/powerarmor.dm b/code/game/objects/items/clothing/powerarmor.dm new file mode 100644 index 00000000000..92b4655b830 --- /dev/null +++ b/code/game/objects/items/clothing/powerarmor.dm @@ -0,0 +1,281 @@ +/obj/item/clothing/suit/powered + name = "Powered armor" + desc = "Not for rookies." + icon_state = "swat" + item_state = "swat" + w_class = 4//bulky item + + protective_temperature = 1000 + flags = FPRINT | TABLEPASS + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS + armor = list(melee = 40, bullet = 30, laser = 20, taser = 15, bomb = 25, bio = 10, rad = 10) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/gun,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen) + slowdown = 9 + var/fuel = 0 + + var/list/togglearmor = list(melee = 90, bullet = 70, laser = 60, taser = 40, bomb = 75, bio = 75, rad = 75) + var/active = 0 + + var/helmrequired = 1 + var/obj/item/clothing/head/powered/helm + + var/glovesrequired = 0 + var/obj/item/clothing/gloves/powered/gloves + + var/shoesrequired = 0 + var/obj/item/clothing/shoes/powered/shoes + //Adding gloves and shoes as possible armor components. --NEO + + var/obj/item/powerarmor/servos/servos + var/obj/item/powerarmor/reactive/reactive + var/obj/item/powerarmor/atmoseal/atmoseal + var/obj/item/powerarmor/power/power + + New() + verbs += /obj/item/clothing/suit/powered/proc/poweron + + proc/poweron() + set category = "Object" + set name = "Activate armor systems" + + var/mob/living/carbon/human/user = usr + + if(user.stat) + return //if you're unconscious or dead, no dicking with your armor. --NEO + + if(!istype(user)) + user << "\red This suit was engineered for human use only." + return + + if(user.wear_suit!=src) + user << "\red The suit functions best if you are inside of it." + return + + if(helmrequired && !istype(user.head, /obj/item/clothing/head/powered)) + user << "\red Helmet missing, unable to initiate power-on procedure." + return + + if(glovesrequired && !istype(user.gloves, /obj/item/clothing/gloves/powered)) + user << "\red Gloves missing, unable to initiate power-on procedure." + return + + if(shoesrequired && !istype(user.shoes, /obj/item/clothing/shoes/powered)) + user << "\red Shoes missing, unable to initiate power-on procedure." + return + + if(active) + user << "\red The suit is already on, you can't turn it on twice." + return + + if(!power || !power.checkpower()) + user << "\red Powersource missing or depleted." + return + + verbs -= /obj/item/clothing/suit/powered/proc/poweron + + user << "\blue Suit interlocks engaged." + if(helmrequired) + helm = user.head + helm.canremove = 0 + if(glovesrequired) + gloves = user.gloves + gloves.canremove = 0 + if(shoesrequired) + shoes = user.shoes + shoes.canremove = 0 + canremove = 0 + sleep(20) + + if(atmoseal) + atmoseal.toggle() + sleep(20) + + if(reactive) + reactive.toggle() + sleep(20) + + if(servos) + servos.toggle() + sleep(20) + + user << "\blue All systems online." + active = 1 + power.process() + + verbs += /obj/item/clothing/suit/powered/proc/poweroff + + + proc/poweroff() + set category = "Object" + set name = "Deactivate armor systems" + powerdown() //BYOND doesn't seem to like it if you try using a proc with vars in it as a verb, hence this. --NEO + + proc/powerdown(sudden = 0) + + var/delay = sudden?0:20 + + var/mob/living/carbon/human/user = usr + + if(user.stat && !sudden) + return //if you're unconscious or dead, no dicking with your armor. --NEO + + if(!active) + return + + verbs -= /obj/item/clothing/suit/powered/proc/poweroff + + if(sudden) + user << "\red Your armor loses power!" + + if(servos) + servos.toggle(sudden) + sleep(delay) + + if(reactive) + reactive.toggle(sudden) + sleep(delay) + + if(atmoseal) + if(istype(atmoseal, /obj/item/powerarmor/atmoseal/optional) && helm) + atmoseal:helmtoggle(sudden) + atmoseal.toggle(sudden) + + sleep(delay) + + if(!sudden) + usr << "\blue Suit interlocks disengaged." + if(helm) + helm.canremove = 1 + helm = null + if(gloves) + gloves.canremove = 1 + gloves = null + if(shoes) + shoes.canremove = 1 + gloves = null + canremove = 1 + //Not a tabbing error, the thing only unlocks if you intentionally power-down the armor. --NEO + sleep(delay) + + if(!sudden) + usr << "\blue All systems disengaged." + + active = 0 + verbs += /obj/item/clothing/suit/powered/proc/poweron + + + + attackby(obj/item/weapon/W as obj, mob/user as mob) + if(power && istype(power,/obj/item/powerarmor/power/plasma)) + switch(W.type) + if(/obj/item/stack/sheet/plasma) + if(fuel < 50) + user << "\blue You feed some refined plasma into the armor's generator." + power:fuel += 25 + W:amount-- + if (W:amount <= 0) + del(W) + return + else + user << "\red The generator already has plenty of plasma." + return + + if(/obj/item/weapon/ore/plasma) //raw plasma has impurities, so it doesn't provide as much fuel. --NEO + if(fuel < 50) + user << "\blue You feed some plasma into the armor's generator." + power:fuel += 15 + del(W) + return + else + user << "\red The generator already has plenty of plasma." + return + + ..() + +/obj/item/clothing/head/powered + name = "Powered armor" + icon_state = "swat" + desc = "Not for rookies." + flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH + see_face = 0.0 + item_state = "swat" + armor = list(melee = 40, bullet = 30, laser = 20, taser = 15, bomb = 25, bio = 10, rad = 10) + var/obj/item/clothing/suit/powered/parent + + proc/atmotoggle() + set category = "Object" + set name = "Toggle helmet seals" + + var/mob/living/carbon/human/user = usr + + if(!istype(user)) + user << "\red This helmet is not rated for nonhuman use." + return + + if(user.head != src) + user << "\red Can't engage the seals without wearing the helmet." + return + + if(!user.wear_suit || !istype(user.wear_suit,/obj/item/clothing/suit/powered)) + user << "\red This helmet can only couple with powered armor." + return + + var/obj/item/clothing/suit/powered/armor = user.wear_suit + + if(!armor.atmoseal || !istype(armor.atmoseal, /obj/item/powerarmor/atmoseal/optional)) + user << "\red This armor's atmospheric seals are missing or incompatible." + return + + armor.atmoseal:helmtoggle(0,1) + + + + +/obj/item/clothing/gloves/powered + name = "Powered armor" + icon_state = "swat" + desc = "Not for rookies." + flags = FPRINT | TABLEPASS + item_state = "swat" + armor = list(melee = 40, bullet = 30, laser = 20, taser = 15, bomb = 25, bio = 10, rad = 10) + +/obj/item/clothing/shoes/powered + name = "Powered armor" + icon_state = "swat" + desc = "Not for rookies." + flags = FPRINT | TABLEPASS + item_state = "swat" + armor = list(melee = 40, bullet = 30, laser = 20, taser = 15, bomb = 25, bio = 10, rad = 10) + + +obj/item/clothing/suit/powered/spawnable/badmin + New() + servos = new /obj/item/powerarmor/servos(src) + servos.parent = src + reactive = new /obj/item/powerarmor/reactive(src) + reactive.parent = src + atmoseal = new /obj/item/powerarmor/atmoseal/optional/adminbus(src) + atmoseal.parent = src + power = new /obj/item/powerarmor/power(src) + power.parent = src + + verbs += /obj/item/clothing/suit/powered/proc/poweron + + var/obj/item/clothing/head/powered/helm = new /obj/item/clothing/head/powered(src.loc) + helm.verbs += /obj/item/clothing/head/powered/proc/atmotoggle + +obj/item/clothing/suit/powered/spawnable/regular + New() + servos = new /obj/item/powerarmor/servos(src) + servos.parent = src + reactive = new /obj/item/powerarmor/reactive/centcomm(src) + reactive.parent = src + atmoseal = new /obj/item/powerarmor/atmoseal/optional/adminbus(src) + atmoseal.parent = src + power = new /obj/item/powerarmor/power(src) + power.parent = src + + verbs += /obj/item/clothing/suit/powered/proc/poweron + + var/obj/item/clothing/head/powered/helm = new /obj/item/clothing/head/powered(src.loc) + helm.verbs += /obj/item/clothing/head/powered/proc/atmotoggle diff --git a/code/game/objects/items/clothing/powerarmorcomponents.dm b/code/game/objects/items/clothing/powerarmorcomponents.dm new file mode 100644 index 00000000000..885cf323865 --- /dev/null +++ b/code/game/objects/items/clothing/powerarmorcomponents.dm @@ -0,0 +1,256 @@ +/obj/item/powerarmor + name = "Generic power armor component" + desc = "This is the base object, you should never see one." + var/obj/item/clothing/suit/powered/parent //so the component knows which armor it belongs to. + var/slowdown = 0 //how much the component slows down the wearer + + proc/toggle() + return + //The child objects will use this proc + + + +/obj/item/powerarmor/power + name = "Adminbus power armor power source" + desc = "Runs on the rare Badminium molecule." + + process() + return + + proc/checkpower() + return 1 + + plasma + name = "Miniaturized plasma generator" + desc = "Runs on plasma." + slowdown = 1 + var/fuel = 0 + + process() + if (fuel > 0 && parent.active) + fuel-- + spawn(50) + process() + return + else if (parent.active) + parent.powerdown(1) + return + + checkpower() + return fuel + + powercell + name = "Powercell interface" + desc = "Boring, but reliable." + var/obj/item/weapon/cell/cell + slowdown = 0.5 + + process() + if (cell && cell.charge > 0 && parent.active) + cell.use(50) + spawn(50) + process() + return + else if (parent.active) + parent.powerdown(1) + return + + checkpower() + return max(cell.charge, 0) + + nuclear + name = "Miniaturized nuclear generator" + desc = "For all your radioactive needs." + slowdown = 1.5 + + process() + if(!crit_fail) + if (prob(src.reliability)) return 1 //No failure + if (prob(src.reliability)) + for (var/mob/M in range(0,src.parent)) //Only a minor failure, enjoy your radiation. + if (src.parent in M.contents) + M << "\red Your armor feels pleasantly warm for a moment." + else + M << "\red You feel a warm sensation." + M.radiation += rand(1,40) + else + for (var/mob/M in range(rand(1,4),src.parent)) //Big failure, TIME FOR RADIATION BITCHES + if (src.parent in M.contents) + M << "\red Your armor's reactor overloads!" + M << "\red You feel a wave of heat wash over you." + M.radiation += 100 + crit_fail = 1 //broken~ + parent.powerdown(1) + spawn(50) + process() + + checkpower() + return !crit_fail + +/obj/item/powerarmor/reactive + name = "Adminbus power armor reactive plating" + desc = "Made with the rare Badminium molecule." + var/list/togglearmor = list(melee = 250, bullet = 100, laser = 100, taser = 100, bomb = 100, bio = 100, rad = 100) + //Good lord an active energy axe does 150 damage a swing? Anyway, barring var editing, this armor loadout should be impervious to anything. Enjoy, badmins~ --NEO + + toggle(sudden = 0) + switch(parent.active) + if(1) + if(!sudden) + usr << "\blue Reactive armor systems disengaged." + if(0) + usr << "\blue Reactive armor systems engaged." + var/list/switchover = list() + for (var/armorvar in parent.armor) + switchover[armorvar] = togglearmor[armorvar] + togglearmor[armorvar] = parent.armor[armorvar] + parent.armor[armorvar] = switchover[armorvar] + //Probably not the most elegant way to have the vars switch over, but it works. Also propagates the values to the other objects. + if(parent.helm) + parent.helm.armor[armorvar] = parent.armor[armorvar] + if(parent.gloves) + parent.gloves.armor[armorvar] = parent.armor[armorvar] + if(parent.shoes) + parent.shoes.armor[armorvar] = parent.armor[armorvar] + + centcomm + name = "CentComm power armor reactive plating" + desc = "Pretty effective against everything, not perfect though." + togglearmor = list(melee = 90, bullet = 70, laser = 60, taser = 40, bomb = 75, bio = 75, rad = 75) + slowdown = 2 + + +/obj/item/powerarmor/servos + name = "Adminbus power armor movement servos" + desc = "Made with the rare Badminium molecule." + var/toggleslowdown = 9 + + toggle(sudden = 0) + switch(parent.active) + if(1) + if(!sudden) + usr << "\blue Movement assist servos disengaged." + parent.slowdown += toggleslowdown + if(0) + usr << "\blue Movement assist servos engaged." + parent.slowdown -= toggleslowdown + +/obj/item/powerarmor/atmoseal + name = "Power armor atmospheric seals" + desc = "Keeps the bad stuff out." + slowdown = 1 + var/sealed = 0 + + toggle(sudden = 0) + switch(parent.active) + if(1) + if(!sudden) + usr << "\blue Atmospheric seals disengaged." + parent.gas_transfer_coefficient = 1 + parent.permeability_coefficient = 1 + parent.heat_transfer_coefficient = 1 + parent.radiation_protection = 0 + parent.flags &= ~SUITSPACE + if(parent.helmrequired) + parent.helm.gas_transfer_coefficient = 1 + parent.helm.permeability_coefficient = 1 + parent.helm.heat_transfer_coefficient = 1 + parent.helm.radiation_protection = 0 + parent.helm.flags &= ~HEADSPACE + if(parent.glovesrequired) + parent.gloves.gas_transfer_coefficient = 1 + parent.gloves.permeability_coefficient = 1 + parent.gloves.heat_transfer_coefficient = 1 + parent.gloves.radiation_protection = 0 + if(parent.shoesrequired) + parent.shoes.gas_transfer_coefficient = 1 + parent.shoes.permeability_coefficient = 1 + parent.shoes.heat_transfer_coefficient = 1 + parent.shoes.radiation_protection = 0 + sealed = 0 + + if(0) + usr << "\blue Atmospheric seals engaged." + parent.gas_transfer_coefficient = 0.01 + parent.permeability_coefficient = 0.02 + parent.heat_transfer_coefficient = 0.02 + parent.radiation_protection = 0.75 + parent.flags |= SUITSPACE + if(parent.helmrequired) + parent.helm.gas_transfer_coefficient = 0.01 + parent.helm.permeability_coefficient = 0.02 + parent.helm.heat_transfer_coefficient = 0.02 + parent.helm.radiation_protection = 0.75 + parent.helm.flags |= HEADSPACE + if(parent.glovesrequired) + parent.gloves.gas_transfer_coefficient = 0.01 + parent.gloves.permeability_coefficient = 0.02 + parent.gloves.heat_transfer_coefficient = 0.02 + parent.gloves.radiation_protection = 0.75 + if(parent.shoesrequired) + parent.shoes.gas_transfer_coefficient = 0.01 + parent.shoes.permeability_coefficient = 0.02 + parent.shoes.heat_transfer_coefficient = 0.02 + parent.shoes.radiation_protection = 0.75 + sealed = 1 + + adminbus + name = "Adminbus power armor atmospheric seals" + desc = "Made with the rare Badminium molecule." + slowdown = 0 + + optional + name = "Togglable power armor atmospheric seals" + desc = "Keeps the bad stuff out, but lets you remove your helmet without having to turn the whole suit off." + + proc/helmtoggle(sudden = 0, manual = 0) + var/mob/living/carbon/human/user = usr + var/obj/item/clothing/head/powered/helm + if(user.head && istype(user.head,/obj/item/clothing/head/powered)) + helm = user.head + + if(!sealed) + user << "\red Unable to initialize helmet seal, armor seals not active." + return + if(!helm.parent) + user << "\blue Helmet locked." + helm.canremove = 0 + parent.helm = helm + helm.parent = parent + sleep(20) + parent.helm.gas_transfer_coefficient = 0.01 + parent.helm.permeability_coefficient = 0.02 + parent.helm.heat_transfer_coefficient = 0.02 + parent.helm.radiation_protection = 0.75 + parent.helm.flags |= HEADSPACE + user << "\blue Helmet atmospheric seals engaged." + if(manual) + for (var/armorvar in helm.armor) + helm.armor[armorvar] = parent.armor[armorvar] + return + else + if(manual) + user << "\blue Helmet atmospheric seals disengaged." + parent.helm.gas_transfer_coefficient = 1 + parent.helm.permeability_coefficient = 1 + parent.helm.heat_transfer_coefficient = 1 + parent.helm.radiation_protection = 0 + parent.helm.flags &= ~HEADSPACE + if(manual) + for (var/armorvar in helm.armor) + helm.armor[armorvar] = parent.reactive.togglearmor[armorvar] + if(!sudden) + if(manual) + sleep(20) + user << "\blue Helmet unlocked." + helm.canremove = 1 + parent.helm = null + helm.parent = null + + adminbus + name = "Adminbus togglable power armor atmospheric seals" + desc = "Made with the rare Badminium molecule." + slowdown = 0 + + + diff --git a/tgstation.dme b/tgstation.dme index 96603ac09b4..2469864e042 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -65,6 +65,7 @@ #define FILE_DIR "code/game/objects/devices" #define FILE_DIR "code/game/objects/devices/PDA" #define FILE_DIR "code/game/objects/items" +#define FILE_DIR "code/game/objects/items/clothing" #define FILE_DIR "code/game/objects/items/weapons" #define FILE_DIR "code/game/objects/radio" #define FILE_DIR "code/game/objects/secstorage" @@ -134,6 +135,7 @@ #define FILE_DIR "icons/turf" #define FILE_DIR "interface" #define FILE_DIR "maps" +#define FILE_DIR "maps/backup" #define FILE_DIR "sound" #define FILE_DIR "sound/ambience" #define FILE_DIR "sound/announcer" @@ -560,6 +562,8 @@ #include "code\game\objects\items\robot_parts.dm" #include "code\game\objects\items\shock_kit.dm" #include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\clothing\powerarmor.dm" +#include "code\game\objects\items\clothing\powerarmorcomponents.dm" #include "code\game\objects\items\weapons\AI_modules.dm" #include "code\game\objects\items\weapons\cameras.dm" #include "code\game\objects\items\weapons\cards_ids.dm"