Commit graph

75 commits

Author SHA1 Message Date
phosit
8b1e78ae1e
Use JS classes for the AI
Fixes: #6285
2026-07-23 15:15:59 +02:00
phosit
f9de339f85
Use JS classes for Terain-Analysis and InfoMap
`TerrainAnalysis` and `Accessibility` used a costum form of inheritance.

Refs: #6285
2026-07-23 15:12:50 +02:00
phosit
53a67e560f
Sort templateModifications after inserting
The insertion order might not be consistent when clients join.
2026-05-10 14:18:51 +02:00
phosit
f5e926f6fe
Remove remanents of entityObj
All uses have been removed.
2026-05-10 14:18:49 +02:00
phosit
d18a6392b3
Reduce usage of entityObj in SharedScript
The information where a unit is and which resource it provides wasn't
available on joining clients. Now the `resourceMap` is reset when a
resource is destroide.

It would be performance intensive when the `resourceMap` would be reset
when any unit would be destroied. To prevent this the `SharedScript`
remembers which entities are resourcesources.
2026-05-10 14:18:49 +02:00
phosit
7b50e32b28
Always delete metadata when destroying entities
On newly deserialized clients there is no property for the destroied
entities. Because of that the metadata of the entity wasn't remembered
in the event and wasn't destroied.
2026-05-10 14:18:49 +02:00
phosit
0a2bd6a5a4 Use proper js-modules for ai common-api
The common-api already used a coding pattern which was called modules.
That is replaced with native js-modules.

Refs: #8081
2025-08-13 14:04:16 +02:00
Ralph Sennhauser
0ce889ca6d
Use stylistic for deprecated eslint rules
During the eslint 8 cycle the formatting rules were split out [1],
deprecating the corresponding rules in core.

This replaces all rules that where moved to @stylistic/eslint-plugin [2]
and accounts for the difference in the indenting rule behaviour.

To allow the pre-commit import hack to continue to work with the
stylisitc plugin for a recent nodejs version to be used.

[1] https://eslint.org/blog/2023/10/deprecating-formatting-rules/
[2] https://eslint.style/packages/default

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-10 21:23:23 +02:00
Ralph Sennhauser
a9987868c4
Fix eslint rule 'no-use-before-define'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-use-before-define": ["error", "nofunc"]

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-14 16:35:58 +02:00
Ralph Sennhauser
62ee1c34ac
Fix eslint rule 'prefer-const' in simulation/ai
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 19:16:52 +02:00
Ralph Sennhauser
b6df170303
Fix eslint indent rule
eslint --no-config-lookup --fix --rule 'indent:  ["warn", "tab", { "outerIIFEBody": 0, }]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 09:39:58 +02:00
Angen
701ecb095e [AI] Simplify getMetadata in sharedscript
Metadata are stored in an object {} making check for key in the object
irrelevant, since not existing key will result in returning undefined
value.
On top of that, merging metadata existance if condition into returning
statement.

