1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00
Commit Graph

789 Commits

Author SHA1 Message Date
Michał Zaremba
d2ac0fd4ff fix CBufferedStream::ensureSize growth & read semantics (compat for 'A War' map) 2025-10-11 09:38:06 +02:00
Michał Zaremba
249c9507e7 Fix remove artifacts during map load 2025-09-18 10:56:53 +02:00
Ivan Savenko
118029b2ba Merge pull request #5964 from Laserlicht/levels
multilevel support
2025-08-14 11:03:42 +03:00
Laserlicht
ecfe09f6b1 multilevel support 2025-08-01 02:21:44 +02:00
Ivan Savenko
760eff8139 Fix crash on loading town with unit that has ability propagated to army 2025-07-31 21:57:28 +03:00
Ivan Savenko
1f9a1dbf37 Fix artifacts providing hero with banned spells
Tomes of X Spells and Spellbinder's Hat (and any other sources for such
bonuses from mods) will no longer provide spells that are banned on map.

Option is only active for random maps and for HotA h3m's. RoE-SoD .h3m's
work as before.

If needed, behavior can be changed in config
2025-07-26 19:44:00 +03:00
Ivan Savenko
f58d08e563 Support for banned game entities in random map templates
The following entities can now be banned in a random map template
definition:
- Hero
- Artifact
- Spell
- Secondary skill

The ban follows the same rules as banning via the map settings in the
map editor.

It is also now possible to bypass dependencies and access identifiers
from mods that are not dependencies when defining:
- Banned entities in random map templates
- the chance of a hero class appearing in a tavern of a specific faction
- the chance of a spell appearing in a mage guild of a specific faction
- the chance of a hero class receiving a secondary skill

For this to work, the identifier must be specified in full, e.g.
`modName:objectName`. If the specified mod is not active, the game will
silently ignore this entry.

This behaviour is not affected by mod load order. It is possible to use
this format to access a mod that has not yet been loaded.
2025-07-14 00:18:11 +03:00
Ivan Savenko
33431adb27 Apply formatting on changed files 2025-07-07 19:19:17 +03:00
Ivan Savenko
2ad186130f Split MapDefines file on .h per class basis 2025-07-07 18:16:42 +03:00
Ivan Savenko
c15f628761 Merge pull request #5743 from SoundSSGood/num-of-charges-per-spell
Charge cost for charge based spells
2025-07-02 17:07:56 +03:00
Ivan Savenko
74e697d41c Fix regression from bonus system changes 2025-07-01 13:34:30 +03:00
SoundSSGood
76debab846 HasChargesLimiter now works in "bonuses" json section 2025-06-30 18:41:22 +02:00
SoundSSGood
7f9936cf10 getSourcesForSpell 2025-06-30 18:41:20 +02:00
SoundSSGood
6752ab3a75 HAS_CHARGES_LIMITER 2025-06-30 18:39:57 +02:00
Laserlicht
bd090059da small refactoring 2025-06-22 00:31:33 +02:00
Ivan Savenko
6d359e4112 Create heroes in pool via handler to properly initialize appearance 2025-06-17 14:36:17 +03:00
Ivan Savenko
463c404a83 Use bonus only as shared_ptr to avoid memory corruption 2025-06-16 16:22:21 +03:00
Ivan Savenko
899701a87d Update docs, fix sonar 2025-06-15 17:01:29 +03:00
Ivan Savenko
0fa83c0478 Implemented mod-friendly loading of town building icons for campaigns 2025-06-15 17:01:29 +03:00
Ivan Savenko
ae2e6f0357 Add workaround for strange/unknown hota h3m quirk 2025-06-15 17:01:29 +03:00
Ivan Savenko
c279da0798 Minimize hardcoded logic for campaigns. Support for hota h3c's 2025-06-15 17:01:29 +03:00
Ivan Savenko
59dfa4c2d7 Load map and campaign overrides once 2025-06-15 17:01:29 +03:00
Ivan Savenko
a842dfb3c4 Support for defining new campaign regions in mods, for hota h3c 2025-06-15 17:01:29 +03:00
Ivan Savenko
1ea2ce7959 Identifier remapping support for campaigns 2025-06-15 17:01:28 +03:00
Ivan Savenko
0979f409c7 Fix build 2025-06-15 14:36:29 +03:00
Ivan Savenko
f71db8af07 Configurable Conflux University 2025-06-15 14:36:29 +03:00
Ivan Savenko
5ccb32aa4e Fix parsing of hota 1.7.3 maps/campaigns 2025-06-09 21:40:11 +03:00
Ivan Savenko
7b3d690998 Merge pull request #5731 from IvanSavenko/gamehandler_reduce
Refactoring - simplify classes derived from CGameInfoCallback
2025-05-23 16:04:27 +03:00
Ivan Savenko
ff0f5290f7 CClient no longer inherits from CGameInfoCallback 2025-05-23 14:17:43 +03:00
Ivan Savenko
af20b39fe6 Reduce non-const access to gamestate on server 2025-05-23 14:17:25 +03:00
Ivan Savenko
62316a6420 Per-instance bonuses for artifacts
It is now possible to give artifacts per-instance bonuses, if needed.

