diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm
index 94bc9e8f69..c5fd513dcd 100644
--- a/code/game/objects/items/weapons/material/knives.dm
+++ b/code/game/objects/items/weapons/material/knives.dm
@@ -101,6 +101,7 @@
attack_verb = list("slashed", "chopped", "gouged", "ripped", "cut")
can_cleave = TRUE //Now hatchets inherit from the machete, and thus knives. Tables turned.
slot_flags = SLOT_BELT
+ default_material = "plasteel"
/obj/item/weapon/material/knife/tacknife/survival
name = "survival knife"
@@ -109,4 +110,5 @@
icon_state = "survivalknife"
item_state = "knife"
applies_material_colour = FALSE
+ default_material = "plasteel"
toolspeed = 2 // Use a real axe if you want to chop logs.
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index dd5528be07..28b5419e4c 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -632,8 +632,8 @@
//convenience var for defining the icon state for the overlay used when the clothing is worn.
//Also used by rolling/unrolling.
var/worn_state = null
- valid_accessory_slots = list("utility","armband","decor","over")
- restricted_accessory_slots = list("utility", "armband")
+ valid_accessory_slots = list("utility","armband","sheath","decor","over") //VOREStation Edit - Adds Machete Sheath
+ restricted_accessory_slots = list("utility", "armband", "sheath") //VOREStation Edit - Adds Machete Sheath
var/icon/rolled_down_icon = 'icons/mob/uniform_rolled_down.dmi'
var/icon/rolled_down_sleeves_icon = 'icons/mob/uniform_sleeves_rolled.dmi'
diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm
index ba1a4f3b17..fe4e3e49b3 100644
--- a/code/modules/clothing/under/accessories/accessory_vr.dm
+++ b/code/modules/clothing/under/accessories/accessory_vr.dm
@@ -177,3 +177,16 @@
to_chat(user,"You set the [name]'s tag to '[str]'.")
name = initial(name) + " ([str])"
desc = initial(desc) + " The tag says \"[str]\"."
+
+//Machete Holsters
+/obj/item/clothing/accessory/holster/machete
+ name = "machete sheath"
+ desc = "A handsome synthetic leather sheath with matching belt."
+ icon = 'icons/obj/clothing/ties_vr.dmi'
+ icon_override = 'icons/mob/ties_vr.dmi'
+ icon_state = "holster_machete"
+ slot = "sheath"
+ concealed_holster = 0
+ can_hold = list(/obj/item/weapon/material/knife/machete)
+ //sound_in = 'sound/effects/holster/sheathin.ogg'
+ //sound_out = 'sound/effects/holster/sheathout.ogg'
diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm
index b97ae6fc3f..d79ab08cc6 100644
--- a/code/modules/clothing/under/accessories/holster.dm
+++ b/code/modules/clothing/under/accessories/holster.dm
@@ -3,6 +3,7 @@
desc = "A handgun holster."
icon_state = "holster"
slot = "utility"
+ var/list/can_hold //VOREStation Edit
concealed_holster = 1
var/obj/item/holstered = null
@@ -10,8 +11,14 @@
if(holstered && istype(user))
user << "There is already \a [holstered] holstered here!"
return
+ //VOREStation Edit - Machete sheath support
+ if (can_hold)
+ if(!is_type_in_list(I,can_hold))
+ to_chat(user, "[I] won't fit in [src]!")
+ return
- if (!(I.slot_flags & SLOT_HOLSTER))
+ else if (!(I.slot_flags & SLOT_HOLSTER))
+ //VOREStation Edit End
user << "[I] won't fit in [src]!"
return
@@ -38,8 +45,8 @@
else
if(user.a_intent == I_HURT)
usr.visible_message(
- "[user] draws \the [holstered], ready to shoot!",
- "You draw \the [holstered], ready to shoot!"
+ "[user] draws \the [holstered], ready to go!", //VOREStation Edit
+ "You draw \the [holstered], ready to go!" //VOREStation Edit
)
else
user.visible_message(
diff --git a/code/modules/vore/fluffstuff/custom_guns_vr.dm b/code/modules/vore/fluffstuff/custom_guns_vr.dm
index af03934ffc..c696182ae9 100644
--- a/code/modules/vore/fluffstuff/custom_guns_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_guns_vr.dm
@@ -520,11 +520,11 @@
/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"
+ if("stun") add_overlay("taser_pdw")
+ if("lethal") add_overlay("lazer_pdw")
/obj/item/weapon/gun/energy/gun/martin/update_icon()
- overlays.Cut()
+ cut_overlays()
update_mode()
/////////////////////////////////////////////////////
@@ -804,3 +804,32 @@
to_chat(user, "The safety device prevents the gun from firing this close to the facility.")
return 0
return ..()
+
+//Expeditionary Holdout Phaser
+/obj/item/weapon/gun/energy/frontier/locked/holdout
+ name = "holdout frontier phaser"
+ desc = "A recently introduced weapon intended for self defense by expeditionary support. It includes the same crank charger as the frontier phaser."
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "PDW"
+ item_state = "gun"
+ w_class = ITEMSIZE_SMALL
+ firemodes = list(
+ list(mode_name="normal", fire_delay=12, projectile_type=/obj/item/projectile/beam, charge_cost = 1200),
+ list(mode_name="low-power", fire_delay=8, projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 240),
+ )
+
+/obj/item/weapon/gun/energy/frontier/locked/holdout/proc/update_mode()
+ var/datum/firemode/current_mode = firemodes[sel_mode]
+ switch(current_mode.name)
+ if("low-power") add_overlay("taser_pdw")
+ if("normal") add_overlay("lazer_pdw")
+
+/obj/item/weapon/gun/energy/frontier/locked/holdout/update_icon()
+ cut_overlays()
+ if(recharging)
+ icon_state = "[initial(icon_state)]_pump"
+ update_held_icon()
+ return
+ else
+ icon_state = "[initial(icon_state)]"
+ update_mode()
diff --git a/icons/mob/ties_vr.dmi b/icons/mob/ties_vr.dmi
new file mode 100644
index 0000000000..2dec9f3781
Binary files /dev/null and b/icons/mob/ties_vr.dmi differ
diff --git a/icons/obj/clothing/ties_vr.dmi b/icons/obj/clothing/ties_vr.dmi
new file mode 100644
index 0000000000..d2ba4a0971
Binary files /dev/null and b/icons/obj/clothing/ties_vr.dmi differ
diff --git a/icons/obj/gun_vr.dmi b/icons/obj/gun_vr.dmi
index 88ff7bde89..afa2edaedc 100644
Binary files a/icons/obj/gun_vr.dmi and b/icons/obj/gun_vr.dmi differ
diff --git a/maps/southern_cross/structures/closets/misc.dm b/maps/southern_cross/structures/closets/misc.dm
index 6b5ea40f05..5472e786b1 100644
--- a/maps/southern_cross/structures/closets/misc.dm
+++ b/maps/southern_cross/structures/closets/misc.dm
@@ -61,10 +61,9 @@
new /obj/item/weapon/storage/backpack(src)
else
new /obj/item/weapon/storage/backpack/satchel/norm(src)
- if(prob(75))
- new /obj/item/weapon/material/knife/tacknife/survival(src)
- else
- new /obj/item/weapon/material/knife/machete(src)
+ new /obj/item/weapon/material/knife/tacknife/survival(src) //VOREStation Edit
+ new /obj/item/weapon/material/knife/machete(src) //VOREStation Edit
+ new /obj/item/clothing/accessory/holster/machete(src) //VOREStation Edit
new /obj/item/clothing/under/explorer(src)
new /obj/item/clothing/suit/storage/hooded/explorer(src)
new /obj/item/clothing/mask/gas/explorer(src)
diff --git a/maps/tether/tether_things.dm b/maps/tether/tether_things.dm
index 2e8f11116e..55a5dace44 100644
--- a/maps/tether/tether_things.dm
+++ b/maps/tether/tether_things.dm
@@ -396,6 +396,8 @@ var/global/list/latejoin_tram = list()
..()
for(var/i = 1 to 4)
new /obj/item/weapon/gun/energy/frontier/locked(src)
+ for(var/i = 1 to 4)
+ new /obj/item/weapon/gun/energy/frontier/locked/holdout(src)
// Underdark mob spawners
/obj/tether_away_spawner/underdark_normal