From 147887545fc3dc14709234fef14721083ac28608 Mon Sep 17 00:00:00 2001 From: Chompstation Bot Date: Wed, 21 Apr 2021 06:31:39 +0000 Subject: [PATCH 1/3] [MIRROR] Practice/Lasertag weapons no longer excavate --- code/modules/projectiles/projectile/beams.dm | 608 ++++++++++++++++++- 1 file changed, 607 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index f65b0b3c9d..59897f6591 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /obj/item/projectile/beam name = "laser" icon_state = "laser" @@ -277,4 +278,609 @@ impact_type = /obj/effect/projectile/impact/precursor damage = 48 - armor_penetration = 10 \ No newline at end of file + armor_penetration = 10 +||||||| parent of 5decd031a3... Merge pull request #10185 from VOREStation/upstream-merge-8037 +/obj/item/projectile/beam + name = "laser" + icon_state = "laser" + fire_sound = 'sound/weapons/Laser.ogg' + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + damage = 40 + damage_type = BURN + check_armour = "laser" + eyeblur = 4 + var/frequency = 1 + hitscan = 1 + embed_chance = 0 + invisibility = 99 //beam projectiles are invisible as they are rendered by the effect engine + light_range = 2 + light_power = 0.5 + light_color = "#FF0D00" + hitsound = 'sound/weapons/sear.ogg' + hitsound_wall = 'sound/weapons/effects/searwall.ogg' + + excavation_amount = 50 + + muzzle_type = /obj/effect/projectile/muzzle/laser + tracer_type = /obj/effect/projectile/tracer/laser + impact_type = /obj/effect/projectile/impact/laser + +/obj/item/projectile/beam/practice + name = "laser" + icon_state = "laser" + damage = 0 + damage_type = BURN + check_armour = "laser" + eyeblur = 2 + +/obj/item/projectile/beam/weaklaser + name = "weak laser" + icon_state = "laser" + damage = 15 + +/obj/item/projectile/beam/smalllaser + damage = 25 + +/obj/item/projectile/beam/burstlaser + damage = 30 + armor_penetration = 10 + + +/obj/item/projectile/beam/midlaser + damage = 40 + armor_penetration = 10 + +/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 + +/obj/item/projectile/beam/heavylaser + name = "heavy laser" + icon_state = "heavylaser" + fire_sound = 'sound/weapons/lasercannonfire.ogg' + damage = 60 + armor_penetration = 30 + light_range = 3 + light_power = 1 + light_color = "#FF0D00" + + muzzle_type = /obj/effect/projectile/muzzle/laser_heavy + tracer_type = /obj/effect/projectile/tracer/laser_heavy + impact_type = /obj/effect/projectile/impact/laser_heavy + +/obj/item/projectile/beam/heavylaser/fakeemitter + name = "emitter beam" + icon_state = "emitter" + fire_sound = 'sound/weapons/emitter.ogg' + light_color = "#00CC33" + excavation_amount = 140 // 2 shots to dig a standard rock turf. Superior due to being a mounted tool beam, to make it actually viable. + + muzzle_type = /obj/effect/projectile/muzzle/emitter + tracer_type = /obj/effect/projectile/tracer/emitter + impact_type = /obj/effect/projectile/impact/emitter + +/obj/item/projectile/beam/heavylaser/cannon + damage = 80 + armor_penetration = 50 + light_color = "#FF0D00" + +/obj/item/projectile/beam/xray + name = "xray beam" + icon_state = "xray" + fire_sound = 'sound/weapons/eluger.ogg' + damage = 25 + armor_penetration = 50 + light_color = "#00CC33" + + muzzle_type = /obj/effect/projectile/muzzle/xray + tracer_type = /obj/effect/projectile/tracer/xray + impact_type = /obj/effect/projectile/impact/xray + +/obj/item/projectile/beam/gamma + name = "gamma beam" + icon_state = "xray" + fire_sound = 'sound/weapons/eluger.ogg' + damage = 10 + armor_penetration = 90 + irradiate = 20 + light_color = "#00CC33" + + muzzle_type = /obj/effect/projectile/muzzle/xray + tracer_type = /obj/effect/projectile/tracer/xray + impact_type = /obj/effect/projectile/impact/xray + +/obj/item/projectile/beam/cyan + name = "cyan beam" + icon_state = "cyan" + fire_sound = 'sound/weapons/eluger.ogg' + damage = 40 + light_color = "#00C6FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + +/obj/item/projectile/beam/pulse + name = "pulse" + icon_state = "u_laser" + fire_sound='sound/weapons/gauss_shoot.ogg' // Needs a more meaty sound than what pulse.ogg currently is; this will be a placeholder for now. + damage = 100 //Badmin toy, don't care + armor_penetration = 100 + light_color = "#0066FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_pulse + tracer_type = /obj/effect/projectile/tracer/laser_pulse + impact_type = /obj/effect/projectile/impact/laser_pulse + +/obj/item/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0) + if(isturf(target)) + target.ex_act(2) + ..() + +/obj/item/projectile/beam/emitter + name = "emitter beam" + icon_state = "emitter" + fire_sound = 'sound/weapons/emitter.ogg' + damage = 0 // The actual damage is computed in /code/modules/power/singularity/emitter.dm + light_color = "#00CC33" + excavation_amount = 70 // 3 shots to mine a turf + + muzzle_type = /obj/effect/projectile/muzzle/emitter + tracer_type = /obj/effect/projectile/tracer/emitter + impact_type = /obj/effect/projectile/impact/emitter + +/obj/item/projectile/beam/lasertag + name = "lasertag beam" + damage = 0 + eyeblur = 0 + no_attack_log = 1 + damage_type = BURN + check_armour = "laser" + + combustion = FALSE + +/obj/item/projectile/beam/lasertag/blue + icon_state = "bluelaser" + light_color = "#0066FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_blue + tracer_type = /obj/effect/projectile/tracer/laser_blue + impact_type = /obj/effect/projectile/impact/laser_blue + +/obj/item/projectile/beam/lasertag/blue/on_hit(var/atom/target, var/blocked = 0) + if(ishuman(target)) + var/mob/living/carbon/human/M = target + if(istype(M.wear_suit, /obj/item/clothing/suit/redtag)) + M.Weaken(5) + return 1 + +/obj/item/projectile/beam/lasertag/red + icon_state = "laser" + light_color = "#FF0D00" + +/obj/item/projectile/beam/lasertag/red/on_hit(var/atom/target, var/blocked = 0) + if(ishuman(target)) + var/mob/living/carbon/human/M = target + if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag)) + M.Weaken(5) + return 1 + +/obj/item/projectile/beam/lasertag/omni//A laser tag bolt that stuns EVERYONE + icon_state = "omnilaser" + light_color = "#00C6FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + +/obj/item/projectile/beam/lasertag/omni/on_hit(var/atom/target, var/blocked = 0) + if(ishuman(target)) + var/mob/living/carbon/human/M = target + if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag))) + M.Weaken(5) + return 1 + +/obj/item/projectile/beam/sniper + name = "sniper beam" + icon_state = "xray" + fire_sound = 'sound/weapons/gauss_shoot.ogg' + damage = 50 + armor_penetration = 10 + light_color = "#00CC33" + + muzzle_type = /obj/effect/projectile/muzzle/xray + tracer_type = /obj/effect/projectile/tracer/xray + impact_type = /obj/effect/projectile/impact/xray + +/obj/item/projectile/beam/stun + name = "stun beam" + icon_state = "stun" + fire_sound = 'sound/weapons/Taser.ogg' + nodamage = 1 + taser_effect = 1 + agony = 40 + damage_type = HALLOSS + light_color = "#FFFFFF" + hitsound = 'sound/weapons/zapbang.ogg' + + combustion = FALSE + + muzzle_type = /obj/effect/projectile/muzzle/stun + tracer_type = /obj/effect/projectile/tracer/stun + impact_type = /obj/effect/projectile/impact/stun + +/obj/item/projectile/beam/stun/weak + name = "weak stun beam" + icon_state = "stun" + agony = 25 + +/obj/item/projectile/beam/stun/med + name = "stun beam" + icon_state = "stun" + agony = 30 + +/obj/item/projectile/beam/stun/disabler + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + +/obj/item/projectile/beam/stun/disabler/on_hit(atom/target, blocked = 0, def_zone) + . = ..(target, blocked, def_zone) + + if(. && istype(target, /mob/living/silicon/robot) && prob(agony)) + var/mob/living/silicon/robot/R = target + var/drainamt = agony * (rand(5, 15) / 10) + R.drain_power(0, 0, drainamt) + if(istype(firer, /mob/living/silicon/robot)) // Mischevious sappers, the swarm drones are. + var/mob/living/silicon/robot/A = firer + if(A.cell) + A.cell.give(drainamt * 2) + +/obj/item/projectile/beam/shock + name = "shock beam" + icon_state = "lightning" + damage_type = ELECTROCUTE + + muzzle_type = /obj/effect/projectile/muzzle/lightning + tracer_type = /obj/effect/projectile/tracer/lightning + impact_type = /obj/effect/projectile/impact/lightning + + damage = 30 + agony = 15 + eyeblur = 2 + hitsound = 'sound/weapons/zapbang.ogg' + +/obj/item/projectile/beam/shock/weak + damage = 5 + agony = 10 + + +// +// Projectile Beam Definitions +// + +/obj/item/projectile/beam/pointdefense + name = "point defense salvo" + icon_state = "laser" + damage = 15 + damage_type = ELECTROCUTE //You should be safe inside a voidsuit + sharp = FALSE //"Wide" spectrum beam + light_color = COLOR_GOLD + + excavation_amount = 200 // Good at shooting rocks + + muzzle_type = /obj/effect/projectile/muzzle/pointdefense + tracer_type = /obj/effect/projectile/tracer/pointdefense + impact_type = /obj/effect/projectile/impact/pointdefense +======= +/obj/item/projectile/beam + name = "laser" + icon_state = "laser" + fire_sound = 'sound/weapons/Laser.ogg' + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + damage = 40 + damage_type = BURN + check_armour = "laser" + eyeblur = 4 + var/frequency = 1 + hitscan = 1 + embed_chance = 0 + invisibility = 99 //beam projectiles are invisible as they are rendered by the effect engine + light_range = 2 + light_power = 0.5 + light_color = "#FF0D00" + hitsound = 'sound/weapons/sear.ogg' + hitsound_wall = 'sound/weapons/effects/searwall.ogg' + + excavation_amount = 50 + + muzzle_type = /obj/effect/projectile/muzzle/laser + tracer_type = /obj/effect/projectile/tracer/laser + impact_type = /obj/effect/projectile/impact/laser + +/obj/item/projectile/beam/practice + name = "laser" + icon_state = "laser" + damage = 0 + excavation_amount = 0 + damage_type = BURN + check_armour = "laser" + eyeblur = 2 + +/obj/item/projectile/beam/weaklaser + name = "weak laser" + icon_state = "laser" + damage = 15 + +/obj/item/projectile/beam/smalllaser + damage = 25 + +/obj/item/projectile/beam/burstlaser + damage = 30 + armor_penetration = 10 + + +/obj/item/projectile/beam/midlaser + damage = 40 + armor_penetration = 10 + +/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 + +/obj/item/projectile/beam/heavylaser + name = "heavy laser" + icon_state = "heavylaser" + fire_sound = 'sound/weapons/lasercannonfire.ogg' + damage = 60 + armor_penetration = 30 + light_range = 3 + light_power = 1 + light_color = "#FF0D00" + + muzzle_type = /obj/effect/projectile/muzzle/laser_heavy + tracer_type = /obj/effect/projectile/tracer/laser_heavy + impact_type = /obj/effect/projectile/impact/laser_heavy + +/obj/item/projectile/beam/heavylaser/fakeemitter + name = "emitter beam" + icon_state = "emitter" + fire_sound = 'sound/weapons/emitter.ogg' + light_color = "#00CC33" + excavation_amount = 140 // 2 shots to dig a standard rock turf. Superior due to being a mounted tool beam, to make it actually viable. + + muzzle_type = /obj/effect/projectile/muzzle/emitter + tracer_type = /obj/effect/projectile/tracer/emitter + impact_type = /obj/effect/projectile/impact/emitter + +/obj/item/projectile/beam/heavylaser/cannon + damage = 80 + armor_penetration = 50 + light_color = "#FF0D00" + +/obj/item/projectile/beam/xray + name = "xray beam" + icon_state = "xray" + fire_sound = 'sound/weapons/eluger.ogg' + damage = 25 + armor_penetration = 50 + light_color = "#00CC33" + + muzzle_type = /obj/effect/projectile/muzzle/xray + tracer_type = /obj/effect/projectile/tracer/xray + impact_type = /obj/effect/projectile/impact/xray + +/obj/item/projectile/beam/gamma + name = "gamma beam" + icon_state = "xray" + fire_sound = 'sound/weapons/eluger.ogg' + damage = 10 + armor_penetration = 90 + irradiate = 20 + light_color = "#00CC33" + + muzzle_type = /obj/effect/projectile/muzzle/xray + tracer_type = /obj/effect/projectile/tracer/xray + impact_type = /obj/effect/projectile/impact/xray + +/obj/item/projectile/beam/cyan + name = "cyan beam" + icon_state = "cyan" + fire_sound = 'sound/weapons/eluger.ogg' + damage = 40 + light_color = "#00C6FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + +/obj/item/projectile/beam/pulse + name = "pulse" + icon_state = "u_laser" + fire_sound='sound/weapons/gauss_shoot.ogg' // Needs a more meaty sound than what pulse.ogg currently is; this will be a placeholder for now. + damage = 100 //Badmin toy, don't care + armor_penetration = 100 + light_color = "#0066FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_pulse + tracer_type = /obj/effect/projectile/tracer/laser_pulse + impact_type = /obj/effect/projectile/impact/laser_pulse + +/obj/item/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0) + if(isturf(target)) + target.ex_act(2) + ..() + +/obj/item/projectile/beam/emitter + name = "emitter beam" + icon_state = "emitter" + fire_sound = 'sound/weapons/emitter.ogg' + damage = 0 // The actual damage is computed in /code/modules/power/singularity/emitter.dm + light_color = "#00CC33" + excavation_amount = 70 // 3 shots to mine a turf + + muzzle_type = /obj/effect/projectile/muzzle/emitter + tracer_type = /obj/effect/projectile/tracer/emitter + impact_type = /obj/effect/projectile/impact/emitter + +/obj/item/projectile/beam/lasertag + name = "lasertag beam" + damage = 0 + eyeblur = 0 + excavation_amount = 0 + no_attack_log = 1 + damage_type = BURN + check_armour = "laser" + + combustion = FALSE + +/obj/item/projectile/beam/lasertag/blue + icon_state = "bluelaser" + light_color = "#0066FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_blue + tracer_type = /obj/effect/projectile/tracer/laser_blue + impact_type = /obj/effect/projectile/impact/laser_blue + +/obj/item/projectile/beam/lasertag/blue/on_hit(var/atom/target, var/blocked = 0) + if(ishuman(target)) + var/mob/living/carbon/human/M = target + if(istype(M.wear_suit, /obj/item/clothing/suit/redtag)) + M.Weaken(5) + return 1 + +/obj/item/projectile/beam/lasertag/red + icon_state = "laser" + light_color = "#FF0D00" + +/obj/item/projectile/beam/lasertag/red/on_hit(var/atom/target, var/blocked = 0) + if(ishuman(target)) + var/mob/living/carbon/human/M = target + if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag)) + M.Weaken(5) + return 1 + +/obj/item/projectile/beam/lasertag/omni//A laser tag bolt that stuns EVERYONE + icon_state = "omnilaser" + light_color = "#00C6FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + +/obj/item/projectile/beam/lasertag/omni/on_hit(var/atom/target, var/blocked = 0) + if(ishuman(target)) + var/mob/living/carbon/human/M = target + if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag))) + M.Weaken(5) + return 1 + +/obj/item/projectile/beam/sniper + name = "sniper beam" + icon_state = "xray" + fire_sound = 'sound/weapons/gauss_shoot.ogg' + damage = 50 + armor_penetration = 10 + light_color = "#00CC33" + + muzzle_type = /obj/effect/projectile/muzzle/xray + tracer_type = /obj/effect/projectile/tracer/xray + impact_type = /obj/effect/projectile/impact/xray + +/obj/item/projectile/beam/stun + name = "stun beam" + icon_state = "stun" + fire_sound = 'sound/weapons/Taser.ogg' + nodamage = 1 + taser_effect = 1 + agony = 40 + damage_type = HALLOSS + light_color = "#FFFFFF" + hitsound = 'sound/weapons/zapbang.ogg' + + combustion = FALSE + + muzzle_type = /obj/effect/projectile/muzzle/stun + tracer_type = /obj/effect/projectile/tracer/stun + impact_type = /obj/effect/projectile/impact/stun + +/obj/item/projectile/beam/stun/weak + name = "weak stun beam" + icon_state = "stun" + agony = 25 + +/obj/item/projectile/beam/stun/med + name = "stun beam" + icon_state = "stun" + agony = 30 + +/obj/item/projectile/beam/stun/disabler + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + +/obj/item/projectile/beam/stun/disabler/on_hit(atom/target, blocked = 0, def_zone) + . = ..(target, blocked, def_zone) + + if(. && istype(target, /mob/living/silicon/robot) && prob(agony)) + var/mob/living/silicon/robot/R = target + var/drainamt = agony * (rand(5, 15) / 10) + R.drain_power(0, 0, drainamt) + if(istype(firer, /mob/living/silicon/robot)) // Mischevious sappers, the swarm drones are. + var/mob/living/silicon/robot/A = firer + if(A.cell) + A.cell.give(drainamt * 2) + +/obj/item/projectile/beam/shock + name = "shock beam" + icon_state = "lightning" + damage_type = ELECTROCUTE + + muzzle_type = /obj/effect/projectile/muzzle/lightning + tracer_type = /obj/effect/projectile/tracer/lightning + impact_type = /obj/effect/projectile/impact/lightning + + damage = 30 + agony = 15 + eyeblur = 2 + hitsound = 'sound/weapons/zapbang.ogg' + +/obj/item/projectile/beam/shock/weak + damage = 5 + agony = 10 + + +// +// Projectile Beam Definitions +// + +/obj/item/projectile/beam/pointdefense + name = "point defense salvo" + icon_state = "laser" + damage = 15 + damage_type = ELECTROCUTE //You should be safe inside a voidsuit + sharp = FALSE //"Wide" spectrum beam + light_color = COLOR_GOLD + + excavation_amount = 200 // Good at shooting rocks + + muzzle_type = /obj/effect/projectile/muzzle/pointdefense + tracer_type = /obj/effect/projectile/tracer/pointdefense + impact_type = /obj/effect/projectile/impact/pointdefense +>>>>>>> 5decd031a3... Merge pull request #10185 from VOREStation/upstream-merge-8037 From 241c6447c8fd171e4fc41a5ff2fb7566a813e2d1 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 21 Apr 2021 21:48:30 -0700 Subject: [PATCH 2/3] Update beams.dm --- code/modules/projectiles/projectile/beams.dm | 628 +------------------ 1 file changed, 12 insertions(+), 616 deletions(-) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 59897f6591..1cd279ef61 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -1,285 +1,3 @@ -<<<<<<< HEAD -/obj/item/projectile/beam - name = "laser" - icon_state = "laser" - fire_sound = 'sound/weapons/Laser.ogg' - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 40 - damage_type = BURN - check_armour = "laser" - eyeblur = 4 - var/frequency = 1 - hitscan = 1 - embed_chance = 0 - invisibility = 99 //beam projectiles are invisible as they are rendered by the effect engine - light_range = 2 - light_power = 0.5 - light_color = "#FF0D00" - hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' - - muzzle_type = /obj/effect/projectile/muzzle/laser - tracer_type = /obj/effect/projectile/tracer/laser - impact_type = /obj/effect/projectile/impact/laser - -/obj/item/projectile/beam/practice - name = "laser" - icon_state = "laser" - damage = 0 - damage_type = BURN - check_armour = "laser" - eyeblur = 2 - -/obj/item/projectile/beam/weaklaser - name = "weak laser" - icon_state = "laser" - damage = 15 - -/obj/item/projectile/beam/smalllaser - damage = 25 - -/obj/item/projectile/beam/burstlaser - damage = 30 - armor_penetration = 10 - - -/obj/item/projectile/beam/midlaser - damage = 40 - armor_penetration = 10 - -/obj/item/projectile/beam/heavylaser - name = "heavy laser" - icon_state = "heavylaser" - fire_sound = 'sound/weapons/lasercannonfire.ogg' - damage = 60 - armor_penetration = 30 - light_range = 3 - light_power = 1 - light_color = "#FF0D00" - - muzzle_type = /obj/effect/projectile/muzzle/laser_heavy - tracer_type = /obj/effect/projectile/tracer/laser_heavy - impact_type = /obj/effect/projectile/impact/laser_heavy - -/obj/item/projectile/beam/heavylaser/fakeemitter - name = "emitter beam" - icon_state = "emitter" - fire_sound = 'sound/weapons/emitter.ogg' - light_color = "#00CC33" - excavation_amount = 140 // 2 shots to dig a standard rock turf. Superior due to being a mounted tool beam, to make it actually viable. - - muzzle_type = /obj/effect/projectile/muzzle/emitter - tracer_type = /obj/effect/projectile/tracer/emitter - impact_type = /obj/effect/projectile/impact/emitter - -/obj/item/projectile/beam/heavylaser/cannon - damage = 80 - armor_penetration = 50 - light_color = "#FF0D00" - -/obj/item/projectile/beam/xray - name = "xray beam" - icon_state = "xray" - fire_sound = 'sound/weapons/eluger.ogg' - damage = 25 - armor_penetration = 50 - light_color = "#00CC33" - - muzzle_type = /obj/effect/projectile/muzzle/xray - tracer_type = /obj/effect/projectile/tracer/xray - impact_type = /obj/effect/projectile/impact/xray - -/obj/item/projectile/beam/gamma - name = "gamma beam" - icon_state = "xray" - fire_sound = 'sound/weapons/eluger.ogg' - damage = 12 //CHOMPedit - armor_penetration = 90 - irradiate = 20 - light_color = "#00CC33" - - muzzle_type = /obj/effect/projectile/muzzle/xray - tracer_type = /obj/effect/projectile/tracer/xray - impact_type = /obj/effect/projectile/impact/xray - -/obj/item/projectile/beam/cyan - name = "cyan beam" - icon_state = "cyan" - fire_sound = 'sound/weapons/eluger.ogg' - damage = 40 - light_color = "#00C6FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_omni - tracer_type = /obj/effect/projectile/tracer/laser_omni - impact_type = /obj/effect/projectile/impact/laser_omni - -/obj/item/projectile/beam/pulse - name = "pulse" - icon_state = "u_laser" - fire_sound='sound/weapons/gauss_shoot.ogg' // Needs a more meaty sound than what pulse.ogg currently is; this will be a placeholder for now. - damage = 100 //Badmin toy, don't care - armor_penetration = 100 - light_color = "#0066FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_pulse - tracer_type = /obj/effect/projectile/tracer/laser_pulse - impact_type = /obj/effect/projectile/impact/laser_pulse - -/obj/item/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0) - if(isturf(target)) - target.ex_act(2) - ..() - -/obj/item/projectile/beam/emitter - name = "emitter beam" - icon_state = "emitter" - fire_sound = 'sound/weapons/emitter.ogg' - damage = 0 // The actual damage is computed in /code/modules/power/singularity/emitter.dm - light_color = "#00CC33" - excavation_amount = 70 // 3 shots to mine a turf - - muzzle_type = /obj/effect/projectile/muzzle/emitter - tracer_type = /obj/effect/projectile/tracer/emitter - impact_type = /obj/effect/projectile/impact/emitter - -/obj/item/projectile/beam/lasertag - name = "lasertag beam" - damage = 0 - eyeblur = 0 - no_attack_log = 1 - damage_type = BURN - check_armour = "laser" - - combustion = FALSE - -/obj/item/projectile/beam/lasertag/blue - icon_state = "bluelaser" - light_color = "#0066FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_blue - tracer_type = /obj/effect/projectile/tracer/laser_blue - impact_type = /obj/effect/projectile/impact/laser_blue - -/obj/item/projectile/beam/lasertag/blue/on_hit(var/atom/target, var/blocked = 0) - if(ishuman(target)) - var/mob/living/carbon/human/M = target - if(istype(M.wear_suit, /obj/item/clothing/suit/redtag)) - M.Weaken(5) - return 1 - -/obj/item/projectile/beam/lasertag/red - icon_state = "laser" - light_color = "#FF0D00" - -/obj/item/projectile/beam/lasertag/red/on_hit(var/atom/target, var/blocked = 0) - if(ishuman(target)) - var/mob/living/carbon/human/M = target - if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag)) - M.Weaken(5) - return 1 - -/obj/item/projectile/beam/lasertag/omni//A laser tag bolt that stuns EVERYONE - icon_state = "omnilaser" - light_color = "#00C6FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_omni - tracer_type = /obj/effect/projectile/tracer/laser_omni - impact_type = /obj/effect/projectile/impact/laser_omni - -/obj/item/projectile/beam/lasertag/omni/on_hit(var/atom/target, var/blocked = 0) - if(ishuman(target)) - var/mob/living/carbon/human/M = target - if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag))) - M.Weaken(5) - return 1 - -/obj/item/projectile/beam/sniper - name = "sniper beam" - icon_state = "xray" - fire_sound = 'sound/weapons/gauss_shoot.ogg' - damage = 50 - armor_penetration = 10 - light_color = "#00CC33" - - muzzle_type = /obj/effect/projectile/muzzle/xray - tracer_type = /obj/effect/projectile/tracer/xray - impact_type = /obj/effect/projectile/impact/xray - -/obj/item/projectile/beam/stun - name = "stun beam" - icon_state = "stun" - fire_sound = 'sound/weapons/Taser.ogg' - nodamage = 1 - taser_effect = 1 - agony = 40 - damage_type = HALLOSS - light_color = "#FFFFFF" - hitsound = 'sound/weapons/zapbang.ogg' - - combustion = FALSE - - muzzle_type = /obj/effect/projectile/muzzle/stun - tracer_type = /obj/effect/projectile/tracer/stun - impact_type = /obj/effect/projectile/impact/stun - -/obj/item/projectile/beam/stun/weak - name = "weak stun beam" - icon_state = "stun" - agony = 25 - -/obj/item/projectile/beam/stun/med - name = "stun beam" - icon_state = "stun" - agony = 30 - -/obj/item/projectile/beam/stun/disabler - muzzle_type = /obj/effect/projectile/muzzle/laser_omni - tracer_type = /obj/effect/projectile/tracer/laser_omni - impact_type = /obj/effect/projectile/impact/laser_omni - -/obj/item/projectile/beam/stun/disabler/on_hit(atom/target, blocked = 0, def_zone) - . = ..(target, blocked, def_zone) - - if(. && istype(target, /mob/living/silicon/robot) && prob(agony)) - var/mob/living/silicon/robot/R = target - var/drainamt = agony * (rand(5, 15) / 10) - R.drain_power(0, 0, drainamt) - if(istype(firer, /mob/living/silicon/robot)) // Mischevious sappers, the swarm drones are. - var/mob/living/silicon/robot/A = firer - if(A.cell) - A.cell.give(drainamt * 2) - -/obj/item/projectile/beam/shock - name = "shock beam" - icon_state = "lightning" - damage_type = ELECTROCUTE - - muzzle_type = /obj/effect/projectile/muzzle/lightning - tracer_type = /obj/effect/projectile/tracer/lightning - impact_type = /obj/effect/projectile/impact/lightning - - damage = 30 - agony = 15 - eyeblur = 2 - hitsound = 'sound/weapons/zapbang.ogg' - -/obj/item/projectile/beam/shock/weak - damage = 5 - agony = 10 - -/obj/item/projectile/beam/precursor //CHOMPedit added Precursor beam - name = "precursor beam" - icon_state = "alien beam" - fire_sound = 'sound/weapons/MediumLaser.ogg' - light_color = "#FF0099" - - muzzle_type = /obj/effect/projectile/muzzle/precursor - tracer_type = /obj/effect/projectile/tracer/precursor - impact_type = /obj/effect/projectile/impact/precursor - - damage = 48 - armor_penetration = 10 -||||||| parent of 5decd031a3... Merge pull request #10185 from VOREStation/upstream-merge-8037 /obj/item/projectile/beam name = "laser" icon_state = "laser" @@ -299,8 +17,6 @@ hitsound = 'sound/weapons/sear.ogg' hitsound_wall = 'sound/weapons/effects/searwall.ogg' - excavation_amount = 50 - muzzle_type = /obj/effect/projectile/muzzle/laser tracer_type = /obj/effect/projectile/tracer/laser impact_type = /obj/effect/projectile/impact/laser @@ -309,6 +25,7 @@ name = "laser" icon_state = "laser" damage = 0 + excavation_amount = 0 damage_type = BURN check_armour = "laser" eyeblur = 2 @@ -330,18 +47,6 @@ damage = 40 armor_penetration = 10 -/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 - /obj/item/projectile/beam/heavylaser name = "heavy laser" icon_state = "heavylaser" @@ -388,7 +93,7 @@ name = "gamma beam" icon_state = "xray" fire_sound = 'sound/weapons/eluger.ogg' - damage = 10 + damage = 12 //CHOMPedit armor_penetration = 90 irradiate = 20 light_color = "#00CC33" @@ -440,6 +145,7 @@ /obj/item/projectile/beam/lasertag name = "lasertag beam" damage = 0 + excavation_amount = 0 eyeblur = 0 no_attack_log = 1 damage_type = BURN @@ -562,325 +268,15 @@ damage = 5 agony = 10 +/obj/item/projectile/beam/precursor //CHOMPedit added Precursor beam + name = "precursor beam" + icon_state = "alien beam" + fire_sound = 'sound/weapons/MediumLaser.ogg' + light_color = "#FF0099" -// -// Projectile Beam Definitions -// + muzzle_type = /obj/effect/projectile/muzzle/precursor + tracer_type = /obj/effect/projectile/tracer/precursor + impact_type = /obj/effect/projectile/impact/precursor -/obj/item/projectile/beam/pointdefense - name = "point defense salvo" - icon_state = "laser" - damage = 15 - damage_type = ELECTROCUTE //You should be safe inside a voidsuit - sharp = FALSE //"Wide" spectrum beam - light_color = COLOR_GOLD - - excavation_amount = 200 // Good at shooting rocks - - muzzle_type = /obj/effect/projectile/muzzle/pointdefense - tracer_type = /obj/effect/projectile/tracer/pointdefense - impact_type = /obj/effect/projectile/impact/pointdefense -======= -/obj/item/projectile/beam - name = "laser" - icon_state = "laser" - fire_sound = 'sound/weapons/Laser.ogg' - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 40 - damage_type = BURN - check_armour = "laser" - eyeblur = 4 - var/frequency = 1 - hitscan = 1 - embed_chance = 0 - invisibility = 99 //beam projectiles are invisible as they are rendered by the effect engine - light_range = 2 - light_power = 0.5 - light_color = "#FF0D00" - hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' - - excavation_amount = 50 - - muzzle_type = /obj/effect/projectile/muzzle/laser - tracer_type = /obj/effect/projectile/tracer/laser - impact_type = /obj/effect/projectile/impact/laser - -/obj/item/projectile/beam/practice - name = "laser" - icon_state = "laser" - damage = 0 - excavation_amount = 0 - damage_type = BURN - check_armour = "laser" - eyeblur = 2 - -/obj/item/projectile/beam/weaklaser - name = "weak laser" - icon_state = "laser" - damage = 15 - -/obj/item/projectile/beam/smalllaser - damage = 25 - -/obj/item/projectile/beam/burstlaser - damage = 30 + damage = 48 armor_penetration = 10 - - -/obj/item/projectile/beam/midlaser - damage = 40 - armor_penetration = 10 - -/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 - -/obj/item/projectile/beam/heavylaser - name = "heavy laser" - icon_state = "heavylaser" - fire_sound = 'sound/weapons/lasercannonfire.ogg' - damage = 60 - armor_penetration = 30 - light_range = 3 - light_power = 1 - light_color = "#FF0D00" - - muzzle_type = /obj/effect/projectile/muzzle/laser_heavy - tracer_type = /obj/effect/projectile/tracer/laser_heavy - impact_type = /obj/effect/projectile/impact/laser_heavy - -/obj/item/projectile/beam/heavylaser/fakeemitter - name = "emitter beam" - icon_state = "emitter" - fire_sound = 'sound/weapons/emitter.ogg' - light_color = "#00CC33" - excavation_amount = 140 // 2 shots to dig a standard rock turf. Superior due to being a mounted tool beam, to make it actually viable. - - muzzle_type = /obj/effect/projectile/muzzle/emitter - tracer_type = /obj/effect/projectile/tracer/emitter - impact_type = /obj/effect/projectile/impact/emitter - -/obj/item/projectile/beam/heavylaser/cannon - damage = 80 - armor_penetration = 50 - light_color = "#FF0D00" - -/obj/item/projectile/beam/xray - name = "xray beam" - icon_state = "xray" - fire_sound = 'sound/weapons/eluger.ogg' - damage = 25 - armor_penetration = 50 - light_color = "#00CC33" - - muzzle_type = /obj/effect/projectile/muzzle/xray - tracer_type = /obj/effect/projectile/tracer/xray - impact_type = /obj/effect/projectile/impact/xray - -/obj/item/projectile/beam/gamma - name = "gamma beam" - icon_state = "xray" - fire_sound = 'sound/weapons/eluger.ogg' - damage = 10 - armor_penetration = 90 - irradiate = 20 - light_color = "#00CC33" - - muzzle_type = /obj/effect/projectile/muzzle/xray - tracer_type = /obj/effect/projectile/tracer/xray - impact_type = /obj/effect/projectile/impact/xray - -/obj/item/projectile/beam/cyan - name = "cyan beam" - icon_state = "cyan" - fire_sound = 'sound/weapons/eluger.ogg' - damage = 40 - light_color = "#00C6FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_omni - tracer_type = /obj/effect/projectile/tracer/laser_omni - impact_type = /obj/effect/projectile/impact/laser_omni - -/obj/item/projectile/beam/pulse - name = "pulse" - icon_state = "u_laser" - fire_sound='sound/weapons/gauss_shoot.ogg' // Needs a more meaty sound than what pulse.ogg currently is; this will be a placeholder for now. - damage = 100 //Badmin toy, don't care - armor_penetration = 100 - light_color = "#0066FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_pulse - tracer_type = /obj/effect/projectile/tracer/laser_pulse - impact_type = /obj/effect/projectile/impact/laser_pulse - -/obj/item/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0) - if(isturf(target)) - target.ex_act(2) - ..() - -/obj/item/projectile/beam/emitter - name = "emitter beam" - icon_state = "emitter" - fire_sound = 'sound/weapons/emitter.ogg' - damage = 0 // The actual damage is computed in /code/modules/power/singularity/emitter.dm - light_color = "#00CC33" - excavation_amount = 70 // 3 shots to mine a turf - - muzzle_type = /obj/effect/projectile/muzzle/emitter - tracer_type = /obj/effect/projectile/tracer/emitter - impact_type = /obj/effect/projectile/impact/emitter - -/obj/item/projectile/beam/lasertag - name = "lasertag beam" - damage = 0 - eyeblur = 0 - excavation_amount = 0 - no_attack_log = 1 - damage_type = BURN - check_armour = "laser" - - combustion = FALSE - -/obj/item/projectile/beam/lasertag/blue - icon_state = "bluelaser" - light_color = "#0066FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_blue - tracer_type = /obj/effect/projectile/tracer/laser_blue - impact_type = /obj/effect/projectile/impact/laser_blue - -/obj/item/projectile/beam/lasertag/blue/on_hit(var/atom/target, var/blocked = 0) - if(ishuman(target)) - var/mob/living/carbon/human/M = target - if(istype(M.wear_suit, /obj/item/clothing/suit/redtag)) - M.Weaken(5) - return 1 - -/obj/item/projectile/beam/lasertag/red - icon_state = "laser" - light_color = "#FF0D00" - -/obj/item/projectile/beam/lasertag/red/on_hit(var/atom/target, var/blocked = 0) - if(ishuman(target)) - var/mob/living/carbon/human/M = target - if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag)) - M.Weaken(5) - return 1 - -/obj/item/projectile/beam/lasertag/omni//A laser tag bolt that stuns EVERYONE - icon_state = "omnilaser" - light_color = "#00C6FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_omni - tracer_type = /obj/effect/projectile/tracer/laser_omni - impact_type = /obj/effect/projectile/impact/laser_omni - -/obj/item/projectile/beam/lasertag/omni/on_hit(var/atom/target, var/blocked = 0) - if(ishuman(target)) - var/mob/living/carbon/human/M = target - if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag))) - M.Weaken(5) - return 1 - -/obj/item/projectile/beam/sniper - name = "sniper beam" - icon_state = "xray" - fire_sound = 'sound/weapons/gauss_shoot.ogg' - damage = 50 - armor_penetration = 10 - light_color = "#00CC33" - - muzzle_type = /obj/effect/projectile/muzzle/xray - tracer_type = /obj/effect/projectile/tracer/xray - impact_type = /obj/effect/projectile/impact/xray - -/obj/item/projectile/beam/stun - name = "stun beam" - icon_state = "stun" - fire_sound = 'sound/weapons/Taser.ogg' - nodamage = 1 - taser_effect = 1 - agony = 40 - damage_type = HALLOSS - light_color = "#FFFFFF" - hitsound = 'sound/weapons/zapbang.ogg' - - combustion = FALSE - - muzzle_type = /obj/effect/projectile/muzzle/stun - tracer_type = /obj/effect/projectile/tracer/stun - impact_type = /obj/effect/projectile/impact/stun - -/obj/item/projectile/beam/stun/weak - name = "weak stun beam" - icon_state = "stun" - agony = 25 - -/obj/item/projectile/beam/stun/med - name = "stun beam" - icon_state = "stun" - agony = 30 - -/obj/item/projectile/beam/stun/disabler - muzzle_type = /obj/effect/projectile/muzzle/laser_omni - tracer_type = /obj/effect/projectile/tracer/laser_omni - impact_type = /obj/effect/projectile/impact/laser_omni - -/obj/item/projectile/beam/stun/disabler/on_hit(atom/target, blocked = 0, def_zone) - . = ..(target, blocked, def_zone) - - if(. && istype(target, /mob/living/silicon/robot) && prob(agony)) - var/mob/living/silicon/robot/R = target - var/drainamt = agony * (rand(5, 15) / 10) - R.drain_power(0, 0, drainamt) - if(istype(firer, /mob/living/silicon/robot)) // Mischevious sappers, the swarm drones are. - var/mob/living/silicon/robot/A = firer - if(A.cell) - A.cell.give(drainamt * 2) - -/obj/item/projectile/beam/shock - name = "shock beam" - icon_state = "lightning" - damage_type = ELECTROCUTE - - muzzle_type = /obj/effect/projectile/muzzle/lightning - tracer_type = /obj/effect/projectile/tracer/lightning - impact_type = /obj/effect/projectile/impact/lightning - - damage = 30 - agony = 15 - eyeblur = 2 - hitsound = 'sound/weapons/zapbang.ogg' - -/obj/item/projectile/beam/shock/weak - damage = 5 - agony = 10 - - -// -// Projectile Beam Definitions -// - -/obj/item/projectile/beam/pointdefense - name = "point defense salvo" - icon_state = "laser" - damage = 15 - damage_type = ELECTROCUTE //You should be safe inside a voidsuit - sharp = FALSE //"Wide" spectrum beam - light_color = COLOR_GOLD - - excavation_amount = 200 // Good at shooting rocks - - muzzle_type = /obj/effect/projectile/muzzle/pointdefense - tracer_type = /obj/effect/projectile/tracer/pointdefense - impact_type = /obj/effect/projectile/impact/pointdefense ->>>>>>> 5decd031a3... Merge pull request #10185 from VOREStation/upstream-merge-8037