* We were referring to *suit* 'slot id', when that's only for the
loadouts. For suits we have a full id, from Frontier, that we use.
* Comment that creating a suit loadout does *not* automatically equip
it.
Now, **if we have CAPI data** we will use the CAPI-sourced localised
name for the suit display. Where we don't (yet) have CAPI data we still
use the badly localised journal name for the suit.
This way we can have common code for SuitLoadout, SwitchSuitLoadout and
CreateSuitLoadout, with the first two then calling the new
`self.suit_and_loadout_setcurrent()` to set the seen data as also the
currently in use suit/loadout.
* Surprise! The new event is `BackPack`, not `Backpack`, although the
filename *is* `Backpack.json`.
* Store the loaded JSON dict in `monitor.state['BackpackJSON']`. That
`p` is lower case to match with the filename, not the event name.
* Document this in PLUGINS.md.
Unless EDSM is telling us to discard this we should now be sending it.
This is an example of just how icky it gets validating an event by hand.
Technically we need a function, many would probably be lengthier and
more complex than this one, for **every single journal event
type**.
Leaving the, meant to be defunct, `BackPackMaterials` code in for now,
as it's only one extra conditional that will never be stepped into if
the event never happens.
Yes, Frontier now uses 'Backpack' not 'BackPack', but we've already
published our plugin API as using the CamelCase version, so not changing
the monitor.state key.
MissionCompleted doesn't contain 'Reward' if you pick an option without
a credits amount (rather than being there but with zero value).
Let's not wait to find out about other exceptions, just utilise
entry.get(<field>, 0) on them all.
A taxi 'Docked' event has much less data than an own-ship one. Rather
than put tortured conditionals into the
Location/FSDJump/CarrierJump/Docked conditional I've split Docked into
its own.
There should always be one of the other events to set things like
SystemAddress before a 'Docked' event, so limiting the new conditional
to setting/changing only the station-related state variables.
We still need each try/except in case:
1. Journal has you buying a suit, or creating a SuitLoadout.
2. It then has you selling/deleting a different one.
3. But no CAPI data yet, so we don't know about that different one.