1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-17 01:32:21 +02:00

239 Commits

Author SHA1 Message Date
5caf43a63c Merge pull request #5900 from IvanSavenko/bonus_limiters
Bonus limiters refactoring
2025-07-09 11:12:11 +03:00
09ac0f1806 Merge pull request #5851 from Laserlicht/max_range_spell
max range for spell cast
2025-07-09 11:05:37 +03:00
3b63b837cc fix 2025-07-08 21:47:03 +02:00
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
cf32f00472 hide bonus 2025-07-08 11:59:16 +02:00
ca8cfaf0ad Merge branch 'develop' into max_range_spell 2025-07-08 11:36:23 +02:00
46072a1d60 Merge pull request #5896 from IvanSavenko/code_reorganize
Split large source files into smaller files per 1 class
2025-07-08 10:47:13 +03:00
8721bdd728 Split CCreatureSet file on .h/.cpp per class basis 2025-07-07 19:12:31 +03:00
200850f56f Add COMBAT_MANA_BONUS for Skyship 2025-07-06 15:36:51 +03:00
13a2b8781e Merge branch 'vcmi:develop' into max_range_spell 2025-07-03 23:25:06 +02:00
76debab846 HasChargesLimiter now works in "bonuses" json section 2025-06-30 18:41:22 +02:00
7f9936cf10 getSourcesForSpell 2025-06-30 18:41:20 +02:00
6752ab3a75 HAS_CHARGES_LIMITER 2025-06-30 18:39:57 +02:00
d1f9c497a3 Fix handling of bonuses with negative values 2025-06-27 12:09:28 +03:00
135768e763 Added TIMES_ARMY_SIZE updater 2025-06-26 15:10:55 +03:00
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
9bfe3a8195 max range for spellcaster 2025-06-25 15:50:31 +02:00
9c2e49f95f Fix propagation of Legion artifact pieces when hero moves out of town 2025-06-25 11:49:34 +03:00
1e3e2f665c Remove strange & unused double-selector logic 2025-06-24 12:06:23 +03:00
2d24c28996 Fix potential edge cases in TIMES_STACK_SIZE updater 2025-06-24 11:31:38 +03:00
0ebe9bd414 Fix invalidation of bonus propagation updaters 2025-06-24 11:27:34 +03:00
022b0f731c Fix configs, update docs, resolve discovered regressions 2025-06-15 14:36:29 +03:00
bbe6c415c2 Add TIMES_STACK_SIZE updater 2025-06-15 14:36:29 +03:00
9762e8493a Add TRANSMUTATION_IMMUNITY bonus 2025-06-15 14:36:29 +03:00
0e2463f9c4 Improvements to skeleton transformer logic 2025-06-15 14:36:29 +03:00
0979f409c7 Fix build 2025-06-15 14:36:29 +03:00
ab0f6ed8cd Simplified hero creature specialties logic 2025-06-15 14:36:29 +03:00
4e47894e7a Somewhat configurable spell schools 2025-06-15 14:36:29 +03:00
e0de65d56c Reworked & fixed DARKNESS bonuses and lookout tower / skyship logic 2025-06-15 14:36:29 +03:00
a305ed28bb Support for loading custom bonuses, slightly less hardcoded Skeleton
Transformer
2025-06-15 14:36:29 +03:00
51832c4fb9 Preparation for user-defined bonus types 2025-06-15 14:36:29 +03:00
527885de21 Added VULNERABLE_FROM_BACK bonus 2025-06-15 14:36:29 +03:00
ae22de3ccf Implemented configurable FEAR ability 2025-06-15 14:36:29 +03:00
342705921d remove old bonus conversion logic 2025-06-15 14:36:29 +03:00
43844e2371 Merge pull request #5770 from IvanSavenko/const_bonus
Make bonus limiters/updaters/propagators const
2025-06-04 21:12:06 +03:00
ce5ee6e1df Merge pull request #5769 from IvanSavenko/mysticism
Percentage-based mana regeneration
2025-06-04 21:11:45 +03:00
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
07dcdc1f85 Percentage-based mana regeneration
Hota-like mysticism.

Bonus FULL_MANA_REGENERATION (Wizard well) has been replaced with
MANA_PERCENTAGE_REGENERATION bonus. Wizard well now has new bonus with
100% value.
2025-06-03 19:38:54 +03:00
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
3f4ff58a5e Merged bonus names with bonus descriptions, since they are never used
separately
2025-05-25 11:56:54 +03:00
25e57542be Merge pull request #5725 from IvanSavenko/bonus_description
Custom descriptions and icons for creature abilities
2025-05-23 14:02:34 +03:00
3f83ad1b40 Merge pull request #5726 from IvanSavenko/breath
Configurable multi-hex attacks
2025-05-21 17:10:59 +03:00
25655184d3 Add support for custom icons & descriptions for bonuses 2025-05-21 14:57:10 +03:00
e90d8c318d Configurable multi-hex attacks
- Added bonus type MULTIHEX_UNIT_ATTACK - configurable version of Dragon
Breath.
- Added bonus type MULTIHEX_ENEMY_ATTACK - configurable version of
Cerberi multi-headed attack that only hits enemies
- Added bonus type MULTIHEX_ANIMATION - optional bonus that does not
affects gameplay, but allows to define in which cases game should use
alternative attack animation.
- All existing multi-hex attack bonuses other than ATTACKS_ALL_ADJACENT
are presumable deprecated, but will be supported for now.
- It is now possible to precisely configure which hexes are targeted by
MULTIHEX_XXX bonuses. See docs for details.
- Unified logic of all multi-hex attacks, all existing bonuses are now
implemented as specific case of MULTIHEX_XXX bonus
- Added tests to cover Cerberi attack logic, and fixed incorrect edge
case of Dragon Breath
2025-05-20 15:08:59 +03:00
a750adf705 Bonus type ARTIFACT_CHARGE 2025-05-16 23:20:09 +02:00
9bbebd62e9 GrowUpArtifact pack 2025-05-16 23:20:09 +02:00
1165dadfd4 Merge pull request #5701 from IvanSavenko/bonus_docs
Update documentation for bonuses and fix creature type limiter
2025-05-14 11:53:05 +03:00
f26dca2026 Merge pull request #5708 from kdmcser/limit_fix
OppositeLimiter fix and boat creation fix when loading map
2025-05-14 11:52:15 +03:00
35644da2b7 Reogranize callback-related classes on 1 file = 1 class basis 2025-05-12 22:07:09 +03:00
c464e953e2 Merge branch 'develop' into limit_fix 2025-05-13 00:59:25 +08:00