|
62 | 62 | //Welder Pack |
63 | 63 | //////////////////////////////////////////////////////////// |
64 | 64 | /obj/item/chems/weldpack |
65 | | - name = "welding kit" |
66 | | - desc = "An unwieldy, heavy backpack with two massive fuel tanks. Comes with an attached welder gun." |
67 | | - icon = 'icons/obj/items/welderpack.dmi' |
68 | | - icon_state = ICON_STATE_WORLD |
69 | | - slot_flags = SLOT_BACK |
70 | | - w_class = ITEM_SIZE_HUGE |
71 | | - volume = 350 |
| 65 | + name = "welding kit" |
| 66 | + desc = "An unwieldy, heavy backpack with two massive fuel tanks. Comes with an attached welder gun." |
| 67 | + icon = 'icons/obj/items/welderpack.dmi' |
| 68 | + icon_state = ICON_STATE_WORLD |
| 69 | + slot_flags = SLOT_BACK |
| 70 | + w_class = ITEM_SIZE_HUGE |
| 71 | + atom_flags = ATOM_FLAG_OPEN_CONTAINER |
| 72 | + volume = 350 |
72 | 73 | var/obj/item/weldingtool/weldpack/welder = /obj/item/weldingtool/weldpack |
73 | 74 |
|
| 75 | +// Duplicated from welder tanks. |
| 76 | +/obj/item/chems/weldpack/afterattack(obj/O, mob/user, proximity, click_parameters) |
| 77 | + if (!ATOM_IS_OPEN_CONTAINER(src) || !proximity) |
| 78 | + return |
| 79 | + if(standard_dispenser_refill(user, O)) |
| 80 | + return TRUE |
| 81 | + if(standard_pour_into(user, O)) |
| 82 | + return TRUE |
| 83 | + if(handle_eaten_by_mob(user, O) != EATEN_INVALID) |
| 84 | + return TRUE |
| 85 | + if(user.check_intent(I_FLAG_HARM)) |
| 86 | + if(standard_splash_mob(user, O)) |
| 87 | + return TRUE |
| 88 | + if(reagents && reagents.total_volume) |
| 89 | + to_chat(user, SPAN_DANGER("You splash the contents of \the [src] onto \the [O].")) |
| 90 | + reagents.splash(O, reagents.total_volume) |
| 91 | + return TRUE |
| 92 | + return ..() |
| 93 | + |
74 | 94 | /obj/item/chems/weldpack/populate_reagents() |
75 | 95 | add_to_reagents(/decl/material/liquid/fuel, reagents.maximum_volume) |
76 | 96 |
|
|
85 | 105 | QDEL_NULL(welder) |
86 | 106 | . = ..() |
87 | 107 |
|
88 | | -/obj/item/chems/weldpack/attackby(obj/item/W, mob/user) |
89 | | - if(W.isflamesource() && get_fuel() && W.get_heat() >= 700 && prob(50)) |
| 108 | +/obj/item/chems/weldpack/attackby(obj/item/used_item, mob/user) |
| 109 | + |
| 110 | + if(used_item.isflamesource() && get_fuel() && used_item.get_heat() >= 700 && prob(50)) |
90 | 111 | playsound(src, 'sound/items/Welder2.ogg', 90, TRUE) |
91 | 112 | try_detonate_reagents() |
92 | 113 | log_and_message_admins("triggered a fueltank explosion.", user) |
93 | 114 | return TRUE |
94 | 115 |
|
95 | | - if(IS_WELDER(W)) |
96 | | - var/obj/item/weldingtool/T = W |
97 | | - if(T.welding) |
| 116 | + if(IS_WELDER(used_item)) |
| 117 | + var/obj/item/weldingtool/tool = used_item |
| 118 | + if(tool.welding) |
98 | 119 | var/decl/pronouns/pronouns = user.get_pronouns() |
99 | 120 | user.visible_message( |
100 | | - SPAN_DANGER("\The [user] singes [pronouns.his] [name] with [pronouns.his] [W.name]!"), |
101 | | - SPAN_DANGER("You singed your [name] with your [W.name]!") |
| 121 | + SPAN_DANGER("\The [user] singes [pronouns.his] [name] with [pronouns.his] [used_item.name]!"), |
| 122 | + SPAN_DANGER("You singed your [name] with your [used_item.name]!") |
102 | 123 | ) |
103 | 124 |
|
104 | | - if(W == welder) |
| 125 | + if(used_item == welder) |
105 | 126 | return reattach_gun(user) |
106 | | - if(!T.tank) |
107 | | - to_chat(user, "\The [T] has no tank attached!") |
108 | | - reagents.trans_to_obj(T.tank, T.tank.reagents.maximum_volume) |
109 | | - to_chat(user, SPAN_NOTICE("You refuel \the [W].")) |
| 127 | + if(!tool.tank) |
| 128 | + to_chat(user, SPAN_WARNING("\The [tool] has no tank attached!")) |
| 129 | + return TRUE |
| 130 | + if(!reagents?.total_volume) |
| 131 | + to_chat(user, SPAN_WARNING("\The [src] is empty!")) |
| 132 | + return TRUE |
| 133 | + reagents.trans_to_obj(tool.tank, tool.tank.reagents.maximum_volume) |
| 134 | + to_chat(user, SPAN_NOTICE("You refuel \the [used_item].")) |
110 | 135 | playsound(src, 'sound/effects/refill.ogg', 50, TRUE, -6) |
111 | 136 | return TRUE |
112 | 137 |
|
113 | | - else if(istype(W, /obj/item/chems/welder_tank)) |
114 | | - var/obj/item/chems/welder_tank/tank = W |
| 138 | + else if(istype(used_item, /obj/item/chems/welder_tank)) |
| 139 | + if(!reagents?.total_volume) |
| 140 | + to_chat(user, SPAN_WARNING("\The [src] is empty!")) |
| 141 | + return TRUE |
| 142 | + var/obj/item/chems/welder_tank/tank = used_item |
115 | 143 | reagents.trans_to_obj(tank, tank.reagents.maximum_volume) |
116 | | - to_chat(user, SPAN_NOTICE("You refuel \the [W].")) |
| 144 | + to_chat(user, SPAN_NOTICE("You refuel \the [used_item].")) |
117 | 145 | playsound(src, 'sound/effects/refill.ogg', 50, TRUE, -6) |
118 | 146 | return TRUE |
119 | 147 |
|
|
0 commit comments