Eclipse-Station / Eclipse-Station-13

Eclipse Station 13 - SS13 build, based on Virgo/Polaris
http://www.eclipse-station.space/
Other
8 stars 28 forks source link

Assorted fixes #250

Closed EvilJackCarver closed 4 years ago

EvilJackCarver commented 5 years ago

Assorted fixes to the code, from what I can see on the nt-dept-dispatcher branch.

:cl: EvilJackCarver 🔧 Adds more nullchecks to the supply crate ordering (#200) 🔧 Beacon sprites now function as intended (#243) 🔧 Brain surgery now shouldn't pull the person to the brain if the mind can't be cloned (#184) 🔧 Wilderness submap loader can now spawn more than one of some of Sif's deep-woods stuff. (#248) 🔧 Tweak to examine code. (#241) 🛠 Tweaks to Github tooling ➕ Adds a recharge mechanic to Taser spiders. It's in beta. /:cl:

CLOSES #248 CLOSES #243 AS FIXED CLOSES #241 AS FIXED CLOSES #200 AS FIXED PATCHES #184 FOR BRAIN SURGERY, DOES NOT FIX MAIN ISSUE

EvilJackCarver commented 5 years ago

Big fancy status report

OOC notes has been tested to the extent that I could solo. It doesn't runtime on my end, but I also don't get the option as a ghost to check OOC notes. image


Submap load abort is working as intended. If it's trying and failing to find a submap with a low enough budget, it'll yield earlier than it would if there's a higher budget available. image


Taser spiders now have 8 shots per charge, and charge at a rate of 5 Life() cycles per shot, or 40 per full charge. If they run out of charge, they'll run up to you and duke it out, mano y mano. https://www.youtube.com/watch?v=mDV36Il4QSA


I could not test the brain surgery thing solo.


The AI holopad issue continues to be an issue, mainly with actual humanoid crew. PunPun works as an avatar. Need to look into this more.


Teleporter beacon sprites are confirmed functional. image


There was no null - null option when I went to the voidsuits tab in the cargo console as described in #200, but I cannot confirm this as whether I fixed it or it got fixed in an unrelated patch. image

EvilJackCarver commented 5 years ago

Update 2: AI holopad code is still broken, but now I have a better idea of what's going on: When the tracked_mobs() proc is called, it's not passing the mobs back to the AI as /mob/, it's a text-based list with exception to Tom and PunPun.

I have some idea of how I plan to look into debugging it, but I need to tear into the code deeper in order to do this. In the interest of not delaying these hotfixes any further, I'm going to go ahead and submit this PR for review without the holopad fixes, and push that into another PR later down the line.

EvilJackCarver commented 5 years ago

Just pushed an update to submap loader yielding code. It now yields based on a formula, which itself is based on some numbers I came up with on the fly while writing the original code. Like the original code, this means that it'll give up on loading submaps sooner if there's next to no budget left, and wait until the end if there's a lotta budget left.

yielding.png Proof of testing. Here, rather than spending more time trying to load submaps, it yielded early because there were only 4 budget points left. Could it have loaded more submaps? Probably. Would it have taken a lot more time to do so? Also probably.


It yields based on y ≤ -4/9x + 25. Above 56.25% sanity, it will not yield. At 0% sanity, it will yield if the budget is below 25 (but it'd yield due to an unrelated check).

graph.png Δ = 5 (both axes). X axis = sanity percentage. Y axis = budget points. A graphical representation of the formula above. The red shaded area indicates where the submap loader will yield.