diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index b6fc160a6f6..4cf0cb53b33 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -947,7 +947,7 @@ icon_deny = "sec-deny" req_access_txt = "1" products = list(/obj/item/weapon/restraints/handcuffs = 8,/obj/item/weapon/restraints/handcuffs/cable/zipties = 8,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5, - /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6,/obj/item/device/flashlight/seclite = 4) + /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6,/obj/item/device/flashlight/seclite = 4,/obj/item/weapon/restraints/legcuffs/bola/energy = 7) contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2,/obj/item/device/hailer = 5) /obj/machinery/vending/hydronutrients diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 6660692ce62..00d2fcef75b 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -413,10 +413,10 @@ do_after_cooldown() return -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas - name = "PCMK-6 Bolas Launcher" - icon_state = "mecha_bolas" - projectile = /obj/item/weapon/legcuffs/bolas +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bola + name = "PCMK-6 Bola Launcher" + icon_state = "mecha_bola" + projectile = /obj/item/weapon/restraints/legcuffs/bola fire_sound = 'sound/weapons/whip.ogg' projectiles = 10 missile_speed = 1 @@ -424,19 +424,18 @@ projectile_energy_cost = 50 equip_cooldown = 10 -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas/can_attach(obj/mecha/combat/gygax/M as obj) +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bola/can_attach(obj/mecha/combat/gygax/M as obj) if(..()) if(istype(M)) return 1 return 0 -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas/action(target, params) +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bola/action(target, params) if(!action_checks(target)) return set_ready_state(0) - var/obj/item/weapon/legcuffs/bolas/M = new projectile(chassis.loc) + var/obj/item/weapon/restraints/legcuffs/bola/M = new projectile(chassis.loc) playsound(chassis, fire_sound, 50, 1) - M.thrown_from = src M.throw_at(target, missile_range, missile_speed) projectiles-- log_message("Fired from [name], targeting [target].") diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 51f892ac50b..ff509982d10 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -114,8 +114,21 @@ to_chat(user, "You wrap the cable restraint around the top of the rod.") qdel(src) else - to_chat(user, "You need one rod to make a wired rod.") + to_chat(user, "You need one rod to make a wired rod!") + else if(istype(I, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = I + if(M.amount < 6) + to_chat(user, "You need at least six metal sheets to make good enough weights!") return + to_chat(user, "You begin to apply [I] to [src]...") + if(do_after(user, 35, target = src)) + var/obj/item/weapon/restraints/legcuffs/bola/S = new /obj/item/weapon/restraints/legcuffs/bola + M.use(6) + user.put_in_hands(S) + to_chat(user, "You make some weights out of [I] and tie them to [src].") + if(!remove_item_from_storage(user)) + user.unEquip(src) + qdel(src) /obj/item/weapon/restraints/handcuffs/cable/zipties name = "zipties" diff --git a/code/game/objects/items/weapons/legcuffs.dm b/code/game/objects/items/weapons/legcuffs.dm index 3e6c4f835f5..6876394bea3 100644 --- a/code/game/objects/items/weapons/legcuffs.dm +++ b/code/game/objects/items/weapons/legcuffs.dm @@ -15,12 +15,17 @@ name = "bear trap" throw_speed = 1 throw_range = 1 - icon_state = "beartrap0" + icon_state = "beartrap" desc = "A trap used to catch bears and other legged creatures." var/armed = 0 + var/trap_damage = 20 var/obj/item/weapon/grenade/iedcasing/IED = null var/obj/item/device/assembly/signaler/sig = null +/obj/item/weapon/restraints/legcuffs/beartrap/New() + ..() + icon_state = "[initial(icon_state)][armed]" + /obj/item/weapon/restraints/legcuffs/beartrap/Destroy() if(IED) qdel(IED) @@ -35,14 +40,14 @@ playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return (BRUTELOSS) -/obj/item/weapon/restraints/legcuffs/beartrap/attack_self(mob/user as mob) +/obj/item/weapon/restraints/legcuffs/beartrap/attack_self(mob/user) ..() if(ishuman(user) && !user.stat && !user.restrained()) armed = !armed - icon_state = "beartrap[armed]" + icon_state = "[initial(icon_state)][armed]" to_chat(user, "[src] is now [armed ? "armed" : "disarmed"]") -/obj/item/weapon/restraints/legcuffs/beartrap/attackby(var/obj/item/I, mob/user as mob) //Let's get explosive. +/obj/item/weapon/restraints/legcuffs/beartrap/attackby(obj/item/I, mob/user) //Let's get explosive. if(istype(I, /obj/item/weapon/grenade/iedcasing)) if(IED) to_chat(user, "This beartrap already has an IED hooked up to it!") @@ -101,7 +106,7 @@ if( (iscarbon(AM) || isanimal(AM)) && !istype(AM, /mob/living/simple_animal/parrot) && !istype(AM, /mob/living/simple_animal/construct) && !istype(AM, /mob/living/simple_animal/shade) && !istype(AM, /mob/living/simple_animal/hostile/viscerator)) var/mob/living/L = AM armed = 0 - icon_state = "beartrap0" + icon_state = "[initial(icon_state)][armed]" playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) L.visible_message("[L] triggers \the [src].", \ "You trigger \the [src]!") @@ -122,9 +127,9 @@ if(ishuman(AM)) var/mob/living/carbon/H = AM if(H.lying) - H.apply_damage(20,BRUTE,"chest") + H.apply_damage(trap_damage, BRUTE,"chest") else - H.apply_damage(20,BRUTE,(pick("l_leg", "r_leg"))) + H.apply_damage(trap_damage, BRUTE,(pick("l_leg", "r_leg"))) if(!H.legcuffed) //beartrap can't cuff you leg if there's already a beartrap or legcuffs. H.legcuffed = src src.loc = H @@ -132,95 +137,75 @@ feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart. else - L.apply_damage(20,BRUTE) + L.apply_damage(trap_damage, BRUTE) ..() +/obj/item/weapon/restraints/legcuffs/beartrap/energy + name = "energy snare" + armed = 1 + icon_state = "e_snare" + trap_damage = 0 -/obj/item/weapon/legcuffs/bolas - name = "bolas" - desc = "An entangling bolas. Throw at your foes to trip them and prevent them from running." +/obj/item/weapon/restraints/legcuffs/beartrap/energy/New() + ..() + spawn(100) + if(!istype(loc, /mob)) + var/datum/effect/system/spark_spread/sparks = new /datum/effect/system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + qdel(src) + +/obj/item/weapon/restraints/legcuffs/beartrap/energy/dropped() + ..() + qdel(src) + +/obj/item/weapon/restraints/legcuffs/beartrap/energy/attack_hand(mob/user) + Crossed(user) //honk + +/obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg + breakouttime = 20 // Cyborgs shouldn't have a strong restraint + +/obj/item/weapon/restraints/legcuffs/bola + name = "bola" + desc = "A restraining device designed to be thrown at the target. Upon connecting with said target, it will wrap around their legs, making it difficult for them to move quickly." + icon_state = "bola" + breakouttime = 35//easy to apply, easy to break out of gender = NEUTER - icon = 'icons/obj/weapons.dmi' - icon_state = "bolas" - slot_flags = SLOT_BELT - throwforce = 2 + origin_tech = "engineering=3;combat=1" + var/weaken = 0 + +/obj/item/weapon/restraints/legcuffs/bola/throw_impact(atom/hit_atom) + if(..() || !iscarbon(hit_atom))//if it gets caught or the target can't be cuffed, + return//abort + var/mob/living/carbon/C = hit_atom + if(!C.legcuffed) + visible_message("\The [src] ensnares [C]!") + C.legcuffed = src + src.loc = C + C.update_inv_legcuffed() + feedback_add_details("handcuffs","B") + to_chat(C, "\The [src] ensnares you!") + C.Weaken(weaken) + +/obj/item/weapon/restraints/legcuffs/bola/tactical //traitor variant + name = "reinforced bola" + desc = "A strong bola, made with a long steel chain. It looks heavy, enough so that it could trip somebody." + icon_state = "bola_r" + breakouttime = 70 + origin_tech = "engineering=4;combat=3" + weaken = 1 + +/obj/item/weapon/restraints/legcuffs/bola/energy //For Security + name = "energy bola" + desc = "A specialized hard-light bola designed to ensnare fleeing criminals and aid in arrests." + icon_state = "ebola" + hitsound = 'sound/weapons/tase.ogg' w_class = 2 - origin_tech = "materials=1" - attack_verb = list("lashed", "bludgeoned", "whipped") - force = 4 - breakouttime = 50 //10 seconds - throw_speed = 1 - throw_range = 10 - var/dispenser = 0 - var/throw_sound = 'sound/weapons/whip.ogg' - var/trip_prob = 60 - var/thrown_from + breakouttime = 60 -/obj/item/weapon/legcuffs/bolas/suicide_act(mob/living/user) - to_chat(viewers(user), "[user] is wrapping the [src.name] around \his neck! It looks like \he's trying to commit suicide.") - return(OXYLOSS) - -/obj/item/weapon/legcuffs/bolas/throw_at(var/atom/A, throw_range, throw_speed) - if(usr && !istype(thrown_from, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas)) //if there is a user, but not a mech - if(istype(usr, /mob/living/carbon/human)) //if the user is human - var/mob/living/carbon/human/H = usr - if((CLUMSY in H.mutations) && prob(50)) - to_chat(H, "You smack yourself in the face while swinging the [src]!") - H.Stun(2) - H.drop_item(src) - return - if(!thrown_from && usr) //if something hasn't set it already (like a mech does when it launches) - thrown_from = usr //then the user must have thrown it - if(!istype(thrown_from, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas)) - playsound(src, throw_sound, 20, 1) //because mechs play the sound anyways - var/turf/target = get_turf(A) - var/atom/movable/adjtarget = new /atom/movable - var/xadjust = 0 - var/yadjust = 0 - var/scaler = 0 //used to changed the normalised vector to the proper size - scaler = throw_range / max(abs(target.x - src.x), abs(target.y - src.y)) //whichever is larger magnitude is what we normalise to - if(target.x - src.x != 0) //just to avoid fucking with math for no reason - xadjust = round((target.x - src.x) * scaler) //normalised vector is now scaled up to throw_range - adjtarget.x = src.x + xadjust //the new target at max range - else - adjtarget.x = src.x - if(target.y - src.y != 0) - yadjust = round((target.y - src.y) * scaler) - adjtarget.y = src.y + yadjust - else - adjtarget.y = src.y - // log_admin("Adjusted target of [adjtarget.x] and [adjtarget.y], adjusted with [xadjust] and [yadjust] from [scaler]") - ..(get_turf(adjtarget), throw_range, throw_speed) - thrown_from = null - -/obj/item/weapon/legcuffs/bolas/throw_impact(atom/hit_atom) //Pomf was right, I was wrong - Comic - if(isliving(hit_atom) && hit_atom != usr) //if the target is a live creature other than the thrower - var/mob/living/M = hit_atom - if(ishuman(M)) //if they're a human species - var/mob/living/carbon/human/H = M - if(H.legcuffed) //if the target is already legcuffed (has to be walking) - throw_failed() - return - if(prob(trip_prob)) //this probability is up for change and mostly a placeholder - Comic - step(H, H.dir) - H.visible_message("[H] was tripped by the bolas!","Your legs have been tangled!"); - H.Stun(2) //used instead of setting damage in vars to avoid non-human targets being affected - H.Weaken(4) - H.legcuffed = src //applies legcuff properties inherited through legcuffs - src.loc = H - H.update_inv_legcuffed() - if(!H.legcuffed) //in case it didn't happen, we need a safety net - throw_failed() - else - M.Stun(2) //minor stun damage to anything not human - throw_failed() - return - -/obj/item/weapon/legcuffs/bolas/proc/throw_failed() //called when the throw doesn't entangle - //log_admin("Logged as [thrown_from]") - if(!thrown_from || !istype(thrown_from, /mob/living)) //in essence, if we don't know whether a person threw it - qdel(src) //destroy it, to stop infinite bolases - -/obj/item/weapon/legcuffs/bolas/Bump() - ..() - throw_failed() //allows a mech bolas to be destroyed +/obj/item/weapon/restraints/legcuffs/bola/energy/throw_impact(atom/hit_atom) + if(iscarbon(hit_atom)) + var/obj/item/weapon/restraints/legcuffs/beartrap/B = new /obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg(get_turf(hit_atom)) + B.Crossed(hit_atom) + qdel(src) + ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index 88d3f202ac6..d7c33164543 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -141,6 +141,7 @@ /obj/item/stack/packageWrap = 8, /obj/item/pipe = 2) time = 300 + category = CAT_WEAPON /obj/item/weapon/pneumatic_cannon/proc/updateTank(obj/item/weapon/tank/thetank, removing = 0, mob/living/carbon/human/user) if(removing) diff --git a/code/game/objects/items/weapons/signs.dm b/code/game/objects/items/weapons/signs.dm index 2155aeb69c6..00ac859528d 100644 --- a/code/game/objects/items/weapons/signs.dm +++ b/code/game/objects/items/weapons/signs.dm @@ -40,4 +40,5 @@ result = /obj/item/weapon/picket_sign reqs = list(/obj/item/stack/rods = 1, /obj/item/stack/sheet/cardboard = 2) - time = 80 \ No newline at end of file + time = 80 + category = CAT_MISC \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 43d0897b2f9..a0e3d4dd69e 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -181,8 +181,8 @@ "/obj/item/weapon/melee/classic_baton", "/obj/item/device/flashlight/seclite", "/obj/item/taperoll/police", - "/obj/item/weapon/melee/classic_baton/telescopic" - ) + "/obj/item/weapon/melee/classic_baton/telescopic", + "/obj/item/weapon/restraints/legcuffs/bola") /obj/item/weapon/storage/belt/security/sec/New() ..() @@ -476,7 +476,7 @@ allow_quick_empty = 1 can_hold = list( "/obj/item/weapon/grenade/smokebomb", - "/obj/item/weapon/legcuffs/bolas" + "/obj/item/weapon/restraints/legcuffs/bola" ) flags = NODROP @@ -492,8 +492,8 @@ new /obj/item/weapon/grenade/smokebomb(src) new /obj/item/weapon/grenade/smokebomb(src) new /obj/item/weapon/grenade/smokebomb(src) - new /obj/item/weapon/legcuffs/bolas(src) - new /obj/item/weapon/legcuffs/bolas(src) + new /obj/item/weapon/restraints/legcuffs/bola(src) + new /obj/item/weapon/restraints/legcuffs/bola(src) processing_objects.Add(src) cooldown = world.time @@ -504,7 +504,7 @@ for(S in src) smokecount++ bolacount = 0 - var/obj/item/weapon/legcuffs/bolas/B + var/obj/item/weapon/restraints/legcuffs/bola/B for(B in src) bolacount++ if(smokecount < 4) @@ -513,7 +513,7 @@ smokecount++ if(bolacount < 2) while(bolacount < 2) - new /obj/item/weapon/legcuffs/bolas(src) + new /obj/item/weapon/restraints/legcuffs/bola(src) bolacount++ cooldown = world.time update_icon() diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 229daee5c93..2330f439547 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -177,12 +177,11 @@ /datum/crafting_recipe/shoe_rags name = "Shoe Rags" - result = /obj/item/shoe_silencer reqs = list(/obj/item/stack/tape_roll = 10) tools = list(/obj/item/weapon/wirecutters) - time = 40 + category = CAT_MISC /obj/item/clothing/shoes/sandal/white name = "White Sandals" diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 60d830a1c89..4a059158e2f 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -23,7 +23,7 @@ /obj/item/device/assembly/igniter = 1, /obj/item/weapon/reagent_containers/food/drinks/cans = 1) parts = list(/obj/item/weapon/reagent_containers/food/drinks/cans = 1) - time = 80 + time = 15 category = CAT_WEAPON /datum/crafting_recipe/stunprod @@ -33,10 +33,18 @@ /obj/item/stack/rods = 1, /obj/item/weapon/wirecutters = 1, /obj/item/weapon/stock_parts/cell = 1) - time = 80 + time = 40 parts = list(/obj/item/weapon/stock_parts/cell = 1) category = CAT_WEAPON +/datum/crafting_recipe/bola + name = "Bola" + result = /obj/item/weapon/restraints/legcuffs/bola + reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + /obj/item/stack/sheet/metal = 6) + time = 20//15 faster than crafting them by hand! + category= CAT_WEAPON + /datum/crafting_recipe/ed209 name = "ED209" result = /mob/living/simple_animal/bot/ed209 @@ -52,7 +60,7 @@ /obj/item/device/assembly/prox_sensor = 1, /obj/item/robot_parts/r_arm = 1) tools = list(/obj/item/weapon/weldingtool, /obj/item/weapon/screwdriver) - time = 120 + time = 60 category = CAT_ROBOT /datum/crafting_recipe/secbot @@ -64,7 +72,7 @@ /obj/item/device/assembly/prox_sensor = 1, /obj/item/robot_parts/r_arm = 1) tools = list(/obj/item/weapon/weldingtool) - time = 120 + time = 60 category = CAT_ROBOT /datum/crafting_recipe/cleanbot @@ -73,7 +81,7 @@ reqs = list(/obj/item/weapon/reagent_containers/glass/bucket = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/robot_parts/r_arm = 1) - time = 80 + time = 40 category = CAT_ROBOT /datum/crafting_recipe/floorbot @@ -83,7 +91,7 @@ /obj/item/stack/tile/plasteel = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/robot_parts/r_arm = 1) - time = 80 + time = 40 category = CAT_ROBOT /datum/crafting_recipe/medbot @@ -93,7 +101,7 @@ /obj/item/weapon/storage/firstaid = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/robot_parts/r_arm = 1) - time = 80 + time = 40 category = CAT_ROBOT /datum/crafting_recipe/flamethrower @@ -103,7 +111,7 @@ /obj/item/device/assembly/igniter = 1, /obj/item/stack/rods = 2) tools = list(/obj/item/weapon/screwdriver) - time = 20 + time = 10 category = CAT_WEAPON /datum/crafting_recipe/meteorshot @@ -171,7 +179,8 @@ name = "Overload Improvised Shell" result = /obj/item/ammo_casing/shotgun/improvised/overload reqs = list(/obj/item/ammo_casing/shotgun/improvised = 1, - /datum/reagent/blackpowder = 5) + /datum/reagent/blackpowder = 10, + /datum/reagent/plasma_dust = 20) tools = list(/obj/item/weapon/screwdriver) time = 5 category = CAT_AMMO @@ -194,7 +203,16 @@ /obj/item/weaponcrafting/stock = 1, /obj/item/stack/packageWrap = 5,) tools = list(/obj/item/weapon/screwdriver) - time = 200 + time = 100 + category = CAT_WEAPON + +/datum/crafting_recipe/spear + name = "Spear" + result = /obj/item/weapon/twohanded/spear + reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + /obj/item/weapon/shard = 1, + /obj/item/stack/rods = 1) + time = 40 category = CAT_WEAPON /datum/crafting_recipe/spooky_camera @@ -208,7 +226,7 @@ /datum/crafting_recipe/notreallysoap name = "Homemade Soap" result = /obj/item/weapon/soap/ducttape - time = 100 + time = 50 reqs = list(/obj/item/stack/tape_roll = 1, /datum/reagent/liquidgibs = 10) @@ -224,7 +242,7 @@ /datum/crafting_recipe/makeshift_bolt name = "Makeshift Bolt" result = /obj/item/weapon/arrow/rod - time = 15 + time = 5 reqs = list(/obj/item/stack/rods = 1) tools = list(/obj/item/weapon/weldingtool) category = CAT_AMMO @@ -232,7 +250,7 @@ /datum/crafting_recipe/crossbow name = "Powered Crossbow" result = /obj/item/weapon/gun/throw/crossbow - time = 300 + time = 150 reqs = list(/obj/item/stack/rods = 3, /obj/item/stack/cable_coil = 10, /obj/item/stack/sheet/mineral/plastic = 3, @@ -246,4 +264,4 @@ result = /obj/item/latexballon time = 15 reqs = list(/obj/item/clothing/gloves/color/latex = 1, - /obj/item/stack/cable_coil = 5) + /obj/item/stack/cable_coil = 5) \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index a661c0e3701..2a893755589 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -99,6 +99,7 @@ projectile_type = /obj/item/projectile/bullet materials = list(MAT_METAL=4000) + /obj/item/ammo_casing/shotgun/buckshot name = "buckshot shell" desc = "A 12 gauge buckshot shell." @@ -116,6 +117,7 @@ variance = 25 materials = list(MAT_METAL=4000) + /obj/item/ammo_casing/shotgun/beanbag name = "beanbag slug" desc = "A weak beanbag slug for riot control." @@ -123,15 +125,17 @@ projectile_type = /obj/item/projectile/bullet/weakbullet/rubber materials = list(MAT_METAL=250) + /obj/item/ammo_casing/shotgun/improvised name = "improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards." - icon_state = "gshell" + icon_state = "improvshell" projectile_type = /obj/item/projectile/bullet/pellet/weak materials = list(MAT_METAL=250) - pellets = 5 + pellets = 10 variance = 25 + /obj/item/ammo_casing/shotgun/improvised/overload name = "overloaded improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards. This one has been packed with even more \ @@ -139,12 +143,9 @@ icon_state = "improvshell" projectile_type = /obj/item/projectile/bullet/pellet/overload materials = list(MAT_METAL=250) - pellets = 5 + pellets = 4 variance = 40 -/obj/item/ammo_casing/shotgun/improvised/overload/New() - ..() - pellets = rand(3, 8) /obj/item/ammo_casing/shotgun/stunslug name = "taser slug" @@ -153,6 +154,7 @@ projectile_type = /obj/item/projectile/bullet/stunshot materials = list(MAT_METAL=250) + /obj/item/ammo_casing/shotgun/meteorshot name = "meteorshot shell" desc = "A shotgun shell rigged with CMC technology, which launches a massive slug when fired." @@ -206,7 +208,7 @@ name = "laser slug" desc = "An advanced shotgun shell that uses a micro laser to replicate the effects of a laser weapon in a ballistic package." icon_state = "lshell" - projectile_type = /obj/item/projectile/beam + projectile_type = /obj/item/projectile/beam/laser /obj/item/ammo_casing/shotgun/techshell name = "unloaded technological shell" diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 8f8809c504f..ecb54b9c1f0 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -59,7 +59,7 @@ ..() if(istype(target, /mob/living/carbon)) var/mob/living/carbon/M = target - M.adjust_fire_stacks(1) + M.adjust_fire_stacks(4) M.IgniteMob() /obj/item/projectile/bullet/incendiary/firebullet diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 8f2b16626d3..f292209ac3e 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -837,13 +837,13 @@ construction_time = 100 category = list("Exosuit Equipment") -/datum/design/mech_bolas - name = "Exosuit Weapon Design (PCMK-6 Bolas Launcher)" - desc = "Allows for the construction of PCMK-6 Bolas Launcher." - id = "mech_bolas" +/datum/design/mech_bola + name = "Exosuit Weapon Design (PCMK-6 Bola Launcher)" + desc = "Allows for the construction of PCMK-6 Bola Launcher." + id = "mech_bola" build_type = MECHFAB req_tech = list("combat" = 3) - build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bola materials = list(MAT_METAL=10000) construction_time = 100 category = list("Exosuit Equipment") diff --git a/icons/mecha/mecha_equipment.dmi b/icons/mecha/mecha_equipment.dmi index f330c5a9b25..9c0d20bd898 100644 Binary files a/icons/mecha/mecha_equipment.dmi and b/icons/mecha/mecha_equipment.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index a22bb625198..40ef753fb6f 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