mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-02 13:02:38 +00:00
* Refactors most spans into span procs * AA * a * AAAAAAAAAAAAAAAAAAAAAA * Update species.dm Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
216 lines
7.0 KiB
Plaintext
216 lines
7.0 KiB
Plaintext
/obj/item/gun/ballistic/shotgun
|
|
name = "shotgun"
|
|
desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath."
|
|
icon_state = "shotgun"
|
|
worn_icon_state = null
|
|
lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi'
|
|
inhand_icon_state = "shotgun"
|
|
inhand_x_dimension = 64
|
|
inhand_y_dimension = 64
|
|
fire_sound = 'sound/weapons/gun/shotgun/shot.ogg'
|
|
vary_fire_sound = FALSE
|
|
fire_sound_volume = 90
|
|
rack_sound = 'sound/weapons/gun/shotgun/rack.ogg'
|
|
load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg'
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
force = 10
|
|
flags_1 = CONDUCT_1
|
|
slot_flags = ITEM_SLOT_BACK
|
|
mag_type = /obj/item/ammo_box/magazine/internal/shot
|
|
semi_auto = FALSE
|
|
internal_magazine = TRUE
|
|
casing_ejector = FALSE
|
|
bolt_wording = "pump"
|
|
cartridge_wording = "shell"
|
|
tac_reloads = FALSE
|
|
weapon_weight = WEAPON_HEAVY
|
|
|
|
pb_knockback = 2
|
|
|
|
/obj/item/gun/ballistic/shotgun/blow_up(mob/user)
|
|
. = 0
|
|
if(chambered?.loaded_projectile)
|
|
process_fire(user, user, FALSE)
|
|
. = 1
|
|
|
|
/obj/item/gun/ballistic/shotgun/lethal
|
|
mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal
|
|
|
|
// RIOT SHOTGUN //
|
|
|
|
/obj/item/gun/ballistic/shotgun/riot //for spawn in the armory //ICON OVERRIDEN IN SKYRAT AESTHETICS - SEE MODULE
|
|
name = "riot shotgun"
|
|
desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control."
|
|
icon_state = "riotshotgun"
|
|
inhand_icon_state = "shotgun"
|
|
fire_delay = 8
|
|
mag_type = /obj/item/ammo_box/magazine/internal/shot/riot
|
|
sawn_desc = "Come with me if you want to live."
|
|
can_be_sawn_off = TRUE
|
|
|
|
// Automatic Shotguns//
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user)
|
|
..()
|
|
rack()
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/combat //ICON OVERRIDEN IN SKYRAT AESTHETICS - SEE MODULE
|
|
name = "combat shotgun"
|
|
desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath."
|
|
icon_state = "cshotgun"
|
|
inhand_icon_state = "shotgun_combat"
|
|
fire_delay = 5
|
|
mag_type = /obj/item/ammo_box/magazine/internal/shot/com
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
|
|
//Dual Feed Shotgun
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/dual_tube
|
|
name = "cycler shotgun"
|
|
desc = "An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types."
|
|
icon_state = "cycler"
|
|
inhand_icon_state = "bulldog"
|
|
worn_icon_state = "cshotgun"
|
|
mag_type = /obj/item/ammo_box/magazine/internal/shot/tube
|
|
w_class = WEIGHT_CLASS_HUGE
|
|
var/toggled = FALSE
|
|
var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine
|
|
semi_auto = TRUE
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/examine(mob/user)
|
|
. = ..()
|
|
. += span_notice("Alt-click to pump it.")
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/Initialize()
|
|
. = ..()
|
|
if (!alternate_magazine)
|
|
alternate_magazine = new mag_type(src)
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/attack_self(mob/living/user)
|
|
if(!chambered && magazine.contents.len)
|
|
rack()
|
|
else
|
|
toggle_tube(user)
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/proc/toggle_tube(mob/living/user)
|
|
var/current_mag = magazine
|
|
var/alt_mag = alternate_magazine
|
|
magazine = alt_mag
|
|
alternate_magazine = current_mag
|
|
toggled = !toggled
|
|
if(toggled)
|
|
to_chat(user, span_notice("You switch to tube B."))
|
|
else
|
|
to_chat(user, span_notice("You switch to tube A."))
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/AltClick(mob/living/user)
|
|
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE))
|
|
return
|
|
rack()
|
|
|
|
// Bulldog shotgun //
|
|
|
|
/obj/item/gun/ballistic/shotgun/bulldog
|
|
name = "\improper Bulldog Shotgun"
|
|
desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines."
|
|
icon_state = "bulldog"
|
|
inhand_icon_state = "bulldog"
|
|
worn_icon_state = "cshotgun"
|
|
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
|
|
inhand_x_dimension = 32
|
|
inhand_y_dimension = 32
|
|
weapon_weight = WEAPON_MEDIUM
|
|
mag_type = /obj/item/ammo_box/magazine/m12g
|
|
can_suppress = FALSE
|
|
burst_size = 1
|
|
fire_delay = 0
|
|
pin = /obj/item/firing_pin/implant/pindicate
|
|
fire_sound = 'sound/weapons/gun/shotgun/shot_alt.ogg'
|
|
fire_select_modes = list(SELECT_SEMI_AUTOMATIC) //SKYRAT EDIT CHANGE
|
|
mag_display = TRUE
|
|
empty_indicator = TRUE
|
|
empty_alarm = TRUE
|
|
special_mags = TRUE
|
|
mag_display_ammo = TRUE
|
|
semi_auto = TRUE
|
|
internal_magazine = FALSE
|
|
tac_reloads = TRUE
|
|
|
|
|
|
/obj/item/gun/ballistic/shotgun/bulldog/unrestricted
|
|
pin = /obj/item/firing_pin
|
|
/////////////////////////////
|
|
// DOUBLE BARRELED SHOTGUN //
|
|
/////////////////////////////
|
|
|
|
/obj/item/gun/ballistic/shotgun/doublebarrel
|
|
name = "double-barreled shotgun"
|
|
desc = "A true classic."
|
|
icon_state = "dshotgun"
|
|
inhand_icon_state = "shotgun_db"
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
weapon_weight = WEAPON_MEDIUM
|
|
force = 10
|
|
flags_1 = CONDUCT_1
|
|
slot_flags = ITEM_SLOT_BACK
|
|
mag_type = /obj/item/ammo_box/magazine/internal/shot/dual
|
|
sawn_desc = "Omar's coming!"
|
|
obj_flags = UNIQUE_RENAME
|
|
rack_sound_volume = 0
|
|
unique_reskin = list("Default" = "dshotgun",
|
|
"Dark Red Finish" = "dshotgun_d",
|
|
"Ash" = "dshotgun_f",
|
|
"Faded Grey" = "dshotgun_g",
|
|
"Maple" = "dshotgun_l",
|
|
"Rosewood" = "dshotgun_p"
|
|
)
|
|
semi_auto = TRUE
|
|
bolt_type = BOLT_TYPE_NO_BOLT
|
|
can_be_sawn_off = TRUE
|
|
pb_knockback = 3 // it's a super shotgun!
|
|
|
|
/obj/item/gun/ballistic/shotgun/doublebarrel/AltClick(mob/user)
|
|
. = ..()
|
|
if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY))
|
|
reskin_obj(user)
|
|
|
|
/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(mob/user)
|
|
. = ..()
|
|
if(.)
|
|
weapon_weight = WEAPON_MEDIUM
|
|
|
|
/obj/item/gun/ballistic/shotgun/hook
|
|
name = "hook modified sawn-off shotgun"
|
|
desc = "Range isn't an issue when you can bring your victim to you."
|
|
icon_state = "hookshotgun"
|
|
inhand_icon_state = "hookshotgun"
|
|
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
|
|
inhand_x_dimension = 32
|
|
inhand_y_dimension = 32
|
|
mag_type = /obj/item/ammo_box/magazine/internal/shot/bounty
|
|
weapon_weight = WEAPON_MEDIUM
|
|
semi_auto = TRUE
|
|
flags_1 = CONDUCT_1
|
|
force = 18 //it has a hook on it
|
|
sharpness = SHARP_POINTY //it does in fact, have a hook on it
|
|
attack_verb_continuous = list("slashes", "hooks", "stabs")
|
|
attack_verb_simple = list("slash", "hook", "stab")
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
//our hook gun!
|
|
var/obj/item/gun/magic/hook/bounty/hook
|
|
|
|
/obj/item/gun/ballistic/shotgun/hook/Initialize()
|
|
. = ..()
|
|
hook = new /obj/item/gun/magic/hook/bounty(src)
|
|
|
|
/obj/item/gun/ballistic/shotgun/hook/examine(mob/user)
|
|
. = ..()
|
|
. += span_notice("Right-click to shoot the hook.")
|
|
|
|
/obj/item/gun/ballistic/shotgun/hook/afterattack_secondary(atom/target, mob/user, proximity_flag, click_parameters)
|
|
hook.afterattack(target, user, proximity_flag, click_parameters)
|
|
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|