mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 17:52:36 +00:00
Adds .38 Flare, which is a lethal laser bullet casing available for printing with Advanced Beam Weaponry. Adjust ammo material values. (#91726)
## About The Pull Request  Adds the .38 Flare. It does 20 damage. This round highlights the target for 2 minutes, and projectiles hitting the target always hit the limb that the shooter was aiming at. Your shot has effectively perfect limb accuracy, no matter how far the bullet needs to travel. This also affects other projectiles hitting the target that aren't the .38 Flare. To indicate whether or not a round in a magazine is either lead or laser, I've borrowed the implementation of ammo overlays from the C-20r toy magazines Now each bullet in the speedloaders for .38 can be a distinct type visibly. Might be interesting if anyone wants to add additional unique appearances for some of the other .38 rounds. Reduces the overall cost of a lot of the ammunition in the sec and autolathe, such as loose bullets. Also reduces the material quantity within bullet casings. ## Why It's Good For The Game > .38 Flare By popular demand, I've come up with a new idea. And that idea...is an anti-bullet deviation tool. Most players are probably not conscious of bullet deviation. But if you're familiar with the mechanic, it's why sometimes your shots may hit into an arm or a leg even though you were aiming at the head. The way this works is that over the course of a bullets flight, it increases in inaccuracy and the pobability of drifting into a limb. From my last estimate, shooting somewhere around 5 tiles away will usually result in bullet drift. While affected by the flare shot, that does not happen. You shoot at the head, you hit the head. To put it into perspective; you could consider bullet deviation a form of damage loss (its a bit more complicated than this and there are instances where it is positive), and this projectile eliminates that problem for everyone shooting the target. > Ammo cost Some of these were pretty excessive for the cost, and a notable example of this include the .357 loose casings, .310 Surplus loose casings, and most shotgun shells. These should go down to roughly below 3/5th of a sheet of metal when printed from a fully upgraded lathe. Meanwhile, a single bullet casing was like a sheet of metal each, which didn't seem right to me. So they're now by default one fifth of a sheet of metal on recycle. ## Changelog 🆑 add: .38 Flare, a laser bullet! Available in both .38 speedloader and BR-38 magazine once Advanced Beam Weaponry is researched. add: .38 Flare highlights the target in an outline and makes sure your bullets never accidentally hit any limb except the one you are aiming at. Never accidentally hit someone in the arm when you were going for a headshot. balance: Reduces the printing costs of several ammunition types from the autolathe and security lathe. Reduces the overall material contents of said printed ammo/magazines. If you find a material dupe, let a coder know. /🆑 --------- Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
This commit is contained in:
@@ -453,6 +453,7 @@
|
||||
#define COLOR_AMMO_DUMDUM "#ffe601"
|
||||
#define COLOR_AMMO_HOTSHOT "#ff7b00"
|
||||
#define COLOR_AMMO_ICEBLOX "#0de3ff"
|
||||
#define COLOR_AMMO_HELLFIRE "#f60021"
|
||||
|
||||
// defines for other ammo type colors (should this be merged with above?)
|
||||
#define COLOR_AMMO_INCENDIARY "#f4001f"
|
||||
|
||||
@@ -682,6 +682,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
|
||||
/// Trait that determines whether our mob gains more strength from drinking during a fist fight
|
||||
#define TRAIT_DRUNKEN_BRAWLER "drunken brawler"
|
||||
|
||||
/// Trait that ensures that a shot with a projectile always lands exactly where it was aimed at. Or the head.alist
|
||||
#define TRAIT_DESIGNATED_TARGET "designated_target"
|
||||
|
||||
/// Trait that makes you bite when attacking with an unarmed strike.
|
||||
#define TRAIT_FERAL_BITER "feral biter"
|
||||
|
||||
|
||||
@@ -231,6 +231,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
|
||||
"TRAIT_DEAF" = TRAIT_DEAF,
|
||||
"TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA,
|
||||
"TRAIT_DEFIB_BLACKLISTED" = TRAIT_DEFIB_BLACKLISTED,
|
||||
"TRAIT_DESIGNATED_TARGET" = TRAIT_DESIGNATED_TARGET,
|
||||
"TRAIT_DETECTIVES_TASTE" = TRAIT_DETECTIVES_TASTE,
|
||||
"TRAIT_DETECT_STORM" = TRAIT_DETECT_STORM,
|
||||
"TRAIT_DIAGNOSTIC_HUD" = TRAIT_DIAGNOSTIC_HUD,
|
||||
|
||||
@@ -1093,6 +1093,38 @@
|
||||
UnregisterSignal(owner, COMSIG_ATOM_UPDATE_OVERLAYS)
|
||||
owner.update_icon()
|
||||
|
||||
// Desginated Target - Applied typically by Flare lasers
|
||||
|
||||
/atom/movable/screen/alert/status_effect/designated_target
|
||||
name = "Designated Target"
|
||||
desc = "You've been lit up by some kind of bright energy! Wash it off to get rid of it, or you'll be a lot easier to hit!"
|
||||
icon_state = "designated_target"
|
||||
|
||||
/datum/status_effect/designated_target
|
||||
id = "designated_target"
|
||||
duration = 2 MINUTES
|
||||
alert_type = /atom/movable/screen/alert/status_effect/designated_target
|
||||
status_type = STATUS_EFFECT_REFRESH
|
||||
/// Dummy lighting object for our flare attached to our mob
|
||||
var/obj/effect/dummy/lighting_obj/moblight/mob_flare
|
||||
|
||||
/datum/status_effect/designated_target/on_apply()
|
||||
mob_flare = owner.mob_light(3, 15, LIGHT_COLOR_FLARE)
|
||||
ADD_TRAIT(owner, TRAIT_DESIGNATED_TARGET, id)
|
||||
owner.add_filter("designated_target", 3, list("type" = "outline", "color" = COLOR_RED, "size" = 1))
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/designated_target/tick(seconds_between_ticks)
|
||||
// If we are ever wet, remove our flare status effect
|
||||
var/datum/status_effect/fire_handler/wet_stacks/splashed_with_water = locate() in owner.status_effects
|
||||
if(istype(splashed_with_water))
|
||||
qdel(src)
|
||||
|
||||
/datum/status_effect/designated_target/on_remove()
|
||||
QDEL_NULL(mob_flare)
|
||||
owner.remove_filter("designated_target")
|
||||
REMOVE_TRAIT(owner, TRAIT_DESIGNATED_TARGET, id)
|
||||
|
||||
#undef HEALING_SLEEP_DEFAULT
|
||||
#undef HEALING_SLEEP_ORGAN_MULTIPLIER
|
||||
#undef SLEEP_QUALITY_WORKOUT_MULTIPLER
|
||||
|
||||
@@ -465,7 +465,7 @@
|
||||
boxtag = "9mm Pepperoni"
|
||||
foodtypes = MEAT|GRAIN|DAIRY|VEGETABLES
|
||||
crafting_complexity = FOOD_COMPLEXITY_4
|
||||
custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 4, /datum/material/meat = MEATSLAB_MATERIAL_AMOUNT)
|
||||
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 8, /datum/material/meat = MEATSLAB_MATERIAL_AMOUNT)
|
||||
|
||||
/obj/item/food/pizza/arnold/raw
|
||||
name = "raw Arnold pizza"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
throwforce = 0
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*5)
|
||||
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT)
|
||||
override_notes = TRUE
|
||||
///What sound should play when this ammo is fired
|
||||
var/fire_sound = null
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
desc = "A .38 bullet casing."
|
||||
caliber = CALIBER_38
|
||||
projectile_type = /obj/projectile/bullet/c38
|
||||
/// Used for icon building for things like speedloaders and the like to determine what kind of sprite this casing uses. Actually accepts any string, just make sure there is a matching positional sprite in _/icons/obj/weapons/guns/ammo.dmi.
|
||||
var/lead_or_laser = "lead"
|
||||
|
||||
/obj/item/ammo_casing/c38/trac
|
||||
name = ".38 TRAC bullet casing"
|
||||
@@ -78,6 +80,13 @@
|
||||
desc = "A .38 Iceblox bullet casing."
|
||||
projectile_type = /obj/projectile/bullet/c38/iceblox
|
||||
|
||||
/obj/item/ammo_casing/c38/flare
|
||||
name = ".38 flare casing"
|
||||
desc = "A .38 flare casing."
|
||||
icon_state = "sL-casing"
|
||||
projectile_type = /obj/projectile/beam/laser/flare
|
||||
lead_or_laser = "laser"
|
||||
|
||||
//gatfruit
|
||||
/obj/item/ammo_casing/pea
|
||||
name = "pea bullet casing"
|
||||
|
||||
@@ -34,14 +34,27 @@
|
||||
name = "speed loader (.38)"
|
||||
desc = "Designed to quickly reload revolvers."
|
||||
icon_state = "38"
|
||||
base_icon_state = "38"
|
||||
ammo_type = /obj/item/ammo_casing/c38
|
||||
max_ammo = 6
|
||||
caliber = CALIBER_38
|
||||
multiple_sprites = AMMO_BOX_PER_BULLET
|
||||
custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*10)
|
||||
custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT)
|
||||
ammo_band_icon = "+38_ammo_band"
|
||||
ammo_band_color = null
|
||||
|
||||
/obj/item/ammo_box/c38/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]-base"
|
||||
|
||||
/obj/item/ammo_box/c38/update_overlays()
|
||||
. = ..()
|
||||
if(!LAZYLEN(stored_ammo))
|
||||
return
|
||||
for(var/inserted_ammo in 1 to stored_ammo.len)
|
||||
var/obj/item/ammo_casing/c38/boolet = stored_ammo[inserted_ammo]
|
||||
. += "38-[boolet::lead_or_laser]-[inserted_ammo]"
|
||||
|
||||
/obj/item/ammo_box/c38/trac
|
||||
name = "speed loader (.38 TRAC)"
|
||||
desc = "Designed to quickly reload revolvers. TRAC bullets embed a tracking implant within the target's body."
|
||||
@@ -84,6 +97,12 @@
|
||||
ammo_type = /obj/item/ammo_casing/c38/iceblox
|
||||
ammo_band_color = COLOR_AMMO_ICEBLOX
|
||||
|
||||
/obj/item/ammo_box/c38/flare
|
||||
name = "speed loader (.38 Flare)"
|
||||
desc = "Designed to quickly reload revolvers. Flare casings launch a concentrated particle beam towards a target, lighting them up for everyone to see."
|
||||
ammo_type = /obj/item/ammo_casing/c38/flare
|
||||
ammo_band_color = COLOR_AMMO_HELLFIRE
|
||||
|
||||
/obj/item/ammo_box/c9mm
|
||||
name = "ammo box (9mm)"
|
||||
icon_state = "9mmbox"
|
||||
|
||||
@@ -23,6 +23,10 @@
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
ammo_type = /obj/item/ammo_casing/c38
|
||||
caliber = CALIBER_38
|
||||
custom_materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 1,
|
||||
)
|
||||
max_ammo = 15
|
||||
ammo_band_icon = "+38mag_ammo_band"
|
||||
ammo_band_color = null
|
||||
@@ -75,3 +79,9 @@
|
||||
desc = parent_type::desc + " Iceblox bullets contain a cryogenic payload."
|
||||
ammo_type = /obj/item/ammo_casing/c38/iceblox
|
||||
ammo_band_color = COLOR_AMMO_ICEBLOX
|
||||
|
||||
/obj/item/ammo_box/magazine/m38/flare
|
||||
name = "battle rifle magazine (.38 Flare)"
|
||||
desc = parent_type::desc + " Flare casings launch a concentrated particle beam towards a target, lighting them up for everyone to see."
|
||||
ammo_type = /obj/item/ammo_casing/c38/flare
|
||||
ammo_band_color = COLOR_AMMO_HELLFIRE
|
||||
|
||||
@@ -496,8 +496,12 @@
|
||||
return
|
||||
|
||||
last_impact_turf = get_turf(target)
|
||||
|
||||
// If our target has TRAIT_DESIGNATED_TARGET, treat accuracy_falloff as 0
|
||||
var/effective_accuracy = HAS_TRAIT(target, TRAIT_DESIGNATED_TARGET) ? 0 : accuracy_falloff
|
||||
|
||||
// Lower accurancy/longer range tradeoff. 7 is a balanced number to use.
|
||||
def_zone = ran_zone(def_zone, clamp(accurate_range - (accuracy_falloff * get_dist(last_impact_turf, starting)), 5, 100))
|
||||
def_zone = ran_zone(def_zone, clamp(accurate_range - (effective_accuracy * get_dist(last_impact_turf, starting)), 5, 100))
|
||||
var/impact_result = process_hit_loop(select_target(last_impact_turf, target))
|
||||
if (impact_result == PROJECTILE_IMPACT_PASSED)
|
||||
return
|
||||
|
||||
@@ -56,6 +56,22 @@
|
||||
speed = 1.6
|
||||
light_color = "#FF969D"
|
||||
|
||||
/obj/projectile/beam/laser/flare
|
||||
name = "flare particle"
|
||||
icon_state = "flare"
|
||||
light_range = 2
|
||||
light_power = 3
|
||||
damage = 20
|
||||
wound_bonus = -15
|
||||
exposed_wound_bonus = 15
|
||||
|
||||
/obj/projectile/beam/laser/flare/on_hit(atom/target, blocked, pierce_hit)
|
||||
. = ..()
|
||||
if(!isliving(target))
|
||||
return
|
||||
var/mob/living/designated_target = target
|
||||
designated_target.apply_status_effect(/datum/status_effect/designated_target)
|
||||
|
||||
/obj/projectile/beam/laser/heavylaser
|
||||
name = "heavy laser"
|
||||
icon_state = "heavylaser"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "Beanbag Slug (Less Lethal)"
|
||||
id = "beanbag_slug"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3)
|
||||
build_path = /obj/item/ammo_casing/shotgun/beanbag
|
||||
category = list(
|
||||
RND_CATEGORY_INITIAL,
|
||||
@@ -14,7 +14,7 @@
|
||||
name = "Rubber Shot (Less Lethal)"
|
||||
id = "rubber_shot"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3)
|
||||
build_path = /obj/item/ammo_casing/shotgun/rubbershot
|
||||
category = list(
|
||||
RND_CATEGORY_INITIAL,
|
||||
@@ -26,7 +26,7 @@
|
||||
name = "Speed Loader (.38) (Lethal)"
|
||||
id = "c38"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*10)
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*3)
|
||||
build_path = /obj/item/ammo_box/c38
|
||||
category = list(
|
||||
RND_CATEGORY_INITIAL,
|
||||
@@ -130,7 +130,7 @@
|
||||
name = "Shotgun Dart (Lethal)"
|
||||
id = "shotgun_dart"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3)
|
||||
build_path = /obj/item/ammo_casing/shotgun/dart
|
||||
category = list(
|
||||
RND_CATEGORY_HACKED,
|
||||
@@ -142,7 +142,7 @@
|
||||
name = "Incendiary Slug (Lethal)"
|
||||
id = "incendiary_slug"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3)
|
||||
build_path = /obj/item/ammo_casing/shotgun/incendiary
|
||||
category = list(
|
||||
RND_CATEGORY_HACKED,
|
||||
@@ -178,7 +178,7 @@
|
||||
name = ".357 Casing (VERY Lethal)"
|
||||
id = "a357"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3)
|
||||
build_path = /obj/item/ammo_casing/c357
|
||||
category = list(
|
||||
RND_CATEGORY_HACKED,
|
||||
@@ -190,7 +190,7 @@
|
||||
name = ".310 Surplus Bullet Casing (VERY Lethal)"
|
||||
id = "strilka310_surplus"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3)
|
||||
build_path = /obj/item/ammo_casing/strilka310/surplus
|
||||
category = list(
|
||||
RND_CATEGORY_HACKED,
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
id = "c38_trac"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 10,
|
||||
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 2.5,
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/trac
|
||||
@@ -33,8 +33,8 @@
|
||||
id = "c38_hotshot"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 10,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 2.5,
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/hotshot
|
||||
category = list(
|
||||
@@ -48,8 +48,8 @@
|
||||
id = "c38_iceblox"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 10,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 2.5,
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/iceblox
|
||||
category = list(
|
||||
@@ -62,7 +62,7 @@
|
||||
desc = "Designed to quickly reload revolvers. Rubber bullets are bouncy and less-than-lethal."
|
||||
id = "c38_rubber"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 10)
|
||||
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3)
|
||||
build_path = /obj/item/ammo_box/c38/match/bouncy
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
@@ -75,8 +75,8 @@
|
||||
id = "c38_true_strike"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 10,
|
||||
/datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/magazine/m38/true
|
||||
category = list(
|
||||
@@ -84,6 +84,22 @@
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/c38_flare
|
||||
name = "Speedloader (.38 Flare) (VERY Lethal)"
|
||||
desc = "Designed to quickly reload revolvers. Flare casings launch a concentrated particle beam towards a target, lighting them up for everyone to see."
|
||||
id = "c38_flare"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/uranium = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/c38/flare
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/c38_mag
|
||||
name = "Magazine (.38) (Lethal)"
|
||||
desc = "Designed to tactically reload a NT BR-38 Battle Rifle. Less powerful by design, guns chambered in .38 caliber rounds are still quite popular for use by police forces, \
|
||||
@@ -92,8 +108,8 @@
|
||||
id = "c38_mag"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 30,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 4,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/magazine/m38
|
||||
category = list(
|
||||
@@ -107,10 +123,10 @@
|
||||
id = "c38_trac_mag"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 30,
|
||||
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 2.5,
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 4,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/magazine/m38/trac
|
||||
category = list(
|
||||
@@ -124,9 +140,9 @@
|
||||
id = "c38_hotshot_mag"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 30,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 2.5,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 4,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/magazine/m38/hotshot
|
||||
category = list(
|
||||
@@ -140,9 +156,9 @@
|
||||
id = "c38_iceblox_mag"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 30,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 2.5,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 4,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/magazine/m38/iceblox
|
||||
category = list(
|
||||
@@ -156,8 +172,8 @@
|
||||
id = "c38_rubber_mag"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 30,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 4,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/magazine/m38/match/bouncy
|
||||
category = list(
|
||||
@@ -171,9 +187,9 @@
|
||||
id = "c38_true_strike_mag"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 30,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 4,
|
||||
/datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
)
|
||||
build_path = /obj/item/ammo_box/magazine/m38/true
|
||||
category = list(
|
||||
@@ -181,6 +197,24 @@
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/c38_flare_mag
|
||||
name = "Magazine (.38 Flae) (VERY Lethal)"
|
||||
desc = "Designed to tactically reload a NT BR-38 Battle Rifle. Flare casings launch a concentrated particle beam towards a target, lighting them up for everyone to see."
|
||||
id = "c38_flare_mag"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 4,
|
||||
/datum/material/uranium = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
|
||||
)
|
||||
build_path = /obj/item/ammo_box/magazine/m38/flare
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/rubbershot/sec
|
||||
id = "sec_rshot"
|
||||
desc = "Rubbershot shotgun shells. Fires a cloud of pellets. Rubber bullets are bouncy and less-than-lethal."
|
||||
@@ -482,7 +516,7 @@
|
||||
in grotesque burns."
|
||||
id = "lasershell"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2, /datum/material/gold = SMALL_MATERIAL_AMOUNT * 2)
|
||||
build_path = /obj/item/ammo_casing/shotgun/scatterlaser
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
@@ -495,7 +529,7 @@
|
||||
Does nothing on its own."
|
||||
id = "techshotshell"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron =HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass =SMALL_MATERIAL_AMOUNT * 2)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2)
|
||||
build_path = /obj/item/ammo_casing/shotgun/techshell
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
@@ -508,7 +542,7 @@
|
||||
into outsides."
|
||||
id = "flechetteshell"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2)
|
||||
build_path = /obj/item/ammo_casing/shotgun/flechette
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
@@ -521,7 +555,7 @@
|
||||
shot by this, but is it really going to do that much damage? You decide, pal, I'm not your mother. I'm just a computer."
|
||||
id = "donkshell"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = SMALL_MATERIAL_AMOUNT * 2)
|
||||
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3, /datum/material/plastic = SMALL_MATERIAL_AMOUNT * 2)
|
||||
build_path = /obj/item/ammo_casing/shotgun/flechette/donk
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
|
||||
@@ -118,6 +118,8 @@
|
||||
design_ids = list(
|
||||
"xray_laser",
|
||||
"nuclear_gun",
|
||||
"c38_flare",
|
||||
"c38_flare_mag",
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
|
||||
announce_channels = list(RADIO_CHANNEL_SECURITY)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 175 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 30 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 137 KiB |
Reference in New Issue
Block a user