diff --git a/code/game/objects/items/weapons/traps_vr.dm b/code/game/objects/items/weapons/traps_vr.dm new file mode 100644 index 0000000000..f1338f691d --- /dev/null +++ b/code/game/objects/items/weapons/traps_vr.dm @@ -0,0 +1,18 @@ +/obj/item/weapon/beartrap + slot_flags = SLOT_MASK + item_icons = list( + slot_wear_mask_str = 'icons/mob/mask_vr.dmi' + ) + +/obj/item/weapon/beartrap/equipped() + if(ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + if(H.wear_mask == src) + H.verbs |= /mob/living/proc/shred_limb_temp + else + H.verbs -= /mob/living/proc/shred_limb_temp + ..() + +/obj/item/weapon/beartrap/dropped(var/mob/user) + user.verbs -= /mob/living/proc/shred_limb_temp + ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm index 493823422c..4419f887c9 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm @@ -664,7 +664,7 @@ var/list/choices = list() for(var/mob/living/carbon/human/M in oviewers(1)) choices += M - + if(!choices.len) to_chat(src,"There's nobody nearby to use this on.") @@ -712,7 +712,7 @@ if(can_shred(T) != T) to_chat(src,"Looks like you lost your chance...") return - + //Removing an internal organ if(T_int && T_int.damage >= 25) //Internal organ and it's been severely damaged T.apply_damage(15, BRUTE, T_ext) //Damage the external organ they're going through. @@ -727,7 +727,7 @@ //Removing an external organ else if(!T_int && (T_ext.damage >= 25 || T_ext.brute_dam >= 25)) T_ext.droplimb(1,DROPLIMB_EDGE) //Clean cut so it doesn't kill the prey completely. - + //Is it groin/chest? You can't remove those. if(T_ext.cannot_amputate) T.apply_damage(25, BRUTE, T_ext) @@ -740,14 +740,20 @@ visible_message("[src] tears off [T]'s [T_ext.name]!","You tear off [T]'s [T_ext.name]!") //Not targeting an internal organ w/ > 25 damage , and the limb doesn't have < 25 damage. - else + else if(T_int) T_int.damage = 25 //Internal organs can only take damage, not brute damage. T.apply_damage(25, BRUTE, T_ext) visible_message("[src] severely damages [T]'s [T_ext.name]!") - + add_attack_logs(src,T,"Shredded (hardvore)") +/mob/living/proc/shred_limb_temp() + set name = "Damage/Remove Prey's Organ (beartrap)" + set desc = "Severely damages prey's organ. If the limb is already severely damaged, it will be torn off." + set category = "Abilities" + shred_limb() + /mob/living/proc/flying_toggle() set name = "Toggle Flight" set desc = "While flying over open spaces, you will use up some nutrition. If you run out nutrition, you will fall. Additionally, you can't fly if you are too heavy." diff --git a/icons/mob/mask_vr.dmi b/icons/mob/mask_vr.dmi index 3315852358..0d3c0479b2 100644 Binary files a/icons/mob/mask_vr.dmi and b/icons/mob/mask_vr.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 36fc575903..f06bef7f30 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1042,6 +1042,7 @@ #include "code\game\objects\items\weapons\tools.dm" #include "code\game\objects\items\weapons\towels.dm" #include "code\game\objects\items\weapons\traps.dm" +#include "code\game\objects\items\weapons\traps_vr.dm" #include "code\game\objects\items\weapons\trays.dm" #include "code\game\objects\items\weapons\weaponry.dm" #include "code\game\objects\items\weapons\weldbackpack.dm"