mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-29 03:21:30 +00:00
Nerfs blob rollercoaster of death by making it so that blobs cannot interact with the mobs inside of other blobs. Replaces blob's gibbing mobs with husking humans, merely killing borgs, and gibbing everything else. Makes flamethrowers modestly more effective versus blobs - a consistent source of minor AoE damage. Makes blobs more aesthetically pleasing. Distinguishes the main core from the aux cores slightly more. Fixes #1426 Fixes #1427 Fixes #1432 Fixes #1461 Fixes #1464 Fixes #1471 Modifies BFG's to be more like actual BFG's. Fixes Industrial IPCs being able to select Baseline IPC screens. Fixes several baycode company names to fit ours in guns. Changes several of our guns to fit Baycode's naming paradigm.
138 lines
4.8 KiB
Plaintext
138 lines
4.8 KiB
Plaintext
/obj/item/weapon/gun/projectile/shotgun/pump
|
|
name = "pump shotgun"
|
|
desc = "An ubiquitous unbranded shotgun. Useful for sweeping alleys."
|
|
icon_state = "shotgun"
|
|
item_state = "shotgun"
|
|
max_shells = 4
|
|
w_class = 4.0
|
|
force = 10
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BACK
|
|
caliber = "shotgun"
|
|
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2)
|
|
load_method = SINGLE_CASING|SPEEDLOADER
|
|
ammo_type = /obj/item/ammo_casing/shotgun/beanbag
|
|
handle_casings = HOLD_CASINGS
|
|
var/recentpump = 0 // to prevent spammage
|
|
|
|
action_button_name = "Wield rifle"
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/pump/can_wield()
|
|
return 1
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/pump/ui_action_click()
|
|
if(src in usr)
|
|
toggle_wield(usr)
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/pump/verb/wield_shotgun()
|
|
set name = "Wield shotgun"
|
|
set category = "Object"
|
|
set src in usr
|
|
|
|
toggle_wield(usr)
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/pump/consume_next_projectile()
|
|
if(chambered)
|
|
return chambered.BB
|
|
return null
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/pump/attack_self(mob/living/user as mob)
|
|
if(world.time >= recentpump + 10)
|
|
pump(user)
|
|
recentpump = world.time
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/pump/proc/pump(mob/M as mob)
|
|
if(!wielded)
|
|
M << "<span class='warning'>You cannot rack the shotgun without gripping it with both hands!</span>"
|
|
return
|
|
|
|
playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1)
|
|
|
|
if(chambered)//We have a shell in the chamber
|
|
chambered.loc = get_turf(src)//Eject casing
|
|
chambered = null
|
|
|
|
if(loaded.len)
|
|
var/obj/item/ammo_casing/AC = loaded[1] //load next casing.
|
|
loaded -= AC //Remove casing from loaded list.
|
|
chambered = AC
|
|
|
|
update_icon()
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/pump/combat
|
|
name = "combat shotgun"
|
|
desc = "Built for close quarters combat, the Hephaestus Industries KS-40 is widely regarded as a weapon of choice for repelling boarders."
|
|
icon_state = "cshotgun"
|
|
item_state = "cshotgun"
|
|
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
|
|
max_shells = 7 //match the ammo box capacity, also it can hold a round in the chamber anyways, for a total of 8.
|
|
ammo_type = /obj/item/ammo_casing/shotgun
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/doublebarrel
|
|
name = "double-barreled shotgun"
|
|
desc = "A true classic."
|
|
icon_state = "dshotgun"
|
|
item_state = "dshotgun"
|
|
//SPEEDLOADER because rapid unloading.
|
|
//In principle someone could make a speedloader for it, so it makes sense.
|
|
load_method = SINGLE_CASING|SPEEDLOADER
|
|
handle_casings = CYCLE_CASINGS
|
|
max_shells = 2
|
|
w_class = 4
|
|
force = 10
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BACK
|
|
caliber = "shotgun"
|
|
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 1)
|
|
ammo_type = /obj/item/ammo_casing/shotgun/beanbag
|
|
|
|
burst_delay = 0
|
|
firemodes = list(
|
|
list(mode_name="fire one barrel at a time", burst=1),
|
|
list(mode_name="fire both barrels at once", burst=2)
|
|
)
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/pellet
|
|
ammo_type = /obj/item/ammo_casing/shotgun/pellet
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/flare
|
|
name = "signal shotgun"
|
|
desc = "A double-barreled shotgun meant to fire signal flash shells."
|
|
ammo_type = /obj/item/ammo_casing/shotgun/flash
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/unload_ammo(user, allow_dump)
|
|
..(user, allow_dump=1)
|
|
|
|
//this is largely hacky and bad :( -Pete
|
|
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/attackby(var/obj/item/A as obj, mob/user as mob)
|
|
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
|
|
user << "<span class='notice'>You begin to shorten the barrel of \the [src].</span>"
|
|
if(loaded.len)
|
|
for(var/i in 1 to max_shells)
|
|
afterattack(user, user) //will this work? //it will. we call it twice, for twice the FUN
|
|
playsound(user, fire_sound, 50, 1)
|
|
user.visible_message("<span class='danger'>The shotgun goes off!</span>", "<span class='danger'>The shotgun goes off in your face!</span>")
|
|
return
|
|
if(do_after(user, 30)) //SHIT IS STEALTHY EYYYYY
|
|
icon_state = "sawnshotgun"
|
|
item_state = "sawnshotgun"
|
|
w_class = 3
|
|
force = 5
|
|
slot_flags &= ~SLOT_BACK //you can't sling it on your back
|
|
slot_flags |= (SLOT_BELT|SLOT_HOLSTER) //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - or in a holster, why not.
|
|
name = "sawn-off shotgun"
|
|
desc = "Omar's coming!"
|
|
user << "<span class='warning'>You shorten the barrel of \the [src]!</span>"
|
|
else
|
|
..()
|
|
|
|
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn
|
|
name = "sawn-off shotgun"
|
|
desc = "Omar's coming!"
|
|
icon_state = "sawnshotgun"
|
|
item_state = "sawnshotgun"
|
|
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
|
ammo_type = /obj/item/ammo_casing/shotgun/pellet
|
|
w_class = 3
|
|
force = 5
|