diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index de8fc9beac6..228a1f17dbe 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -370,6 +370,32 @@ projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot icon_state = "foamdart_riot" +/obj/item/ammo_casing/caseless/foam_dart/sniper + name = "foam sniper dart" + desc = "For the big nerf! Ages 8 and up." + caliber = "foam_force_sniper" + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/sniper + icon_state = "foamdartsniper" + +/obj/item/ammo_casing/caseless/foam_dart/sniper/update_icon() + ..() + if(modified) + icon_state = "foamdartsniper_empty" + desc = "Its nerf or nothing! ... Although, this one doesn't look too safe." + if(BB) + BB.icon_state = "foamdartsniper_empty" + else + icon_state = initial(icon_state) + if(BB) + BB.icon_state = initial(BB.icon_state) + +/obj/item/ammo_casing/caseless/foam_dart/sniper/riot + name = "riot foam sniper dart" + desc = "For the bigger brother of the crowd control toy. Ages 18 and up." + caliber = "foam_force_sniper" + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/sniper/riot + icon_state = "foamdartsniper_riot" + /obj/item/ammo_casing/shotgun/assassination name = "assassination shell" desc = "A specialist shrapnel shell that has been laced with a silencing toxin." diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 28dc2e41b14..ae88bc9db61 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -125,6 +125,21 @@ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot materials = list(MAT_METAL = 50000) +/obj/item/ammo_box/foambox/sniper + name = "ammo box (Foam Sniper Darts)" + icon = 'icons/obj/guns/toy.dmi' + icon_state = "foambox_sniper" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/sniper + max_ammo = 40 + materials = list(MAT_METAL = 900) + +/obj/item/ammo_box/foambox/sniper/riot + icon_state = "foambox_sniper_riot" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/sniper/riot + materials = list(MAT_METAL = 90000) + + + /obj/item/ammo_box/caps name = "speed loader (caps)" icon_state = "357" diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index f4500c7ce6d..68c6264b0a3 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -490,3 +490,12 @@ /obj/item/ammo_box/magazine/laser/update_icon() ..() icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/20)*20]" + +/obj/item/ammo_box/magazine/toy/smgm45 + name = "donksoft SMG magazine" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + max_ammo = 20 + +/obj/item/ammo_box/magazine/toy/smgm45/update_icon() + ..() + icon_state = "c20r45-[round(ammo_count(),2)]" diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm index 1683f109cfd..9f8c451be65 100644 --- a/code/modules/projectiles/guns/projectile/sniper.dm +++ b/code/modules/projectiles/guns/projectile/sniper.dm @@ -159,3 +159,22 @@ dismemberment = 0 weaken = 0 breakthings = FALSE + +//toy magazine +/obj/item/ammo_box/magazine/toy/sniper_rounds + name = "donksoft Sniper magazine" + icon_state = ".50mag" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/sniper/riot + max_ammo = 6 + caliber = "foam_force_sniper" + +/obj/item/ammo_box/magazine/toy/sniper_rounds/update_icon() + overlays.Cut() + + var/ammo = ammo_count() + if(ammo && istype(contents[contents.len], /obj/item/ammo_casing/caseless/foam_dart/sniper/riot)) + overlays += image('icons/obj/ammo.dmi', icon_state = ".50mag-r") + else if(ammo) + overlays += image('icons/obj/ammo.dmi', icon_state = ".50mag-f") + else + icon_state = "[initial(icon_state)]" \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/toy.dm b/code/modules/projectiles/guns/projectile/toy.dm index 8937fad6047..74f77a3be88 100644 --- a/code/modules/projectiles/guns/projectile/toy.dm +++ b/code/modules/projectiles/guns/projectile/toy.dm @@ -116,3 +116,15 @@ item_state = "shotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/tommygun w_class = WEIGHT_CLASS_SMALL + +/obj/item/gun/projectile/automatic/sniper_rifle/toy + name = "donksoft sniper rifle" + desc = "A recoil-operated, semi-automatic donksoft sniper rifle. Perfect to annoy/kill the neighbour’s cat! Ages 8 and up." + icon = 'icons/obj/guns/toy.dmi' + can_suppress = FALSE + needs_permit = FALSE + zoomable = FALSE + mag_type = /obj/item/ammo_box/magazine/toy/sniper_rounds + +/obj/item/gun/projectile/automatic/sniper_rifle/toy/process_chamber(eject_casing = 0, empty_chamber = 1) + ..() \ No newline at end of file diff --git a/code/modules/projectiles/projectile/reusable.dm b/code/modules/projectiles/projectile/reusable.dm index 06bc778f4f0..1c23605f2b3 100644 --- a/code/modules/projectiles/projectile/reusable.dm +++ b/code/modules/projectiles/projectile/reusable.dm @@ -64,3 +64,16 @@ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot stamina = 25 log_override = FALSE + +/obj/item/projectile/bullet/reusable/foam_dart/sniper + name = "foam sniper dart" + icon_state = "foamdartsniper" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/sniper + range = 30 + +/obj/item/projectile/bullet/reusable/foam_dart/sniper/riot + name = "riot sniper foam dart" + icon_state = "foamdartsniper_riot" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/sniper/riot + stamina = 100 + log_override = FALSE \ No newline at end of file diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index ca606720c7b..069efe5807c 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -623,6 +623,14 @@ build_path = /obj/item/ammo_box/foambox category = list("initial", "Miscellaneous") +/datum/design/foam_dart_sniper + name = "Box of Sniper Foam Darts" + id = "foam_dart_sniper" + build_type = AUTOLATHE + materials = list(MAT_METAL = 900) + build_path = /obj/item/ammo_box/foambox/sniper + category = list("initial", "Miscellaneous") + //hacked autolathe recipes /datum/design/flamethrower name = "Flamethrower" @@ -728,6 +736,14 @@ build_path = /obj/item/ammo_casing/caseless/foam_dart/riot category = list("hacked", "Security") +/datum/design/riot_dart_sniper + name = "Foam riot sniper dart" + id = "riot_dart_sniper" + build_type = AUTOLATHE + materials = list(MAT_METAL = 1800) //Discount for making individually - no box = less metal! + build_path = /obj/item/ammo_casing/caseless/foam_dart/sniper/riot + category = list("hacked", "Security") + /datum/design/riot_darts name = "Foam riot dart box" id = "riot_darts" @@ -736,6 +752,14 @@ build_path = /obj/item/ammo_box/foambox/riot category = list("hacked", "Security") +/datum/design/riot_darts_sniper + name = "Foam riot sniper dart box" + id = "riot_darts_sniper" + build_type = AUTOLATHE + materials = list(MAT_METAL = 90000) //Comes with 40 darts + build_path = /obj/item/ammo_box/foambox/sniper/riot + category = list("hacked", "Security") + /datum/design/a357 name = "Ammo Box (.357)" id = "a357" diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index d1aa0e9805a..735070488b2 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/guns/toy.dmi b/icons/obj/guns/toy.dmi index a0f2a539c54..49444798d61 100644 Binary files a/icons/obj/guns/toy.dmi and b/icons/obj/guns/toy.dmi differ