1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-08 23:36:33 +02:00

238 Commits

Author SHA1 Message Date
Ivan Savenko
ce5ee6e1df
Merge pull request #5769 from IvanSavenko/mysticism
Percentage-based mana regeneration
2025-06-04 21:11:45 +03:00
Ivan Savenko
403a7f782e
Merge pull request #5768 from IvanSavenko/skill_shortcut
Implement shortcut for hero skill specialties
2025-06-04 21:11:26 +03:00
Ivan Savenko
786324187d
Merge pull request #5767 from IvanSavenko/misc_fixes
Miscellaneous fixes
2025-06-04 21:10:22 +03:00
Ivan Savenko
eb9a5bb71b Implement shortcut for hero skill specialties
Should make changes to secondary skill bonuses less mod-breaking, and
reduce chances of incorrectly defined specialties in mods
2025-06-04 20:02:47 +03:00
Ivan Savenko
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
Ivan Savenko
2a86002aab Add missing docs 2025-06-03 15:44:59 +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
a8fdcf7823
Merge pull request #5735 from IvanSavenko/artifact_bonuses
Per-instance bonuses for artifacts
2025-05-23 16:03:59 +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
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
Ivan Savenko
3f83ad1b40
Merge pull request #5726 from IvanSavenko/breath
Configurable multi-hex attacks
2025-05-21 17:10:59 +03:00
Ivan Savenko
9787f33798 Update schema & docs 2025-05-21 14:57:10 +03:00
Ivan Savenko
550d4d76eb
Merge pull request #5730 from IvanSavenko/rewardable_creature_fix
Fix handling of creatures in configurable town buildings
2025-05-21 13:51:43 +03:00
Ivan Savenko
323231fc30
Merge pull request #5720 from SoundSSGood/artifact-charges
Charged artifacts
2025-05-21 13:49:14 +03:00
Ivan Savenko
95ce9ce509 Fix handling of creatures in configurable town buildings
- Fixed removal of partial stacks of creatures
- It is now possible to give units via town building, but only if
visitor has slots to take them
2025-05-20 22:36:20 +03:00
Ivan Savenko
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
Ivan Savenko
2cd61af276 rename field to match actual key in json 2025-05-20 14:56:22 +03:00
SoundSSGood
e85b1d4c1c suggested changes 2025-05-17 19:01:04 +02:00
SoundSSGood
051381d4db Docs 2025-05-17 15:06:09 +02:00
SoundSSGood
f614a8a7f5 Discharging conditions 2025-05-16 23:26:42 +02:00
SoundSSGood
a750adf705 Bonus type ARTIFACT_CHARGE 2025-05-16 23:20:09 +02:00
Ivan Savenko
c7228b7e50 Fix incorrect icon on removal of skill 2025-05-16 17:43:27 +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
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
Ivan Savenko
a13ab8f013
Merge pull request #5707 from IvanSavenko/dwelling_fix
Fixes for handling of oversized map dwellings
2025-05-14 11:52:40 +03:00
Ivan Savenko
ed2b9e77e4 Fix documentation on configurable map objects 2025-05-13 18:12:43 +03:00
Ivan Savenko
cb70cc48d6 Fixes for handling of oversized map dwellings
- Marked large version of H3 Unicorn's Glade as not usable for random
dwelling replacement
- Shifted oversized dwellings - that have at most 2x2 as blocked tile,
but have non-blocked tile column will now be placed correctly
- This fixes incorrect random dwelling replacement of the only oversized
H3 dwelling - Portal of Glory
- Game will now detect & report invalid dwelling templates from mods
- Updated docs to clarify dwellings format
2025-05-12 18:01:46 +03:00
Ivan Savenko
0a74992268 Fix formatting 2025-05-11 19:58:49 +03:00
Ivan Savenko
990f766254 Update & expand docs on bonus limiters & updaters 2025-05-10 19:16:51 +03:00
Ivan Savenko
a188934e12 Add basic description of battlefield layout 2025-05-10 19:12:59 +03:00
Ivan Savenko
9bf5cf42f3 Move guides to separate directory to make them easier to find 2025-05-10 19:11:30 +03:00
Ivan Savenko
754bc16e82 Fix .md formatting 2025-05-09 18:45:28 +03:00
Ivan Savenko
cf69440e9a Update docs 2025-05-09 17:26:35 +03:00
Ivan Savenko
896a7ec88e Better support for Adela specialty (+new modding functionality for it)
Fixes Adela specialty that was apparently broken back in #1518 and
replaced with logic that was clearly not tested - it was neither
functional, nor it was following H3 behavior.

