Skip to content

Commit

Permalink
Kabooms (#466)
Browse files Browse the repository at this point in the history
* gib_you_benos

* zadushili

* FUCK

* explosion_threshold_gib

* Revert "explosion_threshold_gib"

This reverts commit 53ef314.

* x2

* Update code/modules/mob/living/carbon/xenomorph/damage_procs.dm

Co-authored-by: Helg2 <[email protected]>
Signed-off-by: homexp13 <[email protected]>

* ironman

* Update code/modules/mob/living/carbon/human/human.dm

Co-authored-by: Helg2 <[email protected]>
Signed-off-by: homexp13 <[email protected]>

* direct

---------

Signed-off-by: homexp13 <[email protected]>
Co-authored-by: Helg2 <[email protected]>
  • Loading branch information
homexp13 and Helg2 authored Oct 13, 2024
1 parent b3e4f80 commit ef5f0c2
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 31 deletions.
2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/human/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
if(lying_angle)
severity *= EXPLOSION_PRONE_MULTIPLIER

if(severity >= EXPLOSION_THRESHOLD_GIB + get_soft_armor(BOMB))
if(severity >= EXPLOSION_THRESHOLD_GIB + (get_soft_armor(BOMB) * 2))
var/oldloc = loc
gib()
create_shrapnel(oldloc, rand(5, 9), direction, 45, /datum/ammo/bullet/shrapnel/light/human)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/xenomorph/damage_procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
if(lying_angle)
severity *= EXPLOSION_PRONE_MULTIPLIER

if(severity >= (health) && severity >= EXPLOSION_THRESHOLD_GIB + get_soft_armor(BOMB))
if(severity >= max(health, EXPLOSION_THRESHOLD_GIB + get_soft_armor(BOMB) * 2))
var/oldloc = loc
gib()
create_shrapnel(oldloc, rand(16, 24), direction, shrapnel_type = /datum/ammo/bullet/shrapnel/light/xeno)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/projectiles/ammo_datums/mecha.dm
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,9 @@

/datum/ammo/rocket/mech
name = "large high-explosive rocket"
damage = 75
damage = 30
penetration = 50
max_range = 30

/datum/ammo/rocket/mech/drop_nade(turf/T)
cell_explosion(T, 75, 15)
cell_explosion(T, 120, 24)
47 changes: 23 additions & 24 deletions code/modules/projectiles/ammo_datums/rocket.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@
accuracy = 40
accurate_range = 20
max_range = 14
damage = 200
damage = 80
penetration = 100
sundering = 100
bullet_color = LIGHT_COLOR_FIRE
barricade_clear_distance = 2

/datum/ammo/rocket/drop_nade(turf/T)
cell_explosion(T, 200, 35)
cell_explosion(T, 320, 55)

/datum/ammo/rocket/on_hit_mob(mob/M, obj/projectile/P)
drop_nade(get_turf(M))
Expand All @@ -39,19 +39,19 @@
hud_state = "rocket_he"
accurate_range = 20
max_range = 14
damage = 150
damage = 60
penetration = 100
sundering = 100

/datum/ammo/rocket/he/drop_nade(turf/T)
cell_explosion(T, 150, 40)
cell_explosion(T, 240, 65)

/datum/ammo/rocket/he/unguided
damage = 100
damage = 60
flags_ammo_behavior = AMMO_SNIPER // We want this one to specifically go over onscreen range.

/datum/ammo/rocket/he/unguided/drop_nade(turf/T)
cell_explosion(T, 200, 50)
cell_explosion(T, 240, 60)

/datum/ammo/rocket/ap
name = "kinetic penetrator"
Expand All @@ -72,11 +72,11 @@
accurate_range = 15
max_range = 40
penetration = 50
damage = 200
damage = 80
hud_state = "bigshell_he"

/datum/ammo/rocket/ltb/drop_nade(turf/T)
cell_explosion(T, 200, 45)
cell_explosion(T, 320, 70)

/datum/ammo/bullet/tank_apfds
name = "8.8cm APFDS round"
Expand Down Expand Up @@ -227,12 +227,12 @@
shell_speed = 2
accurate_range = 20
max_range = 30
damage = 100
damage = 50
penetration = 50
sundering = 50

/datum/ammo/rocket/recoilless/drop_nade(turf/T)
cell_explosion(T, 150, 75)
cell_explosion(T, 200, 70)

/datum/ammo/rocket/recoilless/heat
name = "HEAT shell"
Expand Down Expand Up @@ -266,12 +266,11 @@
flags_ammo_behavior = AMMO_SNIPER //We want this to specifically go farther than onscreen range.
accurate_range = 15
max_range = 20
damage = 75
penetration = 50
sundering = 25

/datum/ammo/rocket/recoilless/light/drop_nade(turf/T)
cell_explosion(T, 75, 25)
cell_explosion(T, 150, 50)

/datum/ammo/rocket/recoilless/chemical
name = "low velocity chemical shell"
Expand Down Expand Up @@ -314,22 +313,22 @@
flags_ammo_behavior = AMMO_SNIPER //We want this to specifically go farther than onscreen range.
accurate_range = 15
max_range = 20
damage = 75
damage = 35
penetration = 15
sundering = 25

/datum/ammo/rocket/recoilless/low_impact/drop_nade(turf/T)
cell_explosion(T, 100, 15)
cell_explosion(T, 140, 20)

/datum/ammo/rocket/oneuse
name = "explosive rocket"
damage = 100
damage = 50
penetration = 100
sundering = 100
max_range = 30

/datum/ammo/rocket/oneuse/drop_nade(turf/T)
cell_explosion(T, 115, 45)
cell_explosion(T, 175, 60)

/datum/ammo/rocket/som
name = "high explosive RPG"
Expand All @@ -338,24 +337,24 @@
flags_ammo_behavior = AMMO_SNIPER
accurate_range = 15
max_range = 20
damage = 80
damage = 50
penetration = 20
sundering = 20

/datum/ammo/rocket/som/drop_nade(turf/T)
cell_explosion(T, 175, 35)
cell_explosion(T, 205, 35)

/datum/ammo/rocket/som/light
name = "low impact RPG"
icon_state = "rpg_le"
hud_state = "rpg_le"
flags_ammo_behavior = AMMO_SNIPER
accurate_range = 15
damage = 60
damage = 35
penetration = 10

/datum/ammo/rocket/som/light/drop_nade(turf/T)
cell_explosion(T, 125, 15)
cell_explosion(T, 150, 15)

/datum/ammo/rocket/som/thermobaric
name = "thermobaric RPG"
Expand Down Expand Up @@ -427,14 +426,14 @@
hud_state_empty = "shell_empty"
flags_ammo_behavior = AMMO_TARGET_TURF|AMMO_SNIPER|AMMO_PASS_THROUGH_TURF
shell_speed = 2
damage = 90
damage = 30
penetration = 30
sundering = 25
max_range = 30
handful_amount = 1

/datum/ammo/rocket/atgun_shell/drop_nade(turf/T)
cell_explosion(T, 55 , 30)
cell_explosion(T, 115 , 60)

/datum/ammo/rocket/atgun_shell/on_hit_turf(turf/T, obj/projectile/P) //no explosion every time it hits a turf
P.proj_max_range -= 10
Expand Down Expand Up @@ -466,12 +465,12 @@
name = "low velocity high explosive shell"
hud_state = "shell_he"
flags_ammo_behavior = AMMO_TARGET_TURF|AMMO_SNIPER
damage = 50
damage = 30
penetration = 50
sundering = 35

/datum/ammo/rocket/atgun_shell/he/drop_nade(turf/T)
cell_explosion(T, 90, 30)
cell_explosion(T, 110, 40)

/datum/ammo/rocket/atgun_shell/he/on_hit_turf(turf/T, obj/projectile/P)
drop_nade(T.density ? P.loc : T)
Expand Down
6 changes: 3 additions & 3 deletions code/modules/projectiles/projectile.dm
Original file line number Diff line number Diff line change
Expand Up @@ -877,6 +877,9 @@ So if we are on the 32th absolute pixel coordinate we are on tile 1, but if we a
if(stat == DEAD)
return

if(proj.sundering)
adjust_sunder(proj.sundering)

var/damage = max(0, proj.damage - round(proj.distance_travelled * proj.damage_falloff))
if(!damage)
return
Expand Down Expand Up @@ -910,9 +913,6 @@ So if we are on the 32th absolute pixel coordinate we are on tile 1, but if we a
if(IgniteMob())
feedback_flags |= (BULLET_FEEDBACK_FIRE)

if(proj.sundering)
adjust_sunder(proj.sundering)

if(stat != DEAD && proj.firer)
proj.firer.record_projectile_damage(damage, src) //Tally up whoever the shooter was

Expand Down

0 comments on commit ef5f0c2

Please sign in to comment.