Tomasz Zieliński
6ae3b77d80
AI will not wait to conwuer fort if possible
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
f0bb97b0d2
AI will actually attack all heroes when possible - and win the game eventually :)
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
b52faad4c7
+ Stack speed is valuable
...
+ Hero movement is also very valuable
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
a83753a7d2
AI will now pick Prisons if possible
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
cbf2a1b7cc
AI will consider Pandora Box as a valuable object - good for every occasion!
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
faa6ca401e
Fixed duplicated value
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
f4de5453c6
+ AI will consider free slot (or lack of it) for creature reward from a bank
...
+ AI might use banks for resources other than gold
2022-09-11 11:31:27 +03:00
Nordsoft91
aaa07e4d2e
New terrain support - part 1 ( #755 )
...
Initial support of new terrains
2022-09-11 11:31:26 +03:00
Soar Qin
188607b05f
Replace cotire with CMake builtin precompiled headers support (Requires CMake version >= 3.16)
2022-06-17 17:20:08 +03:00
Soar Qin
c87df8e704
Fix warnings/errors on MSVC ( #753 )
...
* Fix warnings/errors on MSVC
1. update googletest to tag release-1.11.0 to make googletest and
googlemock compile on MSVC2022.
2. set gtest_force_shared_crt to ON in test cmake project to make tests
compile on MSVC.
3. add /wd4251 and /wd4275 to MSVC compile flags to ignore DLL related
warnings for class exports.
4. fix some other warnings and errors while compiling on MSVC2022.
2022-06-11 18:45:34 +03:00
Andrii Danylchenko
31c9d6e28d
Fix performance issue related to TurnInfo construction
2022-06-06 09:47:37 +03:00
Konstantin
8fc14369a4
CMake presets. ( #744 )
...
* CI: use single build action
* CMake: use imported targets
* CI: do not build boost for linux
* CMake: add FORCE_BUNDLED_MINIZIP option
* linux: use external minizip and fuzzylite
* CMake: add presets
* .gitignore: ignore cmake build dirs
* github: use cmake presets
2022-05-26 08:55:20 +03:00
Konstantin
c6b198ce14
Warning fix (I moved C++17 and CI to another branch) ( #739 )
...
* clang warning fixes
* use CMake 3.10 due to MXE CI does not have 3.13 yet
Co-authored-by: Konstantin <rilian@niisi.ras.ru>
2022-05-19 15:14:50 +03:00
Andrii Danylchenko
6da233c387
NullkillerAI: fix build analyser when town has no upgrade for creature
2022-05-01 10:26:07 +03:00
Andrii Danylchenko
56a1984aa8
Remove extra non-printable characters
2022-04-27 09:22:18 +03:00
val-gaav
8baa97acd3
Update VCAI.cpp
2022-04-26 15:08:02 +03:00
val-gaav
7466839182
Update AIGateway.cpp
2022-04-26 15:08:02 +03:00
Andrii Danylchenko
fa9a420f99
Fix a few crashes
2022-04-17 09:10:53 +03:00
Andrii Danylchenko
02b2f35143
Nullkiller: fix crash
2022-03-05 15:51:03 +02:00
Dmitry Orlov
ea2931c6ea
Fix: Get rid of 'Tile is not visible' error message
2022-01-30 12:31:07 +02:00
Andrii Danylchenko
84948820b2
exchange window move single stacks buttons
2022-01-03 15:13:46 +02:00
Andrey Filipenkov
af6d666778
use high_resolution_clock instead of steady_clock
2021-11-23 11:56:06 +03:00
Andrey Filipenkov
fc064b1c45
replace boost::chrono with std::chrono
2021-11-23 10:23:55 +03:00
Andrii Danylchenko
27b3a88dda
Replace App Veyor
2021-08-21 09:32:52 +03:00
Andrii Danylchenko
b00a1dee28
Fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
79d06bbaa6
Nullkiller: fix merge conflicts
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
d47564955e
Nullkiller: fix/refactor temporary bonus nodes, fix gather army quest completion
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
ae67ef027a
Nullkiller: fix old VCAI new lines
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
70ed3f55a5
Nullkiller: replace a hack with temporary bonus node concept
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3fa7e0976f
Nullkiller: update / fix build, core changes required for Nullkiller AI
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
b4241670ba
Nullkiller: rename VCAI to AIGateway
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
87a8c776c9
Nullkiller: reduce memory usage for x86
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
7184364bcb
Nullkiller: disable logging and fix tbb build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
bc95e4b935
Fix tbb build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1aa81530cb
Nullkiller: cancel heavy decomposition on shipyards
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
9a203b8af9
Nullkiller: parallel object clusterization, stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
66843b22d3
Nullkiller: async hero chain calculation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0265de77fa
Nullkiller: fix crash, refactor
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
fb3cda666f
Nullkiller: tbb and hero chain calculation optimization and parallel cpathfinder initialization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3480f17a68
Nullkiller: fix defence
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0ffc7c3b94
Nullkiller: turn limit for main heroes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1f83569868
Nullkiller: fix defence
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
b5b9619147
Nullkiller: fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
4c01a8eec4
Nullkiller: fix a few crashes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3d91f2e988
Fix defence crashes and hangs
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3dc76cfe35
Nullkiller: fix crash when buy army through pathfinder
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
45942cfbbe
Nullkiller: stabilization, fix memory leaks
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
7e88819105
Nullkiller: fix crash and freeze
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
80df879489
Nullkiller: stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
f2c26d7553
Nullkiller: thread interuption point
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0d5ae20e64
Nullkiller: improved citadel priority
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3822d788e8
Nullkiller: allow buy army through pathfinder
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
673d908c40
Nullkiller: fix crash because of incorrect memory management
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
92ac78f87d
Nullkiller: fix crash when game ends
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
f0ceaf5852
Nullkiller: improve perofrmance of AI pathfinding
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
cf4484e071
Nullkiller: stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
e385c83a88
Nullkiller - rewrite decomposition, decomposition cache, morale management
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
35a1167f3d
Nullkiller: refactoring and stabilization of gather army & clusterization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1fdf0de75d
Nullkiller: clusterization fixes, heroes clusterization for additional mains in case of locked heroes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
645c393e25
Nullkiller: fix freeze on accessing guarded object
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
5bfe71c8f3
Nullkiller: small optimization of AIPathfinder for big maps
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
07b6b0605c
Nullkiller: blind fix for unit tests to compile
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
4f51d3c929
Nullkiller: fix android
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3e9bf9b662
Nullkiller: try to fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
32fb465823
Nullkiller: stabilization+clasterization improvements+fuzzy fear
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
75b8ee74fa
Nullkiller: stabilisation after refactoring
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1806dd8447
Nullkiller: remove AIhelper + refactoring
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
f832a8b3cd
Nullkiller: calibration and small behavior fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
37f49f2ac5
Nullkiller: stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
dec723b4be
Nullkiller: android fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
e95ccda5de
Nullkiller: various fixes for town portal and other
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1a69a43f09
Nullkiller: fix border gate and garrison bypassing when owned
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0705ee595a
Nullkiller: object clusterizer
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1d4a349c2c
Nullkiller: fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
c7d35dcc6f
Nullkiller: disable decomosition for now. Very slow
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
cebb5b296b
Nullkiller: fix priorities after refactoring
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1349eff201
Nullkiller: android fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
33b499976a
Nullkiller: fixes for keymaster
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
8f8c5ca255
Nullkiller: initial decomposition
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
223a52b3d1
Nullkiller: Try to join behavior and goal and see what come out of it.
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
af0dcf97c4
Nullkiller: initial cleanup of unused code
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
5344df51c6
Nullkiller: capture guarded artifacts and other fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1fd838a5b9
Nullkiller: stabilisation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
8e4ca10365
Nullkiller: fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
6682485395
Nullkiller: fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
506ecc2ea7
Nullkiller: fix android build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
c10c1cab2c
Nullkiller: fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
9c14ccab8f
Nullkiller: fixes after first 5 autotesting maps
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
df78e3243b
Nullkiller: stabilisation, improve gather army
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
9d020be63b
Nullkiller: fix priority of townhall
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
b7b615ec70
Nullkiller: stabilisation fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
17a960e850
Nullkiller: gold preasure and turn variables for priority evaluation. Tweaking building behavior
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
a39fa51e14
Nullkiller AI: basic hill fort support and hero chain reworked to start from stronger army
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
400967904b
Nullkiller AI: stabilization of build and prioritization fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
de2361650b
Nullkiller AI: add Analyzers folder, add BuildingBehavior
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
af9261d428
NullkillerAI: Added movement cost by hero role. New priority engine looks more or less stable.
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
eea5cb7f0b
Nullkiller AI: further stabilisation, implement staged hero chain (first with limit 0 turns then 1 turn)
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
6bebb766a6
Nullkiller AI: new prioritization engine stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
b261734905
Nullkiller AI: new prioritization engine
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
66ed1a2901
Nullkiller AI: add strategical value fuzzy variable
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
e6eb9ccc03
Nullkiller: dismising and hiring hero in order to defend town
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
84e5e6ac17
Nullkiller: rework defence a bit
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1096f2e9e6
Nullkiller: town portal fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
a2ac19e4ec
Nullkiller: defence behavior
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
f44c3f2aaf
Nullkiller: improve handling of enemy hero value
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
6faac5aeca
Nullkiller: improve artifact value evaluation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
642f3a3fa4
Nullkiller: fix a few freezes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
2798dcd6c5
Nullkiller: remove PRI* print macroses
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
682707e4f1
Nullkiller: fix build and warnings
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
fdd5be1e40
Nullkiller: fix build and some warnings
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
ada76a5603
Nullkiller: fix file headers, move fuzzy config to ai folder
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1d561b9882
Nullkiller: fixes for partly visible objs
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
28b77e0b79
Nullkiller: rename fuzzy logic to .txt
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
e3c87fb58d
Nullkiller: stabilisation and fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
bcf8db3d05
Nullkiller: startup scripts
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
5fe2630c64
Nullkiller: rework prioritization, add hero roles, skills and other variables
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
531d0af95b
ai fixes for android
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
14adf1d108
AI: implement hero skills evaluator
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
01975e339b
Nullkiller: android build fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3744125270
Nullkiller: armed heros prefer armed targets
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
4bf653f596
AI: danger hitmap using visible enemy heroes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
04bf6f536d
Nullkiller: temporary hacks to allow army buying
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
286d084445
Nullkiller: better tracing and hero locking for hero chain
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
ffa626dc2f
AI: add ExecuteChain goal
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
37434dc4cf
AI: hero chain stabilisation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3ffcef30f6
AI: add army cost
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
f44eaf8132
AI: inefective chain cancellation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0e328ab3c2
AI: hero chain stabilisation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3a0d9fe14e
AI: adding towns and dwellings to hero chain
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
8961f1c803
AI: fix hero exchange logic, allow splitting weakest-fastest creature, refactoring
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
e838e70165
ai fix town portal to occupied town
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
774f531c4e
hero chain stabilisation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
87f1079c60
nullkiller&herochain stabilisation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
62e5366a08
AI: rough hero chain stabilisation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
ff57a52001
Nullkiller: hero chain stabilisation
2021-07-26 21:02:50 +03:00
AlexVinS
dd046e60be
Quick fix for https://bugs.vcmi.eu/view.php?id=3041
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
fa39279c82
Nullkiller - rough stabilisation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
cd0f479d7e
Nullkiller: rough implementation of prioritization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
eee145c486
Nullkiller: rough implementation of capture objects and recruit hero behaviors
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
9c85e26d3c
Nullkiller: add engine and activate it for blue AI only. Engine does nothing
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
a88181acd7
AI: separate hero chain recalculation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
c1e521a544
Nullkiller - rough stabilisation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
9d70b28c9b
AI: hero chain basic logic
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1e4a086bb1
AI pathfinding loss evaluation
2021-07-26 21:02:50 +03:00
AlexVinS
594d1684e9
Switch to MinGW 7.3
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0bff5f9eb6
AI pathfinding shared storage
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
be4f803d4a
Nullkiller: copy VCAI
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
9c8d776398
Merge branch 'develop' into handlersAbstraction
...
# Conflicts:
# CI/linux/before_install.sh
# CI/mac/before_install.sh
# CI/mxe/before_install.sh
# lib/CModHandler.cpp
# lib/mapObjects/CObjectClassesHandler.cpp
# lib/mapObjects/CObjectClassesHandler.h
# lib/mapObjects/CommonConstructors.cpp
# server/CGameHandler.cpp
# test/CMakeLists.txt
# test/spells/effects/TeleportTest.cpp
2021-07-16 00:32:13 +03:00
Dmitry Orlov
0e5d427dc9
Fix: VCAI should not attempt to move Spellbook
2021-04-29 00:04:22 +03:00
AlexVinS
a59e12ca5f
tweaks
2021-02-15 15:03:32 +03:00
AlexVinS
ecaa9f5d0b
Entities redesign and a few ERM features
...
* Made most Handlers derived from CHandlerBase and moved service API there.
* Declared existing Entity APIs.
* Added basic script context caching
* Started Lua script module
* Started Lua spell effect API
* Started script state persistence
* Started battle info callback binding
* CommitPackage removed
* Extracted spells::Caster to own header; Expanded Spell API.
* implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C
* !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented
* Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key)
* Re-enabled VERM macros.
* !?GM0 added
* !?TM implemented
* Added !!MF:N
* Started !?OB, !!BM, !!HE, !!OW, !!UN
* Added basic support of w-variables
* Added support for ERM indirect variables
* Made !?FU regular trigger
* !!re (ERA loop receiver) implemented
* Fixed ERM receivers with zero args.
2021-02-14 19:05:43 +03:00
Andrii Danylchenko
ade84699b0
found a bug in code where AI can change client gamestate directly causing sorting crash
2021-01-30 17:29:49 +02:00
Andrii Danylchenko
36854742e4
Fix StupidAI trying to attack through obstacle
2020-12-15 20:38:01 +02:00
Dmitry Orlov
ef6220ebec
Fix: Creature resolution failed when mod is in the custom directory
2020-12-13 03:33:28 +03:00
Andrii Danylchenko
3614330b3d
moat bypass when no targets to attack
2020-12-02 19:40:24 +02:00
Andrii Danylchenko
ea073c81d3
2184 - fix battlefield corners unreachable for 2 hex units
2020-11-28 14:14:13 +02:00
Dmitry Orlov
39de2f6435
Fix: Morale bonus should be shown correctly
2020-11-11 22:43:40 +03:00
John Bolton
c61bae4060
Fixed RETURN_IF_BATTLE(). Undid disabled warnings. Fixed indentation.
2020-10-05 16:28:28 -07:00
John Bolton
a05ae78e67
Fixed lots of warnings.
...
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.
4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
John Bolton
6d8f1e4530
Fixed incorrect usage of const std::shared_ptr. Resolves 0003142.
...
Replaced const TBonusListPtr with TConstBonusListPtr where necessary
Replaced const std::shared_ptr<T> with std::shared_ptr<const T> where necessary.
Removed superfluous use of const.
Replaced const std::shared_ptr<T> with const std::shared_ptr<T> & in function parameters and ranged for-loops.
2020-09-30 22:56:28 -07:00
Dmitry Orlov
5e0023704b
Fix PQ issues while calculating paths
2020-09-22 00:19:40 +03:00
Victor Luchits
2727958a63
Tweak Battle AI damage prioritization score logic
2020-05-23 13:38:24 +03:00
Victor Luchits
f68b449e5e
More formatting
2020-05-17 11:21:49 +03:00
Victor Luchits
b4025fa1d6
More formatting
2020-05-16 16:14:58 +03:00
Victor Luchits
d4cc005882
Address various issues pointed out by reviewers
2020-05-09 14:09:32 +03:00
Victor Luchits
59c39527c5
Formatting
2020-05-09 13:51:00 +03:00
Victor Luchits
be10694b73
Some changes to make the battle AI smarter
...
- the AI will now consider attacking multiple units
- the preferred strategy now is to minimize collateral damage rather than to maximize damage to enemy units alone
- attacks that block enemy shooters will be prioritized over other attacks in cases when shooters have weaker melee attacks
2020-05-05 17:53:03 +03:00
Jacob Lundgren
cfe33e6b6e
3117: Fix crash after AI revisits teleporter
...
** Behavioral change: Fix AI heroes sometimes attempting to probe
teleport exits using data from a previously processed hero, causing
nullptr dereferences.
VCAI::moveHeroToTile has special case logic for revisiting tiles. This
logic could cause teleport exits to be stored in
teleportChannelProbingList, without the list subsequently being
cleared. If the processing of that hero ended immediately after that,
the next hero would believe that the list is accurate for them and
attempt to teleport while not standing on a teleporter.
2020-05-01 06:33:06 +03:00
Toney Sui
dca5d86e7a
Fix bug: LandMine is not exploding to enemies. ( #630 )
...
* The reason is,
the mine has attribute hidden=true;
when enemy unit moves, the code in BattleInfo.cpp MoveUnit() (line 817) will update the revealed to true;
then in the CGameHandler.cpp handleDamageFromObstacle() (line 4846) is checking , and the condition battleIsObstacleVisibleForSide() will return true, so the effect will not be triggerred.
Resolution:
1. Remove the "revealed=true" in moveUnit(), and in handleDamageFromObstacle, remove the "const" restrict for obstacle, and then update revealed to true;
2. After the takeDamage function, add a pack "BattleObstaclesChanged" to update the obstacle to be "revealed=true".
2020-02-12 20:12:12 +03:00
Andrii Danylchenko
bdec7db528
[3085] - MapObjectEvaluator crashes on custom monolith
2019-09-13 10:33:06 +03:00
Dydzio
54550b50de
Update VS files to 2019, partially fix test project
2019-06-09 17:28:55 +02:00
Dydzio
4be4e10fe9
Fix wrong AI prison value handling
2019-06-05 23:07:22 +02:00
Alexander Shishkin
b16af04a09
Merge pull request #597 from dydzio0614/AiInterruptFix
...
Ensure no freeze on AI interruption
2019-06-03 16:53:35 +03:00
AlexVinS
1f2ee843aa
[C::B] Switched to boost shared linkage
2019-05-30 20:55:40 +03:00
Andrii Danylchenko
11af1431fb
Fix code style
...
Co-Authored-By: Alexander Shishkin <alexvins@users.noreply.github.com>
2019-05-29 22:07:10 +03:00
Andrii Danylchenko
0bd5782470
AI: blind fix for 3062
2019-05-28 09:04:31 +03:00
Dydzio
545b07b8b8
Thread interruption fixes
2019-05-26 17:55:22 +02:00
AlexVinS
cffd763bb5
[C::B] Updated projects.
2019-05-04 10:45:00 +03:00
Dydzio
e50efdc279
Creature spellcast refactor ( #569 )
...
* Move some logic to lib
* Mouse action priority queue enhancement
* Get rid of siegehandler dependency
* Improve AI offensive spellcasting
* CBattleInterface cleanup
2019-05-04 06:42:55 +03:00
Alexander Shishkin
bd11e87f6a
Merge pull request #572 from dydzio0614/FuzzyHelperCrash
...
Fix crash caused by FuzzyLite destructor
2019-04-21 22:06:53 +03:00
Andrii Danylchenko
4153ebac58
ai fixes for android
2019-04-11 14:54:48 +03:00
Michał Kalinowski
ac6b477aa2
Simplify statements
...
-Simplify return statements across the code
2019-03-31 09:43:14 +03:00
Dydzio
55b000fb64
Fix crash caused by FuzzyLite destructor
2019-03-30 19:19:36 +01:00
Michał Kalinowski
ec536e613c
CMake more transitive
...
-Moving AIs cmake to target focusing code
-Beign explicit when link libraries
2019-03-28 16:56:51 +03:00
Dydzio
94040ea8af
Update VS files (add AI armymanager)
2019-03-25 02:20:24 +03:00
Andrii Danylchenko
75ed6210c6
try fix build
2019-03-23 14:11:57 +02:00
Andrii Danylchenko
ffdf5ad180
AI: fix hero exchange logic, allow splitting weakest-fastest creature, refactoring
2019-03-17 11:54:02 +02:00
Alexander Shishkin
83094faf8e
Merge pull request #553 from nullkiller/ai-fix-town-portal-to-occupied-town
...
ai fix town portal to occupied town
2019-03-08 20:26:32 +03:00
Andrii Danylchenko
5fb5ddfc67
ai fix town portal to occupied town
2019-02-26 22:50:46 +02:00
AlexVinS
f36a86412e
Quick fix for https://bugs.vcmi.eu/view.php?id=3041
2019-02-24 18:45:53 +03:00
AlexVinS
9311966706
[C::B] Switch to MinGW 7.3
2019-02-19 14:59:10 +03:00
Andrii Danylchenko
f76c6c2300
Remove a few more usages of thread shared ai and cb
2019-02-17 14:32:42 +02:00
Alexander Shishkin
6165954e40
Merge pull request #546 from nullkiller/ai-pathfinding-update-paths
...
AI pathfinding const api and updatePaths
2019-02-14 20:33:00 +03:00
Dydzio
e6baba3ca0
Disable tactical advantage engine until rework
2019-02-13 12:01:32 +01:00
Alexander Shishkin
1e8fc51f70
Merge pull request #549 from dydzio0614/AiStackSplitImprovement
...
AI hero exchange improvement: split last creature stack
2019-02-13 00:02:31 +03:00
Dydzio
aafad18121
Style fixes
2019-02-12 19:47:19 +01:00
Dydzio
997ed6fcd0
remove legacy VisitObj goal name in AI logging
2019-02-12 18:29:42 +01:00
Dydzio
18e139d9e3
AI hero exchange improvement: split last creature stack
2019-02-12 17:20:59 +01:00
Dydzio
b492e7f3e8
Do not generate GatherArmy goal as result of GatherArmy decomposition
2019-02-11 12:46:47 +01:00
AlexVinS
1f83953da4
Partial fix for https://bugs.vcmi.eu/view.php?id=3033
2019-02-10 21:09:24 +03:00
Andrii Danylchenko
881e7f2061
AI pathfinding: use own FuzzyHelper for each storage to allow parallel processing without cuncarrent access
2019-02-10 15:25:56 +02:00
Andrii Danylchenko
675406589c
AI pathfinding calculated in parallel
2019-02-10 15:25:56 +02:00
Andrii Danylchenko
35f696b695
AI pathfinding const api and updatePaths
2019-02-10 15:25:56 +02:00
AlexVinS
b24c037129
[C::B] Updated projects
2019-02-10 04:57:06 +03:00
Arseniy Shestakov
e511ee0078
AI: fix paths after merge of #545
2019-02-09 18:46:19 +03:00
Dydzio
6c886db079
Update VS project filters
2019-02-09 13:24:43 +01:00
Andrii Danylchenko
5454848938
AI: extract pathfinding special actions and rules to separate files
2019-02-08 17:43:32 +02:00
Arseniy Shestakov
f06c8a8725
VisitObjEngine: avoid crashes if object is no longer visible
...
This really shouldn't happen, but better safe than sorry
2019-01-27 05:58:46 +03:00
Andrii Danylchenko
bf87a9774d
AI: stability fixes
2019-01-26 22:38:57 +02:00
Andrii Danylchenko
c96be75f41
AI: optimizae explore logically, reduce amount of scanned tiles during full map scan for new exploration point
2019-01-19 17:50:59 +02:00
Alexander Shishkin
b00e935e4d
Warnings fixes ( #538 )
...
Warnings fixes
* Suppress `missing-braces` for Clang
* Fixed many C4275 warnings
* Fixed almost all Clang/GCC warnings
* Silence most frequent MSVC warning.
* Fixed some pessimizing-move warnings
* Fixed some unused capture warnings
2019-01-19 13:52:02 +03:00
AlexVinS
da20aa2388
Use the same cost value in Pathfinder and fuzzy evaluations.
2019-01-17 10:54:41 +03:00
AlexVinS
4b5910c2f4
VCAI performance improvements
...
* Node graph initialization optimized.
* Fixed "Unathorized obstacle access".
* Pathfinding tracing disabled with ifdef.
* Misc bonus calculation optimizations.
* Removed timestamp from log lines. Date formatting eats too much CPU.
* Paths for all heroes in Client are now cached
2019-01-17 10:50:56 +03:00
Andrii Danylchenko
8fee46de7c
AI: town portal support
2019-01-17 10:40:23 +03:00
DJWarmonger
2e20dce71f
Fixed random hack that broke VCAI in recent commit.
2019-01-09 19:25:51 +01:00
AlexVinS
f0492ffa53
Tweaks
2019-01-08 00:49:36 +03:00
AlexVinS
f1cd4656ff
Fixed warnings.
2019-01-08 00:40:09 +03:00
AlexVinS
9ec3d2ef64
Merge remote-tracking branch 'remotes/nullkiller/ai-refactor-exploration-according-to-new-pathfinder' into develop
2019-01-08 00:25:25 +03:00
Andrii Danylchenko
8b829e1099
AI: fix crash in pathfinding
2019-01-07 22:12:59 +02:00
DjWarmonger
efc53e8f8b
Merge pull request #530 from dydzio0614/objRemovalFix
...
Extend objectRemoved callback to check parent goals and resource manager
2019-01-07 19:00:06 +01:00
Andrii Danylchenko
bdaf127976
AI: explore logical optimization
2019-01-07 14:58:12 +02:00
Andrii Danylchenko
04047d0a1a
AI: refactor explore further
2019-01-07 14:07:36 +02:00
Andrii Danylchenko
edc5abe49d
AI: tweak explore to work with new pathfinding.
2019-01-07 14:07:36 +02:00
Andrii Danylchenko
f36ac1a6e2
AI: fix one more freeze in buy army
2019-01-06 22:36:46 +02:00
Dydzio
3e1b623fb6
Refactor goal removal from resource manager queue
2019-01-01 15:41:52 +01:00
Dydzio
456132c06b
Fix code mistake
2019-01-01 14:19:52 +01:00
Dydzio
94df657d03
Check parent goals and resource manager for validity
2019-01-01 14:19:52 +01:00
Dydzio
216d50788b
Fix AI build, update default Windows SDK version for projects
2018-12-31 15:18:42 +01:00
AlexVinS
5a8416bd19
[c::b] Updated projects, fixed build
2018-12-31 00:03:31 +03:00
Andrii Danylchenko
2c401931c4
AI: fix freeze on BuyArmy
2018-12-30 16:40:05 +02:00
Andrii Danylchenko
ee5a26da60
AI: fix freeze while endlesly trying to recruit hero which is not possible anylonger.
2018-12-25 15:04:03 +02:00
Andrii Danylchenko
035d279ae8
Refactor CGHeroInstance, make spells private
2018-12-23 15:49:26 +03:00
Andrii Danylchenko
5d022ba77c
AI: CompleteQuest goal and summon boat spell support
2018-12-23 15:49:26 +03:00
DJWarmonger
e996879733
Commented out some extensive logs which slowed down pathfinder.
2018-12-16 16:12:41 +01:00
DJWarmonger
f4a8a1294e
Optimizations based on MSVS profiler.
2018-12-16 15:46:48 +01:00
Dydzio
e1c27d04b4
Update VS files to match AI goals split
2018-12-05 13:05:54 +01:00
Andrii Danylchenko
e1b922f7b8
AI goals refactoring ( #524 )
2018-12-01 11:30:37 +03:00
Alexander Shishkin
000ca1c823
Merge pull request #520 from nullkiller/freeze-in-gather-troops
...
AI: GATHER_TROOPS improvements and fixes
2018-11-17 18:46:02 +03:00
Dydzio
c3088e293a
Workaround linker bug, set higher optimization by default
2018-11-17 11:34:39 +01:00
Andrii Danylchenko
60c5f584a8
AI: GATHER_TROOPS improvements and fixes
2018-11-14 22:10:02 +02:00
Dydzio
d5063e53a0
Do not evaluate goals related to removed hero
2018-11-07 21:04:15 +01:00
Andrii Danylchenko
9a0b5a0afc
AI: fix freeze when AI has a win condition to control own town
2018-11-06 21:45:29 +02:00
Andrii Danylchenko
3871ed0085
Hero try to execute a quest to kill himself
2018-11-05 22:24:15 +02:00
Andrii Danylchenko
812df63aae
Freeze when try to bypass a few adjasent guards
2018-11-04 14:37:29 +02:00
Alexander Shishkin
064130973f
Merge pull request #514 from dydzio0614/HeroAiValueFix
...
Hero ai value fix
2018-11-03 23:34:03 +03:00
Dydzio
3e6cdb28bc
Promote no AI value message to error, shouldn't happen without mods
2018-11-03 13:03:31 +01:00
Dydzio
8ec558a2ae
Fix AI value handling for heroes
2018-11-03 12:46:02 +01:00
Dydzio
9f3d718e3b
Allow AI to be aware of invisible heroes deletion
2018-11-02 16:35:25 +01:00
Dydzio
90c7daccc5
Fix path ( #510 )
2018-10-31 00:55:34 +03:00
Alexander Shishkin
e26f6ff15f
Merge pull request #505 from janisozaur/catch-by-ref
...
Catch exceptions by const-ref, not by value
2018-10-30 05:08:30 +03:00