diff --git a/code/__defines/damage_organs.dm b/code/__defines/damage_organs.dm index db1a71c77a..3d55bf87ad 100644 --- a/code/__defines/damage_organs.dm +++ b/code/__defines/damage_organs.dm @@ -9,6 +9,7 @@ #define ELECTROCUTE "electrocute" #define BIOACID "bioacid" #define SEARING "searing" +#define ELECTROMAG "electromagnetic" #define CUT "cut" #define BRUISE "bruise" diff --git a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm index adecdbe1c0..cbf8db46be 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm @@ -14,6 +14,12 @@ light_power = 1 light_color = "#FF0D00" +/obj/effect/projectile/impact/laser_em + icon_state = "impact_em_laser" + light_range = 3 + light_power = 1 + light_color = "#00C6FF" + /obj/effect/projectile/impact/xray icon_state = "impact_xray" light_range = 2 diff --git a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm index 44240eb487..a817c9e74d 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm @@ -38,6 +38,12 @@ light_power = 1 light_color = "#FF0D00" +/obj/effect/projectile/muzzle/laser_em + icon_state = "muzzle_em_laser" + light_range = 3 + light_power = 1 + light_color = "#00C6FF" + /obj/effect/projectile/muzzle/lightning icon_state = "muzzle_lightning" light_range = 2 diff --git a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm index 9f05cc30ca..01a6b64e1c 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm @@ -83,6 +83,12 @@ light_power = 1 light_color = "#FF0D00" +/obj/effect/projectile/tracer/laser_em + icon_state = "em_laser" + light_range = 3 + light_power = 1 + light_color = "#00C6FF" + /obj/effect/projectile/tracer/darkmatter icon_state = "darkb" light_range = 2 diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index a865a6b05d..babe6c4300 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -94,6 +94,32 @@ apply_damage(damage, BURN, def_zone, initial_blocked, soaked, used_weapon, sharp, edge) // Handle it as normal burn. else adjustToxLoss(damage * blocked) + if(ELECTROMAG) + damage = damage * blocked + switch(round(damage)) + if(91 to INFINITY) + emp_act(1) + if(76 to 90) + if(prob(50)) + emp_act(1) + else + emp_act(2) + if(61 to 75) + emp_act(2) + if(46 to 60) + if(prob(50)) + emp_act(2) + else + emp_act(3) + if(31 to 45) + emp_act(3) + if(16 to 30) + if(prob(50)) + emp_act(3) + else + emp_act(4) + if(0 to 15) + emp_act(4) flash_weak_pain() updatehealth() return 1 diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 15f8d24a5b..9cc12f36ca 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -49,20 +49,63 @@ tracer_type = /obj/effect/projectile/tracer/laser_blue impact_type = /obj/effect/projectile/impact/laser_blue +/obj/item/projectile/beam/weaklaser/ion + damage_type = ELECTROMAG + light_color = "#00CCFF" + muzzle_type = /obj/effect/projectile/muzzle/laser_em + tracer_type = /obj/effect/projectile/tracer/laser_em + impact_type = /obj/effect/projectile/impact/laser_em + /obj/item/projectile/beam/smalllaser damage = 25 hud_state = "laser" +/obj/item/projectile/beam/smalllaser/ion + damage_type = ELECTROMAG + light_color = "#00CCFF" + muzzle_type = /obj/effect/projectile/muzzle/laser_em + tracer_type = /obj/effect/projectile/tracer/laser_em + impact_type = /obj/effect/projectile/impact/laser_em + /obj/item/projectile/beam/burstlaser damage = 30 armor_penetration = 10 hud_state = "laser" +/obj/item/projectile/beam/burstlaser/ion + damage_type = ELECTROMAG + light_color = "#00CCFF" + muzzle_type = /obj/effect/projectile/muzzle/laser_em + tracer_type = /obj/effect/projectile/tracer/laser_em + impact_type = /obj/effect/projectile/impact/laser_em + /obj/item/projectile/beam/midlaser damage = 40 armor_penetration = 10 hud_state = "laser" +<<<<<<< HEAD +======= +/obj/item/projectile/beam/midlaser/ion + damage_type = ELECTROMAG + light_color = "#00CCFF" + muzzle_type = /obj/effect/projectile/muzzle/laser_em + tracer_type = /obj/effect/projectile/tracer/laser_em + impact_type = /obj/effect/projectile/impact/laser_em + +/obj/item/projectile/beam/mininglaser + name = "pulsating laser" + damage = 10 + armor_penetration = 20 + fire_sound = 'sound/weapons/eluger.ogg' + + excavation_amount = 100 + + muzzle_type = /obj/effect/projectile/muzzle/emitter + tracer_type = /obj/effect/projectile/tracer/emitter + impact_type = /obj/effect/projectile/impact/emitter + +>>>>>>> da8a583936... Merge pull request #14812 from KillianKirilenko/kk-ionbeams /obj/item/projectile/beam/heavylaser name = "heavy laser" icon_state = "heavylaser" @@ -90,6 +133,13 @@ tracer_type = /obj/effect/projectile/tracer/emitter impact_type = /obj/effect/projectile/impact/emitter +/obj/item/projectile/beam/heavylaser/ion + damage_type = ELECTROMAG + light_color = "#00CCFF" + muzzle_type = /obj/effect/projectile/muzzle/laser_em + tracer_type = /obj/effect/projectile/tracer/laser_em + impact_type = /obj/effect/projectile/impact/laser_em + /obj/item/projectile/beam/heavylaser/cannon damage = 80 armor_penetration = 50 diff --git a/icons/obj/projectiles_impact.dmi b/icons/obj/projectiles_impact.dmi index 66b84f4bed..a6efd92db6 100644 Binary files a/icons/obj/projectiles_impact.dmi and b/icons/obj/projectiles_impact.dmi differ diff --git a/icons/obj/projectiles_muzzle.dmi b/icons/obj/projectiles_muzzle.dmi index 71e587f73d..234a2e428a 100644 Binary files a/icons/obj/projectiles_muzzle.dmi and b/icons/obj/projectiles_muzzle.dmi differ diff --git a/icons/obj/projectiles_tracer.dmi b/icons/obj/projectiles_tracer.dmi index 9703c51ab7..7404a5867b 100644 Binary files a/icons/obj/projectiles_tracer.dmi and b/icons/obj/projectiles_tracer.dmi differ