The Epic Construction Update (#5976)

How to build machine blueprints!

Use steel sheets like normal, then rotate the frame how you like it using the directional arrow. From here use a Multitool to finalize it and then wire it up like you would before.
This commit is contained in:
Lady Fowl
2019-09-10 12:07:46 -07:00
committed by Erki
parent abd926b14a
commit d6ff38ef96
164 changed files with 2571 additions and 1055 deletions
+3 -3
View File
@@ -401,7 +401,7 @@
update_icon()
else if(istype(I,/obj/item/weapon/wrench))
if(installed_upgrade_chip)
playsound(src,'sound/items/Screwdriver.ogg', 50, 0)
playsound(src,I.usesound, 50, 0)
to_chat(user,"You remove \the [installed_upgrade_chip].")
installed_upgrade_chip.forceMove(user.loc)
installed_upgrade_chip.update_icon()
@@ -409,7 +409,7 @@
update_stats()
update_icon()
else if(installed_barrel && can_disassemble_barrel)
playsound(src,'sound/items/Ratchet.ogg', 50, 0)
playsound(src,I.usesound, 50, 0)
to_chat(user,"You remove \the [installed_barrel].")
installed_barrel.forceMove(user.loc)
installed_barrel.update_icon()
@@ -417,7 +417,7 @@
update_stats()
update_icon()
else if(installed_cell && can_disassemble_cell)
playsound(src,'sound/items/Ratchet.ogg', 50, 0)
playsound(src,I.usesound, 50, 0)
to_chat(user,"You remove \the [installed_cell].")
installed_cell.forceMove(user.loc)
installed_cell.update_icon()
+1 -1
View File
@@ -1960,7 +1960,7 @@ All custom items with worn sprites must follow the contained sprite system: http
else
open = FALSE
to_chat(user, "<span class='notice'>You secure the back panel.</span>")
playsound(user.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(user.loc, I.usesound, 50, 1)
if(I.ismultitool() && open)
to_chat(user, "<span class='notice'>You quickly pulse a few fires, and reset the screen and device.</span>")
@@ -107,8 +107,8 @@
visible_message("<span class='danger'>The bees are furious you're trying to destroy their home!</span>")
release_bees(1, 30)
to_chat(user, "<span class='notice'>You start dismantling \the [src]. This will take a while...</span>")
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 150))
playsound(loc, I.usesound, 50, 1)
if(do_after(user, 150/I.toolspeed))
user.visible_message("<span class='notice'>[user] dismantles \the [src].</span>", "<span class='notice'>You dismantle \the [src].</span>")
new /obj/item/beehive_assembly(loc)
qdel(src)
+1 -1
View File
@@ -312,7 +312,7 @@
to_chat(user, "<span class='notice'>There are no seeds in \the [O.name].</span>")
return
else if(O.iswrench())
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(loc, O.usesound, 50, 1)
anchored = !anchored
to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].")
+1 -1
View File
@@ -573,7 +573,7 @@
if(locate(/obj/machinery/atmospherics/portables_connector/) in loc)
return ..()
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(loc, O.usesound, 50, 1)
anchored = !anchored
to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].")
@@ -68,7 +68,7 @@
angry_swarm(user)
else
to_chat(user, "<span class='notice'>You begin to dislodge the dead apiary from the tray.</span>")
if(do_after(user, 50))
if(do_after(user, 50/O.toolspeed))
new hydrotray_type(src.loc)
new /obj/item/apiary(src.loc)
to_chat(user, "<span class='warning'>You dislodge the apiary from the tray.</span>")
@@ -89,7 +89,7 @@
angry_swarm(user)
else
to_chat(user, "<span class='notice'>You begin to harvest the honey.</span>")
if(do_after(user,50))
if(do_after(user,50/O.toolspeed))
G.reagents.add_reagent("honey",harvestable_honey)
harvestable_honey = 0
to_chat(user, "<span class='notice'>You successfully harvest the honey.</span>")
+1 -1
View File
@@ -26,7 +26,7 @@
if(istype(O,/obj/item/weapon/tank))
return
if(istype(O,/obj/item/weapon/shovel))
if(do_after(user, 50))
if(do_after(user, 50/O.toolspeed))
new /obj/item/stack/material/sandstone{amount = 3}(loc)
to_chat(user, "<span class='notice'>You remove the soil from the bed and dismantle the sandstone base.</span>")
playsound(src, 'sound/effects/stonedoor_openclose.ogg', 40, 1)
+3 -3
View File
@@ -37,11 +37,11 @@
else
name = ("bookcase ([newname])")
else if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
playsound(src.loc, O.usesound, 100, 1)
to_chat(user, (anchored ? "<span class='notice'>You unfasten \the [src] from the floor.</span>" : "<span class='notice'>You secure \the [src] to the floor.</span>"))
anchored = !anchored
else if(O.isscrewdriver())
playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
playsound(loc, O.usesound, 75, 1)
to_chat(user, "<span class='notice'>You begin dismantling \the [src].</span>")
if(do_after(user,25))
to_chat(user, "<span class='notice'>You dismantle \the [src].</span>")
@@ -297,7 +297,7 @@
else if(istype(W, /obj/item/weapon/material/knife) || W.iswirecutter())
if(carved) return
to_chat(user, "<span class='notice'>You begin to carve out [title].</span>")
if(do_after(user, 30))
if(do_after(user, 30/W.toolspeed))
to_chat(user, "<span class='notice'>You carve out the pages from [title]! You didn't want to read it anyway.</span>")
playsound(loc, 'sound/bureaucracy/papercrumple.ogg', 50, 1)
new /obj/item/weapon/shreddedp(get_turf(src))
+2 -1
View File
@@ -58,7 +58,7 @@
recipes += new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60)
recipes += new/datum/stack_recipe("computer frame", /obj/structure/computerframe, 5, time = 25, one_per_turf = 1, on_floor = 1)
recipes += new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1)
recipes += new/datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1)
recipes += new/datum/stack_recipe("machine blueprint", /obj/machinery/constructable_frame/machine_frame, 2, time = 25, one_per_turf = 1, on_floor = 1)
recipes += new/datum/stack_recipe_list("turret frames", list( \
new/datum/stack_recipe("light turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("dark turret frame", /obj/machinery/porta_turret_construct/dark, 5, time = 25, one_per_turf = 1, on_floor = 1), \
@@ -114,6 +114,7 @@
recipes += new/datum/stack_recipe("reagent dispenser cartridge (small)", /obj/item/weapon/reagent_containers/chem_disp_cartridge/small, 1, on_floor=0) // 100u
recipes += new/datum/stack_recipe("white floor tile", /obj/item/stack/tile/floor_white, 1, 4, 20)
recipes += new/datum/stack_recipe("freezer floor tile", /obj/item/stack/tile/floor_freezer, 1, 4, 20)
recipes += new/datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 4, 1, 1)
/material/wood/generate_recipes()
..()
+12 -1
View File
@@ -75,7 +75,7 @@
..()
/obj/item/stack/material/attackby(var/obj/item/W, var/mob/user)
if(W.iscoil())
if(iscoil(W))
material.build_wired_product(user, W, src)
return
else if(istype(W, /obj/item/stack/rods))
@@ -185,6 +185,17 @@
default_type = "wood"
drop_sound = 'sound/items/drop/wooden.ogg'
/obj/item/stack/material/woodlog
name = "log"
icon_state = "sheet-woodlog"
default_type = "log"
/obj/item/stack/material/woodbranch
name = "branch"
icon_state = "sheet-branch"
default_type = "branch"
/obj/item/stack/material/cloth
name = "cloth"
icon_state = "sheet-cloth"
+31
View File
@@ -706,6 +706,37 @@ var/list/name_to_material
golem = "Wood Golem"
hitsound = 'sound/effects/woodhit.ogg'
/material/wood/log //This is gonna replace wood planks in a way for NBT, leaving it here for now
name = "log"
stack_type = /obj/item/stack/material/woodlog
icon_colour = "#824B28"
integrity = 50
icon_base = "solid"
explosion_resistance = 4
hardness = 30
weight = 30 //Logs are heavier then normal pieces of wood
conductivity = 0.8
melting_point = T0C+380
ignition_point = T0C+328
destruction_desc = "splinters"
sheet_singular_name = "log"
sheet_plural_name = "logs"
/material/wood/branch
name = "branch"
stack_type = /obj/item/stack/material/woodbranch
icon_colour = "#824B28"
integrity = 50
icon_base = "solid"
explosion_resistance = 0
hardness = 0.1
weight = 7
melting_point = T0C+220
ignition_point = T0C+218
sheet_singular_name = "branch"
sheet_plural_name = "branch"
/material/rust
name = "rust"
display_name = "rusty steel"
+1 -1
View File
@@ -399,7 +399,7 @@
connected.system_error("unexpected user interface error")
return
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
playsound(src.loc, W.usesound, 100, 1)
to_chat(user, "<span class='notice'>You [anchored ? "un" : ""]anchor the brace.</span>")
anchored = !anchored
+1 -1
View File
@@ -1194,7 +1194,7 @@ var/list/total_extraction_beacons = list()
/obj/structure/sculpting_block/attackby(obj/item/C as obj, mob/user as mob)
if (C.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
playsound(src.loc, C.usesound, 100, 1)
to_chat(user, "<span class='notice'>You [anchored ? "un" : ""]anchor the [name].</span>")
anchored = !anchored
+2 -2
View File
@@ -332,7 +332,7 @@ var/list/mineral_can_smooth_with = list(
to_chat(user, "<span class='warning'>You start chiselling [src] into a sculptable block.</span>")
if(!do_after(user,80))
if(!do_after(user,80/W.toolspeed))
return
if (!istype(src, /turf/simulated/mineral))
@@ -667,7 +667,7 @@ var/list/asteroid_floor_smooth = list(
to_chat(user, "<span class='warning'>You start digging deeper.</span>")
playsound(user.loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
digging = 1
if(!do_after(user, 60))
if(!do_after(user, 60/W.toolspeed))
if (istype(src, /turf/unsimulated/floor/asteroid))
digging = 0
return
+1 -1
View File
@@ -389,7 +389,7 @@
if(8)
if(W.isscrewdriver())
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
playsound(src.loc, W.usesound, 100, 1)
var/turf/T = get_turf(user)
to_chat(user, "<span class='notice'>Now attaching the gun to the frame...</span>")
sleep(40)
@@ -141,7 +141,7 @@
user.visible_message("<span class='danger'>\The [user] begins to slit [src]'s throat with \the [W]!</span>")
user.next_move = world.time + 20 //also should prevent user from triggering this repeatedly
if(!do_after(user, 20))
if(!do_after(user, 20/W.toolspeed))
return 0
if(!(G && G.assailant == user && G.affecting == src)) //check that we still have a grab
return 0
@@ -1563,6 +1563,13 @@
/mob/living/carbon/human/get_metabolism(metabolism)
return ..() * (species ? species.metabolism_mod : 1)
/mob/living/carbon/human/proc/isonlifesupport()
if (buckled && istype(buckled, /obj/machinery/optable/lifesupport))
var/obj/machinery/optable/lifesupport/A = buckled
return A.onlifesupport()
else
return 0
/mob/living/carbon/human/is_clumsy()
if(CLUMSY in mutations)
return TRUE
+1 -1
View File
@@ -983,7 +983,7 @@
else //ALIVE. LIGHTS ARE ON
updatehealth() //TODO
if(health <= config.health_threshold_dead || (species.has_organ["brain"] && !has_brain()))
if(health <= config.health_threshold_dead || (species.has_organ["brain"] && !has_brain() && !isonlifesupport()))
death()
blinded = 1
silent = 0
+2 -2
View File
@@ -700,7 +700,7 @@ var/list/ai_verbs_default = list(
else if(W.iswrench())
if(anchored)
user.visible_message("<span class='notice'>\The [user] starts to unbolt \the [src] from the plating...</span>")
if(!do_after(user,40))
if(!do_after(user,40/W.toolspeed))
user.visible_message("<span class='notice'>\The [user] decides not to unbolt \the [src].</span>")
return
user.visible_message("<span class='notice'>\The [user] finishes unfastening \the [src]!</span>")
@@ -708,7 +708,7 @@ var/list/ai_verbs_default = list(
return
else
user.visible_message("<span class='notice'>\The [user] starts to bolt \the [src] to the plating.</span>..")
if(!do_after(user,40))
if(!do_after(user,40/W.toolspeed))
user.visible_message("<span class='notice'>\The [user] decides not to bolt \the [src].</span>")
return
user.visible_message("<span class='notice'>\The [user] finishes fastening down \the [src]!</span>")
@@ -613,7 +613,7 @@
if(opened)
if(cell)
user.visible_message("<span class='notice'>\The [user] begins clasping shut \the [src]'s maintenance hatch.</span>", "<span class='notice'>You begin closing up \the [src].</span>")
if(do_after(user, 50, src))
if(do_after(user, 50/W.toolspeed, src))
to_chat(user, "<span class='notice'>You close \the [src]'s maintenance hatch.</span>")
opened = 0
updateicon()
@@ -624,7 +624,7 @@
return
user.visible_message("<span class='notice'>\The [user] begins ripping [mmi] from [src].</span>", "<span class='notice'>You jam the crowbar into the robot and begin levering [mmi].</span>")
if(do_after(user, 50, src))
if(do_after(user, 50/W.toolspeed, src))
to_chat(user, "<span class='notice'>You damage some parts of the chassis, but eventually manage to rip out [mmi]!</span>")
var/obj/item/robot_parts/robot_suit/C = new/obj/item/robot_parts/robot_suit(loc)
C.l_leg = new/obj/item/robot_parts/l_leg(C)
@@ -664,7 +664,7 @@
to_chat(user, "The cover is locked and cannot be opened.")
else
user.visible_message("<span class='notice'>\The [user] begins prying open \the [src]'s maintenance hatch.</span>", "<span class='notice'>You start opening \the [src]'s maintenance hatch.</span>")
if(do_after(user, 50, src))
if(do_after(user, 50/W.toolspeed, src))
to_chat(user, "<span class='notice'>You open \the [src]'s maintenance hatch.</span>")
opened = 1
updateicon()
@@ -356,6 +356,7 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/engineering/construction/New()
..()
src.modules += new /obj/item/device/flash(src)
src.modules += new /obj/item/powerdrill(src)
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/weapon/extinguisher(src)
src.modules += new /obj/item/weapon/rcd/borg(src)
@@ -129,7 +129,7 @@
/obj/machinery/ntnet_relay/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if(W.isscrewdriver())
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
panel_open = !panel_open
to_chat(user, "You [panel_open ? "open" : "close"] the maintenance hatch")
return
@@ -158,8 +158,8 @@
to_chat(user, "Remove all components from \the [src] before disassembling it.")
return
to_chat(user, span("notice", "You begin to disassemble \the [src]."))
playsound(user, 'sound/items/Ratchet.ogg', 100, 1)
if (do_after(user, 20))
playsound(user, W.usesound, 100, 1)
if (do_after(user, 20/W.toolspeed))
new /obj/item/stack/material/steel(get_turf(src.loc), steel_sheet_cost)
src.visible_message("\The [user] disassembles \the [src].",
"You disassemble \the [src].",
+13 -5
View File
@@ -71,11 +71,19 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
//The heartfix to end all heartfixes
if(species && species.has_organ["heart"])
var/obj/item/organ/heart/heart = internal_organs_by_name["heart"]
if(!heart)
blood_volume = 0
else if (heart.is_damaged())
blood_volume = min(BLOOD_VOLUME_SAFE - 1,blood_volume)
blood_volume = (BLOOD_VOLUME_SURVIVE + (BLOOD_VOLUME_NORMAL-BLOOD_VOLUME_SURVIVE) * max(1 - heart.damage/heart.min_broken_damage,0)) * (blood_volume/BLOOD_VOLUME_NORMAL)
// Before we do that, we check for lifesupport.
var/onlifesupport = 0
if (buckled && istype(buckled, /obj/machinery/optable/lifesupport))
var/obj/machinery/optable/lifesupport/A = buckled
onlifesupport = A.onlifesupport()
if (!onlifesupport)
if(!heart)
blood_volume = 0
else if (heart.is_damaged())
blood_volume = min(BLOOD_VOLUME_SAFE - 1,blood_volume)
blood_volume = (BLOOD_VOLUME_SURVIVE + (BLOOD_VOLUME_NORMAL-BLOOD_VOLUME_SURVIVE) * max(1 - heart.damage/heart.min_broken_damage,0)) * (blood_volume/BLOOD_VOLUME_NORMAL)
//Effects of bloodloss
if(blood_volume < BLOOD_VOLUME_SAFE && oxyloss < 100 * (1 - blood_volume/BLOOD_VOLUME_NORMAL))
+4 -1
View File
@@ -319,7 +319,7 @@
if(3.0)
take_damage(rand(3) * emp_coeff * organ_fragility)
/obj/item/organ/proc/removed(var/mob/living/user)
/obj/item/organ/proc/removed(var/mob/living/carbon/human/target,var/mob/living/user)
if(!istype(owner))
return
@@ -354,6 +354,9 @@
owner.update_action_buttons()
owner = null
if(!owner.isonlifesupport())
owner.death()
/obj/item/organ/proc/replaced(var/mob/living/carbon/human/target,var/obj/item/organ/external/affected)
if(!istype(target)) return
+8
View File
@@ -15,6 +15,14 @@
robotic_name = "circulatory pump"
robotic_sprite = "heart-prosthetic"
/obj/item/organ/heart/process()
//Check if we're on lifesupport, and whether or not organs should be processing.
if(owner && owner.isonlifesupport())
return 1
else
return 0
/obj/item/organ/lungs
name = "lungs"
icon_state = "lungs"
+1 -1
View File
@@ -44,7 +44,7 @@
icon_state = initial(icon_state)
updateUsrDialog()
else if(P.iswrench())
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(loc, P.usesound, 50, 1)
anchored = !anchored
to_chat(user, "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>")
else
+1 -1
View File
@@ -22,7 +22,7 @@
return
else if (W.iswrench())
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(loc, W.usesound, 50, 1)
anchored = !anchored
user.visible_message(
span("notice", anchored ? "\The [user] fastens \the [src] to \the [loc]." : "\The unfastens \the [src] from \the [loc]."),
+3
View File
@@ -24,6 +24,9 @@
var/colour = "black" //what colour the ink is!
drop_sound = 'sound/items/drop/accessory.ogg'
/obj/item/weapon/pen/ispen()
return TRUE
/obj/item/weapon/pen/blue
desc = "An instrument for writing or drawing with ink. This one is in blue. Ironically used mostly by white-collar workers."
icon_state = "pen_blue"
+1 -1
View File
@@ -125,7 +125,7 @@ VUEUI_MONITOR_VARS(/obj/machinery/photocopier, photocopiermonitor)
flick("photocopier_notoner", src)
playsound(loc, 'sound/machines/buzz-two.ogg', 75, 1)
else if(O.iswrench())
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(loc, O.usesound, 50, 1)
anchored = !anchored
to_chat(user, "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>")
return
+2 -2
View File
@@ -148,7 +148,7 @@
return
if(W.iswrench())
if(!anchored)
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 75, 1)
playsound(get_turf(src), W.usesound, 75, 1)
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the anchor bolts to the floor.", \
"You hear a ratchet")
@@ -157,7 +157,7 @@
check_shield_icons()
connect_to_network()
else if(!linked_shielding.len > 0)
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 75, 1)
playsound(get_turf(src), W.usesound, 75, 1)
user.visible_message("[user.name] unsecures the [src.name].", \
"You remove the anchor bolts.", \
"You hear a ratchet")
+14 -14
View File
@@ -446,8 +446,8 @@
to_chat(user, "<span class='warning'>Disconnect wires first.</span>")
return
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
to_chat(user, "You are trying to remove the power control board...") //lpeters - fixed grammar issues)
if(do_after(user, 50))
to_chat(user, "You are trying to remove the power control board...")
if(do_after(user, 50/W.toolspeed))
if (has_electronics==1)
has_electronics = 0
if ((stat & BROKEN))
@@ -513,12 +513,12 @@
if (has_electronics==1 && terminal)
has_electronics = 2
stat &= ~MAINT
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "You screw the circuit electronics into place.")
else if (has_electronics==2)
has_electronics = 1
stat |= MAINT
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "You unfasten the electronics.")
else /* has_electronics==0 */
to_chat(user, "<span class='warning'>There is nothing to secure.</span>")
@@ -559,7 +559,7 @@
user.visible_message("<span class='warning'>[user.name] adds cables to the APC frame.</span>", \
"You start adding cables to the APC frame...")
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 20))
if(do_after(user, 20/W.toolspeed))
if (C.amount >= 10 && !terminal && opened && has_electronics != 2)
var/obj/structure/cable/N = T.get_cable_node()
if (prob(50) && electrocute_mob(usr, N, N))
@@ -580,7 +580,7 @@
user.visible_message("<span class='warning'>[user.name] dismantles the power terminal from [src].</span>", \
"You begin to cut the cables...")
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
if(terminal && opened && has_electronics!=2)
if (prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
spark(src, 5, alldirs)
@@ -593,7 +593,7 @@
user.visible_message("<span class='warning'>[user.name] inserts the power control board into [src].</span>", \
"You start to insert the power control board into the frame...")
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 10))
if(do_after(user, 10/W.toolspeed))
if(has_electronics==0)
has_electronics = 1
to_chat(user, "<span class='notice'>You place the power control board inside the frame.</span>")
@@ -611,7 +611,7 @@
"You start welding the APC frame...", \
"You hear welding.")
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
if(!src || !WT.remove_fuel(3, user)) return
if (emagged || (stat & BROKEN) || opened==2)
new /obj/item/stack/material/steel(loc)
@@ -642,7 +642,7 @@
return
user.visible_message("<span class='warning'>[user.name] replaces the damaged APC frame with a new one.</span>",\
"You begin to replace the damaged APC frame...")
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
user.visible_message(\
"<span class='notice'>[user.name] has replaced the damaged APC frame with new one.</span>",\
"You replace the damaged APC frame with new one.")
@@ -658,16 +658,16 @@
else if (istype(W, /obj/item/device/debugger))
if(emagged || hacker || infected)
to_chat(user, "<span class='warning'>There is a software error with the device. Attempting to fix...</span>")
if(do_after(user, 10 SECONDS, act_target = src))
if(do_after(user, 10/W.toolspeed SECONDS, act_target = src))
to_chat(user, "<span class='notice'>Problem diagnosed, searching for solution...</span>")
if(do_after(user, 30 SECONDS, act_target = src))
if(do_after(user, 30/W.toolspeed SECONDS, act_target = src))
to_chat(user, "<span class='notice'>Solution found. Applying fixes...</span>")
if(do_after(user, 60 SECONDS, act_target = src))
if(do_after(user, 60/W.toolspeed SECONDS, act_target = src))
if(prob(15))
to_chat(user, "<span class='warning'>Error while applying fixes. Please try again.</span>")
return
to_chat(user, "<span class='notice'>Applied default software. Restarting APC...</span>")
if(do_after(user, 10 SECONDS, act_target = src))
if(do_after(user, 10/W.toolspeed SECONDS, act_target = src))
to_chat(user, "<span class='notice'>APC Reset. Fixes applied.</span>")
if(hacker)
hacker.hacked_apcs -= src
@@ -694,7 +694,7 @@
to_chat(user, "<span class='warning'>You need more welding fuel to complete this task.</span>")
return
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if(do_after(user, 10))
if(do_after(user, 10/W.toolspeed))
if(!src || !WT.remove_fuel(1, user)) return
if ((stat & BROKEN))
new /obj/item/stack/material/steel(loc)
+1 -1
View File
@@ -146,7 +146,7 @@
/obj/machinery/power/generator/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(W.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
anchored = !anchored
user.visible_message("[user.name] [anchored ? "secures" : "unsecures"] the bolts holding [src.name] to the floor.", \
"You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.", \
+2 -2
View File
@@ -202,7 +202,7 @@
if(GRAV_NEEDS_SCREWDRIVER)
if(I.isscrewdriver())
to_chat(user, "<span class='notice'>You secure the screws of the framework.</span>")
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, I.usesound, 50, 1)
broken_state++
if(GRAV_NEEDS_WELDING)
if(I.iswelder())
@@ -224,7 +224,7 @@
if(GRAV_NEEDS_WRENCH)
if(I.iswrench())
to_chat(user, "<span class='notice'>You secure the plating to the framework.</span>")
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, I.usesound, 75, 1)
set_fix()
else
..()
+2 -2
View File
@@ -46,7 +46,7 @@
add_fingerprint(user)
if (W.iswrench())
if (src.stage == 1)
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
to_chat(usr, "You begin deconstructing [src].")
if (!do_after(usr, 30, act_target = src))
return
@@ -114,7 +114,7 @@
"You close [src]'s casing.",
"You hear something being screwed in."
)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
switch(fixture_type)
if("tube")
+1 -1
View File
@@ -341,7 +341,7 @@
// attempt to stick weapon into light socket
else if(status == LIGHT_EMPTY)
if(W.isscrewdriver()) //If it's a screwdriver open it.
playsound(src.loc, 'sound/items/Screwdriver.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] opens [src]'s casing.", \
"You open [src]'s casing.", "You hear a noise.")
var/obj/machinery/light_construct/newlight = null
+1 -1
View File
@@ -85,7 +85,7 @@
SSmachinery.powernet_update_queued = TRUE
else if(O.isscrewdriver())
open = !open
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, O.usesound, 50, 1)
if(open)
to_chat(user, "<span class='notice'>You open the access panel.</span>")
else
+1 -1
View File
@@ -290,7 +290,7 @@
else if(O.isscrewdriver())
open = !open
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, O.usesound, 50, 1)
if(open)
to_chat(user, "<span class='notice'>You open the access panel.</span>")
else
+1 -1
View File
@@ -74,7 +74,7 @@ var/global/list/rad_collectors = list()
if(P)
to_chat(user, "<span class='notice'>Remove the phoron tank first.</span>")
return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
src.anchored = !src.anchored
user.visible_message("[user.name] [anchored? "secures":"unsecures"] the [src.name].", \
"You [anchored? "secure":"undo"] the external bolts.", \
+4 -4
View File
@@ -158,14 +158,14 @@
switch(state)
if(0)
state = 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] secures [src] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \
"You hear a ratchet")
src.anchored = 1
if(1)
state = 0
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] unsecures [src] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \
"You hear a ratchet")
@@ -188,7 +188,7 @@
user.visible_message("[user.name] starts to weld [src] to the floor.", \
"You start to weld [src] to the floor.", \
"You hear welding")
if (do_after(user,20))
if (do_after(user,20/W.toolspeed))
if(!src || !WT.isOn()) return
state = 2
to_chat(user, "You weld [src] to the floor.")
@@ -201,7 +201,7 @@
user.visible_message("[user.name] starts to cut [src] free from the floor.", \
"You start to cut [src] free from the floor.", \
"You hear welding")
if (do_after(user,20))
if (do_after(user,20/W.toolspeed))
if(!src || !WT.isOn()) return
state = 1
to_chat(user, "You cut [src] free from the floor.")
@@ -97,14 +97,14 @@ field_generator power level display
switch(state)
if(0)
state = 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \
"You hear ratchet")
src.anchored = 1
if(1)
state = 0
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \
"You hear ratchet")
@@ -124,7 +124,7 @@ field_generator power level display
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
"You start to weld the [src] to the floor.", \
"You hear welding")
if (do_after(user,20, act_target = src))
if (do_after(user,20/W.toolspeed, act_target = src))
if(!src || !WT.isOn()) return
state = 2
to_chat(user, "You weld the field generator to the floor.")
@@ -136,7 +136,7 @@ field_generator power level display
user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \
"You start to cut the [src] free from the floor.", \
"You hear welding")
if (do_after(user,20, act_target = src))
if (do_after(user,20/W.toolspeed, act_target = src))
if(!src || !WT.isOn()) return
state = 1
to_chat(user, "You cut the [src] free from the floor.")
+1 -1
View File
@@ -19,7 +19,7 @@
/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user)
if(W.iswrench())
anchored = !anchored
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
if(anchored)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the [src.name] to the floor.", \
@@ -202,14 +202,14 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
if(0)
if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, O.usesound, 75, 1)
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
temp_state++
if(1)
if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, O.usesound, 75, 1)
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
@@ -341,14 +341,14 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
if(0)
if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, O.usesound, 75, 1)
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
temp_state++
if(1)
if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, O.usesound, 75, 1)
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
+1 -1
View File
@@ -336,7 +336,7 @@
else
to_chat(user, "<span class='notice'>You begin to cut the cables...</span>")
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
if (prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
big_spark.queue()
building_terminal = 0
+3 -3
View File
@@ -62,7 +62,7 @@
if(W.iscrowbar())
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
user.visible_message("<span class='notice'>[user] begins to take the glass off the solar panel.</span>")
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
var/obj/item/solar_assembly/S = locate() in src
if(S)
S.forceMove(src.loc)
@@ -227,13 +227,13 @@
if(W.iswrench())
anchored = 1
user.visible_message("<span class='notice'>[user] wrenches the solar assembly into place.</span>")
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
return 1
else
if(W.iswrench())
anchored = 0
user.visible_message("<span class='notice'>[user] unwrenches the solar assembly from it's place.</span>")
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
return 1
if(istype(W, /obj/item/stack/material) && (W.get_material_name() == "glass" || W.get_material_name() == "rglass"))
+2 -2
View File
@@ -29,7 +29,7 @@
return
if(W.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You [anchored ? "unfasten" : "fasten"] [src] to the flooring.</span>")
anchored = !anchored
if(!anchored)
@@ -75,7 +75,7 @@
return
if(W.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You [anchored ? "unfasten" : "fasten"] [src] to the flooring.</span>")
anchored = !anchored
return
+1 -1
View File
@@ -62,7 +62,7 @@
if(W.iscrowbar())
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
user.visible_message("<span class='notice'>[user] begins to take the glass off the solar tracker.</span>")
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
var/obj/item/solar_assembly/S = locate() in src
if(S)
S.forceMove(src.loc)
+1 -1
View File
@@ -65,7 +65,7 @@
else if(B.iswrench())
anchored = !anchored
to_chat(user, "You [anchored ? "attach" : "detach"] the [src] [anchored ? "to" : "from"] the ground")
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, B.usesound, 75, 1)
/obj/machinery/chem_master/Topic(href, href_list)
@@ -67,7 +67,7 @@
/obj/machinery/chemical_dispenser/attackby(obj/item/weapon/W, mob/user)
if(W.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You begin to [anchored ? "un" : ""]fasten \the [src].</span>")
if (do_after(user, 20))
user.visible_message(
+1 -1
View File
@@ -284,7 +284,7 @@
/obj/structure/reagent_dispensers/water_cooler/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (W.isscrewdriver())
src.add_fingerprint(user)
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
playsound(src.loc, W.usesound, 100, 1)
if(do_after(user, 20))
if(!src) return
switch (anchored)
@@ -262,7 +262,7 @@
else
density = 1 // We don't want disposal bins or outlets to go density 0
to_chat(user, "You attach the [nicetype] to the underfloor.")
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
playsound(src.loc, I.usesound, 100, 1)
update()
else if(I.iswelder())
@@ -271,7 +271,7 @@
if(W.remove_fuel(0,user))
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
to_chat(user, "Welding the [nicetype] in place.")
if(do_after(user, 20))
if(do_after(user, 20/W.toolspeed))
if(!src || !W.isOn()) return
to_chat(user, "The [nicetype] has been welded in place!")
update() // TODO: Make this neat
+8 -8
View File
@@ -60,12 +60,12 @@
return
if(mode==0) // It's off but still not unscrewed
mode=-1 // Set it to doubleoff l0l
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, I.usesound, 50, 1)
to_chat(user, "You remove the screws around the power connection.")
return
else if(mode==-1)
mode=0
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, I.usesound, 50, 1)
to_chat(user, "You attach the screws around the power connection.")
return
else if(I.iswelder() && mode==-1)
@@ -77,7 +77,7 @@
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
to_chat(user, "You start slicing the floorweld off the disposal unit.")
if(do_after(user,20))
if(do_after(user,20/W.toolspeed))
if(!src || !W.isOn()) return
to_chat(user, "You sliced the floorweld off the disposal unit.")
var/obj/structure/disposalconstruct/C = new (src.loc)
@@ -867,7 +867,7 @@
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
// check if anything changed over 3 seconds
to_chat(user, "Slicing the disposal pipe...")
if (do_after(user, 3 SECONDS, act_target = src))
if (do_after(user, 3/W.toolspeed SECONDS, act_target = src))
if(!src || !W.isOn()) return
welded()
else
@@ -1339,7 +1339,7 @@
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
// check if anything changed over 3 seconds
to_chat(user, "Slicing the disposal pipe.")
if (do_after(user, 3 SECONDS, act_target = src))
if (do_after(user, 3/W.toolspeed SECONDS, act_target = src))
if(!src || !W.isOn()) return
welded()
else
@@ -1492,12 +1492,12 @@
if(I.isscrewdriver())
if(mode==0)
mode=1
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, I.usesound, 50, 1)
to_chat(user, "You remove the screws around the power connection.")
return
else if(mode==1)
mode=0
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, I.usesound, 50, 1)
to_chat(user, "You attach the screws around the power connection.")
return
else if(I.iswelder() && mode==1)
@@ -1505,7 +1505,7 @@
if(W.remove_fuel(0,user))
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
to_chat(user, "You start slicing the floorweld off the disposal outlet.")
if(do_after(user,20))
if(do_after(user,20/W.toolspeed))
if(!src || !W.isOn()) return
to_chat(user, "You slice the floorweld off the disposal outlet.")
var/obj/structure/disposalconstruct/C = new (src.loc)
+3 -3
View File
@@ -342,19 +342,19 @@
if(I.isscrewdriver())
if(c_mode==0)
c_mode=1
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, I.usesound, 50, 1)
to_chat(user, "You remove the screws around the power connection.")
return
else if(c_mode==1)
c_mode=0
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, I.usesound, 50, 1)
to_chat(user, "You attach the screws around the power connection.")
return
else if(I.iswelder() && c_mode==1)
var/obj/item/weapon/weldingtool/W = I
if(W.remove_fuel(1,user))
to_chat(user, "You start slicing the floorweld off the delivery chute.")
if(do_after(user,20))
if(do_after(user,20/W.toolspeed))
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
if(!src || !W.isOn()) return
to_chat(user, "You sliced the floorweld off the delivery chute.")
+10
View File
@@ -125,6 +125,16 @@ other types of metals and chemistry for reagents).
build_path = /obj/item/clothing/glasses/meson
sort_string = "GAAAC"
/datum/design/item/powerdrill
name = "power drill"
desc = "An advanced drill designed to be faster than other drills."
id = "powerdrill"
req_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 3)
materials = list(DEFAULT_WALL_MATERIAL = 60, "glass" = 50)
build_path = /obj/item/powerdrill
sort_string = "GAAAD"
///////////////////////////////////
/////////Shield Generators/////////
///////////////////////////////////
@@ -73,6 +73,12 @@
build_path = /obj/item/weapon/circuitboard/operating
sort_string = "FACAA"
/datum/design/circuit/operatingadv
name = "life support console"
id = "operatingadv"
build_path = /obj/item/weapon/circuitboard/advoperating
sort_string = "FACAB"
/datum/design/circuit/pandemic
name = "PanD.E.M.I.C. 2200"
id = "pandemic"
@@ -240,6 +246,88 @@
build_path = /obj/item/weapon/circuitboard/recharge_station
sort_string = "HACAC"
/datum/design/circuit/holopadboard
name = "holopad board"
id = "holo_board"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/holopad
sort_string = "HACAD"
/datum/design/circuit/sleeper
name = "sleeper board"
id = "sleeper_board"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/sleeper
sort_string = "HACAE"
/datum/design/circuit/bodyscannerm
name = "body Scanner board"
id = "bodyscanm_board"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/bodyscanner
sort_string = "HACAF"
/datum/design/circuit/bodyscannerc
name = "body Scanner console board"
id = "bodyscanc_board"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/bodyscannerconsole
sort_string = "HACAG"
/datum/design/circuit/optable
name = "operation table scanning board"
id = "optable_board"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/optable
sort_string = "HACAH"
/datum/design/circuit/optable
name = "advanced operation table scanning board"
id = "advoptable_board"
req_tech = list(TECH_BIO = 4, TECH_ENGINEERING = 5)
build_path = /obj/item/weapon/circuitboard/optableadv
sort_string = "HACAI"
/datum/design/circuit/smartfridge
name = "smart fridge board"
id = "fridge_board"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/optable
sort_string = "HACAJ"
/datum/design/circuit/requestconsole
name = "request console board"
id = "requestconsole_board"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/requestconsole
sort_string = "HACAI"
/datum/design/circuit/cryopod
name = "cryo cellboard"
id = "cryocell_board"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/cryotube
sort_string = "HACAJ"
/datum/design/circuit/crystelpod
name = "crystel therapy pod"
id = "therapypod"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/crystelpod
sort_string = "HACAK"
/datum/design/circuit/crystelpodconsole
name = "crystel therapy pod"
id = "therapypodconsole"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/crystelpodconsole
sort_string = "HACAL"
/datum/design/circuit/atmosalerts
name = "atmosphere alert console"
id = "atmosalerts"
+3 -3
View File
@@ -271,7 +271,7 @@
/obj/machinery/shieldgen/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(W.isscrewdriver())
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
playsound(src.loc, W.usesound, 100, 1)
if(is_open)
to_chat(user, "<span class='notice'>You close the panel.</span>")
is_open = 0
@@ -295,7 +295,7 @@
to_chat(user, "The bolts are covered, unlocking this would retract the covers.")
return
if(anchored)
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
playsound(src.loc, W.usesound, 100, 1)
to_chat(user, "<span class='notice'>You unsecure the [src] from the floor!</span>")
if(active)
to_chat(user, "<span class='notice'>The [src] shuts off!</span>")
@@ -303,7 +303,7 @@
anchored = 0
else
if(istype(get_turf(src), /turf/space)) return //No wrenching these in space!
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
playsound(src.loc, W.usesound, 100, 1)
to_chat(user, "<span class='notice'>You secure the [src] to the floor!</span>")
anchored = 1
+2 -2
View File
@@ -164,14 +164,14 @@
else if(state == 0)
state = 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
to_chat(user, "You secure the external reinforcing bolts to the floor.")
src.anchored = 1
return
else if(state == 1)
state = 0
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
to_chat(user, "You undo the external reinforcing bolts.")
src.anchored = 0
return
+4 -4
View File
@@ -150,7 +150,7 @@
if(F.welding)
to_chat(user, "<span class='notice'>You begin reparing damage to \the [src].</span>")
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if(!do_after(user, 20) || !F.remove_fuel(1, user))
if(!do_after(user, 20/W.toolspeed) || !F.remove_fuel(1, user))
return
user.visible_message("<span class='notice'>\The [user] repairs some damage to \the [src].</span>",
"<span class='notice'>You repair some damage to \the [src].</span>")
@@ -257,15 +257,15 @@
reinforced = common_material_remove(user, reinforced, 40, "reinforcements", "screws", 'sound/items/Screwdriver.ogg')
/obj/structure/table/proc/remove_material(obj/item/weapon/wrench/W, mob/user)
material = common_material_remove(user, material, 20, "plating", "bolts", 'sound/items/Ratchet.ogg')
material = common_material_remove(user, material, 20, "plating", "bolts", W.usesound)
/obj/structure/table/proc/dismantle(obj/item/weapon/wrench/W, mob/user)
if(manipulating) return
manipulating = 1
user.visible_message("<span class='notice'>\The [user] begins dismantling \the [src].</span>",
"<span class='notice'>You begin dismantling \the [src].</span>")
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(!do_after(user, 20))
playsound(src, W.usesound, 100, 1)
if(!do_after(user, 20/W.toolspeed))
manipulating = 0
return
user.visible_message("<span class='notice'>\The [user] dismantles \the [src].</span>",
+3 -3
View File
@@ -61,7 +61,7 @@
/obj/machinery/telepad_cargo/attackby(obj/item/weapon/W, mob/user, params)
if(W.iswrench())
anchored = 0
playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
playsound(src, W.usesound, 50, 1)
if(anchored)
anchored = 0
to_chat(user, "<span class='caution'>\The [src] can now be moved.</span>")
@@ -70,11 +70,11 @@
to_chat(user, "<span class='caution'>\The [src] is now secured.</span>")
if(W.isscrewdriver())
if(stage == 0)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src, W.usesound, 50, 1)
to_chat(user, "<span class='caution'>You unscrew the telepad's tracking beacon.</span>")
stage = 1
else if(stage == 1)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src, W.usesound, 50, 1)
to_chat(user, "<span class='caution'>You screw in the telepad's tracking beacon.</span>")
stage = 0
if(W.iswelder() && stage == 1)