mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 21:12:24 +01:00
This PR is intended to sort out our existing guns into something resembling organization. In addition, ancient decrepit guns are removed, and abstract paths are labeled as such. In addition, all guns are now standardized to refer to their model. Considering the huge number of weapons we have, a `pistol` is not descriptive enough. NOTE: At over 200 files touched, this is being split. Not everything was sorted, but this is already a monster to sort through. The rest can wait.
187 lines
6.1 KiB
Plaintext
187 lines
6.1 KiB
Plaintext
/obj/item/gun/projectile/cannon
|
|
name = "culverin"
|
|
desc = "An amalgamation of ancient and modern tajaran technology. This old naval cannon was turned into a portable firearm."
|
|
icon = 'icons/obj/guns/faction/nka/cannon.dmi'
|
|
icon_state = "cannon"
|
|
item_state = "cannon"
|
|
caliber = "cannon"
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
|
|
load_method = SINGLE_CASING
|
|
handle_casings = DELETE_CASINGS
|
|
slot_flags = SLOT_BACK
|
|
max_shells = 1
|
|
ammo_type = /obj/item/ammo_casing/cannon
|
|
fire_delay = ROF_SPECIAL
|
|
fire_sound = 'sound/weapons/gunshot/cannon.ogg'
|
|
recoil = 4
|
|
|
|
is_wieldable = TRUE
|
|
|
|
desc_extended = "The adhomian hand cannon was created due the shortage of weapons that happened in the New Kingdom of Adhomai during the second civil war. Old naval culverins \
|
|
found in museums and forgotten warehouses were adapted into portable weapons, combining modern and ancient tajaran technology. This weapon is usually found in the hands of the \
|
|
sailors and marines of the Royal Navy."
|
|
|
|
/obj/item/gun/projectile/cannon/special_check(mob/user)
|
|
if(!wielded)
|
|
to_chat(user, SPAN_WARNING("You can't fire without stabilizing \the [src]!"))
|
|
return 0
|
|
return ..()
|
|
|
|
/obj/item/gun/projectile/nuke
|
|
name = "\improper Mai'Dhaztha Model anti-material nuclear warhead launcher"
|
|
desc = "A launcher weapon designated to fire miniaturized nuclear warheads."
|
|
icon = 'icons/obj/guns/faction/pra/maidhaztha.dmi'
|
|
icon_state = "blockbuster"
|
|
item_state = "blockbuster"
|
|
caliber = "nuke"
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4)
|
|
load_method = MAGAZINE
|
|
handle_casings = DELETE_CASINGS
|
|
slot_flags = SLOT_BACK
|
|
magazine_type = /obj/item/ammo_magazine/nuke
|
|
allowed_magazines = list(/obj/item/ammo_magazine/nuke)
|
|
fire_delay = ROF_SPECIAL
|
|
fire_sound = 'sound/weapons/mortar.ogg'
|
|
recoil = 4
|
|
|
|
auto_eject = TRUE
|
|
|
|
is_wieldable = TRUE
|
|
|
|
desc_extended = "The People's Republic of Adhomai is the first Adhomian faction able to master the nuclear fission. Atomic weapons were used before in the tajaran civil war, \
|
|
causing the annihilation of the military base of Quizosa. The nuclear launcher was created by republican scientists as way to deploy this destructive force while on the field."
|
|
|
|
/obj/item/gun/projectile/nuke/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "blockbuster-[(ammo_magazine.stored_ammo.len)]"
|
|
else
|
|
icon_state = "blockbuster-0"
|
|
|
|
/obj/item/gun/projectile/nuke/special_check(mob/user)
|
|
if(!wielded)
|
|
to_chat(user, SPAN_WARNING("You can't fire without stabilizing \the [src]!"))
|
|
return 0
|
|
return ..()
|
|
|
|
/obj/item/gun/projectile/recoilless_rifle
|
|
name = "adhomian recoilless rifle"
|
|
desc = "An inexpensive, one use anti-tank weapon used extensively by the Tajaran armed forces."
|
|
icon = 'icons/obj/guns/faction/dpra/recoilless_rifle.dmi'
|
|
icon_state = "recoilless_rifle"
|
|
item_state = "recoilless_rifle"
|
|
caliber = "recoilless_rifle"
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
|
|
slot_flags = null
|
|
fire_sound = 'sound/weapons/recoilless_rifle.ogg'
|
|
recoil = 0
|
|
ammo_type = /obj/item/ammo_casing/recoilless_rifle
|
|
|
|
is_wieldable = TRUE
|
|
|
|
load_method = SINGLE_CASING
|
|
handle_casings = DELETE_CASINGS
|
|
|
|
max_shells = 1
|
|
|
|
/obj/item/gun/projectile/recoilless_rifle/update_icon()
|
|
..()
|
|
if(loaded.len)
|
|
icon_state = "recoilless_rifle"
|
|
item_state = "recoilless_rifle"
|
|
else
|
|
icon_state = "recoilless_rifle-empty"
|
|
item_state = "recoilless_rifle-empty"
|
|
|
|
|
|
/obj/item/gun/projectile/recoilless_rifle/special_check(mob/user)
|
|
if(!wielded)
|
|
to_chat(user, SPAN_WARNING("You can't fire without stabilizing \the [src]!"))
|
|
return 0
|
|
return ..()
|
|
|
|
/obj/item/gun/projectile/recoilless_rifle/load_ammo(var/obj/item/A, mob/user)
|
|
return FALSE
|
|
|
|
/obj/item/gun/projectile/recoilless_rifle/unload_ammo(mob/user, var/allow_dump = 1, var/drop_mag = FALSE)
|
|
return FALSE
|
|
|
|
/obj/item/gun/projectile/peac
|
|
name = "\improper SCC-PEAC-1 anti-materiel cannon"
|
|
desc = "An SCC-designed, man-portable cannon meant to neutralize mechanized threats. The disgustingly large accelerator capacitors make room for only one shot, so make it count."
|
|
icon = 'icons/obj/guns/faction/stellar_corporate_conglomerate/peac.dmi'
|
|
icon_state = "peac"
|
|
item_state = "peac"
|
|
caliber = "peac"
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 5)
|
|
load_method = SINGLE_CASING
|
|
fire_sound = 'sound/weapons/gunshot/cannon.ogg'
|
|
slot_flags = null
|
|
ammo_type = /obj/item/ammo_casing/peac
|
|
accuracy_wielded = 4
|
|
|
|
fire_delay = ROF_UNWIELDY
|
|
|
|
recoil = 0
|
|
|
|
auto_eject = TRUE
|
|
|
|
is_wieldable = TRUE
|
|
|
|
max_shells = 1
|
|
|
|
/obj/item/gun/projectile/peac/mechanics_hints(mob/user, distance, is_adjacent)
|
|
. += ..()
|
|
. += "The PEAC can only be fired when wielded. Loading it by yourself is delayed by 5 seconds. Someone else can load it for you by clicking on you with the ammo in their hand as you wield it, shortening the delay to half a second."
|
|
|
|
/obj/item/gun/projectile/peac/update_icon()
|
|
..()
|
|
if(loaded.len)
|
|
icon_state = "peac"
|
|
item_state = "peac"
|
|
else
|
|
icon_state = "peac-empty"
|
|
item_state = "peac-empty"
|
|
|
|
/obj/item/gun/projectile/peac/special_check(mob/user)
|
|
if(!wielded)
|
|
to_chat(user, SPAN_WARNING("You can't fire without stabilizing \the [src]!"))
|
|
return 0
|
|
return ..()
|
|
|
|
/obj/item/gun/projectile/peac/unloaded
|
|
ammo_type = null
|
|
|
|
/obj/item/gun/projectile/peac/load_ammo(var/obj/item/A, mob/user, var/skip_delay = FALSE)
|
|
if(!istype(A, /obj/item/ammo_casing))
|
|
return ..()
|
|
var/obj/item/ammo_casing/C = A
|
|
if(caliber != C.caliber)
|
|
to_chat(user,SPAN_WARNING("\The [C] does not fit."))
|
|
return
|
|
if(loaded.len >= max_shells)
|
|
to_chat(user,SPAN_WARNING("[src] is full."))
|
|
return
|
|
|
|
if(!skip_delay)
|
|
user.visible_message("[user] starts loading \a [C] into [src].", SPAN_NOTICE("You start loading \a [C] into [src]..."))
|
|
if(!do_after(user, 5 SECONDS, target = src))
|
|
to_chat(user, SPAN_WARNING("You stop loading \the [src]."))
|
|
return
|
|
|
|
if(loaded.len >= max_shells)
|
|
to_chat(user,SPAN_WARNING("[src] is full."))
|
|
return
|
|
if(!istype(C) || C.loc != user)
|
|
to_chat(user, SPAN_WARNING("You no longer have \a [C] to load."))
|
|
return
|
|
if(caliber != C.caliber)
|
|
to_chat(user,SPAN_WARNING("\The [C] does not fit."))
|
|
return
|
|
|
|
. = ..()
|