diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
index 4d493c59a05..496003cfbc7 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -46,6 +46,7 @@
new /obj/item/clothing/gloves/sterile/latex(src)
new /obj/item/device/radio/headset/heads/rd(src)
new /obj/item/device/radio/headset/heads/rd/alt(src)
+ new /obj/item/weapon/bluespace_harpoon //VOREStation Edit
new /obj/item/weapon/tank/air(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/flash(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index 4bed035b82f..a8ace582665 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -43,8 +43,8 @@
new /obj/item/device/radio/headset/heads/hop/alt(src)
new /obj/item/weapon/storage/box/ids(src)
new /obj/item/weapon/storage/box/ids( src )
- new /obj/item/weapon/gun/energy/gun(src)
- new /obj/item/weapon/gun/projectile/sec/flash(src)
+ new /obj/item/weapon/gun/energy/gun/martin(src) //VOREStation Edit
+ //new /obj/item/weapon/gun/projectile/sec/flash(src) //VOREStation Edit
new /obj/item/device/flash(src)
return
@@ -110,7 +110,7 @@
new /obj/item/device/radio/headset/heads/hos/alt(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/taperoll/police(src)
- new /obj/item/weapon/shield/riot(src)
+ //new /obj/item/weapon/shield/riot(src) //VOREStation Edit
new /obj/item/weapon/shield/riot/tele(src)
new /obj/item/weapon/storage/box/holobadge/hos(src)
new /obj/item/clothing/accessory/badge/holo/hos(src)
@@ -120,8 +120,10 @@
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/melee/baton/loaded(src)
- new /obj/item/weapon/gun/energy/gun(src)
- new /obj/item/weapon/cell/device/weapon(src)
+ new /obj/item/weapon/gun/projectile/lamia(src) //VOREStation Edit
+ new /obj/item/ammo_magazine/a44 //VOREStation Edit
+ new /obj/item/ammo_magazine/a44 //VOREStation Edit
+ //new /obj/item/weapon/cell/device/weapon(src) //VOREStation Edit
new /obj/item/clothing/accessory/holster/waist(src)
new /obj/item/weapon/melee/telebaton(src)
new /obj/item/clothing/head/beret/sec/corporate/hos(src)
@@ -274,10 +276,10 @@
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/device/radio/headset/headset_sec/alt(src)
new /obj/item/clothing/suit/storage/vest/detective(src)
- new /obj/item/ammo_magazine/c45m/rubber(src)
- new /obj/item/ammo_magazine/c45m/rubber(src)
+ new /obj/item/ammo_magazine/a44sl/rubber(src) //VOREStation Edit
+ new /obj/item/ammo_magazine/a44sl/rubber(src) //VOREStation Edit
new /obj/item/taperoll/police(src)
- new /obj/item/weapon/gun/projectile/colt/detective(src)
+ new /obj/item/weapon/gun/projectile/revolver/consul(src) //VOREStation Edit
new /obj/item/clothing/accessory/holster/armpit(src)
new /obj/item/device/flashlight/maglight(src)
new /obj/item/weapon/reagent_containers/food/drinks/flask/detflask(src)
diff --git a/code/modules/projectiles/guns/energy/netgun_vr.dm b/code/modules/projectiles/guns/energy/netgun_vr.dm
index 3be66189a65..8678d2c5dc7 100644
--- a/code/modules/projectiles/guns/energy/netgun_vr.dm
+++ b/code/modules/projectiles/guns/energy/netgun_vr.dm
@@ -1,9 +1,9 @@
/obj/item/weapon/gun/energy/netgun
- name = "\improper\'Hunter\' capture gun"
+ name = "\improper KHI \"Hunter\" capture gun"
desc = "A Kitsuhana-designed 'non-lethal capture device' stunner and energy net launcher, \
for when you want criminals to stop acting like they're on a 20th century British comedy sketch show."
icon = 'icons/obj/gun_vr.dmi'
- icon_state = "khinet"
+ icon_state = "hunter"
item_state = "gun" // Placeholder
mode_name = "stun"
diff --git a/code/modules/vore/fluffstuff/custom_guns_vr.dm b/code/modules/vore/fluffstuff/custom_guns_vr.dm
index f28c958401b..6c19db6426c 100644
--- a/code/modules/vore/fluffstuff/custom_guns_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_guns_vr.dm
@@ -390,7 +390,7 @@
w_class = ITEMSIZE_LARGE
fire_delay = 6
pixel_x = -16
-
+
projectile_type = /obj/item/projectile/beam/stun/weak
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_ILLEGAL = 3)
modifystate = "g44estun"
@@ -562,6 +562,280 @@
list(mode_name="lethal", charge_cost=200,projectile_type=/obj/item/projectile/beam/eluger, modifystate="elugerkill", fire_sound='sound/weapons/eluger.ogg'),
)
+//////////////////// Eris Ported Guns ////////////////////
+//HoS Gun
+/obj/item/weapon/gun/projectile/lamia
+ name = "FS HG .44 \"Lamia\""
+ desc = "Uses .44 rounds."
+
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "Headdeagle"
+ item_state = "revolver"
+
+ fire_sound = 'sound/weapons/Gunshot.ogg'
+
+ caliber = ".44"
+ ammo_type = /obj/item/ammo_casing/a44
+ magazine_type = /obj/item/ammo_magazine/a44
+ allowed_magazines = list(/obj/item/ammo_magazine/a44)
+ load_method = MAGAZINE
+
+ origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 4)
+
+/obj/item/weapon/gun/projectile/lamia/update_icon()
+ overlays.Cut()
+ if(!ammo_magazine)
+ return
+ var/ratio = ammo_magazine.stored_ammo.len * 100 / ammo_magazine.max_ammo
+ ratio = round(ratio, 33)
+ overlays += "deagle_[ratio]"
+
+
+//Civilian gun
+/obj/item/weapon/gun/projectile/giskard
+ name = "FS HG .32 \"Giskard\""
+ desc = "Can even fit into the pocket! Uses .32 rounds."
+
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "giskardcivil"
+
+ caliber = ".32"
+ ammo_type = /obj/item/ammo_casing/a32
+ magazine_type = /obj/item/ammo_magazine/a32
+ allowed_magazines = list(/obj/item/ammo_magazine/a32)
+ load_method = MAGAZINE
+ fire_delay = 0.6
+ accuracy = 1
+
+ w_class = ITEMSIZE_SMALL
+
+ fire_sound = 'sound/weapons/Gunshot_light.ogg'
+
+ origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 3)
+
+/obj/item/weapon/gun/projectile/giskard/update_icon()
+ ..()
+ if(ammo_magazine && ammo_magazine.stored_ammo.len)
+ icon_state = "giskardcivil"
+ else
+ icon_state = "giskardcivil_empty"
+
+//Better civilian gun
+/obj/item/weapon/gun/projectile/olivaw
+ name = "FS HG .32 \"Olivaw\""
+ desc = "A more advanced version of the \"Giskard\". This one seems to have a two-round burst-fire mode. Uses .32 rounds."
+
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "olivawcivil"
+
+ caliber = ".32"
+ ammo_type = /obj/item/ammo_casing/a32
+ magazine_type = /obj/item/ammo_magazine/a32
+ allowed_magazines = list(/obj/item/ammo_magazine/a32)
+ fire_delay = 1.2
+ load_method = MAGAZINE
+ accuracy = 2
+
+ fire_sound = 'sound/weapons/Gunshot_light.ogg'
+
+ firemodes = list(
+ list(mode_name="semiauto", burst=1, fire_delay=1.2, move_delay=null, burst_accuracy=null, dispersion=null),
+ list(mode_name="2-round bursts", burst=2, fire_delay=0.2, move_delay=4, burst_accuracy=list(0,-1), dispersion=list(1.2, 1.8)),
+ )
+
+ origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
+
+/obj/item/weapon/gun/projectile/olivaw/update_icon()
+ ..()
+ if(ammo_magazine && ammo_magazine.stored_ammo.len)
+ icon_state = "olivawcivil"
+ else
+ icon_state = "olivawcivil_empty"
+
+//Detective gun
+/obj/item/weapon/gun/projectile/revolver/consul
+ name = "FS REV .44 \"Consul\""
+ desc = "A choice revolver for when you absolutely, positively need to put a hole in the other guy. Uses .44 ammo."
+
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "inspector"
+ item_state = "revolver"
+
+ caliber = ".44"
+ ammo_type = /obj/item/ammo_casing/a44/rubber
+ handle_casings = CYCLE_CASINGS
+
+ origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
+
+/obj/item/weapon/gun/projectile/revolver/consul/proc/update_charge()
+ if(loaded.len==0)
+ overlays += "inspector_off"
+ else
+ overlays += "inspector_on"
+
+/obj/item/weapon/gun/projectile/revolver/consul/update_icon()
+ overlays.Cut()
+ update_charge()
+
+//Warden gun
+/obj/item/weapon/gun/projectile/automatic/SMG_sol
+ name = "FS SMG 9x19 \"Sol\""
+ desc = "A standard-issued weapon used by Ironhammer operatives. Compact and reliable. Uses 9mm rounds."
+
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "SMG-IS"
+ item_state = "wt550"
+
+ w_class = ITEMSIZE_LARGE
+ slot_flags = SLOT_BELT
+
+ caliber = "9mm"
+ ammo_type = /obj/item/ammo_casing/c9mm
+ magazine_type = /obj/item/ammo_magazine/c9mm
+ allowed_magazines = list(/obj/item/ammo_magazine/c9mm)
+ load_method = MAGAZINE
+ multi_aim = 1
+ burst_delay = 2
+
+ firemodes = list(
+ list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
+ list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
+ )
+
+ origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2)
+
+/obj/item/weapon/gun/projectile/automatic/SMG_sol/proc/update_charge()
+ if(!ammo_magazine)
+ return
+ var/ratio = ammo_magazine.stored_ammo.len / ammo_magazine.max_ammo
+ if(ratio < 0.25 && ratio != 0)
+ ratio = 0.25
+ ratio = round(ratio, 0.25) * 100
+ overlays += "smg_[ratio]"
+
+/obj/item/weapon/gun/projectile/automatic/SMG_sol/update_icon()
+ icon_state = (ammo_magazine)? "SMG-IS" : "SMG-IS-empty"
+ overlays.Cut()
+ update_charge()
+
+//HoP gun
+/obj/item/weapon/gun/energy/gun/martin
+ name = "FS PDW E \"Martin\""
+ desc = "A small holdout e-gun. Don't miss!"
+
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "PDW"
+ item_state = "gun"
+
+ w_class = ITEMSIZE_SMALL
+
+ projectile_type = /obj/item/projectile/beam/stun
+ charge_cost = 1200
+ charge_meter = 0
+ modifystate = null
+ battery_lock = 1
+
+ fire_sound = 'sound/weapons/Taser.ogg'
+
+ firemodes = list(
+ list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
+ list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg'),
+ )
+
+ origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
+
+/obj/item/weapon/gun/energy/gun/martin/proc/update_mode()
+ var/datum/firemode/current_mode = firemodes[sel_mode]
+ switch(current_mode.name)
+ if("stun") overlays += "taser_pdw"
+ if("lethal") overlays += "lazer_pdw"
+
+/obj/item/weapon/gun/energy/gun/martin/update_icon()
+ overlays.Cut()
+ update_mode()
+
+//RD 'gun'
+/obj/item/weapon/bluespace_harpoon
+ name = "bluespace harpoon"
+ desc = "For climbing on bluespace mountains!"
+
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "harpoon-2"
+
+ w_class = ITEMSIZE_NORMAL
+
+ throw_speed = 4
+ throw_range = 20
+
+ origin_tech = list(TECH_BLUESPACE = 5)
+
+ var/mode = 1 // 1 mode - teleport you to turf 0 mode teleport turf to you
+ var/last_fire = 0
+ var/transforming = 0
+
+/obj/item/weapon/bluespace_harpoon/afterattack(atom/A, mob/user as mob)
+ var/current_fire = world.time
+ if(!user || !A || user.machine)
+ return
+ if(transforming)
+ to_chat(user,"You can't fire while \the [src] transforming!")
+ return
+ if(!(current_fire - last_fire >= 20 SECONDS))
+ to_chat(user,"\The [src] is recharging...")
+ return
+
+ last_fire = current_fire
+ playsound(user, 'sound/weapons/wave.ogg', 60, 1)
+
+ user.visible_message("[user] fires \the [src]!","You fire \the [src]!")
+
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(4, 1, A)
+ s.start()
+ s = new /datum/effect/effect/system/spark_spread
+ s.set_up(4, 1, user)
+ s.start()
+
+ var/turf/FromTurf = mode ? get_turf(user) : get_turf(A)
+ var/turf/ToTurf = mode ? get_turf(A) : get_turf(user)
+
+ for(var/obj/O in FromTurf)
+ if(O.anchored) continue
+ if(prob(5))
+ O.forceMove(pick(trange(24,user)))
+ else
+ O.forceMove(ToTurf)
+
+ for(var/mob/living/M in FromTurf)
+ if(prob(5))
+ M.forceMove(pick(trange(24,user)))
+ else
+ M.forceMove(ToTurf)
+
+/obj/item/weapon/bluespace_harpoon/attack_self(mob/living/user as mob)
+ return chande_fire_mode(user)
+
+/obj/item/weapon/bluespace_harpoon/verb/chande_fire_mode(mob/user as mob)
+ set name = "Change fire mode"
+ set category = "Object"
+ set src in oview(1)
+ if(transforming) return
+ mode = !mode
+ transforming = 1
+ to_chat(user,"You change \the [src]'s mode to [mode ? "transmiting" : "receiving"].")
+ update_icon()
+
+/obj/item/weapon/bluespace_harpoon/update_icon()
+ if(transforming)
+ switch(mode)
+ if(0)
+ flick("harpoon-2-change", src)
+ icon_state = "harpoon-1"
+ if(1)
+ flick("harpoon-1-change",src)
+ icon_state = "harpoon-2"
+ transforming = 0
+
//////////////////// Custom Ammo ////////////////////
//---------------- Beams ----------------
/obj/item/projectile/beam/eluger
@@ -705,3 +979,51 @@
icon = 'icons/obj/ammo_vr.dmi'
icon_state = "flash357"
projectile_type = /obj/item/projectile/energy/flash/strong
+
+//.32
+/obj/item/ammo_casing/a32
+ desc = "A .32 bullet casing."
+ caliber = ".32"
+ projectile_type = /obj/item/projectile/bullet/pistol
+
+/obj/item/ammo_magazine/a32
+ icon_state = "a762"
+ caliber = ".32"
+ ammo_type = /obj/item/ammo_casing/a32
+ max_ammo = 6
+ mag_type = MAGAZINE
+
+//.44
+/obj/item/ammo_casing/a44
+ desc = "A .44 bullet casing."
+ caliber = ".44"
+ projectile_type = /obj/item/projectile/bullet/pistol/strong
+
+/obj/item/ammo_magazine/a44
+ icon_state = "a762"
+ caliber = ".44"
+ ammo_type = /obj/item/ammo_casing/a44
+ max_ammo = 8
+ mag_type = MAGAZINE
+
+/obj/item/ammo_casing/a44/rubber
+ desc = "A .44 rubber bullet casing."
+ projectile_type = /obj/item/projectile/bullet/pistol/rubber/strong
+
+//.44 speedloaders
+/obj/item/ammo_magazine/a44sl
+ name = "speedloader (.44)"
+ desc = "A speedloader for .44 revolvers."
+ icon = 'icons/obj/ammo_vr.dmi'
+ icon_state = "357"
+ caliber = ".44"
+ matter = list(DEFAULT_WALL_MATERIAL = 1260)
+ ammo_type = /obj/item/ammo_casing/a44
+ max_ammo = 6
+ multiple_sprites = 1
+ mag_type = SPEEDLOADER
+
+/obj/item/ammo_magazine/a44sl/rubber
+ name = "speedloader (.44 rubber)"
+ icon_state = "r357"
+ ammo_type = /obj/item/ammo_casing/a44/rubber
\ No newline at end of file
diff --git a/icons/obj/gun_vr.dmi b/icons/obj/gun_vr.dmi
index 7924bb7770a..9ad5e01a80b 100644
Binary files a/icons/obj/gun_vr.dmi and b/icons/obj/gun_vr.dmi differ