// ------------------- MACHINE_ROOM_SAFE -------------------------------------- // Adapted from Springheel's A New Job, functions within prologue9.script. // There, safe was inside cabinet. Not here, so simplified. void WorkSafeDoor() { //sys.println("WorkSafeDoor ..."); if ($safe_door.IsLocked()) { //sys.println("WorkSafeDoor - unlock door and bar"); $safe_bar.Unlock(); // safe bar will NOT retract automatically $safe_door.Unlock(); // safe door will NOT open automatically } else // safe door is unlocked { //sys.println("WorkSafeDoor - lock door and bar"); $safe_door.setFrobable(0); // make safe door unfrobable // the safe door and bar must both be closed before they can be locked //sys.println("WorkSafeDoor - check door"); if ($safe_door.IsOpen()) { //sys.println("WorkSafeDoor - door is open, closing it"); $safe_door.Close(); sys.waitFor($safe_door); } //sys.println("WorkSafeDoor - door is closed"); //sys.println("WorkSafeDoor - check bar"); if ($safe_bar.IsOpen()) { //sys.println("WorkSafeDoor - bar is open, closing it"); $safe_bar.Close(); sys.waitFor($safe_bar); } //sys.println("WorkSafeDoor - bar is closed"); //sys.println("WorkSafeDoor - lock bar"); $safe_bar.Lock(); //sys.println("WorkSafeDoor - lock door"); $safe_door.Lock(); $safe_door.setFrobable(1); // make safe door frobable again } } void frob_safe_door(entity ent) { // 'ent' is the safe door //sys.println("frob_safe_door - " + ent.getName() + " it's okay to open the safe if unlocked"); if (!ent.IsLocked()) { //sys.println("frob_safe_door - " + ent.getName() + " is unlocked"); if (!$safe_bar.IsOpen()) { //sys.println("frob_safe_door - " + ent.getName() + " is closed, so retract it"); ent.setFrobable(0); // make safe door unfrobable $safe_bar.Open(); sys.waitFor($safe_bar); ent.setFrobable(1); // make safe door frobable again } } //else // ent is locked //{ //sys.println("frob_safe_door - " + ent.getName() + " is locked"); //} ent.ToggleOpen(); } void closeBar(entity ent) { sys.waitFor($safe_door); ent.Close(); }