Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Fixed Stamina Projectiles dealing DOUBLE STAMINA DAMAGE (WHY WAS THIS A THING FOR SO LONG?!!) + Debilitated Rebalancing + Shotgun Rebalancing #4213

Merged
merged 4 commits into from
Nov 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions code/modules/mob/living/damage_procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,8 @@
if(immobilize)
apply_effect(immobilize, EFFECT_IMMOBILIZE, blocked)

if(stamina)
apply_damage(stamina, STAMINA, null, blocked)
//if(stamina) //monkestation removal
// apply_damage(stamina, STAMINA, null, blocked) //IF THIS ISN'T AN EFFECT AND IS A DAMAGE TYPE WHY IS IT HERE?

if(drowsy)
adjust_drowsiness(drowsy)
Expand Down
10 changes: 5 additions & 5 deletions code/modules/projectiles/ammunition/ballistic/shotgun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,25 +79,25 @@
desc = "A 12 gauge buckshot shell."
icon_state = "gshell"
projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot
pellets = 6
pellets = 8 //monkestation edit was 6
variance = 25

/obj/item/ammo_casing/shotgun/rubbershot
name = "rubber shot"
desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance."
icon_state = "rshell"
projectile_type = /obj/projectile/bullet/pellet/shotgun_rubbershot
pellets = 6
variance = 20
pellets = 5 //monkestation edit
variance = 25 // 5 pellets for 15 stam and 3 damage each
custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2)

/obj/item/ammo_casing/shotgun/incapacitate
name = "custom incapacitating shot"
desc = "A shotgun casing filled with... something. used to incapacitate targets."
icon_state = "bountyshell"
projectile_type = /obj/projectile/bullet/pellet/shotgun_incapacitate
pellets = 12//double the pellets, but half the stun power of each, which makes this best for just dumping right in someone's face.
variance = 25
pellets = 20//monkestation edit 12 to 20
variance = 30 //monkestation edit
custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2)

/obj/item/ammo_casing/shotgun/improvised
Expand Down
2 changes: 1 addition & 1 deletion code/modules/projectiles/projectile.dm
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@

// i know that this is probably more with wands and gun mods in mind, but it's a bit silly that the projectile on_hit signal doesn't ping the projectile itself.
// maybe we care what the projectile thinks! See about combining these via args some time when it's not 5AM
if(stamina >= 10 && isliving(target))
if(stamina >= 15 && isliving(target))
var/mob/living/living = target
var/datum/status_effect/stacking/debilitated/effect = living.has_status_effect(/datum/status_effect/stacking/debilitated)
if(effect)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/projectiles/projectile/bullets/revolver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@
/obj/projectile/bullet/c38/match/bouncy
name = ".38 Rubber bullet"
damage = 10
stamina = 30
stamina = 40 //30 to 40 monkestation edit
weak_against_armour = TRUE
ricochets_max = 6
ricochet_incidence_leeway = 0
ricochet_chance = 130
ricochet_decay_damage = 0.8
ricochet_decay_damage = 1 //0.8 to 1 monkestation edit let them have fun
shrapnel_type = null
sharpness = NONE
embedding = null
Expand Down
10 changes: 6 additions & 4 deletions code/modules/projectiles/projectile/bullets/shotgun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
/obj/projectile/bullet/shotgun_beanbag
name = "beanbag slug"
icon_state = "pellet"
damage = 10
stamina = 65 //monkestation edit
damage = 5 //10 to 5 monkestation edit
stamina = 75 //monkestation edit
wound_bonus = 20
sharpness = NONE
embedding = null
Expand Down Expand Up @@ -84,9 +84,10 @@
/obj/projectile/bullet/pellet/shotgun_rubbershot
name = "rubber shot pellet"
damage = 3
stamina = 30 //monkestation edit
stamina = 15 //monkestation edit
sharpness = NONE
embedding = null
tile_dropoff_s = 0 //monkestation edit
speed = 1.2
ricochets_max = 4
ricochet_chance = 120
Expand All @@ -106,7 +107,8 @@
/obj/projectile/bullet/pellet/shotgun_incapacitate
name = "incapacitating pellet"
damage = 1
stamina = 6
stamina = 12 //monkestation edit
tile_dropoff_s = 3 //monkestation edit spitting distance
embedding = null

