From 9cb93925517aacf810dd21794bbe3ef7b815429e Mon Sep 17 00:00:00 2001
From: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Date: Wed, 1 Jan 2025 14:01:55 +1000
Subject: [PATCH] Removes the fake fake trick revolver, and the weird old
(cursed)russian one (#27435)
* Removes the fake fake trick revolver, and the weird russian one
* ARRGUH
* Update code/game/objects/items/toys.dm
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
* Update code/game/objects/items/toys.dm
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
* i hate merge conflicts
* AAAAAAAAAAAAAGHu
---------
Signed-off-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
---
.../LavaRuins/lavaland_surface_greed.dmm | 2 +-
.../RandomRuins/SpaceRuins/derelict5.dmm | 2 +-
_maps/map_files/stations/boxstation.dmm | 2 +-
_maps/map_files/stations/cerestation.dmm | 27 +++--
_maps/map_files/stations/deltastation.dmm | 44 ++++----
_maps/map_files/stations/emeraldstation.dmm | 2 +-
_maps/map_files/stations/metastation.dmm | 2 +-
code/game/objects/items/toys.dm | 70 ++----------
.../projectiles/guns/projectile/revolver.dm | 105 ------------------
9 files changed, 53 insertions(+), 203 deletions(-)
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
index b701d975b9d..2b638494762 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
@@ -14,7 +14,7 @@
/area/ruin/powered/greed)
"e" = (
/obj/structure/table/wood/poker,
-/obj/item/gun/projectile/revolver/russian/soul,
+/obj/item/toy/russian_revolver/soul,
/obj/machinery/light/small{
dir = 1
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
index 4435ee1f2c5..a57154509b6 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
@@ -172,7 +172,7 @@
/area/ruin/space/unpowered)
"xQ" = (
/obj/structure/table,
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/turf/simulated/floor/plasteel,
/area/ruin/space/unpowered)
"yq" = (
diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm
index 1a26fc8f15a..b635a75832e 100644
--- a/_maps/map_files/stations/boxstation.dmm
+++ b/_maps/map_files/stations/boxstation.dmm
@@ -64445,7 +64445,7 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
/obj/item/lighter/zippo/nt_rep,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm
index cf543394d43..9bde68fd932 100644
--- a/_maps/map_files/stations/cerestation.dmm
+++ b/_maps/map_files/stations/cerestation.dmm
@@ -2733,10 +2733,11 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
+/obj/item/toy/russian_revolver,
+/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
/obj/item/lighter/zippo/nt_rep,
-/obj/item/toy/figure/crew/captain,
-/obj/item/gun/projectile/revolver/russian,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
+/obj/item/toy/figure/crew/captain,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/carpet/royalblack,
/area/station/command/office/captain)
@@ -39074,6 +39075,17 @@
icon_state = "floorgrime"
},
/area/station/security/permabrig)
+"hhl" = (
+/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/toy/russian_revolver,
+/obj/effect/landmark/spawner/rev,
+/turf/simulated/floor/wood,
+/area/station/maintenance/gambling_den)
"hhs" = (
/obj/structure/fence{
dir = 4
@@ -82799,15 +82811,6 @@
icon_state = "arrival"
},
/area/station/hallway/secondary/entry/east)
-"sls" = (
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/item/gun/projectile/revolver/russian,
-/obj/effect/landmark/spawner/rev,
-/turf/simulated/floor/wood,
-/area/station/maintenance/gambling_den)
"slw" = (
/obj/structure/gunrack,
/obj/item/gun/projectile/shotgun/riot{
@@ -130203,7 +130206,7 @@ dgP
dgP
dgP
jyM
-sls
+hhl
nmx
eMb
hUU
diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm
index be717ee4626..142f79b280f 100644
--- a/_maps/map_files/stations/deltastation.dmm
+++ b/_maps/map_files/stations/deltastation.dmm
@@ -57248,6 +57248,28 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
+"etC" = (
+/obj/structure/safe/floor{
+ known_by = list("captain")
+ },
+/obj/item/toy/russian_revolver,
+/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
+/obj/item/lighter/zippo/nt_rep,
+/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
+/obj/item/toy/figure/crew/captain,
+/obj/effect/mapping_helpers/airlock/windoor/access/any/security/doors{
+ dir = 8
+ },
+/obj/machinery/door/window{
+ dir = 8
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/command/office/captain/bedroom)
"etR" = (
/obj/structure/extinguisher_cabinet{
name = "east bump";
@@ -74026,26 +74048,6 @@
},
/turf/simulated/floor/plasteel/dark,
/area/station/engineering/gravitygenerator)
-"nYv" = (
-/obj/machinery/door/window{
- dir = 8
- },
-/obj/effect/mapping_helpers/airlock/windoor/access/any/security/doors{
- dir = 8
- },
-/obj/structure/safe/floor{
- known_by = list("captain")
- },
-/obj/item/gun/projectile/revolver/russian,
-/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
-/obj/item/lighter/zippo/nt_rep,
-/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
-/obj/item/toy/figure/crew/captain,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/carpet/black,
-/area/station/command/office/captain/bedroom)
"nYw" = (
/turf/simulated/floor/plasteel,
/area/station/maintenance/fore)
@@ -136619,7 +136621,7 @@ bYD
bYD
bYD
car
-nYv
+etC
cdY
bYD
chy
diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm
index 79307aebe15..086242ff87a 100644
--- a/_maps/map_files/stations/emeraldstation.dmm
+++ b/_maps/map_files/stations/emeraldstation.dmm
@@ -46236,7 +46236,7 @@
known_by = list("captain")
},
/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/lighter/zippo/nt_rep,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
/obj/item/toy/figure/crew/captain,
diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm
index e2188f2b55f..498f6efd9b1 100644
--- a/_maps/map_files/stations/metastation.dmm
+++ b/_maps/map_files/stations/metastation.dmm
@@ -19643,7 +19643,7 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
/obj/item/lighter/zippo/nt_rep,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index a1bf9fb3bb6..8190b14d1a4 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1485,6 +1485,7 @@
attack_verb = list("struck", "hit", "bashed")
var/bullets_left = 0
var/max_shots = 6
+ var/cursed_shot = FALSE
/obj/item/toy/russian_revolver/suicide_act(mob/user)
user.visible_message("[user] quickly loads six bullets into [src]'s cylinder and points it at [user.p_their()] head before pulling the trigger! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -1537,6 +1538,11 @@
playsound(src, 'sound/weapons/gunshots/gunshot_strong.ogg', 50, 1)
user.visible_message("[src] goes off!")
post_shot(user)
+ if(cursed_shot)
+ var/obj/item/soulstone/anybody/SS = new /obj/item/soulstone/anybody(get_turf(src))
+ SS.transfer_soul("FORCE", user)
+ user.death(FALSE)
+ user.visible_message("[user.name]'s soul is captured by [src]!", "You've lost the gamble! Your soul is forfeit!")
user.apply_damage(300, BRUTE, zone, sharp = TRUE, used_weapon = "Self-inflicted gunshot wound to the [zone].")
user.bleed(BLOOD_VOLUME_NORMAL)
user.death() // Just in case
@@ -1547,66 +1553,10 @@
to_chat(user, "[src] needs to be reloaded.")
return FALSE
-/obj/item/toy/russian_revolver/trick_revolver
- name = "\improper .357 revolver"
- desc = "A suspicious revolver. Uses .357 ammo."
- icon_state = "revolver"
- max_shots = 1
- var/fake_bullets = 0
-
-/obj/item/toy/russian_revolver/trick_revolver/New()
- ..()
- fake_bullets = rand(2, 7)
-
-/obj/item/toy/russian_revolver/trick_revolver/examine(mob/user) //Sneaky sneaky
- . = ..()
- . += "Use a pen on it to rename it."
- . += "Has [fake_bullets] round\s remaining."
- . += "Use in hand to empty the gun's ammo reserves."
- . += "[fake_bullets] of those are live rounds."
- . += "You can Alt-Click [src] to spin it's barrel."
-
-/obj/item/toy/russian_revolver/trick_revolver/post_shot(user)
- to_chat(user, "[src] did look pretty dodgey!")
- SEND_SOUND(user, sound('sound/misc/sadtrombone.ogg')) //HONK
-
-/obj/item/toy/russian_revolver/trick_revolver/AltClick(mob/user)
- if(user.stat || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user))
- return
-
- to_chat(user, "You go to spin the chamber... and it goes off in your face!")
- shoot_gun(user)
-
-/obj/item/toy/russian_revolver/trick_revolver/activate_self(mob/user)
- if(..())
- return
- if(!bullets_left) //You can re-arm the trap...
- user.visible_message("[user] loads a bullet into [src]'s cylinder before spinning it.")
- spin_cylinder()
- else //But if you try to spin it to see if it was fake...
- user.visible_message("[user] tries to empty [src], but it goes off in their face!")
- shoot_gun(user)
-
-/obj/item/toy/russian_revolver/trick_revolver/attack_by(obj/item/attacking, mob/user, params)
- if(..())
- return FINISH_ATTACK
- if(is_pen(attacking))
- to_chat(user, "You go to write on [src].. and it goes off in your face!")
- shoot_gun(user)
- if(istype(attacking, /obj/item/ammo_casing/a357))
- to_chat(user, "You go to load a bullet into [src].. and it goes off in your face!")
- shoot_gun(user)
- if(istype(attacking, /obj/item/ammo_box/a357))
- to_chat(user, "You go to speedload [src].. and it goes off in your face!")
- shoot_gun(user)
-
-/obj/item/toy/russian_revolver/trick_revolver/run_pointed_on_item(mob/pointer_mob, atom/target_atom)
- if(target_atom != src)
- pointer_mob.visible_message("[pointer_mob] points [src] at- and [src] goes off in their hand!")
- shoot_gun(pointer_mob)
- return TRUE
- return ..()
-
+/obj/item/toy/russian_revolver/soul
+ name = "cursed russian revolver"
+ desc = "To play with this revolver requires wagering your very soul."
+ cursed_shot = TRUE
/*
* Rubber Chainsaw
*/
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index 8a82da35600..ff3ef65d932 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -197,111 +197,6 @@
origin_tech = "combat=3;biotech=5"
mag_type = /obj/item/ammo_box/magazine/internal/overgrown
-// A gun to play Russian Roulette!
-// You can spin the chamber to randomize the position of the bullet.
-
-/obj/item/gun/projectile/revolver/russian
- name = "\improper Russian Revolver"
- desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism that spins the chamber before each trigger pull."
- icon_state = "russian_revolver"
- origin_tech = "combat=2;materials=2"
- mag_type = /obj/item/ammo_box/magazine/internal/rus357
- var/spun = 0
-
-
-/obj/item/gun/projectile/revolver/russian/Initialize(mapload)
- . = ..()
- Spin()
- update_icon()
-
-/obj/item/gun/projectile/revolver/russian/proc/Spin()
- chambered = null
- var/random = rand(1, magazine.max_ammo)
- if(random <= get_ammo(0,0))
- chamber_round()
- spun = 1
-
-/obj/item/gun/projectile/revolver/russian/attackby__legacy__attackchain(obj/item/A, mob/user, params)
- var/num_loaded = ..()
- if(num_loaded)
- user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.")
- else
- user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.")
- if(get_ammo() > 0)
- Spin()
- update_icon()
- A.update_icon()
- return
-
-/obj/item/gun/projectile/revolver/russian/attack_self__legacy__attackchain(mob/user)
- if(!spun && can_shoot())
- user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.")
- Spin()
- else
- var/num_unloaded = 0
- while(get_ammo() > 0)
- var/obj/item/ammo_casing/CB
- CB = magazine.get_round()
- chambered = null
- CB.loc = get_turf(loc)
- CB.update_icon()
- playsound(get_turf(CB), "casingdrop", 60, 1)
- num_unloaded++
- if(num_unloaded)
- to_chat(user, "You unload [num_unloaded] shell\s from [src].")
- else
- to_chat(user, "[src] is empty.")
-
-/obj/item/gun/projectile/revolver/russian/afterattack__legacy__attackchain(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params)
- if(flag)
- if(!(target in user.contents) && ismob(target))
- if(user.a_intent == INTENT_HARM) // Flogging action
- return
-
- if(isliving(user))
- if(!can_trigger_gun(user))
- return
- if(target != user)
- if(ismob(target))
- to_chat(user, "A mechanism prevents you from shooting anyone but yourself!")
- return
-
- if(ishuman(user))
- if(!spun)
- to_chat(user, "You need to spin the revolver's chamber first!")
- return
-
- spun = 0
-
- if(chambered)
- var/obj/item/ammo_casing/AC = chambered
- if(AC.fire(user, user, firer_source_atom = src))
- playsound(user, fire_sound, 50, 1)
- var/zone = check_zone(user.zone_selected)
- if(zone == "head" || zone == "eyes" || zone == "mouth")
- shoot_self(user, zone)
- else
- user.visible_message("[user.name] cowardly fires [src] at [user.p_their()] [zone]!", "You cowardly fire [src] at your [zone]!", "You hear a gunshot!")
- return
-
- user.visible_message("*click*")
- playsound(user, 'sound/weapons/empty.ogg', 100, 1)
-
-/obj/item/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 [user.p_their()] head!", "You fire [src] at your head!", "You hear a gunshot!")
-
-/obj/item/gun/projectile/revolver/russian/soul
- name = "cursed Russian revolver"
- desc = "To play with this revolver requires wagering your very soul."
-
-/obj/item/gun/projectile/revolver/russian/soul/shoot_self(mob/living/user)
- ..()
- var/obj/item/soulstone/anybody/SS = new /obj/item/soulstone/anybody(get_turf(src))
- SS.transfer_soul("FORCE", user)
- user.death(FALSE)
- user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfeit!")
-
/obj/item/gun/projectile/revolver/capgun
name = "cap gun"
desc = "Looks almost like the real thing! Ages 8 and up."