Skip to content

Commit

Permalink
Standard Shrapnell Buff + Shrapnel rocket now shoots directional shra…
Browse files Browse the repository at this point in the history
…pnell (#7581)

# About the pull request

Increases shrapnell damage accuracy and damage . 
Rockets will now shoot their shrapnell (if they have any) in a 90 angle
facing the objective.

# Explain why it's good for the game

Currently Shrapnell is near useless in combat against both xenos and
humans . this PR aims to make shrapnell more usefull by having greater
accuracy.

The objective of this is having shrapnel have a somewhat consistent
output on dmg . instead of being fully RNG . specially on xenomorph .
currently ingame an entire 200 shrap mortar can land next to you and you
only get about 100 dmg as most of them will miss.

rocket now shoots its shrapnell directionally so the operator doesnt
kill itself and others with it .


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
balance: Shrapnell accuracy and damage increased
balance: Shrapnell now does 60% bonus damage to xenomorphs
balance: Shrapnell slows xenomorphs on hit 
balance: Custom rockets will now shoot their shrapnell on a 90 degree
angle
/:cl:

---------

Co-authored-by: kiVts <[email protected]>
  • Loading branch information
Diegoflores31 and kiVts authored Jan 7, 2025
1 parent 3ebe132 commit 46f3bd9
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 16 deletions.
1 change: 1 addition & 0 deletions code/datums/ammo/rocket.dm
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@
if(rocket.fuel && rocket.fuel.reagents.get_reagent_amount(rocket.fuel_type) >= rocket.fuel_requirement)
rocket.forceMove(projectile.loc)
rocket.warhead.cause_data = projectile.weapon_cause_data
rocket.warhead.dir = get_dir(launcher, atom)
rocket.warhead.prime()
qdel(rocket)
smoke.set_up(1, get_turf(atom))
Expand Down
32 changes: 16 additions & 16 deletions code/datums/ammo/shrapnel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,27 @@
/datum/ammo/bullet/shrapnel
name = "shrapnel"
icon_state = "buckshot"
accurate_range_min = 5
flags_ammo_behavior = AMMO_BALLISTIC|AMMO_STOPPED_BY_COVER

accuracy = HIT_ACCURACY_TIER_3
accurate_range = 32
max_range = 8
damage = 25
damage_var_low = -PROJECTILE_VARIANCE_TIER_6
damage_var_high = PROJECTILE_VARIANCE_TIER_6
penetration = ARMOR_PENETRATION_TIER_4
accuracy = HIT_ACCURACY_TIER_4
accurate_range = 7
max_range = 10
damage = 30
penetration = ARMOR_PENETRATION_TIER_2
shell_speed = AMMO_SPEED_TIER_2
shrapnel_chance = 5

/datum/ammo/bullet/shrapnel/on_hit_obj(obj/O, obj/projectile/P)
if(istype(O, /obj/structure/barricade))
var/obj/structure/barricade/B = O
B.health -= rand(2, 5)
B.health -= rand(5, 10)
B.update_health(1)

/datum/ammo/bullet/shrapnel/on_hit_mob(mob/living/carbon/xeno, obj/projectile/projectile, mob/user)
if(!shrapnel_chance) // no shrapnell , no special effects
return
if(isxeno(xeno))
xeno.apply_effect(4, SLOW) // multiple hits dont stack they just renew the duration
xeno.apply_armoured_damage(damage * 0.6, ARMOR_BULLET, BRUTE, , penetration) // xenos have a lot of HP

/datum/ammo/bullet/shrapnel/rubber
name = "rubber pellets"
icon_state = "rubber_pellets"
Expand All @@ -39,7 +41,7 @@
name = ".22 hornet round"
icon_state = "hornet_round"
flags_ammo_behavior = AMMO_BALLISTIC
damage = 8
damage = 10
shrapnel_chance = 0
shell_speed = AMMO_SPEED_TIER_3//she fast af boi
penetration = ARMOR_PENETRATION_TIER_5
Expand All @@ -59,10 +61,9 @@
name = "flaming shrapnel"
icon_state = "beanbag" // looks suprisingly a lot like flaming shrapnel chunks
flags_ammo_behavior = AMMO_STOPPED_BY_COVER

shell_speed = AMMO_SPEED_TIER_1
damage = 20
penetration = ARMOR_PENETRATION_TIER_4
damage = 30
penetration = ARMOR_PENETRATION_TIER_10 //molten metal pierces your armor

/datum/ammo/bullet/shrapnel/incendiary/set_bullet_traits()
. = ..()
Expand All @@ -86,7 +87,6 @@
/datum/ammo/bullet/shrapnel/metal
name = "metal shrapnel"
icon_state = "shrapnelshot_bit"
flags_ammo_behavior = AMMO_STOPPED_BY_COVER|AMMO_BALLISTIC
shell_speed = AMMO_SPEED_TIER_1
damage = 30
shrapnel_chance = 15
Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/items/explosives/warhead.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
icon_state = "warhead_rocket"
max_container_volume = 210
allow_star_shape = FALSE
use_dir = TRUE
angle = 90
matter = list("metal" = 11250) //3 sheets
reaction_limits = list( "max_ex_power" = 220, "base_ex_falloff" = 160,"max_ex_shards" = 80,
"max_fire_rad" = 4, "max_fire_int" = 45, "max_fire_dur" = 48,
Expand Down

0 comments on commit 46f3bd9

Please sign in to comment.