1
0
mirror of https://github.com/vcmi/vcmi.git synced 2026-05-04 20:45:35 +02:00

65 Commits

Author SHA1 Message Date
Ivan Savenko 10e9d8e3ef Fix loading of spell mastery for combat trigger bonus 2026-02-20 12:53:58 +02:00
Ivan Savenko eb7f7b5f62 Fix possible crash on spell before/after attack bonus 2026-02-12 13:20:48 +02:00
Ivan Savenko 7ac619dfba Fix crashes on accessing bonus addInfo/parameters 2026-02-09 17:46:40 +02:00
Ivan Savenko 09b144d383 Merge pull request #6802 from IvanSavenko/bonus_trigger
Support for executing actions on combat events (aka hota runes support)
2026-02-01 13:03:53 +02:00
Opuszek e3b5df9d91 Fixes TIMES_STACK_SIZE updater 2026-01-31 23:24:20 +01:00
Ivan Savenko b194856dad Implemented ON_COMBAT_EVENT bonus
Bonus allows giving unit bonuses or casting spells on multiple events in
battle, such as waiting, defending, before or after attac, etc
2026-01-27 18:25:33 +00:00
Ivan Savenko bdebf6ab8b Reworked bonus addInfo into more extensible and type-safe form
- addInfo is now named parameters internally
- CAddInfo class renamed to BonusParameters
- parameters are now stored as const shared_ptr in bonus
- parameters now contain variant of all possible types instead of just
integer array
- no changes to existing mods
2026-01-27 18:25:33 +00:00
Ivan Savenko e96fa4b9f1 Add support for testing bonus value via has another bonus limiter 2026-01-27 18:25:07 +00:00
Ivan Savenko 749f96f6e1 Allow chaining updaters or propagation updaters 2026-01-27 18:23:09 +00:00
Laserlicht 4f0e930f97 move DEITYOFFIRE to bonus 2026-01-17 14:46:15 +01:00
Ivan Savenko 519005d5af Implement UNIT_ADJACENT limiter to allow aura-like effects 2026-01-08 19:00:47 +00:00
Laserlicht 8a3a3abaf4 fix copy paste error? 2026-01-05 22:47:35 +01:00
Dydzio eec9845536 Rename bonus to ADJACENT_SPELLCASTER - more logical name 2025-12-28 17:23:55 +01:00
Dydzio bb182416fd Working basic logic 2025-12-27 23:25:06 +01:00
kdmcser 8fd44a9651 merge develop 2025-12-17 00:33:12 +08:00
kdmcser 99136ee96b fix compile 2025-12-12 00:25:55 +08:00
kdmcser 960ed73ec6 add bonus FORCE_NEUTRAL_ENCOUNTER_STACK_COUNT 2025-12-11 23:21:37 +08:00
Opuszek 8675e6e91f Allow to add terrain limiter for hero and town instances 2025-12-09 15:50:10 +01:00
Ivan Savenko 2191e51d48 Implemeted HATES_TRAIT bonus, similar to HATE, but targets any unit with
specific bonus
2025-11-02 11:09:42 +02:00
Ivan Savenko 6328e4b4f8 Merge pull request #6002 from kdmcser/opening_battle_spells
Add addInfo support for OPENING_BATTLE_SPELL to set spell level
2025-08-14 11:19:53 +03:00
kdmcser 594ae27cb5 support setting spell master level in OPENING_BATTLE_SPELLS 2025-08-11 02:13:36 +08:00
Ivan Savenko 78b39688c5 Improvements for json validation for mods
- Implemented validation for `targetCondition` in spells
- Implemented validation for `mapObject` in towns/heroes
- Fixed validation of zone connections in RMG
- Added workarounds to prevent assertions triggering on invalid mods
- Erase 'base' entries from json before validation (but after applying
them to derived keys)

