diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm
index f0248c3076e..bc6e64bdacc 100644
--- a/code/game/gamemodes/wizard/soulstone.dm
+++ b/code/game/gamemodes/wizard/soulstone.dm
@@ -224,18 +224,19 @@
S.name = "Shade of [T.real_name]"
S.real_name = "Shade of [T.real_name]"
S.key = T.key
- S.faction |= "\ref[U]" //Add the master as a faction, allowing inter-mob cooperation
- if(iscultist(U))
+ if(U)
+ S.faction |= "\ref[U]" //Add the master as a faction, allowing inter-mob cooperation
+ if(U && iscultist(U))
ticker.mode.add_cultist(S.mind,2)
S.cancel_camera()
C.icon_state = "soulstone2"
C.name = "Soul Stone: [S.real_name]"
- if(iswizard(U) || usability)
+ if(U && (iswizard(U) || usability))
S << "Your soul has been captured! You are now bound to [U.real_name]'s will. Help them succeed in their goals at all costs."
- else if(iscultist(U))
+ else if(U && iscultist(U))
S << "Your soul has been captured! You are now bound to the cult's will. Help them succeed in their goals at all costs."
C.imprinted = "[S.name]"
- if(vic)
+ if(vic && U)
U << "Capture successful!: [T.real_name]'s soul has been ripped from their body and stored within the soul stone."
U << "The soulstone has been imprinted with [S.real_name]'s mind, it will no longer react to other souls."
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index eb588cfa157..68aeeebcd52 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -251,11 +251,26 @@
var/obj/item/organ/limb/affecting = H.get_organ(check_zone(user.zone_selected))
var/limb_name = affecting.getDisplayName()
if(affecting.name == "head" || affecting.name == "eyes" || affecting.name == "mouth")
- user.apply_damage(300, BRUTE, affecting)
- user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!")
+ shoot_self(user, affecting)
else
user.visible_message("[user.name] cowardly fires [src] at \his [limb_name]!", "You cowardly fire [src] at your [limb_name]!", "You hear a gunshot!")
return
user.visible_message("*click*")
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
+
+/obj/item/weapon/gun/projectile/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head")
+ user.apply_damage(300, BRUTE, affecting)
+ user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a gunshot!")
+
+/obj/item/weapon/gun/projectile/revolver/russian/soul
+ name = "cursed russian revolver"
+ desc = "To play with this revolver requires wagering your very soul."
+
+/obj/item/weapon/gun/projectile/revolver/russian/soul/shoot_self(mob/living/user)
+ ..()
+ var/obj/item/device/soulstone/anybody/SS = new /obj/item/device/soulstone/anybody(get_turf(src))
+ if(!SS.transfer_soul("FORCE", user)) //Something went wrong
+ qdel(SS)
+ return
+ user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfiet!")
\ No newline at end of file