diff --git a/code/game/objects/items/devices/vulture_spotter.dm b/code/game/objects/items/devices/vulture_spotter.dm index b89009efde7e..d138c62c7a35 100644 --- a/code/game/objects/items/devices/vulture_spotter.dm +++ b/code/game/objects/items/devices/vulture_spotter.dm @@ -18,6 +18,8 @@ . = ..() to_chat(user, SPAN_WARNING("[src] needs to be mounted on a tripod to use!")) +/obj/item/device/vulture_spotter_scope/skillless + /obj/item/device/vulture_spotter_tripod name = "\improper M707 spotter tripod" desc = "A tripod, meant for stabilizing a spotting scope for the M707 anti-materiel rifle." diff --git a/code/game/objects/structures/vulture_spotter.dm b/code/game/objects/structures/vulture_spotter.dm index a668cb562028..cd4feb82a676 100644 --- a/code/game/objects/structures/vulture_spotter.dm +++ b/code/game/objects/structures/vulture_spotter.dm @@ -21,6 +21,8 @@ var/darkness_view = 12 /// The maximum distance this can be from the sniper scope var/max_sniper_distance = 7 + /// If this requires the vulture_user trait to use + var/skillless = FALSE /obj/structure/vulture_spotter_tripod/Initialize(mapload) . = ..() @@ -36,7 +38,10 @@ /obj/structure/vulture_spotter_tripod/deconstruct(disassembled) . = ..() if(scope_attached && bound_rifle) - new /obj/item/device/vulture_spotter_scope(get_turf(src), bound_rifle) + if(skillless) + new /obj/item/device/vulture_spotter_scope/skillless(get_turf(src), bound_rifle) + else + new /obj/item/device/vulture_spotter_scope(get_turf(src), bound_rifle) new /obj/item/device/vulture_spotter_tripod(get_turf(src)) /obj/structure/vulture_spotter_tripod/get_examine_text(mob/user) @@ -63,7 +68,7 @@ return var/mob/living/carbon/human/user = usr //this is us - if(!HAS_TRAIT(user, TRAIT_VULTURE_USER)) + if(!HAS_TRAIT(user, TRAIT_VULTURE_USER) && !skillless) to_chat(user, SPAN_WARNING("You don't know how to use this!")) return @@ -153,10 +158,13 @@ user.pixel_y = 0 /// Handler for when the scope is being attached to the tripod -/obj/structure/vulture_spotter_tripod/proc/on_scope_attach(mob/user, obj/structure/vulture_spotter_tripod/scope) +/obj/structure/vulture_spotter_tripod/proc/on_scope_attach(mob/user, obj/item/scope) if(scope_attached) return + if(istype(scope, /obj/item/vulture_spotter_scope/skillless)) + skillless = TRUE + user.visible_message(SPAN_NOTICE("[user] attaches [scope] to [src]."), SPAN_NOTICE("You attach [scope] to [src].")) icon_state = "vulture_scope" setDir(user.dir) diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm index 33684aa29d0a..8f70ae539dc3 100644 --- a/code/modules/cm_marines/equipment/guncases.dm +++ b/code/modules/cm_marines/equipment/guncases.dm @@ -300,7 +300,7 @@ name = "\improper M707 anti-materiel rifle case" desc = "A gun case containing the M707 \"Vulture\" anti-materiel rifle and its requisite spotting tools." icon_state = "guncase_blue" - storage_slots = 7 + storage_slots = 5 can_hold = list( /obj/item/weapon/gun/boltaction/vulture, /obj/item/ammo_magazine/rifle/boltaction/vulture, @@ -325,6 +325,15 @@ new /obj/item/pamphlet/trait/vulture(src) //both pamphlets give use of the scope and the rifle new /obj/item/pamphlet/trait/vulture(src) +/obj/item/storage/box/guncase/vulture/skillless + +/obj/item/storage/box/guncase/vulture/skillless/fill_preset_inventory() + var/obj/item/weapon/gun/boltaction/vulture/skillless/rifle = new(src) + new /obj/item/ammo_magazine/rifle/boltaction/vulture(src) + new /obj/item/device/vulture_spotter_tripod(src) + new /obj/item/device/vulture_spotter_scope/skillless(src, WEAKREF(rifle)) + new /obj/item/tool/screwdriver(src) // Spotter scope needs a screwdriver to disassemble + //Handgun case for Military police vendor three mag , a railflashligh and the handgun. //88 Mod 4 Combat Pistol diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index 698ea8ef5957..cce7f2845366 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -1290,7 +1290,7 @@ Defined in conflicts.dm of the #defines folder. return to_chat(scoper, SPAN_NOTICE("You begin adjusting [src]...")) COOLDOWN_START(src, scope_interact_cd, 0.5 SECONDS) - if(!do_after(scoper, 0.5 SECONDS)) + if(!do_after(scoper, 0.4 SECONDS)) return adjust_offset(direction) @@ -1308,7 +1308,7 @@ Defined in conflicts.dm of the #defines folder. to_chat(scoper, SPAN_NOTICE("You begin moving [src]...")) COOLDOWN_START(src, scope_interact_cd, 1 SECONDS) - if(!do_after(scoper, 1 SECONDS)) + if(!do_after(scoper, 0.8 SECONDS)) return adjust_position(direction) diff --git a/code/modules/projectiles/guns/boltaction.dm b/code/modules/projectiles/guns/boltaction.dm index 69ce3a8de53e..c18e45e38d3e 100644 --- a/code/modules/projectiles/guns/boltaction.dm +++ b/code/modules/projectiles/guns/boltaction.dm @@ -275,3 +275,7 @@ to_chat(user, SPAN_DANGER("The splint on your [limb.display_name] comes apart under the recoil!")) user.pain.apply_pain(PAIN_BONE_BREAK_SPLINTED) user.update_med_icon() + + +/obj/item/weapon/gun/boltaction/vulture/skillless + bypass_trait = TRUE