Ivan Savenko
020f1d1f46
Moved rumors generation to NewTurnProcessor
2024-08-28 13:03:15 +00:00
Ivan Savenko
691a1a666d
Moved most of town growth handling to NewTurnProcessor
2024-08-28 13:03:13 +00:00
Ivan Savenko
d49a61645c
All objects that can be owned by player now implement IOwnableObject
2024-08-28 12:51:28 +00:00
Ivan Savenko
a481f07daf
PlayerState now stores all objects owned by player
2024-08-28 12:51:27 +00:00
Ivan Savenko
0fd9dbf240
Unified income handling, added IOwnableObject interface
2024-08-28 12:40:44 +00:00
Ivan Savenko
189cb1c762
Moved most of daily income handling to a separate method
2024-08-28 12:40:44 +00:00
Ivan Savenko
01396b62b7
Extracted handling of type ID's from serializer into a separate class
2024-08-26 19:48:46 +00:00
Ivan Savenko
b84af1a6de
Significantly simplify packs applying
...
Apparently our logic for packs applying with types registration is
overcomplicated and by now completely unnecessary - it became redundant
after introduction of visitor pattern.
2024-08-26 19:48:46 +00:00
Ivan Savenko
11e8b04ac5
Merge pull request #4463 from SoundSSGood/IMarket-refactoring
...
IMarket refactoring
2024-08-26 22:48:23 +03:00
Ivan Savenko
3d39963a1c
Merge branch 'master' into 'develop'
2024-08-26 14:01:00 +00:00
SoundSSGood
2e3e6b1553
market->getObjInstanceID()
2024-08-21 01:01:23 +03:00
Laserlicht
01c14ae9ce
Merge branch 'develop' into extended_statistic
2024-08-20 20:25:16 +02:00
SoundSSGood
58bb2b58e3
IMarket suggestions
...
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-08-20 18:49:48 +03:00
SoundSSGood
cd7ebea9e3
cleanup unused code
2024-08-20 18:49:47 +03:00
Ivan Savenko
2f3f3c21df
Rename town building types to more clear names
2024-08-19 11:47:13 +00:00
Ivan Savenko
01a9509ccb
Remove unused code, reduce includes
2024-08-19 11:47:13 +00:00
Ivan Savenko
4ba2b95983
Fix build
2024-08-18 20:59:32 +00:00
Ivan Savenko
4e23bb4c8c
Merge pull request #4399 from kdmcser/enchanter_armageddon
...
make armageddon can effect to allied creatures in ENCHANTER bonus
2024-08-18 20:57:48 +03:00
Ivan Savenko
11ac768599
Merge pull request #4457 from mikeiit/bug_double_dialog_7_days
...
Removed Redundant Info Window
2024-08-17 12:59:47 +03:00
Mike
8a9fd79aba
Removed Redundant Info Window
...
Removed redundant warning when a human player loses the last town. #4418
2024-08-15 19:41:06 -07:00
Laserlicht
00692888df
sonar cloud fixes
2024-08-15 23:09:04 +02:00
Ivan Savenko
66d96e6ef6
Remove hardcoded check for number of heroes on map
2024-08-15 13:15:18 +00:00
Laserlicht
b240da856a
min lvl
2024-08-15 02:06:41 +02:00
Laserlicht
a42afa2910
code review
2024-08-14 21:51:08 +02:00
Laserlicht
81b1704e39
Merge branch 'vcmi:develop' into extended_statistic
2024-08-14 20:32:47 +02:00
Laserlicht
ec2163b974
add val; stat at end turn; events
2024-08-14 19:24:40 +02:00
Ivan Savenko
19838e2654
Fix auto-visit of configurable objects on new day
2024-08-14 17:04:42 +00:00
Ivan Savenko
67132b3e7f
Fixed visitation of configurable town buildings by newly recruited heroes
...
and on building construction
2024-08-14 17:03:25 +00:00
Ivan Savenko
f4a78bb31f
Merge pull request #4439 from IvanSavenko/event_timing
...
Trigger map and town events on start of player turn
2024-08-14 19:01:17 +03:00
Ivan Savenko
49c5f650f7
Merge pull request #4437 from IvanSavenko/battle_sides
...
Unified handling of battle sides ID's
2024-08-14 18:37:05 +03:00
Ivan Savenko
26fdaacbe5
Map and town events are now processed on start of player turn instead of
...
on start of new day, in line with H3
2024-08-14 14:13:50 +00:00
Ivan Savenko
5c7c4a7810
Merge pull request #4443 from IvanSavenko/fix_sonar
...
Fix miscellaneous issues discovered by Sonar
2024-08-14 17:12:27 +03:00
Ivan Savenko
38311244a4
Merge pull request #4402 from Laserlicht/8th_creature
...
support for 8th creature (Factory)
2024-08-14 17:04:32 +03:00
Laserlicht
9e9a6f1c5f
Merge branch 'develop' into extended_statistic
2024-08-13 00:49:51 +02:00
Ivan Savenko
97f1a310df
Fix miscellaneous issues discovered by Sonar
2024-08-12 18:26:30 +00:00
Laserlicht
37283e51c3
basic diagram
2024-08-12 20:14:36 +02:00
Ivan Savenko
2a05fbdd50
Unified handling of battle sides ID's
...
- Replaced BattleSide namespace-enum with enum class
- Merged two different BattleSide enum's into one
- Merged BattlePerspective enum into BattleSide enum
- Changed all places that use integers to represent battle side to use
BattleSide enum
- Added BattleSideArray convenience wrapper for std::array that is
always 2-elements in size and allows access to its elements using
BattleSide enum
2024-08-11 20:54:44 +00:00
Laserlicht
f42f1de347
extended statistic: Button and data transfer
2024-08-11 22:21:13 +02:00
Laserlicht
b4c25a148a
Merge branch 'develop' into bank_support
2024-08-09 23:36:59 +02:00
Laserlicht
5c2523219c
code review
2024-08-09 23:35:47 +02:00
Ivan Savenko
7d30b660ea
Merge pull request #4359 from Laserlicht/statistic
...
Writing some statistics and make it possible to export via csv
2024-08-09 15:31:13 +03:00
Ivan Savenko
ffb8efc415
Merge pull request #4225 from godric3/map-editor-town-configuration-improvements
...
Map editor town configuration improvements (buildings, spells, events)
2024-08-09 15:26:33 +03:00
SoundSSGood
5903b3b42c
endBattleConfirm crash fix
2024-08-08 13:57:06 +03:00
Laserlicht
e0ab760a2f
code review
2024-08-07 21:26:22 +02:00
Laserlicht
475b769eef
fix ToW
2024-08-07 01:35:50 +02:00
Laserlicht
14bcfad7b0
fix upgrade
2024-08-06 23:28:45 +02:00
Ivan Savenko
a4dd510735
Merge pull request #4358 from IvanSavenko/integer_divide
...
Add helper functions for integer division rounding
2024-08-06 18:10:03 +03:00
Laserlicht
ebeeff5aa3
abstraction layer
2024-08-05 23:51:07 +02:00
Laserlicht
3afddbbf29
replaced constant
2024-08-05 23:03:19 +02:00
Laserlicht
1a06a2cc44
basic 8th creature support
2024-08-05 21:15:47 +02:00
Ivan Savenko
b7391f49f6
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-08-05 10:36:10 +00:00
Laserlicht
47327e1642
backend
2024-08-04 17:52:40 +02:00
Laserlicht
072af5bd6d
basic support for bank
2024-08-04 15:44:57 +02:00
Laserlicht
611d5daa0f
fix missing code + movement points used
2024-08-03 20:47:20 +02:00
Laserlicht
eca04cbc54
added 5 values
2024-08-03 19:53:05 +02:00
Ivan Savenko
81e6207df0
Add helper functions for integer division rounding
...
Added set of functions that perform integer division with different
rounding modes:
- divideAndCeil - rounds up to next integer
- divideAndRound - rounds to nearest integer
- divideAndFloor - rounds to previous integer (equivalent to default
division)
Intended for use in library, where usage of floating point might lead to
desync in multiplayer games.
Replaced some cases that I knew of, including recent handicap PR
2024-08-03 13:52:14 +00:00
Laserlicht
58bfd27aad
add some stats
2024-08-02 20:40:24 +02:00
Laserlicht
80dd97364a
add additional statistic
2024-08-02 19:38:33 +02:00
kdmcser
4676817c3b
not hardcore armageddon
2024-08-03 00:49:26 +08:00
Ivan Savenko
c9b6b17422
Add more logging for weird crash on game start
2024-08-02 16:00:17 +00:00
Laserlicht
06209d2556
Merge branch 'develop' into statistic
2024-08-01 23:37:45 +02:00
Laserlicht
490f1bfee6
rework
2024-08-01 21:36:00 +02:00
Laserlicht
fb171ab3a2
statisic basic
2024-08-01 21:36:00 +02:00
kdmcser
3c0d424958
make armageddon can effect to allied creatures in ENCHANTER bonus
2024-08-02 00:04:42 +08:00
Laserlicht
f7376b8fd3
Merge branch 'vcmi:develop' into handicap
2024-07-29 23:10:20 +02:00
Laserlicht
3e5df61946
code review
2024-07-29 22:54:42 +02:00
Ivan Savenko
15f37f8c4b
Fix possible crash on invalid SPELL_LIKE_ATTACK ability
2024-07-29 17:13:31 +00:00
godric3
fa3fef8a0f
change town events to vector + use getDefaultAllowed for spells
2024-07-28 16:28:21 +02:00
Ivan Savenko
ec63f3eeac
Merge pull request #4314 from IvanSavenko/tower_target_selection
...
Implemented simple target selection logic for arrow towers
2024-07-26 14:22:13 +03:00
Laserlicht
ec005593d3
growth handicap
2024-07-25 23:04:59 +02:00
Laserlicht
6273e678a4
fix
2024-07-25 10:30:57 +02:00
Laserlicht
bfd1e8a7c8
calculate income
2024-07-25 02:51:00 +02:00
Laserlicht
268e0c8c44
change data structure
2024-07-25 00:28:49 +02:00
Laserlicht
fa7153b577
fix
2024-07-25 00:28:49 +02:00
Laserlicht
832e1531fc
handycap percent
2024-07-25 00:28:49 +02:00
Laserlicht
97f49030d2
fix
2024-07-25 00:28:49 +02:00
Laserlicht
af2b6a0051
show handicap resources
2024-07-25 00:28:49 +02:00
Laserlicht
afd580b76a
Announce handicap in welcome message
2024-07-25 00:28:34 +02:00
Laserlicht
fea491be82
multiplayer announcement
2024-07-25 00:28:33 +02:00
Laserlicht
8edf77afcc
basic handicap support
2024-07-25 00:28:01 +02:00
Ivan Savenko
37cf788079
Merge pull request #4317 from IvanSavenko/split_townhandler
...
Split CTownHandler into smaller chunks
2024-07-22 17:42:48 +03:00
Ivan Savenko
e8aa6efbb9
Merge pull request #4261 from kaja47/shrinkage
...
Reduce size of Bonus struct from 320 bytes to 296 bytes.
2024-07-22 17:12:08 +03:00
K
c1e6bbddfe
Reduce size of Bonus struct from 320 bytes to 296 bytes.
...
- Internal enums were resized to occupy single byte.
- Duration bitmask uses 16 bit integer directly instead of std::bitset<11> which consumed 8 bytes.
- Fields shuffled to minimise padding and keep the most useful data on first 2 cache lines.
2024-07-22 14:59:31 +02:00
Ivan Savenko
4aa73b40c9
Split CTownHandler into smaller chunks
2024-07-21 18:21:48 +00:00
Ivan Savenko
5bd9a32d97
Implemented simple target selection logic for arrow towers
2024-07-21 13:16:33 +00:00
Ivan Savenko
4533271692
Merge pull request #4312 from IvanSavenko/texthandler_split
...
Split CGeneralTextHandler file into 1 file per class form
2024-07-21 13:49:14 +03:00
Ivan Savenko
1aa391fdf8
Split CGeneralTextHandler file into 1 file per class form
...
All text processing code is now located in lib/texts.
No changes other than code being moved around and adjustment of includes
Moved without changes:
Languages.h -> texts/Languages.h
MetaString.* -> texts/MetaString.*
TextOperations.* -> texts/TextOperations.*
Split into parts:
CGeneralTextHandler.* -> texts/CGeneralTextHandler.*
-> texts/CLegacyConfigParser.*
-> texts/TextLocalizationContainer.*
-> texts/TextIdentifier.h
2024-07-20 12:55:17 +00:00
SoundSSGood
186c6098e8
Fix endBattleConfirm
2024-07-20 15:07:34 +03:00
Ivan Savenko
e0c6b6e3d0
Fix crash on loading saves made in 1.4/1.5
2024-07-19 13:57:06 +00:00
Ivan Savenko
2020d96070
Merge pull request #4071 from IvanSavenko/fix_rng_syncronization
...
[1.6] Fix potential desync if client uses different stdlib with different random number generators
2024-07-19 13:08:09 +03:00
Alexander Wilms
434371195d
JsonNode constructors: Take fileName as argument
...
* Don't print JSON in JsonParser::parse() in case of errors
2024-07-17 13:50:59 +02:00
Ivan Savenko
65eeceb7d7
Integrating changes from PR #4251 - allow defining seed for server
2024-07-16 15:12:02 +00:00
Ivan Savenko
1c63fefe02
Moved banks randomization to server-side with client netpack
2024-07-16 13:13:39 +00:00
Ivan Savenko
b07408e984
New objects are now created and initialized on server and sent to client
2024-07-16 13:13:39 +00:00
Ivan Savenko
d2839c8e52
Rewardable object randomization is now always server-sided
2024-07-16 13:13:39 +00:00
Ivan Savenko
5178e4842e
Moved generation of new rumors to server
2024-07-16 13:13:39 +00:00
Ivan Savenko
55bf75c43e
Remove no longer used random seeds from StartInfo
2024-07-16 13:13:39 +00:00
Ivan Savenko
0d66ddbeec
GameState now uses random generator from server. Blocked access to rmg
...
on client
2024-07-16 13:13:38 +00:00
Ivan Savenko
63bcf7d83c
Replaced most of usages of CRandomGenerator with vstd::RNG in library
2024-07-16 13:13:07 +00:00
Ivan Savenko
60a51e98de
Remove usage of std::function from CRandomGenerator
2024-07-16 13:13:07 +00:00
Ivan Savenko
ad9750ed3e
Merge pull request #4186 from SoundSSGood/end-of-battle-artifacts-transfer
...
End of battle artifacts transfer
2024-07-16 12:45:13 +03:00
Ivan Savenko
696cce7f7f
Merge pull request #4253 from smanolloff/random-port
...
Bind VCMI server to a random TCP port
2024-07-16 12:25:29 +03:00
Ivan Savenko
c00a1e1b0c
Fixed new issues detected by SonarCloud
2024-07-15 07:46:40 +00:00
Simeon Manolov
9d73b50979
Bind server to a randomly assigned port
2024-07-12 01:06:36 +03:00
Ivan Savenko
6b8f94e6e7
Merge remote-tracking branch 'vcmi/master' into develop
2024-07-11 17:43:44 +00:00
SoundSSGood
b42c6dbf44
fixed regressions
2024-07-09 14:27:05 +03:00
SoundSSGood
ef1fbffad4
ArtifactsUIController class
2024-07-09 14:27:05 +03:00
SoundSSGood
f87762bc96
endBattleConfirm
2024-07-09 14:27:04 +03:00
SoundSSGood
6dd76908bc
MoveArtifact struct not used now
2024-07-09 14:27:04 +03:00
SoundSSGood
5dbe88d9a4
End of battle BulkMoveArtifacts
2024-07-09 14:27:04 +03:00
Ivan Savenko
6300473ff8
Block AI from acting at the same time as guest-human during simturns
2024-07-08 20:57:47 +00:00
Ivan Savenko
c357fdb80d
Reveal terrain whenever hero receives a secondary skill
2024-07-08 20:56:17 +00:00
Alexander Wilms
02e429e973
Fix typos using https://github.com/crate-ci/typos
...
Changes were reviewed manually
2024-06-24 03:47:19 +02:00
Ivan Savenko
3bea383b59
Merge branch 'vcmi/beta' into 'vcmi/develop'
2024-06-21 12:58:36 +00:00
Ivan Savenko
8c63a3e4de
Running out of timer during battle will no longer force retreat
2024-06-19 19:59:06 +00:00
Ivan Savenko
2d0bd94135
Fix rmg generation if player list is not continuous
2024-06-17 13:35:58 +00:00
Ivan Savenko
3a602bd3d4
Merge pull request #4040 from MichalZr6/develop
...
Add amount of resurrected Vampires to the battle log
2024-06-12 17:35:39 +03:00
Ivan Savenko
b4c6906471
Merge branch 'vcmi/beta' into 'vcmi/develop'
2024-06-11 19:22:23 +00:00
MichalZr6
15f86c0284
Fixed issues from review
2024-06-11 16:47:23 +02:00
MichalZr6
65d22f17ae
proper logging of drained life and resurrected count
...
new struct for keeping track of healed HP (also drained life) and resurrected count
2024-06-09 23:54:20 +02:00
Ivan Savenko
106a3b6c8e
Fix self-visiting skipping battle on landing after flying above monster
2024-06-04 14:13:12 +00:00
Ivan Savenko
dcbfea018b
Fix crash on disconnecting from the game
2024-06-04 14:12:16 +00:00
Ivan Savenko
b8beb4fb13
Fixes for various minor issues detected by Sonar Cloud
2024-06-01 11:48:30 +00:00
Ivan Savenko
f39aaf2495
After-battle object visitation will now occur after levelups
2024-06-01 10:06:16 +00:00
Ivan Savenko
df83fa33a1
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-31 09:34:21 +00:00
Ivan Savenko
5ecb527252
Merge pull request #3997 from IvanSavenko/serialization_refactor
...
[1.6] Serialization refactor
2024-05-30 19:13:21 +03:00
Ivan Savenko
9e0bae96cc
Merge pull request #3895 from SoundSSGood/CWindowWithArtifacts-refactoring2
...
CWindowWithArtifacts refactoring part2
2024-05-30 19:12:39 +03:00
Ivan Savenko
888149c6f6
Implemented simple versioning system for multiplayer
2024-05-29 20:08:32 +00:00
Ivan Savenko
2fcbfd978a
Merge pull request #4049 from IvanSavenko/campaign_fix
...
[1.5.2] Campaign fixes
2024-05-29 18:14:04 +03:00
Ivan Savenko
2ff28f6957
Merge pull request #4018 from IvanSavenko/voting
...
[1.5.2?] Multiplayer voting
2024-05-29 18:13:42 +03:00
Ivan Savenko
a8b07477b4
Fix hero kill mission not registered if target hero was the attacker
2024-05-28 15:43:06 +00:00
Ivan Savenko
3afbd03089
Attempt to track down crash on battle end
2024-05-28 14:41:05 +00:00
Ivan Savenko
64ad57470c
Fix crash on applying necromancy when battle ended in a draw
2024-05-23 12:46:28 +00:00
Ivan Savenko
f8a206b0c6
Fix serialization of size_t breaking 32<->64 bit compatibility
2024-05-23 12:46:28 +00:00
Ivan Savenko
3ad618e0d8
Fix crash on bonus with invalid spell ID
2024-05-23 12:46:28 +00:00
Ivan Savenko
c85ea98519
Merge pull request #4019 from IvanSavenko/simturn_tweaks
...
[1.5.2] Simturn tweaks
2024-05-21 14:18:42 +03:00
Ivan Savenko
215b279ea8
Contact between allies will no longer break simturns
2024-05-19 20:18:14 +00:00
Ivan Savenko
e04c662bc9
Owned object in range of enemy heroes now break simturns
2024-05-19 20:03:24 +00:00
Ivan Savenko
10b50cd905
It is now possible to vote for simturns and turn timer changes
2024-05-19 18:31:32 +00:00
Ivan Savenko
8931121d2e
Merge pull request #3995 from IvanSavenko/old_projects_remove
...
[1.6] Remove old project files
2024-05-19 15:44:32 +03:00
Ivan Savenko
004e6d1fcb
Fix crash on starting random map with random number of players
2024-05-17 18:25:09 +00:00
SoundSSGood
7abfa7b42a
ArtifactPosition::TRANSITION_POS now is simple ArtSlotInfo
2024-05-17 14:59:51 +03:00
Ivan Savenko
eb67e04ccb
Remove old and unmaintained codeblocks project
2024-05-17 10:44:57 +00:00
Ivan Savenko
3f6eb13ee0
Delete old and unmaintained msvc project files
2024-05-17 10:44:11 +00:00
Ivan Savenko
721b15d9de
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-17 08:26:37 +00:00
Ivan Savenko
84bc6c42db
Added 'Serializeable' base class for classes serializeable by pointer
2024-05-16 18:40:59 +00:00
Ivan Savenko
aadbf6dd6a
Ignore duplicate disconnected calls
2024-05-16 08:03:06 +00:00
Ivan Savenko
1b1f724de1
Merge pull request #3970 from Laserlicht/extra
...
ExtraOptions improvements
2024-05-15 15:20:59 +03:00
Laserlicht
1274790023
reuse strings
2024-05-15 12:40:01 +02:00
Laserlicht
8b59b78003
Publish if cheats or unlimited replays allowed to all players
2024-05-14 22:48:32 +02:00