Since it’s quite a complex feature, I start a separate thread to post screenshots and test map, also to discuss problems and issues of this functionality.
There are 21 creature banks in total, which includes these plus Utopia, Crypt, Shipwreck and Derelict Ship. The Pyramid is slightly different, so I didn’t implement it yet.
At the moment we’re able to attack banks and take loot of resources, artifacts and creatures with apriopiate info window. Still, there are some glitches:
Perhaps you are compensating for two-hex creatures where none is needed? Two-hex creatures have their position as the front of the creature. In the picture the Black Dragon is standing on hex #2, with it’s back on hex #3. Had it been on the attacking side with the same position, it’s back would be on hex #1.
The creatures in top left and bottom left need no compensation for being two-hex, their position should be the same as that for single hex creatures in those areas.
As to handling ZRCBANK config file, WoG creature info is completely messed-up - you can see it on your own. There is no point to handle all cases manually by config parser or gargantuan switch in game code.
I suggest editing the config file itself to manually correct creature names and distribute it with VCMI, leaving LOD archive unused. This would also allow us to drag more info into external, configurable files.
Volunteers are welcome
I just came up with idea of adding Pyramid to the list so I could handle it altogether.
Nice. Should I understand that skill_ID refers to the list in vcmi_status?
What about heroID? Where can I find in VCMI the lists of skillID, heroID and spellID?
I have found only creatures list in crerefnam.txt. Is there similar lists to skills, heroes and spells?
specialisation can be done as class inherited from bonusses class
(specialisations are generally same the bonus, but they change value)
so there will be virtual function in bonus called update which does nothing for plain bonus, but updates the bonus if the bonus are in fact herospec (if herospec depends on level it stores old level and compares with present and if needed change value etc)
I had a sketch for that but I didn’t write any code
sorry for that - I should have it done long time ago
also I haved in mind bonus for hero which is autocast (handles living scrolls from wog and wog extended hero specialities) which I find would be nice placed in engine
EDIT: of course for hero specialisation there is needed a list (some config/*.txt) but the list should handle “multiple” specialisations (ie. solmyr is better caster at chain lighting AND autocast magic arrow in wog)
EDIT2: the list should have dependency field - it should match the option choosen
depndency is NONE if herospec is given for each options and eg. WOGSPECS if it is for extended wog specialities - then we have one list which catches option changes and at once not modified then
Unfortunately I have surfcontrol for this page but I will check it later. But probably there are standard lists used in Homm i.e. Heroes list in Hotraits.txt? So if all the lists used in VCMI are according to Homm lists so I have no more questions in this matter.
EDIT: if we do additional specs as bonuses we encounter a problem
ie. new bonus CREATURE_SPEC gets in fields CR No and bonus strength
it need to be updated after leveling hero - but diffrent specialities in CR has diffrient starting level and level step
so how to do that? (the easiest would be additional fields in bonuses but do we want them?)