Differential revision: D4195
Reviewed by: @Freagarach
This was SVN commit r25862.
2021-08-27 18:35:20 +00:00
Freagarach
340aa419f4 Deduplicate add/remove entity to/from AIs resource map.
Also moves the function to the shared_script, since that is the
prototype it uses and the function doesn't use anything of the
terrain_analysis (as per @Angen's request).

Differential revision: https://code.wildfiregames.com/D3906
Comments by: @Angen, @wraitii
This was SVN commit r25511.
2021-05-22 07:35:16 +00:00
bb
6d54ab4c1f Implement combine victory conditions
Excluding the changes to scenario and skirmisch maps
Transform gameType string to victoryCondition array in load/replaymenu
Adapt the gamesetup to use checkboxes for every victory condition and an
array for storing them
Allow multiple queries in conquestCommon
Remove conquest from regicide, wonder and capture the relic
Move the endless gamedescription from settings to gamedescription
Fixing wrong tabulation from a8a29271ce

This commit will break all scenario and skirmisch maps, their "Gametype"
string needs to be transformed in a "VictoryCondition" array as is done
in the tutorial map (counting endless as an empty array). This counts
for mods too!
Old svn replays and savegame will throw warnings/errors as they are
incompatible after this commit. So svn users will need to delete all
those.

Comments on ai and autostart games By: mimo
Comments on Atlas By: Vladislav
Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D1240
fixes: #4014

This was SVN commit r21474.
2018-03-09 21:51:18 +00:00
mimo
4ded9cbec2 ai: cleanup of common-api following eslint
This was SVN commit r21447.
2018-03-06 18:34:33 +00:00
mimo
d4381dbbc0 petra cleanups
This was SVN commit r21186.
2018-02-12 20:05:29 +00:00
mimo
1976f367a3 ai: additional cleanup following fe3668aebe
This was SVN commit r21028.
2018-01-27 10:46:03 +00:00
elexis
c90d72deb5 Replace DataTemplateManager simulation component with a globalscript, refs #4868.
Removes the serialization of JSON files, shrinking savegame files and
rejoin states sent across the network, refs #3834, #4239, #3909,
f24523dc8f.
Removes the AI C++ code to read JSON files from e33d4a52e9 since the AI
can now use the globalscript.
Allows the AI to read Aura templates and removal of GUIInterface code to
improve performance.
Serialization of the JSON objects in other simulation components was
removed in 9c0e37f2c0 / D1109, a6f14f5631 / D1130.

Serialization removal planned by sanderd17
AI part proofread by mimo
Simulation part proofread by bb
Discussed with Itms on irc

Differential Revision: https://code.wildfiregames.com/D1108
This was SVN commit r20737.
2017-12-31 01:02:21 +00:00
mimo
e0bd348bce some petra cleanup
This was SVN commit r20673.
2017-12-21 19:01:55 +00:00
elexis
32981e6f5e Allow the AI to read JSON simulation files and use the Resources prototype from 52f311da2b for the AI directly.
Removes the workaround copy of the resources JSON each turn in
GetSimulationState.

Refs #3934, #4868
Differential Revision: https://code.wildfiregames.com/D1119
Reviewed By: mimo
This was SVN commit r20600.
2017-12-06 20:26:01 +00:00
mimo
3b6c612975 allow the ai to run without loading all templates at startup (not yet enabled).
This was SVN commit r20480.
2017-11-19 19:05:54 +00:00
mimo
34557b5bb8 petra: few tunings
This was SVN commit r20422.
2017-11-07 19:11:06 +00:00
mimo
9885cc5b79 petra: tune the proportion of support workers
This was SVN commit r20269.
2017-10-07 08:50:31 +00:00
mimo
862fd197d9 some cleanups of ai and petra
This was SVN commit r20257.
2017-10-02 17:49:27 +00:00
mimo
8f05358b5e Template loading from the AI
Patch by Sandarac

Reviewed By: mimo
Trac Tickets: #4611

Differential Revision: https://code.wildfiregames.com/D639
This was SVN commit r20162.
2017-09-11 16:23:54 +00:00
mimo
a13a860890 AI stats modifications from techs and auras broken for templates
Tested by Grugnas

Differential Revision: https://code.wildfiregames.com/D811
This was SVN commit r20025.
2017-08-23 17:31:47 +00:00
mimo
79537fee3b Fix AI error in ApplyEntitiesDelta()
Patch by Sandarac

Reviewed By: mimo
Differential Revision: https://code.wildfiregames.com/D751
This was SVN commit r19945.
2017-08-05 17:27:06 +00:00
elexis
3957ebf51f Option to disable garrisoning of heroes in regicide gamemode.
Accomplish this by adding a Garrisonable component that can be removed
from individual units or templates.

Differential Revision: https://code.wildfiregames.com/D104
Refs #2160
Patch By: Sandarac
This was SVN commit r19631.
2017-05-22 01:18:51 +00:00
fatherbushido
dc17836fe5 Add barter multiplier for barter prices. They can be altered by technologies or auras. Reviewed by mimo.
Differential Revision: https://code.wildfiregames.com/D478
This was SVN commit r19615.
2017-05-20 18:01:49 +00:00
mimo
689d5ed562 petra: improve the switch between attack and capture
Differential Revision: https://code.wildfiregames.com/D133
This was SVN commit r19209.
2017-02-09 18:41:03 +00:00
elexis
d67ada09c9 Use strings instead of integers for the values of aiAnalysisInfluenceGroup (used by petra to position dropsites). Reviewed by mimo, fixes #4377.
This was SVN commit r19012.
2016-11-28 20:50:42 +00:00
elexis
6149dd3841 Actually remove trailing whitespace for non-header files as well.
This was SVN commit r18989.
2016-11-23 13:02:58 +00:00
elexis
52f311da2b Merge resource agnostic branch by s0600204, fixes #3934.
Remove all occurances of hardcoded resources in the simulation, GUI and
AI code by
specifying resources as JSON files in a new simulation subdirectory and
accessing them through a globally defined prototype.

This was SVN commit r18964.
2016-11-19 14:29:45 +00:00
mimo
f352e2c725 AI diplomacy support for lastManStanding, patch by Sandarac, tests reviewed by elexis, fixes #4143
This was SVN commit r18945.
2016-11-15 18:48:20 +00:00
mimo
01ff2fb0e0 petra: reset some collections only if needed
This was SVN commit r18531.
2016-07-19 17:26:03 +00:00
mimo
df55f73894 ai: remove a useless argument
This was SVN commit r18525.
2016-07-17 17:10:01 +00:00
mimo
bbe75c14f8 Implements the ai changes from s0600204 resource-agnostic patch, refs #3934
This was SVN commit r18478.
2016-07-03 10:26:34 +00:00
mimo
9c980173e3 petra cleanup
This was SVN commit r18429.
2016-06-23 18:25:27 +00:00
mimo
dd823dd572 ai cleanup
This was SVN commit r18352.
2016-06-09 19:25:40 +00:00
mimo
5be948019b ai cleanup
This was SVN commit r18290.
2016-06-02 18:08:14 +00:00
mimo
07007f1963 some cleanup in ai
This was SVN commit r18230.
2016-05-25 18:43:48 +00:00
mimo
6171f66d06 AI: fix serialization of template changes, fixes #3993, refs #3858
This was SVN commit r18219.
2016-05-22 20:25:41 +00:00
mimo
9c9796d8ad Changes in AI: Decrease a bit the required number of champions in attacks because of the recent increase of their cost,
Make more use of corrals when no fields and Cleanups

This was SVN commit r18216.
2016-05-21 17:06:25 +00:00
mimo
a4cb84c8e0 ai cleanup, mainly trailing spaces
This was SVN commit r18163.
2016-05-12 17:38:58 +00:00
mimo
c955d74330 petra cleanup (thanks to leper's suggestion)
This was SVN commit r17687.
2016-01-22 18:45:28 +00:00
mimo
df7da846ad some cleanup in ai api
This was SVN commit r17683.
2016-01-21 20:23:19 +00:00
mimo
d7b8e0fb79 do not assume a max number of players in the ai api
This was SVN commit r17141.
2015-10-17 17:04:28 +00:00
mimo
e42e02d4fe bunch of cleanup (mainly missing semicolon) signaled by jshint
This was SVN commit r17044.
2015-09-19 12:41:21 +00:00
mimo
7ac4b53cb8 AI: start switch from the internal JS pathFinder to the c++ one, thanks to Itms implementation. Still wip
This was SVN commit r16809.
2015-06-22 17:19:24 +00:00
mimo
fae2caed1a adapt AIs to changes in e6d1afe48b
This was SVN commit r16807.
2015-06-22 16:47:42 +00:00