Changes

4,101 bytes added ,  16:20, 18 July 2021
add Boris facts topic info
Line 2: Line 2:     
== Bunker 1 ==
 
== Bunker 1 ==
 +
 
Boris is needed to complete 00 objective on [[Bunker 1]].
 
Boris is needed to complete 00 objective on [[Bunker 1]].
 +
 +
=== Technical Details ===
 +
 +
Broadly, it's all around how Boris "flees", which is all about the navigation graph.
 +
 +
* Points on the navigation graph are called pads.
 +
* Ever spot on the map has a "closest pad" which has a special meaning.
 +
* Each pad is in a set. Nearly all of the main room is set 6, notable exceptions from the picture below are 60 & 62 which are in set 0, and 51 which is in set 5.
 +
 +
Here's the map of the area for which pads are closest in the main room (this map is super important):
 +
62 and 41 are different pads at the same coordinates in different sets and on this map the steel grey is 41's area, and the tan L-shape is 62's.
 +
 +
[[Image:Goldeneye-bunker 1-main room pads.png|thumb|300px]]
 +
 +
These wacky shapes are produced by a breadth-first-search which assigns tiles to points followed by a bugged test for the closest neighbor.
 +
 +
Boris' [[Script|script]] contains an (unique? *) instruction which drives his fleeing behaviour. This is command 6E 20 and it was very fun to reverse.
 +
It repeated uses a "random choice of neighbour", which is important to understand. This works by:
 +
 +
# Getting the ordered list of the pad's neighbours
 +
# Choosing one at random (uniformly)
 +
# Stepping through the list, wrapping if necessary, searching for one which fits some criteria
 +
 +
\* maybe some civilians on streets use it or something but no one relevant
 +
 +
If 6E 20 fails (no such pad exists to choose np from randomly / deterministically) then it falls back on 6E 08, 04 and 02, 01 in that order.
 +
 +
The key point is how (in an IL atleast) you want to go to WALK initially because it means only waiting a 3s timer rather than 10, but there's no need to stay there. By injuring Boris we can escape from a 5 second timer and thanks to a friendly flag check, Boris doesn't start walking again. Once we're out of range, Boris will flee.
 +
 +
When Boris flees, it's always a single segment on the navigation graph. He either walks (20% odds) or runs (80%) along it, with running being 2x as fast I think.
 +
 +
Finally you do need to know some specific orders of neighbours in the navigation graph to understand what's going on. They seem to be ordered pretty erratically. Here's the dump from the setup editor.
 +
 +
;Staying in the middle of the big room to help Boris' pathing.
 +
If your closest pad is 49 or 4C, and Boris reaches 42, he'll see 46 as a possible pad to flee to (as well as 3D which we want), and will head to it.. 75% of the time! Why not 50%?
 +
42's neighbours are 004C 0047 0046 003D.
 +
If Boris randomly picks 4C or 47, he will step forward until he reaches 46, since neither of the former two are away from Bond.
 +
Instead if your closest pad is 47, 48 or even 4B then Boris will only see 3D as a possible next pad, so will head on that optimal path 100% of the time.
 +
 +
;The Boris left turn at the top of the stairs.
 +
3D & 51 are the pads joining set 06 (main room) to 05 (the heart of the corridors). If you are in the same set as Boris when he's fleeing at the top of the stairs, 6E 20 will send him towards pad 5D in set 02 (that dead end) because it is the only neighbour of 5D in a different set. Otherwise you'll be in set 06. Considering 05's order of neighbours:
 +
"Set: 05 Connections: 01 02 03 04 06"
 +
06 will roll onto 01. Choosing set 01, 03 or 04 all cause Boris to continue ahead like we want. This will happen 80% of the time. 20% he'll turn left, and that's pure RNG.
 +
 +
;Odds of turning into the mainframe room.
 +
Unfortunately, the pad behind the first door is still in set 05, otherwise Boris would pick it every time. As things stand we have to consider 4F (the pad outside)'s neighbours:
 +
Preset 004F: 0050 004E 004D
 +
4D is behind the first mainframe door. 4E is further down the corridor, and 50 is where we came from. Bond had to hang back in set 06, so must be behind Boris. As such, 50 rolls onto 4E in the random choice of neighbour. The chance of turning into the mainframe is 33.3%, with a 66.6% chance to carry on ahead. This sucks but there's nothing to be done about it normally. On turbo you can overtake him and have a 2/3 chance of him turning in
 +
 +
=== Miscellaneous Details ===
    
Boris Logic <ref name="function explorer misc facts">{{cite web | url=https://forums.the-elite.net/index.php?topic=18518.msg455830#msg455830|title=the-elite Goldeneye facts topic post on miscellaneous function explorer facts|author=Icy|access-date=July 16, 2021}}</ref>:
 
Boris Logic <ref name="function explorer misc facts">{{cite web | url=https://forums.the-elite.net/index.php?topic=18518.msg455830#msg455830|title=the-elite Goldeneye facts topic post on miscellaneous function explorer facts|author=Icy|access-date=July 16, 2021}}</ref>: