mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
[MIRROR] Replace some chat messages for guns with balloon alerts [MDB IGNORE] (#16879)
* Replace some chat messages for guns with balloon alerts (#70398) Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com> * Replace some chat messages for guns with balloon alerts * skyrat syncup Co-authored-by: VexingRaven <msgerbs@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com>
This commit is contained in:
co-authored by
MrMelbert
Mothblocks
John Willard
VexingRaven
tastyfish
parent
ca3d226c80
commit
db208c43a6
@@ -143,7 +143,7 @@
|
||||
return !user.contains(src)
|
||||
|
||||
/obj/item/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj)
|
||||
visible_message(span_warning("*click*"), vision_distance = COMBAT_MESSAGE_RANGE)
|
||||
balloon_alert_to_viewers("*click*")
|
||||
playsound(src, dry_fire_sound, 30, TRUE)
|
||||
|
||||
/obj/item/gun/proc/fire_sounds()
|
||||
@@ -196,10 +196,10 @@
|
||||
if (gunpoint_component)
|
||||
if(gunpoint_component.target == victim)
|
||||
return ..() //we're already holding them up, shoot that mans instead of complaining
|
||||
to_chat(user, span_warning("You are already holding someone up!"))
|
||||
balloon_alert(user, "already holding someone up!")
|
||||
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
||||
if (user == victim)
|
||||
to_chat(user,span_warning("You can't hold yourself up!"))
|
||||
balloon_alert(user, "can't hold yourself up!")
|
||||
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
||||
|
||||
user.AddComponent(/datum/component/gunpoint, victim, src)
|
||||
@@ -296,6 +296,7 @@
|
||||
return FALSE
|
||||
else
|
||||
to_chat(user, span_warning("[src]'s trigger is locked. This weapon doesn't have a firing pin installed!"))
|
||||
balloon_alert(user, "trigger locked, firing pin needed!")
|
||||
return FALSE
|
||||
|
||||
/obj/item/gun/proc/recharge_newshot()
|
||||
|
||||
@@ -262,11 +262,11 @@
|
||||
if (bolt_type == BOLT_TYPE_OPEN)
|
||||
if(!bolt_locked) //If it's an open bolt, racking again would do nothing
|
||||
if (user)
|
||||
to_chat(user, span_notice("[src]'s [bolt_wording] is already cocked!"))
|
||||
balloon_alert(user, "[bolt_wording] already cocked!")
|
||||
return
|
||||
bolt_locked = FALSE
|
||||
if (user)
|
||||
to_chat(user, span_notice("You rack the [bolt_wording] of [src]."))
|
||||
balloon_alert(user, "[bolt_wording] racked")
|
||||
process_chamber(!chambered, FALSE)
|
||||
if (bolt_type == BOLT_TYPE_LOCKING && !chambered)
|
||||
bolt_locked = TRUE
|
||||
@@ -279,7 +279,7 @@
|
||||
/obj/item/gun/ballistic/proc/drop_bolt(mob/user = null)
|
||||
playsound(src, bolt_drop_sound, bolt_drop_sound_volume, FALSE)
|
||||
if (user)
|
||||
to_chat(user, span_notice("You drop the [bolt_wording] of [src]."))
|
||||
balloon_alert(user, "[bolt_wording] dropped")
|
||||
chamber_round()
|
||||
bolt_locked = FALSE
|
||||
update_appearance()
|
||||
@@ -287,12 +287,12 @@
|
||||
///Handles all the logic needed for magazine insertion
|
||||
/obj/item/gun/ballistic/proc/insert_magazine(mob/user, obj/item/ammo_box/magazine/AM, display_message = TRUE)
|
||||
if(!istype(AM, mag_type))
|
||||
to_chat(user, span_warning("[AM] doesn't seem to fit into [src]..."))
|
||||
balloon_alert(user, "[AM.name] doesn't fit!")
|
||||
return FALSE
|
||||
if(user.transferItemToLoc(AM, src))
|
||||
magazine = AM
|
||||
if (display_message)
|
||||
to_chat(user, span_notice("You load a new [magazine_wording] into [src]."))
|
||||
balloon_alert(user, "[magazine_wording] loaded")
|
||||
playsound(src, load_empty_sound, load_sound_volume, load_sound_vary)
|
||||
if (bolt_type == BOLT_TYPE_OPEN && !bolt_locked)
|
||||
chamber_round(TRUE)
|
||||
@@ -314,7 +314,7 @@
|
||||
var/obj/item/ammo_box/magazine/old_mag = magazine
|
||||
if (tac_load)
|
||||
if (insert_magazine(user, tac_load, FALSE))
|
||||
to_chat(user, span_notice("You perform a tactical reload on [src]."))
|
||||
balloon_alert(user, "[magazine_wording] swapped")
|
||||
else
|
||||
to_chat(user, span_warning("You dropped the old [magazine_wording], but the new one doesn't fit. How embarassing."))
|
||||
magazine = null
|
||||
@@ -323,7 +323,7 @@
|
||||
user.put_in_hands(old_mag)
|
||||
old_mag.update_appearance()
|
||||
if (display_message)
|
||||
to_chat(user, span_notice("You pull the [magazine_wording] out of [src]."))
|
||||
balloon_alert(user, "[magazine_wording] unloaded")
|
||||
update_appearance()
|
||||
|
||||
SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD) //SKYRAT EDIT ADDITION
|
||||
@@ -344,7 +344,7 @@
|
||||
if (tac_reloads)
|
||||
eject_magazine(user, FALSE, AM)
|
||||
else
|
||||
to_chat(user, span_notice("There's already a [magazine_wording] in [src]."))
|
||||
balloon_alert(user, "already loaded!")
|
||||
return
|
||||
if (isammocasing(A) || istype(A, /obj/item/ammo_box))
|
||||
if (bolt_type == BOLT_TYPE_NO_BOLT || internal_magazine)
|
||||
@@ -353,7 +353,7 @@
|
||||
chambered = null
|
||||
var/num_loaded = magazine?.attackby(A, user, params, TRUE)
|
||||
if (num_loaded)
|
||||
to_chat(user, span_notice("You load [num_loaded] [cartridge_wording]\s into [src]."))
|
||||
balloon_alert(user, "[num_loaded] [cartridge_wording]\s loaded")
|
||||
playsound(src, load_sound, load_sound_volume, load_sound_vary)
|
||||
if (chambered == null && bolt_type == BOLT_TYPE_NO_BOLT)
|
||||
chamber_round()
|
||||
@@ -363,16 +363,16 @@
|
||||
if(istype(A, /obj/item/suppressor))
|
||||
var/obj/item/suppressor/S = A
|
||||
if(!can_suppress)
|
||||
to_chat(user, span_warning("You can't seem to figure out how to fit [S] on [src]!"))
|
||||
balloon_alert(user, "[S.name] doesn't fit!")
|
||||
return
|
||||
if(!user.is_holding(src))
|
||||
to_chat(user, span_warning("You need be holding [src] to fit [S] to it!"))
|
||||
balloon_alert(user, "not in hand!")
|
||||
return
|
||||
if(suppressed)
|
||||
to_chat(user, span_warning("[src] already has a suppressor!"))
|
||||
balloon_alert(user, "already has a supressor!")
|
||||
return
|
||||
if(user.transferItemToLoc(A, src))
|
||||
to_chat(user, span_notice("You screw [S] onto [src]."))
|
||||
balloon_alert(user, "[S.name] attached")
|
||||
install_suppressor(A)
|
||||
return
|
||||
if (can_be_sawn_off)
|
||||
@@ -426,7 +426,7 @@
|
||||
var/obj/item/suppressor/S = suppressed
|
||||
if(!user.is_holding(src))
|
||||
return ..()
|
||||
to_chat(user, span_notice("You unscrew [S] from [src]."))
|
||||
balloon_alert(user, "[S.name] removed")
|
||||
user.put_in_hands(S)
|
||||
clear_suppressor()
|
||||
|
||||
@@ -489,11 +489,11 @@
|
||||
if(T && is_station_level(T.z))
|
||||
SSblackbox.record_feedback("tally", "station_mess_created", 1, CB.name)
|
||||
if (num_unloaded)
|
||||
to_chat(user, span_notice("You unload [num_unloaded] [cartridge_wording]\s from [src]."))
|
||||
balloon_alert(user, "[num_unloaded] [cartridge_wording] unloaded")
|
||||
playsound(user, eject_sound, eject_sound_volume, eject_sound_vary)
|
||||
update_appearance()
|
||||
else
|
||||
to_chat(user, span_warning("[src] is empty!"))
|
||||
balloon_alert(user, "it's empty!")
|
||||
return
|
||||
if(bolt_type == BOLT_TYPE_LOCKING && bolt_locked)
|
||||
drop_bolt(user)
|
||||
@@ -579,10 +579,10 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
|
||||
if(!saw.get_sharpness() || (!is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW)) //needs to be sharp. Otherwise turned off eswords can cut this.
|
||||
return
|
||||
if(sawn_off)
|
||||
to_chat(user, span_warning("[src] is already shortened!"))
|
||||
balloon_alert(user, "it's already shortened!")
|
||||
return
|
||||
if(bayonet)
|
||||
to_chat(user, span_warning("You cannot saw-off [src] with [bayonet] attached!"))
|
||||
balloon_alert(user, "[bayonet.name] must be removed!")
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.visible_message(span_notice("[user] begins to shorten [src]."), span_notice("You begin to shorten [src]..."))
|
||||
@@ -615,7 +615,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
|
||||
|
||||
/obj/item/gun/ballistic/proc/guncleaning(mob/user, obj/item/A)
|
||||
if(misfire_probability == 0)
|
||||
to_chat(user, span_notice("[src] seems to be already clean of fouling."))
|
||||
balloon_alert(user, "it's already clean!")
|
||||
return
|
||||
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
if(!select)
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
to_chat(user, span_notice("You switch to semi-automatic."))
|
||||
balloon_alert(user, "switched to semi-automatic")
|
||||
else
|
||||
burst_size = initial(burst_size)
|
||||
fire_delay = initial(fire_delay)
|
||||
to_chat(user, span_notice("You switch to [burst_size]-round burst."))
|
||||
balloon_alert(user, "switched to [burst_size]-round burst")
|
||||
|
||||
playsound(user, 'sound/weapons/empty.ogg', 100, TRUE)
|
||||
update_appearance()
|
||||
@@ -194,23 +194,6 @@
|
||||
if(1)
|
||||
. += "[initial(icon_state)]_burst"
|
||||
|
||||
/obj/item/gun/ballistic/automatic/m90/burst_select()
|
||||
var/mob/living/carbon/human/user = usr
|
||||
switch(select)
|
||||
if(0)
|
||||
select = 1
|
||||
burst_size = initial(burst_size)
|
||||
fire_delay = initial(fire_delay)
|
||||
to_chat(user, span_notice("You switch to [burst_size]-rnd burst."))
|
||||
if(1)
|
||||
select = 0
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
to_chat(user, span_notice("You switch to semi-auto."))
|
||||
playsound(user, 'sound/weapons/empty.ogg', 100, TRUE)
|
||||
update_appearance()
|
||||
return
|
||||
|
||||
/obj/item/gun/ballistic/automatic/tommygun
|
||||
name = "\improper Thompson SMG"
|
||||
desc = "Based on the classic 'Chicago Typewriter'."
|
||||
@@ -305,7 +288,7 @@
|
||||
|
||||
/obj/item/gun/ballistic/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params)
|
||||
if(cover_open)
|
||||
to_chat(user, span_warning("[src]'s cover is open! Close it before firing!"))
|
||||
balloon_alert(user, "close the cover!")
|
||||
return
|
||||
else
|
||||
. = ..()
|
||||
@@ -317,13 +300,13 @@
|
||||
..()
|
||||
return
|
||||
if (!cover_open)
|
||||
to_chat(user, span_warning("[src]'s cover is closed! Open it before trying to remove the magazine!"))
|
||||
balloon_alert(user, "open the cover!")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/gun/ballistic/automatic/l6_saw/attackby(obj/item/A, mob/user, params)
|
||||
if(!cover_open && istype(A, mag_type))
|
||||
to_chat(user, span_warning("[src]'s dust cover prevents a magazine from being fit."))
|
||||
balloon_alert(user, "close the cover!")
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
weapon_weight = WEAPON_HEAVY
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
internal_magazine = TRUE
|
||||
cartridge_wording = "arrow"
|
||||
bolt_type = BOLT_TYPE_NO_BOLT
|
||||
var/drawn = FALSE
|
||||
|
||||
@@ -38,7 +39,7 @@
|
||||
|
||||
/obj/item/gun/ballistic/bow/attack_self(mob/user)
|
||||
if(chambered)
|
||||
to_chat(user, span_notice("You [drawn ? "release the tension on" : "draw the string on"] [src]."))
|
||||
balloon_alert(user, "[drawn ? "string released" : "string drawn"]")
|
||||
drawn = !drawn
|
||||
update_appearance()
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/obj/item/gun/ballistic/rifle/rack(mob/user = null)
|
||||
if (bolt_locked == FALSE)
|
||||
to_chat(user, span_notice("You open the bolt of \the [src]."))
|
||||
balloon_alert(user, "bolt opened")
|
||||
playsound(src, rack_sound, rack_sound_volume, rack_sound_vary)
|
||||
process_chamber(FALSE, FALSE, FALSE)
|
||||
bolt_locked = TRUE
|
||||
@@ -77,7 +77,7 @@
|
||||
unjam_chance = 10
|
||||
else
|
||||
unjam_chance += 10
|
||||
to_chat(user, span_warning("[src] is jammed!"))
|
||||
balloon_alert(user, "jammed!")
|
||||
playsound(user,'sound/weapons/jammed.ogg', 75, TRUE)
|
||||
return FALSE
|
||||
..()
|
||||
|
||||
@@ -110,9 +110,9 @@
|
||||
alternate_magazine = current_mag
|
||||
toggled = !toggled
|
||||
if(toggled)
|
||||
to_chat(user, span_notice("You switch to tube B."))
|
||||
balloon_alert(user, "switched to tube B")
|
||||
else
|
||||
to_chat(user, span_notice("You switch to tube A."))
|
||||
balloon_alert(user, "switched to tube A")
|
||||
|
||||
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/AltClick(mob/living/user)
|
||||
if(!user.canUseTopic(src, be_close = TRUE, no_dexterity = TRUE, no_tk = FALSE, need_hands = TRUE))
|
||||
@@ -202,7 +202,7 @@
|
||||
|
||||
/obj/item/gun/ballistic/shotgun/bulldog/attackby_secondary(obj/item/weapon, mob/user, params)
|
||||
if(!istype(weapon, secondary_magazine_type))
|
||||
to_chat(user, span_warning("[weapon] doesn't seem to fit into [src]..."))
|
||||
balloon_alert(user, "[weapon.name] doesn't fit!")
|
||||
return SECONDARY_ATTACK_CALL_NORMAL
|
||||
if(!user.transferItemToLoc(weapon, src))
|
||||
to_chat(user, span_warning("You cannot seem to get [src] out of your hands!"))
|
||||
@@ -211,7 +211,7 @@
|
||||
secondary_magazine = weapon
|
||||
if(old_mag)
|
||||
user.put_in_hands(old_mag)
|
||||
to_chat(user, span_notice("You load a new [magazine_wording] into [src]."))
|
||||
balloon_alert(user, "secondary [magazine_wording] loaded")
|
||||
playsound(src, load_empty_sound, load_sound_volume, load_sound_vary)
|
||||
update_appearance()
|
||||
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
|
||||
/obj/item/gun/energy/beam_rifle/attack_self(mob/user)
|
||||
projectile_setting_pierce = !projectile_setting_pierce
|
||||
to_chat(user, span_boldnotice("You set \the [src] to [projectile_setting_pierce? "pierce":"impact"] mode."))
|
||||
balloon_alert(user, "switched to [projectile_setting_pierce ? "pierce":"impact"] mode")
|
||||
aiming_beam()
|
||||
|
||||
/obj/item/gun/energy/beam_rifle/proc/update_slowdown()
|
||||
|
||||
@@ -137,11 +137,11 @@
|
||||
charge_multiplier = 1
|
||||
if(charge_multiplier)
|
||||
if(cell.charge == cell.maxcharge)
|
||||
to_chat(user, span_notice("You try to insert [I] into [src], but it's fully charged.")) //my cell is round and full
|
||||
balloon_alert(user, "already fully charged!")
|
||||
return
|
||||
I.use(1)
|
||||
cell.give(500*charge_multiplier)
|
||||
to_chat(user, span_notice("You insert [I] in [src], recharging it."))
|
||||
balloon_alert(user, "cell recharged")
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -159,13 +159,13 @@
|
||||
// Amount cannot be defaulted to 1: most of the code specifies 0 in the call.
|
||||
/obj/item/gun/energy/plasmacutter/tool_use_check(mob/living/user, amount)
|
||||
if(QDELETED(cell))
|
||||
to_chat(user, span_warning("[src] does not have a cell, and cannot be used!"))
|
||||
balloon_alert(user, "no cell inserted!")
|
||||
return FALSE
|
||||
// Amount cannot be used if drain is made continuous, e.g. amount = 5, charge_weld = 25
|
||||
// Then it'll drain 125 at first and 25 periodically, but fail if charge dips below 125 even though it still can finish action
|
||||
// Alternately it'll need to drain amount*charge_weld every period, which is either obscene or makes it free for other uses
|
||||
if(amount ? cell.charge < charge_weld * amount : cell.charge < charge_weld)
|
||||
to_chat(user, span_warning("You need more charge to complete this task!"))
|
||||
balloon_alert(user, "not enough charge!")
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -25,10 +25,9 @@
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
grenades += I
|
||||
to_chat(user, span_notice("You put the grenade in the grenade launcher."))
|
||||
to_chat(user, span_notice("[grenades.len] / [max_grenades] Grenades."))
|
||||
balloon_alert(user, "[grenades.len] / [max_grenades] grenades loaded")
|
||||
else
|
||||
to_chat(usr, span_warning("The grenade launcher cannot hold more grenades!"))
|
||||
balloon_alert(user, "it's already full!")
|
||||
|
||||
/obj/item/gun/grenadelauncher/can_shoot()
|
||||
return grenades.len
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
force = 18
|
||||
|
||||
/obj/item/gun/magic/hook/shoot_with_empty_chamber(mob/living/user)
|
||||
to_chat(user, span_warning("[src] isn't ready to fire yet!"))
|
||||
balloon_alert(user, "not ready yet!")
|
||||
|
||||
/obj/item/gun/magic/hook/can_trigger_gun(mob/living/user) // This isn't really a gun, so it shouldn't be checking for TRAIT_NOGUNS, a firing pin (pinless), or a trigger guard (guardless)
|
||||
return TRUE
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
/obj/item/gun/syringe/attack_self(mob/living/user)
|
||||
if(!syringes.len)
|
||||
to_chat(user, span_warning("[src] is empty!"))
|
||||
balloon_alert(user, "it's empty!")
|
||||
return FALSE
|
||||
|
||||
var/obj/item/reagent_containers/syringe/S = syringes[syringes.len]
|
||||
@@ -70,27 +70,27 @@
|
||||
user.put_in_hands(S)
|
||||
|
||||
syringes.Remove(S)
|
||||
to_chat(user, span_notice("You unload [S] from \the [src]."))
|
||||
balloon_alert(user, "[S.name] unloaded")
|
||||
update_appearance()
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/item/gun/syringe/attackby(obj/item/A, mob/user, params, show_msg = TRUE)
|
||||
if(istype(A, /obj/item/reagent_containers/syringe/bluespace))
|
||||
to_chat(user, span_notice("[A] is too big to load into [src]."))
|
||||
balloon_alert(user, "[A.name] is too big!")
|
||||
return TRUE
|
||||
if(istype(A, /obj/item/reagent_containers/syringe))
|
||||
if(syringes.len < max_syringes)
|
||||
if(!user.transferItemToLoc(A, src))
|
||||
return FALSE
|
||||
to_chat(user, span_notice("You load [A] into \the [src]."))
|
||||
balloon_alert(user, "[A.name] loaded")
|
||||
syringes += A
|
||||
recharge_newshot()
|
||||
update_appearance()
|
||||
playsound(loc, load_sound, 40)
|
||||
return TRUE
|
||||
else
|
||||
to_chat(user, span_warning("[src] cannot hold more syringes!"))
|
||||
balloon_alert(user, "it's already full!")
|
||||
return FALSE
|
||||
|
||||
/obj/item/gun/syringe/update_overlays()
|
||||
@@ -160,19 +160,19 @@
|
||||
if(istype(A, /obj/item/dnainjector))
|
||||
var/obj/item/dnainjector/D = A
|
||||
if(D.used)
|
||||
to_chat(user, span_warning("This injector is used up!"))
|
||||
balloon_alert("[D.name] is used up!")
|
||||
return
|
||||
if(syringes.len < max_syringes)
|
||||
if(!user.transferItemToLoc(D, src))
|
||||
return FALSE
|
||||
to_chat(user, span_notice("You load \the [D] into \the [src]."))
|
||||
balloon_alert(user, "[D.name] loaded")
|
||||
syringes += D
|
||||
recharge_newshot()
|
||||
update_appearance()
|
||||
playsound(loc, load_sound, 40)
|
||||
return TRUE
|
||||
else
|
||||
to_chat(user, span_warning("[src] cannot hold more syringes!"))
|
||||
balloon_alert(user, "it's already full!")
|
||||
return FALSE
|
||||
|
||||
/obj/item/gun/syringe/blowgun
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
attack_verb_continuous = list("pokes")
|
||||
attack_verb_simple = list("poke")
|
||||
var/fail_message = "<span class='warning'>INVALID USER.</span>"
|
||||
var/fail_message = "invalid user!"
|
||||
var/selfdestruct = FALSE // Explode when user check is failed.
|
||||
var/force_replace = FALSE // Can forcefully replace other pins.
|
||||
var/pin_removeable = FALSE // Can be replaced by any pin.
|
||||
@@ -64,7 +64,7 @@
|
||||
|
||||
/obj/item/firing_pin/proc/auth_fail(mob/living/user)
|
||||
if(user)
|
||||
user.show_message(fail_message, MSG_VISUAL)
|
||||
balloon_alert(user, fail_message)
|
||||
if(selfdestruct)
|
||||
if(user)
|
||||
user.show_message("[span_danger("SELF-DESTRUCTING...")]<br>", MSG_VISUAL)
|
||||
@@ -83,7 +83,7 @@
|
||||
/obj/item/firing_pin/test_range
|
||||
name = "test-range firing pin"
|
||||
desc = "This safety firing pin allows weapons to be fired within proximity to a firing range."
|
||||
fail_message = "<span class='warning'>TEST RANGE CHECK FAILED.</span>"
|
||||
fail_message = "test range check failed!"
|
||||
pin_removeable = TRUE
|
||||
|
||||
/obj/item/firing_pin/test_range/pin_auth(mob/living/user)
|
||||
@@ -98,7 +98,7 @@
|
||||
/obj/item/firing_pin/implant
|
||||
name = "implant-keyed firing pin"
|
||||
desc = "This is a security firing pin which only authorizes users who are implanted with a certain device."
|
||||
fail_message = "<span class='warning'>IMPLANT CHECK FAILED.</span>"
|
||||
fail_message = "implant check failed!"
|
||||
var/obj/item/implant/req_implant = null
|
||||
|
||||
/obj/item/firing_pin/implant/pin_auth(mob/living/user)
|
||||
@@ -127,7 +127,7 @@
|
||||
name = "hilarious firing pin"
|
||||
desc = "Advanced clowntech that can convert any firearm into a far more useful object."
|
||||
color = "#FFFF00"
|
||||
fail_message = "<span class='warning'>HONK!</span>"
|
||||
fail_message = "honk!"
|
||||
force_replace = TRUE
|
||||
|
||||
/obj/item/firing_pin/clown/pin_auth(mob/living/user)
|
||||
@@ -176,7 +176,7 @@
|
||||
name = "DNA-keyed firing pin"
|
||||
desc = "This is a DNA-locked firing pin which only authorizes one user. Attempt to fire once to DNA-link."
|
||||
icon_state = "firing_pin_dna"
|
||||
fail_message = "<span class='warning'>DNA CHECK FAILED.</span>"
|
||||
fail_message = "dna check failed!"
|
||||
var/unique_enzymes = null
|
||||
|
||||
/obj/item/firing_pin/dna/afterattack(atom/target, mob/user, proximity_flag)
|
||||
@@ -185,7 +185,7 @@
|
||||
var/mob/living/carbon/M = target
|
||||
if(M.dna && M.dna.unique_enzymes)
|
||||
unique_enzymes = M.dna.unique_enzymes
|
||||
to_chat(user, span_notice("DNA-LOCK SET."))
|
||||
balloon_alert(user, "dna lock set")
|
||||
|
||||
/obj/item/firing_pin/dna/pin_auth(mob/living/carbon/user)
|
||||
if(user && user.dna && user.dna.unique_enzymes)
|
||||
@@ -197,7 +197,7 @@
|
||||
if(!unique_enzymes)
|
||||
if(user && user.dna && user.dna.unique_enzymes)
|
||||
unique_enzymes = user.dna.unique_enzymes
|
||||
to_chat(user, span_notice("DNA-LOCK SET."))
|
||||
balloon_alert(user, "dna lock set")
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -309,13 +309,12 @@
|
||||
name = "outback firing pin"
|
||||
desc = "A firing pin used by the austrailian defense force, retrofit to prevent weapon discharge on the station."
|
||||
icon_state = "firing_pin_explorer"
|
||||
fail_message = "<span class='warning'>CANNOT FIRE WHILE ON STATION, MATE!</span>"
|
||||
fail_message = "cannot fire while on station, mate!"
|
||||
|
||||
// This checks that the user isn't on the station Z-level.
|
||||
/obj/item/firing_pin/explorer/pin_auth(mob/living/user)
|
||||
var/turf/station_check = get_turf(user)
|
||||
if(!station_check||is_station_level(station_check.z))
|
||||
to_chat(user, span_warning("You cannot use your weapon while on the station!"))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -323,7 +322,7 @@
|
||||
/obj/item/firing_pin/tag
|
||||
name = "laser tag firing pin"
|
||||
desc = "A recreational firing pin, used in laser tag units to ensure users have their vests on."
|
||||
fail_message = "<span class='warning'>SUIT CHECK FAILED.</span>"
|
||||
fail_message = "suit check failed!"
|
||||
var/obj/item/clothing/suit/suit_requirement = null
|
||||
var/tagcolor = ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user