diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 93cb2356495..e6c4af7ce1e 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -95,74 +95,81 @@ ..() reagents.add_reagent("fuel",1000) - examine() - set src in view() - ..() - if (!(usr in view(2)) && usr!=src.loc) return - if (modded) - usr << "\red Fuel faucet is wrenched open, leaking the fuel!" - if(rig) - usr << "There is some kind of device rigged to the tank." +/obj/structure/reagent_dispensers/fueltank/examine() + set src in view() + ..() + if (!(usr in view(2)) && usr!=src.loc) return + if (modded) + usr << "\red Fuel faucet is wrenched open, leaking the fuel!" + if(rig) + usr << "There is some kind of device rigged to the tank." - attack_hand() +/obj/structure/reagent_dispensers/fueltank/attack_hand() + if (rig) + usr.visible_message("[usr] begins to detach [rig] from \the [src].", "You begin to detach [rig] from \the [src]") + if(do_after(usr, 20)) + usr.visible_message("\blue [usr] detaches [rig] from \the [src].", "\blue You detach [rig] from \the [src]") + rig.loc = get_turf(usr) + rig = null + overlays = new/list() + +/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W,/obj/item/weapon/wrench)) + user.visible_message("[user] wrenches [src]'s faucet [modded ? "closed" : "open"].", \ + "You wrench [src]'s faucet [modded ? "closed" : "open"]") + modded = modded ? 0 : 1 + if (istype(W,/obj/item/device/assembly_holder)) if (rig) - usr.visible_message("[usr] begins to detach [rig] from \the [src].", "You begin to detach [rig] from \the [src]") - if(do_after(usr, 20)) - usr.visible_message("\blue [usr] detaches [rig] from \the [src].", "\blue You detach [rig] from \the [src]") - rig.loc = get_turf(usr) - rig = null - overlays = new/list() + user << "\red There is another device in the way." + return ..() + user.visible_message("[user] begins rigging [W] to \the [src].", "You begin rigging [W] to \the [src]") + if(do_after(user, 20)) + user.visible_message("\blue [user] rigs [W] to \the [src].", "\blue You rig [W] to \the [src]") - attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W,/obj/item/weapon/wrench)) - user.visible_message("[user] wrenches [src]'s faucet [modded ? "closed" : "open"].", \ - "You wrench [src]'s faucet [modded ? "closed" : "open"]") - modded = modded ? 0 : 1 - if (istype(W,/obj/item/device/assembly_holder)) - if (rig) - user << "\red There is another device in the way." - return ..() - user.visible_message("[user] begins rigging [W] to \the [src].", "You begin rigging [W] to \the [src]") - if(do_after(user, 20)) - user.visible_message("\blue [user] rigs [W] to \the [src].", "\blue You rig [W] to \the [src]") + var/obj/item/device/assembly_holder/H = W + if (istype(H.a_left,/obj/item/device/assembly/igniter) || istype(H.a_right,/obj/item/device/assembly/igniter)) + message_admins("[key_name_admin(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") + log_game("[key_name(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") - var/obj/item/device/assembly_holder/H = W - if (istype(H.a_left,/obj/item/device/assembly/igniter) || istype(H.a_right,/obj/item/device/assembly/igniter)) - message_admins("[key_name_admin(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") - log_game("[key_name(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") + rig = W + user.drop_item() + W.loc = src - rig = W - user.drop_item() - W.loc = src + var/icon/test = getFlatIcon(W) + test.Shift(NORTH,1) + test.Shift(EAST,6) + overlays += test - var/icon/test = getFlatIcon(W) - test.Shift(NORTH,1) - test.Shift(EAST,6) - overlays += test - - return ..() + return ..() - bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) - if(!istype(Proj ,/obj/item/projectile/beam/lastertag) && !istype(Proj ,/obj/item/projectile/beam/practice) ) - explode() +/obj/structure/reagent_dispensers/fueltank/bullet_act(var/obj/item/projectile/Proj) + if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) + if(!istype(Proj ,/obj/item/projectile/beam/lastertag) && !istype(Proj ,/obj/item/projectile/beam/practice) ) + explode() - blob_act() - explode() +/obj/structure/reagent_dispensers/fueltank/blob_act() + explode() - ex_act() - explode() +/obj/structure/reagent_dispensers/fueltank/ex_act() + explode() - proc/explode() - if (reagents.total_volume > 500) - explosion(src.loc,1,2,4) - else if (reagents.total_volume > 100) - explosion(src.loc,0,1,3) - else - explosion(src.loc,-1,1,2) +/obj/structure/reagent_dispensers/fueltank/proc/explode() + if (reagents.total_volume > 500) + explosion(src.loc,1,2,4) + else if (reagents.total_volume > 100) + explosion(src.loc,0,1,3) + else + explosion(src.loc,-1,1,2) + if(src) + del(src) + +/obj/structure/reagent_dispensers/fueltank/temperature_expose(datum/gas_mixture/air, temperature, volume) + if(temperature > T0C+500) + explosion(src.loc,-1,0,2) if(src) del(src) + return ..() /obj/structure/reagent_dispensers/peppertank name = "Pepper Spray Refiller" @@ -214,4 +221,4 @@ New() ..() - reagents.add_reagent("virusfood", 1000) + reagents.add_reagent("virusfood", 1000)