mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
Merge branch 'master' of https://github.com/tgstation/-tg-station into newshotguns
Conflicts: code/modules/projectiles/ammunition/magazines.dm code/modules/projectiles/guns/projectile/shotgun.dm icons/mob/back.dmi icons/obj/gun.dmi
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
item_state = "bio_suit"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/flash, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/emergency_oxygen)
|
||||
allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/flash/handheld, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/emergency_oxygen)
|
||||
|
||||
//Chaplain
|
||||
/obj/item/clothing/suit/chaplain_hoodie
|
||||
|
||||
@@ -1,17 +1,26 @@
|
||||
/obj/item/clothing/under/color
|
||||
desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
|
||||
|
||||
/obj/item/clothing/under/color/random/New()
|
||||
var/list/excluded = list(/obj/item/clothing/under/color/random, /obj/item/clothing/under/color)
|
||||
var/obj/item/clothing/under/color/C = pick(typesof(/obj/item/clothing/under/color) - excluded)
|
||||
name = initial(C.name)
|
||||
icon_state = initial(C.icon_state)
|
||||
item_state = initial(C.item_state)
|
||||
item_color = initial(C.item_color)
|
||||
|
||||
|
||||
/obj/item/clothing/under/color/black
|
||||
name = "black jumpsuit"
|
||||
icon_state = "black"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black"
|
||||
|
||||
/obj/item/clothing/under/color/blackf
|
||||
name = "feminine black jumpsuit"
|
||||
desc = "It's very smart and in a ladies-size!"
|
||||
icon_state = "black"
|
||||
item_state = "bl_suit"
|
||||
item_color = "blackf"
|
||||
fitted = 0
|
||||
can_adjust = 0
|
||||
/obj/item/clothing/under/color/grey
|
||||
name = "grey jumpsuit"
|
||||
icon_state = "grey"
|
||||
item_state = "gy_suit"
|
||||
item_color = "grey"
|
||||
|
||||
/obj/item/clothing/under/color/blue
|
||||
name = "blue jumpsuit"
|
||||
@@ -25,20 +34,12 @@
|
||||
item_state = "g_suit"
|
||||
item_color = "green"
|
||||
|
||||
/obj/item/clothing/under/color/grey
|
||||
name = "grey jumpsuit"
|
||||
icon_state = "grey"
|
||||
item_state = "gy_suit"
|
||||
item_color = "grey"
|
||||
|
||||
/obj/item/clothing/under/color/orange
|
||||
name = "orange jumpsuit"
|
||||
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
|
||||
desc = "Don't wear this near paranoid security officers."
|
||||
icon_state = "orange"
|
||||
item_state = "o_suit"
|
||||
item_color = "orange"
|
||||
has_sensor = 2
|
||||
sensor_mode = 3
|
||||
|
||||
/obj/item/clothing/under/color/pink
|
||||
name = "pink jumpsuit"
|
||||
@@ -64,81 +65,78 @@
|
||||
item_state = "y_suit"
|
||||
item_color = "yellow"
|
||||
|
||||
/obj/item/clothing/under/color/psyche
|
||||
name = "psychedelic jumpsuit"
|
||||
desc = "Groovy!"
|
||||
icon_state = "psyche"
|
||||
item_color = "psyche"
|
||||
|
||||
/obj/item/clothing/under/color/lightblue
|
||||
name = "lightblue jumpsuit"
|
||||
desc = "lightblue"
|
||||
icon_state = "lightblue"
|
||||
item_state = "b_suit"
|
||||
item_color = "lightblue"
|
||||
|
||||
/obj/item/clothing/under/color/aqua
|
||||
name = "aqua jumpsuit"
|
||||
desc = "aqua"
|
||||
icon_state = "aqua"
|
||||
item_state = "b_suit"
|
||||
item_color = "aqua"
|
||||
|
||||
/obj/item/clothing/under/color/purple
|
||||
name = "purple jumpsuit"
|
||||
desc = "purple"
|
||||
icon_state = "purple"
|
||||
item_state = "p_suit"
|
||||
item_color = "purple"
|
||||
|
||||
/obj/item/clothing/under/color/lightpurple
|
||||
name = "lightpurple jumpsuit"
|
||||
desc = "lightpurple"
|
||||
icon_state = "lightpurple"
|
||||
item_state = "p_suit"
|
||||
item_color = "lightpurple"
|
||||
|
||||
/obj/item/clothing/under/color/lightgreen
|
||||
name = "lightgreen jumpsuit"
|
||||
desc = "lightgreen"
|
||||
icon_state = "lightgreen"
|
||||
item_state = "g_suit"
|
||||
item_color = "lightgreen"
|
||||
|
||||
/obj/item/clothing/under/color/lightblue
|
||||
name = "lightblue jumpsuit"
|
||||
desc = "lightblue"
|
||||
icon_state = "lightblue"
|
||||
item_state = "b_suit"
|
||||
item_color = "lightblue"
|
||||
|
||||
/obj/item/clothing/under/color/lightbrown
|
||||
name = "lightbrown jumpsuit"
|
||||
desc = "lightbrown"
|
||||
icon_state = "lightbrown"
|
||||
item_color = "lightbrown"
|
||||
|
||||
/obj/item/clothing/under/color/brown
|
||||
name = "brown jumpsuit"
|
||||
desc = "brown"
|
||||
icon_state = "brown"
|
||||
item_color = "brown"
|
||||
|
||||
/obj/item/clothing/under/color/yellowgreen
|
||||
name = "yellowgreen jumpsuit"
|
||||
desc = "yellowgreen"
|
||||
icon_state = "yellowgreen"
|
||||
item_state = "y_suit"
|
||||
item_color = "yellowgreen"
|
||||
|
||||
/obj/item/clothing/under/color/darkblue
|
||||
name = "darkblue jumpsuit"
|
||||
desc = "darkblue"
|
||||
icon_state = "darkblue"
|
||||
item_state = "b_suit"
|
||||
item_color = "darkblue"
|
||||
|
||||
/obj/item/clothing/under/color/lightred
|
||||
name = "lightred jumpsuit"
|
||||
desc = "lightred"
|
||||
icon_state = "lightred"
|
||||
item_state = "r_suit"
|
||||
item_color = "lightred"
|
||||
|
||||
/obj/item/clothing/under/color/darkred
|
||||
name = "darkred jumpsuit"
|
||||
desc = "darkred"
|
||||
icon_state = "darkred"
|
||||
item_color = "darkred"
|
||||
item_state = "r_suit"
|
||||
item_color = "darkred"
|
||||
|
||||
/obj/item/clothing/under/color/maroon
|
||||
name = "maroon jumpsuit"
|
||||
icon_state = "maroon"
|
||||
item_state = "r_suit"
|
||||
item_color = "maroon"
|
||||
@@ -46,6 +46,15 @@
|
||||
item_color = "waiter"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/prisoner
|
||||
name = "prison jumpsuit"
|
||||
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
|
||||
icon_state = "prisoner"
|
||||
item_state = "o_suit"
|
||||
item_color = "prisoner"
|
||||
has_sensor = 2
|
||||
sensor_mode = 3
|
||||
|
||||
/obj/item/clothing/under/rank/mailman
|
||||
name = "mailman's jumpsuit"
|
||||
desc = "<i>'Special delivery!'</i>"
|
||||
@@ -53,6 +62,13 @@
|
||||
item_state = "b_suit"
|
||||
item_color = "mailman"
|
||||
|
||||
/obj/item/clothing/under/rank/psyche
|
||||
name = "psychedelic jumpsuit"
|
||||
desc = "Groovy!"
|
||||
icon_state = "psyche"
|
||||
item_state = "p_suit"
|
||||
item_color = "psyche"
|
||||
|
||||
/obj/item/clothing/under/sexyclown
|
||||
name = "sexy-clown suit"
|
||||
desc = "It makes you look HONKable!"
|
||||
|
||||
@@ -365,10 +365,7 @@ ________________________________________________________________________________
|
||||
|
||||
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
|
||||
equip_to_slot_or_del(R, slot_ears)
|
||||
if(gender==FEMALE)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/color/blackf(src), slot_w_uniform)
|
||||
else
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/shoes/space_ninja(src), slot_shoes)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/suit/space/space_ninja(src), slot_wear_suit)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/gloves/space_ninja(src), slot_gloves)
|
||||
|
||||
@@ -349,7 +349,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite
|
||||
/obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\
|
||||
/obj/item/weapon/hand_tele, /obj/item/weapon/rcd, /obj/item/weapon/tank/jetpack,\
|
||||
/obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\
|
||||
/obj/item/clothing/shoes/magboots, /obj/item/blueprints, /obj/item/weapon/disk/nuclear,\
|
||||
/obj/item/clothing/shoes/magboots, /obj/item/areaeditor/blueprints, /obj/item/weapon/disk/nuclear,\
|
||||
/obj/item/clothing/suit/space/nasavoid, /obj/item/weapon/tank)
|
||||
|
||||
/proc/fake_attack(var/mob/living/target)
|
||||
|
||||
@@ -750,6 +750,23 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/carpet
|
||||
seed = /obj/item/seeds/carpetseed
|
||||
name = "carpet"
|
||||
desc = "The textile industry's dark secret."
|
||||
icon_state = "carpetclump"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/carpet/attack_self(mob/user as mob)
|
||||
user << "<span class='notice'>You roll out the red carpet.</span>"
|
||||
var/location = get_turf(user)
|
||||
var/carpetAmt = 1 + round(potency / 50) // The carpet we're holding
|
||||
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/carpet/carpetToConvert in location) // The carpet on the floor
|
||||
carpetAmt += 1
|
||||
qdel(carpetToConvert)
|
||||
var/obj/item/stack/tile/newAstroturf = new /obj/item/stack/tile/carpet(location)
|
||||
newAstroturf.amount = carpetAmt
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod
|
||||
seed = /obj/item/seeds/kudzuseed
|
||||
name = "kudzu pod"
|
||||
|
||||
@@ -1013,6 +1013,23 @@
|
||||
potency = 10
|
||||
plant_type = 0
|
||||
growthstages = 2
|
||||
mutatelist = list(/obj/item/seeds/carpetseed)
|
||||
|
||||
/obj/item/seeds/carpetseed
|
||||
name = "pack of carpet seeds"
|
||||
desc = "These seeds grow into stylish carpet samples."
|
||||
icon_state = "seed-carpet"
|
||||
species = "carpet"
|
||||
plantname = "Carpet"
|
||||
product = /obj/item/weapon/reagent_containers/food/snacks/grown/carpet
|
||||
lifespan = 40
|
||||
endurance = 40
|
||||
maturation = 2
|
||||
production = 5
|
||||
yield = 5
|
||||
potency = 10
|
||||
plant_type = 0
|
||||
growthstages = 2
|
||||
|
||||
/obj/item/seeds/cocoapodseed
|
||||
name = "pack of cocoa pod seeds"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
var/fire_alert = 0
|
||||
|
||||
var/heat_protection = 0.5
|
||||
|
||||
var/leaping = 0
|
||||
|
||||
/mob/living/carbon/alien/New()
|
||||
verbs += /mob/living/proc/mob_sleep
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
icon_state = "alienh_s"
|
||||
plasma_rate = 5
|
||||
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/New()
|
||||
create_reagents(100)
|
||||
if(name == "alien hunter")
|
||||
@@ -50,26 +49,105 @@
|
||||
|
||||
|
||||
//Hunter verbs
|
||||
/*
|
||||
/mob/living/carbon/alien/humanoid/hunter/verb/invis()
|
||||
set name = "Invisibility (50)"
|
||||
set desc = "Makes you invisible for 15 seconds"
|
||||
set category = "Alien"
|
||||
|
||||
if(alien_invis)
|
||||
update_icons()
|
||||
/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap()
|
||||
leap_on_click = !leap_on_click
|
||||
leap_icon.icon_state = "leap_[leap_on_click ? "on":"off"]"
|
||||
src << "<span class='noticealien'>You will now [leap_on_click ? "leap at":"slash at"] enemies!</span>"
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/ClickOn(var/atom/A, var/params)
|
||||
face_atom(A)
|
||||
if(leap_on_click)
|
||||
leap_at(A)
|
||||
else
|
||||
if(powerc(50))
|
||||
adjustToxLoss(-50)
|
||||
alien_invis = 1.0
|
||||
update_icons()
|
||||
src << "\green You are now invisible."
|
||||
for(var/mob/O in oviewers(src, null))
|
||||
O.show_message(text("\red <B>[src] fades into the surroundings!</B>"), 1)
|
||||
spawn(250)
|
||||
if(!isnull(src))//Don't want the game to runtime error when the mob no-longer exists.
|
||||
alien_invis = 0.0
|
||||
update_icons()
|
||||
src << "\green You are no longer invisible."
|
||||
return
|
||||
*/
|
||||
..()
|
||||
|
||||
|
||||
#define MAX_ALIEN_LEAP_DIST 7
|
||||
|
||||
/mob/living/carbon/alien/humanoid/hunter/proc/leap_at(var/atom/A)
|
||||
if(leaping) //Leap while you leap, so you can leap while you leap
|
||||
return
|
||||
|
||||
if(!has_gravity(src) || !has_gravity(A))
|
||||
src << "<span class='alertalien'>It is unsafe to leap without gravity!</span>"
|
||||
//It's also extremely buggy visually, so it's balance+bugfix
|
||||
return
|
||||
if(lying)
|
||||
return
|
||||
|
||||
leaping = 1
|
||||
update_icons()
|
||||
throw_at(A,MAX_ALIEN_LEAP_DIST,1)
|
||||
leaping = 0
|
||||
update_icons()
|
||||
|
||||
/mob/living/carbon/alien/humanoid/throw_impact(A)
|
||||
var/msg = ""
|
||||
|
||||
if(A)
|
||||
if(istype(A, /mob/living))
|
||||
var/mob/living/L = A
|
||||
msg = "<span class ='alertalien'>[src] pounces on [A]!</span>"
|
||||
L.Weaken(5)
|
||||
sleep(2)//Runtime prevention (infinite bump() calls on hulks)
|
||||
step_towards(src,L)
|
||||
else
|
||||
msg = "<span class ='alertalien'>[src] smashes into [A]!</span>"
|
||||
weakened = 2
|
||||
|
||||
if(leaping)
|
||||
leaping = 0
|
||||
update_canmove()
|
||||
visible_message(msg)
|
||||
|
||||
|
||||
/mob/living/carbon/alien/humanoid/float(on)
|
||||
if(leaping)
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
//Modified throw_at() that will use diagonal dirs where appropriate
|
||||
//instead of locking it to cardinal dirs
|
||||
/mob/living/carbon/alien/humanoid/throw_at(atom/target, range, speed)
|
||||
if(!target || !src || (flags & NODROP)) return 0
|
||||
|
||||
src.throwing = 1
|
||||
|
||||
var/dist_x = abs(target.x - src.x)
|
||||
var/dist_y = abs(target.y - src.y)
|
||||
var/dist_travelled = 0
|
||||
var/dist_since_sleep = 0
|
||||
|
||||
var/tdist_x = dist_x;
|
||||
var/tdist_y = dist_y;
|
||||
|
||||
if(dist_x <= dist_y)
|
||||
tdist_x = dist_y;
|
||||
tdist_y = dist_x;
|
||||
|
||||
var/error = tdist_x/2 - tdist_y
|
||||
while(target && (((((dist_x > dist_y) && ((src.x < target.x) || (src.x > target.x))) || ((dist_x <= dist_y) && ((src.y < target.y) || (src.y > target.y))) || (src.x > target.x)) && dist_travelled < range) || !has_gravity(src)))
|
||||
|
||||
if(!src.throwing) break
|
||||
if(!istype(src.loc, /turf)) break
|
||||
|
||||
var/atom/step = get_step(src, get_dir(src,target))
|
||||
if(!step)
|
||||
break
|
||||
src.Move(step)
|
||||
hit_check()
|
||||
error += (error < 0) ? tdist_x : -tdist_y;
|
||||
dist_travelled++
|
||||
dist_since_sleep++
|
||||
if(dist_since_sleep >= speed)
|
||||
dist_since_sleep = 0
|
||||
sleep(1)
|
||||
|
||||
|
||||
src.throwing = 0
|
||||
if(isobj(src))
|
||||
src.throw_impact(get_turf(src))
|
||||
|
||||
return 1
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
var/obj/item/r_store = null
|
||||
var/obj/item/l_store = null
|
||||
var/caste = ""
|
||||
var/leap_on_click = 0
|
||||
update_icon = 1
|
||||
|
||||
//This is fine right now, if we're adding organ specific damage this needs to be updated
|
||||
|
||||
@@ -365,6 +365,8 @@
|
||||
|
||||
if(weakened)
|
||||
weakened = max(weakened-1,0)
|
||||
if(!weakened)
|
||||
update_icons()
|
||||
|
||||
if(stuttering)
|
||||
stuttering = max(stuttering-1, 0)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
for(var/image/I in overlays_standing)
|
||||
overlays += I
|
||||
|
||||
|
||||
if(stat == DEAD)
|
||||
//If we mostly took damage from fire
|
||||
if(fireloss > 125)
|
||||
@@ -22,9 +23,13 @@
|
||||
else
|
||||
icon_state = "alien[caste]_dead"
|
||||
pixel_y = 0
|
||||
else if(stat == UNCONSCIOUS)
|
||||
|
||||
else if(stat == UNCONSCIOUS || weakened)
|
||||
icon_state = "alien[caste]_unconscious"
|
||||
pixel_y = 0
|
||||
else if(leap_on_click)
|
||||
icon_state = "alien[caste]_pounce"
|
||||
|
||||
else if(lying || resting)
|
||||
icon_state = "alien[caste]_sleep"
|
||||
else if(m_intent == "run")
|
||||
@@ -32,6 +37,18 @@
|
||||
else
|
||||
icon_state = "alien[caste]_s"
|
||||
|
||||
if(leaping)
|
||||
icon = 'icons/mob/alienleap.dmi'
|
||||
icon_state = "alien[caste]_leap"
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
else
|
||||
icon = initial(icon)
|
||||
pixel_x = initial(pixel_x)
|
||||
pixel_y = initial(pixel_y)
|
||||
|
||||
|
||||
|
||||
/mob/living/carbon/alien/humanoid/regenerate_icons()
|
||||
..()
|
||||
if (notransform) return
|
||||
|
||||
@@ -494,6 +494,10 @@
|
||||
else
|
||||
mode()
|
||||
|
||||
/mob/living/simple_animal/drone/assess_threat() //Secbots won't hunt maintenance drones.
|
||||
return -10
|
||||
|
||||
|
||||
#undef HANDS_LAYER
|
||||
#undef HEAD_LAYER
|
||||
#undef TOTAL_LAYERS
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
Changing this around would probably require a good look-over the pre-existing code.
|
||||
*/
|
||||
var/obj/screen/zone_sel/zone_sel = null
|
||||
var/obj/screen/leap_icon = null
|
||||
|
||||
var/damageoverlaytemp = 0
|
||||
var/computer_id = null
|
||||
|
||||
@@ -671,6 +671,15 @@
|
||||
icon_state = "female_kinky"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_whitealt
|
||||
name = "Ladies White Sport"
|
||||
icon_state = "female_whitealt"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_blackalt
|
||||
name = "Ladies Black Sport"
|
||||
icon_state = "female_blackalt"
|
||||
gender = FEMALE
|
||||
|
||||
////////////////////////////
|
||||
// Undershirt Definitions //
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
|
||||
res.Blend(img, blendMode2iconMode(A.blend_mode), offX, offY)
|
||||
|
||||
if(istype(A, /obj/item/blueprints))
|
||||
if(istype(A, /obj/item/areaeditor/blueprints))
|
||||
blueprints = 1
|
||||
|
||||
for(var/turf/T in turfs)
|
||||
@@ -426,4 +426,4 @@ obj/item/device/camera/siliconcam/robot_camera/proc/borgprint()
|
||||
p.pixel_y = rand(-10, 10)
|
||||
C.toner -= 20 //Cyborgs are very ineffeicient at printing an image
|
||||
visible_message("[C.name] spits out a photograph from a narrow slot on it's chassis.")
|
||||
usr << "You print a photograph."
|
||||
usr << "You print a photograph."
|
||||
|
||||
@@ -67,6 +67,14 @@
|
||||
max_ammo = 1
|
||||
multiload = 0
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shotriot
|
||||
name = "riot shotgun internal magazine"
|
||||
desc = "Oh god, this shouldn't be here"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/beanbag
|
||||
caliber = "shotgun"
|
||||
max_ammo = 6
|
||||
multiload = 0
|
||||
|
||||
///////////EXTERNAL MAGAZINES////////////////
|
||||
/obj/item/ammo_box/magazine/m9mm
|
||||
name = "handgun magazine (9mm)"
|
||||
|
||||
@@ -60,6 +60,12 @@
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shotcom
|
||||
w_class = 5
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/riot //for spawn in the armory
|
||||
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"
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shotriot
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/doublebarrel
|
||||
name = "double-barreled shotgun"
|
||||
desc = "A true classic."
|
||||
|
||||
@@ -52,7 +52,7 @@ datum/design/synthetic_flash
|
||||
build_type = MECHFAB
|
||||
materials = list("$metal" = 750, "$glass" = 750)
|
||||
reliability = 76
|
||||
build_path = /obj/item/device/flash/
|
||||
build_path = /obj/item/device/flash/handheld
|
||||
category = "Misc"
|
||||
|
||||
datum/design/bluespacebeaker
|
||||
|
||||
Reference in New Issue
Block a user