diff --git a/code/game/objects/items/weapons/circuitboards/rig.dm b/code/game/objects/items/weapons/circuitboards/rig.dm index fc5c260a875..a87b2774cae 100644 --- a/code/game/objects/items/weapons/circuitboards/rig.dm +++ b/code/game/objects/items/weapons/circuitboards/rig.dm @@ -55,6 +55,14 @@ name = "combat hardsuit control and targeting board" origin_tech = list(TECH_DATA = 7, TECH_COMBAT = 6) +/obj/item/circuitboard/rig_assembly/combat/falcata + name = "falcata exoskeleton central circuit board" + origin_tech = list(TECH_COMBAT = 1) + +/obj/item/circuitboard/rig_assembly/combat/targeting/falcata + name = "falcata exoskeleton control and targeting board" + origin_tech = list(TECH_COMBAT = 1) + ////////////////////// ////ILLEGAL BOARDS//// ////////////////////// diff --git a/code/modules/clothing/spacesuits/rig/rig_construction.dm b/code/modules/clothing/spacesuits/rig/rig_construction.dm index 66efc85b95b..886a34d2f6e 100644 --- a/code/modules/clothing/spacesuits/rig/rig_construction.dm +++ b/code/modules/clothing/spacesuits/rig/rig_construction.dm @@ -157,6 +157,17 @@ target_board_type = /obj/item/circuitboard/rig_assembly/combat/targeting/combat origin_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 5, TECH_MAGNET = 4, TECH_POWER = 4, TECH_COMBAT = 6) +/obj/item/rig_assembly/combat/falcata + name = "falcata exoskeleton control module" + desc = "The assembly frame for a security exoskeleton." + icon = 'icons/obj/item/clothing/rig/falcata.dmi' + icon_base = "falcata" + icon_state = "falcata1" + rig_type = /obj/item/rig/light/falcata + board_type = /obj/item/circuitboard/rig_assembly/combat/falcata + target_board_type = /obj/item/circuitboard/rig_assembly/combat/targeting/falcata + origin_tech = list(TECH_COMBAT = 1) + //////////////////////// ////ILLEGAL ASSEMBLY//// //////////////////////// diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index 13f64746299..ba02f4ed54b 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -310,3 +310,70 @@ /obj/item/rig_module/device/door_hack, /obj/item/rig_module/mounted/xray ) + +/obj/item/rig/light/falcata + name = "falcata exoskeleton control module" + desc = "An armored security exoskeleton, known as the Falcata. It serves as a lightweight platform for bearing security hardsuit modules." + icon = 'icons/obj/item/clothing/rig/falcata.dmi' + icon_state = "falcata_rig" + icon_supported_species_tags = list("skr", "taj", "una", "vau",) + suit_type = "falcata combat exoskeleton" + body_parts_covered = UPPER_TORSO | LOWER_TORSO | LEGS | ARMS + armor = list( + MELEE = ARMOR_MELEE_MAJOR, + BULLET = ARMOR_BALLISTIC_MAJOR, + LASER = ARMOR_LASER_RIFLE, + ENERGY = ARMOR_ENERGY_SMALL, + BOMB = ARMOR_BOMB_PADDED, + ) + species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_UNATHI, BODYTYPE_SKRELL, BODYTYPE_VAURCA, BODYTYPE_IPC, BODYTYPE_TAJARA) + + seal_delay = 3 // Its only deploying the myomers and helmet. + offline_slowdown = 2 + offline_vision_restriction = TINT_BLIND // Visorless helmet sprite, the helmet's face is just a camera. + + allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/melee/baton) + allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT + + chest_type = /obj/item/clothing/suit/space/rig/light/falcata + helm_type = /obj/item/clothing/head/helmet/space/rig/light/falcata + glove_type = null + boot_type = null + +/obj/item/rig/light/falcata/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) + var/image/I = ..() + if(slot == slot_back_str && !offline) + var/image/emissive_overlay = emissive_appearance(mob_icon, "falcata_rig_ba-emissive") + I.AddOverlays(emissive_overlay) + return I + +/obj/item/clothing/suit/space/rig/light/falcata + name = "myomer frame" + body_parts_covered = null + breach_threshold = 45 // We aren't a real hardsuit, rather a very thick torso plate. + +/obj/item/clothing/suit/space/rig/light/falcata/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) + var/image/I = ..() + if(slot != slot_wear_suit_str) + return I + + var/obj/item/rig/rigcontroller = H.get_equipped_item(slot_wear_suit) + if(!istype(rigcontroller, /obj/item/rig) || rigcontroller.offline) + return I + + var/image/emissive_overlay = emissive_appearance(mob_icon, "falcata_rig_sealed_su-emissive") + I.AddOverlays(emissive_overlay) + return I + +/obj/item/clothing/head/helmet/space/rig/light/falcata + name = "helmet" + // The helmet's unusually thick, with the fun caveat that it fully blacks out your screen when unpowered. + flash_protection = FLASH_PROTECTION_MAJOR + armor = list( + MELEE = ARMOR_MELEE_MAJOR, + BULLET = ARMOR_BALLISTIC_RIFLE, + LASER = ARMOR_LASER_RIFLE, + ENERGY = ARMOR_ENERGY_SMALL, + BOMB = ARMOR_BOMB_RESISTANT, + BIO = ARMOR_BIO_SHIELDED, + ) diff --git a/code/modules/research/designs/mechfab/hardsuit/rigs.dm b/code/modules/research/designs/mechfab/hardsuit/rigs.dm index 1291606d281..c20267665c9 100644 --- a/code/modules/research/designs/mechfab/hardsuit/rigs.dm +++ b/code/modules/research/designs/mechfab/hardsuit/rigs.dm @@ -60,3 +60,15 @@ build_path = /obj/item/rig_assembly/combat/illegal/hacker req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3, TECH_MAGNET = 2, TECH_POWER = 3, TECH_COMBAT = 3, TECH_ILLEGAL = 3) materials = list(DEFAULT_WALL_MATERIAL = 25000, MATERIAL_GLASS = 12500, MATERIAL_GOLD = 2500, MATERIAL_SILVER = 3500, MATERIAL_URANIUM = 5550) + +/datum/design/rig/falcata + name = "Falcata Exoskeleton Control Module Assembly" + desc = "An assembly for a security exoskeleton. Though offering no vacuum protection, the Falcata serves as a lightweight platform for bearing security hardsuit modules." + materials = list( + DEFAULT_WALL_MATERIAL = 12500, + MATERIAL_ALUMINIUM = 12500, + MATERIAL_PLASTEEL = 5000, + MATERIAL_URANIUM = 3500, + MATERIAL_SILVER = 1500, + MATERIAL_GOLD = 1500, + ) diff --git a/html/changelogs/Hellfirejag-falcata_exosuit.yml b/html/changelogs/Hellfirejag-falcata_exosuit.yml new file mode 100644 index 00000000000..70a42dfefb0 --- /dev/null +++ b/html/changelogs/Hellfirejag-falcata_exosuit.yml @@ -0,0 +1,4 @@ +author: Hellfirejag +delete-after: True +changes: + - rscadd: "Added the falcata exoskeleton as a new low-tier 'combat hardsuit' for machinists to make." diff --git a/icons/obj/item/clothing/rig/falcata.dmi b/icons/obj/item/clothing/rig/falcata.dmi new file mode 100644 index 00000000000..85f2e753491 Binary files /dev/null and b/icons/obj/item/clothing/rig/falcata.dmi differ