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
Michał Janiszewski
7be9aa4868
Prevent shadowing of function arguments by local vars
2018-10-29 16:56:14 +01:00
Michał Janiszewski
9822a8f2df
Catch exceptions by const-ref, not by value
2018-10-29 16:41:54 +01:00
Andrii Danylchenko
d5b26d9592
AI pathfinding: fix getPathsToTile for water tiles
2018-10-28 15:03:40 +02:00
Alexander Shishkin
bd0f8f840a
Merge pull request #497 from nullkiller/ai-pathfinder-boat
...
AI pathfinding: buy boat
2018-10-28 14:29:09 +03:00
Andrii Danylchenko
72aff02418
AI pathfinding: buy boat
2018-10-21 14:17:55 +03:00
Dydzio
1a05e41aac
BuildingManager refactoring: C++11 vector usage without helper array
2018-10-16 19:52:36 +02:00
Dydzio
e13e88bf5c
ResourceManager-compliant money saving for income buildings
2018-10-16 19:52:36 +02:00
Dydzio
b69c316409
Add possible income utility function, make capitol building errorproof
2018-10-16 19:52:36 +02:00
Dydzio
12e1e5b315
Disable building from army goals, re-fix building capitol prereqs
2018-10-16 19:52:35 +02:00
Dydzio
8c763253d2
Build fort unconditionally with high priority, no fort=no dwellings
2018-10-16 19:52:35 +02:00
Dydzio
c04bb9387f
New rule: Cannot build upgrades without fort
2018-10-16 19:52:35 +02:00
Dydzio
a00a7762b5
Fix for new pathfinder code - generate proper goals
2018-10-15 21:17:14 +02:00
Alexander Shishkin
6958f2cddf
Merge pull request #493 from dydzio0614/FuzzyEvaluationFixes
...
Fuzzy evaluation fixes
2018-10-10 22:00:14 +03:00
Dydzio
a1c0b9268e
Create artifact AI value handling
2018-10-10 15:22:15 +02:00
Dydzio
9ef0481610
object value terms rework
2018-10-10 15:18:34 +02:00
Dydzio
71a3852be4
Fix some flaws of old fuzzy engines
2018-10-10 15:18:33 +02:00
Dydzio
69e142c2b9
Change fuzzy engines activation method
2018-10-10 15:18:33 +02:00
AlexVinS
be45c8cb43
Updated C::B projects, fixed a few warnings
2018-10-10 16:07:28 +03:00
Dydzio
2a299e52a8
Add AI pathfinding to VS files
2018-10-09 12:39:57 +02:00
Andrii Danylchenko
f327c46fa3
AI pathfinding: rename and add const to functions
2018-10-07 14:51:27 +03:00
Andrii Danylchenko
cf213a5acf
#2983б #2910 and a few other bugs fixed
2018-10-06 16:35:31 +03:00
Andrii Danylchenko
49c872e4ec
AI: replace SectorMap with new PathfinderManager
2018-10-06 16:35:31 +03:00
Andrii Danylchenko
6ac987794c
AI: first rule extracted for pathfinder
2018-09-23 15:26:53 +03:00
AlexVinS
99f167a44c
AIhelper should be owned by AI instance.
2018-09-02 18:04:38 +03:00
Arseniy Shestakov
edcaaf036a
MSVC: fixes for compatibility with latest Vcpkg packages
2018-08-27 22:19:11 +03:00
AlexVinS
690b3caff0
[c::b] Updated projects
2018-08-26 19:42:41 +03:00
Dydzio
0edac2e124
update missing VS .h files
2018-08-23 17:02:09 +03:00
Dydzio
1471043cae
Update visual studio project files
2018-08-22 17:31:48 +03:00
DJWarmonger
346796f4f8
Possible fix for evaluate VisitHero (compiler optimization?)
2018-08-22 12:32:48 +02:00
DjWarmonger
5f39e92eb4
Merge branch 'develop' into VCAI_fixes
2018-08-22 08:06:13 +02:00
DJWarmonger
383c9a20af
A bunch of fixes for recent branch.
2018-08-22 07:51:35 +02:00
DjWarmonger
f484baea9f
Merge pull request #474 from vcmi/FuzzyHelperRework
...
FuzzyHelper refactoring + Ai Map Object Evaluation improvements
2018-08-22 07:33:09 +02:00
DJWarmonger
6503830bde
Important fixes:
...
- AI will not always trade resources if it has better options
- Do not use reserved objects for CollectRes
2018-08-21 13:48:19 +02:00
DJWarmonger
2f4b463459
- Fixed major bugs with building dwellings. ResourceManager doesn't support building in future turns.
...
- Tweaks for trading
2018-08-21 12:55:31 +02:00
DJWarmonger
a44c792b7c
Important fix for ClearWayTo in new branch.
2018-08-21 08:40:47 +02:00
DJWarmonger
35d2af2e7d
Simplified CollectRes - rely on VisitObj now
2018-08-20 21:31:58 +02:00
Dydzio
243ce7370a
This fixes crash... idk why
2018-08-20 15:20:47 +02:00
Dydzio
158b3c0b80
Initial implementation of invalid VisitObj removal
2018-08-20 14:43:51 +02:00
Dydzio
d41741251f
Fix VisitObj bugs / logic flaws
2018-08-19 20:41:29 +02:00
Dydzio
b1651d716f
Stupid typo fix
2018-08-19 17:11:06 +02:00
Dydzio
e197d22e68
Improve dwelling value evaluation
2018-08-16 21:17:45 +02:00
AlexVinS
de5f1461ba
Fixed https://bugs.vcmi.eu/view.php?id=2998
2018-08-12 15:02:10 +03:00
Dydzio
a7c2d03c87
Fixes
2018-08-10 20:36:42 +02:00
Dydzio
72b206347f
Split Fuzzy.cpp/h
2018-08-10 18:27:57 +02:00
Dydzio
bd3d27c79b
Leftover stuff: rename GET_OBJ
2018-08-10 16:48:42 +02:00
Dydzio
3961b4ac93
Rename GetObj->VisitObj to reflect new functionality
2018-08-10 16:45:00 +02:00
Dydzio
f2ba500e90
Autocalculate default AI value for dwellings
2018-08-10 16:36:45 +02:00
Dydzio
787f4032b4
fulfillsMe change revert, tweaks
2018-08-10 13:42:15 +02:00
AlexVinS
c4af306ceb
[c::b] Updated projects
2018-08-10 08:14:10 +03:00
Dydzio
f91c85a900
Crash fix
2018-08-10 01:04:31 +02:00
Dydzio
5065f5a104
Fixes
2018-08-10 00:33:18 +02:00
Dydzio
c0821495e5
GetObj tweak
2018-08-09 22:07:02 +02:00
Dydzio
4b776db1a2
Set destination tile in GetObj - needed for priority evaluation
2018-08-09 20:24:19 +02:00
Dydzio
fa97940b4f
Improve wander logging
2018-08-09 18:24:04 +02:00
Dydzio
ff2ac5b34b
Minor fixes
2018-08-09 18:04:49 +02:00
Dydzio
1377338a41
Restore old code line
2018-08-09 17:45:58 +02:00
Dydzio
616a6bbdf7
New object target handling in wander
2018-08-09 16:28:15 +02:00
Dydzio
41df9d8283
Move away subgoal collection logic for GetObj
2018-08-09 13:17:58 +02:00
Dydzio
2365946b62
Elementar GetObj - first attempt
2018-08-09 13:17:58 +02:00
Dydzio
e89c7eeba4
Remove incorrect destructors - fl::Engine is responsible for these
2018-08-09 13:17:57 +02:00
Dydzio
2079ae6190
Revert "use smart pointers for fl variables"
...
This reverts commit d30b76bd7b47d1bfd197e80a7b0675bd7815db03.
2018-08-09 13:17:57 +02:00
Dydzio
67439bdd36
use smart pointers for fl variables
2018-08-09 13:17:57 +02:00
Dydzio
12d750a767
Accessibility tweaks + fix some compile errors
2018-08-09 13:17:57 +02:00
Dydzio
b29d5bb001
finished FuzzyHelper logic separation
2018-08-09 13:17:57 +02:00
Dydzio
64b7c9f036
VisitTile fuzzy logic separated from FuzzyHelper
2018-08-09 13:17:57 +02:00
Dydzio
37b2dbcbba
Finish moving init functions to goal engine constructors
2018-08-09 13:17:57 +02:00
Dydzio
e33ef71882
FuzzyHelper is on diet... gotta get thinner
2018-08-09 13:17:57 +02:00
Dydzio
a8f5882a77
Initial split of classes
2018-08-09 13:17:57 +02:00
DjWarmonger
a0909468de
Merge pull request #477 from vcmi/VCAI_Rework
...
VCAI main loop rework + lots of discovered bugs and caveats fixed
2018-08-08 22:19:17 +02:00
DJWarmonger
8ec762f858
Fixed possible (?) crash in ResourceManager
2018-08-08 15:43:42 +02:00
DJWarmonger
4b602c42ff
Fix for fix, ugh.
2018-08-08 14:26:21 +02:00
DJWarmonger
d07a77f34b
- Tweaks for GatherArmy
...
- Tweaks for exploration
- Increased default priority of BuyArmy, SIGNIFICANT improvement!
2018-08-08 12:38:32 +02:00
DJWarmonger
a9ef8fe32f
- Fixed Border Gates logic
...
- VCAI may now walk onto removable objects when exploring
2018-08-08 10:52:52 +02:00
DJWarmonger
6fd403d7cf
Remove Capitol-related code, it's redundant now.
2018-08-07 18:44:03 +02:00
DJWarmonger
a827c083d8
Remove useless code
2018-08-06 21:54:17 +02:00
DJWarmonger
4d701736f9
Important changes:
...
- Fixed goal completion logic
- WIN can't be completed
2018-08-06 20:25:39 +02:00
DJWarmonger
8eec7d71ad
Little tweak - prioritize instant buildings over ones we can't afford. May be useful with multiple towns.
2018-08-06 17:42:58 +02:00
DJWarmonger
36e44adc8c
rebase
2018-08-06 10:02:59 +02:00
KasyanDiGris
46b4dcf459
Update fuzzylite because of https://github.com/fuzzylite/fuzzylite/issues/77 ( #478 )
2018-08-06 06:47:51 +03:00
DjWarmonger
2afe36ebf7
Merge pull request #476 from vcmi/SectorMapRefactor
...
Morning!
2018-08-05 06:56:24 +02:00
AlexVinS
bd23c7d909
[c::b] Updated projects
2018-08-05 06:45:07 +03:00
DJWarmonger
580fed34bb
Updated CMakeLists.txt
2018-08-04 22:00:28 +02:00
DJWarmonger
f5ba181173
Refactoring: Move SectorMap to separate file
2018-08-04 21:59:30 +02:00
DjWarmonger
f2db64af94
Merge pull request #471 from vcmi/BuildingManager
...
Building manager
2018-08-04 21:07:40 +02:00
DJWarmonger
976eeb3578
Sweet Jesus
2018-08-04 16:22:24 +02:00
DJWarmonger
4a85559d4b
Merge branch 'develop' of https://github.com/vcmi/vcmi into BuildingManager
...
# Conflicts:
# AI/VCAI/CMakeLists.txt
2018-08-04 16:09:02 +02:00
DJWarmonger
6615870045
Rebase
2018-08-04 15:59:59 +02:00
Dydzio
8a862347c4
Update VCAI VS file
2018-08-04 15:45:22 +02:00
DjWarmonger
b0e1b8c5ec
Merge pull request #465 from vcmi/AIMapObjectEvaluation
...
Okay let's see where this gets us.
2018-08-04 15:07:08 +02:00
DJWarmonger
aa9c6d3716
Cleanup
2018-08-04 13:18:05 +02:00
DJWarmonger
9e34ef5534
AI will not try to sell reserved resources.
2018-08-04 11:51:19 +02:00
DJWarmonger
2aa0a6fe2f
More fixes for trading. Seems to work now.
2018-08-04 10:20:40 +02:00
DJWarmonger
a5ca32ad38
Some checks and log for CollectRes goal.
2018-08-04 09:24:43 +02:00
Andrii Danylchenko
4141e8e7b0
[2982] AI: unexpected error in AI logic when take resource on adjasent tile
2018-08-01 21:49:15 +03:00
Dydzio
22b02ecc78
Use boost::optional "better way"
2018-07-30 15:32:55 +02:00
Dydzio
0786bd915a
remove C++17 insert_or_assign usage
2018-07-30 14:07:39 +02:00
Dydzio
123ca6c417
Update CMakeLists.txt
2018-07-30 01:39:47 +02:00
Dydzio
2288e9b8aa
Merge branch 'develop' into AIMapObjectEvaluation
2018-07-30 01:33:49 +02:00
AlexVinS
f17783cfb5
[c::b] Updated projects, applied fixes
2018-07-29 22:07:40 +03:00
Dydzio
393b25eb7f
Minor tweaks/fixes
2018-07-29 19:31:01 +02:00
Dydzio
f906d98fe5
Bugfix...
2018-07-29 16:02:18 +02:00
DJWarmonger
30f99e7cc1
Fix for Travis
2018-07-28 16:02:59 +02:00
Dydzio
d3e53bea2f
Add aiValue handling for MapObjectsEvaluator
2018-07-28 12:58:18 +02:00
DJWarmonger
70549197b6
Naah, revert my changes.
2018-07-28 09:08:53 +02:00
DJWarmonger
e7cb8d7d17
Fixed GetObj (TRADING_POST) incorrectly set to elementar.
2018-07-28 06:47:37 +02:00
DJWarmonger
a8696a9957
formatting
2018-07-27 09:22:07 +02:00
DJWarmonger
6abebeeb9f
Fixed non-const reference issue.
2018-07-27 08:10:21 +02:00
DJWarmonger
ea19716fb9
Fix for wander - AI sitting at town will buy troops.
2018-07-27 07:20:08 +02:00
DJWarmonger
301565b315
Updated CMake
2018-07-27 06:44:10 +02:00
Dydzio
df00ced204
Create fuzzy logic map object evaluation fundamentals
2018-07-27 02:28:12 +02:00
Dydzio
27541a72f5
Extract FuzzyHelper distance calculation
2018-07-27 02:21:51 +02:00
DJWarmonger
feb3459bd7
Oops restore.
2018-07-26 21:34:52 +02:00
DJWarmonger
5ce4e784c9
Final tweaks. Not going to add anything more to this PR.
2018-07-26 18:02:15 +02:00
DJWarmonger
e5b979d4ad
- ResourceManager now returns abstract goal so it can be decomposed many times
2018-07-26 16:15:37 +02:00
DJWarmonger
1450d408a2
Wandering heroes may now travel to town even if it has no army in garrison.
2018-07-26 14:37:39 +02:00
DJWarmonger
b687688f5a
Do not add duplicate objectives to GatherArmy pool (or any other, if it ever exist)
2018-07-26 13:29:46 +02:00
DJWarmonger
273802c92c
I have no idea what I'm doing
2018-07-26 12:14:29 +02:00
Dydzio
b6a171f858
Add code comments for VCAI::makeTurnInternal
2018-07-23 20:48:38 +02:00
Dydzio
13cca972d6
Add visual studio file changes in advance
2018-07-23 19:47:07 +02:00
Dydzio
1a78ea15bb
Tweaks
2018-07-22 19:53:06 +02:00
Dydzio
21c1f47a78
Fixes
2018-07-22 19:12:11 +02:00
Dydzio
2c1d91e2ff
Move object ID struct to lib
2018-07-22 18:38:45 +02:00
Dydzio
08a66abdcc
Singleton implementation fix
2018-07-21 15:42:17 +02:00
Dydzio
82da82fbeb
Polish object database, add data operations
2018-07-21 14:30:38 +02:00
Dydzio
36f501ebf3
Implement MapObjectsEvaluator as singleton utility
2018-07-21 11:28:55 +02:00
Dydzio
6a9e91b99b
Added basic interface for AI to evaluate objects
2018-07-20 21:14:57 +02:00
DJWarmonger
cae8acc56a
Clearing up the code as requested by FeniksFire
2018-07-19 20:39:37 +02:00
DJWarmonger
3d59420bb5
Minor optimisations. Also, shoter code.
2018-07-19 17:36:10 +02:00
Andrii Danylchenko
12a3c7ed33
AI - code styles and remove redundant performance optimization for explore
2018-06-24 13:30:17 +03:00
Andrii Danylchenko
2466489e13
AI - improve exploration, cancel deadends
2018-06-21 22:29:26 +03:00
Johannes 'josch' Schauer
a54e8c88a9
AI/VCAI/VCAI.cpp: Remove unused variable introduced in 2014
2018-04-19 15:15:22 +02:00
Arseniy Shestakov
25dea1a599
Code style: formatting and refactoring of VCAI code
2018-04-08 17:43:20 +07:00
Alexander Shishkin
5c09f751b3
Gui cleanup3 - UI refactoring to use smart pointers ( #440 )
...
* Changed most gui classes to use shared pointers
* Store and use IImage as shared_ptr
* CSpellWindow redesign
* AdventureMapClasses cleanup
* CLabel: store background as smart pointer
* Store CObjectList items as smart pointers
* Removed destroy function of list item
* Store toggle buttons as smart pointers
* Use CComponent as smart pointer
* Attempt to fix artifact merchant drawing
2018-04-07 18:34:11 +07:00
AlexVinS
03cfd2cb78
Do not use StackLocation in netpacks
2018-03-17 13:24:12 +08:00
AlexVinS
386805c4e0
[BattleAI] Battle magic fixes
...
* should fix https://bugs.vcmi.eu/view.php?id=2901
2018-03-01 22:18:01 +03:00
AlexVinS
166c04e2e0
Hack fixed serializer assertion by completely disabling AI goals serialization
2018-02-28 15:00:38 +08:00
AlexVinS
080a81db3a
Fixed summoned units not being removed after battle
2018-02-23 21:58:05 +03:00
Nikolay Shalakin
3795985de9
Eliminate warnings / errors. Pull request #388
2018-02-11 15:17:14 +03:00
Arseniy Shestakov
324717acbe
Spelling fixes: privilaged -> privileged, retreive -> retrieve
2018-02-10 21:52:23 +03:00
AlexVinS
0a2b04709f
Fixed https://bugs.vcmi.eu/view.php?id=2873
2018-02-09 22:12:21 +03:00
Dydzio
d4958ff5f8
update VS files to match spellrefactoring9 changes
2018-02-09 18:53:07 +01:00
AlexVinS
0b70baa95e
Spells configuration version 2 (effect-based)
...
* Indirect spell effects loading
* Json serializer improvements
* spell->canBeCastAt do not allow useless cast for any spell
* Added proxy caster class for spell-created obstacles
* Handle damage from spell-created obstacles inside mechanics
* Experimental GameState integration/regression tests
* Ignore mod settings and load only "vcmi" mod when running tests
* fixed https://bugs.vcmi.eu/view.php?id=2765 (with tests)
* Huge improvements of BattleAI regarding spell casts
* AI can cast almost any combat spell except TELEPORT, SACRIFICE and obstacle placement spells.
* Possible fix for https://bugs.vcmi.eu/view.php?id=1811
* CStack factored out to several classes
* [Battle] Allowed RETURN_AFTER_STRIKE effect on server side to be optional
* [Battle] Allowed BattleAction have multiple destinations
* [Spells] Converted limit|immunity to target condition
* [Spells] Use partial configuration reload for backward compatibility handling
* [Tests] Started tests for CUnitState
* Partial fixes of fire shield effect
* [Battle] Do HP calculations in 64 bits
* [BattleAI] Use threading for spell cast evaluation
* [BattleAI] Made AI be able to evaluate modified turn order (on hypothetical battle state)
* Implemented https://bugs.vcmi.eu/view.php?id=2811
* plug rare freeze when hypnotized unit shots vertically
* Correctly apply ONLY_MELEE_FIGHT / ONLY_DISTANCE_FIGHT for unit damage, attack & defense
* [BattleAI] Try to not waste a cast if battle is actually won already
* Extended JsonSerializeFormat API
* fixed https://bugs.vcmi.eu/view.php?id=2847
* Any unit effect can be now chained (not only damage like Chain Lightning)
** only damage effect for now actually uses "chainFactor"
* Possible quick fix for https://bugs.vcmi.eu/view.php?id=2860
2018-02-08 11:37:21 +03:00
Dydzio
38d836d1a5
Update project files to Visual Studio 2017
2018-01-13 16:33:49 +01:00
Arseniy Shestakov
da117e9255
Code style: remove void from constructors without arguments
2018-01-13 11:51:47 +03:00
Michał Kalinowski
26a222ac62
Change JsonType to enum class ( #393 )
...
Change enum JsonType to enum class JsonType
2017-11-27 00:18:18 +03:00
AlexVinS
805b5215de
Client threading tweak
2017-11-16 14:15:43 +03:00
DJWarmonger
bf20b165ec
Fix. Don't skip usual condition.
2017-11-04 22:50:11 +01:00
DJWarmonger
3eb5de9534
Fixed AI trying to visit tavern over and over.
...
TODO: AI still can't use it, anyway.
2017-11-04 22:45:19 +01:00
DJWarmonger
edc4c01805
Fixed a case when AI could spend all money on army and not build anything in secondary towns.
2017-11-04 22:14:56 +01:00
Dydzio
ea17b0f458
Major overhaul of VS related files
2017-08-19 15:58:55 +02:00
Dydzio
e3ba491fa1
Use multi-core compile by default, fix VCMI_client path
2017-08-19 13:27:24 +02:00
Arseniy Shestakov
adbfa09e31
CMake: restore some of old MinGW code and improve ENABLE_PCH option
...
- MinGW: restore DLL deploy for MXE builds
- MinGW: restore linking options for: dbghelp, mswsock, iconv, etc
- MinGW: build with -Og when Debug is used to avoid crashes / freezes
- Cotire: when ENABLE_PCH is OFF we won't include Cotire at all
- FuzzyLite: enable FORCE_BUNDLED_FL by default for Linux to avoid FL5 usage
- Remove Version.cpp from lib source list so it's won't appear in projects
- Add option ENABLE_GITVERSION to disable Version.cpp usage
2017-08-16 16:12:36 +03:00
Arseniy Shestakov
2b3a467728
CMake: structure changes and other small improvements
...
- Now cmake_minimum_required used properly and set to 2.8.12
- cmake_modules/CMakeCPackOptions.cmake.in is removed
2017-08-16 16:10:08 +03:00
Arseniy Shestakov
40af43c46e
CMake: massive rework for Mac build and other improvements
...
- macOS: RPATH-related code all removed or disabled
- macOS: new osx/CMakeLists.txt to run some install-code running after all subdirectories
- Assets copying into the runtime output directory implemented for Mac and Linux development
2017-08-16 16:10:07 +03:00
Arseniy Shestakov
193f492b99
CMake: cleanup, project generation and other improvements
...
- Use EXCLUDE_FROM_ALL for FuzzyLite and GoogleTest to avoid inclusion of unneded headers and libraries into installers.
- Set minimum CMake version only in main CMakeLists.txt
- Set project name only in main CMakeLists.txt
- Visual Studio: add assign_source_group function to generate proper filesystem tree
- Visual Studio: set PROJECT_LABEL so generated projects have same names binaries on Windows
- Visual Studio: enabled USE_FOLDERS for projects grouping. This also possibly affect other IDEs.
- Added add_subdirectory_with_folder function to make sure 3rd-party libraries are affected by USE_FOLDERS.
2017-08-16 16:10:07 +03:00
AlexVinS
43fad700b4
[C::B] updated FuzzyLite.cbp
2017-08-16 00:16:40 +03:00
Juan Rada-Vilela
7069f4b416
Upgrade to fuzzylite 6.0 as a submodule
2017-08-15 16:05:49 +03:00
AlexVinS
15138c23de
Finished conversion to new logging API
...
* removed logger streams
* (float3|int3)::operator() -> (float3|int3)::toString(), it was too ugly and confusing.
2017-08-11 23:06:27 +03:00
AlexVinS
143ff682bc
Logging cleanup
2017-08-10 21:59:55 +03:00
AlexVinS
85e952f25f
Logging cleanup 3
2017-08-10 20:17:10 +03:00
AlexVinS
61e241308d
Logging cleanup
2017-08-10 19:52:05 +03:00
ArseniyShestakov
9d9c026c85
Code style: serialize everything on own lines for easier debugging ( #357 )
2017-07-31 16:35:42 +03:00
Arseniy Shestakov
cdd9dbc7f1
Code style: avoid some ambiguous else if indentation
...
If some code intentionally want to break else if to achieve specific indentation there must be braces.
2017-07-19 03:42:26 +03:00
ArseniyShestakov
b2f74a93cf
Code style: add empty parameter list to all lambda expressions ( #345 )
2017-07-17 15:35:57 +03:00
ArseniyShestakov
b52cfe5283
Code style: use parentheses for creating heap-based objects ( #344 )
2017-07-16 12:58:05 +03:00
ArseniyShestakov
a4c0ad94b1
Code style: remove default value hints in definitions ( #342 )
...
Some are outdated and this is something IDE are useful for.
2017-07-15 14:08:20 +03:00
Dydzio
0cb6515ae8
VCAI tweaks ( #311 )
...
* Add extra priority support for town capture evaluation
* Improve building algorithm
* GatherArmy: check free gold instead of total for when hiring heroes
2017-07-15 01:15:08 +03:00
ArseniyShestakov
ea0ceb1805
Merge pull request #323 from vcmi/CStackTweaks
...
CStack tweaks
2017-07-15 00:42:08 +03:00
Arseniy Shestakov
f1e5797834
Code style: move or add licensing information on top of every file
2017-07-14 01:26:03 +03:00
Arseniy Shestakov
dbcd79c48a
Code cleanup: remove double and unneded semicolons
2017-07-12 22:01:10 +03:00
AlexVinS
bc626c2446
Fixed race condition
2017-07-12 18:26:20 +03:00
AlexVinS
4f14f22d3a
Unified CStack ammo, casts and counterattacks
...
* it is possible now to add casts and shoots OTF (f.e. with spell bonus)
Centralized stack 'ammo' loading from bonus system.
* introduced small proxy class for local bonus cache
(no need to use global cache if particular selector used on node only in one place)
* handle killing resurrected creatures
* use IBonusBearer::MaxHealth() where possible
* Fixed https://bugs.vcmi.eu/view.php?id=2486
* Possible fix for 0 HP after resurrection.
* Hack-fixed https://bugs.vcmi.eu/view.php?id=2584
* Unified CStack health API
* Use CHealth for CStack count and health points
* increased SERIALIZATION_VERSION
2017-07-08 20:29:59 +03:00
Victor Luchits
30cc2f6a01
Change the output path for cmake so all files go into the same root directory
2017-07-07 13:08:53 +03:00
Victor Luchits
30643feb66
Do not treat warnings as errors for fuzzylite
2017-07-04 03:31:13 +03:00
AlexVinS
3d1a84875e
Queries refactoring
...
* Moved SUMMON_BOAT special case to mechanics
* Partially moved Town portal logic to mechanics class
* Added generic query reply to CCallback
* Redesigned Queries so that base API do not depends on CGameHandler
* Got rid of CGameHandler::castSpellRequest
* Removed CGameHandler::castSpell
* Added new Query type for town portal dialog (not used yet)
2017-07-03 21:43:04 +03:00
AlexVinS
4f8c7bd4bb
CStack refactoring
...
* removed all occurrences of attackerOwned
* Use BattleSide enum
* more tweaks
2017-07-01 19:17:08 +03:00
Arseniy Shestakov
fb19a3a068
CMake: update all CMakeLists to include actual sources and headers
...
This make it easier to use project with newer CMake and Qt Creator.
I decided against using GLOB since we don't rename files that much.
2017-06-29 02:03:37 +03:00
FeniksFire
4113bdab01
Moving some files from lib to the battle subdirectory.
2017-06-26 15:26:08 +02:00
DJWarmonger
5a31cc831d
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
...
Trying to sort out git tree.
2017-06-16 21:49:49 +02:00
DJWarmonger
5e8fe083f2
Normalized GatherArmy evaluation.
2017-06-16 21:14:24 +02:00
AlexVinS
86f9df5f68
Made gamestate lock static
2017-06-14 07:59:41 +03:00
AlexVinS
0f5202689e
Cumulative spell effects
...
* Added experimental support for cumulative effects for ENCHANTED bonus
* Updated and fixed SPECIAL_PECULIAR_ENCHANT processing
* Initial implementation of cumulative spell effects.
* Scheme for new spell feature - cumulative bonus.
2017-06-13 21:50:50 +03:00
DJWarmonger
9623f7caf3
- Restored MSVS project files
...
- Fixed VCAI bu pointed out by Tow
2017-06-11 08:01:41 +02:00
AlexVinS
195e979a18
get rid of CBattleInfoCallback::battleCanCastThisSpell
2017-06-05 23:46:55 +03:00
AlexVinS
2cfb2e6ae0
get rid of CPlayerBattleCallback::battleCanCastThisSpell
2017-06-05 22:53:42 +03:00
AlexVinS
4d430f6ad8
get rid of CPlayerBattleCallback::battleCanCastSpell
2017-06-05 22:16:12 +03:00
AlexVinS
22e1d5d3b1
[c::b] Move FuzzyLite project up one level to be prepared to submodule use
2017-05-27 02:37:35 +03:00
AlexVinS
a85b4cf2a5
* WIP on event condition format
...
* Hero portrait serialization
* Fix town spells serialization
* Added support for float exponential part in Json
* Added support for int64 in Json
* Added basic Hero definitions serialization
* Added rumors serialization
* Advanced player info serialization.
* Added Disposed heroes serialization, (!) not covered with tests yet
* Added Local event serialization
* Added Pandoras box serialization
* Added Seer hut reward serialization
* Added CQuest serialization
* Added API for map object instance names serialization.
* Added random dwelling options serialization
* Advanced town options serialization
* Advanced hero options serialization
* More map format tests
* A lot of fixes, cleanup and refactoring
2017-05-27 00:23:19 +03:00
Fay
b5daa24982
Android support ( #299 )
...
* AI libs registering shenanigans on android;
* Fixed resolution aspect + mouse event scaling;
* Proper server init/deinit (through android IPC);
Enabled threaded init in CMT;
* Prevented a deadlock in logger on some devices;
* Fixed frozen intro frame after interrupting the video;
Added android progressbar displaying during initial data loading;
* Hacky fix for choppy animations during heroes movement (should look better now, but it's definitely not a good solution);
* Changes/fixes for new android launcher building process;
* Fixed app hang after getting SDL_QUIT when activity was destroyed;
* Functioanal, configurable advmap swiping support;
* VCMI changes cleanup;
Added few missing VCMI_ANDROID guards on swipe mechanics;
* Removed unneeded sleep in server startup code for android;
* Removed android ioapi hack (fixed in newest ndk);
* Removed unused android's library loading logic;
* Added android's swipe option to settings schema;
* Moved NO_STD_TOSTRING to be defined in global.h instead of build files;
2017-05-25 20:57:20 +03:00
FeniksFire
3de891b4b4
Moving/dividing classes from BattleState to separate files.
2017-03-17 16:48:44 +01:00
DjWarmonger
1f08878620
Merge pull request #283 from janisozaur/override
...
Add `override` keyword where applicable
2017-02-19 21:42:26 +01:00
DjWarmonger
0fdee4fde2
Merge pull request #281 from janisozaur/clang4
...
Accepted. This should be fixed in fuzzylite first, still.
2017-02-19 21:39:01 +01:00
Dydzio
3326bfc067
Naming fix
2017-02-18 21:10:59 +01:00
dydzio
a4f375d9c0
Make AI able tobuy extra buildings. Fix bug #2640
2017-02-18 18:40:44 +01:00
Michał Janiszewski
f5ebc763b4
Add override
keyword where applicable
2017-02-17 14:39:16 +01:00
Michał Janiszewski
e28f64efd2
Fix compilation with clang 4
...
See https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
for details
2017-02-17 10:00:26 +01:00
Michał Kalinowski
4d39f652bf
Making more detailed options when choosing AI in launcher: http://
...
bugs.vcmi.eu/view.php?id=2369
2017-01-17 12:34:28 +01:00
DjWarmonger
6848a52ce1
Fixed heroes not unreserving Teleports, which makes them wander around it endlessly and blocking path.
...
TODO: properly handle all Teleports as "visited" objects
2016-12-19 21:46:01 +01:00
DjWarmonger
f18d3d9844
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2016-12-15 10:55:57 +01:00
AlexVinS
374f7780ee
Fixed build.
2016-12-13 12:27:48 +03:00
DjWarmonger
01730ec98a
A little TODO
2016-12-12 22:52:18 +01:00
DjWarmonger
27ff9efd4b
Fixed #1713
2016-12-12 21:38:12 +01:00
DjWarmonger
80d5f7b4a4
Updated project files to MVS 2015 (in fact, it's trivial).
2016-12-12 19:14:45 +01:00
DjWarmonger
90d39ca2af
Fix CID 1197519
2016-12-12 19:13:43 +01:00
AlexVinS
4288bb88ae
Fixed CID 1197622.
...
* Coverity says that this line actually unreachable
2016-12-05 03:02:52 +03:00
DjWarmonger
eaf14f6429
Should fix #2624 .
2016-11-29 22:07:35 +01:00
Arseniy Shestakov
fd3992ddc9
GatherTroops: avoid crash if nearest dwelling wasn't found. Issue 2624
2016-11-29 21:57:00 +03:00
DjWarmonger
72a36b92d6
Fixed regression.
2016-11-29 18:11:52 +01:00
DjWarmonger
67d5cee05e
Fixed CID 1366402
2016-11-29 17:19:41 +01:00
DjWarmonger
81e7164ef2
Fixed CID 1366401
2016-11-29 17:12:10 +01:00
DjWarmonger
8058cb3cad
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2016-11-28 21:53:33 +01:00
DjWarmonger
ffc511054e
Do not visit Eye of The Magi.
2016-11-28 21:45:41 +01:00
AlexVinS
204ee37ae4
boost/program_options has only 2 uses, and unlikely will be used more -> removed form Global.h.
2016-11-28 21:38:17 +03:00
DjWarmonger
9b5af484b7
Fixed AI getting stuck at blockVisit objects (Tavern, Borderguards/gates etc).
2016-11-28 19:29:11 +01:00
DjWarmonger
a1b7c9d8d2
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2016-11-28 12:07:30 +01:00
AlexVinS
fd9cfa406d
Possible fix for http://bugs.vcmi.eu/view.php?id=2620
2016-11-28 04:43:09 +03:00
AlexVinS
c1fc39d9c1
Fixed CID 1366407
2016-11-28 03:51:32 +03:00
DjWarmonger
76c4ef32c2
Re-evaluate goal after hero move to make AI more consistent.
2016-11-27 18:10:20 +01:00
AlexVinS
c4ab962cc0
Fixed a few CWE-457
2016-11-27 17:48:18 +03:00
DjWarmonger
169334f877
VCAI: do not buy heroes with single creatures for GatherArmy
2016-11-26 18:03:09 +01:00
DjWarmonger
3c3b973597
Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
2016-11-26 17:41:45 +01:00
DjWarmonger
58ac31375b
Fixed CID 1197636.
2016-11-26 17:41:34 +01:00
AlexVinS
86e33a4c45
[Refactoring] Unified SetResources NetPack API.
2016-11-26 15:14:43 +03:00
DjWarmonger
a86edca7d8
Fixed CID 1288882
2016-11-25 19:54:28 +01:00
DjWarmonger
092a0c305b
MSVS project update.
2016-11-25 18:17:40 +01:00
AlexVinS
692d23e580
Fixed CID 1366376
2016-11-25 13:38:26 +03:00
AlexVinS
931656f24a
possible fix for http://bugs.vcmi.eu/view.php?id=2612
2016-11-18 14:27:20 +03:00
AlexVinS
b7b488b445
[c::b] BattleAI project updated, fixed paths
2016-11-01 21:53:46 +03:00
ArseniyShestakov
43ebfe2aa8
Merge pull request #244 from FeniksFire/develop
...
0.99 released so we can now merge this one.
2016-11-01 21:43:36 +03:00
Michał Kalinowski
18f8ca3cd0
Refactoring Battle AI.
...
Divide BattleAI on the smaller files.
2016-10-31 14:59:56 +01:00
Ivan Savenko
5b76c3f4eb
Rebase of codebase changes for refactored serializer
...
Some of newer fixes not yet merged there and save compatibility a bit off.
2016-10-27 18:12:20 +03:00
Arseniy Shestakov
cb3d6a24e7
Cmake: cleanup for commit hash in build version
...
Since it's available in lib we don't need to include it everywhere.
2016-10-27 17:01:29 +03:00
Vadim Markovtsev
da1c9cf249
Fix rebuilding everything on HEAD change
2016-10-23 16:56:53 +02:00
Vadim Markovtsev
d0beb27197
Add git commit hash into the version string
2016-10-23 15:45:47 +02:00
Vadim Markovtsev
4bcc43d3d0
Fix Mantis #2234
...
CPlayerInterface instances were removed from CClient::playerint with
clear() and finish() was not called on each. Added multiple insurance.
2016-10-22 16:22:00 +02:00
Vadim Markovtsev
63383502c3
Add the option to forcefully use bundled fuzzylite
...
cmake -DFORCE_BUNDLED_FL=TRUE ...
As requested in #231
2016-10-02 17:47:27 +02:00
Vadim Markovtsev
2c1dddde33
Fix memory problems with BonusList
...
Bonus * -> std::shared_ptr<Bonus>
This cures the following problems:
1) Memory corruption at exit. Some Bonus-es were deleted twice (mods?).
2) Memory leaks. Some Bonuses were not deleted.
3) Reduce the number of "Orphaned child" messages.
Valgrind reports 0 leaked memory now and no invalid reads/writes.
2016-09-29 15:08:00 +02:00