Cabbage's Armory (#5757)
## Main Additions and Modifications This PR adds in a quite a few new things. ### Overview **WT-550 "Enhancements"** - made available via research. These modifications retain the full-auto capability of the WT-550 to varying degrees. Additionally a compressed WT550 magazine is available via research. It contains 40 weaker bullets compared to the normal magazine's 20. It is only allowed to contain compressed bullets to avoid cheesing, and requires bluespace to fabricate. It is designed as a sustained dps ammunition as opposed to a high dps ammunition **WT-550-B** - Shoots in bursts with decent recoil and slightly higher dps. **WT-550-C** - Shoots slower but has a higher damage and projectile velocity along with a scope. **Sawn-off WT-550** - Is smaller but has egregious recoil and spread. **.38 BR** - A simple but slightly less powerful alternative to the NT-38 battle rifle. Craftable via a kit obtained from research. **Stunstaff** - A weapon that is available via crafting and functions as an alternative to a baton and riot shield. A heroic variant exists within the code but the recipe can only be learned from a book that sometimes spawns in the armory contraband closet. **Advanced Energy SMG** - A hybrid of a disabler SMG, laser carbine, and advanced energy gun. Does exactly what you think it does. Obtainable via crafting. **Stingballer** - A rifle that rapidly shoots stingballs. Direct damage is lesser than a stingbang. Purchasable from cargo. **Security Juggernaut Suit** - A heavily armoured suit that severely cripples your mobility in exchange for very high protection. Crafting kit is printable from a technode. **Horizon Beam Rifle** - Damage is now 110 with 35 armor piercing, and a demo mod of 2. Upon contact with walls, it destroys them like how a pulse laser does. ### Crafting WT-550 weapons can all be made with just the gun and the kit. The sawn-off WT550 can be made by taking a saw to the WT550. The .38 BR requires an NT-38 battle rifle along with a multitool and a screwdriver. The Advanced Energy SMG requires a disabler smg, laser carbine, and an advanced energy gun. The Stunstaff requires two security batons, some plasteel and some cable, along with a welder and wrench. The Heroic Stunstaff requires some other ingredients. The Security Juggernaut suit requires a full toolbox of tools as well as the armor plates, a full coil of cable, a pair of magboots, a swat helmet, a swat suit, and two seclites. Stingbangs can be prepared into stingball canisters with a screwdriver and some wirecutters. Each contains 25 rounds are are used to fill the stingballer. ### Cargo **Stingballer** - Armory crate - Contains one stingballer. - 4500 credits. **Grenade Launcher** - Armory crate - Contains one grenade launcher and a box of flashbangs. - 15000 credits. **Kiboko Grenade Launcher** - Armory crate - Contains one Kiboko grenade launcher. - 7500 credits. ### R&D The **"Ballisitic Research"** technode has been removed and dragon's breath shells have been moved to the illegal technology node. The node remains within the code though if more exotic ammunition is developed and requires an additional research node for it. New **"Advanced Ballistics"** technode contains the part kits for the WT-550 modifications and NT-BR simplification kit and requires Exotic Ammunition to research. New **"Advanced Armor"** technode contains the Security Juggernaut Plates and requires Riot Suppression and Gas Compression to research. ### Code Adds to the buckling system where if something has TRAIT_NO_BUCKLE, it cannot be buckled at all. Adds to the vehicle system where if something has TRAIT_NO_VEHICLE, it will be flung off the vehicle it attempts to move the vehicle themselves. Adds to the chair system where if something has TRAIT_NO_VEHICLE, it will destroy the chair. Adds to the movement system where if something has TRAIT_LARGE_CLOTHES, TRAIT_BULKY_CLOTHES, or TRAIT_HUGE_CLOTHES, it will incur a 3, 4, and 5 move speed multiplier when pulling that thing. If anyone can help me do this more modular, please reach out, I have no clue how. Edits the equipment slowdown system to properly apply a special slowdown that cannot be negated by anything. Requires the TRUE_IMMUTABLE_SLOW bubber_obj_flag to be present. IMMUTABLE_SLOW is still required for red potion immunity. ### Other Misc. Changes The WT-551 has been effectively rendered impossible to get. This decision stems from the fact that the WT-550 and the WT-551 were functionally identical when used in-game. Instances of the 551 have been replaced with the 550. Skyrat's renaming of /tg/ bullets has been completely removed. Some descriptions have been kept and altered because they were kinda neat. .460 Ceres -> .45 .416 Stabilis -> .50 BMG 8mm Usurpator -> 4.6x30mm .454 Trucidator -> .50 Action Express .277 Aestus -> .223 ## Statistics For New Additions **Stunstaff** <img width="32" height="32" alt="image" src="https://github.com/user-attachments/assets/0e1c2a1a-20ba-47a9-91f1-e63ca11b5e43" /> - Two-handed, bulky. Fits on the back and an armor vest. - 65 stamina damage - 20 stun armour penetration - 14 force - 8 throw force - 50 block chance - 20 effective block vs tackles - 10 effective block vs projectiles **Heroic Stunstaff** - 24 stamina damage - 0.5 second stun - 4 times the cell charge consumption - No cooldown between stuns - 35 stun armor penetration - 15 force - 10 throw force - 75% throw stun chance - Can be thrown like a boomerang - 75 block chance - 30 effective block vs tackles - 50 effective block vs projectiles **WT-550-B** <img width="32" height="32" alt="image" src="https://github.com/user-attachments/assets/56fea4dd-9b0c-4e06-93a7-b0389f3d32c9" /> - Bulky sized, small weapon weight, dual wielding. - 2 round burst every 0.5 seconds - 0.25 recoil - 3 spread - Can be suppressed **WT-550-C** <img width="48" height="32" alt="image" src="https://github.com/user-attachments/assets/bd80570d-3e70-463d-8b6b-7cefcb1d54e6" /> - Bulky sized, heavy weapon weight, no dual wielding. - Half fire rate of normal WT (0.6 compared to 0.3) - 1.5x damage multiplier - 1.5x projectile speed multiplier - +5 projectile wound bonus - Can be Suppressed - Mediocre Scope **Sawn-off WT-550** <img width="32" height="32" alt="image" src="https://github.com/user-attachments/assets/6d786022-2d93-42da-9dcc-fe6dfadbbce1" /> - Normal sized, light weapon weight, dual wielding - 10 spread - 20 dual wielded spread - Sawn-off recoil (high) **Compressed WT-550 magazine** - 40 capacity - 12 damage (20 for normal rounds) **Stingballer** <img width="32" height="32" alt="image" src="https://github.com/user-attachments/assets/de30bda5-9e0b-44da-8097-ca9827d3d8c8" /> - Bulky sized, normal weapon weight, no dual wielding. - 8 rounds per second - 7.5 spread - 50 round capacity - 1.5 damage - 4 stamina damage - Embed chance at close range - Bouncy projectile - Low effective range **.38 Battle Rifle** <img width="48" height="32" alt="image" src="https://github.com/user-attachments/assets/24a9a257-97fe-4313-ba39-93d17230f1b4" /> - Overall same statistics as the NT-38 Battle Rifle except for - 1.0x damage multiplier (compared to 1.2x) - 1.0x projectile speed multiplier (compared to 1.2x) - 25.0% faster rate of fire (1.5 compared to 2) - No degradation mechanics - No scope **Advanced Energy SMG** <img width="32" height="32" alt="image" src="https://github.com/user-attachments/assets/2671009a-a994-4054-92ff-4db2959501e8" /> - Bulky Size, no dual wielding. - 0.8x damage multiplier (12 on kill, 12 on disable) - 1.2x projectile speed multiplier - 40 shots on kill, 40 shots on disable - Charges about half as fast as the regular advanced energy gun. - Same fire rate as the disabler SMG - 2 spread **Security Juggernaut Suit** <img width="32" height="32" alt="image" src="https://github.com/user-attachments/assets/5de0a084-4a07-4d8f-88a3-d9996de41010" /> - Built in helmet - Helmet protects head from flashes, loud noises, impacts and pepperspray - Full temperature and pressure protection - Helmet has powerful flashlight mounted - Takes 12 seconds to put on, 15 to put on someone else - Slows you down everywhere - Slows you down when in-hand - Slows down someone who's dragging you - Prevents aggressive grabs against you when worn - Prevents combat-mode pushing against you when worn - Prevents shove knockdowns when worn - Prevents gravity effects when worn - Prevents buckling when worn - Cannot be red potion'd. - Does NOT protect against batons or knockdown. Current Armor values: - melee = 80 - bullet = 80 - laser = 70 - energy = 60 - bomb = 100 - bio = 100 - fire = 100 - acid = 100 - wound = 30 ## Why It's Good For The Game This PR adds in quite a few items that fill certain role archetypes within security while allowing them to still use equipment that security would already have. ## Proof Of Testing Testing overall has been completed. Testing left to do: - [x] Cargo Orders ## Changelog 🆑 add: Added a bunch of alternative additional weapon and equipment upgrade options to security, allowing a little bit of difference in the late-game arsenal or general armament. add: Adds the WT-550-B and WT-550-C, upgrades to the classic autorifle. add: The WT550 can now also be sawn-off. add: Adds the Stingballer, a close range weapon that rapidly shoots stingballs. add: Adds the Stunstaff, an aura-farming alternative to the classic baton and shield. add: Adds the Advanced Energy SMG, an a modified AEG that gains rapid-fire capabilites. add: Adds the Security Juggernaut suit, an impossibly slow suit that hinders your movement but has some of the best armour you'll ever see. add: Adds the .38 battle rifle, a simplified NT-38 Battle Rifle. Lacks the combat improvements, but does not degrade. balance: The Horizon Beam Rifle's performance has been tweaked. Damage is now 110, with 35 armor penetration and a demolition mod of 2, as well as the ability to destroy walls like pulse rifles. add: The Kiboko and pneumatic grenade launcher can be bought from cargo now. del: The WT-551 has be completely removed and replaced with the WT-550 del: Any instances of Skyrat's ammunition naming system have been wiped. Please report any inconsistencies you may find. /🆑 --------- Co-authored-by: Cabbage <supredoode@gmail.com> Co-authored-by: Mathilde <146444134+ibexgoetia@users.noreply.github.com> Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
@@ -0,0 +1,3 @@
|
||||
DEFINE_BITFIELD(bubber_obj_flags, list(
|
||||
"TRUE_IMMUTABLE_SLOW" = TRUE_IMMUTABLE_SLOW,
|
||||
))
|
||||
@@ -1,6 +1,9 @@
|
||||
#define BLOOD_VOLUME_OVERSIZED 1120
|
||||
|
||||
#define PULL_OVERSIZED_SLOWDOWN 2
|
||||
#define PULL_BIG_CLOTHES_SLOWDOWN 3
|
||||
#define PULL_BULKY_CLOTHES_SLOWDOWN 4
|
||||
#define PULL_HUGE_CLOTHES_SLOWDOWN 5
|
||||
|
||||
#define HUMAN_MAXHEALTH MAX_LIVING_HEALTH
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
#define TRUE_IMMUTABLE_SLOW (1<<22)
|
||||
@@ -6,3 +6,6 @@
|
||||
#define TECHWEB_NODE_MECHLAUNCHPAD "mechpad"
|
||||
|
||||
#define TECHWEB_NODE_BORG_RESEARCH "borg_research"
|
||||
|
||||
#define TECHWEB_NODE_BULLET_WEAPONS "bullet_weapons"
|
||||
#define TECHWEB_NODE_ADVANCED_ARMOR "advanced_armor"
|
||||
|
||||
@@ -85,3 +85,14 @@
|
||||
|
||||
/// Trait used to block telepathy types (Genetics, Xenomorph, Revenant, Slime. Ideally should be all.)
|
||||
#define TRAIT_PSIONIC_DAMPENER "psionic_dampener"
|
||||
|
||||
/// Induces a dragging slowdown to the person when applied.
|
||||
#define TRAIT_BIG_CLOTHES "trait_big_clothes" // 3 slowdown
|
||||
#define TRAIT_BULKY_CLOTHES "trait_bulky_clothes" // 4 slowdown
|
||||
#define TRAIT_HUGE_CLOTHES "trait_huge_clothes" // 5 slowdown
|
||||
|
||||
/// Prevents a person from using vehicles.
|
||||
#define TRAIT_NO_VEHICLE "trait_no_vehicle"
|
||||
|
||||
/// Prevents from being buckled to anything
|
||||
#define TRAIT_NO_BUCKLE "trait_no_buckle"
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
if(z_move_flags & ZMOVE_FEEDBACK)
|
||||
to_chat(rider, span_warning("You can't seem to hold onto [movable_parent] to move it..."))
|
||||
return COMPONENT_RIDDEN_STOP_Z_MOVE
|
||||
|
||||
return COMPONENT_RIDDEN_ALLOW_Z_MOVE
|
||||
|
||||
/datum/component/riding/vehicle/driver_move(atom/movable/movable_parent, mob/living/user, direction)
|
||||
@@ -79,8 +78,27 @@
|
||||
COOLDOWN_START(src, message_cooldown, 5 SECONDS)
|
||||
return COMPONENT_DRIVER_BLOCK_MOVE
|
||||
|
||||
//BUBBER EDIT
|
||||
if(HAS_TRAIT(user, TRAIT_NO_VEHICLE))
|
||||
if(ride_check_flags & UNBUCKLE_DISABLED_RIDER)
|
||||
vehicle_parent.unbuckle_mob(user, TRUE)
|
||||
user.visible_message(span_danger("[user] falls off \the [vehicle_parent]."),\
|
||||
span_danger("You get thrown off \the [vehicle_parent] as you are incapable of operating it!"))
|
||||
|
||||
user.adjust_stamina_loss(35)
|
||||
playsound(src, 'sound/effects/bang.ogg', 40, TRUE)
|
||||
var/atom/throw_target = get_edge_target_turf(user, pick(GLOB.cardinals))
|
||||
user.throw_at(throw_target, 1, 1)
|
||||
user.Stun(2 SECONDS)
|
||||
|
||||
if(COOLDOWN_FINISHED(src, message_cooldown))
|
||||
to_chat(user, span_warning("You cannot operate \the [vehicle_parent] right now!"))
|
||||
COOLDOWN_START(src, message_cooldown, 5 SECONDS)
|
||||
return COMPONENT_DRIVER_BLOCK_MOVE
|
||||
|
||||
handle_ride(user, direction)
|
||||
return ..()
|
||||
//BUBBER EDIT END
|
||||
|
||||
/// This handles the actual movement for vehicles once [/datum/component/riding/vehicle/proc/driver_move] has given us the green light
|
||||
/datum/component/riding/vehicle/proc/handle_ride(mob/user, direction)
|
||||
|
||||
@@ -269,7 +269,12 @@
|
||||
//If buckling is forbidden for the target, cancel
|
||||
if(!target.can_buckle_to && !force)
|
||||
return FALSE
|
||||
|
||||
//Bubber Addition
|
||||
//If the target has the TRAIT_NO_BUCKLE, preventing buckling
|
||||
if(HAS_TRAIT(target, TRAIT_NO_BUCKLE))
|
||||
to_chat(target, span_danger("You are unable to do that."))
|
||||
return FALSE
|
||||
//Bubber Addition End
|
||||
return TRUE
|
||||
|
||||
/**
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
. = ..()
|
||||
handle_layer()
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(HAS_TRAIT(M, TRAIT_OVERSIZED))
|
||||
if(HAS_TRAIT(M, TRAIT_OVERSIZED) || HAS_TRAIT(M, TRAIT_NO_VEHICLE))
|
||||
visible_message(span_warning("[src] buckles under the weight of [M] causing it to break!"))
|
||||
playsound(src, 'modular_skyrat/modules/oversized/sound/chair_break.ogg', 70, TRUE)
|
||||
deconstruct()
|
||||
|
||||
@@ -100,6 +100,19 @@
|
||||
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = PULL_OVERSIZED_SLOWDOWN)
|
||||
return
|
||||
//SKYRAT EDIT END
|
||||
|
||||
//BUBBER EDIT
|
||||
//Handles extra slowdown if the person has certain clothing traits. If someone can do this more modularily, be my guest.
|
||||
if(HAS_TRAIT(L, TRAIT_BIG_CLOTHES))
|
||||
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = PULL_BIG_CLOTHES_SLOWDOWN)
|
||||
return
|
||||
if(HAS_TRAIT(L, TRAIT_BULKY_CLOTHES))
|
||||
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = PULL_BULKY_CLOTHES_SLOWDOWN)
|
||||
return
|
||||
if(HAS_TRAIT(L, TRAIT_HUGE_CLOTHES))
|
||||
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/bulky_drag, multiplicative_slowdown = PULL_HUGE_CLOTHES_SLOWDOWN)
|
||||
return
|
||||
//BUBBER EDIT END
|
||||
if(!slowed_by_drag || L.body_position == STANDING_UP || L.buckled || grab_state >= GRAB_AGGRESSIVE)
|
||||
remove_movespeed_modifier(/datum/movespeed_modifier/bulky_drag)
|
||||
return
|
||||
|
||||
@@ -1556,8 +1556,15 @@
|
||||
/mob/proc/update_equipment_speed_mods()
|
||||
var/speedies = 0
|
||||
var/immutable_speedies = 0
|
||||
//Bubber Addition
|
||||
var/true_immute_speedies = 0
|
||||
//Bubber Addition End
|
||||
for(var/obj/item/thing in get_equipped_speed_mod_items())
|
||||
if(thing.item_flags & IMMUTABLE_SLOW)
|
||||
//Bubber Addition
|
||||
if(thing.bubber_obj_flags & TRUE_IMMUTABLE_SLOW)
|
||||
true_immute_speedies += thing.slowdown
|
||||
//Bubber Addition End
|
||||
else if(thing.item_flags & IMMUTABLE_SLOW)
|
||||
immutable_speedies += thing.slowdown
|
||||
else
|
||||
speedies += thing.slowdown
|
||||
@@ -1565,6 +1572,15 @@
|
||||
//if we have TRAIT_STURDY_FRAME, we reduce our overall speed penalty UNLESS that penalty would be a negative value, and therefore a speed boost.
|
||||
if(speedies > 0 && HAS_TRAIT(src, TRAIT_STURDY_FRAME))
|
||||
speedies *= 0.2
|
||||
//Bubber Addition
|
||||
if(true_immute_speedies)
|
||||
add_or_update_variable_movespeed_modifier(
|
||||
/datum/movespeed_modifier/equipment_speedmod/true_immutable,
|
||||
multiplicative_slowdown = true_immute_speedies,
|
||||
)
|
||||
else
|
||||
remove_movespeed_modifier(/datum/movespeed_modifier/equipment_speedmod/true_immutable)
|
||||
//Bubber Addition End
|
||||
|
||||
if(immutable_speedies)
|
||||
add_or_update_variable_movespeed_modifier(
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
|
||||
/obj/item/gun/ballistic/automatic/sniper_rifle/modular/syndicate
|
||||
name = "'Caracal' anti-materiel rifle" //we flop out
|
||||
desc = "A sleek, light bullpup .416 Stabilis sniper rifle with a reciprocating barrel, nicknamed 'Caracal' by Scarborough Arms. Its compact folding parts make it able to fit into a backpack, and its modular barrel can have a suppressor installed within it rather than as a muzzle extension. Its advanced scope accounts for all ballistic inaccuracies of a reciprocating barrel."
|
||||
desc = "A sleek, light bullpup .50 BMG sniper rifle with a reciprocating barrel, nicknamed 'Caracal' by Scarborough Arms. Its compact folding parts make it able to fit into a backpack, and its modular barrel can have a suppressor installed within it rather than as a muzzle extension. Its advanced scope accounts for all ballistic inaccuracies of a reciprocating barrel."
|
||||
icon_state = "sysniper"
|
||||
fire_sound = 'modular_skyrat/modules/aesthetics/guns/sound/sniperrifle.ogg'
|
||||
suppressed_sound = 'modular_skyrat/modules/aesthetics/guns/sound/sniperrifle_s.ogg'
|
||||
@@ -238,7 +238,7 @@
|
||||
|
||||
/obj/item/gun/ballistic/automatic/ar/modular
|
||||
name = "\improper NT ARG-63"
|
||||
desc = "Nanotrasen's prime ballistic option based on the Stoner design, fitted with a light polymer frame and other tactical furniture, and chambered in .277 Aestus - nicknamed 'Boarder' by Special Operations teams."
|
||||
desc = "Nanotrasen's prime ballistic option based on the Stoner design, fitted with a light polymer frame and other tactical furniture, and chambered in .223 - nicknamed 'Boarder' by Special Operations teams."
|
||||
icon = 'modular_skyrat/modules/aesthetics/guns/icons/guns_gubman2.dmi'
|
||||
icon_state = "arg"
|
||||
inhand_icon_state = "arg"
|
||||
@@ -258,102 +258,56 @@
|
||||
name = "enchanted rifle round"
|
||||
can_be_printed = FALSE // these are Really Really Better Rubbers
|
||||
|
||||
// overrides for tgcode's .223 (formerly 5.56), used in the M90-gl - renamed to .277 Aestus
|
||||
/obj/item/ammo_casing/a223
|
||||
name = ".277 Aestus casing"
|
||||
desc = "A .277 bullet casing."
|
||||
|
||||
/obj/item/ammo_casing/a223/phasic
|
||||
name = ".277 Aestus phasic casing"
|
||||
desc = "A .277 Aestus bullet casing.\
|
||||
<br><br>\
|
||||
<i>PHASIC: Ignores all surfaces except organic matter.</i>"
|
||||
advanced_print_req = TRUE
|
||||
custom_materials = AMMO_MATS_PHASIC
|
||||
|
||||
// shotgun ammo overrides moved to modular_skyrat\modules\shotgunrebalance\code\shotgun.dm
|
||||
|
||||
// overrides for tgcode .50cal, used in their sniper/anti-materiel rifles
|
||||
/obj/item/ammo_casing/p50
|
||||
name = ".416 Stabilis casing"
|
||||
desc = "A .416 bullet casing."
|
||||
advanced_print_req = TRUE // you are NOT printing more ammo for this without effort.
|
||||
// then again the offstations with ammo printers and sniper rifles come with an ammo disk anyway, so
|
||||
|
||||
/obj/item/ammo_casing/p50/surplus
|
||||
name = ".416 Stabilis surplus casing"
|
||||
desc = "A .416 bullet casing. Intentionally underloaded, but still quite painful to be shot with.\
|
||||
desc = "A .50 BMG bullet casing. Intentionally underloaded, but still quite painful to be shot with.\
|
||||
<br><br>\
|
||||
<i>SURPLUS/UNDERLOAD: Lacks armor penetration capabilities, contact-stun, or innate dismemberment ability. Still incredibly painful to be hit by.</i>"
|
||||
projectile_type = /obj/projectile/bullet/p50/surplus
|
||||
|
||||
/obj/item/ammo_casing/p50/disruptor
|
||||
name = ".416 Stabilis disruptor casing"
|
||||
desc = "A .416 bullet casing. Specializes in sending the target to sleep rather than hell, unless they're synthetic. Then they probably go to hell anyway.\
|
||||
desc = "A .50 BMG bullet casing. Specializes in sending the target to sleep rather than hell, unless they're synthetic. Then they probably go to hell anyway.\
|
||||
<br><br>\
|
||||
<i>DISRUPTOR: Forces humanoid targets to sleep, does heavy damage against cyborgs, EMPs struck targets.</i>"
|
||||
|
||||
/obj/item/ammo_casing/p50/incendiary
|
||||
name = ".416 Stabilis precision incendiary casing"
|
||||
desc = "A .416 bullet casing. Made with an agitated-plasma tip, for making people regret being alive.\
|
||||
desc = "A .50 BMG bullet casing. Made with an agitated-plasma tip, for making people regret being alive.\
|
||||
<br><br>\
|
||||
<i>PRECISION INCENDIARY: Lacks innate dismemberment ability and contact-stun, suffers against mechanized armor. Sets people on fire.</i>"
|
||||
projectile_type = /obj/projectile/bullet/p50/incendiary
|
||||
|
||||
/obj/item/ammo_casing/p50/penetrator
|
||||
name = ".416 Stabilis penetrator sabot casing"
|
||||
desc = "A .416 bullet casing. Loaded with a hardened sabot and packed with extra propellant. \
|
||||
desc = "A .50 BMG bullet casing. Loaded with a hardened sabot and packed with extra propellant. \
|
||||
Designed to go through basically everything. A label warns of overpressure risk, and to not use the round if \
|
||||
a given weapon cannot handle pressures greater than 85000 PSI.\
|
||||
<br><br>\
|
||||
<i>PENETRATOR: Goes through basically everything. Lacks innate dismemberment ability and contact-stun capabilities.</i>"
|
||||
|
||||
/obj/item/ammo_casing/p50/marksman
|
||||
name = ".416 Stabilis marksman hyperkinetic casing"
|
||||
desc = "A .416 bullet casing. Loaded with a hyperkinetic bullet that ignores mundane things like \"travel time\" \
|
||||
desc = "A .50 BMG bullet casing. Loaded with a hyperkinetic bullet that ignores mundane things like \"travel time\" \
|
||||
and a concerning amount of experimental propellant. A label warns of overpressure risk, and to not use the round if \
|
||||
a given weapon cannot handle pressures greater than 95000 PSI.\
|
||||
<br><br>\
|
||||
<i>MARKSMAN: Bullets have <b>no</b> travel time, and can ricochet once. Does slightly less damage, lacks innate dismemberment and contact-stun capabilities.</i>"
|
||||
projectile_type = /obj/projectile/bullet/p50/marksman
|
||||
|
||||
// overrides for tgcode 4.6x30mm, used in the WT-550
|
||||
/obj/item/ammo_casing/c46x30mm
|
||||
name = "8mm Usurpator bullet casing"
|
||||
desc = "An 8mm bullet casing."
|
||||
|
||||
/obj/item/ammo_casing/c46x30mm/ap
|
||||
name = "8mm Usurpator armor-piercing bullet casing"
|
||||
desc = "An 8mm armor-piercing bullet casing.\
|
||||
<br><br>\
|
||||
<i>ARMOR PIERCING: Increased armor piercing capabilities. What did you expect?</i>"
|
||||
custom_materials = AMMO_MATS_AP
|
||||
advanced_print_req = TRUE
|
||||
|
||||
/obj/item/ammo_casing/c46x30mm/inc
|
||||
name = "8mm Usurpator incendiary bullet casing"
|
||||
desc = "An 8mm incendiary bullet casing.\
|
||||
<br><br>\
|
||||
<i>INCENDIARY: Leaves a trail of fire when shot, sets targets aflame.</i>"
|
||||
custom_materials = AMMO_MATS_TEMP
|
||||
advanced_print_req = TRUE
|
||||
|
||||
// overrides for tgcode .45, used in the M1911 and C20-r
|
||||
/obj/item/ammo_casing/c45
|
||||
name = ".460 Ceres bullet casing"
|
||||
desc = "A .460 bullet casing."
|
||||
|
||||
/obj/item/ammo_casing/c45/ap
|
||||
name = ".460 Ceres armor-piercing bullet casing"
|
||||
desc = "An armor-piercing .460 bullet casing.\
|
||||
desc = "An armor-piercing .45 bullet casing.\
|
||||
<br><br>\
|
||||
<i>ARMOR PIERCING: Increased armor piercing capabilities. What did you expect?</i>"
|
||||
custom_materials = AMMO_MATS_AP
|
||||
advanced_print_req = TRUE
|
||||
|
||||
/obj/item/ammo_casing/c45/inc
|
||||
name = ".460 Ceres incendiary bullet casing"
|
||||
desc = "An incendiary .460 bullet casing.\
|
||||
desc = "An incendiary .45 bullet casing.\
|
||||
<br><br>\
|
||||
<i>INCENDIARY: Leaves a trail of fire when shot, sets targets aflame.</i>"
|
||||
custom_materials = AMMO_MATS_TEMP
|
||||
@@ -361,8 +315,7 @@
|
||||
|
||||
// overrides for .50AE, used in the deagle
|
||||
/obj/item/ammo_casing/a50ae
|
||||
name = ".454 Trucidator bullet casing"
|
||||
desc = "A .454 Trucidator bullet casing. Extremely powerful.\
|
||||
desc = "A .50 Action Express casing. Extremely powerful.\
|
||||
<br><br>\
|
||||
<i>HAND CANNON: Fired out of a handgun, deals disproportionately large damage.</i>"
|
||||
|
||||
@@ -413,12 +366,6 @@
|
||||
|
||||
// The ones above are the casings for the ammo, whereas the ones below are the actual projectiles that give you feedback when you're shot
|
||||
|
||||
/obj/projectile/bullet/a223
|
||||
name = ".277 Aestus bullet"
|
||||
|
||||
/obj/projectile/bullet/a223/phasic
|
||||
name = ".277 phasic bullet"
|
||||
|
||||
/obj/projectile/bullet/c9mm
|
||||
name = "9x25mm bullet"
|
||||
|
||||
@@ -431,81 +378,5 @@
|
||||
/obj/projectile/bullet/incendiary/c9mm
|
||||
name = "9x25mm incendiary bullet"
|
||||
|
||||
/obj/projectile/bullet/c45
|
||||
name = ".460 bullet"
|
||||
|
||||
/obj/projectile/bullet/c45/ap
|
||||
name = ".460 armor-piercing bullet"
|
||||
|
||||
/obj/projectile/bullet/incendiary/c45
|
||||
name = ".460 incendiary bullet"
|
||||
|
||||
/obj/projectile/bullet/c46x30mm
|
||||
name = "8mm Usurpator bullet"
|
||||
|
||||
/obj/projectile/bullet/c46x30mm/ap
|
||||
name = "8mm armor-piercing bullet"
|
||||
|
||||
/obj/projectile/bullet/incendiary/c46x30mm
|
||||
name = "8mm incendiary bullet"
|
||||
|
||||
/obj/projectile/bullet/p50
|
||||
name = ".416 Stabilis bullet"
|
||||
|
||||
/obj/projectile/bullet/p50/disruptor
|
||||
name = ".416 disruptor bullet"
|
||||
|
||||
/obj/projectile/bullet/p50/penetrator
|
||||
name = ".416 penetrator bullet"
|
||||
|
||||
/obj/projectile/bullet/a50ae
|
||||
name = ".454 Trucidator bullet"
|
||||
|
||||
|
||||
// MAGAZINES UPDATED TO MATCH STUFF
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9
|
||||
name = "\improper WT-550 magazine"
|
||||
desc = "A 20-round toploaded 8mm Usurpator magazine that fits neatly in the WT-550."
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9/wtap
|
||||
name = "\improper WT-550 AP magazine"
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9/wtic
|
||||
name = "\improper WT-550 IND magazine"
|
||||
|
||||
/obj/item/ammo_box/magazine/smgm45
|
||||
name = ".460 Ceres SMG magazine"
|
||||
desc = "A magazine chambered for .460 meant to fit in submachine guns."
|
||||
|
||||
/obj/item/ammo_box/magazine/smgm45/ap
|
||||
name = ".460 Ceres AP SMG magazine"
|
||||
|
||||
/obj/item/ammo_box/magazine/smgm45/incen
|
||||
name = ".460 Ceres IND SMG magazine"
|
||||
|
||||
/obj/item/ammo_box/magazine/tommygunm45
|
||||
name = "\improper Tommy Gun .460 Ceres drum"
|
||||
desc = "A disc magazine chambered for .460 Ceres."
|
||||
|
||||
/obj/item/ammo_box/magazine/m556
|
||||
name = ".277 Aestus toploading magazine"
|
||||
desc = "A toploading magazine chambered for .277 Aestus."
|
||||
|
||||
/obj/item/ammo_box/magazine/m556/phasic
|
||||
name = ".277 PHASE toploading magazine"
|
||||
|
||||
/obj/item/ammo_box/magazine/sniper_rounds
|
||||
name = "anti-materiel rifle magazine"
|
||||
desc = "A heavy magazine chambered for .416 Stabilis."
|
||||
|
||||
/obj/item/ammo_box/magazine/sniper_rounds/soporific
|
||||
desc = "A magazine with soporific .416 Stabilis ammo, designed for happy days and dead quiet nights."
|
||||
|
||||
/obj/item/ammo_box/magazine/sniper_rounds/penetrator
|
||||
name = "anti-materiel rifle ++P magazine"
|
||||
desc = "A heavy magazine with over the top, overpressurized, and frankly over the top .416 penetrator ammo."
|
||||
|
||||
/obj/item/ammo_box/magazine/m50
|
||||
name = ".454 Trucidator handcannon magazine"
|
||||
desc = "An absurdly THICK magazine possibly meant for a heavy hitting pistol, if you can call it that."
|
||||
/obj/item/ammo_box/magazine/sniper_rounds/soporific //this is just a regular 50 bmg mag I have no clue why the fuck this exists but some maps are dependant on it so I'm not getting rid of it
|
||||
desc = "A magazine with .50 BMG ammo, designed for happy days and dead quiet nights."
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/obj/projectile/bullet/a223/weak
|
||||
name = "surplus .277 bullet"
|
||||
name = "surplus .223 bullet"
|
||||
damage = 25
|
||||
armour_penetration = 10
|
||||
wound_bonus = -40
|
||||
|
||||
/obj/item/ammo_casing/a223/weak
|
||||
name = ".277 surplus bullet casing"
|
||||
desc = "A .277 surplus bullet casing."
|
||||
name = ".223 surplus bullet casing"
|
||||
desc = "A .223 surplus bullet casing."
|
||||
projectile_type = /obj/projectile/bullet/a223/weak
|
||||
|
||||
@@ -11,27 +11,25 @@
|
||||
// whatever goblin decided to spread out bullets over like 3 files and god knows however many overrides i wish you a very stubbed toe
|
||||
|
||||
/*
|
||||
* .460 Ceres (renamed tgcode .45)
|
||||
* .45 bullets
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/c45/hp
|
||||
name = ".460 Ceres hollow-point bullet casing"
|
||||
desc = "A .460 hollow-point bullet casing. Very lethal against unarmored opponents. Suffers against armor."
|
||||
desc = "A .45 hollow-point bullet casing. Very lethal against unarmored opponents. Suffers against armor."
|
||||
projectile_type = /obj/projectile/bullet/c45/hp
|
||||
advanced_print_req = TRUE
|
||||
|
||||
/obj/projectile/bullet/c45/hp
|
||||
name = ".460 Ceres hollow-point bullet"
|
||||
damage = 40
|
||||
weak_against_armour = TRUE
|
||||
|
||||
/*
|
||||
* .277 Aestus (renamed tgcode .223, used in the M-90gl)
|
||||
* .223 bullets
|
||||
*/
|
||||
|
||||
/obj/item/ammo_casing/a223/ap
|
||||
name = ".277 Aestus armor-piercing bullet casing"
|
||||
desc = "A .277 armor-piercing bullet casing.\
|
||||
name = ".223 armor-piercing bullet casing"
|
||||
desc = "A .223 armor-piercing bullet casing.\
|
||||
<br><br>\
|
||||
<i>ARMOR PIERCING: Increased armor piercing capabilities. What did you expect?"
|
||||
projectile_type = /obj/projectile/bullet/a223/ap
|
||||
@@ -39,7 +37,6 @@
|
||||
custom_materials = AMMO_MATS_AP
|
||||
|
||||
/obj/projectile/bullet/a223/ap
|
||||
name = ".277 armor-piercing bullet"
|
||||
armour_penetration = 60
|
||||
|
||||
/*
|
||||
|
||||
@@ -14,15 +14,17 @@
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
|
||||
announce_channels = list(RADIO_CHANNEL_SECURITY)
|
||||
|
||||
/* Commenting this out due to the fact that we don't really have anything that falls under the category of 'even more exotic ammo'. The dragon's breath can be safely moved to illegal tech where it fits alongside the incendiary WT ammo.
|
||||
/datum/techweb_node/magazineresearch
|
||||
id = "storedmunition_tech"
|
||||
display_name = "Ballisitic Research"
|
||||
display_name = "Esoteric Ammunition"
|
||||
description = "The daring do not stop at reaching the mountaintop, they go where no man has gone before" // and with that nice quote we have exotic ammo 2
|
||||
prereq_ids = list("exotic_ammo")
|
||||
design_ids = list(
|
||||
"s12g_db"
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
|
||||
*/
|
||||
|
||||
/datum/techweb_node/basic_arms/New()
|
||||
design_ids += "s12c_fslug"
|
||||
|
||||
@@ -1 +1,4 @@
|
||||
#define CALIBER_69MM "69mm"
|
||||
|
||||
///used by the stingball machine gun
|
||||
#define CALIBER_STINGBALL "stingball"
|
||||
|
||||
@@ -26,3 +26,47 @@
|
||||
)
|
||||
time = 8 SECONDS
|
||||
category = CAT_WEAPON_MELEE
|
||||
|
||||
/datum/crafting_recipe/stunstaff
|
||||
name = "Stun Staff"
|
||||
result = /obj/item/melee/baton/security/staff
|
||||
reqs = list(
|
||||
/obj/item/melee/baton/security = 2,
|
||||
/obj/item/stack/sheet/plasteel = 3,
|
||||
/obj/item/stack/cable_coil = 5
|
||||
)
|
||||
blacklist = list(
|
||||
/obj/item/melee/baton/security/cattleprod,
|
||||
/obj/item/melee/baton/security/cattleprod/telecrystalprod,
|
||||
/obj/item/melee/baton/security/cattleprod/teleprod,
|
||||
/obj/item/melee/baton/security/boomerang,
|
||||
/obj/item/melee/baton/security/stunsword
|
||||
)
|
||||
tool_behaviors = list(TOOL_WELDER, TOOL_WRENCH)
|
||||
time = 15 SECONDS
|
||||
category = CAT_WEAPON_MELEE
|
||||
crafting_flags = CRAFT_SKIP_MATERIALS_PARITY
|
||||
|
||||
/datum/crafting_recipe/stunstaff_prime
|
||||
name = "Magna-staff"
|
||||
result = /obj/item/melee/baton/security/staff/prime
|
||||
reqs = list(
|
||||
/obj/item/melee/baton/security/staff = 1,
|
||||
/obj/item/stack/sheet/mineral/titanium = 10,
|
||||
/obj/item/stack/sheet/mineral/plasma = 10,
|
||||
/obj/item/stock_parts/capacitor/quadratic = 5,
|
||||
/datum/reagent/consumable/ethanol/quintuple_sec = 30,
|
||||
)
|
||||
blacklist = list(
|
||||
/obj/item/melee/baton/security/staff/prime
|
||||
)
|
||||
tool_behaviors = list(TOOL_WELDER, TOOL_WRENCH)
|
||||
tool_paths = list(
|
||||
/obj/item/clothing/accessory/medal/silver/security,
|
||||
)
|
||||
machinery = list(
|
||||
/obj/machinery/power/apc,
|
||||
)
|
||||
time = 15 SECONDS
|
||||
category = CAT_WEAPON_MELEE
|
||||
crafting_flags = CRAFT_SKIP_MATERIALS_PARITY | CRAFT_MUST_BE_LEARNED
|
||||
|
||||
@@ -1,5 +1,45 @@
|
||||
/obj/item/weaponcrafting/gunkit/wt550_burst
|
||||
name = "WT-550 burst-fire modification parts kit"
|
||||
desc = "A suitcase containing the necessary gun parts to modify a WT-550 into a burst-fire assault weapon."
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5,
|
||||
/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 3,
|
||||
)
|
||||
|
||||
/obj/item/weaponcrafting/gunkit/wt550_long
|
||||
name = "WT-550 long range operations parts kit"
|
||||
desc = "A suitcase containing the necessary gun parts to construct a long range WT-550. Contains a long barrel, scope, and modified frame."
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5,
|
||||
/datum/material/glass = SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
|
||||
/obj/item/weaponcrafting/gunkit/simple_battle_rifle
|
||||
name = "NT-38 battle rifle simplification kit"
|
||||
desc = "A suitcase containing the necessary gun parts to remove the advanced electronics and acceleration technology from a NT-38 battle rifle, reducing performance but maximizing reliability."
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10,
|
||||
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/uranium = SHEET_MATERIAL_AMOUNT * 2,
|
||||
)
|
||||
|
||||
/obj/item/weaponcrafting/gunkit/regal_condor
|
||||
name = "unnamed weapon parts case (viciously lethal)"
|
||||
desc = "A suitcase containing the necessary gun parts to assemble a very powerful handgun. The case itself has a foreboding aura to it."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/improvised.dmi'
|
||||
icon_state = "syndikitsuitcase"
|
||||
|
||||
/obj/item/weaponcrafting/juggernaut_suit
|
||||
name = "advanced security suit armor plates"
|
||||
desc = "A set of incredibly dense armor plates for use in constructing the advanced security suit."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/improvised.dmi'
|
||||
icon_state = "jugg_plates"
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
item_flags = SLOWS_WHILE_IN_HAND
|
||||
slowdown = 3
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 40,
|
||||
/datum/material/alloy/plastitanium = SHEET_MATERIAL_AMOUNT * 40,
|
||||
)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
)
|
||||
|
||||
/datum/crafting_recipe/deagle_prime_mag
|
||||
crafting_flags = CRAFT_SKIP_MATERIALS_PARITY //for the unit test, this recipe is has custom materials like the original.
|
||||
crafting_flags = CRAFT_SKIP_MATERIALS_PARITY | CRAFT_MUST_BE_LEARNED //for the unit test, this recipe is has custom materials like the original.
|
||||
reqs = list(
|
||||
/obj/item/stack/sheet/iron = 10,
|
||||
/obj/item/stack/sheet/mineral/gold = 10,
|
||||
@@ -22,3 +22,55 @@
|
||||
/obj/item/stack/telecrystal = 1, //induces a limit on how many magazines you can make
|
||||
/obj/item/food/donkpocket = 1,
|
||||
)
|
||||
|
||||
/datum/crafting_recipe/wt550_burst
|
||||
name = "WT-550-B Autoburstrifle"
|
||||
result = /obj/item/gun/ballistic/automatic/wt550/burst
|
||||
reqs = list(
|
||||
/obj/item/gun/ballistic/automatic/wt550 = 1,
|
||||
/obj/item/weaponcrafting/gunkit/wt550_burst = 1,
|
||||
)
|
||||
blacklist = list(
|
||||
/obj/item/gun/ballistic/automatic/wt550/burst,
|
||||
/obj/item/gun/ballistic/automatic/wt550/dmr,
|
||||
)
|
||||
time = 15 SECONDS
|
||||
category = CAT_WEAPON_RANGED
|
||||
|
||||
/datum/crafting_recipe/wt550_long
|
||||
name = "WT-550-C Autorifle"
|
||||
result = /obj/item/gun/ballistic/automatic/wt550/dmr
|
||||
reqs = list(
|
||||
/obj/item/gun/ballistic/automatic/wt550 = 1,
|
||||
/obj/item/weaponcrafting/gunkit/wt550_long = 1,
|
||||
)
|
||||
blacklist = list(
|
||||
/obj/item/gun/ballistic/automatic/wt550/burst,
|
||||
/obj/item/gun/ballistic/automatic/wt550/dmr,
|
||||
)
|
||||
time = 15 SECONDS
|
||||
category = CAT_WEAPON_RANGED
|
||||
|
||||
/datum/crafting_recipe/simple_battle_rifle
|
||||
name = "NT .38 Battle Rifle"
|
||||
result = /obj/item/gun/ballistic/automatic/battle_rifle_basic
|
||||
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_MULTITOOL)
|
||||
reqs = list(
|
||||
/obj/item/gun/ballistic/automatic/battle_rifle = 1,
|
||||
/obj/item/weaponcrafting/gunkit/simple_battle_rifle = 1,
|
||||
)
|
||||
time = 20 SECONDS
|
||||
category = CAT_WEAPON_RANGED
|
||||
crafting_flags = CRAFT_SKIP_MATERIALS_PARITY
|
||||
|
||||
/datum/crafting_recipe/nuclear_smg
|
||||
name = "Advanced Energy SMG"
|
||||
result = /obj/item/gun/energy/e_gun/nuclear_smg
|
||||
tool_behaviors = list(TOOL_WIRECUTTER, TOOL_MULTITOOL)
|
||||
reqs = list(
|
||||
/obj/item/gun/energy/e_gun/nuclear = 1,
|
||||
/obj/item/gun/energy/laser/carbine = 1,
|
||||
/obj/item/gun/energy/disabler/smg = 1,
|
||||
)
|
||||
time = 20 SECONDS
|
||||
category = CAT_WEAPON_RANGED
|
||||
|
||||
@@ -113,3 +113,21 @@
|
||||
reqs = list(/obj/item/stack/sheet/mineral/metal_hydrogen = 3,
|
||||
/obj/item/clothing/head/utility/hardhat/welding/atmos = 1)
|
||||
category = CAT_CLOTHING
|
||||
|
||||
/datum/crafting_recipe/security_juggernaut
|
||||
name = "Security Juggernaut Suit"
|
||||
result = /obj/item/clothing/suit/hooded/secjuggernaut
|
||||
time = 60
|
||||
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER, TOOL_WELDER, TOOL_WRENCH, TOOL_CROWBAR, TOOL_MULTITOOL)
|
||||
reqs = list(
|
||||
/obj/item/weaponcrafting/juggernaut_suit = 1,
|
||||
/obj/item/clothing/shoes/magboots = 1,
|
||||
/obj/item/flashlight/seclite = 2,
|
||||
/obj/item/clothing/suit/armor/swat = 1,
|
||||
/obj/item/clothing/head/helmet/swat = 1,
|
||||
/obj/item/stack/cable_coil = 30,
|
||||
)
|
||||
blacklist = list(
|
||||
/obj/item/clothing/shoes/magboots/advance
|
||||
)
|
||||
category = CAT_CLOTHING
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
/datum/crafting_recipe/stingballcan
|
||||
name = "Stingball Canister"
|
||||
result = /obj/item/ammo_box/stingball
|
||||
reqs = list(
|
||||
/obj/item/grenade/stingbang = 1,
|
||||
)
|
||||
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
||||
time = 1.0 SECONDS
|
||||
category = CAT_WEAPON_AMMO
|
||||
@@ -46,8 +46,7 @@
|
||||
|
||||
/obj/effect/spawner/random/armory/smg
|
||||
loot = list(
|
||||
/obj/item/gun/ballistic/automatic/wt550/security
|
||||
)
|
||||
/obj/item/gun/ballistic/automatic/wt550)
|
||||
spawn_loot_count = 2
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/obj/effect/spawner/random/contraband/armory
|
||||
loot = list(
|
||||
/obj/item/gun/ballistic/automatic/pistol/contraband = 80,
|
||||
/obj/item/gun/ballistic/shotgun/automatic/combat = 50,
|
||||
/obj/item/storage/box/syndie_kit/throwing_weapons = 30,
|
||||
/obj/item/grenade/clusterbuster/teargas = 20,
|
||||
/obj/item/grenade/clusterbuster = 20,
|
||||
/obj/item/gun/ballistic/automatic/pistol/deagle/contraband,
|
||||
/obj/item/gun/ballistic/revolver/mateba = 9,
|
||||
/obj/item/gun/ballistic/revolver/reverse/mateba = 1,
|
||||
/obj/item/book/granter/crafting_recipe/stunstaff_prime = 10,
|
||||
)
|
||||
@@ -0,0 +1,20 @@
|
||||
/obj/item/book/granter/crafting_recipe/stunstaff_prime
|
||||
name = "diary of a lonely warden"
|
||||
desc = "A relatively clean diary. It reeks of pepperspray and copper."
|
||||
crafting_recipe_types = list(
|
||||
/datum/crafting_recipe/stunstaff_prime
|
||||
)
|
||||
icon_state = "book1"
|
||||
remarks = list(
|
||||
"It gets pretty lonely sitting in the brig all shift, doesn't it...?",
|
||||
"With all that time on time on your hands, you're bound to come up with something.",
|
||||
"A more effective way to apply police brutality...",
|
||||
"Overcharge the capacitors... apply a titanium reinforcement...",
|
||||
"Why not just use a gun instead?",
|
||||
"Ah yes, jam the staff right into an APC. What could go wrong?",
|
||||
"It recharges HOW fast between attacks?",
|
||||
)
|
||||
|
||||
/obj/item/book/granter/crafting_recipe/stunstaff_prime/recoil(mob/living/user)
|
||||
to_chat(user, span_warning("The book turns to dust in your hands."))
|
||||
qdel(src)
|
||||
@@ -0,0 +1,86 @@
|
||||
/obj/item/melee/baton/security/staff
|
||||
name = "stun staff"
|
||||
desc = "An advanced Secure Apprehension Device in the form of a quarterstaff. Debatably more effective at incapacitating targets."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/baton.dmi'
|
||||
icon_state = "stunstaff"
|
||||
base_icon_state = "stunstaff"
|
||||
lefthand_file = 'modular_zubbers/icons/mob/inhands/weapons/staves_lefthand.dmi'
|
||||
righthand_file = 'modular_zubbers/icons/mob/inhands/weapons/staves_righthand.dmi'
|
||||
inhand_icon_state = "stunstaff"
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/back.dmi'
|
||||
worn_icon_state = "stunstaff"
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
convertible = FALSE
|
||||
|
||||
block_chance = 50 //functionally a side-grade to a riot shield and baton, cannot block projectiles and is worse against tackles in exchange for being unbreakable and cool and marginally statistically better
|
||||
block_sound = 'sound/items/weapons/genhit.ogg'
|
||||
stamina_damage = 65 //marginally better at stamcritting
|
||||
stun_armour_penetration = 20 //ditto
|
||||
force = 14 //bigger batong, downs in ~8 instead of 10
|
||||
throwforce = 8
|
||||
|
||||
/obj/item/melee/baton/security/staff/Initialize(mapload) //because it'd honestly be too much of a headache (for me) to make it activate/deactivate when wielded/unwielded especially since the way the game checks for the cell.
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, require_twohands = TRUE)
|
||||
|
||||
/obj/item/melee/baton/security/staff/attack(mob/target, mob/living/carbon/human/user)
|
||||
..()
|
||||
if(prob(50))
|
||||
INVOKE_ASYNC(src, PROC_REF(jedi_spin), user)
|
||||
|
||||
/obj/item/melee/baton/security/staff/proc/jedi_spin(mob/living/user)
|
||||
dance_rotate(user, CALLBACK(user, TYPE_PROC_REF(/mob, dance_flip)))
|
||||
|
||||
/obj/item/melee/baton/security/staff/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE)
|
||||
if(attack_type == LEAP_ATTACK)
|
||||
final_block_chance -= 30 //It's still worse than a shield and a baton but it's for the cool factor and to not make it that terrible in comparison
|
||||
if(attack_type == PROJECTILE_ATTACK)
|
||||
final_block_chance -= 40 //Don't rely on this.
|
||||
if(attack_type == OVERWHELMING_ATTACK)
|
||||
final_block_chance = 0 //Don't bring a staff to a road roller roller fight.
|
||||
return ..()
|
||||
|
||||
/obj/item/melee/baton/security/staff/loaded
|
||||
preload_cell_type = /obj/item/stock_parts/power_store/cell/high
|
||||
|
||||
/obj/item/melee/baton/security/staff/add_deep_lore()
|
||||
return
|
||||
|
||||
/obj/item/melee/baton/security/staff/prime
|
||||
name = "\improper Magna-staff"
|
||||
desc = "An absolutely brutal feat of less-lethal engineering. The unique construction allows it to recharge between shocks incredibly quickly. Definitely more effective at incapacitating targets and posesses exceptional blocking capabilities."
|
||||
icon_state = "stunstaff_prime"
|
||||
base_icon_state = "stunstaff_prime"
|
||||
inhand_icon_state = "stunstaff_prime"
|
||||
worn_icon_state = "stunstaff_prime"
|
||||
|
||||
block_chance = 75 //security desword
|
||||
block_sound = 'sound/items/weapons/genhit.ogg'
|
||||
stamina_damage = 24 //way less stamina damage but oh lord it attacks fast
|
||||
stun_armour_penetration = 35 //same as desword
|
||||
force = 15
|
||||
throwforce = 10
|
||||
throw_stun_chance = 75
|
||||
throw_range = 6
|
||||
cell_hit_cost = STANDARD_CELL_CHARGE * 4 //guzzler. It's overcharged, what do you expect?
|
||||
knockdown_time = 0.5 SECONDS //one tenth the knockdown
|
||||
cooldown = 0 SECONDS //as fast as you can attack (probably)
|
||||
|
||||
light_color = LIGHT_COLOR_FLARE
|
||||
|
||||
/obj/item/melee/baton/security/staff/prime/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/boomerang, throw_range + 2, TRUE)
|
||||
|
||||
/obj/item/melee/baton/security/staff/prime/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE)
|
||||
if(attack_type == LEAP_ATTACK)
|
||||
final_block_chance -= 45 //effective 30
|
||||
if(attack_type == PROJECTILE_ATTACK)
|
||||
final_block_chance -= 25 //effective 50
|
||||
if(attack_type == OVERWHELMING_ATTACK)
|
||||
final_block_chance = 0
|
||||
return ..()
|
||||
|
||||
/obj/item/melee/baton/security/staff/prime/loaded
|
||||
preload_cell_type = /obj/item/stock_parts/power_store/cell/bluespace
|
||||
@@ -0,0 +1,2 @@
|
||||
/obj
|
||||
var/bubber_obj_flags
|
||||
@@ -1,7 +0,0 @@
|
||||
/datum/export/weapon/wt550
|
||||
exclude_types = list(/obj/item/gun/ballistic/automatic/wt550/security)
|
||||
|
||||
/datum/export/weapon/wt551
|
||||
export_types = list(/obj/item/gun/ballistic/automatic/wt550/security)
|
||||
cost = CARGO_CRATE_VALUE * 1.25
|
||||
unit_name = "WT-551 automatic rifle"
|
||||
@@ -10,15 +10,15 @@
|
||||
contains = list(/obj/item/gun/energy/laser/carbine)
|
||||
|
||||
/datum/supply_pack/goody/wt550_single
|
||||
name = "WT-551 Autorifle Single-Pack"
|
||||
desc = "An NT-security grade autorifle, it comes with excellent heating and poses no health-related risks for the user. Comes as a single-pack with one WT-551 locked and loaded."
|
||||
name = "WT-550 Autorifle Single-Pack"
|
||||
desc = "A surplus-grade autorifle, it comes with excellent heating and poses no health-related risks for the user. Comes as a single-pack with one WT-550 locked and loaded."
|
||||
cost = PAYCHECK_COMMAND * 8 //Nvm these are stronger than lasers in most scenarios so let's get them a bit of an edge. Plus gun price variety looks better
|
||||
access_view = ACCESS_WEAPONS
|
||||
contains = list(/obj/item/gun/ballistic/automatic/wt550/security)
|
||||
contains = list(/obj/item/gun/ballistic/automatic/wt550)
|
||||
|
||||
/datum/supply_pack/goody/wt550_ammo
|
||||
name = "WT-550/WT-551 Autorifle Magazine Single-Pack"
|
||||
desc = "A single-pack magazine with lethal regular rounds for the WT-551."
|
||||
name = "WT-550 Autorifle Magazine Single-Pack"
|
||||
desc = "A single-pack magazine with lethal regular rounds for the WT-550."
|
||||
cost = PAYCHECK_CREW * 5 //Scale it like all guns
|
||||
contains = list(/obj/item/ammo_box/magazine/wt550m9 = 1)
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/datum/supply_pack/security/armory/wt551
|
||||
name = "WT-551 Autorifle Crate"
|
||||
desc = "Contains a pair of WT-551 Autorifles pre-loaded with less-lethal rubber-tipped rounds. Additional ammo sold seperately. Backwards-compatible with WT-550 magazines. Nanotrasen reminds you that the other weapon is for a friend, and not for going guns akimbo."
|
||||
/datum/supply_pack/security/armory/wt550
|
||||
name = "WT-550 Autorifle Crate"
|
||||
desc = "Contains a trifecta of pre-loaded WT-550 Autorifles. Additional ammo sold seperately."
|
||||
cost = CARGO_CRATE_VALUE * 10
|
||||
contains = list(/obj/item/gun/ballistic/automatic/wt550/security = 3)
|
||||
contains = list(/obj/item/gun/ballistic/automatic/wt550 = 3)
|
||||
crate_name = "wt-550 autorifle crate"
|
||||
|
||||
/datum/supply_pack/security/armory/wt550_ammo_regular
|
||||
name = "WT-550/WT-551 Autorifle Ammo Crate (Regular)"
|
||||
desc = "Contains 4 magazines with lethal regular rounds for the WT-551."
|
||||
name = "WT-550 Autorifle Ammo Crate (Regular)"
|
||||
desc = "Contains 4 magazines with lethal regular rounds for the WT-550."
|
||||
cost = CARGO_CRATE_VALUE * 4 //these are printable, price can be lowered safely to 800ish
|
||||
contains = list(/obj/item/ammo_box/magazine/wt550m9 = 4)
|
||||
crate_name = "wt-550 magazine crate (regular)"
|
||||
@@ -227,3 +227,31 @@
|
||||
/obj/item/gun/energy/modular_laser_rifle/carbine,
|
||||
/obj/item/gun/energy/modular_laser_rifle/carbine,
|
||||
)
|
||||
|
||||
/datum/supply_pack/security/armory/stingballer
|
||||
name = "Stingball Rifle crate"
|
||||
crate_name = "stingball rifle crate"
|
||||
desc = "A single unit of a prototype rifle designed to rapidly shoot stingball pellets. Comes preloaded, but additional ammunition is sold seperately."
|
||||
cost = CARGO_CRATE_VALUE * 22.5
|
||||
contains = list(
|
||||
/obj/item/gun/ballistic/rifle/stingballer,
|
||||
)
|
||||
|
||||
/datum/supply_pack/security/armory/kiboko
|
||||
name = "Kiboko Grenade Launcher Crate"
|
||||
crate_name = "Kiboko grenade launcher crate"
|
||||
desc = "A brand-new loaded Kiboko grenade launcher just for you, in case you somehow lost the issued one."
|
||||
cost = CARGO_CRATE_VALUE * 37.5
|
||||
contains = list(
|
||||
/obj/item/gun/ballistic/automatic/sol_grenade_launcher
|
||||
)
|
||||
|
||||
/datum/supply_pack/security/armory/grenadelauncher
|
||||
name = "Pneumatic Grenade Launcher Crate"
|
||||
crate_name = "grenade launcher crate"
|
||||
desc = "A truly diabolical weapon for rapid deployment of any standard grenade. Comes with a complimentary box of flashbangs."
|
||||
cost = CARGO_CRATE_VALUE * 75
|
||||
contains = list(
|
||||
/obj/item/gun/grenadelauncher,
|
||||
/obj/item/storage/box/flashbangs,
|
||||
)
|
||||
|
||||
@@ -268,6 +268,136 @@
|
||||
/obj/item/clothing/head/hooded/cultlain_hood
|
||||
worn_icon_teshari = 'modular_zubbers/icons/mob/clothing/head/helmet_teshari.dmi'
|
||||
|
||||
/obj/item/clothing/suit/hooded/secjuggernaut
|
||||
name = "security juggernaut suit"
|
||||
desc = "The Advanced Security Suit offers nigh-perfect protection of the wearer through an advanced layering of kevlar, titanium, and ceramic plates. \
|
||||
The construction of the suit unfortunately renders it incredibly heavy and cumbersome, effectively slowing the user to a crawl and heavily limiting their mobility options. \
|
||||
Only through recently developed micro-anti-gravitational generators can the suit actually be worn and moved in. \
|
||||
Comes along with a built-in helmet for EVA action."
|
||||
icon_state = "security_jugger"
|
||||
icon = 'modular_zubbers/icons/obj/clothing/suits/armor.dmi'
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/suits/armor.dmi'
|
||||
worn_icon_digi = 'modular_zubbers/icons/mob/clothing/suits/armor_digi.dmi'
|
||||
worn_icon_teshari = 'modular_zubbers/icons/mob/clothing/suits/armor_teshari.dmi'
|
||||
inhand_icon_state = "swat_suit"
|
||||
hoodtype = /obj/item/clothing/head/hooded/secjuggernaut
|
||||
hood_up_affix = ""
|
||||
armor_type = /datum/armor/secjuggernaut
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
siemens_coefficient = 0
|
||||
strip_delay = 25 SECONDS
|
||||
equip_delay_self = 12 SECONDS
|
||||
equip_delay_other = 15 SECONDS
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
item_flags = SLOWS_WHILE_IN_HAND | IMMUTABLE_SLOW
|
||||
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT
|
||||
bubber_obj_flags = TRUE_IMMUTABLE_SLOW
|
||||
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
slowdown = 5
|
||||
drag_slowdown = 5
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED, TRAIT_PUSHIMMUNE, TRAIT_NEGATES_GRAVITY, TRAIT_NO_SLIP_WATER, TRAIT_NO_VEHICLE, TRAIT_HUGE_CLOTHES, TRAIT_NO_BUCKLE)
|
||||
allowed = list(
|
||||
/obj/item/tank/internals,
|
||||
/obj/item/tank/jetpack/captain,
|
||||
)
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 40.4,
|
||||
/datum/material/alloy/plastitanium = SHEET_MATERIAL_AMOUNT * 40,
|
||||
/datum/material/glass = SMALL_MATERIAL_AMOUNT * 3.4
|
||||
)
|
||||
|
||||
/obj/item/clothing/suit/hooded/secjuggernaut/examine(mob/user)
|
||||
. = ..()
|
||||
. += span_warning("Trying to buckle to anything while wearing this is impossible, whether it be a chair, cyborg, horse, or golf cart.")
|
||||
|
||||
/obj/item/clothing/suit/hooded/secjuggernaut/Initialize(mapload)
|
||||
. = ..()
|
||||
allowed += GLOB.security_vest_allowed
|
||||
|
||||
/obj/item/clothing/head/hooded/secjuggernaut
|
||||
name = "security juggernaut helmet"
|
||||
desc = "A helmet built into the Advanced Security Suit. It offers nigh-perfect protection with the drawback of being permanently affixed to an incredibly heavy suit. \
|
||||
It is pressure resistant, flash-protected, and comes with a built-in seclite for visiblity in dark areas.\
|
||||
While made of the same materials and having the same overall construction, built-in servos and actuators allow it to be easily put on compared to the suit it comes with."
|
||||
icon_state = "security_jugger0"
|
||||
icon = 'modular_zubbers/icons/obj/clothing/head/helmet.dmi'
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/head/helmet.dmi'
|
||||
worn_icon_muzzled = 'modular_zubbers/icons/mob/clothing/head/helmet_muzzled.dmi'
|
||||
worn_icon_teshari = 'modular_zubbers/icons/mob/clothing/head/helmet_teshari.dmi'
|
||||
armor_type = /datum/armor/secjuggernaut
|
||||
flash_protect = FLASH_PROTECTION_WELDER
|
||||
strip_delay = 15 SECONDS
|
||||
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | HEADINTERNALS
|
||||
bubber_obj_flags = TRUE_IMMUTABLE_SLOW
|
||||
clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED)
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDESNOUT|SHOWSPRITEEARS
|
||||
flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH|PEPPERPROOF
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_light)
|
||||
light_system = OVERLAY_LIGHT_DIRECTIONAL
|
||||
light_range = 7
|
||||
light_power = 1.0
|
||||
light_color = "#99ccff"
|
||||
light_on = FALSE
|
||||
var/on = FALSE
|
||||
|
||||
var/sound_on = 'sound/items/weapons/magin.ogg'
|
||||
var/sound_off = 'sound/items/weapons/magout.ogg'
|
||||
|
||||
/obj/item/clothing/head/hooded/secjuggernaut/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/update_icon_updates_onmob)
|
||||
AddComponent(/datum/component/wearertargeting/earprotection)
|
||||
|
||||
/obj/item/clothing/head/hooded/secjuggernaut/proc/toggle_helmet_light(mob/living/user)
|
||||
on = !on
|
||||
if(on)
|
||||
playsound(src, sound_on, 40, TRUE)
|
||||
turn_on(user)
|
||||
else
|
||||
playsound(src, sound_off, 40, TRUE)
|
||||
turn_off(user)
|
||||
update_appearance()
|
||||
|
||||
/obj/item/clothing/head/hooded/secjuggernaut/update_icon_state()
|
||||
icon_state = "security_jugger[on]"
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/head/hooded/secjuggernaut/proc/turn_on(mob/user)
|
||||
set_light_on(TRUE)
|
||||
|
||||
/obj/item/clothing/head/hooded/secjuggernaut/proc/turn_off(mob/user)
|
||||
set_light_on(FALSE)
|
||||
|
||||
/obj/item/clothing/head/hooded/secjuggernaut/on_saboteur(datum/source, disrupt_duration)
|
||||
. = ..()
|
||||
if(on)
|
||||
toggle_helmet_light()
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/head/hooded/secjuggernaut/attack_self(mob/living/user)
|
||||
toggle_helmet_light(user)
|
||||
|
||||
/datum/armor/secjuggernaut
|
||||
melee = 80
|
||||
bullet = 80
|
||||
laser = 70
|
||||
energy = 40
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 40
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/blueshirt
|
||||
worn_icon_teshari = 'modular_zubbers/icons/mob/clothing/suits/armor_teshari.dmi'
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/datum/job/cargo_technician/New()
|
||||
mail_goodies -= /obj/item/gun/ballistic/automatic/wt550
|
||||
mail_goodies += /obj/item/gun/ballistic/automatic/wt550/security
|
||||
. = ..()
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
/mob/living/basic/trooper/nanotrasen/ranged/smg
|
||||
casingtype = /obj/item/ammo_casing/c46x30mm
|
||||
r_hand = /obj/item/gun/ballistic/automatic/wt550/security
|
||||
r_hand = /obj/item/gun/ballistic/automatic/wt550
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
/datum/movespeed_modifier/equipment_speedmod/true_immutable //will apply anywhere
|
||||
blacklisted_movetypes = null
|
||||
@@ -0,0 +1,4 @@
|
||||
/obj/item/stock_parts/power_store/cell/laser_lmg
|
||||
name = "laser machine gun power cell"
|
||||
maxcharge = STANDARD_CELL_CHARGE * 3
|
||||
chargerate = STANDARD_CELL_RATE * 0.5
|
||||
@@ -1,2 +1,15 @@
|
||||
/obj/item/ammo_casing/strilka310/phasic
|
||||
can_be_printed = FALSE
|
||||
|
||||
/obj/item/ammo_casing/stingballer
|
||||
name = "stingball pellet"
|
||||
desc = "A small metal bearing."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/ammo.dmi'
|
||||
icon_state = "stingball"
|
||||
caliber = CALIBER_STINGBALL
|
||||
projectile_type = /obj/projectile/bullet/pellet/stingball
|
||||
|
||||
/obj/item/ammo_casing/stingballer/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
AddElement(/datum/element/caseless)
|
||||
|
||||
@@ -19,6 +19,14 @@
|
||||
advanced_print_req = TRUE
|
||||
custom_materials = AMMO_MATS_TEMP
|
||||
|
||||
/obj/item/ammo_casing/c46x30mm/compressed
|
||||
name = "compressed 4.6x30mm bullet casing"
|
||||
desc = "A compressed 4.6x30mm bullet casing."
|
||||
projectile_type = /obj/projectile/bullet/c46x30mm/compressed
|
||||
can_be_printed = TRUE
|
||||
advanced_print_req = TRUE
|
||||
custom_materials = AMMO_MATS_HOMING
|
||||
|
||||
/obj/item/ammo_casing/caseless/c22hl/ntmp5
|
||||
projectile_type = /obj/projectile/bullet/c22hl/ntmp5
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
/obj/item/ammo_casing/energy/lasergun/carbine_old
|
||||
projectile_type = /obj/projectile/beam/laser/carbine_old
|
||||
e_cost = LASER_SHOTS(40, STANDARD_CELL_CHARGE)
|
||||
select_name = "kill"
|
||||
fire_sound = 'sound/items/weapons/laser2.ogg'
|
||||
@@ -0,0 +1,5 @@
|
||||
/obj/projectile/beam/laser/carbine_old
|
||||
name = "carbine laser"
|
||||
icon_state = "carbine_laser"
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/yellow_laser
|
||||
damage = 15
|
||||
@@ -0,0 +1,9 @@
|
||||
/obj/item/ammo_box/stingball
|
||||
name = "stingball canister"
|
||||
desc = "A cut open stingbang."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/ammo.dmi'
|
||||
icon_state = "stingball_mag"
|
||||
ammo_type = /obj/item/ammo_casing/stingballer
|
||||
max_ammo = 25
|
||||
ammo_box_multiload = AMMO_BOX_MULTILOAD_ALL
|
||||
custom_materials = null
|
||||
@@ -2,11 +2,31 @@
|
||||
name = "\improper WT-550 magazine"
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9/wtap
|
||||
name = "wt550 Armour-piercing magazine"
|
||||
name = "wt550 armour-piercing magazine"
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9/wtic
|
||||
name = "wt550 incendiary magazine"
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9/compressed //20% higher damage potential than the standard bullets, but DPS is lower
|
||||
name = "compressed wt550 magazine"
|
||||
ammo_type = /obj/item/ammo_casing/c46x30mm/compressed
|
||||
ammo_band_color = "#00618E"
|
||||
max_ammo = 40
|
||||
caliber = null
|
||||
multitype = FALSE //we don't want people loading these with normal or ap bullets do we
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9/compressed/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]-[round(ammo_count()/2, 4)]"
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9/compressed/super
|
||||
name = "hyper compressed wt550 magazine"
|
||||
ammo_band_color = "#072E40"
|
||||
max_ammo = 60
|
||||
/obj/item/ammo_box/magazine/wt550m9/compressed/super/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]-[round(ammo_count()/3, 4)]"
|
||||
|
||||
|
||||
/obj/item/ammo_box/magazine/recharge/ntmp5
|
||||
name = "large disabling power pack"
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
/obj/item/ammo_box/magazine/internal/stingballer
|
||||
name = "stingball rifle internal magazine"
|
||||
desc = "If you're reading this"
|
||||
ammo_type = /obj/item/ammo_casing/stingballer
|
||||
caliber = CALIBER_STINGBALL
|
||||
max_ammo = 50
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/stingballer/empty
|
||||
start_empty = TRUE
|
||||
@@ -1,18 +1,30 @@
|
||||
/obj/item/gun/ballistic/automatic/wt550
|
||||
can_suppress = FALSE
|
||||
can_be_sawn_off = TRUE
|
||||
/obj/item/gun/ballistic/automatic/wt550/sawoff(mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
desc = "why would you do this"
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/ballistic.dmi'
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
spread = 10
|
||||
dual_wield_spread = 20
|
||||
recoil = SAWN_OFF_RECOIL
|
||||
update_appearance()
|
||||
|
||||
/obj/item/gun/ballistic/automatic/wt550/add_bayonet_point()
|
||||
return
|
||||
|
||||
/obj/item/gun/ballistic/automatic/wt550/security
|
||||
name = "\improper WT-551 Autorifle"
|
||||
desc = "A heavier, bulkier automatic variant of the WT-550, and now with 99% less discombobulation! It's back, baby. Uses 4.6x30mm rounds. Recommended to hold with two hands."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/wt551.dmi'
|
||||
fire_sound = 'modular_zubbers/sound/weapons/gun/wt551/shot.ogg'
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
fire_delay = 3
|
||||
//18 damage per 0.3 seconds = 60 DPS
|
||||
//Reference: Laser Gun 22 damage per 0.4 seconds = 55DPS
|
||||
/obj/item/gun/ballistic/automatic/wt550/Initialize(mapload)
|
||||
. = ..()
|
||||
if(type != /obj/item/gun/ballistic/automatic/wt550)
|
||||
return
|
||||
var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/wt550_burst, /datum/crafting_recipe/wt550_long)
|
||||
|
||||
AddElement(
|
||||
/datum/element/slapcrafting,\
|
||||
slapcraft_recipes = slapcraft_recipe_list,\
|
||||
)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/ntmp5
|
||||
burst_size = 1
|
||||
@@ -150,3 +162,104 @@
|
||||
recoil = 0
|
||||
spread = 5
|
||||
update_appearance()
|
||||
|
||||
/obj/item/gun/ballistic/automatic/wt550/burst
|
||||
name = "\improper WT-550-B Autoburstrifle"
|
||||
desc = "Not so much of a rifle, being modified closer to a submachine gun, but still somehow just as bulky. Outfitted with a modified frame and barrel and a two-shot burst trigger mechanism. Performs overall better than the average autorifle, but kicks a bit more. Has a threaded barrel for suppressors. Uses 4.6x30mm rounds."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/ballistic.dmi'
|
||||
icon_state = "wt550b"
|
||||
fire_sound = 'modular_zubbers/sound/weapons/gun/wt551/shot.ogg'
|
||||
can_suppress = TRUE
|
||||
can_be_sawn_off = FALSE
|
||||
suppressor_x_offset = 4
|
||||
spread = 3
|
||||
recoil = 0.25
|
||||
burst_delay = 1
|
||||
burst_size = 2
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 8.5,
|
||||
/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 3
|
||||
)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/wt550/burst/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/automatic_fire, 0.5 SECONDS)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/wt550/burst/add_seclight_point()
|
||||
AddComponent(/datum/component/seclite_attachable, \
|
||||
light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', \
|
||||
light_overlay = "flight", \
|
||||
overlay_x = 17, \
|
||||
overlay_y = 9)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/wt550/dmr
|
||||
name = "\improper WT-550-C Autorifle"
|
||||
desc = "A longer range WT-550, assembled using an aftermarket kit and parts. Outfitted with the longest barrel and custom trigger to enhance performance at a distance. Equipped with a custom scope and a threaded barrel for suppressors. Uses 4.6x30mm rounds."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/wide_guns.dmi'
|
||||
worn_icon = 'icons/mob/clothing/belt.dmi'
|
||||
worn_icon_state = "gun"
|
||||
fire_sound = 'modular_zubbers/sound/weapons/gun/wt551/shot.ogg'
|
||||
weapon_weight = WEAPON_HEAVY
|
||||
can_suppress = TRUE
|
||||
can_be_sawn_off = FALSE
|
||||
suppressor_x_offset = 6
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
projectile_damage_multiplier = 1.50 // 30 damage base + wounding at half the firerate
|
||||
projectile_speed_multiplier = 1.50
|
||||
projectile_wound_bonus = 5
|
||||
burst_delay = 6
|
||||
burst_size = 1
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 8.5,
|
||||
/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/glass = SHEET_MATERIAL_AMOUNT * 3
|
||||
)
|
||||
|
||||
SET_BASE_PIXEL(-8, 0)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/wt550/dmr/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/automatic_fire, 0.6 SECONDS)
|
||||
AddComponent(/datum/component/scope, range_modifier = 2.0)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/battle_rifle_basic
|
||||
name = "\improper .38 battle rifle"
|
||||
desc = "A lower-tech alternative version of Nanotrasen's latest prototype longarm, granting a different option to those who don't care for the NT-38. \
|
||||
Technically a pistol-caliber carbine, despite the name and its use as a battle rifle. \
|
||||
Forsaking the advanced electronics and integrated technological advantages allows it to perform infinitely more reliably."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/wide_guns.dmi'
|
||||
icon_state = "battle_rifle"
|
||||
lefthand_file = 'modular_zubbers/icons/mob/inhands/weapons/guns_lefthand.dmi'
|
||||
righthand_file = 'modular_zubbers/icons/mob/inhands/weapons/guns_righthand.dmi'
|
||||
inhand_icon_state = "battle_rifle"
|
||||
worn_icon = 'icons/mob/clothing/back.dmi'
|
||||
worn_icon_state = "battle_rifle"
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
|
||||
weapon_weight = WEAPON_HEAVY
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/m38
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
force = 15
|
||||
mag_display = TRUE
|
||||
empty_indicator = TRUE
|
||||
fire_delay = 1.5 DECISECONDS
|
||||
burst_size = 1
|
||||
actions_types = list()
|
||||
fire_sound = 'sound/items/weapons/thermalpistol.ogg'
|
||||
suppressor_x_offset = 0
|
||||
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 11,
|
||||
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/uranium = SHEET_MATERIAL_AMOUNT * 2,
|
||||
)
|
||||
|
||||
SET_BASE_PIXEL(-8, 0)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/battle_rifle_basic/add_seclight_point()
|
||||
AddComponent(/datum/component/seclite_attachable, \
|
||||
light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', \
|
||||
light_overlay = "flight", \
|
||||
overlay_x = 26, \
|
||||
overlay_y = 10)
|
||||
|
||||
@@ -7,3 +7,35 @@
|
||||
lefthand_file = 'modular_zubbers/icons/mob/inhands/weapons/guns_lefthand.dmi'
|
||||
righthand_file = 'modular_zubbers/icons/mob/inhands/weapons/guns_righthand.dmi'
|
||||
inhand_icon_state = "rebarxbowsyndie"
|
||||
|
||||
/obj/item/gun/ballistic/rifle/stingballer
|
||||
name = "\improper S-K Stingball Rifle"
|
||||
desc = "A pneumatic rifle designed to rapidly fire stingballs. Holds up to 50 rounds."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/ballistic.dmi'
|
||||
icon_state = "stingballer"
|
||||
fire_sound = 'modular_zubbers/sound/weapons/gun/light_gunfire.ogg'
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/internal/stingballer
|
||||
need_bolt_lock_to_interact = TRUE
|
||||
semi_auto = TRUE
|
||||
bolt_type = BOLT_TYPE_LOCKING
|
||||
internal_magazine = TRUE
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
weapon_weight = 2
|
||||
mag_display_ammo = TRUE
|
||||
spread = 7.5
|
||||
projectile_damage_multiplier = 0.50
|
||||
projectile_speed_multiplier = 1.25
|
||||
|
||||
/obj/item/gun/ballistic/rifle/stingballer/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/automatic_fire, 0.125 SECONDS)
|
||||
|
||||
/obj/item/gun/ballistic/rifle/stingballer/add_bayonet_point()
|
||||
AddComponent(/datum/component/bayonet_attachable, offset_x = 26, offset_y = 12)
|
||||
|
||||
/obj/item/gun/ballistic/rifle/stingballer/add_seclight_point()
|
||||
AddComponent(/datum/component/seclite_attachable, \
|
||||
light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', \
|
||||
light_overlay = "flight", \
|
||||
overlay_x = 20, \
|
||||
overlay_y = 10)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
/obj/projectile/beam/event_horizon
|
||||
damage = 110
|
||||
armour_penetration = 30
|
||||
demolition_mod = 2
|
||||
|
||||
/obj/projectile/beam/event_horizon/on_hit(atom/target, blocked = 0, pierce_hit) //breaks walls like a pulse rifle
|
||||
. = ..()
|
||||
if (!QDELETED(target) && (isturf(target) || isstructure(target)))
|
||||
if(isobj(target))
|
||||
SSexplosions.med_mov_atom += target
|
||||
else
|
||||
SSexplosions.medturf += target
|
||||
return ..()
|
||||
@@ -21,3 +21,37 @@
|
||||
light_overlay = "flight", \
|
||||
overlay_x = 15, \
|
||||
overlay_y = 10)
|
||||
|
||||
/obj/item/gun/energy/e_gun/nuclear_smg
|
||||
name = "advanced energy smg"
|
||||
desc = "A self-charging dual-mode rapid-fire energy weapon created as a disgusting hybrid of a laser carbine, a disabler smg and an advanced energy gun. \
|
||||
Modifications to the micro reactor have caused allowed a more stable, but less efficient generation of power. Comes with two settings: disable and kill."
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/energy.dmi'
|
||||
icon_state = "nuclear_smg"
|
||||
inhand_icon_state = "nucgun"
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/disabler/smg, /obj/item/ammo_casing/energy/lasergun/carbine_old)
|
||||
spread = 2
|
||||
ammo_x_offset = 1
|
||||
projectile_damage_multiplier = 1.0
|
||||
projectile_speed_multiplier = 1.2
|
||||
selfcharge = 1
|
||||
charge_delay = 7.5
|
||||
self_charge_amount = STANDARD_ENERGY_GUN_SELF_CHARGE_RATE / 2
|
||||
can_charge = TRUE
|
||||
custom_materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 8,
|
||||
/datum/material/uranium = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT
|
||||
)
|
||||
|
||||
/obj/item/gun/energy/e_gun/nuclear_smg/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/automatic_fire, 0.15 SECONDS, allow_akimbo = FALSE)
|
||||
|
||||
/obj/item/gun/energy/e_gun/nuclear_smg/add_seclight_point()
|
||||
AddComponent(/datum/component/seclite_attachable, \
|
||||
light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', \
|
||||
light_overlay = "flight", \
|
||||
overlay_x = 17, \
|
||||
overlay_y = 8)
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
damage = 10
|
||||
fire_stacks = 1
|
||||
|
||||
/obj/projectile/bullet/c46x30mm/compressed
|
||||
name = "compressed 4.6x30mm bullet"
|
||||
damage = 12
|
||||
|
||||
/obj/projectile/bullet/c45/lesser_reaper
|
||||
name = ".45 reaper pellet"
|
||||
icon = 'modular_zubbers/icons/obj/weapons/guns/projectiles.dmi'
|
||||
|
||||
@@ -214,8 +214,8 @@
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/m45_mag
|
||||
name = ".460 Ceres Pistol Magazine(Lethal)"
|
||||
desc = "A standard magazine for pistol using .460 Ceres."
|
||||
name = ".45 Pistol Magazine(Lethal)"
|
||||
desc = "A standard magazine for pistol using .45 rounds."
|
||||
id = "m45_mag"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5)
|
||||
@@ -286,3 +286,92 @@
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO,
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/wt550kit_burst
|
||||
name = "WT-550 Burst-Fire Parts Kit"
|
||||
desc = "A kit to modify a WT-550 to shoot burst-fire."
|
||||
id = "wt550_burst"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5,
|
||||
/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 3,
|
||||
)
|
||||
build_path = /obj/item/weaponcrafting/gunkit/wt550_burst
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
autolathe_exportable = FALSE
|
||||
|
||||
/datum/design/wt550kit_long
|
||||
name = "WT-550 Long-Range Parts Kit"
|
||||
desc = "A kit to modify a WT-550 to be more effective at long ranges."
|
||||
id = "wt550_long"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5,
|
||||
/datum/material/glass = SHEET_MATERIAL_AMOUNT * 3,
|
||||
/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
build_path = /obj/item/weaponcrafting/gunkit/wt550_long
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
autolathe_exportable = FALSE
|
||||
|
||||
/datum/design/wt550_ammo_compressed
|
||||
name = "WT-550 Magazine (4.6x30mm Compressed) (Lethal)"
|
||||
desc = "A magazine for the WT-550 Autorifle. Contains a high amount of lower power ammunition."
|
||||
id = "wt550_ammo_compressed"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 20,
|
||||
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 1,
|
||||
/datum/material/gold = SHEET_MATERIAL_AMOUNT * 1,
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT * 1,
|
||||
/datum/material/diamond = SHEET_MATERIAL_AMOUNT * 1,
|
||||
/datum/material/bluespace = SHEET_MATERIAL_AMOUNT * 3,
|
||||
)
|
||||
|
||||
build_path = /obj/item/ammo_box/magazine/wt550m9/compressed
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
autolathe_exportable = FALSE
|
||||
|
||||
/datum/design/simple_battle_rifle
|
||||
name = "NT-38 Battle Rifle Simplification Kit"
|
||||
desc = "A kit to simplify an NT-38 Battle Rifle, making it much less complicated."
|
||||
id = "battle_rifle_basic"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10,
|
||||
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 5,
|
||||
/datum/material/uranium = SHEET_MATERIAL_AMOUNT * 2,
|
||||
)
|
||||
build_path = /obj/item/weaponcrafting/gunkit/simple_battle_rifle
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
autolathe_exportable = FALSE
|
||||
|
||||
/datum/design/juggernaut_suit_parts
|
||||
name = "Security Juggernaut Plates"
|
||||
desc = "An expensive set of incredibly dense armor plates."
|
||||
id = "security_juggernaut"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 40,
|
||||
/datum/material/titanium =SHEET_MATERIAL_AMOUNT * 40,
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT * 40,
|
||||
)
|
||||
build_path = /obj/item/weaponcrafting/juggernaut_suit
|
||||
category = list(
|
||||
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
autolathe_exportable = FALSE
|
||||
|
||||
@@ -170,6 +170,8 @@
|
||||
"minesweeper",
|
||||
)
|
||||
|
||||
// Security Tech
|
||||
|
||||
/datum/techweb_node/riot_supression/New()
|
||||
design_ids += "s12g_rubber"
|
||||
design_ids += "s12g_bslug"
|
||||
@@ -186,13 +188,39 @@
|
||||
|
||||
/datum/techweb_node/exotic_ammo/New()
|
||||
design_ids += "wt550_ammo_ap"
|
||||
design_ids += "wt550_ammo_compressed"
|
||||
. = ..()
|
||||
|
||||
/datum/techweb_node/syndicate_basic/New()
|
||||
design_ids += "wt550_ammo_incendiary"
|
||||
design_ids += "s12g_db"
|
||||
design_ids += "mod_mind_transfer"
|
||||
. = ..()
|
||||
|
||||
/datum/techweb_node/bullet_weapons //This is for advanced bullet weapon designs and upgrades
|
||||
id = TECHWEB_NODE_BULLET_WEAPONS
|
||||
display_name = "Advanced Ballistic Weaponry"
|
||||
description = "As if shooting a bullet could get any more complicated."
|
||||
prereq_ids = list(TECHWEB_NODE_EXOTIC_AMMO)
|
||||
design_ids = list(
|
||||
"wt550_burst",
|
||||
"wt550_long",
|
||||
"battle_rifle_basic",
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
|
||||
announce_channels = list(RADIO_CHANNEL_SECURITY)
|
||||
|
||||
/datum/techweb_node/advanced_armor //This is for advanced armor and shields
|
||||
id = TECHWEB_NODE_ADVANCED_ARMOR
|
||||
display_name = "Advanced Security Protection"
|
||||
description = "If we can't hurt them, we can outlast them."
|
||||
prereq_ids = list(TECHWEB_NODE_RIOT_SUPRESSION, TECHWEB_NODE_GAS_COMPRESSION)
|
||||
design_ids = list(
|
||||
"security_juggernaut"
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
|
||||
announce_channels = list(RADIO_CHANNEL_SECURITY)
|
||||
|
||||
// Modsuit tech
|
||||
/datum/techweb_node/mod_equip/New()
|
||||
. = ..()
|
||||
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 511 B After Width: | Height: | Size: 849 B |
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 575 B After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 584 B After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 784 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 810 B |
@@ -1,6 +1,6 @@
|
||||
/datum/design/wt550_ammo
|
||||
name = "WT-550/WT-551 Magazine (4.6x30mm Regular) (Lethal)"
|
||||
desc = "A magazine for the WT-550/WT-551 Autorifle. Contains lethal regular ammo."
|
||||
name = "WT-550 Magazine (4.6x30mm Regular) (Lethal)"
|
||||
desc = "A magazine for the WT-550 Autorifle. Contains lethal regular ammo."
|
||||
id = "wt550_ammo_normal"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10)
|
||||
@@ -11,8 +11,8 @@
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/wt550_ammo_ap
|
||||
name = "WT-550/WT-551 Magazine (4.6x30mm Armor-Piercing) (Lethal)"
|
||||
desc = "A magazine for the WT-550/WT-551 Autorifle. Contains lethal armor-piercing ammo. Nanotrasen prefers you didn't use these on your pressurized space station."
|
||||
name = "WT-550 Magazine (4.6x30mm Armor-Piercing) (Lethal)"
|
||||
desc = "A magazine for the WT-550 Autorifle. Contains lethal armor-piercing ammo. Nanotrasen prefers you didn't use these on your pressurized space station."
|
||||
id = "wt550_ammo_ap"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 12, /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2)
|
||||
@@ -23,8 +23,8 @@
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/wt550_ammo_incendiary
|
||||
name = "WT-550/WT-551 Magazine (4.6x30mm Incendiary) (Extremely Lethal)"
|
||||
desc = "A magazine for the WT-550/WT-551 Autorifle. Contains very lethal incendiary ammo. Consult your local laws for warcrime status before use."
|
||||
name = "WT-550 Magazine (4.6x30mm Incendiary) (Extremely Lethal)"
|
||||
desc = "A magazine for the WT-550 Autorifle. Contains very lethal incendiary ammo. Consult your local laws for warcrime status before use."
|
||||
id = "wt550_ammo_incendiary"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10, /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 2, /datum/material/silver = SHEET_MATERIAL_AMOUNT , /datum/material/glass = SHEET_MATERIAL_AMOUNT)
|
||||
|
||||
@@ -553,6 +553,7 @@
|
||||
#include "code\__DEFINES\~~bubber_defines\mobs.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\mood.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\nanites.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\obj_flags.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\privacy_policy.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\robot_defines.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\role_preferences.dm"
|
||||
@@ -567,6 +568,7 @@
|
||||
#include "code\__DEFINES\~~bubber_defines\transport.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\vehicles.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\vomit.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\_globalvars\bitfields.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\_globalvars\lists\invalid_uplink_item.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\atmospherics\atmos_mob_interaction.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\research\research_categories.dm"
|
||||
@@ -9151,6 +9153,7 @@
|
||||
#include "modular_zubbers\code\datums\components\crafting\tailoring.dm"
|
||||
#include "modular_zubbers\code\datums\components\crafting\tools.dm"
|
||||
#include "modular_zubbers\code\datums\components\crafting\utility.dm"
|
||||
#include "modular_zubbers\code\datums\components\crafting\weapon_ammo.dm"
|
||||
#include "modular_zubbers\code\datums\components\crafting\crafting\melee_weapon.dm"
|
||||
#include "modular_zubbers\code\datums\components\fantasy\weight_overrides.dm"
|
||||
#include "modular_zubbers\code\datums\components\vore\_defines.dm"
|
||||
@@ -9336,6 +9339,7 @@
|
||||
#include "modular_zubbers\code\game\machinery\doors\firedoor.dm"
|
||||
#include "modular_zubbers\code\game\machinery\pipe\construction.dm"
|
||||
#include "modular_zubbers\code\game\machinery\telecomms\machines\relay.dm"
|
||||
#include "modular_zubbers\code\game\objects\objs.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\landmarks.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\overlays.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\shark_infested_waters.dm"
|
||||
@@ -9345,6 +9349,7 @@
|
||||
#include "modular_zubbers\code\game\objects\effects\decals\turfdecal\tilecoloring.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\effects_system\effect_sparks.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\spawners\random\armory.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\spawners\random\contraband.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\spawners\random\moonstation_random.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\spawners\random\ntc_bluey_safes.dm"
|
||||
#include "modular_zubbers\code\game\objects\effects\spawners\random\vending.dm"
|
||||
@@ -9368,6 +9373,7 @@
|
||||
#include "modular_zubbers\code\game\objects\items\food\meatslab.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\food\misc.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\food\sweets.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\granters\crafting\magnastaff.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\grenades\plastic.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\holotool\holotool.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\holotool\modes.dm"
|
||||
@@ -9387,6 +9393,7 @@
|
||||
#include "modular_zubbers\code\game\objects\items\tanks\tank_types.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\tools\engineering\crowbar.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\tools\engineering\weldingtool.dm"
|
||||
#include "modular_zubbers\code\game\objects\items\weaponry\melee\baton.dm"
|
||||
#include "modular_zubbers\code\game\objects\structures\aliens.dm"
|
||||
#include "modular_zubbers\code\game\objects\structures\chalkboard.dm"
|
||||
#include "modular_zubbers\code\game\objects\structures\engine_choice.dm"
|
||||
@@ -9593,7 +9600,6 @@
|
||||
#include "modular_zubbers\code\modules\cargo\bounties\assistant.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\bounties\blacksmith.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\bounties\prisoner.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\exports\weapons.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\markets\market_items\misc.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\packs\contraband.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\packs\general.dm"
|
||||
@@ -10060,6 +10066,7 @@
|
||||
#include "modular_zubbers\code\modules\modular_weapons\code\company_and_or_faction_based\szot_dynamica\pistol.dm"
|
||||
#include "modular_zubbers\code\modules\more_renaming\renaming_overrides.dm"
|
||||
#include "modular_zubbers\code\modules\movespeed\_movespeed_modifier.dm"
|
||||
#include "modular_zubbers\code\modules\movespeed\modifiers\mobs.dm"
|
||||
#include "modular_zubbers\code\modules\movespeed\modifiers\status_effects.dm"
|
||||
#include "modular_zubbers\code\modules\nanites\designs.dm"
|
||||
#include "modular_zubbers\code\modules\nanites\living.dm"
|
||||
@@ -10104,6 +10111,7 @@
|
||||
#include "modular_zubbers\code\modules\paperwork\stamps.dm"
|
||||
#include "modular_zubbers\code\modules\pen_medipens\pen_medipens.dm"
|
||||
#include "modular_zubbers\code\modules\power\cable.dm"
|
||||
#include "modular_zubbers\code\modules\power\cell.dm"
|
||||
#include "modular_zubbers\code\modules\power\powerator.dm"
|
||||
#include "modular_zubbers\code\modules\power\singularity\emitter.dm"
|
||||
#include "modular_zubbers\code\modules\power\supermatter\supermatter_delam.dm"
|
||||
@@ -10111,14 +10119,18 @@
|
||||
#include "modular_zubbers\code\modules\primitive_catgirls\code\spawner.dm"
|
||||
#include "modular_zubbers\code\modules\primitive_structures\code\wall_torch.dm"
|
||||
#include "modular_zubbers\code\modules\privacy_policy\privacy_policy.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\beams.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\ammunition\ballistic\arrows.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\ammunition\ballistic\pistol.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\ammunition\ballistic\rifle.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\ammunition\ballistic\smg.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\ammunition\energy\laser.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\boxes_magazines\ammo_boxes.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\boxes_magazines\external\pistol.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\boxes_magazines\external\shotgun.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\boxes_magazines\external\smg.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\boxes_magazines\internal\revolver.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\boxes_magazines\internal\rifle.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\boxes_magazines\internal\toy.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\guns\ballistic\automatic.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\guns\ballistic\bow.dm"
|
||||
@@ -10128,6 +10140,7 @@
|
||||
#include "modular_zubbers\code\modules\projectiles\guns\ballistic\rifle.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\guns\ballistic\shotgun.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\guns\ballistic\toy.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\guns\energy\beam_rifle.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\guns\energy\energyguns.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\guns\energy\pulse.dm"
|
||||
#include "modular_zubbers\code\modules\projectiles\projectile\bullets\lmg.dm"
|
||||
|
||||