Crylink refiring inconsistency
Crylink has a boolean flag (crylink_waitrelease
) which is used for the join effect / pulling pellets back to the center, this flag is only (re)set to off when the firing keys are released while crylink is held. For open spaces this doesn't create issues. If a player starts to press a firing key, fires, switches to another weapon, (fires that/those, ) switches back to crylink, releases firing key for the pellets to return to the center there are no problems. Most of the time this isn't the desired usage though considering Xonotic isn't a space shooter but most of the playerbase sticks to smaller arenas. For their crylink use the last scenario instead goes like this: If a player starts to press a firing key, fires, switches to another weapon, (fires that/those, ) switches back to crylink, expects to fire again as they are still holding the "Fire the weapon!" key(assuming that they have not enabled the "release firing keys when switching weapons" option) but the weapon is still waiting for to execute the join effect and return pellets to the center. This is still the case even if all the pellets are deleted like upon reaching all the maximum amounts of bounces or firing out of the map. For Crylink to refire when holding fire when switching back to it, it's necessary to have released the fire key before switching away from it.
I propose that the flag is reset at least when all the pellets have been destroyed, this would make crylink an automatic weapon given that the shots always get deleted(Most of the time in smaller maps they've always been destroyed when returning back to crylink when weapon comboing). Resetting the flag when weapon switching is in my opinion very considerable also. Maybe leave crylink's fire key release for join listening in the background even if holding another weapon? That would also be nice for the devastator's manual detonation.