Merge remote-tracking branch 'Citadel-Station-13/master' into Garlic
This commit is contained in:
@@ -95,7 +95,7 @@
|
||||
name = "scatter laser shell"
|
||||
desc = "An advanced shotgun shell that uses a micro laser to replicate the effects of a scatter laser weapon in a ballistic package."
|
||||
icon_state = "lshell"
|
||||
projectile_type = /obj/item/projectile/beam/weak
|
||||
projectile_type = /obj/item/projectile/beam/scatter
|
||||
pellets = 6
|
||||
variance = 35
|
||||
|
||||
@@ -130,12 +130,16 @@
|
||||
ENABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT)
|
||||
|
||||
/obj/item/ammo_casing/shotgun/dart/bioterror
|
||||
desc = "A shotgun dart filled with deadly toxins."
|
||||
desc = "A shotgun dart filled with an obscene amount of lethal reagents. God help whoever is shot with this."
|
||||
projectile_type = /obj/item/projectile/bullet/dart/piercing
|
||||
reagent_amount = 50
|
||||
|
||||
/obj/item/ammo_casing/shotgun/dart/bioterror/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent(/datum/reagent/toxin/fentanyl, 6)
|
||||
reagents.add_reagent(/datum/reagent/toxin/spore, 6)
|
||||
reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 6) //;HELP OPS IN MAINT
|
||||
reagents.add_reagent(/datum/reagent/toxin/coniine, 6)
|
||||
reagents.add_reagent(/datum/reagent/toxin/sodium_thiopental, 6)
|
||||
reagents.add_reagent(/datum/reagent/toxin/amanitin, 12) //for a nasty surprise after you get shot and somehow escape and don't think to quickly purge, and even shock those who are loaded up on purging agents
|
||||
reagents.add_reagent(/datum/reagent/toxin/chloralhydrate, 6)
|
||||
reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 6) //;HELPIES OPS IN MAINT
|
||||
reagents.add_reagent(/datum/reagent/impedrezene, 6)
|
||||
reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 5) //this and the acid equal about 25ish burn, not counting the minute toxin damage dealt by their metabolism, this makes each dart about as lethal as a stechkin shot in upfront damage
|
||||
reagents.add_reagent(/datum/reagent/toxin/acid, 5)
|
||||
reagents.add_reagent(/datum/reagent/consumable/frostoil, 10) //tempgun slowdown goes both ways and adds to the burn
|
||||
|
||||
@@ -365,6 +365,7 @@
|
||||
can_unsuppress = TRUE
|
||||
can_suppress = TRUE
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
inaccuracy_modifier = 0
|
||||
zoomable = TRUE
|
||||
zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you.
|
||||
zoom_out_amt = 13
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
item_flags = NONE
|
||||
casing_ejector = FALSE
|
||||
inaccuracy_modifier = 0.33 //to counteract the innaccuracy from WEAPON_HEAVY, bows are supposed to be accurate but only able to be fired with both hands
|
||||
inaccuracy_modifier = 0 //to counteract the innaccuracy from WEAPON_HEAVY, bows are supposed to be accurate but only able to be fired with both hands
|
||||
pin = null
|
||||
no_pin_required = TRUE
|
||||
trigger_guard = TRIGGER_GUARD_NONE //so ashwalkers can use it
|
||||
@@ -62,5 +62,4 @@
|
||||
desc = "Some sort of pipe made projectile weapon made of a silk string and lots of bending. Used to fire arrows."
|
||||
icon_state = "pipebow"
|
||||
item_state = "pipebow"
|
||||
inaccuracy_modifier = 1.1 //Made of pipe and in a rush
|
||||
force = 0
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
name = "grenade launcher"
|
||||
icon_state = "dshotgun-sawn"
|
||||
item_state = "gun"
|
||||
inaccuracy_modifier = 0
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher
|
||||
fire_sound = 'sound/weapons/grenadelaunch.ogg'
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
@@ -86,7 +87,7 @@
|
||||
pin = /obj/item/firing_pin/implant/pindicate
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
inaccuracy_modifier = 0.7
|
||||
inaccuracy_modifier = 0
|
||||
casing_ejector = FALSE
|
||||
weapon_weight = WEAPON_HEAVY
|
||||
magazine_wording = "rocket"
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
spread = 0
|
||||
recoil = 0.1
|
||||
casing_ejector = FALSE
|
||||
inaccuracy_modifier = 0.5
|
||||
inaccuracy_modifier = 0
|
||||
dualwield_spread_mult = 1.4
|
||||
weapon_weight = WEAPON_MEDIUM
|
||||
var/obj/item/stock_parts/cell/cell
|
||||
|
||||
@@ -176,6 +176,10 @@
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rus357
|
||||
var/spun = FALSE
|
||||
|
||||
/obj/item/gun/ballistic/revolver/russian/do_spin()
|
||||
. = ..()
|
||||
spun = TRUE
|
||||
|
||||
/obj/item/gun/ballistic/revolver/russian/Initialize()
|
||||
. = ..()
|
||||
do_spin()
|
||||
@@ -192,7 +196,7 @@
|
||||
return
|
||||
|
||||
/obj/item/gun/ballistic/revolver/russian/attack_self(mob/user)
|
||||
if(!spun && can_shoot())
|
||||
if(!spun)
|
||||
spin()
|
||||
spun = TRUE
|
||||
return
|
||||
@@ -217,7 +221,7 @@
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(!spun)
|
||||
to_chat(user, "<span class='warning'>You need to spin the revolver's chamber first!</span>")
|
||||
to_chat(user, "<span class='warning'>You need to spin \the [src]'s chamber first!</span>")
|
||||
return
|
||||
|
||||
spun = FALSE
|
||||
@@ -238,6 +242,11 @@
|
||||
user.visible_message("<span class='danger'>*click*</span>")
|
||||
playsound(src, "gun_dry_fire", 30, 1)
|
||||
|
||||
/obj/item/gun/ballistic/revolver/russian/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
|
||||
add_fingerprint(user)
|
||||
playsound(src, "gun_dry_fire", 30, TRUE)
|
||||
user.visible_message("<span class='danger'>[user.name] tries to fire \the [src] at the same time, but only succeeds at looking like an idiot.</span>", "<span class='danger'>\The [src]'s anti-combat mechanism prevents you from firing it at the same time!</span>")
|
||||
|
||||
/obj/item/gun/ballistic/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = BODY_ZONE_HEAD)
|
||||
user.apply_damage(300, BRUTE, affecting)
|
||||
user.visible_message("<span class='danger'>[user.name] fires [src] at [user.p_their()] head!</span>", "<span class='userdanger'>You fire [src] at your head!</span>", "<span class='italics'>You hear a gunshot!</span>")
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot
|
||||
casing_ejector = FALSE
|
||||
var/recentpump = 0 // to prevent spammage
|
||||
weapon_weight = WEAPON_MEDIUM
|
||||
weapon_weight = WEAPON_HEAVY
|
||||
|
||||
/obj/item/gun/ballistic/shotgun/attackby(obj/item/A, mob/user, params)
|
||||
. = ..()
|
||||
@@ -87,6 +87,7 @@
|
||||
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"
|
||||
fire_delay = 7
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/riot
|
||||
sawn_desc = "Come with me if you want to live."
|
||||
unique_reskin = list("Tatical" = "riotshotgun",
|
||||
@@ -112,6 +113,7 @@
|
||||
icon_state = "moistnugget"
|
||||
item_state = "moistnugget"
|
||||
slot_flags = 0 //no ITEM_SLOT_BACK sprite, alas
|
||||
inaccuracy_modifier = 0
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/boltaction
|
||||
var/bolt_open = FALSE
|
||||
can_bayonet = TRUE
|
||||
@@ -207,7 +209,7 @@
|
||||
name = "combat shotgun"
|
||||
desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath."
|
||||
icon_state = "cshotgun"
|
||||
fire_delay = 3
|
||||
fire_delay = 5
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/com
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
unique_reskin = list("Tatical" = "cshotgun",
|
||||
|
||||
@@ -65,10 +65,10 @@
|
||||
update_icon()
|
||||
|
||||
/obj/item/gun/energy/Destroy()
|
||||
if(flags_1 & INITIALIZED_1)
|
||||
QDEL_NULL(cell)
|
||||
QDEL_LIST(ammo_type)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
//no need to delete them, since contents are already deleted in atom/movable/Destroy().
|
||||
cell = null
|
||||
ammo_type = null
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/energy/examine(mob/user)
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
suppressed = TRUE
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/bolt)
|
||||
weapon_weight = WEAPON_LIGHT
|
||||
inaccuracy_modifier = 0
|
||||
obj_flags = 0
|
||||
overheat_time = 20
|
||||
holds_charge = TRUE
|
||||
@@ -125,6 +126,7 @@
|
||||
attack_verb = list("attacked", "slashed", "cut", "sliced")
|
||||
force = 12
|
||||
sharpness = IS_SHARP
|
||||
inaccuracy_modifier = 0
|
||||
can_charge = 0
|
||||
|
||||
heat = 3800
|
||||
@@ -180,6 +182,7 @@
|
||||
item_state = null
|
||||
icon_state = "wormhole_projector"
|
||||
pin = null
|
||||
inaccuracy_modifier = 0
|
||||
var/obj/effect/portal/p_blue
|
||||
var/obj/effect/portal/p_orange
|
||||
var/atmos_link = FALSE
|
||||
@@ -315,6 +318,7 @@
|
||||
icon_state = "emitter_carbine"
|
||||
force = 12
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
inaccuracy_modifier = 0
|
||||
cell_type = /obj/item/stock_parts/cell/super
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/emitter)
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
force = 4
|
||||
inaccuracy_modifier = 0
|
||||
custom_materials = list(/datum/material/iron=2000)
|
||||
clumsy_check = FALSE
|
||||
fire_sound = 'sound/items/syringeproj.ogg'
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
force = 4
|
||||
inaccuracy_modifier = 0
|
||||
custom_materials = list(/datum/material/iron=2000)
|
||||
clumsy_check = 0
|
||||
fire_sound = 'sound/items/syringeproj.ogg'
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
/obj/item/projectile/beam/scatter
|
||||
name = "laser pellet"
|
||||
icon_state = "scatterlaser"
|
||||
damage = 5
|
||||
damage = 12.5
|
||||
|
||||
/obj/item/projectile/beam/xray
|
||||
name = "\improper X-ray beam"
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
reagents.handle_reactions()
|
||||
return BULLET_ACT_HIT
|
||||
|
||||
/obj/item/projectile/bullet/dart/piercing
|
||||
piercing = TRUE
|
||||
|
||||
/obj/item/projectile/bullet/dart/metalfoam/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent(/datum/reagent/aluminium, 15)
|
||||
|
||||
@@ -18,13 +18,28 @@
|
||||
/obj/item/projectile/bullet/shotgun_stunslug
|
||||
name = "stunslug"
|
||||
damage = 5
|
||||
stamina = 20
|
||||
knockdown = 100
|
||||
stamina = 30
|
||||
stutter = 5
|
||||
jitter = 20
|
||||
range = 7
|
||||
icon_state = "spark"
|
||||
color = "#FFFF00"
|
||||
var/tase_duration = 50
|
||||
|
||||
/obj/item/projectile/bullet/shotgun_stunslug/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - burst into sparks!
|
||||
do_sparks(1, TRUE, src)
|
||||
if(iscarbon(target))
|
||||
var/mob/living/carbon/C = target
|
||||
SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "tased", /datum/mood_event/tased)
|
||||
SEND_SIGNAL(C, COMSIG_LIVING_MINOR_SHOCK)
|
||||
C.IgniteMob()
|
||||
if(C.dna && C.dna.check_mutation(HULK))
|
||||
C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk")
|
||||
else if(tase_duration && (C.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(C, TRAIT_STUNIMMUNE) && !HAS_TRAIT(C, TRAIT_TASED_RESISTANCE))
|
||||
C.electrocute_act(15, src, 1, SHOCK_NOSTUN)
|
||||
C.apply_status_effect(STATUS_EFFECT_TASED_WEAK, tase_duration)
|
||||
|
||||
/obj/item/projectile/bullet/shotgun_meteorslug
|
||||
name = "meteorslug"
|
||||
@@ -93,7 +108,6 @@
|
||||
|
||||
/obj/item/projectile/bullet/scattershot
|
||||
damage = 20
|
||||
stamina = 65
|
||||
|
||||
/obj/item/projectile/bullet/seed
|
||||
damage = 4
|
||||
|
||||
Reference in New Issue
Block a user