mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
Merge branch 'master' into GunsAndGunAccessories
# Conflicts: # code/modules/projectiles/guns/projectile/automatic.dm
This commit is contained in:
@@ -29,6 +29,12 @@
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/weakbullet2
|
||||
|
||||
/obj/item/ammo_casing/c38/invisible
|
||||
projectile_type = /obj/item/projectile/bullet/weakbullet2/invisible
|
||||
|
||||
/obj/item/ammo_casing/c38/invisible/fake
|
||||
projectile_type = /obj/item/projectile/bullet/weakbullet2/invisible/fake
|
||||
|
||||
/obj/item/ammo_casing/c10mm
|
||||
desc = "A 10mm bullet casing."
|
||||
caliber = "10mm"
|
||||
@@ -364,16 +370,17 @@
|
||||
projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot
|
||||
icon_state = "foamdart_riot"
|
||||
|
||||
/obj/item/ammo_casing/shotgun/dart/assassination
|
||||
desc = "A specialist shotgun dart designed to inncapacitate and kill the target over time, so you can get very far away from your target"
|
||||
|
||||
/obj/item/ammo_casing/shotgun/dart/assassination/New()
|
||||
..()
|
||||
reagents.add_reagent("neurotoxin", 6)
|
||||
/obj/item/ammo_casing/shotgun/assassination
|
||||
name = "assassination shell"
|
||||
desc = "A specialist shrapnel shell that has been laced with a silencing toxin."
|
||||
projectile_type = /obj/item/projectile/bullet/pellet/assassination
|
||||
icon_state = "gshell"
|
||||
pellets = 6
|
||||
variance = 25
|
||||
|
||||
/obj/item/ammo_casing/cap
|
||||
desc = "A cap for children toys."
|
||||
caliber = "caps"
|
||||
caliber = "cap"
|
||||
projectile_type = /obj/item/projectile/bullet/cap
|
||||
|
||||
/obj/item/ammo_casing/laser
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
delay = 15
|
||||
|
||||
/obj/item/ammo_casing/energy/electrode/gun
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot.ogg'
|
||||
e_cost = 100
|
||||
|
||||
/obj/item/ammo_casing/energy/electrode/hos //allows balancing of HoS and blueshit guns seperately from other energy weapons
|
||||
@@ -218,7 +218,7 @@
|
||||
|
||||
/obj/item/ammo_casing/energy/clown
|
||||
projectile_type = /obj/item/projectile/clown
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_smg.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg'
|
||||
select_name = "clown"
|
||||
|
||||
/obj/item/ammo_casing/energy/sniper
|
||||
|
||||
@@ -61,6 +61,14 @@
|
||||
caliber = "38"
|
||||
max_ammo = 6
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/cylinder/rev38/invisible
|
||||
name = "finger gun cylinder"
|
||||
desc = "Wait, what?"
|
||||
ammo_type = /obj/item/ammo_casing/c38/invisible
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/cylinder/rev38/invisible/fake
|
||||
ammo_type = /obj/item/ammo_casing/c38/invisible/fake
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/cylinder/rev762
|
||||
name = "nagant revolver cylinder"
|
||||
ammo_type = /obj/item/ammo_casing/n762
|
||||
@@ -114,6 +122,9 @@
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/improvised
|
||||
max_ammo = 1
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shot/improvised/cane
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/assassination
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shot/riot
|
||||
name = "riot shotgun internal magazine"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/rubbershot
|
||||
@@ -210,7 +221,7 @@
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_box/magazine/enforcer
|
||||
name = "handgun magazine (9mm)"
|
||||
name = "handgun magazine (9mm rubber)"
|
||||
icon_state = "enforcer"
|
||||
ammo_type = /obj/item/ammo_casing/rubber9mm
|
||||
max_ammo = 8
|
||||
@@ -239,6 +250,7 @@
|
||||
return 0
|
||||
|
||||
/obj/item/ammo_box/magazine/enforcer/lethal
|
||||
name = "handgun magazine (9mm)"
|
||||
ammo_type = /obj/item/ammo_casing/c9mm
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9
|
||||
|
||||
@@ -30,13 +30,13 @@
|
||||
/obj/item/ammo_casing/magic/spellblade
|
||||
projectile_type = /obj/item/projectile/magic/spellblade
|
||||
|
||||
/obj/item/ammo_casing/magic/slipping
|
||||
projectile_type = /obj/item/projectile/magic/slipping
|
||||
|
||||
/obj/item/ammo_casing/magic/chaos/newshot()
|
||||
projectile_type = pick(typesof(/obj/item/projectile/magic))
|
||||
..()
|
||||
|
||||
/obj/item/ammo_casing/magic/honk
|
||||
projectile_type = /obj/item/projectile/bullet/honker
|
||||
|
||||
/obj/item/ammo_casing/forcebolt
|
||||
projectile_type = /obj/item/projectile/forcebolt
|
||||
|
||||
@@ -48,5 +48,5 @@
|
||||
/obj/item/ammo_casing/energy/c3dbullet
|
||||
projectile_type = /obj/item/projectile/bullet/midbullet3
|
||||
select_name = "spraydown"
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_MG.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
|
||||
e_cost = 20
|
||||
|
||||
@@ -140,6 +140,14 @@
|
||||
overlays += image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset)
|
||||
|
||||
|
||||
/obj/item/gun/energy/kinetic_accelerator/experimental
|
||||
name = "experimental kinetic accelerator"
|
||||
desc = "A modified version of the proto-kinetic accelerator, with twice the modkit space of the standard version."
|
||||
icon_state = "kineticgun_h"
|
||||
item_state = "kineticgun_h"
|
||||
origin_tech = "combat=5;powerstorage=3;engineering=5"
|
||||
max_mod_capacity = 200
|
||||
|
||||
//Casing
|
||||
/obj/item/ammo_casing/energy/kinetic
|
||||
projectile_type = /obj/item/projectile/kinetic
|
||||
|
||||
@@ -140,24 +140,19 @@
|
||||
|
||||
////////Laser Tag////////////////////
|
||||
|
||||
/obj/item/gun/energy/laser/bluetag
|
||||
/obj/item/gun/energy/laser/tag
|
||||
name = "laser tag gun"
|
||||
icon_state = "bluetag"
|
||||
desc = "Standard issue weapon of the Imperial Guard"
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag)
|
||||
origin_tech = "combat=2;magnets=2"
|
||||
clumsy_check = 0
|
||||
needs_permit = 0
|
||||
ammo_x_offset = 2
|
||||
selfcharge = 1
|
||||
|
||||
/obj/item/gun/energy/laser/redtag
|
||||
name = "laser tag gun"
|
||||
/obj/item/gun/energy/laser/tag/blue
|
||||
icon_state = "bluetag"
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag)
|
||||
|
||||
/obj/item/gun/energy/laser/tag/red
|
||||
icon_state = "redtag"
|
||||
desc = "Standard issue weapon of the Imperial Guard"
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag)
|
||||
origin_tech = "combat=2;magnets=2"
|
||||
clumsy_check = 0
|
||||
needs_permit = 0
|
||||
ammo_x_offset = 2
|
||||
selfcharge = 1
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
ammo_x_offset = 2
|
||||
charge_sections = 3
|
||||
can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update
|
||||
actions_types = list(/datum/action/item_action/toggle_gunlight)
|
||||
|
||||
/obj/item/gun/energy/gun/mini/New()
|
||||
gun_light = new /obj/item/flashlight/seclite(src)
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
icon = 'icons/obj/guns/projectile.dmi'
|
||||
icon_state = "riotgun"
|
||||
item_state = "c20r"
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_shotgun.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/meteor)
|
||||
cell_type = /obj/item/stock_parts/cell/potato
|
||||
@@ -148,7 +148,7 @@
|
||||
modifystate = -1
|
||||
origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1"
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/plasma)
|
||||
fire_sound = 'sound/weapons/laser.ogg'
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
usesound = 'sound/items/Welder.ogg'
|
||||
toolspeed = 1
|
||||
container_type = OPENCONTAINER
|
||||
|
||||
@@ -52,15 +52,20 @@
|
||||
no_den_usage = 1
|
||||
fire_sound = 'sound/magic/Staff_Door.ogg'
|
||||
|
||||
/obj/item/gun/magic/staff/honk
|
||||
/obj/item/gun/magic/staff/slipping
|
||||
name = "staff of slipping"
|
||||
desc = "An artefact that spits... bananas?"
|
||||
ammo_type = /obj/item/ammo_casing/magic/slipping
|
||||
icon_state = "staffofslipping"
|
||||
item_state = "staffofslipping"
|
||||
max_charges = 10
|
||||
recharge_rate = 2
|
||||
fire_sound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
/obj/item/gun/magic/staff/slipping/honkmother
|
||||
name = "staff of the honkmother"
|
||||
desc = "Honk"
|
||||
ammo_type = /obj/item/ammo_casing/magic/honk
|
||||
icon_state = "honker"
|
||||
item_state = "honker"
|
||||
max_charges = 4
|
||||
recharge_rate = 8
|
||||
fire_sound = 'sound/items/airhorn.ogg'
|
||||
desc = "An ancient artefact, sought after by clowns everywhere."
|
||||
fire_sound = 'sound/items/Airhorn.ogg'
|
||||
|
||||
/obj/item/gun/magic/staff/focus
|
||||
name = "mental focus"
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
suppressed = A
|
||||
S.oldsound = fire_sound
|
||||
S.initial_w_class = w_class
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_silenced.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_silenced.ogg'
|
||||
w_class = WEIGHT_CLASS_NORMAL //so pistols do not fit in pockets when suppressed
|
||||
A.loc = src
|
||||
update_icon()
|
||||
|
||||
@@ -20,6 +20,32 @@
|
||||
overlays += "[initial(icon_state)]burst"
|
||||
icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]"
|
||||
|
||||
/obj/item/gun/projectile/automatic/attackby(var/obj/item/A as obj, mob/user as mob, params)
|
||||
. = ..()
|
||||
if(.)
|
||||
if(alarmed) // Did the empty clip alarm go off already?
|
||||
alarmed = 0 // Reset the alarm once a magazine is loaded
|
||||
return
|
||||
if(istype(A, /obj/item/ammo_box/magazine))
|
||||
var/obj/item/ammo_box/magazine/AM = A
|
||||
if(istype(AM, mag_type))
|
||||
if(magazine)
|
||||
to_chat(user, "<span class='notice'>You perform a tactical reload on \the [src], replacing the magazine.</span>")
|
||||
magazine.loc = get_turf(loc)
|
||||
magazine.update_icon()
|
||||
magazine = null
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You insert the magazine into \the [src].</span>")
|
||||
if(alarmed)
|
||||
alarmed = 0
|
||||
user.remove_from_mob(AM)
|
||||
magazine = AM
|
||||
magazine.loc = src
|
||||
chamber_round()
|
||||
A.update_icon()
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/item/gun/projectile/automatic/ui_action_click()
|
||||
burst_select()
|
||||
|
||||
@@ -57,7 +83,7 @@
|
||||
icon_state = "saber"
|
||||
mag_type = /obj/item/ammo_box/magazine/smgm9mm
|
||||
origin_tech = "combat=4;materials=2"
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_pistol.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_pistol.ogg'
|
||||
|
||||
//C-20r SMG//
|
||||
/obj/item/gun/projectile/automatic/c20r
|
||||
@@ -67,7 +93,7 @@
|
||||
item_state = "c20r"
|
||||
origin_tech = "combat=5;materials=2;syndicate=6"
|
||||
mag_type = /obj/item/ammo_box/magazine/smgm45
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_smg.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg'
|
||||
fire_delay = 2
|
||||
burst_size = 2
|
||||
|
||||
@@ -90,7 +116,7 @@
|
||||
icon_state = "wt550"
|
||||
item_state = "arg"
|
||||
mag_type = /obj/item/ammo_box/magazine/wt550m9
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_rifle.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
|
||||
fire_delay = 2
|
||||
@@ -109,7 +135,7 @@
|
||||
icon_state = "mini-uzi"
|
||||
origin_tech = "combat=4;materials=2;syndicate=4"
|
||||
mag_type = /obj/item/ammo_box/magazine/uzim9mm
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_pistol.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_pistol.ogg'
|
||||
burst_size = 2
|
||||
|
||||
//M-90gl Carbine//
|
||||
@@ -120,7 +146,7 @@
|
||||
item_state = "m90-4"
|
||||
origin_tech = "combat=5;materials=2;syndicate=6"
|
||||
mag_type = /obj/item/ammo_box/magazine/m556
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_rifle.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
|
||||
can_suppress = 0
|
||||
@@ -195,7 +221,7 @@
|
||||
slot_flags = 0
|
||||
origin_tech = "combat=5;materials=1;syndicate=3"
|
||||
mag_type = /obj/item/ammo_box/magazine/tommygunm45
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_smg.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg'
|
||||
can_suppress = 0
|
||||
burst_size = 4
|
||||
fire_delay = 1
|
||||
@@ -209,7 +235,7 @@
|
||||
slot_flags = 0
|
||||
origin_tech = "combat=6;engineering=4"
|
||||
mag_type = /obj/item/ammo_box/magazine/m556
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_MG.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
|
||||
can_suppress = 0
|
||||
@@ -225,7 +251,7 @@
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
origin_tech = "combat=6;materials=4;syndicate=6"
|
||||
mag_type = /obj/item/ammo_box/magazine/m12g
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_shotgun.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
|
||||
can_suppress = 0
|
||||
@@ -261,7 +287,7 @@
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
origin_tech = "combat=4;materials=2"
|
||||
mag_type = /obj/item/ammo_box/magazine/laser
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_lascarbine.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_lascarbine.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
|
||||
can_suppress = 0
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
origin_tech = "combat=3;materials=2;syndicate=4"
|
||||
mag_type = /obj/item/ammo_box/magazine/m10mm
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_pistol.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_pistol.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/pistol_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/pistol_magout.ogg'
|
||||
can_suppress = 1
|
||||
@@ -85,7 +85,7 @@
|
||||
icon_state = "deagle"
|
||||
force = 14.0
|
||||
mag_type = /obj/item/ammo_box/magazine/m50
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_pistolH.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_pistolH.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/hpistol_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/hpistol_magout.ogg'
|
||||
can_suppress = 0
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "revolver"
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/cylinder
|
||||
origin_tech = "combat=3;materials=2"
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_strong.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_strong.ogg'
|
||||
|
||||
/obj/item/gun/projectile/revolver/New()
|
||||
..()
|
||||
@@ -144,6 +144,48 @@
|
||||
desc = initial(desc)
|
||||
to_chat(user, "<span class='notice'>You remove the modifications on [src]. Now it will fire .38 rounds.</span>")
|
||||
|
||||
/obj/item/gun/projectile/revolver/fingergun //Summoned by the Finger Gun spell, from advanced mimery traitor item
|
||||
name = "\improper finger gun"
|
||||
desc = "Bang bang bang!"
|
||||
icon_state = "fingergun"
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38/invisible
|
||||
origin_tech = ""
|
||||
flags = ABSTRACT | NODROP | DROPDEL
|
||||
slot_flags = null
|
||||
fire_sound = null
|
||||
fire_sound_text = null
|
||||
lefthand_file = null
|
||||
righthand_file = null
|
||||
clumsy_check = 0 //Stole your uplink! Honk!
|
||||
needs_permit = 0 //go away beepsky
|
||||
|
||||
/obj/item/gun/projectile/revolver/fingergun/fake
|
||||
desc = "Pew pew pew!"
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38/invisible/fake
|
||||
|
||||
/obj/item/gun/projectile/revolver/fingergun/New()
|
||||
..()
|
||||
verbs -= /obj/item/gun/projectile/revolver/verb/spin
|
||||
|
||||
/obj/item/gun/projectile/revolver/fingergun/shoot_with_empty_chamber(/*mob/living/user as mob|obj*/)
|
||||
to_chat(usr, "<span class='warning'>You are out of ammo! You holster your fingers.</span>")
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/gun/projectile/revolver/fingergun/afterattack(atom/target, mob/living/user, flag, params)
|
||||
if(!user.mind.miming)
|
||||
to_chat(usr, "<span class='warning'>You must dedicate yourself to silence first. Use your fingers if you wish to holster them.</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/gun/projectile/revolver/fingergun/attackby(obj/item/A, mob/user, params)
|
||||
return
|
||||
|
||||
/obj/item/gun/projectile/revolver/fingergun/attack_self(mob/living/user)
|
||||
to_chat(usr, "<span class='notice'>You holster your fingers. Another time.</span>")
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/gun/projectile/revolver/mateba
|
||||
name = "\improper Unica 6 auto-revolver"
|
||||
desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." //>10mm hole >.357
|
||||
@@ -277,7 +319,7 @@
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/dual
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_shotgun.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
|
||||
sawn_desc = "Omar's coming!"
|
||||
unique_rename = 1
|
||||
unique_reskin = 1
|
||||
@@ -333,7 +375,7 @@
|
||||
force = 10
|
||||
slot_flags = null
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_shotgun.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
|
||||
sawn_desc = "I'm just here for the gasoline."
|
||||
unique_rename = 0
|
||||
unique_reskin = 0
|
||||
@@ -382,10 +424,10 @@
|
||||
can_unsuppress = 0
|
||||
slot_flags = null
|
||||
origin_tech = "" // NO GIVAWAYS
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised/cane
|
||||
sawn_desc = "I'm sorry, but why did you saw your cane in the first place?"
|
||||
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_silenced.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_silenced.ogg'
|
||||
suppressed = 1
|
||||
needs_permit = 0 //its just a cane beepsky.....
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
origin_tech = "combat=6;engineering=3;syndicate=6"
|
||||
mag_type = /obj/item/ammo_box/magazine/mm556x45
|
||||
weapon_weight = WEAPON_MEDIUM
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_MG.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/lmg_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/lmg_magout.ogg'
|
||||
var/cover_open = 0
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
slot_flags = SLOT_BACK
|
||||
origin_tech = "combat=4;materials=2"
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_shotgun.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
|
||||
var/recentpump = 0 // to prevent spammage
|
||||
|
||||
/obj/item/gun/projectile/shotgun/attackby(obj/item/A, mob/user, params)
|
||||
@@ -208,7 +208,7 @@
|
||||
item_state = "moistnugget"
|
||||
slot_flags = 0 //no SLOT_BACK sprite, alas
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/boltaction
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_rifle.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg'
|
||||
var/bolt_open = 0
|
||||
|
||||
/obj/item/gun/projectile/shotgun/boltaction/pump(mob/M)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
recoil = 2
|
||||
weapon_weight = WEAPON_MEDIUM
|
||||
mag_type = /obj/item/ammo_box/magazine/sniper_rounds
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_sniper.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_sniper.ogg'
|
||||
magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
|
||||
magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
|
||||
fire_delay = 40
|
||||
@@ -31,6 +31,14 @@
|
||||
desc = "Syndicate flavoured sniper rifle, it packs quite a punch, a punch to your face"
|
||||
origin_tech = "combat=7;syndicate=6"
|
||||
|
||||
/obj/item/gun/projectile/automatic/sniper_rifle/soporific
|
||||
name = "Soporific sniper rifle"
|
||||
desc = "A sniper rifle that's primarily used to fire non-lethal soporific rounds."
|
||||
origin_tech = "combat=7;syndicate=6"
|
||||
mag_type = /obj/item/ammo_box/magazine/sniper_rounds/soporific
|
||||
can_unsuppress = 0
|
||||
can_suppress = 0
|
||||
|
||||
//Normal Boolets
|
||||
/obj/item/ammo_box/magazine/sniper_rounds
|
||||
name = "sniper rounds (.50)"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "saber"
|
||||
item_state = "gun"
|
||||
mag_type = /obj/item/ammo_box/magazine/toy/smg
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot_smg.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg'
|
||||
force = 0
|
||||
throwforce = 0
|
||||
burst_size = 3
|
||||
@@ -22,7 +22,7 @@
|
||||
icon_state = "pistol"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
mag_type = /obj/item/ammo_box/magazine/toy/pistol
|
||||
fire_sound = 'sound/weapons/gunshots/Gunshot.ogg'
|
||||
fire_sound = 'sound/weapons/gunshots/gunshot.ogg'
|
||||
can_suppress = 0
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
|
||||
@@ -30,7 +30,9 @@
|
||||
var/spread = 0 //amount (in degrees) of projectile spread
|
||||
var/legacy = FALSE //legacy projectile system
|
||||
animate_movement = 0
|
||||
|
||||
|
||||
var/ignore_source_check = FALSE
|
||||
|
||||
var/damage = 10
|
||||
var/tile_dropoff = 0 //how much damage should be decremented as the bullet moves
|
||||
var/tile_dropoff_s = 0 //same as above but for stamina
|
||||
@@ -54,6 +56,9 @@
|
||||
var/jitter = 0
|
||||
var/forcedodge = 0 //to pass through everything
|
||||
var/dismemberment = 0 //The higher the number, the greater the bonus to dismembering. 0 will not dismember at all.
|
||||
var/ricochets = 0
|
||||
var/ricochets_max = 2
|
||||
var/ricochet_chance = 0
|
||||
|
||||
var/log_override = FALSE //whether print to admin attack logs or just keep it in the diary
|
||||
|
||||
@@ -157,6 +162,14 @@
|
||||
/obj/item/projectile/Bump(atom/A, yes)
|
||||
if(!yes) //prevents double bumps.
|
||||
return
|
||||
|
||||
if(check_ricochet(A) && check_ricochet_flag(A) && ricochets < ricochets_max)
|
||||
ricochets++
|
||||
if(A.handle_ricochet(src))
|
||||
on_ricochet(A)
|
||||
ignore_source_check = TRUE
|
||||
range = initial(range)
|
||||
return TRUE
|
||||
if(firer)
|
||||
if(A == firer || (A == firer.loc && istype(A, /obj/mecha))) //cannot shoot yourself or your mech
|
||||
loc = A.loc
|
||||
@@ -280,3 +293,21 @@ obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a pro
|
||||
/obj/item/projectile/proc/dumbfire(var/dir)
|
||||
current = get_ranged_target_turf(src, dir, world.maxx) //world.maxx is the range. Not sure how to handle this better.
|
||||
fire()
|
||||
|
||||
|
||||
/obj/item/projectile/proc/on_ricochet(atom/A)
|
||||
return
|
||||
|
||||
/obj/item/projectile/proc/check_ricochet()
|
||||
if(prob(ricochet_chance))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/projectile/proc/check_ricochet_flag(atom/A)
|
||||
if(A.flags_2 & CHECK_RICOCHET_1)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/projectile/proc/setAngle(new_angle) //wrapper for overrides.
|
||||
Angle = new_angle
|
||||
return TRUE
|
||||
|
||||
@@ -37,6 +37,18 @@
|
||||
stamina = 60
|
||||
icon_state = "bullet-r"
|
||||
|
||||
/obj/item/projectile/bullet/weakbullet2/invisible //finger gun bullets
|
||||
name = "invisible bullet"
|
||||
damage = 0
|
||||
icon_state = null
|
||||
hitsound_wall = null
|
||||
|
||||
/obj/item/projectile/bullet/weakbullet2/invisible/fake
|
||||
weaken = 0
|
||||
stamina = 0
|
||||
nodamage = 1
|
||||
log_override = TRUE
|
||||
|
||||
/obj/item/projectile/bullet/weakbullet3
|
||||
damage = 20
|
||||
|
||||
@@ -97,6 +109,15 @@
|
||||
range = rand(1, 10)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/pellet/assassination
|
||||
damage = 12
|
||||
tile_dropoff = 1 // slightly less damage and greater damage falloff compared to normal buckshot
|
||||
|
||||
/obj/item/projectile/bullet/pellet/assassination/on_hit(atom/target, blocked = 0)
|
||||
if(..(target, blocked))
|
||||
var/mob/living/M = target
|
||||
M.AdjustSilence(2) // HELP MIME KILLING ME IN MAINT
|
||||
|
||||
/obj/item/projectile/bullet/pellet/overload/on_hit(atom/target, blocked = 0)
|
||||
..()
|
||||
explosion(target, 0, 0, 2)
|
||||
@@ -188,23 +209,6 @@
|
||||
weaken = 4
|
||||
stun = 4
|
||||
|
||||
/obj/item/projectile/bullet/honker
|
||||
name = "banana"
|
||||
damage = 0
|
||||
weaken = 5
|
||||
stun = 5
|
||||
forcedodge = 1
|
||||
nodamage = 1
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
hitsound = 'sound/items/bikehorn.ogg'
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "banana"
|
||||
range = 200
|
||||
|
||||
/obj/item/projectile/bullet/honker/New()
|
||||
..()
|
||||
SpinAnimation()
|
||||
|
||||
/obj/item/projectile/bullet/mime
|
||||
damage = 0
|
||||
stun = 5
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
nodamage = 0
|
||||
|
||||
//explosion values
|
||||
var/exp_devastate = -1
|
||||
var/exp_heavy = 0
|
||||
var/exp_light = 2
|
||||
var/exp_flash = 3
|
||||
@@ -55,7 +56,7 @@
|
||||
/obj/item/projectile/magic/fireball/on_hit(var/target)
|
||||
. = ..()
|
||||
var/turf/T = get_turf(target)
|
||||
explosion(T, -1, 0, 2, 3, 0, flame_range = 2)
|
||||
explosion(T, exp_devastate, exp_heavy, exp_light, exp_flash, 0, flame_range = exp_fire)
|
||||
if(ismob(target)) //multiple flavors of pain
|
||||
var/mob/living/M = target
|
||||
M.take_overall_damage(0,10) //between this 10 burn, the 10 brute, the explosion brute, and the onfire burn, your at about 65 damage if you stop drop and roll immediately
|
||||
@@ -301,3 +302,32 @@
|
||||
flag = "magic"
|
||||
dismemberment = 50
|
||||
nodamage = 0
|
||||
|
||||
/obj/item/projectile/magic/slipping
|
||||
name = "magical banana"
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "banana"
|
||||
var/slip_stun = 5
|
||||
var/slip_weaken = 5
|
||||
hitsound = 'sound/items/bikehorn.ogg'
|
||||
|
||||
/obj/item/projectile/magic/slipping/New()
|
||||
..()
|
||||
SpinAnimation()
|
||||
|
||||
/obj/item/projectile/magic/slipping/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.slip(src, slip_stun, slip_weaken, 0, FALSE, TRUE) //Slips even with noslips/magboots on. NO ESCAPE!
|
||||
else if(isrobot(target)) //You think you're safe, cyborg? FOOL!
|
||||
var/mob/living/silicon/robot/R = target
|
||||
if(!R.incapacitated())
|
||||
to_chat(target, "<span class='warning'>You get splatted by [src], HONKING your sensors!</span>")
|
||||
R.Stun(slip_stun)
|
||||
else if(ismob(target))
|
||||
var/mob/M = target
|
||||
if(!M.stunned)
|
||||
to_chat(target, "<span class='notice'>You get splatted by [src].</span>")
|
||||
M.Weaken(slip_weaken)
|
||||
M.Stun(slip_stun)
|
||||
. = ..()
|
||||
Reference in New Issue
Block a user