There was a chance that inspecting one of these would cause a TB from running out of ticks. I've fixed this by making it use a suspended version of the verb that was running out of ticks.
A while back we shifted to using a sub matrix id for some rooms that occupy the same space as other rooms, this generally works fine but has caused some problems. One was that anywhere that directly used the .matrix_id property and not :matrix_id verb was getting the wrong results. I've updated this, which should change how space between a landing room and a rooftop is calculated when one of the rooms was using a sub matrix id, and also properly report the distance between roofs in those cases where you 'look up' and see surrounding rooftops.
There were some issues with the submatrix tooling that was only partially converted to maps when we moved to ToastStunt, I've resolved these issues. I've also fixed a ton of places where we were still calling the matrix_id prop directly and not the calculated one which accounts for the submatrix_id.
This means that the distances between some rooftops / the ground have been adjusted and will show correctly, and the jumps will work / not work accordingly. I recommend checking edges you may be familiar with to make sure things haven't changed.
All these changes have the possibility of causing cascading bugs with things around dynamic space / rooftops / jumping / grappling hooks. I hope they won't, but please @bug if you see anything.
There were no waypoitns setup to allow aero taxis to get to the Prae rooftop. I've fixed this and also fixed a few bugs in the code relating to pathing. I am fairly certain that I haven't broken other shit, but time will tell.
There is still a bug where if the aero is really close to Prae it may not be able to find the path, but when it's far away it works fine. I've kept the bug open so I can investigate further, but it's at least 70% working now.
There was no verification that a room in the submatrix id cache was actually still a room, and this was causing TBs when entering rooms that the system thought had rooms below them or around them, when those surrounding rooms had been recycled without submatrix cleanup (which didn't exist).
I've added in a catch to validate the submatrix rooms and an alert that an invalid room exists in the cache so it can be cleared. This should clear up the TBs and also let us clear up the cache as needed.
I have made a code change to fix a bug in how subspace rooms hear noises from above them. Examples of the bug were people in their apartments hearing those walking around on catwalks outside the apartment above them, because the apartments have the same submatrix id as the catwalk.
Subspace rooms will no longer be included in these messages. It's not a perfect fix but it should prevent some of the wonkiness people have been reporting.
I've created a wrapper verb around restarting the discord bridge for OOC chat that will fast forward the pointer to the latest message so we don't spam OOC chat when restart the bridge. That does mean there will be messages missed, but it also means no wall of green text spamming everyone if we have to restart it.
After feedback on BGBB and from staff, and several annoying bugs, I have disabled the ChatGPT integration for Where's the Party questions to bartenders. It was a good experiment. It will now fallback to the tried and true code that we were using previously, which is more repetitive and has less personality, but is less likely to give weird results.
I've updated the subspace matrix code for admins, fixing some issues with caching. I've also updated the builder documentation to outline how the code works.
SUBSPACE MATRIX AND JUMPING
A previous change had made subspace rooms be considered when deciding if a free fall room that is dynamically created should include subspace matrix ids. This was breaking jumping from certain places as you'd land on some rooftop. I've fixed this.
I've updated the helpfile to clarify how forgetting skills works. You can only forget a skills you have 30 of fewer points in. A point is not equal to 1 ue. You get 1 point each raise, and skills cost 0.5 a raise, meaning you would hit 30 with 15UE worth of expenditure.
Whoever is telling people that this means N or O rank is incorrect. You would be at P with 30 raises of a skill.
Hopefully this clarifies things.
There was a bug in the revocation of temporary perks when you had the real perk. The issue cropped up mostly with crates, where getting a crate gives you a temporary version of the commuter perk. For those that already had the commuter perk, if you got a crate, got the temp perk, delivered the crate, went back, got another crate within 30 minutes, it would grant you the perk a 3rd time.
Then when next we check what perks you have--it only does this when you try to use it or you type @stats-- if both temporary perks were expired, it would loop through and call the code to revoke the perk 2 times. The problem is the code to revoke perks revokes all expired version of the perk, which means that because perks are stored as a list like this:
commuter perk, commuter perk, commuter perk
The first execution would leave it with:
commuter perk
because it expired both expired temp perks. Then it still thinks there is another commuter perk to expire and calls the code again which would result in expiring the real perk.
I've fixed this.
If you tried to get an e-memory from an e-note it would generate a TB and show you an OOC error. This was because it tried to call a _get verb that doesn't exist since that isn't how you interact with that object. I've resolved this with a better message about not being able to get from that item, and now that doesn't TB.
Get is disabled for activated tracking beacons which impacts getting them from lockers if they are activated. You could still put one in a locker though. I've added code to prevent this and extracted the code to its own verb so we can integrate other items that may not be storable in the future.
Originally, we intended for sniping to be possible through windows. However, that was at a time where there were very few actual windows in the game and they definitely weren't in the majority of apartments. With many apartments having windows now, we have decided that sniping out of these windows, from behind a locked door that is essentially impenetrable, is a negative. Moving forward you can AIM through windows with a rifle, but you can't shoot anything. You'll need to find a rooftop to snipe, which means you can be tracked down and attacked for your crimes.
Every month or two we get a bug report because someone looks at themselves while disguised and see's that their dermalweave 'Your skin does not look right' is showing up at the end of their desc even though they are shrouded.
This was only showing when you looked at yourself, because you would be aware of it, but this was confusing because people didn't know it wasn't showing up for others. I've just gone ahead and changed this so you won't see it if you don't have exposed skin, to prevent people thinking it is a bug.