mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Tweaked welding:
Welders that are on but not in use use fuel more slowly than before, when actively welding, fuel use rate increases to roughly 4 times what the previous rate was. This allows for an average of 4 regular walls to be cut through before refueling is needed, based on my testing. Shorter-length welding tasks will allow for more uses between refuels. Also cleaned up a few things that still used the "click welder at thing, lose x units of fuel" code. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1403 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -246,6 +246,7 @@
|
||||
attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
||||
if (W:remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
user << "\blue Now welding the vent."
|
||||
if(do_after(user, 20))
|
||||
playsound(src.loc, 'Welder2.ogg', 50, 1)
|
||||
@@ -255,6 +256,7 @@
|
||||
else
|
||||
user.visible_message("[user] unwelds the vent.", "You unweld the vent.", "You hear welding.")
|
||||
welded = 0
|
||||
W:welding = 1
|
||||
else
|
||||
user << "\blue You need more welding fuel to complete this task."
|
||||
return 1
|
||||
|
||||
@@ -132,9 +132,10 @@
|
||||
|
||||
else if(istype(I, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/W = I
|
||||
if(W.remove_fuel(2,user))
|
||||
if(W.remove_fuel(0,user))
|
||||
playsound(src.loc, 'Welder2.ogg', 100, 1)
|
||||
user << "Welding the pipe in place."
|
||||
W:welding = 2
|
||||
if(do_after(user, 20))
|
||||
update()
|
||||
var/pipetype = dpipetype()
|
||||
@@ -145,6 +146,7 @@
|
||||
P.updateicon()
|
||||
del(src)
|
||||
return
|
||||
W:welding = 1
|
||||
else
|
||||
user << "You need more welding fuel to complete this task."
|
||||
return
|
||||
|
||||
@@ -694,7 +694,8 @@
|
||||
var/obj/item/weapon/weldingtool/W = I
|
||||
|
||||
if(W.welding)
|
||||
if(W.remove_fuel(3,user))
|
||||
if(W.remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
playsound(src.loc, 'Welder2.ogg', 100, 1)
|
||||
// check if anything changed over 2 seconds
|
||||
var/turf/uloc = user.loc
|
||||
@@ -705,7 +706,7 @@
|
||||
welded()
|
||||
else
|
||||
user << "You must stay still while welding the pipe."
|
||||
return
|
||||
W:welding = 1
|
||||
else
|
||||
user << "You need more welding fuel to cut the pipe."
|
||||
return
|
||||
|
||||
@@ -727,7 +727,7 @@ Auto Patrol: []"},
|
||||
/obj/item/weapon/secbot_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
if ((istype(W, /obj/item/weapon/weldingtool) && W:welding) && (!src.build_step))
|
||||
if(W:remove_fuel(1,user))
|
||||
if(W:remove_fuel(0,user))
|
||||
src.build_step++
|
||||
src.overlays += image('aibots.dmi', "hs_hole")
|
||||
user << "You weld a hole in [src]!"
|
||||
|
||||
@@ -21,10 +21,12 @@
|
||||
src.state = 1
|
||||
if(istype(P, /obj/item/weapon/weldingtool))
|
||||
playsound(src.loc, 'Welder.ogg', 50, 1)
|
||||
P:welding = 2
|
||||
if(do_after(user, 20))
|
||||
user << "\blue You deconstruct the frame."
|
||||
new /obj/item/stack/sheet/r_metal( src.loc, 4)
|
||||
del(src)
|
||||
P:welding = 1
|
||||
if(1)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, 'Ratchet.ogg', 50, 1)
|
||||
|
||||
@@ -138,11 +138,13 @@
|
||||
src.anchored = 1
|
||||
src.state = 1
|
||||
if(istype(P, /obj/item/weapon/weldingtool))
|
||||
P:welding = 2
|
||||
playsound(src.loc, 'Welder.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
user << "\blue You deconstruct the frame."
|
||||
new /obj/item/stack/sheet/metal( src.loc, 5 )
|
||||
del(src)
|
||||
P:welding = 1
|
||||
if(1)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, 'Ratchet.ogg', 50, 1)
|
||||
|
||||
@@ -849,7 +849,7 @@ About the new airlock wires panel:
|
||||
src.add_fingerprint(user)
|
||||
if ((istype(C, /obj/item/weapon/weldingtool) && !( src.operating ) && src.density))
|
||||
var/obj/item/weapon/weldingtool/W = C
|
||||
if(W.remove_fuel(2,user))
|
||||
if(W.remove_fuel(0,user))
|
||||
if (!src.welded)
|
||||
src.welded = 1
|
||||
else
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
src.add_fingerprint(user)
|
||||
if ((istype(C, /obj/item/weapon/weldingtool) && !( src.operating ) && src.density))
|
||||
var/obj/item/weapon/weldingtool/W = C
|
||||
if(W.remove_fuel(2, user))
|
||||
if(W.remove_fuel(0, user))
|
||||
src.blocked = !src.blocked
|
||||
user << text("\red You [blocked?"welded":"unwelded"] the [src]")
|
||||
update_icon()
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
|
||||
|
||||
if (istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
||||
if (!W:remove_fuel(1,user))
|
||||
if (!W:remove_fuel(0,user))
|
||||
user << "\blue You need more welding fuel to complete this task."
|
||||
return
|
||||
new /obj/item/stack/sheet/metal(src.loc)
|
||||
@@ -169,7 +169,7 @@
|
||||
W.loc = src.loc
|
||||
|
||||
else if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
||||
if (!W:remove_fuel(1,user))
|
||||
if (!W:remove_fuel(0,user))
|
||||
user << "\blue You need more welding fuel to complete this task."
|
||||
return
|
||||
src.welded =! src.welded
|
||||
|
||||
@@ -85,6 +85,7 @@ obj/door_assembly
|
||||
/obj/door_assembly/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/weldingtool) && W:welding && !anchored )
|
||||
if (W:remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.")
|
||||
playsound(src.loc, 'Welder2.ogg', 50, 1)
|
||||
if(do_after(user, 40))
|
||||
@@ -93,6 +94,7 @@ obj/door_assembly
|
||||
if(src.glass==1)
|
||||
new /obj/item/stack/sheet/rglass(get_turf(src))
|
||||
del(src)
|
||||
W:welding = 1
|
||||
else
|
||||
user << "\blue You need more welding fuel to dissassemble the airlock assembly."
|
||||
return
|
||||
|
||||
@@ -153,9 +153,18 @@ WELDINGTOOOL
|
||||
|
||||
|
||||
process()
|
||||
if(!welding)
|
||||
switch(welding)
|
||||
if(0)
|
||||
processing_items.Remove(src)
|
||||
return
|
||||
if(1)
|
||||
if(prob(5))//Welders left on now use up fuel, but lets not have them run out quite that fast
|
||||
remove_fuel(1)
|
||||
if(2)
|
||||
if(prob(75))
|
||||
remove_fuel(1)
|
||||
//if you're actually actively welding, use fuel faster.
|
||||
|
||||
var/turf/location = src.loc
|
||||
if(istype(location, /mob/))
|
||||
var/mob/M = location
|
||||
@@ -163,8 +172,7 @@ WELDINGTOOOL
|
||||
location = get_turf(M)
|
||||
if (istype(location, /turf))
|
||||
location.hotspot_expose(700, 5)
|
||||
if(prob(20))//Welders left on now use up fuel, but lets not have them run out quite that fast
|
||||
remove_fuel(1)
|
||||
|
||||
|
||||
|
||||
afterattack(obj/O as obj, mob/user as mob)
|
||||
@@ -309,6 +317,7 @@ WELDINGTOOOL
|
||||
max_fuel = 40
|
||||
m_amt = 70
|
||||
g_amt = 60
|
||||
|
||||
/obj/item/weapon/weldingtool/hugetank
|
||||
name = "Upgraded Welding Tool"
|
||||
max_fuel = 80
|
||||
|
||||
@@ -16,7 +16,7 @@ FLOOR TILES
|
||||
if(amount < 2)
|
||||
user << "\red You need at least two rods to do this."
|
||||
return
|
||||
if(W:remove_fuel(2,user))
|
||||
if(W:remove_fuel(0,user))
|
||||
var/obj/item/stack/sheet/metal/new_item = new(usr.loc)
|
||||
new_item.add_to_stacks(usr)
|
||||
for (var/mob/M in viewers(src))
|
||||
|
||||
@@ -147,17 +147,21 @@
|
||||
if (istype(W, /obj/item/weapon/weldingtool))
|
||||
if(W:welding == 1)
|
||||
if(src.status == 2)
|
||||
W:welding = 2
|
||||
user << "\blue Now weakening the reinforced table"
|
||||
playsound(src.loc, 'Welder.ogg', 50, 1)
|
||||
sleep(50)
|
||||
user << "\blue Table weakened"
|
||||
src.status = 1
|
||||
W:welding = 1
|
||||
else
|
||||
W:welding = 2
|
||||
user << "\blue Now strengthening the reinforced table"
|
||||
playsound(src.loc, 'Welder.ogg', 50, 1)
|
||||
sleep(50)
|
||||
user << "\blue Table strengthened"
|
||||
src.status = 2
|
||||
W:welding = 1
|
||||
return
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
@@ -347,6 +347,7 @@
|
||||
return
|
||||
|
||||
if (W:remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
user << "\blue Now disassembling the outer wall plating."
|
||||
playsound(src.loc, 'Welder.ogg', 100, 1)
|
||||
sleep(100)
|
||||
@@ -354,6 +355,7 @@
|
||||
if ((get_turf(user) == T && user.equipped() == W))
|
||||
user << "\blue You disassembled the outer wall plating."
|
||||
dismantle_wall()
|
||||
W:welding = 1
|
||||
else
|
||||
user << "\blue You need more welding fuel to complete this task."
|
||||
return
|
||||
@@ -396,14 +398,17 @@
|
||||
return
|
||||
|
||||
if (src.d_state == 2)
|
||||
W:welding = 2
|
||||
user << "\blue Slicing metal cover."
|
||||
playsound(src.loc, 'Welder.ogg', 100, 1)
|
||||
sleep(60)
|
||||
if ((user.loc == T && user.equipped() == W))
|
||||
src.d_state = 3
|
||||
user << "\blue You removed the metal cover."
|
||||
W:welding = 1
|
||||
|
||||
else if (src.d_state == 5)
|
||||
W:welding = 2
|
||||
user << "\blue Removing support rods."
|
||||
playsound(src.loc, 'Welder.ogg', 100, 1)
|
||||
sleep(100)
|
||||
@@ -411,6 +416,7 @@
|
||||
src.d_state = 6
|
||||
new /obj/item/stack/rods( src )
|
||||
user << "\blue You removed the support rods."
|
||||
W:welding = 1
|
||||
|
||||
else if (istype(W, /obj/item/weapon/wrench))
|
||||
if (src.d_state == 4)
|
||||
|
||||
@@ -366,9 +366,11 @@
|
||||
user << "\blue You need more welding fuel to complete this task."
|
||||
return
|
||||
user << "You start welding APC frame..."
|
||||
if(W:remove_fuel(2,user))
|
||||
if(W:remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
playsound(src.loc, 'Welder.ogg', 50, 1)
|
||||
if(do_after(user, 50))
|
||||
|
||||
if (emagged || malfhack || (stat & BROKEN) || opened==2)
|
||||
new /obj/item/stack/sheet/metal(loc)
|
||||
user.visible_message(\
|
||||
@@ -381,6 +383,7 @@
|
||||
"\red [src] has been cut from the wall by [user.name] with the weldingtool.",\
|
||||
"You cut APC frame from the wall.",\
|
||||
"\red You hear welding.")
|
||||
W:welding = 1
|
||||
del(src)
|
||||
return
|
||||
else if (istype(W, /obj/item/apc_frame) && opened && emagged)
|
||||
|
||||
@@ -145,6 +145,7 @@
|
||||
return
|
||||
if(1)
|
||||
if (W:remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
playsound(src.loc, 'Welder2.ogg', 50, 1)
|
||||
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
|
||||
"You start to weld the [src] to the floor.", \
|
||||
@@ -152,11 +153,13 @@
|
||||
if (do_after(user,20))
|
||||
state = 2
|
||||
user << "You weld the [src] to the floor."
|
||||
W:welding = 1
|
||||
else
|
||||
user << "\blue You need more welding fuel to complete this task."
|
||||
return
|
||||
if(2)
|
||||
if (W:remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
playsound(src.loc, 'Welder2.ogg', 50, 1)
|
||||
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.", \
|
||||
@@ -164,6 +167,7 @@
|
||||
if (do_after(user,20))
|
||||
state = 1
|
||||
user << "You cut the [src] free from the floor."
|
||||
W:welding = 1
|
||||
else
|
||||
user << "\blue You need more welding fuel to complete this task."
|
||||
return
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
return
|
||||
if(1)
|
||||
if (W:remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
playsound(src.loc, 'Welder2.ogg', 50, 1)
|
||||
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
|
||||
"You start to weld the [src] to the floor.", \
|
||||
@@ -116,10 +117,12 @@
|
||||
if (do_after(user,20))
|
||||
state = 2
|
||||
user << "You weld the field generator to the floor."
|
||||
W:welding = 1
|
||||
else
|
||||
return
|
||||
if(2)
|
||||
if (W:remove_fuel(0,user))
|
||||
W:welding = 2
|
||||
playsound(src.loc, 'Welder2.ogg', 50, 1)
|
||||
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.", \
|
||||
@@ -127,6 +130,7 @@
|
||||
if (do_after(user,20))
|
||||
state = 1
|
||||
user << "You cut the [src] free from the floor."
|
||||
W:welding = 2
|
||||
else
|
||||
return
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user