Ivan Savenko
3d63284c51
Extracted interface through which GameHandler interacts with VCMIServer
2025-07-19 18:04:20 +03:00
Ivan Savenko
6b382a979a
Added PackageReceived message to show when server starts pack processing
2025-07-19 18:04:20 +03:00
Ivan Savenko
1727bff1e6
Limit commander experience level to map limit
2025-07-14 21:05:49 +03:00
Ivan Savenko
8721bdd728
Split CCreatureSet file on .h/.cpp per class basis
2025-07-07 19:12:31 +03: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
0ad4e80c7d
Rework and simplify logic of attaching heroes to bonus system
2025-06-17 14:37:25 +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
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
cc6f65d8da
Resolve Sonar issues in server code
2025-05-27 22:02:13 +03: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
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
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
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
Ivan Savenko
ed8ba52ed8
Merge pull request #5722 from IvanSavenko/wandering_month_fix
...
Fix crash on spawning wandering monsters on new month
2025-05-19 14:44:58 +03:00
Ivan Savenko
57f0c5f50c
Fix crash on spawning wandering monsters on new month
2025-05-18 11:05:13 +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
Ivan Savenko
456525109e
Replaced undescriptive bool true/false with more clear enum for
...
absolute/relative change via netpacks
2025-05-16 17:21:39 +03:00
Ivan Savenko
630f911cc9
Merge pull request #5713 from IvanSavenko/gamecallback_remove
...
Game callback rework (part 1?)
2025-05-16 17:19:37 +03:00
Ivan Savenko
b09152d62a
Fix commander levelups
...
- Fixes commander not receiving experience if stack experience is off
- Fixes commander not leveling up when hero fill his secondary skills
2025-05-14 21:51:32 +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
4b30336d03
Fix issues detected by Sonar
2025-05-11 19:50:57 +03:00
Ivan Savenko
0e2ea99283
Implemented option to emulate H3 seer hut full-army quest bug
2025-05-07 19:16:58 +03:00
Ivan Savenko
283adc37d7
Unit stack rebalancing rework
...
- CStackInstance::count is now private with accessor methods
- CStackInstance::experience renamed to totalExperience and now stores
total stack experience (multiplied by stack size) to reduce rounding
errors
- CStackInstance::totalExperience is now private with accessors methods
- stack experience is now automatically reallocated on stack management
- Removed buggy BulkSmartRebalanceStacks pack, that mostly duplicates
BulkRebalanceStacks
- Renamed BulkSmartSplitStack to BulkSplitAndRebalanceStack to drop
unclear "smart" in name
- Reworked split-and-rebalance logic to correctly reallocate stack
experience
2025-05-01 18:18:30 +03:00
Ivan Savenko
f70ad2c15b
Reorganized artifact-related classes
...
- files now generally contain only 1 class (except for tightly coupled
classes)
- files are now located in lib/entities/artifact directory
- removed excessive includes
No changes to functionality
2025-04-29 13:29:08 +03:00
Ivan Savenko
04c9e27ccd
Fix discovered bugs from develop branch
2025-04-27 15:53:03 +03:00
Ivan Savenko
4e8e85e3e4
Fix issues reported by Sonar, review fixes
2025-04-27 14:57:31 +03:00
Ivan Savenko
4d57a8ed36
Prefer to pass CGameState as reference instead of pointer
2025-04-27 14:57:31 +03:00
Ivan Savenko
ce436bd63e
Fix regressions in combat
2025-04-27 14:57:31 +03:00
Ivan Savenko
966468f3fa
Fix and simplify game saving / loading
2025-04-27 14:57:31 +03:00
Ivan Savenko
912c2eae94
Fix regressions
2025-04-27 14:57:31 +03:00
Ivan Savenko
f9989d9152
Cleanup serializer/deserializer code
2025-04-27 14:57:31 +03:00
Ivan Savenko
93b18ee94b
Fix some issues detected by Sonar & code review, fix build
2025-04-27 14:57:31 +03:00
Ivan Savenko
586620a290
Basic code review, remove unused code from serializers
2025-04-27 14:57:31 +03:00
Ivan Savenko
d1d2cf4189
Fix crashes on game start, gamestate now derives from GameCallbackHolder
2025-04-27 14:57:31 +03:00
Ivan Savenko
d34b47bb20
Remove pointers from artifacts
2025-04-27 14:57:31 +03:00
Ivan Savenko
9e6397d1f9
Remove pointer to boat from CGHeroInstance
2025-04-27 14:57:30 +03:00