From 18627bf2222a85f6c18169a4c4fc9bf0e29ba96b Mon Sep 17 00:00:00 2001 From: Geeves Date: Sat, 13 Feb 2021 14:22:03 +0200 Subject: [PATCH] TTV Timer Fix (#11176) --- .../objects/effects/spawners/bombspawner.dm | 107 ------------------ .../objects/items/devices/transfer_valve.dm | 13 ++- code/modules/assembly/infrared.dm | 2 +- code/modules/assembly/proximity.dm | 2 +- code/modules/assembly/signaler.dm | 2 +- code/modules/assembly/timer.dm | 2 +- html/changelogs/geeves-ttv_timer_fix.yml | 7 ++ 7 files changed, 19 insertions(+), 116 deletions(-) create mode 100644 html/changelogs/geeves-ttv_timer_fix.yml diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index 19d5aa1b576..2138048474e 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -1,110 +1,3 @@ -/* The old single tank bombs that dont really work anymore -/obj/effect/spawner/bomb - name = "bomb" - icon = 'icons/mob/screen/generic.dmi' - icon_state = "x" - var/btype = 0 //0 = radio, 1= prox, 2=time - var/explosive = 1 // 0= firebomb - var/btemp = 500 // bomb temperature (degC) - var/active = 0 - -/obj/effect/spawner/bomb/radio - btype = 0 - -/obj/effect/spawner/bomb/proximity - btype = 1 - -/obj/effect/spawner/bomb/timer - btype = 2 - -/obj/effect/spawner/bomb/timer/syndicate - btemp = 450 - -/obj/effect/spawner/bomb/suicide - btype = 3 - -/obj/effect/spawner/bomb/New() - ..() - - switch (src.btype) - // radio - if (0) - var/obj/item/assembly/r_i_ptank/R = new /obj/item/assembly/r_i_ptank(src.loc) - var/obj/item/tank/phoron/p3 = new /obj/item/tank/phoron(R) - var/obj/item/device/radio/signaler/p1 = new /obj/item/device/radio/signaler(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - p1.b_stat = 0 - p2.secured = 1 - p3.air_contents.temperature = btemp + T0C - - // proximity - if (1) - var/obj/item/assembly/m_i_ptank/R = new /obj/item/assembly/m_i_ptank(src.loc) - var/obj/item/tank/phoron/p3 = new /obj/item/tank/phoron(R) - var/obj/item/device/prox_sensor/p1 = new /obj/item/device/prox_sensor(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - - p3.air_contents.temperature = btemp + T0C - p2.secured = 1 - - if(src.active) - R.part1.secured = 1 - R.part1.icon_state = text("motion[]", 1) - R.c_state(1, src) - - // timer - if (2) - var/obj/item/assembly/t_i_ptank/R = new /obj/item/assembly/t_i_ptank(src.loc) - var/obj/item/tank/phoron/p3 = new /obj/item/tank/phoron(R) - var/obj/item/device/timer/p1 = new /obj/item/device/timer(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - - p3.air_contents.temperature = btemp + T0C - p2.secured = 1 - //bombvest - if(3) - var/obj/item/clothing/suit/armor/a_i_a_ptank/R = new /obj/item/clothing/suit/armor/a_i_a_ptank(src.loc) - var/obj/item/tank/phoron/p4 = new /obj/item/tank/phoron(R) - var/obj/item/device/healthanalyzer/p1 = new /obj/item/device/healthanalyzer(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - var/obj/item/clothing/suit/armor/vest/p3 = new /obj/item/clothing/suit/armor/vest(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - R.part4 = p4 - p1.master = R - p2.master = R - p3.master = R - p4.master = R - R.status = explosive - - p4.air_contents.temperature = btemp + T0C - p2.secured = 1 - - qdel(src) -*/ - /client/proc/spawn_tanktransferbomb() set category = "Debug" set desc = "Spawn a tank transfer valve bomb" diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index c0b9ebbbd05..fdb9082c49f 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -5,7 +5,7 @@ icon_state = "valve_1" var/obj/item/tank/tank_one var/obj/item/tank/tank_two - var/obj/item/device/attached_device + var/obj/item/device/assembly/attached_device var/mob/attacher = null var/valve_open = 0 var/toggle = 1 @@ -98,15 +98,16 @@ if (src.loc != usr) return 0 if(tank_one && href_list["tankone"]) - remove_tank(tank_one) + remove_tank(tank_one, usr) else if(tank_two && href_list["tanktwo"]) - remove_tank(tank_two) + remove_tank(tank_two, usr) else if(href_list["open"]) toggle_valve() else if(attached_device) if(href_list["rem_device"]) attached_device.forceMove(get_turf(src)) - attached_device:holder = null + usr.put_in_hands(attached_device) + attached_device.holder = null attached_device = null update_icon() if(href_list["device"]) @@ -139,7 +140,7 @@ if(attached_device) add_overlay("device") -/obj/item/device/transfer_valve/proc/remove_tank(obj/item/tank/T) +/obj/item/device/transfer_valve/proc/remove_tank(obj/item/tank/T, mob/user) if(tank_one == T) split_gases() tank_one = null @@ -150,6 +151,8 @@ return T.forceMove(get_turf(src)) + if(user) + user.put_in_hands(T) update_icon() /obj/item/device/transfer_valve/proc/merge_gases() diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 78f79245afb..c34fdc5b4a2 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -115,7 +115,7 @@ var/datum/vueui/ui = SSvueui.get_open_ui(user, src) if(!ui) - ui = new(user, src, "devices-assembly-infrared", 320, 220, capitalize_first_letters(name)) + ui = new(user, src, "devices-assembly-infrared", 320, 220, capitalize_first_letters(name), state = deep_inventory_state) ui.open() /obj/item/device/assembly/infra/vueui_data_change(var/list/data, var/mob/user, var/datum/vueui/ui) diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 5ecfa37fcfc..2a83142eea1 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -108,7 +108,7 @@ var/datum/vueui/ui = SSvueui.get_open_ui(user, src) if(!ui) - ui = new(user, src, "devices-assembly-proximity", 450, 360, capitalize_first_letters(name)) + ui = new(user, src, "devices-assembly-proximity", 450, 360, capitalize_first_letters(name), state = deep_inventory_state) ui.open() /obj/item/device/assembly/prox_sensor/vueui_data_change(var/list/data, var/mob/user, var/datum/vueui/ui) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 1f56ed070e8..84d3e0227ac 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -41,7 +41,7 @@ /obj/item/device/assembly/signaler/interact(mob/user, flag1) var/datum/vueui/ui = SSvueui.get_open_ui(user, src) if(!ui) - ui = new(user, src, "devices-assembly-signaler", 320, 220, capitalize_first_letters(name)) + ui = new(user, src, "devices-assembly-signaler", 320, 220, capitalize_first_letters(name), state = deep_inventory_state) ui.open() /obj/item/device/assembly/signaler/vueui_data_change(var/list/data, var/mob/user, var/datum/vueui/ui) diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 11762fafaf9..2ba2a78c54b 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -69,7 +69,7 @@ var/datum/vueui/ui = SSvueui.get_open_ui(user, src) if(!ui) - ui = new(user, src, "devices-assembly-timer", 320, 220, capitalize_first_letters(name)) + ui = new(user, src, "devices-assembly-timer", 320, 220, capitalize_first_letters(name), state = deep_inventory_state) ui.open() /obj/item/device/assembly/timer/vueui_data_change(var/list/data, var/mob/user, var/datum/vueui/ui) diff --git a/html/changelogs/geeves-ttv_timer_fix.yml b/html/changelogs/geeves-ttv_timer_fix.yml new file mode 100644 index 00000000000..aaa8d23a733 --- /dev/null +++ b/html/changelogs/geeves-ttv_timer_fix.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Fixed TTV devices not being able to open their UIs." + - rscadd: "Removing a device from a TTV now puts it in your hand." \ No newline at end of file