Xilmi
663ca23f6f
Army-hiring
...
Supressing hiring army on turn one seems just bad. Starting the main-hero as strong as possible seems like a good idea to me and hiring the available troops outright will help achieve that goal.
However, if there's a hero for hire, who has army with him that is a better deal, we hire that one first.
2024-07-12 15:41:55 +02:00
Xilmi
fdaac9d3c3
Hero-hiring
...
When we have no hero, we will definitely want to hire one.
We will also want to hire heroes who already pay for more than themselves by coming with an army that has more value than the hero costs.
2024-07-12 15:39:50 +02:00
Xilmi
3fed58c47b
Gold-pressure
2024-07-12 15:36:29 +02:00
Ivan Savenko
6b8f94e6e7
Merge remote-tracking branch 'vcmi/master' into develop
2024-07-11 17:43:44 +00:00
Xilmi
98415e98da
Spellcasting-bug-fix
...
Fixed a bug that prevented the AI from using spells when attacking an enemy settlement that has towers.
The bug was caused by noticing how greatly effective spells would be against towers but not being able to actually target them.
By skipping invalid targets, this no longer is an issue.
2024-07-10 14:36:35 +00:00
Xilmi
073c5bee45
Spellcasting fixes
...
Allowed the AI to cast spells that are aimed at a location instead of a unit. For example meteor shower.
Fixed an issue that caused the AI to not kill unit-stacks with spells due to only considering stacks where at least one unit survives in it's score-calculations.
2024-07-10 02:40:42 +02:00
Xilmi
13bbb573bd
Spellcasting-bug-fix
...
Fixed a bug that prevented the AI from using spells when attacking an enemy settlement that has towers.
The bug was caused by noticing how greatly effective spells would be against towers but not being able to actually target them.
By skipping invalid targets, this no longer is an issue.
2024-07-09 22:55:39 +02:00
Ivan Savenko
e42285c2f1
Merge pull request #4240 from IvanSavenko/bugfixing
...
[1.5.4] Bugfixing
2024-07-09 14:32:24 +03:00
Tomasz Zieliński
5eabadd7db
Use vstd
2024-07-09 06:50:00 +02:00
Tomasz Zieliński
bfa93be765
Limit predicted damage / loses to actual stack health
2024-07-09 06:39:41 +02:00
Ivan Savenko
7445e950ba
Replace uint64_t with signed type to prevent overflow on substraction
2024-07-08 20:52:11 +00:00
Xilmi
94e5b5519c
Fixed AI constantly visiting towns thinking they can get a huge upgrade
...
Due to morale-considerations the AI sometimes calculated that their strongest army after doing an exchange had slightly lower total value than the army they used before.
But by using unsigned "slightly lower" became near infinite.
So they constantly wanted to upgrade their army because they considered it more useful than anything else.
Changing the unsigned into signed fixes this.
2024-07-08 16:53:14 +02:00
Xilmi
d4308c2ce4
Merge branch 'fixes_only' into develop
2024-07-07 22:52:03 +02:00
Xilmi
a72d23ed8d
Debug-Info
...
Added some debug-info and non-fuzzy-specific-priority-cutoff.
2024-07-07 22:51:50 +02:00
Xilmi
7b407b6432
AI-variant without fuzzy-logic
...
It is now possible to switch to an AI-variant that uses hand-written heuristics for decision-making rather than the FuzzyLite-engine. This is configurable in nkai-settings.json via the new parameter "useFuzzy".
2024-07-07 22:44:52 +02:00
Xilmi
e0a81b3e69
Fixed AI-exploration-data being lost after loading savegame
...
The information of whether objects like a redwood-observatory or subterranian gates have been interacted with by the AI will now be retrieved from the game-state instead of using an AI-internal memory that won't survive loading a save-game.
2024-07-07 22:08:19 +02:00
Andrii Danylchenko
1be36e1ad4
NKAI: rewardables
2024-07-07 21:58:39 +03:00
Xilmi
54c6d99de3
Using only one bucket
...
Nullkiller suggested that this change would help to further fix inconsistent behavior by the AI. I tested it and it did indeed fix different orders of how AI does things.
"Important to make count 1 to not relay on object addresses
They are source of random" - Nullkiller
2024-07-07 15:17:38 +02:00
Xilmi
734f815e67
Sorting tasks after buildPlan
...
Tasks need to be sorted again after buildPlan as otherwise the correct order isn't guaranteed. This led to inconsistent behavior by the AI.
2024-07-07 15:12:05 +02:00
Ivan Savenko
b5c36958a9
Workaround for very slow boat summon tests
2024-07-04 19:56:01 +00:00
Ivan Savenko
41ed7e2e10
Added TODO's for potential optimizations that I've discovered
2024-07-04 07:59:50 +00:00
Ivan Savenko
075582910a
Less CPU intensive version of ExplorationHelper::scanMap method
2024-07-04 07:53:25 +00:00
Ivan Savenko
73fdd12581
Use optimized container without dynamic memory allocations
2024-07-03 21:15:40 +00:00
Ivan Savenko
1468abb8a0
Remove excessive copies of large objects
2024-07-03 21:14:22 +00:00
Ivan Savenko
95d8e447b2
Remove access to text translation system from AI
2024-07-03 21:13:55 +00:00
Ivan Savenko
40f17d654d
Use containers with pre-allocations to improve pathfinding speed
2024-07-03 18:06:56 +00:00
Ivan Savenko
24b77b0972
Remove access to hero name translation
2024-07-03 17:01:38 +00:00
Alexander Wilms
02e429e973
Fix typos using https://github.com/crate-ci/typos
...
Changes were reviewed manually
2024-06-24 03:47:19 +02:00
Alexander Wilms
820b1b446e
Fix typo: TowmPortalFinder -> TownPortalFinder
2024-06-23 22:40:15 +02:00
Ivan Savenko
3bea383b59
Merge branch 'vcmi/beta' into 'vcmi/develop'
2024-06-21 12:58:36 +00:00
Ivan Savenko
0e4be8c776
Fix crash on sieging Citadel or Castle
2024-06-19 19:59:06 +00:00
Ivan Savenko
a9cf322f61
Merge pull request #4161 from vcmi/fix-4142
...
#4142 - sometimes Battle AI wants to attack unit which is behind a lo…
2024-06-19 21:28:58 +03:00
Andrii Danylchenko
fc32078a3a
#4142 - sometimes Battle AI wants to attack unit which is behind a lot of obstackles and other units
2024-06-18 20:03:07 +03:00
Ivan Savenko
8e68c7dcd8
Merge pull request #4144 from vcmi/fix-4139
...
#4139 - attempt to fix crash on portal probbing
2024-06-18 12:07:24 +03:00
Ivan Savenko
b7efa6c8cc
Fixed potential thread races in Battle AI
2024-06-17 16:15:19 +00:00
Ivan Savenko
431b2865a4
Review fixes
2024-06-17 09:43:22 +00:00
Andrii Danylchenko
cd4aaf93ee
#4139 - attempt to fix crash on portal probbing
2024-06-16 11:58:15 +03:00
Ivan Savenko
e699941a39
Disable logic that seems to be leading to thread races
2024-06-12 18:17:23 +00:00
Ivan Savenko
e32b6bd807
Fix potentially uninitialized members
2024-06-12 18:10:38 +00:00
Ivan Savenko
b4c6906471
Merge branch 'vcmi/beta' into 'vcmi/develop'
2024-06-11 19:22:23 +00:00
Ivan Savenko
9c05e80315
Fix Admiral's Hat whirlpool immunity. Reduce usage of
...
convertFromVisitablePos
2024-06-11 14:31:11 +00:00
Ivan Savenko
b8beb4fb13
Fixes for various minor issues detected by Sonar Cloud
2024-06-01 11:48:30 +00:00
Andrii Danylchenko
7bf047ff18
#4066 - fix exploration
2024-06-01 13:13:51 +03:00
Andrii Danylchenko
9728413742
NKAI: fix dead end cancellation
2024-06-01 12:25:23 +03:00
Ivan Savenko
df83fa33a1
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-31 09:34:21 +00:00
Ivan Savenko
5d6470e527
Merge pull request #4025 from IvanSavenko/shared_ptr_lib
...
[1.6] Use shared_ptr for library entities
2024-05-30 19:14:06 +03:00
Ivan Savenko
5ecb527252
Merge pull request #3997 from IvanSavenko/serialization_refactor
...
[1.6] Serialization refactor
2024-05-30 19:13:21 +03:00
Andrii Danylchenko
02ea497951
NKAI: speedup exploration a bit
2024-05-22 22:49:11 +03:00
Andrii Danylchenko
820f0e0c1a
NKAI: port exploration from VCAI
2024-05-20 23:50:13 +03:00
Andrii Danylchenko
5b7e355953
Merge pull request #4009 from vcmi/nkai-exploration
...
NKAI: port exploration from VCAI
2024-05-20 23:44:12 +03:00
Andrii Danylchenko
1388fb1493
NKAI: port exploration from VCAI
2024-05-20 22:43:23 +03:00
Ivan Savenko
ffe14fc1fc
Merge pull request #4022 from vcmi/master
...
Merge master -> beta
2024-05-20 18:09:51 +03:00
Ivan Savenko
8931121d2e
Merge pull request #3995 from IvanSavenko/old_projects_remove
...
[1.6] Remove old project files
2024-05-19 15:44:32 +03:00
Ivan Savenko
9bfe000724
Added semi-workaround method for network thread shutdown:
...
Currently closing game while network thread is waiting for something is
very bug-prone, since network thread may resume during shutdown and
access partially destroyed client state.
Now if exit has been requested, the very first step would be semi-
graceful shutdown of network thread (via exception throwing). This may
in theory skip some cleanup in non-RAII code, but since game is shutting
down this does not matters much.
This logic applies to:
- shutting down while network thread is waiting for dialogs
- shuttind down while network thread waiting for animations in combat
2024-05-18 11:04:10 +00:00
Ivan Savenko
f3de2cfe1c
Removed broken & unused serialization of player interface and AI
2024-05-17 16:35:53 +00:00
Ivan Savenko
7461df161c
lib now uses shared_ptr for entities. Removed manual memory management.
2024-05-17 15:04:05 +00:00
Ivan Savenko
eb67e04ccb
Remove old and unmaintained codeblocks project
2024-05-17 10:44:57 +00:00
Ivan Savenko
3f6eb13ee0
Delete old and unmaintained msvc project files
2024-05-17 10:44:11 +00:00
Ivan Savenko
cba49a9952
Fix gcc-14 build
2024-05-17 10:10:06 +00:00
Ivan Savenko
721b15d9de
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-17 08:26:37 +00:00
Ivan Savenko
84bc6c42db
Added 'Serializeable' base class for classes serializeable by pointer
2024-05-16 18:40:59 +00:00
Laserlicht
560923fc1f
show cheating problem message only once per AI
2024-05-15 12:50:51 +02:00
Laserlicht
e9b2159c0a
hint about disabled cheats for nullkiller
2024-05-15 00:18:14 +02:00
DjWarmonger
560d53a07c
Merge pull request #3960 from vcmi/fix-3941
...
#3941 - recruit hero when no heroes
2024-05-13 11:30:11 +02:00
Andrii Danylchenko
98afd43969
#3941 - recruit hero when no heroes
2024-05-12 21:10:31 +03:00
Andrii Danylchenko
98a78b3386
#3930 - fix usage of wrong variable
2024-05-12 18:04:23 +03:00
Ivan Savenko
30e0a16ee9
Fix some 'new' issues reported by Sonar Cloud
2024-05-06 15:33:30 +00:00
Andrii Danylchenko
157443c1df
#3876 - allow to embark after battle for AI pathfinder
2024-05-05 13:52:57 +03:00
Ivan Savenko
be54836401
Merge pull request #3849 from IvanSavenko/fix_vcai_crash
...
Fix possible crash on AI attempting to build building in town
2024-04-28 19:48:23 +03:00
Ivan Savenko
8fa615a8f7
Fix possible crash on AI attempting to build building in town
2024-04-28 12:53:10 +03:00
Andrii Danylchenko
f1d7151a93
#3842 - fix negative link cost because of bonuses
2024-04-28 09:11:15 +03:00
Andrii Danylchenko
39e19f79f4
Fix #3754 , #2316
2024-04-27 13:57:50 +03:00
Andrii Danylchenko
afa766c763
#3824 - fix cluster unlock
2024-04-27 10:57:30 +03:00
Andrii Danylchenko
6e641dbdea
#3824 - fix empty army with only commander issues
2024-04-26 23:18:20 +03:00
Andrii Danylchenko
b4abb3a56c
Merge pull request #3814 from vcmi/fixes
...
NKAI: fix patrolling heroes never retreat and town danger evaluation
2024-04-23 18:52:47 +03:00
Ivan Savenko
62d15ed23c
Merge pull request #3820 from IvanSavenko/bugfixing
...
Bugfixing
2024-04-23 13:03:36 +03:00
Ivan Savenko
1b6d6c3f5e
Disable broken visitation of external markets for VCAI
2024-04-22 15:46:51 +03:00
Ivan Savenko
a6dead7725
Fixed loading of text strings for hota quests
2024-04-22 13:49:17 +03:00
Ivan Savenko
a46e022421
Fixed format string
2024-04-22 13:48:56 +03:00
Ivan Savenko
438ec08d72
AI will only ignore garrisons in 'Steadwick Fall' mission (H3 logic)
2024-04-22 11:14:58 +03:00
Ivan Savenko
e8e4446886
Simplify NKAI settings loading code
2024-04-22 11:14:58 +03:00
Ivan Savenko
20f323d83c
Added 'useTroopsFromGarrisons' option to NKAI
2024-04-22 11:14:57 +03:00
Ivan Savenko
21dff9413e
Merge pull request #3786 from IvanSavenko/instant_movement
...
Instant movement
2024-04-22 11:08:00 +03:00
Ivan Savenko
1b469036a3
Merge pull request #3784 from dydzio0614/quick-dwellings-visit
...
Add handling for yes/no dialogs that can be safely skipped by player
2024-04-22 11:06:40 +03:00
Andrii Danylchenko
390136e536
NKAI: fix patrolling heroes never retreat and town danger evaluation
2024-04-21 14:23:58 +03:00
Andrii Danylchenko
7aff0e63fc
NKAI: fix parallel access to object graph
2024-04-21 12:27:58 +03:00
Andrii Danylchenko
0935f931fa
BattleAI: fix bypassing 2-hex moat
2024-04-20 15:28:57 +03:00
Andrii Danylchenko
70fad45316
Merge pull request #3770 from vcmi/nkai-multitask
...
NKAI: allow multiple tasks to be executed from one calculation
2024-04-20 15:21:11 +03:00
Andrii Danylchenko
3939c4b9d3
NKAI: stability fixes and regression
2024-04-20 14:32:58 +03:00
Ivan Savenko
d5a2ad1be8
Allow sending requests to move across multiple tiles at once
2024-04-20 12:28:50 +03:00
Andrii Danylchenko
50432b9614
Merge pull request #3782 from Alexander-Wilms/typo
...
Fix typo: preasure -> pressure
2024-04-18 13:19:12 +03:00
Dydzio
19453aab41
Add handling for yes/no dialogs that can be safely skipped by player
2024-04-17 01:08:27 +02:00
Alexander Wilms
e70411bf1a
Fix typo: preasure -> pressure
2024-04-16 21:10:49 +00:00
Alexander Wilms
7d925b3689
Fix typo: Preasure -> Pressure
2024-04-16 21:10:15 +00:00
Ivan Savenko
ced0bbe526
Remove "catch everything and silently ignore" block
2024-04-16 18:54:51 +03:00
Andrii Danylchenko
ed76d8a652
NKAI: allow multiple tasks to be executed from one calculation
2024-04-14 16:46:05 +03:00
Ivan Savenko
9e49587749
Replace bonus string description with metastring that can properly
...
handle translations
2024-04-09 16:13:30 +03:00
Ivan Savenko
03786fb63b
VCAI will now check whether it actually has enough gold to buy a hero
2024-04-06 15:59:08 +03:00
Andrii Danylchenko
fd0dd7441a
Merge pull request #3700 from vcmi/object-graph
...
NKAI: parallel capture objects
2024-04-01 12:59:08 +03:00
Andrii Danylchenko
728f673763
NKAI: remove static ai field
2024-03-31 21:11:25 +03:00