Creature banks

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:

**1# **Two-hexed creatures do not touch left edge of battlefield.

Fixed by Tow Dragon.
**2# **Metastring does not correctly handle “and” before last component of loot (truly saying, it never displays it).
Handled :sunglasses:
**3# **Some of the bank configs are corrupted.
Exported them to Config/bankconfig.txt

Map updated.
Testy5 Banks.rar (2.4 KB)

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.

I suppose so, but I never touched battles so someone else has to fix it.

It may be an issue also when creatures will be placed via script in the future.


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 :unamused:

I just came up with idea of adding Pyramid to the list so I could handle it altogether.

+1 for that idea …

Generally it would be nice to have some other simple things like that configurable in txt files that in sod/wog are not…

For example hero specialisations, heroes starting skills etc. There even is a txt file for hero specs but it changes just names of the specs not the specs itself which imho is silly :slight_smile:

They are not yet supported in VCMI but I’m going to do it for 0.8. If you think it could be useful, I can make a special config for it (to change one hero’s specialty to another hero’s specialty).

We already have a config for secondary skills (hero_sec_skills.txt). Primary skills are in HCTRAITS.txt (you can put changed file into /Data directory to make VCMI use it).

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?

I suggest checking this page, it contains list of all IDs and more.

And going back to the topic, what is your opinion?

@hero specialisations
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 :unamused:
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.

Of course I agree with you :wink:

@majaczek @hero specialisations

I think keeping HeroBonus a POD is a better better idea. We just need additional entries for bonuses from specializations.

Can be done with additional bonuses too.

Good point, I’ll keep in mind to make it possible for heroes to have specializations with multiple bonuses.

Yes, there are many standard lists in Heroes 3 (but not for everything). We follow most (if not all) of them.

excuse me what is POD?

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?)

because of topic goes to discussion of specialization
i’m bringing first part of translated FIZMIG into english
fell free to move the post to appropriate topic

here almost everything acoording to HERO SPECIALIZATIONS

edit i can’t put an attachment, sorry i’ll try later

edit manual says attachments of any size, but forum engine says size is too big , no more 256 kb, but i have 440kb, i’ll try to repack

edit - I have to remove all of images ((((
and archive now is ~50 kb, SENDING )
FizMiGe.7z (47.5 KB)

Actually HeroBonus is not a POD because of nondefault constructors, I’ve forgotten about it, but still inheritance and virtuality is not the best way to solve this problem.

I don’t think updating is necessary. We just have to know that bonus info is not enough to calculate exact impact on hero (we need info about hero, ie. level).

Thanks, look good. I think it will be useful.

ahh “Plain Old Data” those i know, I just didn’t know the shortcut

Great, now all Bank configs are handled properly. I’m also hoping to include Pyramid guards in this file soon.