mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Added bolas to map and machines
- Bolas can now be found in sec lockers and the SecVend - Bolas can now be printed from a hacked autolathe - Fixed a bug where throwing a bolas at the same tile as its source would create a stationary projectile
This commit is contained in:
@@ -210,9 +210,13 @@
|
|||||||
T.xo = (targetloc.x - T.starting.x)
|
T.xo = (targetloc.x - T.starting.x)
|
||||||
if (ishuman(usr) && T.starting == usr.loc) // determines if the bolas should spawn an item when it dies (prevents infinite spam from mechs)
|
if (ishuman(usr) && T.starting == usr.loc) // determines if the bolas should spawn an item when it dies (prevents infinite spam from mechs)
|
||||||
T.shot_from = /obj/item/weapon/legcuffs/bolas
|
T.shot_from = /obj/item/weapon/legcuffs/bolas
|
||||||
|
T.firer = usr
|
||||||
else
|
else
|
||||||
T.shot_from = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas
|
T.shot_from = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas
|
||||||
|
T.firer = T.shot_from
|
||||||
// log_admin("Bolas fired from [T.shot_from], location [T.starting] to [T.original], with [T.xo] and [T.yo]")
|
// log_admin("Bolas fired from [T.shot_from], location [T.starting] to [T.original], with [T.xo] and [T.yo]")
|
||||||
|
if(!T.xo && !T.yo) //Required. If you take this out, you can create stationary projectiles which never disappear
|
||||||
|
T.OnDeath()
|
||||||
T.process()
|
T.process()
|
||||||
playsound(src, throw_sound, 20, 1)
|
playsound(src, throw_sound, 20, 1)
|
||||||
Destroy() //gets rid of the bolas item in the hand
|
Destroy() //gets rid of the bolas item in the hand
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ var/global/list/autolathe_recipes_hidden = list( \
|
|||||||
new /obj/item/device/radio/electropack(), \
|
new /obj/item/device/radio/electropack(), \
|
||||||
new /obj/item/weapon/weldingtool/largetank(), \
|
new /obj/item/weapon/weldingtool/largetank(), \
|
||||||
new /obj/item/weapon/handcuffs(), \
|
new /obj/item/weapon/handcuffs(), \
|
||||||
|
new /obj/item/weapon/legcuffs/bolas(), \
|
||||||
new /obj/item/ammo_magazine/a357(), \
|
new /obj/item/ammo_magazine/a357(), \
|
||||||
new /obj/item/ammo_casing/shotgun(), \
|
new /obj/item/ammo_casing/shotgun(), \
|
||||||
new /obj/item/ammo_casing/shotgun/dart(), \
|
new /obj/item/ammo_casing/shotgun/dart(), \
|
||||||
|
|||||||
@@ -761,7 +761,8 @@
|
|||||||
icon_deny = "sec-deny"
|
icon_deny = "sec-deny"
|
||||||
req_access_txt = "1"
|
req_access_txt = "1"
|
||||||
products = list(/obj/item/weapon/handcuffs = 8,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5,
|
products = list(/obj/item/weapon/handcuffs = 8,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5,
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6)
|
/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6,
|
||||||
|
/obj/item/weapon/legcuffs/bolas = 8)
|
||||||
contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2)
|
contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2)
|
||||||
|
|
||||||
/obj/machinery/vending/hydronutrients
|
/obj/machinery/vending/hydronutrients
|
||||||
|
|||||||
@@ -188,6 +188,7 @@
|
|||||||
new /obj/item/taperoll/police(src)
|
new /obj/item/taperoll/police(src)
|
||||||
new /obj/item/device/hailer(src) //wonder if vg would spam this
|
new /obj/item/device/hailer(src) //wonder if vg would spam this
|
||||||
new /obj/item/clothing/gloves/black(src)
|
new /obj/item/clothing/gloves/black(src)
|
||||||
|
new /obj/item/weapon/legcuffs/bolas(src) //I added this - Comic
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -740,7 +740,7 @@
|
|||||||
if(!CM.legcuffed || CM.buckled)
|
if(!CM.legcuffed || CM.buckled)
|
||||||
return // time leniency for lag which also might make this whole thing pointless but the server
|
return // time leniency for lag which also might make this whole thing pointless but the server
|
||||||
for(var/mob/O in viewers(CM))// lags so hard that 40s isn't lenient enough - Quarxink
|
for(var/mob/O in viewers(CM))// lags so hard that 40s isn't lenient enough - Quarxink
|
||||||
O.show_message("\red <B>[CM] manages to remove the legcuffs!</B>", 1)
|
O.show_message("\red <B>[CM] manages to remove the [HC.name]!</B>", 1)
|
||||||
CM << "\blue You successfully remove \the [CM.legcuffed]."
|
CM << "\blue You successfully remove \the [CM.legcuffed]."
|
||||||
CM.legcuffed.loc = usr.loc
|
CM.legcuffed.loc = usr.loc
|
||||||
CM.legcuffed = null
|
CM.legcuffed = null
|
||||||
|
|||||||
@@ -180,7 +180,6 @@
|
|||||||
OnDeath()
|
OnDeath()
|
||||||
|
|
||||||
OnDeath()
|
OnDeath()
|
||||||
log_admin(shot_from)
|
|
||||||
if(shot_from == /obj/item/weapon/legcuffs/bolas) //if it's thrown, we want it to respawn the item. Mechs don't do this to avoid spam and infinite bolas works
|
if(shot_from == /obj/item/weapon/legcuffs/bolas) //if it's thrown, we want it to respawn the item. Mechs don't do this to avoid spam and infinite bolas works
|
||||||
// log_admin("Bolas created at [get_turf(src)]")
|
// log_admin("Bolas created at [get_turf(src)]")
|
||||||
var /obj/item/weapon/legcuffs/bolas/B = new /obj/item/weapon/legcuffs/bolas
|
var /obj/item/weapon/legcuffs/bolas/B = new /obj/item/weapon/legcuffs/bolas
|
||||||
@@ -188,8 +187,10 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
Bump(atom/A as mob|obj|turf|area)
|
Bump(atom/A as mob|obj|turf|area)
|
||||||
if(A == firer)
|
if(A == firer) //As if this ever happens
|
||||||
loc = A.loc
|
loc = get_turf(A)
|
||||||
|
A <<"\blue You run into your own bolas!"
|
||||||
|
OnDeath()
|
||||||
return
|
return
|
||||||
if(src)
|
if(src)
|
||||||
if(A)
|
if(A)
|
||||||
|
|||||||
Reference in New Issue
Block a user