diff --git a/hyperstation/code/modules/clothing/spacesuits/hardsuit.dm b/hyperstation/code/modules/clothing/spacesuits/hardsuit.dm index 426ede92..ad682696 100644 --- a/hyperstation/code/modules/clothing/spacesuits/hardsuit.dm +++ b/hyperstation/code/modules/clothing/spacesuits/hardsuit.dm @@ -66,4 +66,104 @@ item_color = "goldenpa" armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT \ No newline at end of file + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + +/obj/item/clothing/suit/space/hardsuit/teslapa + name = "Tesla Power Armor" + desc = "An advanced power armor, with built-in tesla technology. You're sure this will fry whoever dares attack in close quarters." + icon_state = "tesla_pa" + item_state = "tesla_pa" + item_color = "tesla_pa" + armor = list("melee" = 70, "bullet" = 70, "laser" = 90, "energy" = 90, "bomb" = 70, "bio" = 100, "rad" = 40, "fire" = 100, "acid" = 100) + strip_delay = 300 + equip_delay_self = 300 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/teslapahelmet + slowdown = 1 + siemens_coefficient = -1 + blood_overlay_type = "armor" + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + hit_reaction_chance = 50 + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE + var/teslapa_cooldown = 20 + var/teslapa_cooldown_duration = 10 + var/tesla_power = 20000 + var/tesla_range = 4 + var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE + var/legacy = FALSE + var/legacy_dmg = 35 + +/obj/item/clothing/suit/space/hardsuit/teslapa/Initialize() + jetpack = new /obj/item/tank/jetpack/suit(src) + . = ..() + +/obj/item/clothing/suit/space/hardsuit/teslapa/dropped(mob/user) + ..() + if(istype(user)) + user.flags_1 &= ~TESLA_IGNORE_1 + +/obj/item/clothing/suit/space/hardsuit/teslapa/equipped(mob/user, slot) + ..() + if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item? + user.flags_1 |= TESLA_IGNORE_1 + +/obj/item/clothing/suit/space/hardsuit/teslapa/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(prob(hit_reaction_chance)) + if(world.time < teslapa_cooldown_duration) + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + owner.visible_message("The tesla capacitors on [owner]'s Tesla Power Armor are still recharging! The armor merely emits some sparks.") + return + owner.visible_message("[src] blocks [attack_text], sending out arcs of lightning!") + if(!legacy) + tesla_zap(owner, tesla_range, tesla_power, tesla_flags) + else + for(var/mob/living/M in view(2, owner)) + if(M == owner) + continue + owner.Beam(M,icon_state="purple_lightning",icon='icons/effects/effects.dmi',time=5) + M.adjustFireLoss(legacy_dmg) + playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) + teslapa_cooldown = world.time + teslapa_cooldown_duration + return TRUE + +/obj/item/clothing/head/helmet/space/hardsuit/teslapahelmet + name = "Tesla Power Armor Helmet" + desc = "An advanced power armor, with built-in tesla technology. You're sure this will fry whoever dares attack in close quarters." + icon_state = "teslaup" + item_state = "teslaup" + armor = list("melee" = 70, "bullet" = 70, "laser" = 90, "energy" = 90, "bomb" = 70, "bio" = 100, "rad" = 10, "fire" = 100, "acid" = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + +/obj/item/clothing/suit/space/hardsuit/advancedpa + name = "Advanced Power Armor" + desc = "An advanced power armor. You're sure this is near to impossible to penetrate in close quarters." + icon_state = "advanced_pa" + item_state = "advanced_pa" + item_color = "advanced_pa" + armor = list("melee" = 95, "bullet" = 95, "laser" = 70, "energy" = 80, "bomb" = 70, "bio" = 100, "rad" = 40, "fire" = 100, "acid" = 100) + strip_delay = 300 //chonky armor means chonky strip + equip_delay_self = 300 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/advancedpahelmet + slowdown = 0 + blood_overlay_type = "armor" + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE + +/obj/item/clothing/suit/space/hardsuit/advancedpa/Initialize() + jetpack = new /obj/item/tank/jetpack/suit(src) + . = ..() + +/obj/item/clothing/head/helmet/space/hardsuit/advancedpahelmet + name = "Advanced Power Armor Helmet" + desc = "An advanced power armor. You're sure this is almost impenetrable in close quarters." + icon_state = "adv_pa" + item_state = "adv_pa" + armor = list("melee" = 95, "bullet" = 90, "laser" = 70, "energy" = 80, "bomb" = 70, "bio" = 100, "rad" = 40, "fire" = 100, "acid" = 100) + strip_delay = 300 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 689dc07d..e3ecab47 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 04d6c01d..21540c86 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index ab6d1f8a..028962e3 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index dd3d89fb..cb5fc392 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/modular_citadel/icons/mob/muzzled_helmet.dmi b/modular_citadel/icons/mob/muzzled_helmet.dmi index e15d26c1..1d6c0666 100644 Binary files a/modular_citadel/icons/mob/muzzled_helmet.dmi and b/modular_citadel/icons/mob/muzzled_helmet.dmi differ diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index a6976142..bf8b9c83 100644 Binary files a/modular_citadel/icons/mob/suit_digi.dmi and b/modular_citadel/icons/mob/suit_digi.dmi differ