Files
Bubberstation/code/modules/projectiles/projectile/bullets/revolver.dm
SmArtKar 442ef897bc Refactors firestacks into status effects (#66573)
This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.

Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.

Also changed some related proc names to be snake_case like everything should be.

This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing
2022-05-04 23:52:07 -07:00

121 lines
3.2 KiB
Plaintext

// 7.62x38mmR (Nagant Revolver)
/obj/projectile/bullet/n762
name = "7.62x38mmR bullet"
damage = 60
// .50AE (Desert Eagle)
/obj/projectile/bullet/a50ae
name = ".50AE bullet"
damage = 60
// .38 (Detective's Gun)
/obj/projectile/bullet/c38
name = ".38 bullet"
damage = 25
ricochets_max = 2
ricochet_chance = 50
ricochet_auto_aim_angle = 10
ricochet_auto_aim_range = 3
wound_bonus = -20
bare_wound_bonus = 10
embedding = list(embed_chance=25, fall_chance=2, jostle_chance=2, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=3, jostle_pain_mult=5, rip_time=1 SECONDS)
embed_falloff_tile = -4
/obj/projectile/bullet/c38/match
name = ".38 Match bullet"
ricochets_max = 4
ricochet_chance = 100
ricochet_auto_aim_angle = 40
ricochet_auto_aim_range = 5
ricochet_incidence_leeway = 50
ricochet_decay_chance = 1
ricochet_decay_damage = 1
/obj/projectile/bullet/c38/match/bouncy
name = ".38 Rubber bullet"
damage = 10
stamina = 30
weak_against_armour = TRUE
ricochets_max = 6
ricochet_incidence_leeway = 0
ricochet_chance = 130
ricochet_decay_damage = 0.8
shrapnel_type = null
sharpness = NONE
embedding = null
// premium .38 ammo from cargo, weak against armor, lower base damage, but excellent at embedding and causing slice wounds at close range
/obj/projectile/bullet/c38/dumdum
name = ".38 DumDum bullet"
damage = 15
weak_against_armour = TRUE
ricochets_max = 0
sharpness = SHARP_EDGED
wound_bonus = 20
bare_wound_bonus = 20
embedding = list(embed_chance=75, 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)
wound_falloff_tile = -5
embed_falloff_tile = -15
/obj/projectile/bullet/c38/trac
name = ".38 TRAC bullet"
damage = 10
ricochets_max = 0
/obj/projectile/bullet/c38/trac/on_hit(atom/target, blocked = FALSE)
. = ..()
var/mob/living/carbon/M = target
if(!istype(M))
return
var/obj/item/implant/tracking/c38/imp
for(var/obj/item/implant/tracking/c38/TI in M.implants) //checks if the target already contains a tracking implant
imp = TI
return
if(!imp)
imp = new /obj/item/implant/tracking/c38(M)
imp.implant(M)
/obj/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail
name = ".38 Hot Shot bullet"
damage = 20
ricochets_max = 0
/obj/projectile/bullet/c38/hotshot/on_hit(atom/target, blocked = FALSE)
. = ..()
if(iscarbon(target))
var/mob/living/carbon/M = target
M.adjust_fire_stacks(6)
M.ignite_mob()
/obj/projectile/bullet/c38/iceblox //see /obj/projectile/temp for the original code
name = ".38 Iceblox bullet"
damage = 20
var/temperature = 100
ricochets_max = 0
/obj/projectile/bullet/c38/iceblox/on_hit(atom/target, blocked = FALSE)
. = ..()
if(isliving(target))
var/mob/living/M = target
M.adjust_bodytemperature(((100-blocked)/100)*(temperature - M.bodytemperature))
// .357 (Syndie Revolver)
/obj/projectile/bullet/a357
name = ".357 bullet"
damage = 60
wound_bonus = -30
// admin only really, for ocelot memes
/obj/projectile/bullet/a357/match
name = ".357 match bullet"
ricochets_max = 5
ricochet_chance = 140
ricochet_auto_aim_angle = 50
ricochet_auto_aim_range = 6
ricochet_incidence_leeway = 80
ricochet_decay_chance = 1