mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
About The Pull Request Stamina damage no longer stacks with regular damage. Stamina regen is paused for 10 seconds every time you take stamina damage Stamina damage is purged if stamina regen resumes after you enter stamcrit changes to make this work: disablers knocked down to 30 punch damage changed to full raw, 1.5x stamina. flesh-eating symptom deals 2x stamina damage CQC unchanged Bostaff manually stacks Energised jelly blob deals full stamina damage Pressurised slime blob deals full stamina damage Blood boil deals 1.5x stamina damage to servants of ratvar (why do I bother?) Revenant blight now deals 20 stamina damage Space carp no longer deal stamina damage, but deal 20 brute. Enchanted bullets deal 20 brute damage Beanbags reduced to 55 stamina damage Rubbershot damage untouched Ebow stamina damage increased to 60 bone hurting juice deals 7.5 stamina damage per tick, down from 15 Why It's Good For The Game Stamina damage not stacking with regular damage is meant to make disablers less good as a weapon for all-out firefights, but remain good for arresting criminals as a sec squad. The stamina regen pause allows for chemicals that deal stamina damage to be effective even if they don't only target one body part (as in #43924), and gets rid of the counterintuitive speedy regeneration if multiple bodyparts are damaged. It also makes stamina damage calculations more straightforward - currently 4 damage/tick to the chest is really 1, and adding 25% more damage to the chem deals 100% more damage per tick. The stamina purge is to make stamcrit less of a confirmed win - several times as sec officer I've succumbed to poison, run out of charge, etc only for the rest of sec to arrive before the perp awakes from his 3 hour sleep. Stamina damage is fully purged to make keeping someone down require more attention, since under the current system even if they somehow get up they'll be so slow it'll be trivial to put them down again. Basically, makes handcuffs more useful again. Changelog cl add: stamina damage now pauses natural stamina regen for 10 seconds add: stamina regenerates fully when it can. balance: disabler damage reduced tweak: stamina damage no longer stacks with normal damage for the purposes of damage slowdown and crit balance: many sources of stamina damage have been adjusted, check PR for details /cl
187 lines
5.7 KiB
Plaintext
187 lines
5.7 KiB
Plaintext
/obj/item/projectile/beam
|
|
name = "laser"
|
|
icon_state = "laser"
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
|
damage = 20
|
|
light_range = 2
|
|
damage_type = BURN
|
|
hitsound = 'sound/weapons/sear.ogg'
|
|
hitsound_wall = 'sound/weapons/effects/searwall.ogg'
|
|
flag = "laser"
|
|
eyeblur = 2
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser
|
|
light_color = LIGHT_COLOR_RED
|
|
ricochets_max = 50 //Honk!
|
|
ricochet_chance = 80
|
|
reflectable = REFLECT_NORMAL
|
|
|
|
/obj/item/projectile/beam/laser
|
|
tracer_type = /obj/effect/projectile/tracer/laser
|
|
muzzle_type = /obj/effect/projectile/muzzle/laser
|
|
impact_type = /obj/effect/projectile/impact/laser
|
|
|
|
/obj/item/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/item/projectile/beam/laser/on_hit(atom/target, blocked = FALSE)
|
|
. = ..()
|
|
if(iscarbon(target))
|
|
var/mob/living/carbon/M = target
|
|
M.IgniteMob()
|
|
else if(isturf(target))
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser/wall
|
|
|
|
/obj/item/projectile/beam/weak
|
|
damage = 15
|
|
|
|
/obj/item/projectile/beam/weak/penetrator
|
|
armour_penetration = 50
|
|
|
|
/obj/item/projectile/beam/practice
|
|
name = "practice laser"
|
|
damage = 0
|
|
nodamage = TRUE
|
|
|
|
/obj/item/projectile/beam/scatter
|
|
name = "laser pellet"
|
|
icon_state = "scatterlaser"
|
|
damage = 5
|
|
|
|
/obj/item/projectile/beam/xray
|
|
name = "\improper X-ray beam"
|
|
icon_state = "xray"
|
|
damage = 15
|
|
irradiate = 300
|
|
range = 15
|
|
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF
|
|
|
|
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/item/projectile/beam/disabler
|
|
name = "disabler beam"
|
|
icon_state = "omnilaser"
|
|
damage = 30
|
|
damage_type = STAMINA
|
|
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/item/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
|
|
|
|
/obj/item/projectile/beam/pulse/on_hit(atom/target, blocked = FALSE)
|
|
. = ..()
|
|
if (!QDELETED(target) && (isturf(target) || istype(target, /obj/structure/)))
|
|
target.ex_act(EXPLODE_HEAVY)
|
|
|
|
/obj/item/projectile/beam/pulse/shotgun
|
|
damage = 40
|
|
|
|
/obj/item/projectile/beam/pulse/heavy
|
|
name = "heavy pulse laser"
|
|
icon_state = "pulse1_bl"
|
|
var/life = 20
|
|
|
|
/obj/item/projectile/beam/pulse/heavy/on_hit(atom/target, blocked = FALSE)
|
|
life -= 10
|
|
if(life > 0)
|
|
. = BULLET_ACT_FORCE_PIERCE
|
|
..()
|
|
|
|
/obj/item/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
|
|
|
|
/obj/item/projectile/beam/emitter/singularity_pull()
|
|
return //don't want the emitters to miss
|
|
|
|
/obj/item/projectile/beam/lasertag
|
|
name = "laser tag beam"
|
|
icon_state = "omnilaser"
|
|
hitsound = null
|
|
damage = 0
|
|
damage_type = STAMINA
|
|
flag = "laser"
|
|
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/item/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/item/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 = LIGHT_COLOR_RED
|
|
tracer_type = /obj/effect/projectile/tracer/laser
|
|
muzzle_type = /obj/effect/projectile/muzzle/laser
|
|
impact_type = /obj/effect/projectile/impact/laser
|
|
|
|
/obj/item/projectile/beam/lasertag/redtag/hitscan
|
|
hitscan = TRUE
|
|
|
|
/obj/item/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/item/projectile/beam/lasertag/bluetag/hitscan
|
|
hitscan = TRUE
|
|
|
|
/obj/item/projectile/beam/instakill
|
|
name = "instagib laser"
|
|
icon_state = "purple_laser"
|
|
damage = 200
|
|
damage_type = BURN
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser
|
|
light_color = LIGHT_COLOR_PURPLE
|
|
|
|
/obj/item/projectile/beam/instakill/blue
|
|
icon_state = "blue_laser"
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
|
|
light_color = LIGHT_COLOR_BLUE
|
|
|
|
/obj/item/projectile/beam/instakill/red
|
|
icon_state = "red_laser"
|
|
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser
|
|
light_color = LIGHT_COLOR_RED
|
|
|
|
/obj/item/projectile/beam/instakill/on_hit(atom/target)
|
|
. = ..()
|
|
if(iscarbon(target))
|
|
var/mob/living/carbon/M = target
|
|
M.visible_message("<span class='danger'>[M] explodes into a shower of gibs!</span>")
|
|
M.gib()
|