Rewrite pet management
What have you done in this MR?
- Fix #1527 (closed).
- Pet details now (a) rely on the exact item ID, so that you can own pets of multiple growth stages; and (b) include an integer ID in the item's charge slot, which disambiguates different individual pets of the same kind (with a maximum of 0xFFFF unique individuals, which exceeds the available bank space by far).
- There is dedicated code to migrate existing pets from the old system to the new one. This includes both pets that are currently out as well as pets that you have in your inventory/bank.
- Growth is now sped up on dev builds, just like hunger already was.
- You will no longer see an extra "your pet is hungry/starving" message when your pet advances a growth stage.
Are there any tricky things testers should keep an eye out for?
-
No -
Yes, as follows: - This is probably obvious, but testing the migration of existing pets from the old system to the new one requires you to obtain them pre-MR and then test them post-MR. Hence, it's probably easiest to roll your own build of the server, where you control what version of the code you're running.
-
I have tested these changes thoroughly. -
This requires extra testing due to changes to architecture or other similarly risky changes. -
I used the Thanos Tool for any JSON edits where possible, and have attached screenshots of any changes. -
I acknowledge that this contribution will be released under the AGPL license.
*** NOTE: If Gitlab complains about pipelines stating that you need to "Validate your Gitlab account" there is no need to worry. You do not have to do this and it is only occurring because OUR pipeline tried to run on your fork. While it's preferred that you do validate your account, you can safely ignore/dismiss this message from Gitlab. ***
Edited by Player Name