Laserlicht
899d3a14a0
only blocking non positive spells; counterstrike
2024-09-21 23:50:35 +02:00
Ivan Savenko
292f4c8ad2
Do not process pack if it was blocked by a queryReply
...
Regression from earlier PR
2024-09-19 16:45:13 +00:00
Xilmi
7c8f4c423c
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-19 17:35:18 +02:00
Ivan Savenko
65355925e9
Merge pull request #4595 from Laserlicht/cast_without_skip
...
Bonus for spell: cast without skip the turn
2024-09-19 16:17:48 +03:00
Laserlicht
735af83294
castSpellThisTurn to bool var
2024-09-18 21:24:27 +02:00
Xilmi
27aed74397
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-18 14:52:24 +02:00
Ivan Savenko
72819d5fe3
Merge pull request #4608 from godric3/map-editor-fix-event-regressions
...
Map editor fix event regressions
2024-09-18 14:15:58 +03:00
Ivan Savenko
bff2e064fc
Wait for queries generated by town building visit to end before visiting
...
next building
2024-09-16 19:32:39 +00:00
godric3
8917c753bd
adjust town event handling after introducing 8th creature in town
2024-09-16 20:16:36 +02:00
Ivan Savenko
1d7a89c79b
Only visiting heroes can now activate manual rewardable buildings
...
- This is more clear - in case if building generates queries
- Avoids some edge cases, like what to do if building is single-use and
town has 2 heroes
- In line with hota version of this feature
2024-09-15 10:36:31 +00:00
Laserlicht
0aaafc4c8a
cast without skip
2024-09-14 15:10:24 +02:00
Xilmi
0d48b6fd19
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-12 23:48:12 +02:00
Ivan Savenko
1e74216040
Merge pull request #4580 from IvanSavenko/crashfixes
...
Fixes for crashes caused by town building changes
2024-09-12 23:12:27 +03:00
Xilmi
a1a03d4b74
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-12 14:54:39 +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
76ee49f4ec
Do not visit building on forced construction, e.g. from events
2024-09-11 16:08:49 +00:00
Ivan Savenko
40dff8ac17
Fix town visit via Town Portal not generating town visit query
2024-09-11 16:08:26 +00:00
Xilmi
065125e770
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-10 14:57:27 +02:00
Xilmi
d4ee899565
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-06 17:04:34 +02: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
6179521364
Merge pull request #4556 from IvanSavenko/town_building_visit
...
Implemented explicitly visitable town buildings, e.g. hota mana vortex
2024-09-05 17:21:21 +03:00
Ivan Savenko
a72715ad31
Merge pull request #4563 from SoundSSGood/vcmiScrolls
...
Improvements to the artifact creation
2024-09-05 17:10:13 +03:00
Xilmi
dd5a34d994
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-05 15:54:03 +02:00
SoundSSGood
7466d7452d
vcmiscrolls
2024-09-05 15:51:45 +03:00
Ivan Savenko
7a0726bcff
Apply x2 bonus only to creature growth of affected creature on new month
2024-09-04 19:46:15 +00:00
SoundSSGood
30fa2846aa
ArtifactUtils::createArtifact ArtifactUtils::createNewArtifactInstance unified
2024-09-04 21:25:55 +03:00
Ivan Savenko
b09d9d501b
Pass pointer to actual caller in showBlockingDialog callWith
...
Fixes activation of all rewardable buildings in town on blocking dialog
answer
2024-09-04 15:14:56 +00:00
Ivan Savenko
d34b4a141e
Split map object visit from town building visit. Removes side effects
...
from building visit
2024-09-04 14:54:09 +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
29f87d6407
pass object/hero parameters directly instead of passing query
2024-09-04 14:17:22 +00:00
Ivan Savenko
327ff01471
Implemented explicitly visitable town buildings, e.g. hota mana vortex
...
Added flag `manualHeroVisit` flag to town building. If this flag is set,
then building will only be activated on click and will not give its
effect on hero recrutiment, hero visit, or new day.
This allows implementing changes to Mana Vortex from HotA
2024-09-03 16:31:07 +00:00
Xilmi
5ee7061ab7
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-02 17:27:08 +02:00
Xilmi
df5d143822
Difficulty-cheats
...
Added the difficulty-dependent resource-cheats from the original game.
2024-09-01 01:33:31 +02:00
Ivan Savenko
39e5ba32f6
Merge pull request #4530 from IvanSavenko/town_fortifications
...
Support for configurable town fortifications
2024-08-31 13:59:40 +03:00
Ivan Savenko
71c7beb7a5
Merge pull request #4533 from IvanSavenko/town_growth
...
Change logic of neutral towns garrisons to match H3
2024-08-31 13:52:36 +03:00
Ivan Savenko
0a72a0a48e
Merge pull request #4534 from SoundSSGood/BulkEraseArtifacts
...
BulkEraseArtifacts network pack
2024-08-31 13:52:26 +03:00
Ivan Savenko
8cfc1c4ee1
Merge pull request #4535 from IvanSavenko/savecompat_bump
...
Removed save compatibility with 1.4
2024-08-31 13:51:10 +03:00
K
ca12750dc3
fix crash when computer player loses
...
Changing dwelling's owner to neutral accesses a PlayerState but neutrals
don't have a PlayerState and that leads to crash.
2024-08-30 11:28:56 +02:00
Ivan Savenko
82c37573fa
Removed save compatibility with 1.4
...
All save compatibility checks targeting 1.4 saves have now been removed.
Saves from 1.5 can still be loaded in 1.6
Implemeted few TODO's in serialization that were postponed to avoid
breaking save compatibility in MP for 1.5.X releases.
Fixed missed case for loading black market object from 1.5 saves
2024-08-29 18:51:53 +00:00
SoundSSGood
e15ea4fc75
BulkEraseArtifacts network pack
2024-08-29 20:22:08 +03:00
Ivan Savenko
21fc80a315
Growth of town garrison in neutral towns now uses H3 logic
2024-08-29 15:22:31 +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
a1a194d904
Allow replacing war machine if hero has a different machine in the slot
2024-08-28 13:49:42 +00:00
Ivan Savenko
8ef8ffa5c4
Implemented configurable blacksmith. Deprecated ballistaYard type
2024-08-28 13:49:42 +00:00
Ivan Savenko
e90d057296
Tweaks to fow reveal on new turn
2024-08-28 13:03:45 +00:00
Ivan Savenko
e5f1d60298
Add save compatibility
2024-08-28 13:03:44 +00:00
Ivan Savenko
37658478fa
Move timed events to NewTurnProcessor
2024-08-28 13:03:26 +00:00
Ivan Savenko
ce1e0b8875
Moved NewTurn pack generation to NewTurnProcessor
2024-08-28 13:03:24 +00:00
Ivan Savenko
10a9d777c7
Moved mana and movement points refresh to NewTurnProcessor
2024-08-28 13:03:15 +00:00
Ivan Savenko
c09c414f5a
Moved roll for week type to NewTurnProcessor
2024-08-28 13:03:15 +00:00
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