From 9f76c1fd9421397ada673e2d0e5085cd0c10a068 Mon Sep 17 00:00:00 2001 From: LDip999 Date: Thu, 28 Aug 2025 14:39:53 +0200 Subject: [PATCH 1/3] gutting gunslinger --- code/datums/traits/{neutral => negative}/gunslinger.dm | 2 +- code/modules/projectiles/guns/ballistic.dm | 4 ++++ code/modules/projectiles/guns/ballistic/revolver.dm | 2 +- code/modules/projectiles/guns/ballistic/shotgun.dm | 4 +++- code/modules/projectiles/guns/energy.dm | 3 +++ shiptest.dme | 2 +- 6 files changed, 13 insertions(+), 4 deletions(-) rename code/datums/traits/{neutral => negative}/gunslinger.dm (98%) diff --git a/code/datums/traits/neutral/gunslinger.dm b/code/datums/traits/negative/gunslinger.dm similarity index 98% rename from code/datums/traits/neutral/gunslinger.dm rename to code/datums/traits/negative/gunslinger.dm index bb9c35bc4f54..0fe45f7aeab1 100644 --- a/code/datums/traits/neutral/gunslinger.dm +++ b/code/datums/traits/negative/gunslinger.dm @@ -2,7 +2,7 @@ name = "Gunslinger" desc = "You are one of the fastest guns in the frontier. Those new-fangled and complicated firearms don't suit you; pistols and semi-automatic rifles suit you better, but revolvers in particular were made for you. You can fan single action revolvers, flip any revolver, and have mastery of the greatest handgun ever made. NOT RECOMENDED FOR BEGINNERS. ADVANCED PLAYERS ONLY." mob_traits = list(TRAIT_GUNSLINGER) - value = 0 + value = -3 gain_text = span_notice("The HP Shadow is greatest handgun ever made.") lose_text = span_danger("...Who the hell would use such antiquated weapons in this year?") detectable = FALSE diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 52878fd7c519..880847889ecc 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -71,6 +71,7 @@ "y" = 18, ) ) + var/gunslingerGun = FALSE /obj/item/gun/ballistic/Initialize(mapload, spawn_empty) . = ..() @@ -331,6 +332,9 @@ return ..() /obj/item/gun/ballistic/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, burst_firing = FALSE, spread_override = 0, iteration = 0) + if(HAS_TRAIT(user, TRAIT_GUNSLINGER) && !gunslingerGun) + to_chat(user, span_warning("Ewwww what is this crap??? I NEED A REAL WEAPON!!!")) + return . = ..() //The gun actually firing postfire_empty_checks(.) diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index c4c7f53e703e..6949273acfe8 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -55,7 +55,7 @@ var/gate_loaded = FALSE //for stupid wild west shit var/gate_offset = 5 //for wild west shit 2: instead of ejecting the chambered round, eject the next round if 1 var/gate_load_direction = REVOLVER_AUTO_ROTATE_RIGHT_LOADING //when we load ammo with a box, which direction do we rotate the cylinder? unused with normal revolvers - + gunslingerGun = TRUE COOLDOWN_DECLARE(flip_cooldown) /obj/item/gun/ballistic/revolver/examine(mob/user) diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 4717c28156e7..af45e7e8812e 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -51,6 +51,8 @@ ///can this shotgun breach doors var/door_breaching_weapon = TRUE + gunslingerGun = TRUE + /obj/item/gun/ballistic/shotgun/attack_obj(obj/O, mob/living/user) if(door_breaching_weapon && istype(O, /obj/machinery/door/airlock)) var/obj/machinery/door/airlock/breaching = O @@ -115,7 +117,7 @@ wear_minor_threshold = 60 wear_major_threshold = 180 wear_maximum = 300 - + gunslingerGun = FALSE //Dual Feed Shotgun /obj/item/gun/ballistic/shotgun/automatic/dual_tube diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 6b5a2b9921cc..260e6b0560d0 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -254,6 +254,9 @@ SEND_SIGNAL(src, COMSIG_GUN_CHAMBER_PROCESSED) /obj/item/gun/energy/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) + if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) + to_chat(user, span_warning("Ewwww what is this crap??? I NEED A REAL WEAPON!!!")) + return if(!chambered && can_shoot()) process_chamber() // If the gun was drained and then recharged, load a new shot. ..() //process the gunshot as normal diff --git a/shiptest.dme b/shiptest.dme index c433bf197914..75ad40942ddf 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -912,6 +912,7 @@ #include "code\datums\traits\negative\congenital_analgesia.dm" #include "code\datums\traits\negative\deafness.dm" #include "code\datums\traits\negative\frail.dm" +#include "code\datums\traits\negative\gunslinger.dm" #include "code\datums\traits\negative\heavy_sleeper.dm" #include "code\datums\traits\negative\light_drinker.dm" #include "code\datums\traits\negative\mute.dm" @@ -923,7 +924,6 @@ #include "code\datums\traits\neutral\ageusia.dm" #include "code\datums\traits\neutral\bald.dm" #include "code\datums\traits\neutral\deviant_tastes.dm" -#include "code\datums\traits\neutral\gunslinger.dm" #include "code\datums\traits\neutral\languages.dm" #include "code\datums\traits\neutral\monochromatic.dm" #include "code\datums\traits\neutral\musician.dm" From 56dbfe465e63825128eec3ae94b66acdf7737e14 Mon Sep 17 00:00:00 2001 From: LDip999 Date: Thu, 28 Aug 2025 15:15:55 +0200 Subject: [PATCH 2/3] updated gunslinger description --- code/datums/traits/negative/gunslinger.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative/gunslinger.dm b/code/datums/traits/negative/gunslinger.dm index 0fe45f7aeab1..ae3bd7d6a0a1 100644 --- a/code/datums/traits/negative/gunslinger.dm +++ b/code/datums/traits/negative/gunslinger.dm @@ -1,6 +1,6 @@ /datum/quirk/gunslinger name = "Gunslinger" - desc = "You are one of the fastest guns in the frontier. Those new-fangled and complicated firearms don't suit you; pistols and semi-automatic rifles suit you better, but revolvers in particular were made for you. You can fan single action revolvers, flip any revolver, and have mastery of the greatest handgun ever made. NOT RECOMENDED FOR BEGINNERS. ADVANCED PLAYERS ONLY." + desc = "You are one of the fastest guns in the frontier. These new guns physically repulse you, but revolvers in particular were made for you, along with shotguns and lever action rifles. You can fan single action revolvers, flip any revolver, and have mastery of the greatest handgun ever made. NOT RECOMENDED FOR BEGINNERS. ADVANCED PLAYERS ONLY." mob_traits = list(TRAIT_GUNSLINGER) value = -3 gain_text = span_notice("The HP Shadow is greatest handgun ever made.") From 4940acb5f3a8d6ad72d2cd78e5a93922ae5737c7 Mon Sep 17 00:00:00 2001 From: LDip999 Date: Wed, 3 Sep 2025 14:26:38 +0200 Subject: [PATCH 3/3] This thing is definietly not -3 --- code/datums/traits/negative/gunslinger.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative/gunslinger.dm b/code/datums/traits/negative/gunslinger.dm index ae3bd7d6a0a1..2cd5ea6b53cd 100644 --- a/code/datums/traits/negative/gunslinger.dm +++ b/code/datums/traits/negative/gunslinger.dm @@ -2,7 +2,7 @@ name = "Gunslinger" desc = "You are one of the fastest guns in the frontier. These new guns physically repulse you, but revolvers in particular were made for you, along with shotguns and lever action rifles. You can fan single action revolvers, flip any revolver, and have mastery of the greatest handgun ever made. NOT RECOMENDED FOR BEGINNERS. ADVANCED PLAYERS ONLY." mob_traits = list(TRAIT_GUNSLINGER) - value = -3 + value = -1 gain_text = span_notice("The HP Shadow is greatest handgun ever made.") lose_text = span_danger("...Who the hell would use such antiquated weapons in this year?") detectable = FALSE