Because the old case didn't account for the Scheduler got dropped but Participant keept around.
Shutdown behavior is quite easy now: bParticipant sends a oneshot, when that hits we stop. also when Participant gets droped we still stop as there woul dbe no sense in continue running the report_mgr ...
This will ask the bparticipant for a list of all channels and their respective connection arguments.
With that one could prob reach the remote side.
The data is gathered by scheduler (or channel for the listener code).
It requeres some read logs so we shouldn't abuse that function call.
in bparticipant we have a new manager that also properly shuts down as the Participant holds the sender to the respective receiver.
The sender is always dropped. inside the Mutex via disconnect and outside via Drop (we need 2 Options as otherwise we would create a runtime inside async context implicitly o.O )
(also i didn't liked the alternative by just overwriting the sender with a fake one, i want a propper Option that can be taken)
The code might also come handy in the future when we implement a auto-reconnect feature in the bparticipant.
- `BlockFloater`s and `ComboFloater`s don't store the owner anymore,
`ExpFloater` still does, however the field is used to prevent
accumulating old floaters with new ones. This change also makes it so
that if the client changes entity, they keep the old entity's
floaters.
- The `combo_floaters` field is now `combo_floater` plus it now uses an
Option<ExpFloater>.
- Changed `handle_health_change` to change the health even if the entity
does not have a `Pos` or `Uid`, now uses `emit_now`combo_floater` plus
it now uses an Option<ExpFloater>.
- Changed `handle_health_change` to change the health even if the entity
does not have a `Pos` or `Uid`, now uses `emit_now`
- Changed some comments
- Change hp_pulse to not be framerate dependent
- Change some of the HpFloater checks to be inside the find() function
- Remove unnecessary join
- Add back option for showing incoming damage + add option for
experience accumulation
- Change `ExpFloater`s to not store the owner, as they are only shown
for the player (will have to see if the implementation is correct so
that it may be applied to the other floaters)
- Rename `Outcome::Damage` to `Outcome::HealthChange` and `DamageInfo`
to `HealthChangeInfo`
- Update some outdated comments/documentation
* Old display_shortened that returned Option is now called try_shortened
* What was called try_shortened is now just display_shortest, because if
shortened version isn't available, it means that regular version is
already shortened.
* Make try_shortened method that tries shortened version of key or
regular version if shortened one isn't available
* Use it in most places where display_shortened + display_string were
used
* Use it for diary skilbar
* New hud/ability.ron file for ability localizations
* i18n keys are created by adding .name and .desc to ability id. Because
of how i18n worked (returning key if string wasn't found), it was
impossible to do because it leads to UB in case string is missed.
To solve this we've added get_opt method that returns None
* New Localization::get_or method for convinient fallback key usage