Make events functions `OnEnabled()` and `OnEnabled()`
protected rather than public.
Move initialization and clean up logic into
`OnCreated()` and `OnDestroyed()` event functions.
Previous description understated the effects of the `allowNegativeDosh`
flag. Effects are much more common and significat that previously
thought because of game behavior on filling ammo for one or all weapons.
Previous comments explaining the idea behind how `FixAmmoSelling`
works were incorrectly stating that non-default pickup class is only
used to calculate diuscounts, when it was also used to spawn
weapon pickups.
Non-default value of pickup class was used to
spawn pickup when player drops a weapon.
But since we've replaced that class and it doesn't
(or might not) exist on the client - dropped weapons
appeared as invisible.
Catch the moment our custom pickup is spawned and
replace it back with default one.