Commit Graph

17508 Commits

Author SHA1 Message Date
Paul Chote
af69370c17 Improve lobby minimap display for isometric maps.
Also extracts a trait query from inside a tight loop to save unnecessary work.
2015-07-29 20:44:44 +01:00
reaperrr
6db91ccec1 Merge pull request #8796 from Mailaender/travis-docker-take2
Enabled the container based Travis CI architecture
2015-07-29 20:55:13 +02:00
abcdefg30
fa3ad6347b Merge pull request #8836 from reaperrr/atk-sync
Removed redundant ISync and ITick from Attack* traits
2015-07-29 19:37:24 +02:00
reaperrr
398f02c5db Remove redundant ISync and ITick from Attack* traits
ISync is implemented by AttackBase, so there's no need for other Attack traits to implement it again.
AttackTurreted inherits AttackFollow, which already implements ITick.
2015-07-29 17:45:30 +02:00
Matthias Mailänder
c660d32051 Merge pull request #8833 from obrakmann/fix8826_trait-from-dead-crate-crash
Fix crates dying while not in the world
2015-07-29 15:30:07 +02:00
Matthias Mailänder
8eb5698d57 Merge pull request #8170 from DSUK/master
TFD Installer for Tiberian dawn, Red Alert and Tiberian Sun
2015-07-29 15:25:59 +02:00
Pavel Penev
df46f83e38 Merge pull request #8834 from obrakmann/fix-basebuilder-nre
Fix potential NRE in AI BaseBuilder
2015-07-29 16:07:34 +03:00
Oliver Brakmann
1b9367ae4b Fix potential NRE in AI BaseBuilder
Detected by Coverity
2015-07-29 14:53:15 +02:00
Oliver Brakmann
eada254ad3 Fix crates dying while not in the world
On large maps, it can take the delivery aircraft longer than the crate's
lifetime to reach the paradrop location, so the crate will be destroyed while it's still in the aircraft, leading to an attempt to get a trait from a destroyed object in the Paradrop trait.

This fixes the lifetime logic of crates so that the lifetime will only be increased when the crate is actually in the world. This will probably also better reflect the intention behind the Lifetime property, which I assume was meant to be the time the crate would be on the map available for pickup, rather than the lifetime of the actor itself.
2015-07-29 12:35:58 +02:00
James
1d3f4d6f12 added The First Decade Installation Logic 2015-07-29 08:18:26 +01:00
James
8468ce5fe6 added InstallShield CAB Extractor 2015-07-29 08:18:26 +01:00
Matthias Mailänder
0ba54b425e Merge pull request #8759 from reaperrr/ai-bldgcheck
Improved AI BaseBuilder
2015-07-28 22:32:21 +02:00
reaperrr
d8e458d028 Added TODOs for foundation of checked water cells
Fix description style issues
2015-07-28 22:03:53 +02:00
reaperrr
91178d6f62 Improved naval placement check
Moved water checks before --waitTicks.
Use Water enum instead of multiple booleans.
Check for BaseProvider rather than BaseBuilding.
Move expensive ClosEnoughToWater check to last position for naval
production override.
2015-07-28 22:03:52 +02:00
Matthias Mailänder
b9c52acefc Merge pull request #8809 from reaperrr/ra-ai
Improved RA mod AI (yaml tweaks)
2015-07-28 21:25:33 +02:00
Matthias Mailänder
e127e55792 Merge pull request #8777 from pchote/base-key
Fall back to oldest building if no BaseBuildings exist.
2015-07-28 20:35:12 +02:00
reaperrr
ed1a55df83 Fixed AI soviet paratrooper target evaluation so it doesn't always fail 2015-07-28 19:26:43 +02:00
Pavel Penev
fb2a4265bd Merge pull request #8811 from abcdefg30/die3
Use HeadshotDeath instead of BulletDeath for Umagon's rifle
2015-07-28 19:16:24 +03:00
Pavel Penev
2a166edb72 Merge pull request #8820 from obrakmann/fix8722-allies03-jail-breakage
Revert "Allies 03 Cloak->TargetableUnit"
2015-07-28 18:23:48 +03:00
reaperrr
5f9834d250 Shifted Turtle AI priority more from adv. power plants to defenses
This will work better once #8759 is merged (due to improved low power check).
2015-07-28 17:05:20 +02:00
reaperrr
793a9e4f20 Disable dog kennels for AI
I saw the AI build kennels early and waste cash on an army of dogs quite a
few times, putting that AI at severe disadvantage.
2015-07-28 17:04:05 +02:00
Oliver Brakmann
b7c444713e Revert "Allies 03 Cloak->TargetableUnit"
This reverts commit acc4b307b6.
2015-07-28 15:42:18 +02:00
Oliver Brakmann
dff56f6c20 Merge pull request #8781 from pchote/heightmap-shroud
Add plumbing for heighmap-aware shroud and map bounds checks.
2015-07-28 15:35:51 +02:00
Pavel Penev
9801d89e75 Merge pull request #8813 from pchote/fix-bounds-checks
Replace map.Contains with proper array bounds checks.
2015-07-28 04:27:53 +03:00
Matthias Mailänder
9fefc1f7b7 Merge pull request #8816 from reaperrr/common-armor
Moved Armor trait to Mods.Common
2015-07-27 22:04:29 +02:00
Paul Chote
4bc75f1ed6 Temporarily work around RadarWidget corruption. 2015-07-27 20:20:01 +01:00
reaperrr
89f3718aa7 Move Armor trait to Mods.Common 2015-07-27 21:12:03 +02:00
Paul Chote
86ba26e013 Convert shroud calculations and rendering to PPos. 2015-07-27 19:34:50 +01:00
Paul Chote
e8794032e0 Introduce initial PPos plumbing.
PPos is best thought of as a cell grid applied in
screen space.  Multiple cells with different
terrain heights may be projected to the same PPos,
or to multiple PPos if they do not align with the
screen grid.

