1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
Commit Graph

174 Commits

Author SHA1 Message Date
Ivan Savenko
aef6b0cc00 Fix several new issues detected by SonarCloud 2024-11-20 16:06:38 +00:00
kdmcser
7cb8ca174e fix crash: defender is killed by spell before attack, but attacker still do attack action 2024-11-17 01:00:23 +08:00
Ivan Savenko
d3af9f1c67 Removed pointer to VLC entity from CStackBasicDescriptor 2024-10-30 16:47:02 +00:00
Ivan Savenko
08fbcd5239 TerrainTile now uses identifiers instead of pointers to VLC 2024-10-30 16:22:11 +00:00
kodobi
3c56769b2a
Update server/battles/BattleProcessor.cpp
Co-authored-by: Dydzio <dydzio0614@users.noreply.github.com>
2024-10-17 15:21:06 +02:00
kodobi
c576438a95 Fix battle setup for sieges without forts
- Update the if statement in BattleProcessor::SetupBattle to allow
  obstacles in battlefields during sieges without forts.
- Ensure towns without forts use the native battlegrounds.
- Refactor variable name from curB to currentBattle for clarity.
2024-10-17 14:54:01 +02:00
Ivan Savenko
c0f5c7c0ea Replace pointer with reference in pack apply functions 2024-10-07 14:59:46 +00:00
Ivan Savenko
d8d652783a Fix crash on casting spell by a random spellcaster (e.g. Master Genie) 2024-10-02 11:04:40 +00:00
Ivan Savenko
19db016473
Merge pull request #4654 from dydzio0614/any-hex-shooting
Allow targeting empty hex by shooters with multi-tile SPELL_LIKE_ABILITY
2024-09-27 19:23:33 +03:00
Dydzio
1a2d349267 Initial unconditionally working version 2024-09-22 15:07:44 +02:00
Laserlicht
899d3a14a0 only blocking non positive spells; counterstrike 2024-09-21 23:50:35 +02:00
Laserlicht
735af83294 castSpellThisTurn to bool var 2024-09-18 21:24:27 +02:00
Laserlicht
0aaafc4c8a cast without skip 2024-09-14 15:10:24 +02:00
Ivan Savenko
39a2c29c97 Removed creatureBank flag from battle, battles now receive BattleLayout
struct that defines how units are placed in combat
2024-09-12 12:11:18 +00:00
Ivan Savenko
8225eb454e Added GameSettings to gamestate, potentially allowing to define game
settings per map (or in random map template)
2024-09-05 15:16:27 +00:00
Ivan Savenko
81af66d35b Move visit query to a separate class, remove no longer needed Cast.h 2024-09-04 14:32:36 +00:00
Ivan Savenko
36c1ed670f Support for configurable town fortifications
Removed most of hardcoded checks for fort level or for presence of fort/
citadel/castle buildings.

It is now possible to define which parts of town fortifications are
provided by town buildings

Configuration for H3-like fortifications is provided in
buildingsLibrary.json and will be used automatically by mods as long as
mods have buidings named "fort", "citadel" and "castle".

Alternatively, mods can separately define:
- hitpoints of walls (shared value for all sections)
- hitpoints of central, upper and lower towers (separate values)
- presence of moat
- shooters for each tower (separate values)
2024-08-28 19:42:14 +00:00
Ivan Savenko
a481f07daf PlayerState now stores all objects owned by player 2024-08-28 12:51:27 +00:00
Laserlicht
01c14ae9ce
Merge branch 'develop' into extended_statistic 2024-08-20 20:25:16 +02: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
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
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
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
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
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
Ivan Savenko
b7391f49f6 Merge branch 'vcmi/master' into 'vcmi/develop' 2024-08-05 10:36:10 +00: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
kdmcser
3c0d424958 make armageddon can effect to allied creatures in ENCHANTER bonus 2024-08-02 00:04:42 +08:00
Ivan Savenko
15f37f8c4b Fix possible crash on invalid SPELL_LIKE_ATTACK ability 2024-07-29 17:13:31 +00: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
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
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
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
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