Make Crushable compatible with non-mobile actors.
Change RA, TD and TS infantry die-crushed sequence ZOffsets in preparation
for future engine changes.
Add descriptions and CrushedByFriendlies to Crushable.
Adapt code to factor in whether the palette is a player palette.
Changes included:
Decision can be defined for the AI support powers, governing their targeting.
Each decision can be made up of multiple considerations.
Note: 3rd party KotH maps will need to be modified to work correctly
with this change. Previously, StrategicVictoryConditions was a
supplement to ConquestVictoryConditions. After this change, each works
by itself. So KotH maps will need to remove the ConquestVictoryConditions
trait from the player definitions, or both victory conditions will have
to be satisfied to win the game.
Objectives can be either primary or secondary objectives. Primary ones
influence the outcome of the game. If all primary objectives are
completed the game is won, and lost when any of them fails.
Objectives can be added at any stage during the game, allowing to react
dynamically to game events.
The objectives backend only contains the information about the
objectives themselves. It does not check if objectives are completed or
failed. Instead, the state of objectives must be manually marked. The
backend, however, does check whether the game is won or lost.
Changes included:
Warhead code split out of weapon code and refactored.
Warhead functionality now split into several classes, each handling one effect/impact.
Additional custom warheads can now be defined and called via yaml.
Custom warheads inherit the abstract class Warhead,
which provides target check functions.
Custom warheads have to define their own impact functions,
and can also define their own replacement for check
functions.
string[] CloneableTypes checks Cloneable.Types
Cloneable:
string[] Types checked by ClonesProductionUnits.CloneableTypes
Added INotifyOtherProduction
for notifying self when another actor
produces a unit.