Shipboard directions with compass directions

I figured out via the “Fore” example that I need to do this to allow shipboard directions:

The starboard is a direction. The starboard has opposite port. Understand "sb" as starboard. The port is a direction. The port has opposite starboard. Understand "p" as port. The fore is a direction. The fore has opposite aft. Understand "f" as fore. The aft is a direction. The aft has opposite fore. Understand "a" as aft.

But if I want to allow the player to be able to type, say, “east” and “starboard” I have to do this:

The Conn is a room. It is east of the Deck. It is starboard of the Deck.

Is there some way to just have “starboard” and “east” refer to the same direction so I can keep the code DRY? An “Understand” rule does not work for this. Doing that gives responses like “Which do you mean, the east or the starboard?”

I guess the most obvious solution is the right one, a series of lines like:

Instead of going starboard, try going east instead. Instead of going port, try going west instead.

It feels a little clunky to me (code bloat, that is) but, then again, I guess any other construct would have to essentially do the same sort of thing.

It feels like this should be built-in but I don’t know: maybe the use of shipboard directions is not that regular of a thing.

Understand "starboard" as east. Understand "port" as west. Understand "fore" as north. Understand "aft" as south.

Then just don’t implement any additional directions; rely on the existing ones.

Ah! Quite a bit simpler. Yes, I see – the examples were assuming certain things (like I would only want nautical directions in a nautical context). But assuming you always want the directions to be available, this is by far the simplest!


And even if you only want it to apply in a nautical context, you can restrict the Understand statements (if I I’m not mistaken):

A room can be nautical or landlubbing. Understand "starboard" as east when the location is nautical. [etc.]

That’s handy. Does anyone know what the equivalents for the diagonal directions (southeast, etc) should be?