Should have no effect on mod behavior/support, but may cause new
detections for mods that were broken in either 1.6 or 1.7
2025-08-05 19:40:18 +03:00
Ivan Savenko aeddeb2612 Fix loading of subtypes for HAS_ANOTHER_BONUS limiter 2025-07-14 21:04:46 +03:00
Ivan Savenko c4cb794760 Add workaround for mods that use "true" (string) instead of real bool 2025-07-14 21:04:26 +03:00
Ivan Savenko 5caf43a63c Merge pull request #5900 from IvanSavenko/bonus_limiters
Bonus limiters refactoring
2025-07-09 11:12:11 +03:00
Ivan Savenko 09ac0f1806 Merge pull request #5851 from Laserlicht/max_range_spell
max range for spell cast
2025-07-09 11:05:37 +03:00
Ivan Savenko 4af7949571 Bonus limiters refactoring
- Split massive `parseLimiter` method in smaller chunks
- Added alternative format for limiters with named parameters instead of
unclear `parameters` entry that often leads to bugs in mods. Old format
is still available.
- Added detailed validation for limiter format
- Converted vcmi json's to use new format
- Removed parameter-less `CREATURE_FACTION` and `SAME_FACTION` limiter.
They are unused in mods and have unclear use-case that can be replaced
by other limiters
- Expanded documentation on limiter types

All mods that were supported before should still be supported
2025-07-08 13:01:08 +03:00
Laserlicht cf32f00472 hide bonus 2025-07-08 11:59:16 +02:00
Laserlicht 13a2b8781e Merge branch 'vcmi:develop' into max_range_spell 2025-07-03 23:25:06 +02: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
Laserlicht 9bfe3a8195 max range for spellcaster 2025-06-25 15:50:31 +02:00
Ivan Savenko 2d24c28996 Fix potential edge cases in TIMES_STACK_SIZE updater 2025-06-24 11:31:38 +03:00
Ivan Savenko da0841dc9c Fix parsing of HAS_ANOTHER_BONUS_LIMITER parameters 2025-06-17 16:58:23 +03:00
Ivan Savenko 464865f20d Fix possible crashes on attempt to parse bonus 2025-06-15 23:54:43 +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 a842dfb3c4 Support for defining new campaign regions in mods, for hota h3c 2025-06-15 17:01:29 +03:00
Ivan Savenko 2b43d415a9 Fix docs, update spell immunity usage of addinfo, fix sonar 2025-06-15 14:37:18 +03:00
Ivan Savenko f5c037137b Fix translations, fix Sonar 2025-06-15 14:37:17 +03:00
Ivan Savenko bc48337445 Implement async requests for bonus types 2025-06-15 14:36:29 +03:00
Ivan Savenko 022b0f731c Fix configs, update docs, resolve discovered regressions 2025-06-15 14:36:29 +03:00
Ivan Savenko bbe6c415c2 Add TIMES_STACK_SIZE updater 2025-06-15 14:36:29 +03:00
Ivan Savenko d2178f8831 Simplify Necromancy code, update docs 2025-06-15 14:36:29 +03:00
Ivan Savenko e0de65d56c Reworked & fixed DARKNESS bonuses and lookout tower / skyship logic 2025-06-15 14:36:29 +03:00
Ivan Savenko 51832c4fb9 Preparation for user-defined bonus types 2025-06-15 14:36:29 +03:00
Ivan Savenko 342705921d remove old bonus conversion logic 2025-06-15 14:36:29 +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 0945654672 Give custom descriptions to unclear H3 abilities and artifacts 2025-05-25 11:56:54 +03:00
Ivan Savenko 25e57542be Merge pull request #5725 from IvanSavenko/bonus_description
Custom descriptions and icons for creature abilities
2025-05-23 14:02:34 +03:00
Ivan Savenko 6fe3666abb Fix validation of addInfo of bonuses
- Added missing docs on addInfo of some bonuses
- Unified naming in docs to match json keys
- Removed addInfo from bonuses that don't actually support it
- Added loading of addInfo to bonuses that support it
2025-05-22 19:00:18 +03:00