diff --git a/code/modules/fabrication/fabricator_protolathe.dm b/code/modules/fabrication/fabricator_protolathe.dm index 711b4f71edf..34c1d245ff3 100644 --- a/code/modules/fabrication/fabricator_protolathe.dm +++ b/code/modules/fabrication/fabricator_protolathe.dm @@ -18,4 +18,4 @@ /decl/material/solid/metal/silver = SHEET_MATERIAL_AMOUNT * 100, /decl/material/solid/metal/uranium = SHEET_MATERIAL_AMOUNT * 100, /decl/material/solid/gemstone/diamond = SHEET_MATERIAL_AMOUNT * 100 - ) \ No newline at end of file + ) diff --git a/mods/persistence/_persistence.dme b/mods/persistence/_persistence.dme index 6157abf3414..c2ecc6da914 100644 --- a/mods/persistence/_persistence.dme +++ b/mods/persistence/_persistence.dme @@ -121,7 +121,9 @@ #include "modules\fabrication\_fabricator.dm" #include "modules\fabrication\fabricator_build.dm" #include "modules\fabrication\fabricator_intake.dm" +#include "modules\fabrication\fabricator_protolathe.dm" #include "modules\fabrication\designs\textile\space.dm" +#include "modules\fabrication\designs\protolathe\designs_weapons.dm" #include "modules\hydroponics\grown.dm" #include "modules\hydroponics\grown_indedible.dm" #include "modules\hydroponics\seed_machines.dm" @@ -213,6 +215,7 @@ #include "modules\projectiles\guns\projectile\tier1\revolver.dm" #include "modules\projectiles\guns\projectile\tier1\shotgun_db.dm" #include "modules\projectiles\guns\projectile\tier1\shotgun_pump.dm" +#include "modules\projectiles\overrides.dm" #include "modules\reagents\Chemistry-Holder.dm" #include "modules\reagents\chems\chems.dm" #include "modules\reagents\chems\recipes.dm" diff --git a/mods/persistence/modules/fabrication/designs/protolathe/designs_weapons.dm b/mods/persistence/modules/fabrication/designs/protolathe/designs_weapons.dm new file mode 100644 index 00000000000..8c40598dc18 --- /dev/null +++ b/mods/persistence/modules/fabrication/designs/protolathe/designs_weapons.dm @@ -0,0 +1,39 @@ +// handmade tier (while not actually handmade, they're generally very cheap and use simple materials) + +/datum/fabricator_recipe/protolathe/weapon/tier0/bolt_action + path = /obj/item/gun/projectile/bolt_action/handmade/empty + +/datum/fabricator_recipe/protolathe/weapon/tier0/revolver + path = /obj/item/gun/projectile/revolver/handmade/empty + +/datum/fabricator_recipe/protolathe/weapon/tier0/shotgun + path = /obj/item/gun/projectile/shotgun/handmade/empty + +/datum/fabricator_recipe/protolathe/weapon/tier0/laser_rifle + path = /obj/item/gun/energy/laser/rifle/handmade + +// simple tier (most use at least a little bit of plasteel, aluminum, or titanium, but not much) + +/datum/fabricator_recipe/protolathe/weapon/tier1/bolt_action + path = /obj/item/gun/projectile/bolt_action/simple/empty + +/datum/fabricator_recipe/protolathe/weapon/tier1/pistol + path = /obj/item/gun/projectile/pistol/simple/empty + +/datum/fabricator_recipe/protolathe/weapon/tier1/pistol_golden + path = /obj/item/gun/projectile/pistol/simple/golden/empty + +/datum/fabricator_recipe/protolathe/weapon/tier1/revolver + path = /obj/item/gun/projectile/revolver/simple/empty + +/datum/fabricator_recipe/protolathe/weapon/tier1/shotgun_double + path = /obj/item/gun/projectile/shotgun/simple/empty + +/datum/fabricator_recipe/protolathe/weapon/tier1/shotgun_pump + path = /obj/item/gun/projectile/shotgun/pump/simple/empty + +/datum/fabricator_recipe/protolathe/weapon/tier1/laser_rifle + path = /obj/item/gun/energy/laser/rifle/simple + +/datum/fabricator_recipe/protolathe/weapon/tier1/laser_pistol + path = /obj/item/gun/energy/laser/pistol/simple diff --git a/mods/persistence/modules/fabrication/fabricator_protolathe.dm b/mods/persistence/modules/fabrication/fabricator_protolathe.dm new file mode 100644 index 00000000000..84d3c03da1e --- /dev/null +++ b/mods/persistence/modules/fabrication/fabricator_protolathe.dm @@ -0,0 +1,16 @@ +/obj/machinery/fabricator/protolathe + base_storage_capacity = list( + /decl/material/solid/metal/steel = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/metal/aluminium = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/metal/titanium = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/plastic = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/glass = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/fiberglass = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/metal/gold = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/metal/silver = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/metal/uranium = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/gemstone/diamond = SHEET_MATERIAL_AMOUNT * 100, + /decl/material/solid/wood = SHEET_MATERIAL_AMOUNT * 100 + ) + +// override to allow protolathes to accept wood + titanium - used for gunsmithing diff --git a/mods/persistence/modules/projectiles/guns/energy/tier0/lasrifle.dm b/mods/persistence/modules/projectiles/guns/energy/tier0/lasrifle.dm index 4283c223ffd..d8eff9318be 100644 --- a/mods/persistence/modules/projectiles/guns/energy/tier0/lasrifle.dm +++ b/mods/persistence/modules/projectiles/guns/energy/tier0/lasrifle.dm @@ -10,3 +10,8 @@ fire_delay = 15 origin_tech = "{'combat':2,'magnets':1,'engineering':1,'materials':2}" projectile_type = /obj/item/projectile/beam/smalllaser + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/glass = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/silver = MATTER_AMOUNT_TRACE + ) diff --git a/mods/persistence/modules/projectiles/guns/energy/tier1/laspistol.dm b/mods/persistence/modules/projectiles/guns/energy/tier1/laspistol.dm index 3a095b14a59..f824c4962f6 100644 --- a/mods/persistence/modules/projectiles/guns/energy/tier1/laspistol.dm +++ b/mods/persistence/modules/projectiles/guns/energy/tier1/laspistol.dm @@ -9,4 +9,10 @@ fire_delay = 5 force = 3 // made of light-ish plastics rather than wood and metal origin_tech = "{'combat':3,'magnets':2,'engineering':2,'materials':3}" - projectile_type = /obj/item/projectile/beam/smalllaser \ No newline at end of file + projectile_type = /obj/item/projectile/beam/smalllaser + material = /decl/material/solid/metal/aluminium + matter = list( + /decl/material/solid/glass = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/silver = MATTER_AMOUNT_TRACE, + /decl/material/solid/metal/steel = MATTER_AMOUNT_TRACE + ) diff --git a/mods/persistence/modules/projectiles/guns/energy/tier1/lasrifle.dm b/mods/persistence/modules/projectiles/guns/energy/tier1/lasrifle.dm index 1a3c883d9c1..8f17ee2c69f 100644 --- a/mods/persistence/modules/projectiles/guns/energy/tier1/lasrifle.dm +++ b/mods/persistence/modules/projectiles/guns/energy/tier1/lasrifle.dm @@ -3,10 +3,16 @@ desc = "The Marine model is one of the more ubiquitous energy weapon designs. While its capacity leaves something to be desired, it is incredibly easy to mass-produce and has great beam strength for its low manufacturing cost. It is often seen in the hands of corporate space marines, hence the name." icon = 'mods/persistence/icons/obj/guns/tier1/lasrifle.dmi' slot_flags = SLOT_BACK - w_class = ITEM_SIZE_LARGE + w_class = ITEM_SIZE_HUGE one_hand_penalty = 3 max_shots = 5 fire_delay = 12 force = 10 origin_tech = "{'combat':3,'magnets':2,'engineering':2,'materials':3}" - projectile_type = /obj/item/projectile/beam/midlaser \ No newline at end of file + projectile_type = /obj/item/projectile/beam/midlaser + material = /decl/material/solid/metal/aluminium + matter = list( + /decl/material/solid/glass = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/silver = MATTER_AMOUNT_TRACE, + /decl/material/solid/metal/steel = MATTER_AMOUNT_REINFORCEMENT + ) diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier0/boltaction.dm b/mods/persistence/modules/projectiles/guns/projectile/tier0/boltaction.dm index a54db04459e..7b8789f95e5 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier0/boltaction.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier0/boltaction.dm @@ -9,10 +9,15 @@ handle_casings = HOLD_CASINGS load_method = SINGLE_CASING max_shells = 1 + w_class = ITEM_SIZE_HUGE ammo_type = /obj/item/ammo_casing/rifle one_hand_penalty = 20 fire_delay = 20 accuracy = -1 + material = /decl/material/solid/wood + matter = list( + /decl/material/solid/metal/steel = MATTER_AMOUNT_REINFORCEMENT + ) /obj/item/gun/projectile/bolt_action/handmade/empty - starts_loaded = FALSE \ No newline at end of file + starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier0/revolver.dm b/mods/persistence/modules/projectiles/guns/projectile/tier0/revolver.dm index 6095e40e669..d126c062ee5 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier0/revolver.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier0/revolver.dm @@ -6,10 +6,15 @@ caliber = CALIBER_PISTOL ammo_type = /obj/item/ammo_casing/pistol max_shells = 3 + w_class = ITEM_SIZE_NORMAL fire_delay = 12 accuracy = -1 one_hand_penalty = 2 force = 5 + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/wood = MATTER_AMOUNT_REINFORCEMENT + ) /obj/item/gun/projectile/revolver/handmade/empty starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier0/shotgun.dm b/mods/persistence/modules/projectiles/guns/projectile/tier0/shotgun.dm index 1310d792a58..fa6af11180f 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier0/shotgun.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier0/shotgun.dm @@ -14,6 +14,10 @@ screen_shake = 2 accuracy = -1 one_hand_penalty = 10 + material = /decl/material/solid/wood + matter = list( + /decl/material/solid/metal/steel = MATTER_AMOUNT_REINFORCEMENT + ) /obj/item/gun/projectile/shotgun/handmade/empty starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier1/boltaction.dm b/mods/persistence/modules/projectiles/guns/projectile/tier1/boltaction.dm index cbff7bedd63..73e1e102797 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier1/boltaction.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier1/boltaction.dm @@ -9,10 +9,16 @@ handle_casings = HOLD_CASINGS load_method = SINGLE_CASING max_shells = 5 + w_class = ITEM_SIZE_HUGE ammo_type = /obj/item/ammo_casing/rifle one_hand_penalty = 10 fire_delay = 12 accuracy = 0 + material = /decl/material/solid/wood + matter = list( + /decl/material/solid/metal/steel = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/aluminium = MATTER_AMOUNT_TRACE + ) /obj/item/gun/projectile/bolt_action/simple/empty - starts_loaded = FALSE \ No newline at end of file + starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier1/pistol.dm b/mods/persistence/modules/projectiles/guns/projectile/tier1/pistol.dm index 6f0059ef1b8..e085e70d289 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier1/pistol.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier1/pistol.dm @@ -8,6 +8,12 @@ one_hand_penalty = 0 origin_tech = "{'combat':3,'engineering':2,'materials':2}" ammo_indicator = FALSE + w_class = ITEM_SIZE_NORMAL + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/wood = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/aluminium = MATTER_AMOUNT_TRACE + ) /obj/item/gun/projectile/pistol/simple/empty - starts_loaded = FALSE \ No newline at end of file + starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier1/pistol_gold.dm b/mods/persistence/modules/projectiles/guns/projectile/tier1/pistol_gold.dm index e7f7f8527cf..4859aa6afff 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier1/pistol_gold.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier1/pistol_gold.dm @@ -2,7 +2,13 @@ name = "ZSS HG 'Midas'" desc = "This particular 'Colt' handgun has been made using an alloy of gold and an unknown material. It's been handmade by an expert artisan who has been lost to time. This gun isn't so much a weapon as it is a piece of art. This one in particular is chambered in 10mm rounds and is functionally identical to a normal 'Colt' handgun." icon = 'mods/persistence/icons/obj/guns/tier1/pistol_gold.dmi' - origin_tech = "{'combat':3,'engineering':2,'materials':10}" // very high material tech because it has rare components inside + origin_tech = "{'combat':3,'engineering':2,'materials':5}" // very high material tech because it has rare components inside + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/wood = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/aluminium = MATTER_AMOUNT_TRACE, + /decl/material/solid/metal/gold = MATTER_AMOUNT_REINFORCEMENT + ) /obj/item/gun/projectile/pistol/simple/golden/empty - starts_loaded = FALSE \ No newline at end of file + starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier1/revolver.dm b/mods/persistence/modules/projectiles/guns/projectile/tier1/revolver.dm index 7d261d8c42f..6f4e95ed97c 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier1/revolver.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier1/revolver.dm @@ -6,10 +6,16 @@ caliber = CALIBER_PISTOL ammo_type = /obj/item/ammo_casing/pistol max_shells = 5 + w_class = ITEM_SIZE_NORMAL fire_delay = 10 accuracy = 0 one_hand_penalty = 0 force = 5 + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/wood = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/aluminium = MATTER_AMOUNT_TRACE + ) /obj/item/gun/projectile/revolver/simple/empty - starts_loaded = FALSE \ No newline at end of file + starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier1/shotgun_db.dm b/mods/persistence/modules/projectiles/guns/projectile/tier1/shotgun_db.dm index d486ad8cb3c..c5fbfc64293 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier1/shotgun_db.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier1/shotgun_db.dm @@ -14,6 +14,11 @@ screen_shake = 1 accuracy = 0 one_hand_penalty = 10 // doesnt improve over handmade shotgun penalty because you really should not be one-handing a shotgun + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/wood = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/aluminium = MATTER_AMOUNT_TRACE + ) burst_delay = 0 firemodes = list( @@ -22,4 +27,4 @@ ) /obj/item/gun/projectile/shotgun/simple/empty - starts_loaded = FALSE \ No newline at end of file + starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/guns/projectile/tier1/shotgun_pump.dm b/mods/persistence/modules/projectiles/guns/projectile/tier1/shotgun_pump.dm index a71ae112ee1..dc62b6b0d1a 100644 --- a/mods/persistence/modules/projectiles/guns/projectile/tier1/shotgun_pump.dm +++ b/mods/persistence/modules/projectiles/guns/projectile/tier1/shotgun_pump.dm @@ -13,6 +13,11 @@ ammo_type = /obj/item/ammo_casing/shotgun/beanbag handle_casings = HOLD_CASINGS one_hand_penalty = 10 + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/wood = MATTER_AMOUNT_TRACE, + /decl/material/solid/metal/titanium = MATTER_AMOUNT_TRACE + ) /obj/item/gun/projectile/shotgun/pump/simple/empty starts_loaded = FALSE diff --git a/mods/persistence/modules/projectiles/overrides.dm b/mods/persistence/modules/projectiles/overrides.dm new file mode 100644 index 00000000000..ff08dff48c4 --- /dev/null +++ b/mods/persistence/modules/projectiles/overrides.dm @@ -0,0 +1,40 @@ +// bogus material tech for items in order to prevent them from being researchable + +/obj/item/gun/launcher/syringe/rapid + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/energy/temperature + origin_tech = "{'wormholes':1337}" + +/obj/item/grenade/anti_photon + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/energy/confuseray + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/energy/gun/nuclear + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/energy/lasercannon + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/energy/xray + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/launcher/grenade + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/magnetic/railgun/flechette + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/energy/toxgun + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/energy/decloner + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/projectile/automatic/smg + origin_tech = "{'wormholes':1337}" + +/obj/item/gun/projectile/automatic/assault_rifle + origin_tech = "{'wormholes':1337}"