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
cc6f65d8da
Resolve Sonar issues in server code
2025-05-27 22:02:13 +03:00
508c54c23a
Fix game startup
2025-05-23 15:18:07 +03:00
1666a5a7e5
Prefer dynamic_cast to unsafe static_cast, fix Sonar
2025-05-23 14:17:43 +03:00
aa9b13b66a
Statistics is now managed as part of CGameHandler
2025-05-23 14:17:42 +03:00
af20b39fe6
Reduce non-const access to gamestate on server
2025-05-23 14:17:25 +03:00
8255a4b9ae
CGameHandler no longer inherits CGameInfoCallback, reduce direct access
...
to gamestate
2025-05-23 14:17:25 +03:00
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
07662a070f
Merge pull request #5724 from IvanSavenko/randomization
...
Better randomization logic
2025-05-21 13:50:28 +03:00
323231fc30
Merge pull request #5720 from SoundSSGood/artifact-charges
...
Charged artifacts
2025-05-21 13:49:14 +03:00
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
cc274c4d34
GameRandomizer is now in lib, add implementation
2025-05-19 18:51:42 +03:00
54a46b77a9
Extract library entity randomization logic to separate class
2025-05-19 18:51:42 +03:00
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
57f0c5f50c
Fix crash on spawning wandering monsters on new month
2025-05-18 11:05:13 +03:00
e85b1d4c1c
suggested changes
2025-05-17 19:01:04 +02:00
051381d4db
Docs
2025-05-17 15:06:09 +02:00
456525109e
Replaced undescriptive bool true/false with more clear enum for
...
absolute/relative change via netpacks
2025-05-16 17:21:39 +03:00
630f911cc9
Merge pull request #5713 from IvanSavenko/gamecallback_remove
...
Game callback rework (part 1?)
2025-05-16 17:19:37 +03:00
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
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
4b30336d03
Fix issues detected by Sonar
2025-05-11 19:50:57 +03:00
0e2ea99283
Implemented option to emulate H3 seer hut full-army quest bug
2025-05-07 19:16:58 +03:00
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
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
04c9e27ccd
Fix discovered bugs from develop branch
2025-04-27 15:53:03 +03:00
4e8e85e3e4
Fix issues reported by Sonar, review fixes
2025-04-27 14:57:31 +03:00
4d57a8ed36
Prefer to pass CGameState as reference instead of pointer
2025-04-27 14:57:31 +03:00
ce436bd63e
Fix regressions in combat
2025-04-27 14:57:31 +03:00
966468f3fa
Fix and simplify game saving / loading
2025-04-27 14:57:31 +03:00
912c2eae94
Fix regressions
2025-04-27 14:57:31 +03:00
f9989d9152
Cleanup serializer/deserializer code
2025-04-27 14:57:31 +03:00
93b18ee94b
Fix some issues detected by Sonar & code review, fix build
2025-04-27 14:57:31 +03:00
586620a290
Basic code review, remove unused code from serializers
2025-04-27 14:57:31 +03:00
d1d2cf4189
Fix crashes on game start, gamestate now derives from GameCallbackHolder
2025-04-27 14:57:31 +03:00
d34b47bb20
Remove pointers from artifacts
2025-04-27 14:57:31 +03:00
9e6397d1f9
Remove pointer to boat from CGHeroInstance
2025-04-27 14:57:30 +03:00
6d65641a43
Gamestate is now passed as shared pointer
2025-04-27 14:57:30 +03:00
cd7732456a
Remove pointer to objects from TerrainTile
2025-04-27 14:57:30 +03:00
63d00b080e
Removed pointer to army from StackInstance
2025-04-27 14:57:30 +03:00
c02a8a84fd
Stacks of armed instance are now unique_ptr
2025-04-27 14:57:30 +03:00
bdae7285ae
Objects list is now private member of CMap
2025-04-27 14:57:30 +03:00
745040def3
Access to heroes storage in CMap is now done via public methods
2025-04-27 14:57:30 +03:00
1f502c0548
CMap towns and heroes on map fields are now private
2025-04-27 14:57:30 +03:00
0ada2a5ebd
Map objects now use shared_ptr (game)
2025-04-27 14:57:30 +03:00
417ea6451a
Remove ConstTransitivePtr from hero and town instances
2025-04-27 14:57:30 +03:00
603672ff51
revert some changes
2025-04-07 17:00:24 +02:00
f0a9c95075
ArtInfoWindow on client. Client side
2025-04-06 13:47:32 +02:00
4609a83fc1
ArtInfoWindow on client. Lib side
2025-04-05 18:02:04 +02:00
dfbe6d1965
Merge pull request #5572 from IvanSavenko/old_banks_remove
...
Remove deprecated support for banks in 1.5 format
2025-03-26 16:45:56 +02:00