- `HAS_ANOTHER_BONUS_LIMITER` now accepts `null` in place of bonus type,
for cases when limiting is needed by bonus source or bonus subtype. This
allows Adela Bless specialty to always work, irregardless of which
bonuses are provided by Bless.
- Implemented `DIVIDE_STACK_LEVEL` updater that functions same as
`TIMES_STACK_LEVEL`, but it divides bonus value, instead of multiplying
it (to make Adela specialty weaker for high-tier units, as in H3)
- Implemented `TIMES_HERO_LEVEL_DIVIDE_STACK_LEVEL` updater that
combines two existing updaters, to implement `val * heroLevel /
unitLevel` formula needed for Adela specialty
- Removed deprecated `ARMY_MOVEMENT` updater. Its functionality has
already been removed in 1.6.X releases, and it was remaining only as a
placeholder
- Updated modding documentation to account for these changes & to remove
some TODO's

Fixed regression from #777 that could led to either duplicated bonuses
or to multiple application of updaters. It introduced double-recursion -
node parents were gathered recursively, and then bonuses were also
collected recursively within each parent. This created situation where
updater could be applied different number of times. For example, hero
bonus that is propagated to unit in combat could be selected directly,
or via hero->combat unit chain, or via hero->garrison unit->combat unit
chains, leading to different calls to updaters if updater handles
garrison unit node type
2025-04-13 16:24:51 +03:00
Ivan Savenko
6247ed80d2
Merge pull request #5592 from GeorgeK1ng/mod_types
Add "Campaigns" mod type
2025-04-09 17:24:32 +03:00
George King
227ea5da08
Update docs 2025-04-07 21:03:09 +02:00
Ivan Savenko
58a6aabd4c Switch list patching to more user-friendly 1-based indexing 2025-03-30 17:18:47 +03:00
Ivan Savenko
4dc82284b4 Add docs 2025-03-30 17:12:42 +03:00
Tomasz Zieliński
9805520f3c Fix comma 2025-03-09 17:57:52 +01:00
Tomasz Zieliński
ea80cccb25 Update docs 2025-03-09 09:27:34 +01:00
Ivan Savenko
ec970c7b22 Support for configuring minimal cost for moving between tiles
- Added `movementCostBase` parameter to game config that defines minimal
amount of movement points that will be spent when moving from one tile
on another while offroad (and cost of Fly / Town Portal spells)
- Added `BASE_TILE_MOVEMENT_COST` bonus type that allows modifying
`movementCostBase` on per-hero basis

Example usage for hota-like pathfinding skill
```json
"tileCostReduction" : {
	"type" : "BASE_TILE_MOVEMENT_COST",
	"val" : -15
}
```
2025-02-03 22:52:33 +00:00
Ivan Savenko
722d68643f
Merge pull request #5306 from IvanSavenko/xbrz_foreground
[1.6.4?] Move xbrz upscaling from foreground thread to background
2025-01-25 17:23:46 +02:00
Ivan Savenko
301086d956 Support for shadow, overlay and player-colored premade images for 1x 2025-01-24 19:49:30 +00:00
Ivan Savenko
f3e690f3b2 Fix several 404 links in documentation 2025-01-23 21:01:17 +00:00
Ivan Savenko
5064f6282a Clarified docs 2025-01-19 19:43:12 +00:00
Ivan Savenko
92b2c175a7 Clarify docs on fused artifacts 2025-01-18 19:47:42 +00:00
Ivan Savenko
53d4afdae5 Enable rule to enforce specifying language for code blocks 2024-12-05 21:32:55 +00:00
Ivan Savenko
879aaba980 Use json instead of json5 for syntax highlight in docs
Looks like website only recognizes javascript & json, and is not aware
of jsonc or json5.

Will result in small regression on Github web view - comments will show
up as red (since comments are not part of json format), but syntax
highlight would work both on website and on Github.

Alternative is using javascript for syntax highlight, however syntax
highlighter for json looks better on both website and Github (since it
uses separate highlighting for json keys, separate from strings in
values)
2024-12-04 16:50:01 +00:00
Ivan Savenko
877f47e37f
Merge branch 'develop' into video 2024-12-02 13:48:30 +02:00