1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-01-18 03:21:27 +02:00

16322 Commits

Author SHA1 Message Date
Xilmi
fbe1e171fe Merge remote-tracking branch 'upstream/develop' into develop 2024-07-15 18:36:19 +02:00
Xilmi
4a552d411c Decisionmaking-changes
There's 3 new evaluation-contexts that are now taken into account:
Whether an action is building, whether an action involves sailing and the newly introduced threat.

The value-evaluation of creatures now also takes special resources into account.

No longer treating other AIs differently than players when it comes to how afraid we shall be of them.

The cost of buildings for decision-making now determines missing resources. Available resources are ignored when it comes to how they impact the cost. But missing-resources will heftily impact the assumed price by calculating their market-value. This shall encourage the AI to rather build what it currently can build instead of saving up for something that it lacking the special resources for.

AI is no longer willing to sacrifice more than 25% of their army for any attack except when it has no towns left.

Revamped the priority-tiers of AI decision-making.

Higest priority is conquering enemy towns and killing enemy heroes. However, the AI will no longer try to do so when the target is more than one turn away and protected by a nearby enemy-hero that could kill the one tasked with dealing with the target. Except when they have no towns left. Then they get desperate and try everything.

As a general rule of thumb one could say the AI will prioritize conquest over collecting freebies over investing army to get something that isn't a city. It's a bit more complex than that but this is roughly what can be expected. It will also highly value their own heroes safety during all this.
2024-07-15 18:12:52 +02:00
Xilmi
95ba57dfe2 No more Startup-behavior
Startup-behavior was messing with my intended logic. Mostly by getting excess heroes for no real purpose other than that it could.
This wasted a lot of money that could be better invested on subsequent turns.
I removed it and playing-strength actually went up.
2024-07-15 17:50:30 +02:00
Xilmi
ce4905ac4c Ivan's fix to brown arrows after new turn
A fix Ivan posted about on Discord that takes care of a newly introduced bug in development-branch that you had to reselect your hero manually after a new turn because he would otherwise think he's still on last-turn when it came to executing planned movement.
2024-07-15 17:47:27 +02:00
Xilmi
f8f10adb2e Take magic-capability into account for overall strength-estimation of hero-lead-armies
The magic-strength of a hero now checks if the hero has a spellbook and at least one combat-spell.
The impact of knowledge and spellpower to the hero's magic-strength is now also depending on it's current and max mana-pool-size as an empty mana-pool does not exactly contribute well to fights.

Replaced every call of getFightingStrength() with getHeroStrength() which uses both the fightingStrength and the (reworked) magicStrength to guess how much stronger a hero-lead army is.
2024-07-15 17:42:02 +02:00
Xilmi
83ffbdff2b Fix for double army-loss
Fixed that army loss was taken into account both for the path and the target-object. In certain cases, like a hero defending a town, this could lead to armyloss being twice as high as it should be.
2024-07-15 17:35:54 +02:00
Xilmi
e2e3f9e638 Take hero-stats into account for attacking hero-defended entities
Instead of using just the strength of the raw army, the hero-stats are now taking into account for the generation of the danger-map.
2024-07-15 17:30:42 +02:00
Xilmi
48ecbd4cbf Threat in DangerHitMap
Added new value threat to DangerHitMapAnalayzer. The purpose is to allow decisions to be less binary around enemy heros.
2024-07-15 17:28:10 +02:00
Xilmi
53c51b4278 Allow all buildings
Added resource-silo and special buildings to things that AI can theoretically build.
2024-07-15 17:26:06 +02:00
Andrii Danylchenko
6f5710e809
Merge pull request #4110 from vcmi/rewardables
NKAI: rewardables
2024-07-14 09:02:37 +03:00
Xilmi
d878d0ce18 Avoid being killed
Heroes with conquest-tasks will only endanger themselves to be killed when they can execute a conquest in the same turn.

Heroes with other tasks will dismiss any tasks except of defending when they'd be within one turn of an enemy hero that could kill them.
2024-07-12 23:36:41 +02:00
Xilmi
102b537353 Recruit-behavior
Moved recruit-behavior back to tasks that plans get made for since otherwise it can mess up plans by blocking town-exits.
2024-07-12 23:33:58 +02:00
Xilmi
a821978d4e Merge remote-tracking branch 'upstream/develop' into develop 2024-07-12 17:43:04 +02:00
Xilmi
92bed2305e priority-tiers
Tasks are now in different priority-tiers. For now there's 2 tiers. One for regular tasks and one for tasks of the new "conquest"-type. Regular tasks will only be considered when no possible conquest-type tasks were found.

Slightly reworked scoring heuristics.
2024-07-12 17:41:46 +02:00
Xilmi
9456ab41da Priority-tier
Openmap is no longer tied to difficulty-level due to being configurable anyways.

