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:
n3ophyt3
2011-04-07 01:30:39 +00:00
parent c1b1f4323c
commit f6620d08b1
17 changed files with 58 additions and 17 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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]!"

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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))

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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