mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Alcatraz Revisited (#26476)
* Alcatraz Revisited * Damian's Due * more flex
This commit is contained in:
@@ -40,6 +40,51 @@
|
||||
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
species_fit = list(VOX_SHAPED)
|
||||
|
||||
/obj/item/clothing/gloves/swat/operator
|
||||
name = "operator gloves"
|
||||
desc = "Once you touch down in the LZ at the FOB, locate the IEDs and don't put up with any FNGs."
|
||||
|
||||
/obj/item/clothing/gloves/swat/operator/examine(mob/user)
|
||||
..()
|
||||
if(locate(/obj/item/weapon/implant/loyalty) in user)
|
||||
to_chat(user,"<span class='info'>These gloves can be used to convey messages to other loyalty implanted crew. Use an open hand on yourself while wearing them.</span>")
|
||||
|
||||
/obj/item/clothing/gloves/swat/operator/Touch(var/atom/A, mob/user, proximity)
|
||||
if(A == user && !user.incapacitated())
|
||||
if(user.is_implanted(/obj/item/weapon/implant/loyalty))
|
||||
var/list/choices = list(
|
||||
list("Stick together!", "radial_group"),
|
||||
list("Split up!", "radial_split"),
|
||||
list("Wait here!", "radial_waithere"),
|
||||
list("Busy, cover!", "radial_busy")
|
||||
)
|
||||
|
||||
var/sign = show_radial_menu(user,user,choices)
|
||||
if(!sign)
|
||||
return 0 //if they don't want to sign, let them check their own status
|
||||
signal(sign,user)
|
||||
return 1 //exit the attack_hand
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/gloves/swat/operator/proc/signal(var/sign, mob/user)
|
||||
if(user.incapacitated())
|
||||
return
|
||||
for(var/mob/M in view(7, user))
|
||||
if(!M.client)
|
||||
continue //Don't bother, no one to show it to
|
||||
if(M.isUnconscious() || M.eye_blind || M.blinded)
|
||||
continue //can't perceive this message
|
||||
if(M.is_implanted(/obj/item/weapon/implant/loyalty) || istype(M, /mob/dead/observer))
|
||||
to_chat(M,"[bicon(src)] <span class='info'>[user] signals, <B>[sign]</B></span>")
|
||||
continue
|
||||
else if(isrobot(M))
|
||||
var/mob/living/silicon/robot/robit = M
|
||||
if(HAS_MODULE_QUIRK(robit, MODULE_IS_THE_LAW))
|
||||
to_chat(M,"[bicon(src)] <span class='info'>[user] signals, <B>[sign]</B></span>")
|
||||
continue
|
||||
|
||||
to_chat(M,"<span class='notice'>[user] makes strange hand symbols.</span>")
|
||||
|
||||
/obj/item/clothing/gloves/combat //Combined effect of SWAT gloves and insulated gloves
|
||||
desc = "These tactical gloves are somewhat fire and impact resistant."
|
||||
name = "combat gloves"
|
||||
|
||||
@@ -264,6 +264,19 @@ var/paperwork_library
|
||||
name = "promotional Nanotrasen pen"
|
||||
desc = "Just a cheap plastic pen. It reads: \"For our most valued customers\". They probably meant 'employees'."
|
||||
|
||||
/obj/item/weapon/pen/tactical
|
||||
name = "tacpen"
|
||||
desc = "Tactical pen. The tip is self heating and can light things, the reverse can be used as a screwdriver. It contains a one-time reservoir of biofoam that cannot be refilled."
|
||||
sharpness_flags = SHARP_TIP | HOT_EDGE
|
||||
|
||||
/obj/item/weapon/pen/tactical/New()
|
||||
..()
|
||||
create_reagents(9)
|
||||
reagents.add_reagent(BIOFOAM, 9) //90 ticks, about 3 minutes
|
||||
|
||||
/obj/item/weapon/pen/tactical/is_screwdriver(mob/user)
|
||||
return TRUE
|
||||
|
||||
/obj/item/weapon/pen/attack(mob/M as mob, mob/user as mob)
|
||||
if(!ismob(M))
|
||||
return
|
||||
@@ -276,7 +289,8 @@ var/paperwork_library
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = user
|
||||
return
|
||||
if(reagents && reagents.total_volume)
|
||||
reagents.trans_to(M,50)
|
||||
|
||||
|
||||
/*
|
||||
@@ -294,16 +308,6 @@ var/paperwork_library
|
||||
create_reagents(30) // Used to be 300
|
||||
reagents.add_reagent(CHLORALHYDRATE, 22) // Used to be 100 sleep toxin // 30 Chloral seems to be fatal, reducing it to 22. /N
|
||||
|
||||
/obj/item/weapon/pen/sleepypen/attack(mob/M as mob, mob/user as mob)
|
||||
if(!(istype(M,/mob)))
|
||||
return
|
||||
..()
|
||||
if(reagents.total_volume)
|
||||
if(M.reagents)
|
||||
reagents.trans_to(M, 50) //used to be 150
|
||||
return
|
||||
|
||||
|
||||
/*
|
||||
* Parapens
|
||||
*/
|
||||
@@ -312,17 +316,6 @@ var/paperwork_library
|
||||
slot_flags = SLOT_BELT
|
||||
origin_tech = Tc_MATERIALS + "=2;" + Tc_SYNDICATE + "=5"
|
||||
|
||||
|
||||
/obj/item/weapon/pen/paralysis/attack(mob/M as mob, mob/user as mob)
|
||||
if(!(istype(M,/mob)))
|
||||
return
|
||||
..()
|
||||
if(reagents.total_volume)
|
||||
if(M.reagents)
|
||||
reagents.trans_to(M, 50)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/pen/paralysis/New()
|
||||
var/datum/reagents/R = new/datum/reagents(25)
|
||||
reagents = R
|
||||
@@ -330,4 +323,3 @@ var/paperwork_library
|
||||
R.add_reagent(ZOMBIEPOWDER, 10)
|
||||
R.add_reagent(CRYPTOBIOLIN, 15)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -65,3 +65,8 @@
|
||||
pixely = -1
|
||||
var/image/shell_image = image("icon" = S.icon, "icon_state" = S.icon_state, "pixel_x" = pixelx, "pixel_y" = pixely)
|
||||
overlays += shell_image
|
||||
|
||||
/obj/item/ammo_storage/speedloader/energy
|
||||
name = "energy speedloader"
|
||||
desc = "A speedloader designed to quick-charge an energy weapon."
|
||||
icon_state = "energy_speedloader"
|
||||
@@ -91,3 +91,12 @@
|
||||
to_chat(M, "<span class='warning'>\The [src] buzzes.</span>")
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/gun/energy/attackby(obj/item/I, mob/user)
|
||||
..()
|
||||
if(istype(I,/obj/item/ammo_storage/speedloader/energy) && power_supply.charge < power_supply.maxcharge)
|
||||
power_supply.give(charge_cost*2) //worth 2 more shots
|
||||
qdel(I)
|
||||
update_icon()
|
||||
to_chat(user,"<span class='notice'>\The [I] transfers some power to \the [src].</span>")
|
||||
playsound(src, 'sound/machines/charge_finish.ogg', 50)
|
||||
@@ -701,6 +701,18 @@
|
||||
name = "Frosted Jelly Donut"
|
||||
reagents.add_reagent(SPRINKLES, 2)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/donutiron //not a subtype of donuts to avoid inheritance
|
||||
name = "ironman donut"
|
||||
icon_state = "irondonut"
|
||||
desc = "An ironman donut will keep you cool when things heat up."
|
||||
bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/donutiron/New()
|
||||
..()
|
||||
reagents.add_reagent(NUTRIMENT, 6)
|
||||
reagents.add_reagent(LEPORAZINE, 6)
|
||||
reagents.add_reagent(IRON, 6)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
|
||||
name = "jelly donut"
|
||||
desc = "You jelly?"
|
||||
|
||||
Reference in New Issue
Block a user