mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-03 13:32:17 +00:00
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
121 lines
3.2 KiB
Plaintext
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
|