From e70b03f770f0c638dd55a5450bd6ccc8d48c25a0 Mon Sep 17 00:00:00 2001
From: qweq12yt <45515587+qweq12yt@users.noreply.github.com>
Date: Wed, 17 Mar 2021 15:13:35 -0300
Subject: [PATCH] fixes/balaces derringer/wind-up gun
---
.../boxes_magazines/internal/revolver.dm | 11 ++++++++--
.../projectiles/guns/ballistic/revolver.dm | 15 +++----------
code/modules/projectiles/guns/energy/laser.dm | 21 ++++++++-----------
3 files changed, 21 insertions(+), 26 deletions(-)
diff --git a/code/modules/projectiles/boxes_magazines/internal/revolver.dm b/code/modules/projectiles/boxes_magazines/internal/revolver.dm
index 06f9d2e3e8..ae704642b8 100644
--- a/code/modules/projectiles/boxes_magazines/internal/revolver.dm
+++ b/code/modules/projectiles/boxes_magazines/internal/revolver.dm
@@ -23,6 +23,13 @@
// just to keep consistent with the derringer being on revolver.dm
/obj/item/ammo_box/magazine/internal/cylinder/derringer
- caliber = "357"
- ammo_type = /obj/item/ammo_casing/a357
+ name = "derringer receiver"
+ caliber = list("38")
+ ammo_type = /obj/item/ammo_casing/c38/lethal // lets have it start loaded
max_ammo = 2
+
+// lets not let it reload with speedloadrs, it makes no sense! but maybe later lets allow it?
+/obj/item/ammo_box/magazine/internal/cylinder/derringer/attackby(obj/item/A, mob/user, params, silent, replace_spent)
+ if(istype(A, /obj/item/ammo_box/))
+ return
+ . = ..()
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index 92c9e9f67e..c444fd47f3 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -496,12 +496,9 @@
. += charge_bar
-//////////////////////
-// Derringer pistol //
-//////////////////////
-
// the derringer is neither a pistol or revolver, but for code sanity it will be here
-// two point blank shots will take them to nearly 0% if no armor, naturally suppresed, small size and doesn't show in mob sprite
+// the idea is for it to not show on your sprite, be silent, but also not deal much damage
+// also
/obj/item/gun/ballistic/revolver/derringer
name = "derringer pistol"
desc = "A favorite among dentists and vengeful heroes. Hides neatly inside your sleeves! Uses .357 rounds."
@@ -513,15 +510,9 @@
item_state = null
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/derringer
- suppressed = TRUE
+ suppressed = TRUE // it needs to be good at something
w_class = WEIGHT_CLASS_SMALL
- projectile_damage_multiplier =
// you can't spin a derringer!
/obj/item/gun/ballistic/revolver/derringer/do_spin()
return
-
-// how to make it impossible to use speedloaders?
-/*/obj/item/gun/ballistic/revolver/derringer/attackby(obj/item/A, mob/user, params)
- . = ..()
-*/
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 85942b920d..9dba515a28 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -247,7 +247,7 @@
process_fire(target, user, TRUE, params)
-// wind-up laser for your hilarious antics
+// part of contraband assortments
/obj/item/gun/energy/laser/windupgun
name = "wind-up rifle"
cell_type = /obj/item/stock_parts/cell/crap/empty // can't be so good right?
@@ -274,17 +274,14 @@
music_part = "sound/weapons/wind_up_3.ogg"
/obj/item/gun/energy/laser/windupgun/attack_self(mob/living/user)
- if(!(cell.charge > 0))
+ if(cell.charge < cell.maxcharge)
to_chat(user, "You begin turning the key...")
- set_music_state()
- playsound(user, music_part, 20, FALSE, ignore_walls = FALSE)
- var/done = FALSE
- if(do_after(user, 35, target = user))
- cell.give(cell.maxcharge)
- done = TRUE
- if(done)
- to_chat(user, "You fully wind up the laser gun!")
+ if(do_after(user, 20, target = user))
+ set_music_state()
+ playsound(user, music_part, 20, FALSE, ignore_walls = FALSE)
+ cell.give(100) // equivalent of one shot
+ to_chat(user, "[src.cell.charge / 100] shot\s loaded.")
else
- to_chat(user, "You need to stay still while winding it!")
+ to_chat(user, "You need to stay still to do this!")
else
- to_chat(user, "You must fully unload it first!")
+ to_chat(user, "It's already fully charged!")