/obj/projectile/bullet/pellet/shotgun_improvised
Expand Down
10 changes: 4 additions & 6 deletions monkestation/code/modules/blood_datum/debilitated.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,23 @@
/datum/status_effect/stacking/debilitated
id = "debilitated"
stacks = 0
max_stacks = 10
max_stacks = 5
tick_interval = 10 SECONDS
delay_before_decay = 3 MINUTES
delay_before_decay = 1 MINUTES
consumed_on_threshold = FALSE
alert_type = /atom/movable/screen/alert/status_effect/debilitated
status_type = STATUS_EFFECT_REFRESH

///our base stamina loss multiplier
var/loss_multiplier = 1
///our per stack increase to stamina loss
var/per_stack_multiplier_increase = 0.1
///our cached stamina_mod
var/cached_stamina
var/per_stack_multiplier_increase = 0.2

/datum/status_effect/stacking/debilitated/on_apply()
. = ..()
if(ishuman(owner))
var/mob/living/carbon/human/human = owner
cached_stamina = human.physiology.temp_stamina_mod
human.physiology.temp_stamina_mod = loss_multiplier + (stacks * per_stack_multiplier_increase)

/datum/status_effect/stacking/debilitated/add_stacks(stacks_added)
. = ..()
Expand Down
31 changes: 2 additions & 29 deletions monkestation/code/modules/blueshift/items/ammo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1153,30 +1153,6 @@
<i>HORNET'S NEST: Fire an overwhelming amount of projectiles in a single shot.</i>"
can_be_printed = FALSE

/obj/item/ammo_casing/shotgun/buckshot
name = "buckshot shell"
desc = "A 12 gauge buckshot shell."
icon_state = "gshell"
projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot
pellets = 8 // 8 * 6 for 48 damage if every pellet hits, we want to keep lethal shells ~50 damage
variance = 25

/obj/projectile/bullet/pellet/shotgun_buckshot
name = "buckshot pellet"
damage = 6

/obj/item/ammo_casing/shotgun/rubbershot
name = "rubber shot"
desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance."
icon_state = "rshell"
projectile_type = /obj/projectile/bullet/pellet/shotgun_rubbershot
pellets = 6 // 6 * 10 for 60 stamina damage, + some small amount of brute, we want to keep less lethal shells ~60
variance = 20
harmful = FALSE

/obj/projectile/bullet/pellet/shotgun_rubbershot
stamina = 10

/obj/item/ammo_casing/shotgun/magnum
name = "magnum blockshot shell"
desc = "A 12 gauge shell that fires fewer, larger pellets than buckshot. A favorite of SolFed anti-piracy enforcers, \
Expand Down Expand Up @@ -1285,15 +1261,15 @@
icon = 'monkestation/code/modules/blueshift/icons/projectiles.dmi'
icon_state = "stardust"
damage = 2
stamina = 10
stamina = 7
wound_bonus = 0
bare_wound_bonus = 0
stutter = 3 SECONDS
jitter = 5 SECONDS
eyeblur = 1 SECONDS
sharpness = NONE
range = 7
embedding = list(embed_chance=70, pain_chance=25, fall_chance=15, jostle_chance=80, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.9, pain_mult=2, rip_time=10)
embedding = list(embed_chance=75, pain_chance=50, fall_chance=15, jostle_chance=80, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.9, pain_mult=2, rip_time=10)

/obj/projectile/bullet/pellet/shotgun_buckshot/antitide/on_range()
do_sparks(1, TRUE, src)
Expand Down Expand Up @@ -1332,9 +1308,6 @@
. = ..()
AddElement(/datum/element/bane, mob_biotypes = MOB_BEAST, damage_multiplier = 5)

/obj/projectile/bullet/pellet/shotgun_improvised
weak_against_armour = TRUE // We will not have Improvised are Better 2.0

/obj/item/ammo_casing/shotgun/honkshot
name = "confetti shell"
desc = "A 12 gauge buckshot shell thats been filled to the brim with confetti, yippie!"
Expand Down
Loading