From 3c33bfec1f9a399d0449ecb184385cc8eb5758e9 Mon Sep 17 00:00:00 2001
From: Jon <vitale.jonathan@ymail.com>
Date: Thu, 29 Sep 2022 12:20:17 +1000
Subject: [PATCH] Add dummy method to make the occupying robot unavailable for
 subtask (c)

---
 src/classes/assignment.js         |  4 ++--
 src/classes/task2/robot-waiter.js | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/classes/assignment.js b/src/classes/assignment.js
index 46ca1dc..a3fe7ff 100644
--- a/src/classes/assignment.js
+++ b/src/classes/assignment.js
@@ -321,10 +321,10 @@ class Task2 {
         let misplacedRobot = targetTable.getRobotAtTable();
         let token = await misplacedRobot.acquire();
         let promiseSleep = new Promise((resolve) => {
-            setTimeout(() => {
+            misplacedRobot.dummyAction().then( () => {
                 misplacedRobot.release(token);
                 resolve(true);
-            }, 4000 + Math.random() * 5000);
+            });
         });
         await safeTeleportTo(randRobot.getRobotID(), targetTable.getTableID());
         await promiseSleep;
diff --git a/src/classes/task2/robot-waiter.js b/src/classes/task2/robot-waiter.js
index afd2136..682fdf1 100644
--- a/src/classes/task2/robot-waiter.js
+++ b/src/classes/task2/robot-waiter.js
@@ -158,5 +158,20 @@ class RobotWaiter {
         this._nextAcquisitionToken = 0;
         this._acquisitionTokens = [];
     }
+
+    async dummyAction(){
+        this.#startProcess(`dummyAction()`);
+        try{
+            let actionTime = parseInt(2000 + Math.random() * 5000);
+            
+            await this.sleep(actionTime);
+        } catch (error) {
+            throw(error);
+        } finally {
+            this.#endProcess();
+        }
+        
+        return true;
+    }
     
 }
\ No newline at end of file
-- 
GitLab