From 6470a08ae3b583f8530bab7686b29463f341e9c2 Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:08:48 -0400
Subject: [PATCH 01/10] Conveyor Fixes
Make them able to go the right directions, even when you make new ones.
---
code/modules/recycling/conveyor2.dm | 40 +++++++++++++++++++----------
1 file changed, 27 insertions(+), 13 deletions(-)
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index d1be4f08da..3aaaa6e555 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -1,3 +1,8 @@
+//TFF 2/5/19: Port Polaris's conveyor movement fixes - set define value from 2 to -1 for reverse direction in movement.
+#define OFF 0
+#define FORWARDS 1
+#define BACKWARDS -1
+
//conveyor2 is pretty much like the original, except it supports corners, but not diverters.
//note that corner pieces transfer stuff clockwise when running forward, and anti-clockwise backwards.
@@ -10,7 +15,7 @@
layer = ABOVE_TURF_LAYER
anchored = 1
circuit = /obj/item/weapon/circuitboard/conveyor
- var/operating = 0 // 1 if running forward, -1 if backwards, 0 if off
+ var/operating = OFF // 1 if running forward, -1 if backwards, 0 if off
var/operable = 1 // true if can operate (no broken segments in this belt run)
var/forwards // this is the default (forward) direction, set by the map dir
var/backwards // hopefully self-explanatory
@@ -28,12 +33,7 @@
if(newdir)
set_dir(newdir)
- if(dir & (dir-1)) // Diagonal. Forwards is *away* from dir, curving to the right.
- forwards = turn(dir, 135)
- backwards = turn(dir, 45)
- else
- forwards = dir
- backwards = turn(dir, 180)
+ update_dir() //TFF 2/5/19: Port Polaris's conveyor movement fixes
if(on)
operating = 1
@@ -48,22 +48,36 @@
RefreshParts()
/obj/machinery/conveyor/proc/setmove()
- if(operating == 1)
+ if(operating == FORWARDS) //TFF: Port Polaris updoot.
movedir = forwards
- else if(operating == -1)
+ else if(operating == BACKWARDS) //TFF: Port Polaris updoot.
movedir = backwards
- else operating = 0
+ else
+ operating = OFF
update()
+//TFF 2/5/19: Port Polaris's conveyor movement fixes - handle proper movement directions when conveyor is on.
+/obj/machinery/conveyor/set_dir()
+ .=..()
+ update_dir()
+
+/obj/machinery/conveyor/proc/update_dir()
+ if(!(dir in cardinal)) // Diagonal. Forwards is *away* from dir, curving to the right.
+ forwards = turn(dir, 135)
+ backwards = turn(dir, 45)
+ else
+ forwards = dir
+ backwards = turn(dir, 180)
+
/obj/machinery/conveyor/proc/update()
if(stat & BROKEN)
icon_state = "conveyor-broken"
- operating = 0
+ operating = OFF
return
if(!operable)
- operating = 0
+ operating = OFF
if(stat & NOPOWER)
- operating = 0
+ operating = OFF
icon_state = "conveyor[operating]"
// machine process
From dda0a9055dcf09cbf3411b59ddb5e9d4dc53d5ee Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:13:02 -0400
Subject: [PATCH 02/10] Buckling Bug Fixes
Prevents unintended self-dragging to pipes and other chairs.
---
code/game/objects/buckling.dm | 36 ++++++++++++++++++++++-------------
1 file changed, 23 insertions(+), 13 deletions(-)
diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index 998b213ff4..78e3504f6e 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -49,22 +49,12 @@
unbuckle_all_mobs()
return ..()
-
+//TFF 2/5/19: Polaris port for buckling-related bugs - chair-related buckling disabled
/atom/movable/proc/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
- if(!buckled_mobs)
- buckled_mobs = list()
-
- if(!istype(M))
- return FALSE
-
if(check_loc && M.loc != loc)
return FALSE
- if((!can_buckle && !forced) || M.buckled || M.pinned.len || (buckled_mobs.len >= max_buckled_mobs) || (buckle_require_restraints && !M.restrained()))
- return FALSE
-
- if(has_buckled_mobs() && buckled_mobs.len >= max_buckled_mobs) //Handles trying to buckle yourself to the chair when someone is on it
- to_chat(M, "\The [src] can't buckle anymore people.")
+ if(!can_buckle_check(M, forced))
return FALSE
M.buckled = src
@@ -130,6 +120,9 @@
if(M in buckled_mobs)
to_chat(user, "\The [M] is already buckled to \the [src].")
return FALSE
+ //TFF 2/5/19: Polaris port for buckling-related bugs - check for whether someone's buckled
+ if(!can_buckle_check(M, forced))
+ return FALSE
add_fingerprint(user)
// unbuckle_mob()
@@ -184,6 +177,23 @@
L.set_dir(dir)
return TRUE
+//TFF 2/5/19: Polaris port for buckling-related bugs - check for whether someone's buckled
+/atom/movable/proc/can_buckle_check(mob/living/M, forced = FALSE)
+ if(!buckled_mobs)
+ buckled_mobs = list()
+
+ if(!istype(M))
+ return FALSE
+
+ if((!can_buckle && !forced) || M.buckled || M.pinned.len || (buckled_mobs.len >= max_buckled_mobs) || (buckle_require_restraints && !M.restrained()))
+ return FALSE
+
+ if(has_buckled_mobs() && buckled_mobs.len >= max_buckled_mobs) //Handles trying to buckle yourself to the chair when someone is on it
+ to_chat(M, "\The [src] can't buckle anymore people.")
+ return FALSE
+
+ return TRUE
+
/atom/movable/Move(atom/newloc, direct = 0)
. = ..()
if(. && has_buckled_mobs() && !handle_buckled_mob_movement(newloc, direct)) //movement failed due to buckled mob(s)
@@ -193,4 +203,4 @@
riding_datum.handle_vehicle_layer()
riding_datum.handle_vehicle_offsets()
//VOREStation Add End
-
\ No newline at end of file
+
From 367eb1f448ea5a43749bd68b622cee31ed87c6a5 Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:14:51 -0400
Subject: [PATCH 03/10] Vehicle Buckling Fix
Fixes bug with vehicle buckling.
---
code/modules/mob/living/living.dm | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index a7aeae21b9..8c6297357a 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -891,9 +891,14 @@ default behaviour is:
to_chat(src, "You struggle free of \the [H.loc].")
H.forceMove(get_turf(H))
+//TFF 2/5/19: Polaris fix for resisting out of vehicles
/mob/living/proc/escape_buckle()
if(buckled)
- buckled.user_unbuckle_mob(src, src)
+ if(istype(buckled, /obj/vehicle))
+ var/obj/vehicle/vehicle = buckled
+ vehicle.unload()
+ else
+ buckled.user_unbuckle_mob(src, src)
/mob/living/proc/resist_grab()
var/resisting = 0
@@ -1277,4 +1282,4 @@ default behaviour is:
/mob/living/proc/has_vision()
- return !(eye_blind || (disabilities & BLIND) || stat || blinded)
\ No newline at end of file
+ return !(eye_blind || (disabilities & BLIND) || stat || blinded)
From 0415d1eae734ab56841baa8ca71b64fa1adb0e0f Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:18:18 -0400
Subject: [PATCH 04/10] Synthesiser Insertion Fixes Pt.1
Prevent inserting more than what you have as a drone/borg.
---
code/modules/research/circuitprinter.dm | 5 +++--
code/modules/research/protolathe.dm | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index dae6575577..fa93442f2e 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -142,13 +142,14 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
for(var/mat in materials)
max_res_amount -= materials[mat]
+ //TFF 2/5/19: Polaris fix for Synthesisers inserting more than what is present
if(materials[S.material.name] + amnt <= max_res_amount)
- if(S && S.amount >= 1)
+ if(S && S.get_amount() >= 1)
var/count = 0
overlays += "fab-load-metal"
spawn(10)
overlays -= "fab-load-metal"
- while(materials[S.material.name] + amnt <= max_res_amount && S.amount >= 1)
+ while(materials[S.material.name] + amnt <= max_res_amount && S.get_amount() >= 1)
materials[S.material.name] += amnt
S.use(1)
count++
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index b90937343c..8ff4477ed3 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -130,13 +130,14 @@
for(var/mat in materials)
max_res_amount -= materials[mat]
+ //TFF 2/5/19: Polaris fix for Synthesisers inserting more than what is present
if(materials[S.material.name] + amnt <= max_res_amount)
- if(S && S.amount >= 1)
+ if(S && S.get_amount() >= 1)
var/count = 0
overlays += "fab-load-metal"
spawn(10)
overlays -= "fab-load-metal"
- while(materials[S.material.name] + amnt <= max_res_amount && S.amount >= 1)
+ while(materials[S.material.name] + amnt <= max_res_amount && S.get_amount() >= 1)
materials[S.material.name] += amnt
S.use(1)
count++
From b98f1125edaed7dbbd29b90d66f806596f4ce119 Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:21:09 -0400
Subject: [PATCH 05/10] Synthesiser Insertion Fixes Pt.2
Prevent inserting more than what you have as a drone/borg.
---
code/game/mecha/mech_fabricator.dm | 12 ++++++------
code/game/mecha/mech_prosthetics.dm | 11 ++++++-----
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 958f31bbd2..53651c3edc 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -136,7 +136,7 @@
/obj/machinery/mecha_part_fabricator/attackby(var/obj/item/I, var/mob/user)
if(busy)
- user << "\The [src] is busy. Please wait for completion of previous operation."
+ to_chat(user, "\The [src] is busy. Please wait for completion of previous operation.")
return 1
if(default_deconstruction_screwdriver(user, I))
return
@@ -148,25 +148,25 @@
if(istype(I,/obj/item/stack/material))
var/obj/item/stack/material/S = I
if(!(S.material.name in materials))
- user << "The [src] doesn't accept [S.material]!"
+ to_chat(user, "The [src] doesn't accept [S.material]!")
return
var/sname = "[S.name]"
var/amnt = S.perunit
if(materials[S.material.name] + amnt <= res_max_amount)
- if(S && S.amount >= 1)
+ if(S && S.get_amount() >= 1) //TFF 2/5/19: Polaris fix for Synthesisers inserting more than what is present
var/count = 0
overlays += "mechfab-load-metal"
spawn(10)
overlays -= "mechfab-load-metal"
- while(materials[S.material.name] + amnt <= res_max_amount && S.amount >= 1)
+ while(materials[S.material.name] + amnt <= res_max_amount && S.get_amount() >= 1) //TFF 2/5/19: Polaris fix for Synthesisers inserting more than what is present
materials[S.material.name] += amnt
S.use(1)
count++
- user << "You insert [count] [sname] into the fabricator."
+ to_chat(user, "You insert [count] [sname] into the fabricator.")
update_busy()
else
- user << "The fabricator cannot hold more [sname]."
+ to_chat(user, "The fabricator cannot hold more [sname].")
return
diff --git a/code/game/mecha/mech_prosthetics.dm b/code/game/mecha/mech_prosthetics.dm
index c8e1d61179..6fc34aa6a2 100644
--- a/code/game/mecha/mech_prosthetics.dm
+++ b/code/game/mecha/mech_prosthetics.dm
@@ -175,25 +175,26 @@
if(istype(I,/obj/item/stack/material))
var/obj/item/stack/material/S = I
if(!(S.material.name in materials))
- user << "The [src] doesn't accept [S.material]!"
+ to_chat(user, "The [src] doesn't accept [S.material]!")
return
+ //TFF 2/5/19: Polaris fix for Synthesisers inserting more than what is present
var/sname = "[S.name]"
var/amnt = S.perunit
if(materials[S.material.name] + amnt <= res_max_amount)
- if(S && S.amount >= 1)
+ if(S && S.get_amount() >= 1)
var/count = 0
overlays += "fab-load-metal"
spawn(10)
overlays -= "fab-load-metal"
- while(materials[S.material.name] + amnt <= res_max_amount && S.amount >= 1)
+ while(materials[S.material.name] + amnt <= res_max_amount && S.get_amount() >= 1)
materials[S.material.name] += amnt
S.use(1)
count++
- user << "You insert [count] [sname] into the fabricator."
+ to_chat(user, "You insert [count] [sname] into the fabricator.")
update_busy()
else
- user << "The fabricator cannot hold more [sname]."
+ to_chat(user, "The fabricator cannot hold more [sname].")
return
From 3331ffe5a956f76d70bebe079ab432defdaf4255 Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:25:13 -0400
Subject: [PATCH 06/10] Bye-Bye, Double Zappy!
Fixes the double-zapping from shocked vendors.
---
code/datums/wires/seedstorage.dm | 5 +----
code/datums/wires/smartfridge.dm | 5 +----
code/datums/wires/vending.dm | 7 ++-----
3 files changed, 4 insertions(+), 13 deletions(-)
diff --git a/code/datums/wires/seedstorage.dm b/code/datums/wires/seedstorage.dm
index e21bbb9faf..eaeb5df891 100644
--- a/code/datums/wires/seedstorage.dm
+++ b/code/datums/wires/seedstorage.dm
@@ -8,12 +8,9 @@
wire_count = 4
random = 1
+//TFF 2/5/19: Port Polaris double-zap fix - remove forcing all non-silicons to get zapped twice.
/datum/wires/seedstorage/CanUse(var/mob/living/L)
var/obj/machinery/seed_storage/V = holder
- if(!istype(L, /mob/living/silicon))
- if(V.seconds_electrified)
- if(V.shock(L, 100))
- return 0
if(V.panel_open)
return 1
return 0
diff --git a/code/datums/wires/smartfridge.dm b/code/datums/wires/smartfridge.dm
index b611497e79..3fe9373a0a 100644
--- a/code/datums/wires/smartfridge.dm
+++ b/code/datums/wires/smartfridge.dm
@@ -10,12 +10,9 @@ var/const/SMARTFRIDGE_WIRE_ELECTRIFY = 1
var/const/SMARTFRIDGE_WIRE_THROW = 2
var/const/SMARTFRIDGE_WIRE_IDSCAN = 4
+//TFF 2/5/19: Port Polaris double-zap fix - remove forcing all non-silicons to get zapped twice.
/datum/wires/smartfridge/CanUse(var/mob/living/L)
var/obj/machinery/smartfridge/S = holder
- if(!istype(L, /mob/living/silicon))
- if(S.seconds_electrified)
- if(S.shock(L, 100))
- return 0
if(S.panel_open)
return 1
return 0
diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm
index 6715669fc1..ba77c57419 100644
--- a/code/datums/wires/vending.dm
+++ b/code/datums/wires/vending.dm
@@ -7,12 +7,9 @@ var/const/VENDING_WIRE_CONTRABAND = 2
var/const/VENDING_WIRE_ELECTRIFY = 4
var/const/VENDING_WIRE_IDSCAN = 8
+//TFF 2/5/19: Port Polaris double-zap fix - remove forcing all non-silicons to get zapped twice.
/datum/wires/vending/CanUse(var/mob/living/L)
var/obj/machinery/vending/V = holder
- if(!istype(L, /mob/living/silicon))
- if(V.seconds_electrified)
- if(V.shock(L, 100))
- return 0
if(V.panel_open)
return 1
return 0
@@ -43,7 +40,7 @@ var/const/VENDING_WIRE_IDSCAN = 8
if(VENDING_WIRE_THROW)
V.shoot_inventory = !mended
if(VENDING_WIRE_CONTRABAND)
- V.categories &= ~CAT_HIDDEN
+ V.categories &= ~CAT_HIDDEN
if(VENDING_WIRE_ELECTRIFY)
if(mended)
V.seconds_electrified = 0
From ffe9abafc0d8c0b1d12a27ba70d853dde1a4b9f1 Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:28:50 -0400
Subject: [PATCH 07/10] Request Console Setting Fix
Fixes inability to set what department a Request Console can be set to, from Cargo to the Bridge.
---
code/game/machinery/requests_console.dm | 34 ++++++++++++-------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 182f4edb75..2d186028c7 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -215,24 +215,24 @@ var/list/obj/machinery/requests_console/allConsoles = list()
if(computer_deconstruction_screwdriver(user, O))
return
if(istype(O, /obj/item/device/multitool))
- if(panel_open)
- var/input = sanitize(input(usr, "What Department ID would you like to give this request console?", "Multitool-Request Console Interface", department))
- if(!input)
- to_chat(usr, "No input found. Please hang up and try your call again.")
- return
- department = input
- announcement.title = "[department] announcement"
- announcement.newscast = 1
-
- name = "[department] Requests Console"
- allConsoles += src
- if(departmentType & RC_ASSIST)
- req_console_assistance |= department
- if(departmentType & RC_SUPPLY)
- req_console_supplies |= department
- if(departmentType & RC_INFO)
- req_console_information |= department
+ //TFF 2/5/19: Allow deconstruction to work correctly and enable setting the thing.
+ var/input = sanitize(input(usr, "What Department ID would you like to give this request console?", "Multitool-Request Console Interface", department))
+ if(!input)
+ to_chat(usr, "No input found. Please hang up and try your call again.")
return
+ department = input
+ announcement.title = "[department] announcement"
+ announcement.newscast = 1
+
+ name = "[department] Requests Console"
+ allConsoles += src
+ if(departmentType & RC_ASSIST)
+ req_console_assistance |= department
+ if(departmentType & RC_SUPPLY)
+ req_console_supplies |= department
+ if(departmentType & RC_INFO)
+ req_console_information |= department
+ return
if(istype(O, /obj/item/weapon/card/id))
if(inoperable(MAINT)) return
From 31d7c8fc89d630195a6546ccad309a588dfbc93a Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:31:19 -0400
Subject: [PATCH 08/10] Taperoll Fixes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Apparently, there were issues with them being used on tiles with directional windows. 🤷♀
---
code/game/objects/items/weapons/policetape.dm | 55 +++++++++++++++----
1 file changed, 45 insertions(+), 10 deletions(-)
diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm
index 43183d45f4..be10b7821f 100644
--- a/code/game/objects/items/weapons/policetape.dm
+++ b/code/game/objects/items/weapons/policetape.dm
@@ -134,17 +134,18 @@ var/list/tape_roll_applications = list()
update_icon()
return ..()
+//TFF 2/5/19: Polaris fix for taperolls not being usable on tiles with directional windows
/obj/item/taperoll/attack_self(mob/user as mob)
if(!start)
start = get_turf(src)
- usr << "You place the first end of \the [src]."
+ to_chat(user, "You place the first end of \the [src].")
update_icon()
else
end = get_turf(src)
if(start.y != end.y && start.x != end.x || start.z != end.z)
start = null
update_icon()
- usr << "\The [src] can only be laid horizontally or vertically."
+ to_chat(user, "\The [src] can only be laid horizontally or vertically.")
return
if(start == end)
@@ -154,15 +155,18 @@ var/list/tape_roll_applications = list()
for(var/dir in cardinal)
T = get_step(start, dir)
if(T && T.density)
- possible_dirs += dir
+ possible_dirs |= dir //TFF 2/5/19: Polaris fix for taperolls not being usable on tiles with directional windows
else
for(var/obj/structure/window/W in T)
if(W.is_fulltile() || W.dir == reverse_dir[dir])
- possible_dirs += dir
+ possible_dirs |= dir
+ for(var/obj/structure/window/window in start)
+ if(istype(window) && !window.is_fulltile())
+ possible_dirs |= window.dir
if(!possible_dirs)
start = null
update_icon()
- usr << "You can't place \the [src] here."
+ to_chat(user, "You can't place \the [src] here.")
return
if(possible_dirs & (NORTH|SOUTH))
var/obj/item/tape/TP = new tape_type(start)
@@ -178,7 +182,7 @@ var/list/tape_roll_applications = list()
TP.update_icon()
start = null
update_icon()
- usr << "You finish placing \the [src]."
+ to_chat(user, "You finish placing \the [src].")
return
var/turf/cur = start
@@ -196,6 +200,29 @@ var/list/tape_roll_applications = list()
can_place = 0
else
for(var/obj/O in cur)
+ //TFF 2/5/19: Handle places where you can't place down table (I think)
+ if(istype(O, /obj/structure/window))
+ var/obj/structure/window/window = O
+ if(window.is_fulltile())
+ can_place = 0
+ break
+ if(cur == start)
+ if(window.dir == orientation)
+ can_place = 0
+ break
+ else
+ continue
+ else if(cur == end)
+ if(window.dir == reverse_dir[orientation])
+ can_place = 0
+ break
+ else
+ continue
+ else if (window.dir == reverse_dir[orientation] || window.dir == orientation)
+ can_place = 0
+ break
+ else
+ continue
if(O.density)
can_place = 0
break
@@ -205,7 +232,7 @@ var/list/tape_roll_applications = list()
if (!can_place)
start = null
update_icon()
- usr << "You can't run \the [src] through that!"
+ to_chat(user, "You can't run \the [src] through that!")
return
cur = start
@@ -221,6 +248,10 @@ var/list/tape_roll_applications = list()
for(var/obj/structure/window/W in T)
if(W.is_fulltile() || W.dir == orientation)
tape_dir = dir
+ //TFF 2/5/19 - reverse orientation
+ for(var/obj/structure/window/window in cur)
+ if(istype(window) && !window.is_fulltile() && window.dir == reverse_dir[orientation])
+ tape_dir = dir
else if(cur == end)
var/turf/T = get_step(end, orientation)
if(T && !T.density)
@@ -228,6 +259,10 @@ var/list/tape_roll_applications = list()
for(var/obj/structure/window/W in T)
if(W.is_fulltile() || W.dir == reverse_dir[orientation])
tape_dir = dir
+ //TFF 2/5/19 - regular orientation
+ for(var/obj/structure/window/window in cur)
+ if(istype(window) && !window.is_fulltile() && window.dir == orientation)
+ tape_dir = dir
for(var/obj/item/tape/T in cur)
if((T.tape_dir == tape_dir) && (T.icon_base == icon_base))
tapetest = 1
@@ -243,7 +278,7 @@ var/list/tape_roll_applications = list()
cur = get_step_towards(cur,end)
start = null
update_icon()
- usr << "You finish placing \the [src]."
+ to_chat(user, "You finish placing \the [src].")
return
/obj/item/taperoll/afterattack(var/atom/A, mob/user as mob, proximity)
@@ -253,12 +288,12 @@ var/list/tape_roll_applications = list()
if (istype(A, /obj/machinery/door))
var/turf/T = get_turf(A)
if(locate(/obj/item/tape, A.loc))
- user << "There's already tape over that door!"
+ to_chat(user, "There's already tape over that door!")
else
var/obj/item/tape/P = new tape_type(T)
P.update_icon()
P.layer = WINDOW_LAYER
- user << "You finish placing \the [src]."
+ to_chat(user, "You finish placing \the [src].")
if (istype(A, /turf/simulated/floor) ||istype(A, /turf/unsimulated/floor))
var/turf/F = A
From 2ffebfd50766d156279b4370f872b903fd279e29 Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:36:42 -0400
Subject: [PATCH 09/10] Borgs' and Micros' Delight
Allow borgs to make micro mechs.
---
code/modules/mob/living/silicon/robot/drone/drone_items.dm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index 2c8d88b8b4..d1029a8b73 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -153,8 +153,10 @@
icon_state = "gripper-mech"
desc = "A large, heavy-duty grasping tool used in construction of mechs."
+ //TFF 2/5/19: Add ability to use micromech parts in constructing said micromech. Ported fix from VoreStation.
can_hold = list(
/obj/item/mecha_parts/part,
+ /obj/item/mecha_parts/micro/part, //VOREStation Edit: Allow construction of micromechs,
/obj/item/mecha_parts/mecha_equipment,
/obj/item/mecha_parts/mecha_tracking
)
From 2f056d4d4fa77adea22477f8fea3f4e74f33196d Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Thu, 2 May 2019 22:38:59 -0400
Subject: [PATCH 10/10] Fire Alarm Now Deconstructible
---
code/game/machinery/alarm.dm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 8e6acea643..b586cf4794 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -873,6 +873,12 @@ FIRE ALARM
/obj/machinery/firealarm/attackby(obj/item/W as obj, mob/user as mob)
add_fingerprint(user)
+//TFF 2/5/19: Port Polaris fix for deconstruction of fire alarms.
+ if(alarm_deconstruction_screwdriver(user, W))
+ return
+ if(alarm_deconstruction_wirecutters(user, W))
+ return
+
if(panel_open)
if(istype(W, /obj/item/device/multitool))
detecting = !(detecting)