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

394 Commits

Author SHA1 Message Date
Andrej Dudenhefner
497995c11f add BattleEnded pack which happens after BattleResultsApplied and losing heroes are removed 2025-11-14 12:48:46 +01:00
Laserlicht
a6ea9be489 Merge branch 'develop' into battleonly 2025-10-28 14:42:27 +01:00
Laserlicht
66f377f14e netpackages 2025-10-25 20:41:39 +02:00
Laserlicht
4d37fe631b battle only basic implementation 2025-10-24 00:54:22 +02:00
Laserlicht
120213509d netpacks for renaming 2025-10-05 02:46:19 +02:00
Laserlicht
f5d1657041 make town title editable 2025-10-05 01:49:00 +02:00
Ivan Savenko
8ad9b1d526 Merge pull request #6184 from Laserlicht/mines
Mines configurable
2025-10-04 14:59:59 +03:00
Laserlicht
967283beb6 fix deserializion of ResourceSet for compatibility 2025-10-03 18:27:55 +02:00
Laserlicht
739b165387 fix 2025-10-01 19:07:52 +02:00
Laserlicht
74957bce32 fix for c++ 2011 2025-10-01 10:27:56 +02:00
Laserlicht
c72a4b0294 fix mines serializer 2025-10-01 00:46:40 +02:00
Laserlicht
57a49838ec fixed scope 2025-09-30 20:45:38 +02:00
Laserlicht
6c6350ad8b code review 2025-09-21 22:07:57 +02:00
Laserlicht
ecfe09f6b1 multilevel support 2025-08-01 02:21:44 +02:00
Ivan Savenko
b4693a9d7f Merge pull request #5859 from IvanSavenko/antilag
Lag compensation for multiplayer
2025-07-30 12:02:36 +03:00
Ivan Savenko
aab628c5d4 Fix crash on using JsonDeserializer on JsonNode without valid mod scope 2025-07-20 16:22:35 +03:00
Ivan Savenko
241da5937d First semi-working version of antilag for hero movement 2025-07-19 18:04:20 +03:00
Ivan Savenko
52da332640 GameHandler now uses GameConnectionID instead of connection pointers 2025-07-19 18:04:20 +03:00
Ivan Savenko
3576efc3f3 Initial version of antilag support 2025-07-19 18:04:20 +03:00
Ivan Savenko
58de180083 Split CConnection into GameConnection and IGameConnection classes 2025-07-19 18:04:20 +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
e12765dca0 Fix sonar warnings, convert spaces -> tabs 2025-07-09 17:52:51 +03:00
Laserlicht
cf32f00472 hide bonus 2025-07-08 11:59:16 +02:00
Ivan Savenko
2ad186130f Split MapDefines file on .h per class basis 2025-07-07 18:16:42 +03:00
SoundSSGood
6752ab3a75 HAS_CHARGES_LIMITER 2025-06-30 18:39:57 +02:00
Ivan Savenko
135768e763 Added TIMES_ARMY_SIZE updater 2025-06-26 15:10:55 +03:00
Ivan Savenko
6ac57a7cfc Improvements to bonus system node types / propagators
- Node type is now set on construction and never changes
- Added army propagator that also checks for TOWN and HERO
- Renamed existing propagators to be in sync with enumeration
2025-06-25 17:34:20 +03:00
Michał Zaremba
bf11b9b82a Fix callback propagation when copy-pasting objects 2025-06-15 23:47:12 +02:00
Ivan Savenko
2cd29c1893 Rework campaign bonuses storage in type-safe form
Replaced campaign bonuses from using 3 integers to store anything with
type-safe version that uses std::variant that ensures that all bonuses
are in correct state.

Also removed "interesting" solutions like storing primary skills using
bit shifts.

Prerequirement for HotA campaign support
2025-06-15 17:01:14 +03:00
Ivan Savenko
f71db8af07 Configurable Conflux University 2025-06-15 14:36:29 +03:00
Ivan Savenko
43844e2371 Merge pull request #5770 from IvanSavenko/const_bonus
Make bonus limiters/updaters/propagators const
2025-06-04 21:12:06 +03:00
Ivan Savenko
20f0b51912 Make bonus limiters/updaters/propagators const
All pointers held by bonus itself are now const.

To support OppositeSideLimiter (the only stateful limiter) bonuses now
hold their player owner instead.

No changes in functionality or mods
2025-06-03 19:39:28 +03:00
Ivan Savenko
139f41c9b2 Implement STACK_EXPERIENCE_GAIN_PERCENT bonus
Suggested on Discord

- implements STACK_EXPERIENCE_GAIN_PERCENT that modifies stack
experience received by units after combat
- removed "EXPERIENCE" primary skill. Changes to experience are now
applied through separate netpack
2025-06-02 21:21:20 +03:00
Ivan Savenko
6617d9b213 Fix game restart 2025-05-25 11:56:54 +03:00
Ivan Savenko
508c54c23a Fix game startup 2025-05-23 15:18:07 +03:00
Ivan Savenko
aa9b13b66a Statistics is now managed as part of CGameHandler 2025-05-23 14:17:42 +03:00
Ivan Savenko
8255a4b9ae CGameHandler no longer inherits CGameInfoCallback, reduce direct access
to gamestate
2025-05-23 14:17:25 +03:00
Ivan Savenko
25655184d3 Add support for custom icons & descriptions for bonuses 2025-05-21 14:57:10 +03:00
Ivan Savenko
07662a070f Merge pull request #5724 from IvanSavenko/randomization
Better randomization logic
2025-05-21 13:50:28 +03:00
Ivan Savenko
cc274c4d34 GameRandomizer is now in lib, add implementation 2025-05-19 18:51:42 +03:00
SoundSSGood
fcc9b8ecfa Artifacts discharging 2025-05-16 23:24:36 +02:00
SoundSSGood
9bbebd62e9 GrowUpArtifact pack 2025-05-16 23:20:09 +02: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
b37a3dc63c Lighthouse / flaggable objects now has dedicated bonus system node
this alows to remove multiple hacks from lighthouse logic
2025-05-14 13:42:19 +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
86b832be67 Remove CPack::applyGs method in favor of GameStatePackVisitor class 2025-05-10 17:51:35 +03:00
Ivan Savenko
62e774c91e Add new rewards for configurable objects 2025-05-06 17:28:11 +03:00
kdmcser
b8f222e7dd Update ESerializationVersion.h 2025-05-06 01:25:33 +08:00
kdmcser
5645806035 Merge branch 'develop' into crash_fix4 2025-05-06 01:20:19 +08:00