Commit Graph

1078 Commits

Author SHA1 Message Date
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
Oliver Brakmann
1b9367ae4b Fix potential NRE in AI BaseBuilder
Detected by Coverity
2015-07-29 14:53:15 +02:00
James
1d3f4d6f12 added The First Decade Installation Logic 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
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
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
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
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
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
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
atlimit8
4976f9fec9 Add StartSequence to WithIdleOverlay & change V19.Husk 2015-07-26 12:53:09 -05:00
RoosterDragon
942ce6b5a6 Throttle the issuing of orders by the AI.
To prevent the AI generating lag spikes by issuing too many orders in a single tick, it is now limited in how many orders can be issued per tick. Extra orders are queued. This allows the performance hit of issuing multiple orders to be spread out over several ticks.
2015-07-26 12:57:19 +01:00
Oliver Brakmann
bb40d57944 Merge pull request #8791 from penev92/bleed_cancelActivity
Fix an NRE when cancelling repair orders on units at the wrong time
2015-07-26 11:09:56 +02:00
Pavel Penev
cccf5c5931 Check if the inner activity is null before trying to cancel it 2015-07-26 02:15:38 +03:00
Oliver Brakmann
b749548e76 Re-enable replays for missions 2015-07-25 20:51:39 +02:00
Oliver Brakmann
4de03e991c Remove revealing views from observer mode in missions 2015-07-25 20:51:39 +02:00
Oliver Brakmann
a77e9c0d87 Delay loading the observer UI until the game is actually over 2015-07-25 18:56:25 +03:00
Oliver Brakmann
a725d63b0c Remove World.ObserveAfterWinOrLose
Fixes RenderPlayer for "All Players" view.
2015-07-25 18:56:24 +03:00
deniz1a
5546298866 Merges LeaveMapLogic into GameInfoLogic.
Opens options menu when game ends.

Closes settings or music window before opening options menu.

Moves game end video playback logic from GameInfoLogic to
LoadIngamePlayerOrObserverUILogic.

Improves menu buttons.

Stop video from playing on fatal lua script error
2015-07-25 18:56:24 +03:00
deniz1a
ef143e5f8a Freezes map after game ends.
Adds newline.

Disables keyboard hotkeys for units after game ends.
2015-07-25 18:56:23 +03:00
Pavel Penev
ea3a680eda Merge pull request #8725 from reaperrr/bye-rendersimple-pr1
Step towards removing RenderSimple and its derivatives (Part 1)
2015-07-25 18:43:13 +03:00
Oliver Brakmann
8c766a4a79 Merge pull request #8721 from penev92/bleed_rename
Some more Country -> Faction renaming
2015-07-25 17:10:35 +02:00
reaperrr
65c95eb2ee Adapted WithHarvestAnimation to account for damage stages 2015-07-25 16:17:08 +02:00
penev92
4616828b28 Deprecate PlayerProperties.Race 2015-07-25 16:43:34 +03:00
bryanwilbur
031109d766 The 'Jump to base' hotkey is useless if the Construction Yard is destroyed #3318
Now works like original Red Alert.  When there are no more Construction Yards the 'Jump to base' hotkey goes to the oldest undestroyed building.
2015-07-25 10:04:14 +01:00
Paul Chote
c70ebfab74 Create the user map directory if required.
Fixes #8772.
2015-07-25 09:36:29 +01:00
reaperrr
2e9a4b78a3 Refactor RenderEditorOnly into RenderSpritesEditorOnly + WithSpriteBody 2015-07-25 10:28:07 +02:00
reaperrr
74b948342e Fix WithSpriteBody PlayCustomAnimationRepeating
Lacked damage stage awareness.
2015-07-25 10:28:05 +02:00
Pavel Penev
ded5a2b16a Merge pull request #8742 from abcdefg30/withpalettedeath
Support multiple WithDeathAnimation traits
2015-07-25 03:10:43 +03:00
penev92
7c1ef2231d Rename RaceInit to FactionInit 2015-07-25 00:39:31 +03:00
penev92
b34810c1d3 Rename AddRaceSuffixLogic to AddFactionSuffixLogic 2015-07-25 00:39:29 +03:00
penev92
9a36bf6bcd Rename CountryTooltipLogic to FactionTooltipLogic 2015-07-25 00:20:59 +03:00
penev92
dc30e5a46d Rename LobbyCountry to LobbyFaction 2015-07-25 00:20:58 +03:00
RoosterDragon
6b9dd9670a Avoid multiple AIs all issuing orders in exactly the same tick.
Randomize the initial tick used for each AI so they don't cause lag but all flooding the same tick with orders, but instead (try) and use a different tick for each AI. Order processing is expensive due to the need to sync world state, so it is best to spread out the performance cost of issuing these orders over different ticks.
2015-07-24 21:29:11 +01:00
deniz1a
f5b4befc75 Resets chat text field in lobby when Esc is pressed. 2015-07-24 23:21:37 +03:00