mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 02:54:41 +01:00
Implement usesound/toolspeed
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
w_class = 1
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
attack_verb = list("attacked", "coloured")
|
||||
toolspeed = 1
|
||||
var/colour = "#FF0000" //RGB
|
||||
var/drawtype = "rune"
|
||||
var/list/graffiti = list("body","amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa","up","down","left","right","heart","borgsrogue","voxpox","shitcurity","catbeast","hieroglyphs1","hieroglyphs2","hieroglyphs3","security","syndicate1","syndicate2","nanotrasen","lie","valid","arrowleft","arrowright","arrowup","arrowdown","chicken","hailcrab","brokenheart","peace","scribble","scribble2","scribble3","skrek","squish","tunnelsnake","yip","youaredead")
|
||||
@@ -86,7 +87,7 @@
|
||||
else if(graffiti.Find(drawtype))
|
||||
temp = "graffiti"
|
||||
to_chat(user, "You start drawing a [temp] on the [target.name].")
|
||||
if(instant || do_after(user, 50, target = target))
|
||||
if(instant || do_after(user, 50 * toolspeed, target = target))
|
||||
var/obj/effect/decal/cleanable/crayon/C = new /obj/effect/decal/cleanable/crayon(target,colour,drawtype,temp)
|
||||
C.add_hiddenprint(user)
|
||||
to_chat(user, "You finish drawing [temp].")
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
/obj/item/clothing/suit/space/rig
|
||||
)
|
||||
|
||||
/obj/item/device/modkit/afterattack(obj/O, mob/user as mob, proximity)
|
||||
/obj/item/device/modkit/afterattack(obj/item/O, mob/user as mob, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
to_chat(user, "<span class='warning'>[O] must be safely placed on the ground for modification.</span>")
|
||||
return
|
||||
|
||||
playsound(user.loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
||||
playsound(user.loc, O.usesound, 100, 1)
|
||||
|
||||
user.visible_message("\red [user] opens \the [src] and modifies \the [O].","\red You open \the [src] and modify \the [O].")
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
var/chosen_wire = input(user, "OH GOD OH GOD", "WHAT WIRE?!") in wires
|
||||
if(!in_range(src, usr) || issilicon(usr) || !usr.canmove || usr.restrained())
|
||||
return
|
||||
playsound(src, 'sound/items/Wirecutter.ogg', 50, 1, 1)
|
||||
playsound(src, I.usesound, 50, 1, 1)
|
||||
user.visible_message("<span class='warning'>[user] cuts the [chosen_wire] wire!</span>", "<span class='danger'>You cut the [chosen_wire] wire!</span>")
|
||||
sleep(5)
|
||||
if(chosen_wire == correct_wire)
|
||||
@@ -84,8 +84,8 @@
|
||||
to_chat(user, "<span class='warning'>You can't see the box well enough to cut the wires out.</span>")
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] starts removing the payload and wires from \the [src].</span>")
|
||||
if(do_after(user, 40, target = src))
|
||||
playsound(src, 'sound/items/Wirecutter.ogg', 50, 1, 1)
|
||||
if(do_after(user, 40 * I.toolspeed, target = src))
|
||||
playsound(src, I.usesound, 50, 1, 1)
|
||||
user.unEquip(src)
|
||||
user.visible_message("<span class='notice'>[user] removes the insides of \the [src]!</span>")
|
||||
var/obj/item/stack/cable_coil/C = new /obj/item/stack/cable_coil(src.loc)
|
||||
|
||||
@@ -138,8 +138,8 @@
|
||||
if(3)
|
||||
if(iswirecutter(W) && b_stat && wires.IsAllCut())
|
||||
to_chat(user, "<span class='notice'>You cut out the intercoms wiring and disconnect its electronics.</span>")
|
||||
playsound(get_turf(src), 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
if(do_after(user, 10, target = src))
|
||||
playsound(get_turf(src), W.usesound, 50, 1)
|
||||
if(do_after(user, 10 * W.toolspeed, target = src))
|
||||
if(buildstage != 3)
|
||||
return
|
||||
new /obj/item/stack/cable_coil(get_turf(src),5)
|
||||
@@ -152,8 +152,8 @@
|
||||
else return ..()
|
||||
if(2)
|
||||
if(isscrewdriver(W))
|
||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 10, target = src))
|
||||
playsound(get_turf(src), W.usesound, 50, 1)
|
||||
if(do_after(user, 10 * W.toolspeed, target = src))
|
||||
update_icon()
|
||||
on = 1
|
||||
b_stat = 0
|
||||
@@ -170,15 +170,15 @@
|
||||
if(coil.amount < 5)
|
||||
to_chat(user, "<span class='warning'>You need more cable for this!</span>")
|
||||
return
|
||||
if(do_after(user, 10, target = src))
|
||||
if(do_after(user, 10 * coil.toolspeed, target = src))
|
||||
coil.use(5)
|
||||
to_chat(user, "<span class='notice'>You wire \the [src]!</span>")
|
||||
buildstage = 2
|
||||
return 1
|
||||
if(iscrowbar(W))
|
||||
to_chat(user, "<span class='notice'>You begin removing the electronics...</span>")
|
||||
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 10, target = src))
|
||||
playsound(get_turf(src), W.usesound, 50, 1)
|
||||
if(do_after(user, 10 * W.toolspeed, target = src))
|
||||
if(buildstage != 1)
|
||||
return
|
||||
new /obj/item/weapon/intercom_electronics(get_turf(src))
|
||||
@@ -187,19 +187,19 @@
|
||||
return 1
|
||||
if(0)
|
||||
if(istype(W,/obj/item/weapon/intercom_electronics))
|
||||
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 10, target = src))
|
||||
playsound(get_turf(src), W.usesound, 50, 1)
|
||||
if(do_after(user, 10 * W.toolspeed, target = src))
|
||||
qdel(W)
|
||||
to_chat(user, "<span class='notice'>You insert \the [W] into \the [src]!</span>")
|
||||
buildstage = 1
|
||||
return 1
|
||||
if(iswelder(W))
|
||||
var/obj/item/weapon/weldingtool/WT=W
|
||||
playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1)
|
||||
playsound(get_turf(src), WT.usesound, 50, 1)
|
||||
if(!WT.remove_fuel(3, user))
|
||||
to_chat(user, "<span class='warning'>You're out of welding fuel.</span>")
|
||||
return 1
|
||||
if(do_after(user, 10, target = src))
|
||||
if(do_after(user, 10 * WT.toolspeed, target = src))
|
||||
to_chat(user, "<span class='notice'>You cut the intercom frame from the wall!</span>")
|
||||
new /obj/item/mounted/frame/intercom(get_turf(src))
|
||||
qdel(src)
|
||||
@@ -233,6 +233,8 @@
|
||||
desc = "Looks like a circuit. Probably is."
|
||||
w_class = 2
|
||||
materials = list(MAT_METAL=50, MAT_GLASS=50)
|
||||
toolspeed = 1
|
||||
usesound = 'sound/items/Deconstruct.ogg'
|
||||
|
||||
/obj/item/device/radio/intercom/locked
|
||||
var/locked_frequency
|
||||
|
||||
@@ -279,7 +279,7 @@ REAGENT SCANNER
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You install the upgrade in the [src].</span>")
|
||||
overlays += "advanced"
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
playsound(src.loc, usesound, 50, 1)
|
||||
upgraded = 1
|
||||
qdel(W)
|
||||
|
||||
@@ -296,6 +296,7 @@ REAGENT SCANNER
|
||||
desc = "An upgrade unit that can be installed on a health analyzer for expanded functionality."
|
||||
w_class = 1
|
||||
origin_tech = "magnets=2;biotech=2"
|
||||
usesound = 'sound/items/Deconstruct.ogg'
|
||||
|
||||
/obj/item/device/analyzer
|
||||
desc = "A hand-held environmental scanner which reports current gas levels."
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
/obj/item/device/tape/attackby(obj/item/I, mob/user)
|
||||
if(ruined && istype(I, /obj/item/weapon/screwdriver))
|
||||
to_chat(user, "<span class='notice'>You start winding the tape back in.</span>")
|
||||
if(do_after(user, 120, target = src))
|
||||
if(do_after(user, 120 * I.toolspeed, target = src))
|
||||
to_chat(user, "<span class='notice'>You wound the tape back in!</span>")
|
||||
fix()
|
||||
else if(istype(I, /obj/item/weapon/pen))
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
desc = "Place it on a wall."
|
||||
var/sheets_refunded = 2
|
||||
var/list/mount_reqs = list() //can contain simfloor, nospace. Used in try_build to see if conditions are needed, then met
|
||||
toolspeed = 1
|
||||
usesound = 'sound/items/Deconstruct.ogg'
|
||||
|
||||
/obj/item/mounted/frame/attackby(obj/item/weapon/W, mob/user)
|
||||
..()
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
icon_state = "tube"
|
||||
origin_tech = "materials=3;engineering=2"
|
||||
amount = 10
|
||||
|
||||
toolspeed = 1
|
||||
|
||||
/obj/item/stack/nanopaste/attack(mob/living/M as mob, mob/user as mob)
|
||||
if(!istype(M) || !istype(user))
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
max_amount = 60
|
||||
attack_verb = list("hit", "bludgeoned", "whacked")
|
||||
hitsound = 'sound/weapons/grenadelaunch.ogg'
|
||||
toolspeed = 1
|
||||
usesound = 'sound/items/Deconstruct.ogg'
|
||||
|
||||
/obj/item/stack/rods/cyborg
|
||||
materials = list()
|
||||
|
||||
@@ -143,7 +143,7 @@ var/global/list/datum/stack_recipe/sinew_recipes = list ( \
|
||||
/obj/item/stack/sheet/animalhide/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(W.sharp)
|
||||
user.visible_message("[user] starts cutting hair off \the [src].", "<span class='notice'>You start cutting the hair off \the [src]...</span>", "<span class='italics'>You hear the sound of a knife rubbing against flesh.</span>")
|
||||
if(do_after(user,50, target = src))
|
||||
if(do_after(user, 50 * W.toolspeed, target = src))
|
||||
to_chat(user, "<span class='notice'>You cut the hair from this [src.singular_name].</span>")
|
||||
//Try locating an exisitng stack on the tile and add to there if possible
|
||||
for(var/obj/item/stack/sheet/hairlesshide/HS in usr.loc)
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed")
|
||||
var/perunit = MINERAL_MATERIAL_AMOUNT
|
||||
var/sheettype = null //this is used for girders in the creation of walls/false walls
|
||||
usesound = 'sound/items/Deconstruct.ogg'
|
||||
toolspeed = 1
|
||||
|
||||
|
||||
// Since the sheetsnatcher was consolidated into weapon/storage/bag we now use
|
||||
|
||||
@@ -1301,7 +1301,7 @@ obj/item/toy/cards/deck/syndicate/black
|
||||
/obj/item/toy/minigibber/attackby(var/obj/O, var/mob/user, params)
|
||||
if(istype(O,/obj/item/toy/character) && O.loc == user)
|
||||
to_chat(user, "<span class='notice'>You start feeding \the [O] [bicon(O)] into \the [src]'s mini-input.</span>")
|
||||
if(do_after(user,10, target = src))
|
||||
if(do_after(user, 10, target = src))
|
||||
if(O.loc != user)
|
||||
to_chat(user, "<span class='alert'>\The [O] is too far away to feed into \the [src]!</span>")
|
||||
else
|
||||
|
||||
@@ -20,6 +20,8 @@ RCD
|
||||
w_class = 3
|
||||
materials = list(MAT_METAL = 30000)
|
||||
origin_tech = "engineering=4;materials=2"
|
||||
toolspeed = 1
|
||||
usesound = 'sound/items/Deconstruct.ogg'
|
||||
var/datum/effect/system/spark_spread/spark_system
|
||||
var/max_matter = 100
|
||||
var/matter = 0
|
||||
@@ -172,7 +174,7 @@ RCD
|
||||
door_name = temp_t
|
||||
|
||||
/obj/item/weapon/rcd/proc/activate()
|
||||
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
playsound(loc, usesound, 50, 1)
|
||||
|
||||
|
||||
/obj/item/weapon/rcd/afterattack(atom/A, mob/user, proximity)
|
||||
@@ -197,7 +199,7 @@ RCD
|
||||
if(checkResource(3, user))
|
||||
to_chat(user, "Building Wall ...")
|
||||
playsound(loc, 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, 20, target = A))
|
||||
if(do_after(user, 20 * toolspeed, target = A))
|
||||
if(!useResource(3, user)) return 0
|
||||
activate()
|
||||
var/turf/AT = A
|
||||
@@ -210,7 +212,7 @@ RCD
|
||||
if(checkResource(10, user))
|
||||
to_chat(user, "Building Airlock...")
|
||||
playsound(loc, 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, 50, target = A))
|
||||
if(do_after(user, 50 * toolspeed, target = A))
|
||||
if(!useResource(10, user)) return 0
|
||||
activate()
|
||||
var/obj/machinery/door/airlock/T = new door_type(A)
|
||||
@@ -231,7 +233,7 @@ RCD
|
||||
if(checkResource(5, user))
|
||||
to_chat(user, "Deconstructing Wall...")
|
||||
playsound(loc, 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, 40, target = A))
|
||||
if(do_after(user, 40 * toolspeed, target = A))
|
||||
if(!useResource(5, user)) return 0
|
||||
activate()
|
||||
var/turf/AT = A
|
||||
@@ -243,7 +245,7 @@ RCD
|
||||
if(checkResource(5, user))
|
||||
to_chat(user, "Deconstructing Floor...")
|
||||
playsound(loc, 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, 50, target = A))
|
||||
if(do_after(user, 50 * toolspeed, target = A))
|
||||
if(!useResource(5, user)) return 0
|
||||
activate()
|
||||
var/turf/AT = A
|
||||
@@ -255,7 +257,7 @@ RCD
|
||||
if(checkResource(20, user))
|
||||
to_chat(user, "Deconstructing Airlock...")
|
||||
playsound(loc, 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, 50, target = A))
|
||||
if(do_after(user, 50 * toolspeed, target = A))
|
||||
if(!useResource(20, user)) return 0
|
||||
activate()
|
||||
qdel(A)
|
||||
@@ -270,7 +272,7 @@ RCD
|
||||
return 0
|
||||
to_chat(user, "Deconstructing window...")
|
||||
playsound(loc, 'sound/machines/click.ogg', 50, 1)
|
||||
if(!do_after(user, 20, target = A))
|
||||
if(!do_after(user, 20 * toolspeed, target = A))
|
||||
return 0
|
||||
if(locate(/obj/structure/window/full/shuttle) in A.contents)
|
||||
return 0 // Let's not give shuttle-griefers an easy time.
|
||||
@@ -307,7 +309,7 @@ RCD
|
||||
return 0
|
||||
to_chat(user, "Constructing window...")
|
||||
playsound(loc, 'sound/machines/click.ogg', 50, 1)
|
||||
if(!do_after(user, 20, target = A))
|
||||
if(!do_after(user, 20 * toolspeed, target = A))
|
||||
return 0
|
||||
if(locate(/obj/structure/grille) in A.contents)
|
||||
return 0 // We already have window
|
||||
|
||||
@@ -87,6 +87,8 @@
|
||||
icon_state = "razor"
|
||||
flags = CONDUCT
|
||||
w_class = 1
|
||||
usesound = 'sound/items/Welder2.ogg'
|
||||
toolspeed = 1
|
||||
|
||||
/obj/item/weapon/razor/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||
if(ishuman(M))
|
||||
@@ -106,24 +108,24 @@
|
||||
if(H == user) //shaving yourself
|
||||
user.visible_message("<span class='notice'>[user] starts to shave their facial hair with \the [src].</span>", \
|
||||
"<span class='notice'>You take a moment shave your facial hair with \the [src].</span>")
|
||||
if(do_after(user, 50, target = H))
|
||||
if(do_after(user, 50 * toolspeed, target = H))
|
||||
user.visible_message("<span class='notice'>[user] shaves his facial hair clean with the [src].</span>", \
|
||||
"<span class='notice'>You finish shaving with the [src]. Fast and clean!</span>")
|
||||
C.f_style = "Shaved"
|
||||
H.update_fhair()
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 20, 1)
|
||||
playsound(src.loc, usesound, 20, 1)
|
||||
else
|
||||
var/turf/user_loc = user.loc
|
||||
var/turf/H_loc = H.loc
|
||||
user.visible_message("<span class='danger'>[user] tries to shave [H]'s facial hair with \the [src].</span>", \
|
||||
"<span class='warning'>You start shaving [H]'s facial hair.</span>")
|
||||
if(do_after(user, 50, target = H))
|
||||
if(do_after(user, 50 * toolspeed, target = H))
|
||||
if(user_loc == user.loc && H_loc == H.loc)
|
||||
user.visible_message("<span class='danger'>[user] shaves off [H]'s facial hair with \the [src].</span>", \
|
||||
"<span class='notice'>You shave [H]'s facial hair clean off.</span>")
|
||||
C.f_style = "Shaved"
|
||||
H.update_fhair()
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 20, 1)
|
||||
playsound(src.loc, usesound, 20, 1)
|
||||
if(user.zone_sel.selecting == "head")
|
||||
if(!get_location_accessible(H, "head"))
|
||||
to_chat(user, "<span class='warning'>The headgear is in the way.</span>")
|
||||
@@ -137,24 +139,24 @@
|
||||
if(H == user) //shaving yourself
|
||||
user.visible_message("<span class='warning'>[user] starts to shave their head with \the [src].</span>", \
|
||||
"<span class='warning'>You start to shave your head with \the [src].</span>")
|
||||
if(do_after(user, 50, target = H))
|
||||
if(do_after(user, 50 * toolspeed, target = H))
|
||||
user.visible_message("<span class='notice'>[user] shaves his head with the [src].</span>", \
|
||||
"<span class='notice'>You finish shaving with the [src].</span>")
|
||||
C.h_style = "Skinhead"
|
||||
H.update_hair()
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 40, 1)
|
||||
playsound(src.loc, usesound, 40, 1)
|
||||
else
|
||||
var/turf/user_loc = user.loc
|
||||
var/turf/H_loc = H.loc
|
||||
user.visible_message("<span class='danger'>[user] tries to shave [H]'s head with \the [src]!</span>", \
|
||||
"<span class='warning'>You start shaving [H]'s head.</span>")
|
||||
if(do_after(user, 50, target = H))
|
||||
if(do_after(user, 50 * toolspeed, target = H))
|
||||
if(user_loc == user.loc && H_loc == H.loc)
|
||||
user.visible_message("<span class='danger'>[user] shaves [H]'s head bald with \the [src]!</span>", \
|
||||
"<span class='warning'>You shave [H]'s head bald.</span>")
|
||||
C.h_style = "Skinhead"
|
||||
H.update_hair()
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 40, 1)
|
||||
playsound(src.loc, usesound, 40, 1)
|
||||
else
|
||||
..()
|
||||
else
|
||||
|
||||
@@ -256,6 +256,7 @@
|
||||
force = 0
|
||||
throwforce = 6
|
||||
w_class = 4
|
||||
toolspeed = 1
|
||||
|
||||
var/revivecost = 1000
|
||||
var/cooldown = 0
|
||||
@@ -346,7 +347,7 @@
|
||||
user.visible_message("<span class='warning'>[user] begins to place [src] on [M.name]'s chest.</span>", "<span class='warning'>You begin to place [src] on [M.name]'s chest.</span>")
|
||||
busy = 1
|
||||
update_icon()
|
||||
if(do_after(user, 30, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
|
||||
if(do_after(user, 30 * toolspeed, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
|
||||
user.visible_message("<span class='notice'>[user] places [src] on [M.name]'s chest.</span>", "<span class='warning'>You place [src] on [M.name]'s chest.</span>")
|
||||
playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0)
|
||||
var/mob/dead/observer/ghost = H.get_ghost()
|
||||
@@ -362,7 +363,7 @@
|
||||
var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting
|
||||
var/total_burn = 0
|
||||
var/total_brute = 0
|
||||
if(do_after(user, 20, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
|
||||
if(do_after(user, 20 * toolspeed, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
|
||||
for(var/obj/item/carried_item in H.contents)
|
||||
if(istype(carried_item, /obj/item/clothing/suit/space))
|
||||
if(!defib.combat)
|
||||
@@ -455,6 +456,7 @@
|
||||
var/busy = 0
|
||||
var/safety = 1
|
||||
flags = NODROP
|
||||
toolspeed = 1
|
||||
|
||||
/obj/item/weapon/borg_defib/attack(mob/M, mob/user)
|
||||
var/tobehealed
|
||||
@@ -495,7 +497,7 @@
|
||||
user.visible_message("<span class='warning'>[user] begins to place [src] on [M.name]'s chest.</span>", "<span class='warning'>You begin to place [src] on [M.name]'s chest.</span>")
|
||||
busy = 1
|
||||
update_icon()
|
||||
if(do_after(user, 30, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
|
||||
if(do_after(user, 30 * toolspeed, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
|
||||
user.visible_message("<span class='notice'>[user] places [src] on [M.name]'s chest.</span>", "<span class='warning'>You place [src] on [M.name]'s chest.</span>")
|
||||
playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0)
|
||||
var/mob/dead/observer/ghost = H.get_ghost()
|
||||
@@ -511,7 +513,7 @@
|
||||
var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting
|
||||
var/total_burn = 0
|
||||
var/total_brute = 0
|
||||
if(do_after(user, 20, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
|
||||
if(do_after(user, 20 * toolspeed, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
|
||||
if(H.stat == 2)
|
||||
var/health = H.health
|
||||
M.visible_message("<span class='warning'>[M]'s body convulses a bit.")
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
det_time = 10
|
||||
display_timer = 0
|
||||
origin_tech = "syndicate=2"
|
||||
toolspeed = 1
|
||||
var/atom/target = null
|
||||
var/image_overlay = null
|
||||
var/obj/item/device/assembly_holder/nadeassembly = null
|
||||
@@ -36,7 +37,7 @@
|
||||
update_icon()
|
||||
return
|
||||
if(nadeassembly && istype(I, /obj/item/weapon/wirecutters))
|
||||
playsound(src, 'sound/items/Wirecutter.ogg', 20, 1)
|
||||
playsound(src, I.usesound, 20, 1)
|
||||
nadeassembly.loc = get_turf(src)
|
||||
nadeassembly.master = null
|
||||
nadeassembly = null
|
||||
@@ -73,7 +74,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start planting the [src]. The timer is set to [det_time]...</span>")
|
||||
|
||||
if(do_after(user, 50, target = AM))
|
||||
if(do_after(user, 50 * toolspeed, target = AM))
|
||||
if(!user.unEquip(src))
|
||||
return
|
||||
src.target = AM
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
var/payload_name = null // used for spawned grenades
|
||||
w_class = 2
|
||||
force = 2
|
||||
var/prime_sound = 'sound/items/Screwdriver2.ogg'
|
||||
var/stage = EMPTY
|
||||
var/list/beakers = list()
|
||||
var/list/allowed_containers = list(/obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle)
|
||||
@@ -124,7 +125,7 @@
|
||||
if(stage == WIRED)
|
||||
if(beakers.len)
|
||||
to_chat(user, "<span class='notice'>You lock the assembly.</span>")
|
||||
playsound(loc, 'sound/items/Screwdriver.ogg', 25, -3)
|
||||
playsound(loc, prime_sound, 25, -3)
|
||||
stage = READY
|
||||
update_icon()
|
||||
var/contained = ""
|
||||
@@ -265,7 +266,7 @@
|
||||
has_reagents = 1
|
||||
|
||||
if(!has_reagents)
|
||||
playsound(loc, 'sound/items/Screwdriver2.ogg', 50, 1)
|
||||
playsound(loc, usesound, 50, 1)
|
||||
return
|
||||
|
||||
if(nadeassembly)
|
||||
@@ -347,7 +348,7 @@
|
||||
if(E.reagents.total_volume) has_reagents = 1
|
||||
|
||||
if(!has_reagents)
|
||||
playsound(loc, 'sound/items/Screwdriver2.ogg', 50, 1)
|
||||
playsound(loc, prime_sound, 50, 1)
|
||||
return
|
||||
|
||||
playsound(loc, 'sound/effects/bamf.ogg', 50, 1)
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
to_chat(user, "<span class='warning'>You need at least six metal sheets to make good enough weights!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You begin to apply [I] to [src]...</span>")
|
||||
if(do_after(user, 35, target = src))
|
||||
if(do_after(user, 35 * M.toolspeed, target = src))
|
||||
var/obj/item/weapon/restraints/legcuffs/bola/S = new /obj/item/weapon/restraints/legcuffs/bola
|
||||
M.use(6)
|
||||
user.put_in_hands(S)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
w_class = 2
|
||||
origin_tech = "materials=1;biotech=3;programming=2"
|
||||
materials = list(MAT_METAL=600, MAT_GLASS=200)
|
||||
toolspeed = 1
|
||||
var/obj/item/weapon/implant/imp = null
|
||||
|
||||
|
||||
@@ -29,7 +30,7 @@
|
||||
M.visible_message("<span class='warning'>[user] is attemping to implant [M].</span>")
|
||||
|
||||
var/turf/T = get_turf(M)
|
||||
if(T && (M == user || do_after(user, 50, target = M)))
|
||||
if(T && (M == user || do_after(user, 50 * toolspeed, target = M)))
|
||||
if(user && M && (get_turf(M) == T) && src && imp)
|
||||
if(imp.implant(M, user))
|
||||
if(M == user)
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
no_embed = 1 // Physically impossible for energy weapons to embed themselves into people, this should fix that. -- Dave
|
||||
hitsound = 'sound/weapons/blade1.ogg' // Probably more appropriate than the previous hitsound. -- Dave
|
||||
usesound = 'sound/weapons/blade1.ogg'
|
||||
toolspeed = 1
|
||||
|
||||
/obj/item/weapon/melee/energy/suicide_act(mob/user)
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>", \
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
fisto_setting = 3
|
||||
if(3)
|
||||
fisto_setting = 1
|
||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
playsound(loc, W.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'>You tweak \the [src]'s piston valve to [fisto_setting].</span>")
|
||||
else if(istype(W, /obj/item/weapon/screwdriver))
|
||||
if(tank)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
w_class = 2
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
attack_verb = list("slices", "cuts", "stabs", "jabs")
|
||||
toolspeed = 1
|
||||
|
||||
/obj/item/weapon/scissors/barber
|
||||
name = "Barber's Scissors"
|
||||
@@ -16,6 +17,7 @@
|
||||
icon_state = "bscissor"
|
||||
item_state = "scissor"
|
||||
attack_verb = list("beautifully sliced", "artistically cut", "smoothly stabbed", "quickly jabbed")
|
||||
toolspeed = 0.75
|
||||
|
||||
/obj/item/weapon/scissors/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||
if(user.a_intent != "help")
|
||||
@@ -79,7 +81,7 @@
|
||||
var/h_new_style = input(user, "Select a hair style", "Grooming") as null|anything in species_hair
|
||||
user.visible_message("<span class='notice'>[user] starts cutting [M]'s hair!</span>", "<span class='notice'>You start cutting [M]'s hair!</span>") //arguments for this are: 1. what others see 2. what the user sees. --Fixed grammar, (TGameCo)
|
||||
playsound(loc, 'sound/goonstation/misc/Scissor.ogg', 100, 1)
|
||||
if(do_after(user, 50, target = H)) //this is the part that adds a delay. delay is in deciseconds. --Made it 5 seconds, because hair isn't cut in one second in real life, and I want at least a little bit longer time, (TGameCo)
|
||||
if(do_after(user, 50 * toolspeed, target = H)) //this is the part that adds a delay. delay is in deciseconds. --Made it 5 seconds, because hair isn't cut in one second in real life, and I want at least a little bit longer time, (TGameCo)
|
||||
if(!(M in view(1))) //Adjacency test
|
||||
user.visible_message("<span class='notice'>[user] stops cutting [M]'s hair.</span>", "<span class='notice'>You stop cutting [M]'s hair.</span>")
|
||||
return
|
||||
@@ -112,7 +114,7 @@
|
||||
is_cutting = 1
|
||||
user.visible_message("<span class='notice'>[user] starts cutting [M]'s hair!</span>", "<span class='notice'>You start cutting [M]'s hair!</span>")
|
||||
playsound(loc, 'sound/goonstation/misc/Scissor.ogg', 100, 1)
|
||||
if(do_after(user, 50, target = H))
|
||||
if(do_after(user, 50 * toolspeed, target = H))
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
user.visible_message("<span class='danger'>[user] abruptly stops cutting [M]'s hair and slices their throat!</span>", "<span class='danger'>You stop cutting [M]'s hair and slice their throat!</span>") //Just a little off the top.
|
||||
H.AdjustLoseBreath(10) //30 Oxy damage over time
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
var/works_from_distance = 0
|
||||
var/primary_sound = 'sound/items/rped.ogg'
|
||||
var/alt_sound = null
|
||||
toolspeed = 1
|
||||
usesound = 'sound/items/rped.ogg'
|
||||
|
||||
/obj/item/weapon/storage/part_replacer/afterattack(obj/machinery/T as obj, mob/living/carbon/human/user as mob, flag, params)
|
||||
if(flag)
|
||||
@@ -41,6 +43,8 @@
|
||||
works_from_distance = 1
|
||||
primary_sound = 'sound/items/PSHOOM.ogg'
|
||||
alt_sound = 'sound/items/PSHOOM_2.ogg'
|
||||
usesound = 'sound/items/PSHOOM.ogg'
|
||||
toolspeed = 0.5
|
||||
|
||||
/obj/item/weapon/storage/part_replacer/proc/play_rped_sound()
|
||||
//Plays the sound for RPED exchanging or installing parts.
|
||||
@@ -61,9 +65,12 @@
|
||||
icon = 'icons/obj/stock_parts.dmi'
|
||||
w_class = 2
|
||||
var/rating = 1
|
||||
New()
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
src.pixel_y = rand(-5.0, 5)
|
||||
toolspeed = 1
|
||||
usesound = 'sound/items/Deconstruct.ogg'
|
||||
|
||||
/obj/item/weapon/stock_parts/New()
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
src.pixel_y = rand(-5.0, 5)
|
||||
|
||||
//Rank 1
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
var/response = alert(user, "Are you sure you want to put the bag of holding inside another bag of holding?","Are you sure you want to die?","Yes","No")
|
||||
if(response == "Yes")
|
||||
user.visible_message("<span class='warning'>[user] grins as \he begins to put a Bag of Holding into a Bag of Holding!</span>", "<span class='warning'>You begin to put the Bag of Holding into the Bag of Holding!</span>")
|
||||
if(do_after(user,30,target=src))
|
||||
if(do_after(user, 30, target=src))
|
||||
investigate_log("has become a singularity. Caused by [user.key]","singulo")
|
||||
user.visible_message("<span class='warning'>[user] erupts in evil laughter as \he puts the Bag of Holding into another Bag of Holding!</span>", "<span class='warning'>You can't help but laugh wildly as you put the Bag of Holding into another Bag of Holding, complete darkness surrounding you.</span>","<span class='warning'> You hear the sound of scientific evil brewing! </span>")
|
||||
qdel(W)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
emag_act(user, W)
|
||||
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
if(do_after(user, 20, target = src))
|
||||
if(do_after(user, 20 * W.toolspeed, target = src))
|
||||
open = !open
|
||||
user.show_message("<span class='notice'>You [open ? "open" : "close"] the service panel.</span>", 1)
|
||||
return
|
||||
@@ -45,11 +45,11 @@
|
||||
if((istype(W, /obj/item/device/multitool)) && (open == 1) && (!l_hacking))
|
||||
user.show_message("<span class='danger'>Now attempting to reset internal memory, please hold.</span>", 1)
|
||||
l_hacking = 1
|
||||
if(do_after(usr, 100, target = src))
|
||||
if(do_after(usr, 100 * W.toolspeed, target = src))
|
||||
if(prob(40))
|
||||
l_setshort = 1
|
||||
l_set = 0
|
||||
user.show_message("<span class='danger'>Internal memory reset. Please give it a few seconds to reinitialize.</span>", 1)
|
||||
user.show_message("<span class='danger'>Internal memory reset. Please give it a few seconds to reinitialize.</span>", 1)
|
||||
sleep(80)
|
||||
l_setshort = 0
|
||||
l_hacking = 0
|
||||
|
||||
@@ -169,6 +169,7 @@
|
||||
force_wielded = 24
|
||||
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
usesound = 'sound/items/Crowbar.ogg'
|
||||
|
||||
/obj/item/weapon/twohanded/fireaxe/update_icon() //Currently only here to fuck with the on-mob icons.
|
||||
icon_state = "fireaxe[wielded]"
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
icon_state = "whetstone"
|
||||
desc = "A block of stone used to sharpen things."
|
||||
w_class = 2
|
||||
usesound = 'sound/items/Screwdriver.ogg'
|
||||
var/used = 0
|
||||
var/increment = 4
|
||||
var/max = 30
|
||||
@@ -43,7 +44,7 @@
|
||||
I.force = Clamp(I.force + increment, 0, max)
|
||||
I.throwforce = Clamp(I.throwforce + increment, 0, max)
|
||||
I.name = "[prefix] [I.name]"
|
||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
playsound(get_turf(src), usesound, 50, 1)
|
||||
name = "worn out [name]"
|
||||
desc = "[desc] At least, it used to."
|
||||
used = 1
|
||||
@@ -54,7 +55,7 @@
|
||||
var/datum/unarmed_attack/attack = H.species.unarmed
|
||||
if(istype(attack, /datum/unarmed_attack/claws))
|
||||
H.visible_message("<span class='notice'>[H] sharpens \his claws on the [src]!</span>", "<span class='notice'>You sharpen your claws on the [src].</span>")
|
||||
playsound(get_turf(H), 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
playsound(get_turf(H), usesound, 50, 1)
|
||||
|
||||
/obj/item/weapon/whetstone/super
|
||||
name = "super whetstone block"
|
||||
|
||||
Reference in New Issue
Block a user