diff --git a/code/datums/world_factions/mountain.dm b/code/datums/world_factions/mountain.dm index 88e76f1a13c..6e4e4074ca3 100644 --- a/code/datums/world_factions/mountain.dm +++ b/code/datums/world_factions/mountain.dm @@ -193,6 +193,7 @@ /datum/supply_pack/luxury/talkstone, /datum/supply_pack/luxury/gold_plaque_belt, /datum/supply_pack/weapons/ranged/puffer, + /datum/supply_pack/weapons/ranged/blunderbuss, /datum/supply_pack/weapons/ammo/bullets, /datum/supply_pack/weapons/ranged/musket ) diff --git a/code/game/objects/items/coins.dm b/code/game/objects/items/coins.dm index b5080a02b4c..a4a3833fdb4 100644 --- a/code/game/objects/items/coins.dm +++ b/code/game/objects/items/coins.dm @@ -27,6 +27,7 @@ var/quantity = 1 var/plural_name var/rigged_outcome = 0 //1 for heads, 2 for tails + var/pellet_type /obj/item/coin/get_carry_weight(atom/carrier) . = item_weight * quantity @@ -122,6 +123,9 @@ . += span_info("[quantity_to_words(quantity)] [denomination] ([get_real_price()] mammon)") return + if(quantity >= 6 && GET_MOB_SKILL_VALUE(user, /datum/attribute/skill/combat/firearms) >= SKILL_LEVEL_NOVICE && pellet_type) + . += span_info("It looks like you could rig this up to be fired as ammunition.") + if(HAS_TRAIT(user, TRAIT_COIN_ILLITERATE)) if(quantity <= 1) . += span_info("A coin.") @@ -309,6 +313,25 @@ INVOKE_ASYNC(src, PROC_REF(rig_coin), user) return TRUE + //turn coins into pellets! fucking fuck whoever snowflaked coins quantity... + if(pellet_type && quantity >= 6 && GET_MOB_SKILL_VALUE(user, /datum/attribute/skill/combat/firearms) >= 10) + //crafting timer + to_chat(user, span_notice("You start rigging up [src] to be fired as ammunition...")) + playsound(src, 'sound/foley/lockrattle.ogg', 100, TRUE, -2) + if(!do_after(user, 3 SECONDS, src)) + to_chat(user, span_warning("You stop rigging up [src].")) + return + + quantity -= 6 + if(!quantity) + qdel(src) + return + + var/obj/item/ammo_casing/caseless/pelletshot/new_pellet = new pellet_type(src, src) + user.put_in_hands(new_pellet) + playsound(src, 'sound/foley/coins1.ogg', 100, TRUE, -2) + + /obj/item/coin/attack_hand_secondary(mob/user, list/modifiers) . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) @@ -419,6 +442,7 @@ base_type = CTYPE_GOLD plural_name = "zenarii" item_weight = 9 GRAMS + pellet_type = /obj/item/ammo_casing/caseless/pelletshot/zenar // SILVER @@ -430,6 +454,7 @@ base_type = CTYPE_SILV plural_name = "ziliquae" item_weight = 11 GRAMS + pellet_type = /obj/item/ammo_casing/caseless/pelletshot/zil // COPPER @@ -440,6 +465,7 @@ sellprice = 1 base_type = CTYPE_COPP plural_name = "zennies" + pellet_type = /obj/item/ammo_casing/caseless/pelletshot/zenny /obj/item/coin/copper/pile/Initialize(mapload, coin_amount) . = ..() diff --git a/code/modules/cargo/supply_packs/weapons.dm b/code/modules/cargo/supply_packs/weapons.dm index ed07fd8e5dd..20377fc0afe 100644 --- a/code/modules/cargo/supply_packs/weapons.dm +++ b/code/modules/cargo/supply_packs/weapons.dm @@ -283,6 +283,11 @@ cost = 500 contains = /obj/item/gun/ballistic/powder/wheellock/puffer +/datum/supply_pack/weapons/ranged/blunderbuss + name = "Smuggled Blunderbuss" + cost = 650 + contains = /obj/item/gun/ballistic/powder/wheellock/blunderbuss + /datum/supply_pack/weapons/ranged/musket name = "Smuggled Musket" cost = 750 //needs balancing diff --git a/code/modules/clothing/belt/misc.dm b/code/modules/clothing/belt/misc.dm index fdeca51a72c..1187bdddc52 100644 --- a/code/modules/clothing/belt/misc.dm +++ b/code/modules/clothing/belt/misc.dm @@ -251,6 +251,14 @@ /obj/item/ammo_casing/caseless/bullet, ) +/obj/item/storage/belt/pouch/pellets + populate_contents = list( + /obj/item/ammo_casing/caseless/pelletshot, + /obj/item/ammo_casing/caseless/pelletshot, + /obj/item/ammo_casing/caseless/pelletshot, + /obj/item/ammo_casing/caseless/pelletshot, + ) + /obj/item/storage/belt/pouch/cloth name = "cloth pouch" desc = "Usually used for holding small amount of coins." diff --git a/code/modules/clothing/quivers/misc.dm b/code/modules/clothing/quivers/misc.dm index c007bf27291..a72aa2314a1 100644 --- a/code/modules/clothing/quivers/misc.dm +++ b/code/modules/clothing/quivers/misc.dm @@ -48,7 +48,7 @@ item_state = "dartpouch" slot_flags = ITEM_SLOT_HIP|ITEM_SLOT_NECK max_storage = 10 - ammo_type = list(/obj/item/ammo_casing/caseless/bullet) + ammo_type = list(/obj/item/ammo_casing/caseless/bullet, /obj/item/ammo_casing/caseless/pelletshot) /obj/item/ammo_holder/bullet/bullets fill_type = /obj/item/ammo_casing/caseless/bullet diff --git a/code/modules/crafting/artificer/misc.dm b/code/modules/crafting/artificer/misc.dm index 012d8e20a60..bb5088bb84d 100644 --- a/code/modules/crafting/artificer/misc.dm +++ b/code/modules/crafting/artificer/misc.dm @@ -307,6 +307,14 @@ craftdiff = 2 created_amount = 4 +/datum/artificer_recipe/ammo/lead_pellet + name = "Pellet shots 4x" + hammers_per_item = 4 + created_item = /obj/item/ammo_casing/caseless/pelletshot + required_item = /obj/item/ingot/tin + craftdiff = 2 + created_amount = 4 + /datum/artificer_recipe/ammo/bolts name = "Crossbow Bolts 5x (+1 Iron)" required_item = /obj/item/natural/wood/plank diff --git a/code/modules/crafting/quality_of_crafting/pellets.dm b/code/modules/crafting/quality_of_crafting/pellets.dm new file mode 100644 index 00000000000..66e668d6385 --- /dev/null +++ b/code/modules/crafting/quality_of_crafting/pellets.dm @@ -0,0 +1,28 @@ +/datum/repeatable_crafting_recipe/ammo + abstract_type = /datum/repeatable_crafting_recipe/ammo + category = "Ammunition" + subtypes_allowed = TRUE + craftdiff = 0 + crafting_message = "starts shaping ammunition" + skillcraft = /datum/attribute/skill/combat/firearms + minimum_skill_level = 1 + +/datum/repeatable_crafting_recipe/ammo/shardshot + name = "shard pellet" + requirements = list( + /obj/item/natural/glass/shard = 2, + ) + attacked_atom = /obj/item/natural/glass/shard + starting_atom = /obj/item/natural/glass/shard + output = /obj/item/ammo_casing/caseless/pelletshot/glass + craftdiff = 1 + +/datum/repeatable_crafting_recipe/ammo/saltshot + name = "salt pellet" + requirements = list( + /obj/item/reagent_containers/powder/salt = 2, + ) + attacked_atom = /obj/item/reagent_containers/powder/salt + starting_atom = /obj/item/reagent_containers/powder/salt + output = /obj/item/ammo_casing/caseless/pelletshot/salt + craftdiff = 1 diff --git a/code/modules/inquisitor_supplies/general.dm b/code/modules/inquisitor_supplies/general.dm index ff4783add7a..25f59a88d83 100644 --- a/code/modules/inquisitor_supplies/general.dm +++ b/code/modules/inquisitor_supplies/general.dm @@ -257,6 +257,16 @@ new /obj/item/storage/belt/pouch/bullets(src) new /obj/item/reagent_containers/glass/bottle/aflask(src) +/datum/inqports/equipment/blunderbuss + name = "1 Blunderbuss, 4 lead pellets and powder flask" + item_type = /obj/structure/closet/crate/chest/inqcrate/equipment/blunderbuss + marquescost = 16 + maximum = 1 + +/obj/structure/closet/crate/chest/inqcrate/equipment/blunderbuss/populate_contents() + new /obj/item/gun/ballistic/powder/wheellock/blunderbuss(src) + new /obj/item/storage/belt/pouch/pellets(src) + new /obj/item/reagent_containers/glass/bottle/aflask(src) /* //Added this and then realized it wasn't actually in the bounty and I'm just stupid. It's staying here incase somebody wants it. diff --git a/code/modules/jobs/job_types/other/merc_classes/grenzelhoft.dm b/code/modules/jobs/job_types/other/merc_classes/grenzelhoft.dm index 51705cd1fb0..ea0282b58c1 100644 --- a/code/modules/jobs/job_types/other/merc_classes/grenzelhoft.dm +++ b/code/modules/jobs/job_types/other/merc_classes/grenzelhoft.dm @@ -80,7 +80,7 @@ /datum/job/advclass/mercenary/grenzelhoft/on_roundstart(mob/living/carbon/human/spawned, client/player_client) . = ..() - var/static/list/weapons = list("Zweihander", "Musket", "Halberd") + var/static/list/weapons = list("Zweihander", "Musket", "Blunderbuss", "Halberd") var/weapon_choice = tgui_input_list(player_client,"CHOOSE YOUR WEAPON.", "GO EARN SOME COIN.", weapons) switch(weapon_choice) if("Zweihander") @@ -95,6 +95,12 @@ spawned.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/musketeer, ITEM_SLOT_BACK_L, TRUE) spawned.equip_to_slot_or_del(new /obj/item/weapon/sword/sabre/dec, ITEM_SLOT_BELT_L, TRUE) spawned.attributes?.add_sheet(/datum/attribute_holder/sheet/job/grenzelhoft/musket) + if("Blunderbuss") + spawned.equip_to_slot_or_del(new /obj/item/gun/ballistic/powder/wheellock/blunderbuss, ITEM_SLOT_BACK_R, TRUE) + spawned.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/musketeer, ITEM_SLOT_BACK_L, TRUE) + spawned.equip_to_slot_or_del(new /obj/item/storage/belt/pouch/pellets, ITEM_SLOT_BELT_R, TRUE) + spawned.equip_to_slot_or_del(new /obj/item/weapon/sword/sabre/dec, ITEM_SLOT_BELT_L, TRUE) + spawned.attributes?.add_sheet(/datum/attribute_holder/sheet/job/grenzelhoft/musket) if("Halberd") spawned.equip_to_slot_or_del(new /obj/item/weapon/polearm/halberd, ITEM_SLOT_BACK_R, TRUE) spawned.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel, ITEM_SLOT_BACK_L, TRUE) diff --git a/code/modules/projectiles/ammunition/caseless/bullet.dm b/code/modules/projectiles/ammunition/caseless/bullet.dm index c85e6f1928f..7dc256b3294 100644 --- a/code/modules/projectiles/ammunition/caseless/bullet.dm +++ b/code/modules/projectiles/ammunition/caseless/bullet.dm @@ -10,6 +10,54 @@ force = DAMAGE_KNIFE - 7 item_weight = 75 GRAMS +/obj/item/ammo_casing/caseless/pelletshot + name = "pelletshot" + desc = "A handful of pellet shots, made to punch many holes into a packed bunch of enemies." + projectile_type = /obj/projectile/bullet/pellet + caliber = "blundershot" //shotgun variant of lead balls essentially + icon = 'icons/roguetown/weapons/ammo.dmi' + icon_state = "pellets" + dropshrink = 0.5 + possible_item_intents = list(INTENT_USE) + pellets = 6 + variance = 10 + randomspread = TRUE + + force = DAMAGE_KNIFE - 7 + item_weight = 75 GRAMS + +/obj/item/ammo_casing/caseless/pelletshot/zenar + name = "zenarshot" + desc = "A handful of pellet shots out of zenars, made to punch many holes into a packed bunch of enemies." + icon_state = "pellets_zenar" + projectile_type = /obj/projectile/bullet/pellet/zenar + +/obj/item/ammo_casing/caseless/pelletshot/zil + name = "zilshot" + desc = "A handful of pellet shots out of zils, made to punch many holes into a packed bunch of enemies." + icon_state = "pellets_zenarii" + projectile_type = /obj/projectile/bullet/pellet/zil + +/obj/item/ammo_casing/caseless/pelletshot/zenny + name = "zennyshot" + desc = "A handful of pellet shots out of zennies, made to punch many holes into a packed bunch of enemies." + icon_state = "pellets_zenny" + projectile_type = /obj/projectile/bullet/pellet/zenny + +/obj/item/ammo_casing/caseless/pelletshot/glass + name = "glasshot" + desc = "A handful of pellet shots out of glass shards, made to bleed a packed bunch of enemies." + icon_state = "pellets_shard" + projectile_type = /obj/projectile/bullet/pellet/glass + pellets = 9 + +/obj/item/ammo_casing/caseless/pelletshot/salt + name = "saltshot" + desc = "A handful of pellet shots out of salt, made to incapacitate a packed bunch of enemies." + icon_state = "pellets_salt" + projectile_type = /obj/projectile/bullet/pellet/salt + pellets = 9 + /obj/item/ammo_casing/caseless/cball name = "large cannonball" desc = "A round lead ball. Complex and still spherical." diff --git a/code/modules/projectiles/boxes_magazines/internal/single.dm b/code/modules/projectiles/boxes_magazines/internal/single.dm index 9b974444069..59ac7eecc6c 100644 --- a/code/modules/projectiles/boxes_magazines/internal/single.dm +++ b/code/modules/projectiles/boxes_magazines/internal/single.dm @@ -20,6 +20,16 @@ ammo_type = /obj/item/ammo_casing/caseless/bullet caliber = "musketball" +//I mean, blunderbusses are mechanically just shotguns if you squint enough +/obj/item/ammo_box/magazine/internal/shotgun + name = "barrel" + max_ammo = 1 + ammo_type = /obj/item/ammo_casing/caseless/pelletshot + caliber = "blundershot" + +/obj/item/ammo_box/magazine/internal/shotgun/empty + start_empty = TRUE + /obj/item/ammo_box/magazine/internal/barrel/empty start_empty = TRUE diff --git a/code/modules/projectiles/guns/ballistic/_powder.dm b/code/modules/projectiles/guns/ballistic/_powder.dm index c692f4b116b..15813dcba0a 100644 --- a/code/modules/projectiles/guns/ballistic/_powder.dm +++ b/code/modules/projectiles/guns/ballistic/_powder.dm @@ -67,10 +67,6 @@ if(exited == ramrod) ramrod = null -/obj/item/gun/ballistic/powder/clear_chambered(datum/source) - . = ..() - bullet_rammed = FALSE - /obj/item/gun/ballistic/powder/examine(mob/user) . = ..() @@ -281,6 +277,8 @@ if(M_turf) M.playsound_local(M_turf, fire_sound, 100, 1, get_rand_frequency()) + bullet_rammed = FALSE + /obj/item/gun/ballistic/powder/postfire_empty_checks(last_shot_succeeded) . = ..() if(last_shot_succeeded) diff --git a/code/modules/projectiles/guns/ballistic/powder/blunderbluss.dm b/code/modules/projectiles/guns/ballistic/powder/blunderbluss.dm new file mode 100644 index 00000000000..79ff5e056f8 --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/powder/blunderbluss.dm @@ -0,0 +1,165 @@ +/obj/item/gun/ballistic/powder/wheellock/blunderbuss + name = "blunderbuss" + desc = "An older design of long-barrelled firearm that has been made obsolete by the more modern musket. Due to it's poor machining quality it's unable to fire lead balls without maintaining it shape, \ + as such it fires pellets instead. It has a wide spread and is devastating at close range, but is inaccurate and weak at longer ranges. It still maintains a small niche to this day." + icon = 'icons/roguetown/weapons/64/guns.dmi' + icon_state = "blunderbuss" + base_icon_state = "blunderbuss" + experimental_inhand = TRUE + experimental_onback = TRUE + bigboy = TRUE + SET_BASE_PIXEL(-16, -16) + inhand_x_dimension = 64 + inhand_y_dimension = 64 + slot_flags = ITEM_SLOT_BACK + w_class = WEIGHT_CLASS_BULKY + max_integrity = 100 + sellprice = 400 + item_weight = 4.5 KILOGRAMS + + possible_item_intents = list(/datum/intent/shoot/musket, /datum/intent/shoot/musket/arc, POLEARM_BASH) //TODO: CHECK THIS + force = 10 + can_parry = TRUE + wdefense = AVERAGE_PARRY + wlength = WLENGTH_LONG + + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shotgun + spawn_magazine_type = /obj/item/ammo_box/magazine/internal/shotgun/empty + weapon_weight = WEAPON_HEAVY + recoil = 10 + randomspread = 2 + spread = 2 + projectile_damage_multiplier = 3.5 + + ramrod_type = /obj/item/ramrod/blunderbuss + powder_required = 10 + /// The bayonet if affixed + var/obj/item/weapon/knife/dagger/bayonet/bayonet = null + +/obj/item/gun/ballistic/powder/wheellock/blunderbuss/Initialize(mapload) + bayonet = new(src) + return ..() + +/obj/item/gun/ballistic/powder/wheellock/blunderbuss/Destroy(force) + if(!QDELETED(bayonet)) + QDEL_NULL(bayonet) + return ..() + +/obj/item/gun/ballistic/powder/wheellock/blunderbuss/Exited(atom/movable/exited, atom/newLoc) + . = ..() + if(exited == bayonet) + bayonet = null + +/obj/item/gun/ballistic/powder/wheellock/blunderbuss/update_icon_state() + . = ..() + icon_state = "[base_icon_state][cocked ? "_cocked" : "_uncocked"][ramrod ? "_ramrod" : ""][bayonet ? "_bayonet" : ""]" // God weeps + +/obj/item/gun/ballistic/powder/wheellock/blunderbuss/attackby(obj/item/attacking_item, mob/living/user, list/modifiers) + . = ..() + if(!bayonet && istype(attacking_item, /obj/item/weapon/knife/dagger/bayonet)) + balloon_alert(user, "attached!") + user.transferItemToLoc(attacking_item, src) + bayonet = attacking_item + update_appearance(UPDATE_ICON_STATE) + +/obj/item/gun/ballistic/powder/wheellock/blunderbuss/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + + if(!bayonet) + return + + balloon_alert(user, "removed!") + user.put_in_hands(bayonet) + update_appearance(UPDATE_ICON_STATE) + + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/item/gun/ballistic/powder/wheellock/blunderbuss/pre_attack(atom/target, mob/living/user, list/modifiers) + . = ..() + if(bayonet && user.cmode) // Bayonet acts as a proxy attacker if present + INVOKE_ASYNC(bayonet, TYPE_PROC_REF(/obj/item, melee_attack_chain), user, target, modifiers - RIGHT_CLICK) + return TRUE + +/obj/item/ramrod/blunderbuss + name = "blunderbuss ramrod" + icon_state = "ramrod_musket" + item_weight = 300 GRAMS + +/obj/item/gun/ballistic/powder/wheellock/blunderbuss/getonmobprop(tag) + . = ..() + if(tag) + switch(tag) + if("gen") + return list( + "shrink" = 0.5, + "sx" = -2, + "sy" = 0, + "nx" = 11, + "ny" = 0, + "wx" = -4, + "wy" = -4, + "ex" = 2, + "ey" = 0, + "nturn" = 0, + "sturn" = 0, + "wturn" = 0, + "eturn" = 0, + "nflip" = 0, + "sflip" = 0, + "wflip" = 5, + "eflip" = 0, + "northabove" = 0, + "southabove" = 1, + "eastabove" = 1, + "westabove" = 0 + ) + if("wielded") + return list( + "shrink" = 0.5, + "sx" = 0, + "sy" = -3, + "nx" = 0, + "ny" = -2, + "wx" = -4, + "wy" = -3, + "ex" = 4, + "ey" = -3, + "nturn" = -45, + "sturn" = 45, + "wturn" = 45, + "eturn" = 45, + "nflip" = 4, + "sflip" = 0, + "wflip" = 5, + "eflip" = 0, + "northabove" = 0, + "southabove" = 1, + "eastabove" = 1, + "westabove" = 0 + ) + if("onback") + return list( + "shrink" = 0.5, + "sx" = 1, + "sy" = -1, + "nx" = 1, + "ny" = -1, + "wx" = -1, + "wy" = 0, + "ex" = 1, + "ey" = -1, + "nturn" = 0, + "sturn" = 0, + "wturn" = 0, + "eturn" = 0, + "nflip" = 5, + "sflip" = 5, + "wflip" = 5, + "eflip" = 5, + "northabove" = 1, + "southabove" = 0, + "eastabove" = 0, + "westabove" = 0 + ) diff --git a/code/modules/projectiles/guns/ballistic/powder/musket.dm b/code/modules/projectiles/guns/ballistic/powder/musket.dm index 488797e766d..3daf75b5f9c 100644 --- a/code/modules/projectiles/guns/ballistic/powder/musket.dm +++ b/code/modules/projectiles/guns/ballistic/powder/musket.dm @@ -49,7 +49,7 @@ /obj/item/gun/ballistic/powder/musket/update_icon_state() . = ..() - icon_state = "[base_icon_state][cocked ? "_cocked" : ""][ramrod ? "_ramrod" : ""][bayonet ? "_bayonet" : ""]" // God weeps + icon_state = "[base_icon_state][cocked ? "_cocked" : "_uncocked"][ramrod ? "_ramrod" : ""][bayonet ? "_bayonet" : ""]" // God weeps /obj/item/gun/ballistic/powder/musket/attackby(obj/item/attacking_item, mob/living/user, list/modifiers) . = ..() diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 2c4adac151c..028b241a31e 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -8,3 +8,41 @@ flag = "piercing" hitsound_wall = "ricochet" impact_effect_type = /obj/effect/temp_visual/impact_effect + +/obj/projectile/bullet/pellet + name = "pellet" + damage = 15 // musket damage + a tiny bit more if you manage to hit point-blank + armor_penetration = 85 // smaller --> lower penetrating power + speed = 0.6 //faster cuz it's smaller(?) + range = 10 + woundclass = BCLASS_SHOT + +/obj/projectile/bullet/pellet/zenar + name = "zenar pellet" + armor_penetration = 100 + speed = 0.8 + +/obj/projectile/bullet/pellet/zil + name = "zenar pellet" + armor_penetration = 95 + speed = 0.75 + +/obj/projectile/bullet/pellet/zenny + name = "zenny pellet" + armor_penetration = 90 + speed = 0.7 + +/obj/projectile/bullet/pellet/glass + name = "shard pellet" + damage = 12 + armor_penetration = 45 + speed = 1 + embedchance = 100 + +/obj/projectile/bullet/pellet/salt + name = "salt pellet" + speed = 1 + damage = 20 + jitter = 5 + eyeblur = 3 + damage_type = STAMINA diff --git a/icons/roguetown/weapons/64/guns.dmi b/icons/roguetown/weapons/64/guns.dmi index 1c3ca3fe647..61abf9fcca7 100644 Binary files a/icons/roguetown/weapons/64/guns.dmi and b/icons/roguetown/weapons/64/guns.dmi differ diff --git a/icons/roguetown/weapons/ammo.dmi b/icons/roguetown/weapons/ammo.dmi index 433823c3a7c..34d550b6699 100644 Binary files a/icons/roguetown/weapons/ammo.dmi and b/icons/roguetown/weapons/ammo.dmi differ diff --git a/vanderlin.dme b/vanderlin.dme index fc7844fc371..fc9c7005e34 100644 --- a/vanderlin.dme +++ b/vanderlin.dme @@ -2784,6 +2784,7 @@ #include "code\modules\crafting\quality_of_crafting\living_start.dm" #include "code\modules\crafting\quality_of_crafting\narcotics.dm" #include "code\modules\crafting\quality_of_crafting\natural_items.dm" +#include "code\modules\crafting\quality_of_crafting\pellets.dm" #include "code\modules\crafting\quality_of_crafting\projectile.dm" #include "code\modules\crafting\quality_of_crafting\reading.dm" #include "code\modules\crafting\quality_of_crafting\sewing.dm" @@ -3715,6 +3716,7 @@ #include "code\modules\projectiles\guns\ballistic\blowgun.dm" #include "code\modules\projectiles\guns\ballistic\bow.dm" #include "code\modules\projectiles\guns\ballistic\crossbow.dm" +#include "code\modules\projectiles\guns\ballistic\powder\blunderbluss.dm" #include "code\modules\projectiles\guns\ballistic\powder\musket.dm" #include "code\modules\projectiles\guns\ballistic\powder\puffer.dm" #include "code\modules\projectiles\projectile\bullets.dm"