Files
necromanceranneandGitHub 2e5b06d9f2 Pipeguns are more lethal. Good luck. (#96769)
## About The Pull Request

Pipegun: 40 -> 70
Pipegun Prime : 80 -> 120
Pipe Pistol: 15 x 3 -> 25 x 3
Pipe Pistol Prime: LOL-> LMAO

The junk round types have additional adjustments accordingly.

New Junk Round type: Ants

It shoots ants at you. Go fuck yourself.

## Why It's Good For The Game
People are still telling me that the pipegun/pipe pistol is still not
worth crafting despite various attempts to improve the means of doing
so. Killing people too slowly, it often leaves plenty of time for
victims to reverse the attack or simply escape, leaving the intended hit
and run playstyle it wishes to encourage too ineffectual.

Therefore, to make it actually an appreciable attack, we have boosted
the damage to 'oh God I'm fucking dying RIGHT NOW' tier.

You're welcome.

Ants.

## Changelog
🆑
balance: The pipegun types now deal more damage. Good luck.
balance: New Junk Round: Sometimes, your pipegun will fire an entire ant
colony into your enemies bloodstream. Die, asshole. Ants.
/🆑
2026-07-11 15:58:37 +01:00

120 lines
3.7 KiB
Plaintext

// Junk (Pipe Pistols and Pipeguns)
/obj/projectile/bullet/junk
name = "junk bullet"
icon_state = "trashball"
damage = 40
embed_type = /datum/embedding/bullet/junk
/// What biotype does our junk projectile especially harm?
var/extra_damage_mob_biotypes = MOB_ROBOTIC
/// How much do we multiply our total base damage?
var/extra_damage_multiplier = 1.5
/// How much extra damage do we do on top of this total damage? Separate from the multiplier and unaffected by it.
var/extra_damage_added_damage = 0
/// What damage type is our extra damage?
var/extra_damage_type = BRUTE
/obj/projectile/bullet/junk/on_hit(atom/target, blocked = 0, pierce_hit)
. = ..()
if(!isliving(target))
return
var/mob/living/living_target = target
var/is_correct_biotype = living_target.mob_biotypes & extra_damage_mob_biotypes
if(extra_damage_mob_biotypes && is_correct_biotype)
var/multiplied_damage = extra_damage_multiplier ? ((damage * extra_damage_multiplier) - damage) : 0
var/finalized_damage = multiplied_damage + extra_damage_added_damage
if(finalized_damage)
living_target.apply_damage(finalized_damage, damagetype = extra_damage_type, def_zone = BODY_ZONE_CHEST, wound_bonus = wound_bonus)
/datum/embedding/bullet/junk
embed_chance = 30
fall_chance = 3
jostle_chance = 4
ignore_throwspeed_threshold = TRUE
pain_stam_pct = 0.4
pain_mult = 5
jostle_pain_mult = 6
rip_time = 1 SECONDS
stealthy_embed = FALSE
/obj/projectile/bullet/incendiary/fire/junk
name = "burning oil"
damage = 40
fire_stacks = 5
suppressed = SUPPRESSED_NONE
/obj/projectile/bullet/dart/ants
name = "a ball of ants"
icon_state = "trashball"
damage = 40 // Fuck your life.
inject_flags = INJECT_CHECK_PENETRATE_THICK // Fuck your modsuit.
/obj/projectile/bullet/dart/ants/Initialize(mapload)
. = ..()
reagents.add_reagent(/datum/reagent/ants, damage) // Get fucked, asshole. Ants.
/obj/projectile/bullet/junk/phasic
name = "junk phasic bullet"
icon_state = "gaussphase"
projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS
/obj/projectile/bullet/junk/shock
name = "bundle of live electrical parts"
icon_state = "tesla_projectile"
damage = 20
embed_type = null
shrapnel_type = null
extra_damage_added_damage = 30
extra_damage_type = BURN
/obj/projectile/bullet/junk/shock/on_hit(atom/target, blocked = 0, pierce_hit)
. = ..()
if(isliving(target))
var/mob/living/victim = target
victim.electrocute_act(damage, src, siemens_coeff = 1, flags = SHOCK_NOSTUN)
/obj/projectile/bullet/junk/hunter
name = "junk hunter bullet"
icon_state = "gauss"
extra_damage_mob_biotypes = MOB_ROBOTIC | MOB_BEAST | MOB_SPECIAL | MOB_MINING
extra_damage_multiplier = 0
extra_damage_added_damage = 80
/obj/projectile/bullet/junk/ripper
name = "junk ripper bullet"
icon_state = "redtrac"
damage = 20
embed_type = /datum/embedding/bullet/junk/ripper
wound_bonus = 20
exposed_wound_bonus = 30
/datum/embedding/bullet/junk/ripper
embed_chance = 100
fall_chance = 3
jostle_chance = 4
ignore_throwspeed_threshold = TRUE
pain_stam_pct = 0.4
pain_mult = 5
jostle_pain_mult = 6
rip_time = 1 SECONDS
/obj/projectile/bullet/junk/reaper
name = "junk reaper bullet"
icon_state = null
tracer_type = /obj/effect/projectile/tracer/sniper
impact_type = /obj/effect/projectile/impact/sniper
muzzle_type = /obj/effect/projectile/muzzle/sniper
hitscan = TRUE
impact_effect_type = null
hitscan_light_intensity = 3
hitscan_light_range = 0.75
hitscan_light_color_override = LIGHT_COLOR_DIM_YELLOW
muzzle_flash_intensity = 5
muzzle_flash_range = 1
muzzle_flash_color_override = LIGHT_COLOR_DIM_YELLOW
impact_light_intensity = 5
impact_light_range = 1
impact_light_color_override = LIGHT_COLOR_DIM_YELLOW