diff --git a/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm b/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm index 3dff20284f..9d156a1361 100644 --- a/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm +++ b/code/modules/clothing/spacesuits/rig/modules/specific/crusher_gauntlets.dm @@ -13,7 +13,7 @@ usable = 0 toggleable = 1 use_power_cost = 0 - active_power_cost = 2.5 + active_power_cost = 0 passive_power_cost = 0 var/obj/item/weapon/kinetic_crusher/machete/gauntlets/rig/stored_gauntlets diff --git a/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm b/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm new file mode 100644 index 0000000000..92dcd87dd3 --- /dev/null +++ b/code/modules/clothing/spacesuits/rig/modules/specific/passive_protection.dm @@ -0,0 +1,166 @@ +// contains the Radiation Absorption Device (RAD) and Atmospheric Protective Equipment (APE) modules +// you shits ready for some COPY AND PASTE? +/obj/item/rig_module/rad_shield + name = "radiation absorption device" + desc = "The acronym of this device - R.A.D. - and its full name both convey the application of the module." + description_info = "Through the usage of powered radiation collectors optimized for absorption rather than power generation, it protects the suit's wearer \ + from incoming ionizing radiation and converts it into a significantly less harmful form. This comes at the cost of concerningly high power consumption, \ + and thus should only be used in short bursts." + icon_state = "radsoak" + toggleable = 1 + disruptable = 1 + disruptive = 0 + + use_power_cost = 25 + active_power_cost = 25 + passive_power_cost = 0 + module_cooldown = 30 + + activate_string = "Enable Supplemental Radiation Shielding" + deactivate_string = "Disable Supplemental Radiation Shielding" + + interface_name = "radiation absorption system" + interface_desc = "Provides passive protection against radiation, at the cost of power." + var/stored_rad_armor = 0 + +/obj/item/rig_module/rad_shield/activate() + + if(!..()) + return 0 + + var/mob/living/carbon/human/H = holder.wearer + var/obj/item/clothing/shoes/boots = holder.boots + var/obj/item/clothing/suit/space/rig/chest = holder.chest + var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet + var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves + + to_chat(H, "You activate your suit's powered radiation shielding.") + stored_rad_armor = holder.armor["rad"] + if(boots) + boots.armor["rad"] = 100 + if(chest) + chest.armor["rad"] = 100 + if(helmet) + helmet.armor["rad"] = 100 + if(gloves) + gloves.armor["rad"] = 100 + holder.armor["rad"] = 100 + +/obj/item/rig_module/rad_shield/deactivate() + + if(!..()) + return 0 + + var/mob/living/carbon/human/H = holder.wearer + var/obj/item/clothing/shoes/boots = holder.boots + var/obj/item/clothing/suit/space/rig/chest = holder.chest + var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet + var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves + + to_chat(H, "You deactivate your suit's powered radiation shielding.") + + if(boots) + boots.armor["rad"] = stored_rad_armor + if(chest) + chest.armor["rad"] = stored_rad_armor + if(helmet) + helmet.armor["rad"] = stored_rad_armor + if(gloves) + gloves.armor["rad"] = stored_rad_armor + holder.armor["rad"] = stored_rad_armor + + stored_rad_armor = 0 + +/obj/item/rig_module/rad_shield/advanced + name = "advanced radiation absorption device" + desc = "The acronym of this device - R.A.D. - and its full name both convey the application of the module. It has additional quality notices \ + on the underside of the casing." + use_power_cost = 5 + active_power_cost = 5 + +/obj/item/rig_module/atmos_shield + name = "atmospheric protection enhancement suite" + desc = "The acronym of this suite - A.P.E. - unlike its loosely related cousin, the R.A.D., is remarkably unintuitive." + description_info = "Through the usage of powered shielding optimized for protection against the elements rather than from external physical issues, \ + it protects the suit's wearer from atmospheric pressure and temperatures. This comes at the cost of concerningly high power consumption, \ + and thus should only be used in short bursts." + icon_state = "atmosoak" + + toggleable = 1 + disruptable = 1 + disruptive = 0 + + use_power_cost = 25 + active_power_cost = 25 + passive_power_cost = 0 + module_cooldown = 30 + + activate_string = "Enable Powered Atmospheric Shielding" + deactivate_string = "Disable Powered Atmospheric Shielding" + + interface_name = "atmospheric protection enhancements" + interface_desc = "Provides passive protection against the atmosphere, at the cost of power." + var/stored_max_pressure = 0 + var/stored_max_temp = 0 + +/obj/item/rig_module/atmos_shield/activate() + + if(!..()) + return 0 + + var/mob/living/carbon/human/H = holder.wearer + var/obj/item/clothing/shoes/boots = holder.boots + var/obj/item/clothing/suit/space/rig/chest = holder.chest + var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet + var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves + + stored_max_pressure = holder.max_pressure_protection + stored_max_temp = holder.max_heat_protection_temperature + + to_chat(H, "You activate your suit's powered atmospheric shielding.") + + if(boots) + boots.max_pressure_protection = INFINITY + boots.max_heat_protection_temperature = INFINITY + if(chest) + chest.max_pressure_protection = INFINITY + chest.max_heat_protection_temperature = INFINITY + if(helmet) + helmet.max_pressure_protection = INFINITY + helmet.max_heat_protection_temperature = INFINITY + if(gloves) + gloves.max_pressure_protection = INFINITY + gloves.max_heat_protection_temperature = INFINITY + holder.max_pressure_protection = INFINITY + holder.max_heat_protection_temperature = INFINITY + +/obj/item/rig_module/atmos_shield/deactivate() + + if(!..()) + return 0 + + var/mob/living/carbon/human/H = holder.wearer + var/obj/item/clothing/shoes/boots = holder.boots + var/obj/item/clothing/suit/space/rig/chest = holder.chest + var/obj/item/clothing/head/helmet/space/rig/helmet = holder.helmet + var/obj/item/clothing/gloves/gauntlets/rig/gloves = holder.gloves + + to_chat(H, "You deactivate your suit's powered atmospheric shielding.") + + if(boots) + boots.max_pressure_protection = stored_max_pressure + boots.max_heat_protection_temperature = stored_max_temp + if(chest) + chest.max_pressure_protection = stored_max_pressure + chest.max_heat_protection_temperature = stored_max_temp + if(helmet) + helmet.max_pressure_protection = stored_max_pressure + helmet.max_heat_protection_temperature = stored_max_temp + if(gloves) + gloves.max_pressure_protection = stored_max_pressure + gloves.max_heat_protection_temperature = stored_max_temp + holder.max_pressure_protection = stored_max_pressure + holder.max_heat_protection_temperature = stored_max_temp + + stored_max_pressure = 0 + stored_max_temp = 0 \ No newline at end of file diff --git a/code/modules/projectiles/guns/magnetic/bore.dm b/code/modules/projectiles/guns/magnetic/bore.dm index 3cc05cc44b..66e89cb9eb 100644 --- a/code/modules/projectiles/guns/magnetic/bore.dm +++ b/code/modules/projectiles/guns/magnetic/bore.dm @@ -85,6 +85,8 @@ /obj/item/weapon/gun/magnetic/matfed/attackby(var/obj/item/thing, var/mob/user) + . = ..() + update_rating_mod() if(removable_components) if(thing.is_crowbar()) if(!manipulator) @@ -112,7 +114,6 @@ update_rating_mod() return - if(is_type_in_list(thing, load_type)) var/obj/item/stack/material/M = thing var/success = FALSE @@ -147,7 +148,6 @@ playsound(src, 'sound/weapons/flipblade.ogg', 50, 1) update_icon() return - . = ..() #define GEN_STARTING -1 #define GEN_OFF 0 diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index a63fcc23a8..841733ee72 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ diff --git a/vorestation.dme b/vorestation.dme index ef20c82b57..32e1c129e4 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2131,6 +2131,7 @@ #include "code\modules\clothing\spacesuits\rig\modules\specific\metalfoam_launcher.dm" #include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun.dm" #include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun_vr.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\passive_protection.dm" #include "code\modules\clothing\spacesuits\rig\modules\specific\pat_module_vr.dm" #include "code\modules\clothing\spacesuits\rig\modules\specific\powersink.dm" #include "code\modules\clothing\spacesuits\rig\modules\specific\rescue_pharm_vr.dm"