mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-24 00:21:52 +00:00
* Buffs mech disabler (#72941) ## About The Pull Request Mech disabler now is works like a shotgun, shooting 5 weak disabler beams(15 damage, the normal disabler beam has 30). The energy drain is increased to 100 from 30. Has a cooldown of 1.5 seconds. The exact numbers(weapon scatter, damage, amount of projectiles) can be discussed. ## Why It's Good For The Game When you are trying to nonlethally deal with someone, a normal security officer with their roundstart available equipment is more effective then an expensive lategame mech, due to that fact that it is really slow, cant use stunbattons and even if you manage somehow to stamcrit a person with a mech disabler you still need some time to get out in order to handcuff them. So mech disablers are useless, especially compared with other mech weapons, like rocket launchers and ballistic guns. This PR makes the mech disabler not trash, so roboticists would have a wider choice of useful weapons when making a mech. ## Changelog 🆑 balance: Mech disabler now works as a shotgun, shooting 5 weak disabler beams at one time. balance: Mech disabler now uses 100 energy instead of 30, and it's attack cooldown increased to 1.5 seconds instead of 0.8 /🆑 * Buffs mech disabler --------- Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
223 lines
6.6 KiB
Plaintext
223 lines
6.6 KiB
Plaintext
/obj/projectile/beam
|
|
name = "laser"
|
|
icon_state = "laser"
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
|
damage = 22 // SKYRAT EDIT: 20
|
|
damage_type = BURN
|
|
hitsound = 'sound/weapons/sear.ogg'
|
|
hitsound_wall = 'sound/weapons/effects/searwall.ogg'
|
|
armor_flag = LASER
|
|
eyeblur = 2
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser
|
|
light_system = MOVABLE_LIGHT
|
|
light_range = 1
|
|
light_power = 1
|
|
light_color = COLOR_SOFT_RED
|
|
ricochets_max = 50 //Honk!
|
|
ricochet_chance = 80
|
|
reflectable = REFLECT_NORMAL
|
|
wound_bonus = -20
|
|
bare_wound_bonus = 10
|
|
|
|
|
|
/obj/projectile/beam/laser
|
|
tracer_type = /obj/effect/projectile/tracer/laser
|
|
muzzle_type = /obj/effect/projectile/muzzle/laser
|
|
impact_type = /obj/effect/projectile/impact/laser
|
|
wound_bonus = -30
|
|
bare_wound_bonus = 40
|
|
|
|
//overclocked laser, does a bit more damage but has much higher wound power (-0 vs -20)
|
|
/obj/projectile/beam/laser/hellfire
|
|
name = "hellfire laser"
|
|
wound_bonus = 0
|
|
damage = 25
|
|
speed = 0.6 // higher power = faster, that's how light works right
|
|
|
|
/obj/projectile/beam/laser/hellfire/Initialize(mapload)
|
|
. = ..()
|
|
transform *= 2
|
|
|
|
/obj/projectile/beam/laser/heavylaser
|
|
name = "heavy laser"
|
|
icon_state = "heavylaser"
|
|
damage = 40
|
|
tracer_type = /obj/effect/projectile/tracer/heavy_laser
|
|
muzzle_type = /obj/effect/projectile/muzzle/heavy_laser
|
|
impact_type = /obj/effect/projectile/impact/heavy_laser
|
|
|
|
/obj/projectile/beam/laser/on_hit(atom/target, blocked = FALSE)
|
|
. = ..()
|
|
if(iscarbon(target))
|
|
var/mob/living/carbon/M = target
|
|
M.ignite_mob()
|
|
else if(isturf(target))
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser/wall
|
|
|
|
/obj/projectile/beam/weak
|
|
damage = 15
|
|
|
|
/obj/projectile/beam/weak/penetrator
|
|
armour_penetration = 50
|
|
|
|
/obj/projectile/beam/practice
|
|
name = "practice laser"
|
|
damage = 0
|
|
nodamage = TRUE
|
|
|
|
/obj/projectile/beam/scatter
|
|
name = "laser pellet"
|
|
icon_state = "scatterlaser"
|
|
damage = 5
|
|
|
|
/obj/projectile/beam/xray
|
|
name = "\improper X-ray beam"
|
|
icon_state = "xray"
|
|
damage = 15
|
|
range = 15
|
|
armour_penetration = 100
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS
|
|
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser
|
|
light_color = LIGHT_COLOR_GREEN
|
|
tracer_type = /obj/effect/projectile/tracer/xray
|
|
muzzle_type = /obj/effect/projectile/muzzle/xray
|
|
impact_type = /obj/effect/projectile/impact/xray
|
|
|
|
/obj/projectile/beam/disabler
|
|
name = "disabler beam"
|
|
icon_state = "omnilaser"
|
|
damage = 30
|
|
damage_type = STAMINA
|
|
armor_flag = ENERGY
|
|
hitsound = 'sound/weapons/tap.ogg'
|
|
eyeblur = 0
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
|
|
light_color = LIGHT_COLOR_BLUE
|
|
tracer_type = /obj/effect/projectile/tracer/disabler
|
|
muzzle_type = /obj/effect/projectile/muzzle/disabler
|
|
impact_type = /obj/effect/projectile/impact/disabler
|
|
|
|
/obj/projectile/beam/disabler/weak
|
|
damage = 15
|
|
|
|
/obj/projectile/beam/pulse
|
|
name = "pulse"
|
|
icon_state = "u_laser"
|
|
damage = 50
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
|
|
light_color = LIGHT_COLOR_BLUE
|
|
tracer_type = /obj/effect/projectile/tracer/pulse
|
|
muzzle_type = /obj/effect/projectile/muzzle/pulse
|
|
impact_type = /obj/effect/projectile/impact/pulse
|
|
wound_bonus = 10
|
|
|
|
/obj/projectile/beam/pulse/on_hit(atom/target, blocked = FALSE)
|
|
. = ..()
|
|
if (!QDELETED(target) && (isturf(target) || isstructure(target)))
|
|
if(isobj(target))
|
|
SSexplosions.med_mov_atom += target
|
|
else
|
|
SSexplosions.medturf += target
|
|
|
|
/obj/projectile/beam/pulse/shotgun
|
|
damage = 30
|
|
|
|
/obj/projectile/beam/pulse/heavy
|
|
name = "heavy pulse laser"
|
|
icon_state = "pulse1_bl"
|
|
projectile_piercing = ALL
|
|
var/pierce_hits = 2
|
|
|
|
/obj/projectile/beam/pulse/heavy/on_hit(atom/target, blocked = FALSE)
|
|
if(pierce_hits <= 0)
|
|
projectile_piercing = NONE
|
|
pierce_hits -= 1
|
|
..()
|
|
|
|
/obj/projectile/beam/emitter
|
|
name = "emitter beam"
|
|
icon_state = "emitter"
|
|
damage = 30
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser
|
|
light_color = LIGHT_COLOR_GREEN
|
|
wound_bonus = -40
|
|
bare_wound_bonus = 70
|
|
|
|
/obj/projectile/beam/emitter/singularity_pull()
|
|
return //don't want the emitters to miss
|
|
|
|
/obj/projectile/beam/emitter/hitscan
|
|
hitscan = TRUE
|
|
muzzle_type = /obj/effect/projectile/muzzle/laser/emitter
|
|
tracer_type = /obj/effect/projectile/tracer/laser/emitter
|
|
impact_type = /obj/effect/projectile/impact/laser/emitter
|
|
impact_effect_type = null
|
|
hitscan_light_intensity = 3
|
|
hitscan_light_range = 0.75
|
|
hitscan_light_color_override = COLOR_LIME
|
|
muzzle_flash_intensity = 6
|
|
muzzle_flash_range = 2
|
|
muzzle_flash_color_override = COLOR_LIME
|
|
impact_light_intensity = 7
|
|
impact_light_range = 2.5
|
|
impact_light_color_override = COLOR_LIME
|
|
|
|
/obj/projectile/beam/lasertag
|
|
name = "laser tag beam"
|
|
icon_state = "omnilaser"
|
|
hitsound = null
|
|
damage = 0
|
|
damage_type = STAMINA
|
|
var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag)
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
|
|
light_color = LIGHT_COLOR_BLUE
|
|
|
|
/obj/projectile/beam/lasertag/on_hit(atom/target, blocked = FALSE)
|
|
. = ..()
|
|
if(ishuman(target))
|
|
var/mob/living/carbon/human/M = target
|
|
if(istype(M.wear_suit))
|
|
if(M.wear_suit.type in suit_types)
|
|
M.adjustStaminaLoss(34)
|
|
|
|
/obj/projectile/beam/lasertag/redtag
|
|
icon_state = "laser"
|
|
suit_types = list(/obj/item/clothing/suit/bluetag)
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser
|
|
light_color = COLOR_SOFT_RED
|
|
tracer_type = /obj/effect/projectile/tracer/laser
|
|
muzzle_type = /obj/effect/projectile/muzzle/laser
|
|
impact_type = /obj/effect/projectile/impact/laser
|
|
|
|
/obj/projectile/beam/lasertag/redtag/hitscan
|
|
hitscan = TRUE
|
|
|
|
/obj/projectile/beam/lasertag/bluetag
|
|
icon_state = "bluelaser"
|
|
suit_types = list(/obj/item/clothing/suit/redtag)
|
|
tracer_type = /obj/effect/projectile/tracer/laser/blue
|
|
muzzle_type = /obj/effect/projectile/muzzle/laser/blue
|
|
impact_type = /obj/effect/projectile/impact/laser/blue
|
|
|
|
/obj/projectile/beam/lasertag/bluetag/hitscan
|
|
hitscan = TRUE
|
|
|
|
//a shrink ray that shrinks stuff, which grows back after a short while.
|
|
/obj/projectile/beam/shrink
|
|
name = "shrink ray"
|
|
icon_state = "blue_laser"
|
|
hitsound = 'sound/weapons/shrink_hit.ogg'
|
|
damage = 0
|
|
damage_type = STAMINA
|
|
armor_flag = ENERGY
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/shrink
|
|
light_color = LIGHT_COLOR_BLUE
|
|
var/shrink_time = 90
|
|
|
|
/obj/projectile/beam/shrink/on_hit(atom/target, blocked = FALSE)
|
|
. = ..()
|
|
if(isopenturf(target) || isindestructiblewall(target))//shrunk floors wouldnt do anything except look weird, i-walls shouldn't be bypassable
|
|
return
|
|
target.AddComponent(/datum/component/shrink, shrink_time)
|