Artifact creation has been finished except the assignment of graphics to the new or changed items.
Assigning graphics to items seems to be a lost knowledge in Illarion. I've asked that question frequently for 4 month now and there was nobody able to tell how that can be done.
This is very sad. I took a look at the source code and after quite a long time I understand this:
- There exists a table Items.dat that describes all item properties, including some metadata for loading the sprite (name, number of frames)
- To make things more interesting, this table is encrypted, but the public key for decryption is provided with the client. I don't really understand the purpose of this encryption. Maybe it's there to prove that the file was created by official development team (but who would wish to hack it?), or to avoid regular players to have info on all the game items etc (unless they really-really want to). The decrypted file looks like this:
- This also has some similarity to the table "items" inside server database (that you can see if you run local server vm), but it is far from being the same:
3 1 100 4 [fk]3 item.woodlogs FALSE 0 100 1 1000 Nadelholz conifer wood 1 coniferWood 0
2 1 25 4 [fk]2 NULL FALSE 0 100 1 1000 Mehl flour 1 flour 0
- The (encrypted) .dat file is stored inside rsc_tables_***.jar (where *** is a version number). I don't know exactly how this file finds its way to you pc. It seems that the regular client downloads it and puts into Program Files, and if you build by yourself then it is downloaded during build process and stored in gradle cache dir. I've found such files here
, but I'm not sure if this is the main download location or just an archive.
- Also I have not the slightest idea of which script generates this file.
- Then there is rsc_items_***.jar, which conatins an XML file with metadata and 2 png file with actual sprites. Again, it seems to be downloaded from same location.
Bottom line, it seems that technically adding a new item sprite to the game is not too difficult, but it seems that there was some kind of a process to properly pack all the data into jar files and all that, and I don't know how that was done.