Xilmi
22222f0fba
Priorization-improvements
...
Manarecoveryreward now uses float instead of unsigned int in order to avoid extremely high instead of negative scores when the hero has more mana than his mana-limit for example due to mana-vortex.
Moved upgrading armies to a lower priority tier as otherwise the AI would go back to their cities all the time even though there were plenty of other things to do.
Improved exploration logic by putting different kinds of exploration to different priority-tiers.
Looking at the other side of a portal has high priority, visiting an observatory has medium priority and scouting by visiting nearby tiles has low priority.
2024-09-14 02:58:23 +02:00
Xilmi
ab441d8e67
Update PriorityEvaluator.cpp
...
AI now should no longer ignore spell-scrolls and artifacts of the treasure-class.
2024-09-13 23:06:49 +02:00
Xilmi
af2df5763f
Update PriorityEvaluator.cpp
...
Only if there is a high gold-pressure a buildings' cost will deter from its score.
2024-09-12 22:53:45 +02:00
Xilmi
a1a03d4b74
Merge remote-tracking branch 'upstream/develop' into develop
2024-09-12 14:54:39 +02:00
Ivan Savenko
29f393e024
Removed hardcoded checks for map objects in favor of analyzing
...
rewardable object content
2024-09-12 12:11:18 +00:00
Ivan Savenko
503b87561e
Converted all h3 banks to rewardable, remove most of hardcoded checks
2024-09-12 12:11:18 +00:00
Xilmi
df119370c7
Exploration
...
Slightly adjust the value of exploring within the hunter-gather-prirority.
2024-09-10 00:23:17 +02:00
Xilmi
a329f607c9
Update Nullkiller.cpp
...
No more map-hack on 3rd difficulty-level. Only starting from the fourth.
2024-09-09 23:23:28 +02:00
Xilmi
f8e4aa1d25
Update Nullkiller.cpp
...
Use Enum for Gold.
2024-09-09 23:20:53 +02:00
Xilmi
0edc17b7d8
Going to town when nothing to do.
...
The StayAtTown-behavior now always creates tasks for all heroes to go and stay at a town. It will be treated differently than going to a town for mana in the sense that it is only considered at the lowest priority-tier. So it will only happen when the AI doesn't find anything else to do. It should resolve one of the two main-reasons for losing weak heros.
The hunter-gather-priority-tier now goes strictly by distance for all taks that are considered above 0 in value.
2024-09-06 22:14:59 +02:00
Xilmi
099341e143
Update Nullkiller.cpp
...
Fixed incorrect trace-message at end of turn.
2024-09-06 22:10:14 +02:00
Xilmi
cf338e04ad
Update Nullkiller.cpp
...
AI can now also buy resources that it has income for.
2024-09-06 21:40:23 +02:00
Xilmi
35d8705fea
Update Nullkiller.cpp
...
prioOfTask-variable-usage bound to trace-level as otherwise a warning will ensue.
2024-09-06 17:20:12 +02:00
Xilmi
e43492d8b5
Update PriorityEvaluator.cpp
...
Fixed affordabilitycheck not being negated.
2024-09-06 00:12:44 +02:00
Xilmi
db2416cb6b
Update Nullkiller.cpp
...
Readded prioOfTask because it's needed in trace-messages.
2024-09-05 23:41:05 +02:00
Xilmi
5488a0a29c
Removed the "GATHER"-priorityTier
...
There was no real need for it to be a separated tier from Hunter_gather.
2024-09-05 19:35:47 +02:00
Xilmi
dafc9cd8a8
Update PriorityEvaluator.cpp
...
Replace float-comparisons with zero by vstd::isAlmostZero
2024-09-05 16:40:06 +02:00
Xilmi
23cd54c998
Preparations for merge
...
No longer using FuzzyEngine just to create a log-message. It's now only used when isUseFuzzy is set.
Also:
Removed < operator and instead use already existing "canAfford"-Method.
2024-09-05 16:22:25 +02:00
Xilmi
b32c9615ed
Update Nullkiller.cpp
...
Removed unused variable.
2024-09-05 15:59:09 +02:00
Xilmi
db16a9d234
A bit of clean-up for merge
...
Set back trace level to 0
Removed EvaluationContexts that weren't used
Encapsulated many debug-messages behinde trace-levels
2024-09-04 16:41:47 +02:00
Xilmi
1176628a88
Update PriorityEvaluator.cpp
...
Workaround for weird -nan(ind) closestWayRatios.
2024-09-02 01:37:21 +02:00
Xilmi
09badeb5be
Enum for PriorityTiers
...
In order to not confuse PriorityTiers, especially after adding new ones, now using an enum to identify them.
2024-09-02 00:16:19 +02:00
Xilmi
c667ca46d1
Using correct priorityTier for Clusterization
...
Clusterizer now uses PriorityTier = 5 for evaluation, which is used to generate priority for guarded objects
2024-09-02 00:00:36 +02:00
Xilmi
7c6f96344a
Update Nullkiller.cpp
...
Removed resetAiState from loop cause it has too many side-effects. Such as the loop going through all passes.
2024-09-01 19:33:43 +02:00
Xilmi
0e91f10bbc
Update Nullkiller.cpp
...
ResetAIState so that units realize what they can do after unlocking a cluster.
2024-09-01 17:21:53 +02:00
Xilmi
1ef5e8ab1b
Update PriorityEvaluator.cpp
...
Prevent building more buildings when we are saving for our favorite building.
2024-09-01 13:47:30 +02:00
Xilmi
ac8e5b3711
Update PriorityEvaluator.cpp
...
AI should score citadels and castles higher for better developed towns so that it focuses on finishing the main-town quicker as opposed to developing several smaller towns simultaneously.
2024-08-30 21:02:50 +02:00
Xilmi
56988e054a
New priority
...
1. Take / kill what is reachable in same turn
2. Defend
3. Take / kill what is further away
2024-08-30 18:05:47 +02:00
Xilmi
05d948b582
Priorities
...
Swapped priority of attacking and defending.
Troop-delivery-missions will check safety of the delivering hero.
2024-08-30 16:46:36 +02:00
Xilmi
dcec5637cd
Fix for defense-evaluation.
...
Defense-evaluation didn't fill armyInvolvement but it was what created the score for it. So there was only score if it also included a HeroExchange.
2024-08-29 21:01:06 +02:00
Xilmi
b8dacfc0be
Update Nullkiller.cpp
...
Fixed trade no longer working and changed log-output.
2024-08-29 20:49:01 +02:00
Xilmi
b92862c04d
New priorities
...
Added more priority-tiers
2024-08-24 14:55:26 +02:00
Xilmi
00e5770aa3
Update PriorityEvaluator.cpp
...
Revert change that made AI too passive.
2024-08-18 21:22:05 +02:00
Xilmi
e6d907af55
Merge remote-tracking branch 'upstream/develop' into develop
2024-08-18 09:52:59 +02:00
Xilmi
284f276108
Update Nullkiller.cpp
...
Don't trade away gold when the gold-pressure is high.
2024-08-18 09:47:37 +02:00
Xilmi
3be25d9414
Update PriorityEvaluator.cpp
...
Defend towns 1 turn earlier.
2024-08-18 09:47:05 +02:00
Xilmi
8ad6d712c0
lowered aggression
...
Being less willing to rush across half the map to attack an enemy town only to find it too well defended when arriving there.
2024-08-15 18:16:23 +02:00
Xilmi
a79f76f32b
Update Nullkiller.cpp
...
Fix issue with selling/buying the same resources back and forth. But probably leads to not using the market early on. (needs more testing)
2024-08-15 18:15:29 +02:00
Xilmi
6193e6224f
Update FuzzyHelper.cpp
...
Added Multiplicative danger-modifier to citadels and castles.
2024-08-15 18:14:48 +02:00
Xilmi
b7e4219fde
More purposeful defending
...
Avoid defending towns that are out of reach for the enemy.
2024-08-14 22:53:48 +02:00
Ivan Savenko
97f1a310df
Fix miscellaneous issues discovered by Sonar
2024-08-12 18:26:30 +00:00
Xilmi
a7b26e237f
Fix crash
...
Fixed a crash due to improperly trying to access "cb".
2024-08-11 21:59:06 +02:00
Xilmi
ed059393ec
No more prio 3 tasks
...
The AI no longer performs prio 3 tasks, when no prio 0-2 tasks were found.
2024-08-11 18:23:02 +02:00
Xilmi
958aeb3a60
AI improvements
...
Deliberately defending towns in danger will now only be performed when the town has at least a citatel.
The AI will now count the buildings per town-type and add a score-bonus to dwellings of towns it already has a lot of buildings of. This shall help with getting a stronger army with less morale-issues.
Scoring for mage-guild now increased the bigger the existing armies are.
AI is less afraid of enemy-heros than previously.
2024-08-11 18:21:24 +02:00
Xilmi
5907aae057
Fixed AI not taking hero-strength into account when hero is garrisoned.
...
When evaluating their fighting-chance against towns with a garrisoned hero the AI didn't consider the attribute-boosts of the defending hero.
Now it does.
2024-08-11 17:59:10 +02:00
Xilmi
ea4e412f9a
Update Nullkiller.cpp
...
Only actual heroes and not nullptrs will exculde each other in comparison.
2024-08-07 01:37:15 +02:00
Xilmi
ec5da0e6b3
Update PriorityEvaluator.cpp
...
Further working towards heroes avoiding danger.
2024-08-07 01:36:27 +02:00
Xilmi
07108ce03d
Update PriorityEvaluator.cpp
...
Allow defending in priority 2.
2024-07-25 21:49:17 +02:00
Xilmi
183ce82b99
Update Nullkiller.cpp
...
Readded prio-3 tasks for heroes when no prio 0-2 tasks were found. It's anything that doesn't lose more than the loss-threshold.
2024-07-25 21:48:44 +02:00
Xilmi
909c308614
Update Nullkiller.cpp
...
Removed unused variable.
2024-07-24 21:46:18 +02:00