mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 02:54:41 +01:00
Merge remote-tracking branch 'refs/remotes/ParadiseSS13/master'
# Conflicts: # _maps/map_files/cyberiad/cyberiad.dmm
This commit is contained in:
@@ -93,8 +93,8 @@ var/global/datum/prizes/global_prizes = new
|
||||
|
||||
/datum/prize_item/foam_darts
|
||||
name = "Pack of Foam Darts"
|
||||
desc = "A refill pack of 10 foam darts."
|
||||
typepath = /obj/item/weapon/storage/box/foam_darts
|
||||
desc = "A refill pack with foam darts."
|
||||
typepath = /obj/item/ammo_box/foambox
|
||||
cost = 20
|
||||
|
||||
/datum/prize_item/minigibber
|
||||
@@ -174,9 +174,10 @@ var/global/datum/prizes/global_prizes = new
|
||||
/datum/prize_item/crossbow
|
||||
name = "Foam Dart Crossbow"
|
||||
desc = "A toy crossbow that fires foam darts."
|
||||
typepath = /obj/item/toy/crossbow
|
||||
typepath = /obj/item/weapon/gun/projectile/shotgun/toy/crossbow
|
||||
cost = 100
|
||||
|
||||
|
||||
/datum/prize_item/toy_xeno
|
||||
name = "Xeno Action Figure"
|
||||
desc = "A lifelike replica of the horrific xeno scourge."
|
||||
@@ -252,7 +253,7 @@ var/global/datum/prizes/global_prizes = new
|
||||
/datum/prize_item/tommygun
|
||||
name = "Tommygun"
|
||||
desc = "A replica tommygun that fires foam darts."
|
||||
typepath = /obj/item/toy/crossbow/tommygun
|
||||
typepath = /obj/item/weapon/gun/projectile/shotgun/toy/tommygun
|
||||
cost = 175
|
||||
|
||||
/datum/prize_item/esword
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
/obj/item/toy/blink = 2,
|
||||
/obj/item/clothing/under/syndicate/tacticool = 2,
|
||||
/obj/item/toy/sword = 2,
|
||||
/obj/item/weapon/gun/projectile/revolver/capgun = 2,
|
||||
/obj/item/toy/crossbow = 2,
|
||||
/obj/item/weapon/gun/projectile/revolver/capgun = 2,
|
||||
/obj/item/weapon/gun/projectile/shotgun/toy/crossbow = 2,
|
||||
/obj/item/clothing/suit/syndicatefake = 2,
|
||||
/obj/item/weapon/storage/fancy/crayons = 2,
|
||||
/obj/item/toy/spinningtoy = 2,
|
||||
@@ -177,4 +177,4 @@
|
||||
if(interactable())
|
||||
computer.updateUsrDialog()
|
||||
blocked = 0
|
||||
return
|
||||
return
|
||||
|
||||
@@ -327,10 +327,13 @@
|
||||
if (C.handcuffed && !initial(C.handcuffed))
|
||||
C.unEquip(C.handcuffed)
|
||||
C.handcuffed = initial(C.handcuffed)
|
||||
C.update_handcuffed()
|
||||
|
||||
if (C.legcuffed && !initial(C.legcuffed))
|
||||
C.unEquip(C.legcuffed)
|
||||
C.legcuffed = initial(C.legcuffed)
|
||||
C.update_inv_legcuffed()
|
||||
|
||||
if(C.reagents)
|
||||
for(var/datum/reagent/R in C.reagents.reagent_list)
|
||||
C.reagents.clear_reagents()
|
||||
|
||||
@@ -38,22 +38,41 @@
|
||||
var/tmp_label = ""
|
||||
var/label_text = sanitize(input(user, "Inscribe some text into \the [initial(BB.name)]","Inscription",tmp_label))
|
||||
if(length(label_text) > 20)
|
||||
to_chat(user, "\red The inscription can be at most 20 characters long.")
|
||||
to_chat(user, "<span class='warning''>The inscription can be at most 20 characters long.</span>")
|
||||
else
|
||||
if(label_text == "")
|
||||
to_chat(user, "\blue You scratch the inscription off of [initial(BB)].")
|
||||
to_chat(user, "<span class='notice'>You scratch the inscription off of [initial(BB)].</span>")
|
||||
BB.name = initial(BB.name)
|
||||
else
|
||||
to_chat(user, "\blue You inscribe \"[label_text]\" into \the [initial(BB.name)].")
|
||||
to_chat(user, "<span class='notice'>You inscribe \"[label_text]\" into \the [initial(BB.name)].</span>")
|
||||
BB.name = "[initial(BB.name)] \"[label_text]\""
|
||||
else
|
||||
to_chat(user, "\blue You can only inscribe a metal bullet.")//because inscribing beanbags is silly
|
||||
to_chat(user, "<span class='notice'>You can only inscribe a metal bullet.</span>")//because inscribing beanbags is silly
|
||||
|
||||
else
|
||||
to_chat(user, "\blue There is no bullet in the casing to inscribe anything into.")
|
||||
to_chat(user, "<span class='notice'>There is no bullet in the casing to inscribe anything into.</span>")
|
||||
|
||||
/obj/item/ammo_casing/attackby(obj/item/ammo_box/box as obj, mob/user as mob, params)
|
||||
if(!istype(box, /obj/item/ammo_box))
|
||||
return
|
||||
if(isturf(loc))
|
||||
var/boolets = 0
|
||||
for(var/obj/item/ammo_casing/pew in loc)
|
||||
if(box.stored_ammo.len >= box.max_ammo)
|
||||
break
|
||||
if(pew.BB)
|
||||
if(box.give_round(pew))
|
||||
boolets++
|
||||
else
|
||||
continue
|
||||
if(boolets > 0)
|
||||
box.update_icon()
|
||||
to_chat(user, "<span class='notice'>You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You fail to collect anything.</span>")
|
||||
|
||||
/obj/item/ammo_casing/proc/newshot() //For energy weapons, shotgun shells and wands (!).
|
||||
if (!BB)
|
||||
if(!BB)
|
||||
BB = new projectile_type(src)
|
||||
return
|
||||
|
||||
@@ -85,19 +104,19 @@
|
||||
update_icon()
|
||||
|
||||
/obj/item/ammo_box/proc/get_round(var/keep = 0)
|
||||
if (!stored_ammo.len)
|
||||
if(!stored_ammo.len)
|
||||
return null
|
||||
else
|
||||
var/b = stored_ammo[stored_ammo.len]
|
||||
stored_ammo -= b
|
||||
if (keep)
|
||||
if(keep)
|
||||
stored_ammo.Insert(1,b)
|
||||
return b
|
||||
|
||||
/obj/item/ammo_box/proc/give_round(var/obj/item/ammo_casing/r)
|
||||
var/obj/item/ammo_casing/rb = r
|
||||
if (rb)
|
||||
if (stored_ammo.len < max_ammo && rb.caliber == caliber)
|
||||
if(rb)
|
||||
if(stored_ammo.len < max_ammo && rb.caliber == caliber)
|
||||
stored_ammo += rb
|
||||
rb.loc = src
|
||||
return 1
|
||||
|
||||
@@ -255,4 +255,42 @@
|
||||
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
|
||||
caliber = "40mm"
|
||||
icon_state = "40mmHE"
|
||||
projectile_type = "/obj/item/projectile/bullet/a40mm"
|
||||
projectile_type = "/obj/item/projectile/bullet/a40mm"
|
||||
|
||||
//FOAM DARTS
|
||||
/obj/item/ammo_casing/caseless/foam_dart
|
||||
name = "foam dart"
|
||||
desc = "It's nerf or nothing! Ages 8 and up."
|
||||
projectile_type = "/obj/item/projectile/bullet/reusable/foam_dart"
|
||||
caliber = "foam_force"
|
||||
icon = 'icons/obj/toyguns.dmi'
|
||||
icon_state = "foamdart"
|
||||
var/modified = 0
|
||||
|
||||
/obj/item/ammo_casing/caseless/foam_dart/update_icon()
|
||||
if(modified)
|
||||
icon_state = "foamdart_empty"
|
||||
|
||||
/obj/item/ammo_casing/caseless/foam_dart/attackby(var/obj/item/weapon/A as obj, mob/user as mob, params)
|
||||
..()
|
||||
if(istype(A, /obj/item/weapon/screwdriver) && !modified)
|
||||
modified = 1
|
||||
BB.damage_type = BRUTE
|
||||
icon_state = "foamdart_empty"
|
||||
desc = "It's nerf or nothing! ...Although, this one doesn't look too safe."
|
||||
to_chat(user, "<span class='notice'>You pop the safety cap off of [src].</span>")
|
||||
else if((istype(A, /obj/item/weapon/pen)) && modified && !BB.contents.len)
|
||||
if(!user.unEquip(A))
|
||||
return
|
||||
A.forceMove(BB)
|
||||
BB.damage = 5
|
||||
BB.nodamage = 0
|
||||
to_chat(user, "<span class='notice'>You insert [A] into [src].</span>")
|
||||
return
|
||||
|
||||
|
||||
/obj/item/ammo_casing/caseless/foam_dart/riot
|
||||
name = "riot foam dart"
|
||||
desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up."
|
||||
projectile_type = "/obj/item/projectile/bullet/reusable/foam_dart/riot"
|
||||
icon_state = "foamdart_riot"
|
||||
|
||||
@@ -86,4 +86,16 @@
|
||||
name = "Ammunition Box (tranquilizer darts)"
|
||||
icon_state = "45box"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/tranquilizer
|
||||
materials = list(MAT_METAL=1750)
|
||||
materials = list(MAT_METAL=1750)
|
||||
|
||||
//FOAM DARTS
|
||||
/obj/item/ammo_box/foambox
|
||||
name = "ammo box (Foam Darts)"
|
||||
icon = 'icons/obj/toyguns.dmi'
|
||||
icon_state = "foambox"
|
||||
ammo_type = /obj/item/ammo_casing/caseless/foam_dart
|
||||
max_ammo = 40
|
||||
|
||||
/obj/item/ammo_box/foambox/riot
|
||||
icon_state = "foambox_riot"
|
||||
ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
|
||||
|
||||
@@ -101,6 +101,17 @@
|
||||
max_ammo = 5
|
||||
multiload = 1
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shot/toy
|
||||
ammo_type = "/obj/item/ammo_casing/caseless/foam_dart"
|
||||
caliber = "foam_force"
|
||||
max_ammo = 4
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shot/toy/crossbow
|
||||
max_ammo = 5
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shot/toy/tommygun
|
||||
max_ammo = 10
|
||||
|
||||
///////////EXTERNAL MAGAZINES////////////////
|
||||
|
||||
/obj/item/ammo_box/magazine/m10mm
|
||||
@@ -290,4 +301,49 @@
|
||||
/obj/item/ammo_box/magazine/m12g/dragon
|
||||
name = "shotgun magazine (12g dragon's breath)"
|
||||
icon_state = "m12gf"
|
||||
ammo_type = "/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath"
|
||||
ammo_type = "/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath"
|
||||
|
||||
//FOAM DARTS
|
||||
/obj/item/ammo_box/magazine/toy
|
||||
name = "foam force META magazine"
|
||||
ammo_type = "/obj/item/ammo_casing/caseless/foam_dart"
|
||||
caliber = "foam_force"
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/smg
|
||||
name = "foam force SMG magazine"
|
||||
icon_state = "smg9mm-30"
|
||||
max_ammo = 30
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/smg/update_icon()
|
||||
..()
|
||||
icon_state = "smg9mm-[round(ammo_count(),6)]"
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/smg/riot
|
||||
ammo_type = "/obj/item/ammo_casing/caseless/foam_dart/riot"
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/pistol
|
||||
name = "foam force pistol magazine"
|
||||
icon_state = "9x19p"
|
||||
max_ammo = 8
|
||||
multiple_sprites = 2
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/pistol/riot
|
||||
ammo_type = "/obj/item/ammo_casing/caseless/foam_dart/riot"
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/smgm45
|
||||
name = "donksoft SMG magazine"
|
||||
ammo_type = "/obj/item/ammo_casing/caseless/foam_dart/riot"
|
||||
max_ammo = 20
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/smgm45/update_icon()
|
||||
..()
|
||||
icon_state = "c20r45-[round(ammo_count(),2)]"
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/m762
|
||||
name = "donksoft box magazine"
|
||||
ammo_type = "/obj/item/ammo_casing/caseless/foam_dart/riot"
|
||||
max_ammo = 50
|
||||
|
||||
/obj/item/ammo_box/magazine/toy/m762/update_icon()
|
||||
..()
|
||||
icon_state = "a762-[round(ammo_count(),10)]"
|
||||
|
||||
@@ -276,19 +276,19 @@
|
||||
//Suicide handling.
|
||||
if (M == user && user.zone_sel.selecting == "mouth" && !mouthshoot)
|
||||
mouthshoot = 1
|
||||
M.visible_message("\red [user] sticks their gun in their mouth, ready to pull the trigger...")
|
||||
M.visible_message("<span class='warning'> [user] sticks their gun in their mouth, ready to pull the trigger...</span>")
|
||||
if(!do_after(user, 40, target = M))
|
||||
M.visible_message("\blue [user] decided life was worth living")
|
||||
M.visible_message("<span class='warning'> [user] decided life was worth living</span>")
|
||||
mouthshoot = 0
|
||||
return
|
||||
if (process_chambered())
|
||||
user.visible_message("<span class = 'warning'>[user] pulls the trigger.</span>")
|
||||
user.visible_message("<span class='warning'>[user] pulls the trigger.</span>")
|
||||
if(silenced)
|
||||
playsound(user, fire_sound, 10, 1)
|
||||
else
|
||||
playsound(user, fire_sound, 50, 1)
|
||||
if(istype(in_chamber, /obj/item/projectile/lasertag))
|
||||
user.show_message("<span class = 'warning'>You feel rather silly, trying to commit suicide with a toy.</span>")
|
||||
if(istype(in_chamber, /obj/item/projectile/lasertag) || istype(in_chamber, /obj/item/projectile/bullet/reusable/foam_dart))
|
||||
user.show_message("<span class='warning'>You feel rather silly, trying to commit suicide with a toy.</span>")
|
||||
mouthshoot = 0
|
||||
return
|
||||
in_chamber.on_hit(M)
|
||||
@@ -296,7 +296,7 @@
|
||||
user.apply_damage(in_chamber.damage*2.5, in_chamber.damage_type, "head", used_weapon = "Point blank shot in the mouth with \a [in_chamber]", sharp=1)
|
||||
user.death()
|
||||
else
|
||||
to_chat(user, "<span class = 'notice'>Ow...</span>")
|
||||
to_chat(user, "<span class='notice'>Ow...</span>")
|
||||
user.apply_effect(110,STAMINA,0)
|
||||
del(in_chamber)
|
||||
mouthshoot = 0
|
||||
@@ -380,4 +380,4 @@
|
||||
update_icon()
|
||||
else
|
||||
set_light(0)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -16,15 +16,18 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/New()
|
||||
..()
|
||||
magazine = new mag_type(src)
|
||||
if(!magazine)
|
||||
magazine = new mag_type(src)
|
||||
chamber_round()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/process_chambered(var/eject_casing = 1, var/empty_chamber = 1)
|
||||
/obj/item/weapon/gun/projectile/process_chambered(var/eject_casing = 1, var/empty_chamber = 1 )
|
||||
// if(in_chamber)
|
||||
// return 1
|
||||
|
||||
@@ -50,9 +53,9 @@
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/proc/chamber_round()
|
||||
if (chambered || !magazine)
|
||||
if(chambered || !magazine)
|
||||
return
|
||||
else if (magazine.ammo_count())
|
||||
else if(magazine.ammo_count())
|
||||
chambered = magazine.get_round()
|
||||
chambered.loc = src
|
||||
return
|
||||
@@ -60,9 +63,9 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/attackby(var/obj/item/A as obj, mob/user as mob, params)
|
||||
..()
|
||||
if (istype(A, /obj/item/ammo_box/magazine))
|
||||
if(istype(A, /obj/item/ammo_box/magazine))
|
||||
var/obj/item/ammo_box/magazine/AM = A
|
||||
if (!magazine && istype(AM, text2path(mag_type)))
|
||||
if(!magazine && istype(AM, text2path(mag_type)))
|
||||
user.remove_from_mob(AM)
|
||||
magazine = AM
|
||||
magazine.loc = src
|
||||
@@ -71,7 +74,7 @@
|
||||
A.update_icon()
|
||||
update_icon()
|
||||
return 1
|
||||
else if (magazine)
|
||||
else if(magazine)
|
||||
to_chat(user, "<span class='notice'>There's already a magazine in \the [src].</span>")
|
||||
if(istype(A, /obj/item/weapon/suppressor))
|
||||
var/obj/item/weapon/suppressor/S = A
|
||||
@@ -132,9 +135,9 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/proc/get_ammo(var/countchambered = 1)
|
||||
var/boolets = 0 //mature var names for mature people
|
||||
if (chambered && countchambered)
|
||||
if(chambered && countchambered)
|
||||
boolets++
|
||||
if (magazine)
|
||||
if(magazine)
|
||||
boolets += magazine.ammo_count()
|
||||
return boolets
|
||||
|
||||
@@ -146,4 +149,4 @@
|
||||
item_state = "suppressor"
|
||||
w_class = 2
|
||||
var/oldsound = null
|
||||
var/initial_w_class = null
|
||||
var/initial_w_class = null
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
/obj/item/weapon/gun/projectile/automatic/toy
|
||||
name = "foam force SMG"
|
||||
desc = "A prototype three-round burst toy submachine gun. Ages 8 and up."
|
||||
icon = 'icons/obj/toyguns.dmi'
|
||||
icon_state = "saber"
|
||||
item_state = "gun"
|
||||
mag_type = "/obj/item/ammo_box/magazine/toy/smg"
|
||||
force = 0
|
||||
throwforce = 0
|
||||
burst_size = 3
|
||||
can_suppress = 0
|
||||
clumsy_check = 0
|
||||
needs_permit = 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/toy/process_chambered()
|
||||
return ..(0, 1)
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/toy/pistol
|
||||
name = "foam force pistol"
|
||||
desc = "A small, easily concealable toy handgun. Ages 8 and up."
|
||||
icon_state = "pistol"
|
||||
w_class = 2
|
||||
mag_type = "/obj/item/ammo_box/magazine/toy/pistol"
|
||||
fire_sound = 'sound/weapons/Gunshot.ogg'
|
||||
can_suppress = 0
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
action_button_name = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/toy/pistol/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot
|
||||
name = "foam force riot pistol"
|
||||
desc = "RIOT! Ages 8 and up."
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/toy/pistol/riot/New()
|
||||
magazine = new /obj/item/ammo_box/magazine/toy/pistol/riot(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r/toy
|
||||
name = "donksoft SMG"
|
||||
desc = "A bullpup two-round burst toy SMG, designated 'C-20r'. Ages 8 and up."
|
||||
icon = 'icons/obj/toyguns.dmi'
|
||||
can_suppress = 0
|
||||
needs_permit = 0
|
||||
mag_type = "/obj/item/ammo_box/magazine/toy/smgm45"
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r/toy/process_chambered()
|
||||
return ..(0, 1)
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw/toy
|
||||
name = "donksoft LMG"
|
||||
desc = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up."
|
||||
icon = 'icons/obj/toyguns.dmi'
|
||||
can_suppress = 0
|
||||
needs_permit = 0
|
||||
mag_type = "/obj/item/ammo_box/magazine/toy/m762"
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw/toy/process_chambered()
|
||||
return ..(0, 1)
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/toy
|
||||
name = "foam force shotgun"
|
||||
desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up."
|
||||
icon = 'icons/obj/toyguns.dmi'
|
||||
force = 0
|
||||
throwforce = 0
|
||||
origin_tech = null
|
||||
mag_type = "/obj/item/ammo_box/magazine/internal/shot/toy"
|
||||
clumsy_check = 0
|
||||
needs_permit = 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/toy/pump_unload()
|
||||
if(chambered)//We have a shell in the chamber
|
||||
chambered = null
|
||||
if(in_chamber)
|
||||
in_chamber = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/toy/crossbow
|
||||
name = "foam force crossbow"
|
||||
desc = "A weapon favored by many overactive children. Ages 8 and up."
|
||||
icon_state = "crossbow"
|
||||
item_state = "crossbow"
|
||||
mag_type = "/obj/item/ammo_box/magazine/internal/shot/toy/crossbow"
|
||||
fire_sound = 'sound/items/syringeproj.ogg'
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = 2
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/toy/tommygun
|
||||
name = "tommy gun"
|
||||
desc = "Looks almost like the real thing! Great for practicing Drive-bys. Ages 8 and up."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "tommy"
|
||||
item_state = "shotgun"
|
||||
mag_type = "/obj/item/ammo_box/magazine/internal/shot/toy/tommygun"
|
||||
w_class = 2
|
||||
@@ -0,0 +1,45 @@
|
||||
/obj/item/projectile/bullet/reusable
|
||||
name = "reusable bullet"
|
||||
desc = "How do you even reuse a bullet?"
|
||||
var/obj/item/ammo_casing/caseless/ammo_type = /obj/item/ammo_casing/caseless/
|
||||
var/hit = 0
|
||||
|
||||
/obj/item/projectile/bullet/reusable/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(!proj_hit)
|
||||
proj_hit = 1
|
||||
if (src.contents.len)
|
||||
var/obj/content
|
||||
for(content in src.contents)
|
||||
content.loc = src.loc
|
||||
else
|
||||
new ammo_type(src.loc)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/reusable/on_range()
|
||||
if(!proj_hit)
|
||||
if (src.contents.len)
|
||||
var/obj/content
|
||||
for(content in src.contents)
|
||||
content.loc = src.loc
|
||||
else
|
||||
new ammo_type(src.loc)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/reusable/foam_dart
|
||||
name = "foam dart"
|
||||
desc = "I hope you're wearing eye protection."
|
||||
damage = 0 // It's a damn toy.
|
||||
damage_type = OXY
|
||||
nodamage = 1
|
||||
edge = 0
|
||||
embed = 0
|
||||
icon = 'icons/obj/toyguns.dmi'
|
||||
icon_state = "foamdart"
|
||||
ammo_type = /obj/item/ammo_casing/caseless/foam_dart
|
||||
range = 10
|
||||
|
||||
/obj/item/projectile/bullet/reusable/foam_dart/riot
|
||||
name = "riot foam dart"
|
||||
icon_state = "foamdart_riot"
|
||||
ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
|
||||
stamina = 25
|
||||
@@ -323,6 +323,14 @@
|
||||
build_path = /obj/item/weapon/canvas/twentythreeXnineteen
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/foambox
|
||||
name = "Box of Foam Force darts"
|
||||
id = "foamforce"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 2000)
|
||||
build_path = /obj/item/ammo_box/foambox
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/canvas/twentythreeXtwentythree
|
||||
name = "23px by 23px Canvas"
|
||||
id = "canvas23x23"
|
||||
|
||||
@@ -492,6 +492,17 @@
|
||||
build_path = /obj/item/weapon/circuitboard/prize_counter
|
||||
category = list("Misc. Machinery")
|
||||
|
||||
/datum/design/gameboard
|
||||
name = "Machine Design (Virtual Gameboard)"
|
||||
desc = "The circuit board for a Virtual Gameboard."
|
||||
id = "gameboard"
|
||||
req_tech = list("programming" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS=1000, "sacid"=20)
|
||||
build_path = /obj/item/weapon/circuitboard/gameboard
|
||||
category = list("Misc. Machinery")
|
||||
|
||||
|
||||
/datum/design/botany_extractor
|
||||
name = "Machine Design (Lysis-Isolation Centrifuge)"
|
||||
desc = "The circuit board for a lysis-isolation centrifuge."
|
||||
|
||||
Reference in New Issue
Block a user