TTV Timer Fix (#11176)

This commit is contained in:
Geeves
2021-02-13 13:22:03 +01:00
committed by GitHub
parent b166322dd7
commit 18627bf222
7 changed files with 19 additions and 116 deletions
@@ -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"
@@ -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()