diff --git a/code/datums/traits/negative/gunslinger.dm b/code/datums/traits/negative/gunslinger.dm new file mode 100644 index 000000000000..2cd5ea6b53cd --- /dev/null +++ b/code/datums/traits/negative/gunslinger.dm @@ -0,0 +1,8 @@ +/datum/quirk/gunslinger + 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 = -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 diff --git a/code/datums/traits/neutral/gunslinger.dm b/code/datums/traits/neutral/gunslinger.dm deleted file mode 100644 index bb9c35bc4f54..000000000000 --- a/code/datums/traits/neutral/gunslinger.dm +++ /dev/null @@ -1,8 +0,0 @@ -/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." - mob_traits = list(TRAIT_GUNSLINGER) - value = 0 - 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"