Skip to content

Commit

Permalink
Removes the fake fake trick revolver, and the weird old (cursed)russi…
Browse files Browse the repository at this point in the history
…an 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 <[email protected]>
Signed-off-by: 1080pCat <[email protected]>

* Update code/game/objects/items/toys.dm

Co-authored-by: Luc <[email protected]>
Signed-off-by: 1080pCat <[email protected]>

* i hate merge conflicts

* AAAAAAAAAAAAAGHu

---------

Signed-off-by: 1080pCat <[email protected]>
Co-authored-by: Luc <[email protected]>
  • Loading branch information
1080pCat and lewcc authored Jan 1, 2025
1 parent 2b283f9 commit 9cb9392
Show file tree
Hide file tree
Showing 9 changed files with 53 additions and 203 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
},
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -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" = (
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/stations/boxstation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
27 changes: 15 additions & 12 deletions _maps/map_files/stations/cerestation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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{
Expand Down Expand Up @@ -130203,7 +130206,7 @@ dgP
dgP
dgP
jyM
sls
hhl
nmx
eMb
hUU
Expand Down
44 changes: 23 additions & 21 deletions _maps/map_files/stations/deltastation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -136619,7 +136621,7 @@ bYD
bYD
bYD
car
nYv
etC
cdY
bYD
chy
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/stations/emeraldstation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/stations/metastation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
70 changes: 10 additions & 60 deletions code/game/objects/items/toys.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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("<span class='suicide'>[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!</span>")
Expand Down Expand Up @@ -1537,6 +1538,11 @@
playsound(src, 'sound/weapons/gunshots/gunshot_strong.ogg', 50, 1)
user.visible_message("<span class='danger'>[src] goes off!</span>")
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("<span class='danger'>[user.name]'s soul is captured by [src]!</span>", "<span class='userdanger'>You've lost the gamble! Your soul is forfeit!</span>")
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
Expand All @@ -1547,66 +1553,10 @@
to_chat(user, "<span class='warning'>[src] needs to be reloaded.</span>")
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
. = ..()
. += "<span class='notice'>Use a pen on it to rename it.</span>"
. += "Has [fake_bullets] round\s remaining."
. += "<span class='notice'>Use in hand to empty the gun's ammo reserves.</span>"
. += "[fake_bullets] of those are live rounds."
. += "<span class='notice'>You can <b>Alt-Click</b> [src] to spin it's barrel.</span>"

/obj/item/toy/russian_revolver/trick_revolver/post_shot(user)
to_chat(user, "<span class='danger'>[src] did look pretty dodgey!</span>")
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, "<span class='warning'>You go to spin the chamber... and it goes off in your face!</span>")
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("<span class='warning'>[user] loads a bullet into [src]'s cylinder before spinning it.</span>")
spin_cylinder()
else //But if you try to spin it to see if it was fake...
user.visible_message("<span class='warning'>[user] tries to empty [src], but it goes off in their face!</span>")
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, "<span class='warning'>You go to write on [src].. and it goes off in your face!</span>")
shoot_gun(user)
if(istype(attacking, /obj/item/ammo_casing/a357))
to_chat(user, "<span class='warning'>You go to load a bullet into [src].. and it goes off in your face!</span>")
shoot_gun(user)
if(istype(attacking, /obj/item/ammo_box/a357))
to_chat(user, "<span class='warning'>You go to speedload [src].. and it goes off in your face!</span>")
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("<span class='danger'>[pointer_mob] points [src] at- and [src] goes off in their hand!</span>")
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
*/
Expand Down
105 changes: 0 additions & 105 deletions code/modules/projectiles/guns/projectile/revolver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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.", "<span class='notice'>You load a single bullet into the chamber and spin it.</span>")
else
user.visible_message("[user] spins the chamber of the revolver.", "<span class='notice'>You spin the revolver's chamber.</span>")
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.", "<span class='notice'>You spin the revolver's chamber.</span>")
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, "<span class='notice'>You unload [num_unloaded] shell\s from [src].</span>")
else
to_chat(user, "<span class='notice'>[src] is empty.</span>")

/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, "<span class='warning'>A mechanism prevents you from shooting anyone but yourself!</span>")
return

if(ishuman(user))
if(!spun)
to_chat(user, "<span class='warning'>You need to spin the revolver's chamber first!</span>")
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("<span class='danger'>[user.name] cowardly fires [src] at [user.p_their()] [zone]!</span>", "<span class='userdanger'>You cowardly fire [src] at your [zone]!</span>", "<span class='italics'>You hear a gunshot!</span>")
return

user.visible_message("<span class='danger'>*click*</span>")
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("<span class='danger'>[user.name] fires [src] at [user.p_their()] head!</span>", "<span class='userdanger'>You fire [src] at your head!</span>", "<span class='italics'>You hear a gunshot!</span>")

/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("<span class='danger'>[user.name]'s soul is captured by \the [src]!</span>", "<span class='userdanger'>You've lost the gamble! Your soul is forfeit!</span>")

/obj/item/gun/projectile/revolver/capgun
name = "cap gun"
desc = "Looks almost like the real thing! Ages 8 and up."
Expand Down

0 comments on commit 9cb9392

Please sign in to comment.