mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 12:37:26 +01:00
Adds Fusion Gauntlets to RND (#18804)
* do a once over first * merge conflict shit * armor pen to modern stuff * Apply suggestions from code review Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> * BOY SMELL THEM MERGE CONFLICTS * icons / final changes Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com>
This commit is contained in:
co-authored by
SteelSlayer
Sirryan2002
parent
516e32fafb
commit
f9defc92bf
@@ -7,8 +7,9 @@
|
||||
* Kidan spear
|
||||
* Chainsaw
|
||||
* Singularity hammer
|
||||
* Mjolnnir
|
||||
* Mjolnnir
|
||||
* Knighthammer
|
||||
* Pyro Claws
|
||||
*/
|
||||
|
||||
/*##################################################################
|
||||
@@ -826,3 +827,124 @@
|
||||
Z.ex_act(2)
|
||||
charged = 3
|
||||
playsound(user, 'sound/weapons/marauder.ogg', 50, 1)
|
||||
|
||||
// PYRO CLAWS
|
||||
/obj/item/twohanded/required/pyro_claws
|
||||
name = "hardplasma energy claws"
|
||||
desc = "The power of the sun, in the claws of your hand."
|
||||
icon_state = "pyro_claws"
|
||||
flags = ABSTRACT | NODROP | DROPDEL
|
||||
force = 22
|
||||
force_wielded = 22
|
||||
damtype = BURN
|
||||
armour_penetration_percentage = 50
|
||||
block_chance = 50
|
||||
sharp = TRUE
|
||||
attack_effect_override = ATTACK_EFFECT_CLAW
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut", "savaged", "clawed")
|
||||
sprite_sheets_inhand = list("Vox" = 'icons/mob/clothing/species/vox/held.dmi', "Drask" = 'icons/mob/clothing/species/drask/held.dmi')
|
||||
toolspeed = 0.5
|
||||
var/lifetime = 60 SECONDS
|
||||
|
||||
/obj/item/twohanded/required/pyro_claws/Initialize(mapload)
|
||||
. = ..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/twohanded/required/pyro_claws/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/required/pyro_claws/process()
|
||||
lifetime -= 2 SECONDS
|
||||
if(lifetime <= 0)
|
||||
visible_message("<span class='warning'>[src] slides back into the depths of [loc]'s wrists.</span>")
|
||||
do_sparks(rand(1,6), 1, loc)
|
||||
qdel(src)
|
||||
return
|
||||
if(prob(15))
|
||||
do_sparks(rand(1,6), 1, loc)
|
||||
|
||||
/obj/item/twohanded/required/pyro_claws/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(prob(60))
|
||||
do_sparks(rand(1,6), 1, loc)
|
||||
if(istype(target, /obj/machinery/door/airlock))
|
||||
var/obj/machinery/door/airlock/A = target
|
||||
|
||||
if(!A.requiresID() || A.allowed(user))
|
||||
return
|
||||
|
||||
if(A.locked)
|
||||
to_chat(user, "<span class='notice'>The airlock's bolts prevent it from being forced.</span>")
|
||||
return
|
||||
|
||||
if(A.arePowerSystemsOn())
|
||||
user.visible_message("<span class='warning'>[user] jams [user.p_their()] [name] into the airlock and starts prying it open!</span>", "<span class='warning'>You start forcing the airlock open.</span>", "<span class='warning'>You hear a metal screeching sound.</span>")
|
||||
playsound(A, 'sound/machines/airlock_alien_prying.ogg', 150, 1)
|
||||
if(!do_after(user, 25, target = A))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='warning'>[user] forces the airlock open with [user.p_their()] [name]!</span>", "<span class='warning'>You force open the airlock.</span>", "<span class='warning'>You hear a metal screeching sound.</span>")
|
||||
A.open(2)
|
||||
|
||||
/obj/item/clothing/gloves/color/black/pyro_claws
|
||||
name = "Fusion gauntlets"
|
||||
desc = "Cybersun Industries developed these gloves after a grifter fought one of their soldiers, who attached a pyro core to an energy sword, and found it mostly effective."
|
||||
item_state = "pyro"
|
||||
item_color = "pyro" // I will kill washing machines one day
|
||||
icon_state = "pyro"
|
||||
can_be_cut = FALSE
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
var/on_cooldown = FALSE
|
||||
var/obj/item/assembly/signaler/anomaly/pyro/core
|
||||
|
||||
/obj/item/clothing/gloves/color/black/pyro_claws/Destroy()
|
||||
QDEL_NULL(core)
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/gloves/color/black/pyro_claws/examine(mob/user)
|
||||
. = ..()
|
||||
if(core)
|
||||
. += "<span class='notice'>[src] are fully operational!</span>"
|
||||
else
|
||||
. += "<span class='warning'>It is missing a pyroclastic anomaly core.</span>"
|
||||
|
||||
/obj/item/clothing/gloves/color/black/pyro_claws/ui_action_click(mob/user)
|
||||
if(!core)
|
||||
to_chat(user, "<span class='notice'>[src] has no core to power it!</span>")
|
||||
return
|
||||
if(on_cooldown)
|
||||
to_chat(user, "<span class='notice'>[src] is on cooldown!</span>")
|
||||
do_sparks(rand(1,6), 1, loc)
|
||||
return
|
||||
if(!user.drop_l_hand() || !user.drop_r_hand())
|
||||
to_chat(user, "<span class='notice'>[src] are unable to deploy the blades with the items in your hands!</span>")
|
||||
return
|
||||
var/obj/item/W = new /obj/item/twohanded/required/pyro_claws
|
||||
user.visible_message("<span class='warning'>[user] deploys [W] from [user.p_their()] wrists in a shower of sparks!</span>", "<span class='notice'>You deploy [W] from your wrists!</span>", "<span class='warning'>You hear the shower of sparks!</span>")
|
||||
user.put_in_hands(W)
|
||||
on_cooldown = TRUE
|
||||
flags |= NODROP
|
||||
addtimer(CALLBACK(src, .proc/reboot), 2 MINUTES)
|
||||
do_sparks(rand(1,6), 1, loc)
|
||||
|
||||
/obj/item/clothing/gloves/color/black/pyro_claws/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/assembly/signaler/anomaly/pyro))
|
||||
if(core)
|
||||
to_chat(user, "<span class='notice'>[src] already has a [I]!</span>")
|
||||
return
|
||||
if(!user.drop_item())
|
||||
to_chat(user, "<span class='warning'>[I] is stuck to your hand!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You insert [I] into [src], and [src] starts to warm up.</span>")
|
||||
I.forceMove(src)
|
||||
core = I
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/gloves/color/black/pyro_claws/proc/reboot()
|
||||
on_cooldown = FALSE
|
||||
flags &= ~NODROP
|
||||
atom_say("Internal plasma canisters recharged. Gloves sufficiently cooled")
|
||||
|
||||
Reference in New Issue
Block a user