Unlike shared bonuses, per-instance bonuses stack if multiple instances
of same artifacts are equipped on hero.

This to implement resource-producing artifacts in line with H3 -
equipping multiple such artifacts on a single hero will give bonus from
each instance of such artifact.

Also, both existing bonuses and new instanceBonuses fields now use json
object instead of json lists. This allows easier modification of
individual bonuses of artifacts and potentially - custom icons /
descriptions for artifact bonuses.
2025-05-21 19:24:19 +03:00
SoundSSGood
f614a8a7f5 Discharging conditions 2025-05-16 23:26:42 +02:00
SoundSSGood
9bbebd62e9 GrowUpArtifact pack 2025-05-16 23:20:09 +02:00
Ivan Savenko
630f911cc9 Merge pull request #5713 from IvanSavenko/gamecallback_remove
Game callback rework (part 1?)
2025-05-16 17:19:37 +03:00
Ivan Savenko
6dd25d6a67 Merge pull request #5716 from kdmcser/zip_maps
fix crash when map is packaged in a zip mod
2025-05-16 17:19:24 +03:00
kdmcser
5e4912d056 fix crash when map is packaged in a zip mod 2025-05-16 01:14:12 +08:00
Ivan Savenko
4d4da0454f map objects hierarchy now uses IGameInfoCallback 2025-05-14 18:33:20 +03:00
Ivan Savenko
6f20235d07 Merge CPrivilegedInfoCallback into CGameInfoCallback 2025-05-14 13:42:20 +03:00
Ivan Savenko
716da918f8 Completely remove IGameCallback class
- CClient now inherits directly from CPrivilegedInfoCallback, like
IGameCallback did before. However CClient no longer needs dummy
implementation of IGameEventCallback
- CGObjectInstance hierarchy now uses CPrivilegedInfoCallback for
callback. Actual events can only be emitted in calls that receive
IGameEventCallback pointer, e.g. heroVisit
- CGameHandler now inherits directly from both CPrivilegedInfoCallback
and IGameEventCallback as it did before via IGameCallback
2025-05-14 13:39:41 +03:00
Ivan Savenko
35644da2b7 Reogranize callback-related classes on 1 file = 1 class basis 2025-05-12 22:07:09 +03:00
Ivan Savenko
4b30336d03 Fix issues detected by Sonar 2025-05-11 19:50:57 +03:00
Ivan Savenko
0e2ea99283 Implemented option to emulate H3 seer hut full-army quest bug 2025-05-07 19:16:58 +03:00
Ivan Savenko
69de14a42f Fix crash on loading map with heroes that have combined art equipped 2025-05-07 18:05:30 +03:00
Ivan Savenko
92c4bcbf68 Unify checks for creature limiter 2025-05-07 16:35:15 +03:00
Ivan Savenko
f1d9d8479f Extend rewards & limiters functionality 2025-05-06 17:28:12 +03:00
Ivan Savenko
5dec3efa2f Spell scrolls as a reward 2025-05-06 17:28:12 +03:00
Ivan Savenko
62e774c91e Add new rewards for configurable objects 2025-05-06 17:28:11 +03:00
kdmcser
7cb922dd8a fix old vcmi format map loading crash 2025-05-06 01:53:25 +08:00
kdmcser
26f3d95b47 pass compile 2025-05-06 01:22:29 +08:00
kdmcser
5645806035 Merge branch 'develop' into crash_fix4 2025-05-06 01:20:19 +08:00