Tasks are now in different priority-tiers. For now there's 2 tiers. One for regular tasks and one for tasks of the new "conquest"-type. Regular tasks will only be considered when no possible conquest-type tasks were found.

Recruit-hero-behavior is now evaluated before movement to make it more likely a new hero can exchange their stuff with others.
2024-07-12 17:39:52 +02:00
Xilmi
638c1350b8 Path-safety
No longer excluding paths for exposing a hero to an enemy in the behaviors. There definitely are reasons for doing something anyways, even if threatened. The logic for that should be done in the PriorityEvaluator.
2024-07-12 15:43:40 +02:00
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
74723bf77e
Merge pull request #4254 from smanolloff/fix-battle-queue
Fix battle turn order for current turn
2024-07-12 14:45:15 +03:00
Simeon Manolov
941cd6768f
Fix battle turn order for current turn 2024-07-12 11:39:57 +03:00
Ivan Savenko
6b8f94e6e7 Merge remote-tracking branch 'vcmi/master' into develop 2024-07-11 17:43:44 +00:00
Ivan Savenko
286a70c007
Merge pull request #4250 from vcmi/beta
Merge beta -> master
1.5.4
2024-07-11 15:13:26 +03:00
Ivan Savenko
006fadb82c
Merge pull request #4247 from IvanSavenko/release_154
Preparations for release 1.5.4
2024-07-11 11:45:27 +03:00
Ivan Savenko
143fcb7907
Merge pull request #4249 from kambala-decapitator/install-file-async
call Install From File button handler asynchronously
2024-07-11 11:45:18 +03:00
Ivan Savenko
fd297f08e2 Add quick workaround for loading identifiers from difficulty bonuses 2024-07-10 22:33:09 +00:00
Andrey Filipenkov
98cda246a2 [launcher] call Install From File button handler asynchronously 2024-07-10 21:41:26 +03:00
Ivan Savenko
b2729f2661 Updated changelog 2024-07-10 14:41:19 +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
Ivan Savenko
92d32c4573 Add downloads counter for 1.5.4. Remove some older ones since they won't
fit into a single row
2024-07-10 14:36:24 +00:00
Ivan Savenko
ef68bd7ac0 Show message to player and close game if creature battle animation is
missing (demo assets usage?)
2024-07-10 14:36:24 +00:00
Ivan Savenko
bd10f2d939 Updated Ukrainian translation 2024-07-10 14:36:24 +00:00
Ivan Savenko
dbc227da04 Fix incorrect tooltip when right-clicking Witch Hut if selected hero
already has this skill
2024-07-10 14:36:24 +00:00
Ivan Savenko
22870c4764 Fix potential crash on right-clicking object that gives secondary skills
such as Witch Hut when town is selected
2024-07-10 14:36:24 +00:00
Ivan Savenko
d442da92f6
Merge pull request #4229 from IvanSavenko/changelog_154
Changelog for 1.5.4
2024-07-10 17:33:04 +03:00
Ivan Savenko
ccef09db91
Merge pull request #4243 from Laserlicht/patch-3
extend file open error text
2024-07-10 17:14:37 +03:00
Ivan Savenko
9ce1d3eb34
Merge pull request #4244 from dydzio0614/polish-translations-update-2
Update polish translation for launcher and map editor
2024-07-10 17:14:20 +03:00
Ivan Savenko
ee14c0ab16
Merge pull request #4245 from Laserlicht/ger
Update german translation
2024-07-10 17:14:11 +03:00
Ivan Savenko
fbd4d3444b
Merge pull request #4246 from Laserlicht/slack_remove
remove slack references
2024-07-10 17:14:01 +03:00
Laserlicht
83a09be8a9
keep slack info 2024-07-10 12:56:11 +02:00
Laserlicht
16f1d8d3ce
remove slack 2024-07-10 12:49:53 +02: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
Laserlicht
2179caeb25
update german 2024-07-09 22:23:20 +02:00
Dydzio
0ce96269f2 Update polish translation for launcher and map editor 2024-07-09 21:53:55 +02:00
Laserlicht
0695502e89
Update firstlaunch_moc.cpp 2024-07-09 21:50:06 +02:00
Ivan Savenko
943b2f1136
Merge pull request #4242 from IvanSavenko/translations_regenerate
Regenerated translations
2024-07-09 17:45:51 +03:00
Xilmi
3367298a2a Merge remote-tracking branch 'upstream/develop' into develop 2024-07-09 16:25:27 +02:00
Ivan Savenko
a98787be43 Regenerated translations 2024-07-09 14:03:50 +00:00
Ivan Savenko
b1a902809e
Merge pull request #4232 from cewbdex/cz-work
Translate cz
2024-07-09 17:02:05 +03:00