PPos coordinates are used primarily for map edge
checks and shroud / visibility queries.
2015-07-27 19:34:49 +01:00
Paul Chote
fb5bcd3889 Extract MapCoordsRegion from CellRegion. 2015-07-27 19:34:39 +01:00
Paul Chote
a8c6a1aa97 Correct Contains check in DomainIndex. 2015-07-27 19:06:20 +01:00
Paul Chote
3a7300810c Correct Contains check in BridgeLayer. 2015-07-27 19:06:20 +01:00
Paul Chote
0b5b612757 Correct Contains check in BuildingInfluence. 2015-07-27 18:43:51 +01:00
Paul Chote
2b3c65334d Correct Contains check in ActorMap. 2015-07-27 18:43:51 +01:00
Matthias Mailänder
3b25a2029a Merge pull request #8805 from obrakmann/fix8802_enemy-unit-selection
Fix not being able to select enemy units
2015-07-27 19:38:37 +02:00
abcdefg30
adfa2af4bc Merge pull request #8800 from Mailaender/ts-deployed-units
Fixed deployed vehicles being treated as buildings
2015-07-27 18:53:48 +02:00
abcdefg30
88466473dd Use HeadshotDeath instead of BulletDeath for Umagon's rifle 2015-07-27 17:34:12 +02:00
reaperrr
e1ef6967f6 Sniper isn't buildable anymore 2015-07-27 16:00:53 +02:00
Oliver Brakmann
a2a0059f7f Fix chronoshift duration being visible to enemy players 2015-07-27 13:32:51 +02:00
reaperrr
76f2145db2 Added random factor to building production delay
Early game AI usually follows the same build order (power plant first, then refinery), which also means they all start producing them at the same tick. This adds a random factor to the production delay, so not all AIs produce on the same tick.
2015-07-27 13:28:07 +02:00
reaperrr
c7af9c180e Further improved building placement failure check
Since naval structures have their own safety measures now and therefore shouldn't count towards failCount under normal circumstances, we can now assume that 3 consecutive placement failures mean lack of space. Therefore, rather than unconditionally resetting the failCount and retry every N ticks, we now cache the number of buildings and construction yards at the time of the 3rd consecutive failure and if the number of buildings hasn't decreased and number of construction yards not increased, we assume there is still not enough space and reset the retry delay instead.
2015-07-27 13:28:06 +02:00
reaperrr
65a6489ef1 Avoid consecutive attempts to build naval structures
If not enough water space can be found inside the base perimeter, stop the AI from trying to build naval production buildings permanently until it deploys another construction yard.

If enough water is available within the base perimeter, check whether any
building that provides buildable area (for adjacency) is close enough to
water, otherwise don't even start producing this naval structure.
2015-07-27 13:28:05 +02:00
reaperrr
0a5b812bb7 Check for consecutive failures to place a structure.
After 3 consecutive failed attempts, wait one minute before resetting the counter and trying again.
2015-07-27 13:21:58 +02:00
Oliver Brakmann
618ba6342c Fix not being able to select enemy units 2015-07-27 13:07:07 +02:00
reaperrr
6ff394991d Fixed AI BaseBuilder low power check.
This was extremely borked:
The priority overrides for refinery, production and silo ignored power completely and never checked whether the structure might drive the AI into low power state; whereas the check for regular building checked whether the structure's power -exceeded- MinimumExcessPower (previously just 0). The catch is that power draw is represented by negative numbers, so the only buildings that would trigger this were - power plants.
Now it checks whether the sum of building power draw (negative) and AI's current power level are lower than MinimumExcessPower, if not, build the structure, if yes, build a power plant instead.
Additionally, this check is now performed for the early-game priority overrides as well.

Last but not least the AI would not(!) give power plants priority if it was already low on power. This has been fixed as well.
2015-07-27 13:06:18 +02:00
Matthias Mailänder
a3eac88e36 Merge pull request #8774 from atlimit8/v19husk_noRenderBuilding
Add StartSequence to WithIdleOverlay & change V19.Husk
2015-07-27 07:50:18 +02:00
Matthias Mailänder
00017a9b4e Merge pull request #8770 from RoosterDragon/ai-order-throttle
Throttle AI order speed to prevent lag spikes
2015-07-27 07:37:01 +02:00
Matthias Mailänder
5800c07602 don't define deployed vehicles as buildings 2015-07-26 21:17:25 +02:00
atlimit8
4976f9fec9 Add StartSequence to WithIdleOverlay & change V19.Husk 2015-07-26 12:53:09 -05:00
Matthias Mailänder
1748588ec8 remove redundant push/pop with nothing in between 2015-07-26 14:05:22 +02:00