mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 00:58:26 +01:00
+37






![tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png)


Alexis
GitHub
tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
ArcaneMusic
MrMelbert
Rhials
rageguy505
LemonInTheDark
John Willard
Aliceee2ch
Time-Green
Tsar-Salat
SmArtKar
Maxipat
SyncIt21
deltanedas
SimplyLogan
loganuk
Leland Kemble
FalloutFalcon
Roxy
Lucy
siliconOpossum
Isratosh
TheRyeGuyWhoWillNowDie
Neocloudy
Alexander V.
ElGitificador
Twaticus
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bloop
Cameron Lennox
Tim
Iamgoofball
Layzu666
Arturlang
_0Steven
mrmanlikesbt
Ben10Omintrix
John F. Kennedy
Cursor
Josh
Josh Powell
Yobrocharlie
Hardly3D
shayoki
LT3
21b4095dfd
Upstream 04/17/2026 fixes https://github.com/Bubberstation/Bubberstation/issues/5549 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: loganuk <fakeemail123@aol.com> Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> Co-authored-by: Lucy <lucy@absolucy.moe> Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com> Co-authored-by: Isratosh <Isratosh@hotmail.com> Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com> Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com> Co-authored-by: Alexander V. <volas@ya.ru> Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com> Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com> Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com> Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com> Co-authored-by: Josh <josh.adam.powell@gmail.com> Co-authored-by: Josh Powell <josh.powell@softwire.com> Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com> Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com> Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
216 lines
8.2 KiB
Plaintext
216 lines
8.2 KiB
Plaintext
// .310 Strilka (Sakhno Rifle)
|
|
|
|
/obj/item/ammo_casing/strilka310
|
|
name = ".310 Strilka bullet casing"
|
|
desc = "A .310 Strilka bullet casing. Casing is a bit of a fib; there is no case, it's just a block of red powder."
|
|
icon_state = "310-casing"
|
|
caliber = CALIBER_STRILKA310
|
|
projectile_type = /obj/projectile/bullet/strilka310
|
|
|
|
/obj/item/ammo_casing/strilka310/Initialize(mapload)
|
|
. = ..()
|
|
|
|
AddElement(/datum/element/caseless)
|
|
|
|
/obj/item/ammo_casing/strilka310/surplus
|
|
name = ".310 Strilka surplus bullet casing"
|
|
desc = parent_type::desc + " Damp red powder at that."
|
|
projectile_type = /obj/projectile/bullet/strilka310/surplus
|
|
|
|
/obj/item/ammo_casing/strilka310/enchanted
|
|
projectile_type = /obj/projectile/bullet/strilka310/enchanted
|
|
|
|
/obj/item/ammo_casing/strilka310/phasic
|
|
name = ".310 Strilka phasic bullet casing"
|
|
desc = "A phasic .310 Strilka bullet casing."
|
|
projectile_type = /obj/projectile/bullet/strilka310/phasic
|
|
|
|
// .223 (M-90gl Carbine)
|
|
|
|
/obj/item/ammo_casing/a223
|
|
name = ".223 bullet casing"
|
|
desc = "A .223 bullet casing."
|
|
icon_state = "223-casing"
|
|
caliber = CALIBER_A223
|
|
projectile_type = /obj/projectile/bullet/a223
|
|
|
|
/obj/item/ammo_casing/a223/phasic
|
|
name = ".223 phasic bullet casing"
|
|
desc = "A .223 phasic bullet casing."
|
|
projectile_type = /obj/projectile/bullet/a223/phasic
|
|
|
|
/obj/item/ammo_casing/a223/weak
|
|
projectile_type = /obj/projectile/bullet/a223/weak
|
|
|
|
// 40mm (Grenade Launcher)
|
|
|
|
/obj/item/ammo_casing/a40mm
|
|
name = "40mm HE shell"
|
|
desc = "A cased high explosive grenade that can only be activated once fired out of a ballistic grenade launcher."
|
|
caliber = CALIBER_40MM
|
|
icon_state = "40mmHE"
|
|
projectile_type = /obj/projectile/bullet/a40mm
|
|
newtonian_force = 1.25
|
|
|
|
/obj/item/ammo_casing/a40mm/rubber
|
|
name = "40mm rubber shell"
|
|
desc = "A cased rubber puck. The big brother of the beanbag slug. Made for stopping someone dead in their tracks."
|
|
projectile_type = /obj/projectile/bullet/shotgun_beanbag/a40mm
|
|
|
|
/obj/item/ammo_casing/a40mm/flak
|
|
name = "40mm titanium flak shell"
|
|
desc = "An oversized shotgun case. The big brother of buckshot, this shell launches dense titanium shells for immense damage to armor and flesh alike."
|
|
pellets = 8
|
|
variance = 10
|
|
projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot/milspec/flak
|
|
|
|
/obj/item/ammo_casing/a40mm/incendiary
|
|
name = "40mm incendiary shell"
|
|
desc = "A cased incendiary explosive grenade that can only be activated once fired out of a ballistic grenade launcher. Creates a mighty conflagration. A favourite of inquisitors."
|
|
projectile_type = /obj/projectile/bullet/a40mm/incendiary
|
|
|
|
/obj/item/ammo_casing/a40mm/tear_gas
|
|
name = "40mm tear gas shell"
|
|
desc = "A cased tear gas grenade that can only be activated once fired out of a ballistic grenade launcher. Spreads a large amount of tear gas into the air upon impact. \
|
|
Great for suppressing riots, protests and birthday parties!"
|
|
projectile_type = /obj/projectile/bullet/a40mm/tear_gas
|
|
|
|
/obj/item/disk/design_disk/tear_gas_40mm
|
|
name = "40mm riot suppression grenade shells design disk"
|
|
|
|
/obj/item/disk/design_disk/liberator/Initialize(mapload)
|
|
. = ..()
|
|
blueprints += new /datum/design/tear_gas_40mm
|
|
blueprints += new /datum/design/rubber_40mm
|
|
|
|
// Rebar Bolts
|
|
|
|
/obj/item/ammo_casing/rebar
|
|
name = "Sharpened Iron Rod"
|
|
desc = "A Sharpened Iron rod. It's Pointy!"
|
|
caliber = CALIBER_REBAR
|
|
icon_state = "rod_sharp"
|
|
base_icon_state = "rod_sharp"
|
|
projectile_type = /obj/projectile/bullet/rebar
|
|
newtonian_force = 1.5
|
|
custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT)
|
|
|
|
/obj/item/ammo_casing/rebar/Initialize(mapload)
|
|
. = ..()
|
|
AddElement(/datum/element/caseless, TRUE)
|
|
|
|
/obj/item/ammo_casing/rebar/update_icon_state()
|
|
. = ..()
|
|
icon_state = "[base_icon_state]"
|
|
|
|
/obj/item/ammo_casing/rebar/syndie
|
|
name = "Jagged Iron Rod"
|
|
desc = "An Iron rod, with notches cut into it. You really don't want this stuck in you."
|
|
caliber = CALIBER_REBAR
|
|
icon_state = "rod_jagged"
|
|
base_icon_state = "rod_jagged"
|
|
projectile_type = /obj/projectile/bullet/rebar/syndie
|
|
|
|
/obj/item/ammo_casing/rebar/zaukerite
|
|
name = "zaukerite sliver"
|
|
desc = "A sliver of a zaukerite crystal. Due to its irregular, jagged edges, removal of an embedded zaukerite sliver should only be done by trained surgeons."
|
|
caliber = CALIBER_REBAR
|
|
icon_state = "rod_zaukerite"
|
|
base_icon_state = "rod_zaukerite"
|
|
projectile_type = /obj/projectile/bullet/rebar/zaukerite
|
|
|
|
/obj/item/ammo_casing/rebar/hydrogen
|
|
name = "metallic hydrogen bolt"
|
|
desc = "An ultra-sharp rod made from pure metallic hydrogen. Armor may as well not exist."
|
|
caliber = CALIBER_REBAR
|
|
icon_state = "rod_hydrogen"
|
|
base_icon_state = "rod_hydrogen"
|
|
projectile_type = /obj/projectile/bullet/rebar/hydrogen
|
|
|
|
/obj/item/ammo_casing/rebar/healium
|
|
name = "healium crystal bolt"
|
|
desc = "Who needs a syringe gun, anyway?"
|
|
caliber = CALIBER_REBAR
|
|
icon_state = "rod_healium"
|
|
base_icon_state = "rod_healium"
|
|
projectile_type = /obj/projectile/bullet/rebar/healium
|
|
custom_materials = null
|
|
/// How many seconds of healing/sleeping action we have left, once all are spent the bolt dissolves
|
|
var/heals_left = 6 SECONDS
|
|
|
|
/obj/item/ammo_casing/rebar/healium/ready_proj(atom/target, mob/living/user, quiet, zone_override, atom/fired_from)
|
|
if (loaded_projectile)
|
|
var/obj/projectile/bullet/rebar/healium/bolt = loaded_projectile
|
|
bolt.heals_left = heals_left
|
|
return ..()
|
|
|
|
/datum/embedding/rebar_healium
|
|
embed_chance = 100
|
|
fall_chance = 0
|
|
pain_stam_pct = 0.9
|
|
ignore_throwspeed_threshold = TRUE
|
|
rip_time = 1.5 SECONDS
|
|
/// Amount of each type of damage healed per second
|
|
var/healing_per_second = 5
|
|
/// Amount of drowsiness added per second
|
|
var/drowsy_per_second = 2 SECONDS
|
|
/// At what point of drowsiness do we knock out the owner
|
|
var/drowsy_knockout = 5 SECONDS // Actually more like 8 seconds, because you need 4 ticks to reach this
|
|
/// Can this bolt cause sleeping? Used to prevent sleep stacking by shooting multiple bolts
|
|
var/can_sleep = TRUE
|
|
|
|
/datum/embedding/rebar_healium/on_successful_embed(mob/living/carbon/victim, obj/item/bodypart/target_limb)
|
|
. = ..()
|
|
for(var/obj/item/bodypart/limb as anything in victim.get_bodyparts())
|
|
for(var/obj/item/ammo_casing/rebar/healium/other_rebar in limb.embedded_objects)
|
|
if (other_rebar == parent)
|
|
continue
|
|
var/datum/embedding/rebar_healium/embed_data = other_rebar.get_embed()
|
|
if (istype(embed_data) && embed_data.can_sleep)
|
|
can_sleep = FALSE
|
|
return
|
|
|
|
/datum/embedding/rebar_healium/process(seconds_per_tick)
|
|
. = ..()
|
|
var/obj/item/ammo_casing/rebar/healium/casing = parent
|
|
casing.heals_left -= seconds_per_tick * 1 SECONDS
|
|
var/update_health = FALSE
|
|
var/healing = -healing_per_second * seconds_per_tick
|
|
update_health += owner.adjust_brute_loss(healing, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC)
|
|
update_health += owner.adjust_fire_loss(healing, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC)
|
|
update_health += owner.adjust_tox_loss(healing, updating_health = FALSE, required_biotype = MOB_ORGANIC)
|
|
update_health += owner.adjust_oxy_loss(healing, updating_health = FALSE, required_biotype = MOB_ORGANIC)
|
|
if (update_health)
|
|
owner.updatehealth()
|
|
if (can_sleep && (owner.mob_biotypes & MOB_ORGANIC))
|
|
owner.adjust_drowsiness(drowsy_per_second * seconds_per_tick)
|
|
var/datum/status_effect/drowsiness/drowsiness = owner.has_status_effect(/datum/status_effect/drowsiness)
|
|
if (drowsiness?.duration >= drowsy_knockout)
|
|
owner.Sleeping(3 SECONDS)
|
|
if (casing.heals_left <= 0)
|
|
fall_out()
|
|
|
|
/datum/embedding/rebar_healium/remove_embedding(mob/living/to_hands)
|
|
. = ..()
|
|
var/obj/item/ammo_casing/rebar/healium/casing = parent
|
|
casing.heals_left = initial(casing.heals_left)
|
|
can_sleep = TRUE
|
|
|
|
/obj/item/ammo_casing/rebar/supermatter
|
|
name = "supermatter bolt"
|
|
desc = "Wait, how is the bow capable of firing this without dusting?"
|
|
caliber = CALIBER_REBAR
|
|
icon_state = "rod_supermatter"
|
|
base_icon_state = "rod_supermatter"
|
|
projectile_type = /obj/projectile/bullet/rebar/supermatter
|
|
|
|
/obj/item/ammo_casing/rebar/paperball
|
|
name = "paper ball"
|
|
desc = "Doink!"
|
|
caliber = CALIBER_REBAR
|
|
icon_state = "paperball"
|
|
base_icon_state = "paperball"
|
|
projectile_type = /obj/projectile/bullet/paperball
|
|
newtonian_force = 0.5
|
|
custom_materials = list(/datum/material/paper = HALF_SHEET_MATERIAL_AMOUNT / 2)
|