RoosterDragon
3ff678ef86
Lock fuzzyEngine during construction so it is published correctly.
2016-02-26 21:23:19 +00:00
Paul Chote
e71225496b
Clarify GPL version.
2016-02-21 16:30:48 +00:00
Paul Chote
b396965fd9
Update licence header year.
2016-02-21 16:27:31 +00:00
Oliver Brakmann
426bf0d975
Merge pull request #10731 from RoosterDragon/fuzzy-singletons
...
Create singletons for AttackOrFleeFuzzy rulesets
2016-02-17 21:25:03 +01:00
RoosterDragon
3b480ea4bb
Create singletons for AttackOrFleeFuzzy rulesets.
...
This avoids the cost of recreating the engines and rules for every AI and AI squad.
2016-02-10 20:17:27 +00:00
reaperrr
ed3c0799d3
Do not consider waiting harvesters to be idle
2016-01-29 16:08:29 +01:00
Matthias Mailänder
922217271c
don't actively attack nor defend with armed harvesters
2016-01-24 14:05:00 +01:00
Matthias Mailänder
03590b13cc
check the cheap bool before expensive trait lookups
2016-01-24 13:52:44 +01:00
RoosterDragon
8e89a6a696
Simplify names, remove unused usings, remove redundant casts.
2016-01-17 21:35:36 +00:00
Paul Chote
bee77db1e3
Rename variables for clarity.
2016-01-17 00:02:49 +00:00
Paul Chote
bec059a3c7
Remove unnecessary assumption about non-mobile.
2016-01-17 00:02:49 +00:00
Paul Chote
d4815407f2
Remove hardcoded trait assumptions from MCV and ConYards.
2016-01-17 00:02:49 +00:00
Paul Chote
e026a0f00f
Create proper data structures for hardcoded AI classes.
2016-01-17 00:02:49 +00:00
Sean Hunt
8f4ec87b63
Factor silos needed warning to a new trait.
2015-12-27 14:40:37 -05:00
RoosterDragon
dcf375a412
Store Targetables in Actor.
...
This can be used to avoid several lookups for these traits, as well as allow Actor to provide specialised methods to deal with target types efficiently. This also reduces some code duplication.
2015-12-12 20:55:17 +00:00
Pavel Penev
c51bad6050
Expose HackyAI's Squads and IsEnabled fields
2015-12-07 01:41:16 +02:00
atlimit8
b6f17df260
Add ActorsHavingTrait<TTrait>([Func<TTrait, bool])
2015-10-28 16:36:45 -05:00
atlimit8
7de98ad6d8
Merge pull request #9635 from RoosterDragon/occupy-space-perf
...
Speed up checks for IOccupySpace trait
2015-10-22 18:28:57 -05:00
RoosterDragon
a4338d9350
Remove a redundant check in FindAndDeployBackupMcv.
...
This avoids enumerating the mcvs twice.
2015-10-14 21:06:37 +01:00
RoosterDragon
262ab408b5
Speed up checks for IOccupySpace trait.
...
Eagerly load the trait (if it exists) in Actor, and use this reference to avoid having to perform self.Info.HasTraitInfo<IOccupySpaceInfo>() checks.
2015-10-14 20:46:15 +01:00
abcdefg30
b0c1f95ef2
Merge pull request #9486 from reaperrr/fix-9403
...
Fix AI queueing structure build orders twice at higher game speeds due to lag
2015-10-11 13:51:02 +02:00
reaperrr
3711ef8eb5
Fix AI queueing build orders twice at higher game speeds due to lag
...
Fixes #9403 .
2015-10-11 01:53:25 +02:00
Paul Chote
8954ac585c
Merge pull request #9442 from Mailaender/ai-world-check
...
Fixed AI bots trying to assign orders to units not in the world
2015-10-10 20:21:10 +01:00
Matthias Mailänder
4579e8af06
don't let the AI assign orders to units not in the world
2015-10-10 19:06:20 +02:00
atlimit8
a000bf7805
Merge pull request #9400 from reaperrr/fix-airefplaceperf
...
Fixed massive AI base builder performance issue
2015-10-02 23:18:10 -05:00
reaperrr
74308c245c
Add AI MinBaseRadius to give more control over and slightly increase performance of AI building placement checks
2015-09-29 22:19:21 +02:00
reaperrr
2b0920398f
Add AI MaxResourceCellsToCheck for refinery placement decision
2015-09-29 22:19:20 +02:00
Taryn Hill
3d7e49655d
Fix NullReferenceException in HackyAI.BuildUnit
...
HackyAIInfo grew a UnitLimits Dictionary that was not null-checked.
Also null-check UnitsToBuild.
2015-09-28 13:17:19 -05:00
RoosterDragon
108f2e9b6e
Tweak some AI methods to avoid allocations.
2015-09-26 21:12:07 +01:00
reaperrr
5ad9eb852c
Fix massive AI base builder performance issue
...
Previously, the Refinery placement check would first collect all cells
with resources inside the MaxBaseRadius, then perform a full findPos check
for each cell until one of them would not return null. The problem was
that if all of the cells returned null (for example if there wasn't enough
space between base center and resource, or if all suitable space was
otherwise occupied), it would basically check all tiles with resources
only to fail finding a suitable position and fall back to the normal
findPos check.
Since nearbyResources already performs a shuffle, I simply made the check
use the first cell from the list and use the basic findPos fallback if
that cell is null.
Closes #4717 .
2015-09-26 16:48:03 +02:00
atlimit8
9acf121eb1
Replace ActorInfo.Traits.WithInterface with ActorInfo.TraitInfos<T>()
2015-09-21 15:50:57 -05:00
atlimit8
131084d129
Changed missed ActorInfo.Traits.Contains => ActorInfo.HasTraitInfo
2015-09-19 12:06:37 -05:00
atlimit8
09984683a7
Add ActorInfo.TraitInfo[OrDefault]<T>() requiring ITraitIfo types
2015-09-19 09:56:14 -05:00
atlimit8
6970959ef1
.Trait[OrDefault]<Trait> => .Info.Traits.Get[OrDefault]<TraitInfo> where applicable
2015-09-19 09:49:24 -05:00
atlimit8
8162fa27ab
Add ActorInfo.HasTraitInfo<T>() requiring ITraitInfo types
2015-09-19 09:49:24 -05:00
atlimit8
85fab45451
Remove Actor.HasTrait<T>()
2015-09-19 09:49:23 -05:00
reaperrr
a580e6846e
Merge pull request #9328 from Mailaender/ai-common-names
...
Fixed BuildingCommonNames magic
2015-09-13 18:53:37 +02:00
Matthias Mailänder
a7235d84e9
document the hidden keys
2015-09-13 08:30:17 +02:00
Matthias Mailänder
f903cfea96
don't throw as we are checking for null later
2015-09-12 10:27:22 +02:00
Matthias Mailänder
39b79f5347
don't load the AI routines in the map editor
2015-09-12 08:40:40 +02:00
reaperrr
4108b6da46
Merge pull request #9256 from Mailaender/ai-harv-search
...
Added AI search for new resource patches avoiding enemies
2015-09-11 23:25:59 +02:00
Matthias Mailänder
088f56d181
remove redundant bot debug message
2015-09-07 20:58:52 +02:00
reaperrr
60359cc6f5
Use HashSets for AI
2015-09-06 22:59:49 +02:00
Matthias Mailänder
0df8b3ba39
bring back AI search for new resource patches avoiding enemies
2015-09-06 12:56:23 +02:00
Matthias Mailänder
0e5fcc1756
Merge pull request #9279 from atlimit8/SemanticallySets
...
More HashSet trait fields & Lint support
2015-09-06 10:23:20 +02:00
atlimit8
8250f223c4
More HashSet trait fields & Lint support
2015-09-05 16:59:30 -05:00
atlimit8
dbae16b7a0
AI counts all aircraft rearm buildings
2015-09-04 10:45:58 -05:00
RoosterDragon
901e604cf3
Replace arrays with sets.
...
In places where arrays were being treated as a set, just create a set directly. This reveals the intention of such collections better, and also improves performance by allowing set based methods to be used.
2015-09-03 20:09:24 +01:00
atlimit8
f5c3575c5a
Support multiple ITargetable traits
2015-09-02 23:14:40 -05:00
Zimmermann Gyula
0a79109d01
Implement HackyAI->UnitLimits.
2015-09-01 23:32:13 +02:00