Ivan Savenko
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
Ivan Savenko
8721bdd728
Split CCreatureSet file on .h/.cpp per class basis
2025-07-07 19:12:31 +03:00
Ivan Savenko
2ad186130f
Split MapDefines file on .h per class basis
2025-07-07 18:16:42 +03:00
Ivan Savenko
200850f56f
Add COMBAT_MANA_BONUS for Skyship
2025-07-06 15:36:51 +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
SoundSSGood
1c0ef3bdf4
Captured artifacts msg fix
2025-07-02 12:57:57 +02: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
Ivan Savenko
4181514c3f
Fix incorrect movement gain from objects like Rally Flag
...
Checked all possible places that can change move points - looks like all
of them expect absolute values
2025-06-24 16:25:15 +03:00
Ivan Savenko
b5255ce8a5
Do not allow interacting with other player that is engaged in combat
...
May happen if players A and B made contact with player C (but not with
each other), and both players have attacked C at the same time on their
(still simultaneous) turn
2025-06-21 13:38:33 +03:00
Ivan Savenko
67244b64f6
Fix crash on coin flip
2025-06-21 13:38:33 +03:00
Laserlicht
cfc09389fa
Merge branch 'develop' into cheats
2025-06-19 19:05:31 +02:00
Laserlicht
7d8db1bd98
support all skills at once
2025-06-19 17:20:52 +02:00
Laserlicht
1659b225c6
add skill cheat
2025-06-19 16:52:19 +02:00
Ivan Savenko
50a207de85
Fix restoring of initial mana on restarting battle
2025-06-17 19:21:41 +03:00
Ivan Savenko
0ad4e80c7d
Rework and simplify logic of attaching heroes to bonus system
2025-06-17 14:37:25 +03:00
Ivan Savenko
4044e03c0a
Check for win/loss after removing hero from map
2025-06-16 13:23:59 +03: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
9762e8493a
Add TRANSMUTATION_IMMUNITY bonus
2025-06-15 14:36:29 +03:00
Ivan Savenko
0e2463f9c4
Improvements to skeleton transformer logic
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
a305ed28bb
Support for loading custom bonuses, slightly less hardcoded Skeleton
...
Transformer
2025-06-15 14:36:29 +03:00
Ivan Savenko
ae22de3ccf
Implemented configurable FEAR ability
2025-06-15 14:36:29 +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
ee066397c3
Stepping into an obstacle, such as moat will now prevent unit from
...
attacking
2025-05-29 11:24:24 +03:00
Ivan Savenko
cc6f65d8da
Resolve Sonar issues in server code
2025-05-27 22:02:13 +03:00
Laserlicht
043075a719
Merge branch 'vcmi:develop' into cheats
2025-05-23 20:38:11 +02:00
Ivan Savenko
508c54c23a
Fix game startup
2025-05-23 15:18:07 +03:00
Ivan Savenko
1666a5a7e5
Prefer dynamic_cast to unsafe static_cast, fix Sonar
2025-05-23 14:17:43 +03:00
Ivan Savenko
aa9b13b66a
Statistics is now managed as part of CGameHandler
2025-05-23 14:17:42 +03:00
Ivan Savenko
af20b39fe6
Reduce non-const access to gamestate on server
2025-05-23 14:17:25 +03:00
Ivan Savenko
8255a4b9ae
CGameHandler no longer inherits CGameInfoCallback, reduce direct access
...
to gamestate
2025-05-23 14:17:25 +03:00
Laserlicht
263ba46da6
Merge branch 'develop' into cheats
2025-05-22 21:33:29 +02: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
b806775f3a
Merge pull request #5727 from IvanSavenko/enchanter
...
Remove hardcoded mass-casting of ENCHANTER bonus
2025-05-21 13:52:06 +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
e769efe46a
Merge pull request #5729 from dydzio0614/gameplay-improvements
...
Gameplay improvements
2025-05-21 13:51:34 +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
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
Dydzio
ef2ff78ee8
Remove default 16 total heroes limit
2025-05-20 20:40:06 +02:00
Ivan Savenko
c2ae0559ee
Remove hardcoded mass-casting of ENCHANTER bonus
2025-05-20 16:18:44 +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
a6cf671a68
Fix sonar & json
2025-05-19 21:09:41 +03:00
Ivan Savenko
cc5f47a085
Fix inability to save game
2025-05-19 21:01:52 +03:00
Ivan Savenko
157b4fea74
Random with history for combat abilities
2025-05-19 18:51:42 +03:00
Ivan Savenko
87323f08d9
Random-with-history for luck & morale rolls
2025-05-19 18:51:42 +03:00
Ivan Savenko
cc274c4d34
GameRandomizer is now in lib, add implementation
2025-05-19 18:51:42 +03:00
Ivan Savenko
54a46b77a9
Extract library entity randomization logic to separate class
2025-05-19 18:51:42 +03:00