Skip to content

Commit 575a0cf

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into origin/ae-attach-discard-by-health-3
# Conflicts: # docs/Whats-New.md
2 parents 3a25891 + c8c2554 commit 575a0cf

18 files changed

+3551
-3049
lines changed

CREDITS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ This page lists all the individual contributions to the project by their author.
354354
- Fix `Hospital=yes` building can't kick out infantry after loading a save
355355
- `Edit/Clear Hate-Value` Trigger Action
356356
- `Set Force Enemy` Trigger Action
357-
- Fixed the issue where computer players did not search for new enemies after defeating them or forming alliances with them
357+
- Fix the issue where computer players did not search for new enemies after defeating them or forming alliances with them
358358
- **NetsuNegi**:
359359
- Forbidding parallel AI queues by type
360360
- Jumpjet crash speed fix when crashing onto building
@@ -385,7 +385,7 @@ This page lists all the individual contributions to the project by their author.
385385
- Customize airstrike targets
386386
- Separate the AirstrikeClass pointer between the attacker/aircraft and the target to avoid erroneous overwriting issues
387387
- Fix the bug that buildings will always be tinted as airstrike owner
388-
- Fix the bug that 'AllowAirstrike=no' cannot completely prevent air strikes from being launched against it
388+
- Fix the bug that `AllowAirstrike=no` cannot completely prevent air strikes from being launched against it
389389
- **Apollo** - Translucent SHP drawing patches
390390
- **ststl**:
391391
- Customizable `ShowTimer` priority of superweapons

docs/Fixed-or-Improved-Logics.md

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -213,17 +213,15 @@ This page describes all ingame logics that are fixed or improved in Phobos witho
213213
- Fixed an issue that units on the slope tilted at an excessive angle.
214214
- Fixed an issue that impassable invisible barrier generated by the behavior of infantry continuously entering vehicles.
215215
- Fixed an issue that teleport units board transport vehicles on the bridge will create an impassable invisible barrier, which may cause the game to freeze or even crash.
216-
- Fixed an issue that MCV will self-destruct when using trigger 107 to teleport.
217216
- Fixed an issue that moving MCV with Teleport locomotion will cause reconnection error.
218217
- Fixed wrong shadow when a vehicle has hover locomotor and is being lifted by `IsLocomotor=yes` warhead.
219218
- Fixed the bug that a unit can overlap with `Teleport` units after it's been damaged by a fallen unit lifted by `IsLocomotor=yes` warheads.
220219
- Fixed an issue that game crashes (EIP:7FB178) when infantry are about to enter an occupiable building that has been removed and is not real dead.
221220
- Fixed an issue that game crashes when spawnee has been removed and is not real dead.
222221
- Separated the AirstrikeClass pointer between the attacker/aircraft and the target to avoid erroneous overwriting issues.
223222
- Fixed the bug that buildings will always be tinted as airstrike owner.
224-
- Fixed the bug that 'AllowAirstrike=no' cannot completely prevent air strikes from being launched against it.
223+
- Fixed the bug that `AllowAirstrike=no` cannot completely prevent air strikes from being launched against it.
225224
- Fixed the issue where computer players did not search for new enemies after defeating them or forming alliances with them.
226-
- Fixed an issue that spawned `Strafe` aircraft on aircraft carriers may not be able to return normally if aircraft carriers moved a short distance when the aircraft is landing.
227225

228226
## Fixes / interactions with other extensions
229227

@@ -703,6 +701,22 @@ BallisticScatter.Max= ; floating point value, distance in cells
703701

704702
## Technos
705703

704+
### Airstrike target eligibility
705+
706+
- By default whether or not a building can be targeted by airstrikes depends on value of `CanC4`, which also affects other things. This can now be changed independently by setting `AllowAirstrike`. If not set, defaults to value of `CanC4`.
707+
- For non building situations, the default value is true.
708+
- Now it is possible to designate air strikes against non building targets.
709+
- The airstrike aircraft will now aim at the target itself rather than the cell beneath its feet.
710+
711+
In `rulesmd.ini`:
712+
```ini
713+
[SOMETECHNO] ; TechnoType
714+
AllowAirstrike= ; boolean
715+
716+
[SOMEWARHEAD] ; WarheadType
717+
AirstrikeTargets=building ; List of Affected Target Enumeration (none|infantry|units|buildings|all)
718+
```
719+
706720
### Alternate FLH customizations
707721

708722
- `AlternateFLH.OnTurret` can be used to customize whether or not `AlternateFLHN` used for `OpenTopped` transport firing coordinates, multiple mind control link offsets etc. is calculated relative to the unit's turret if available or body.
@@ -717,8 +731,8 @@ AlternateFLH.OnTurret=true ; boolean
717731

718732
- It is now possible to set a global cap for the effects of `InfantryGainSelfHeal` and `UnitsGainSelfHeal` by setting `InfantryGainSelfHealCap` & `UnitsGainSelfHealCap` under `[General]`, respectively.
719733
- Whether or not `MultiplayPassive=true` houses benefit from these effects can be controlled via `GainSelfHealAllowMultiplayPassive`.
720-
- It is also possible to change the pip frames displayed from `pips.shp` individually for infantry, units and buildings by setting the frames for infantry & unit self-healing on `Pips.SelfHeal.Infantry/Units/Buildings` under `[AudioVisual]`, respectively.
721-
- `Pips.SelfHeal.Infantry/Units/Buildings.Offset` can be used to customize the pixel offsets for the displayed pips, individually for infantry, units and buildings.
734+
- It is also possible to change the pip frames displayed from `pips.shp` individually for infantry, units and buildings by setting the frames for infantry & unit self-healing on `Pips.SelfHeal.(Infantry/Units/Buildings)` under `[AudioVisual]`, respectively.
735+
- `Pips.SelfHeal.(Infantry/Units/Buildings).Offset` can be used to customize the pixel offsets for the displayed pips, individually for infantry, units and buildings.
722736
- Whether or not a TechnoType benefits from effects of `InfantryGainSelfHeal` or `UnitsGainSelfHeal` buildings or neither can now be controlled by setting `SelfHealGainType`.
723737
- If `SelfHealGainType` is not set, InfantryTypes and VehicleTypes with `Organic` set to true gain self-healing from `InfantryGainSelfHeal`, other VehicleTypes from `UnitsGainSelfHeal` and AircraftTypes & BuildingTypes never gain self-healing.
724738

@@ -744,9 +758,9 @@ SelfHealGainType= ; Self-Heal Gain Type Enumeration (nohea
744758
### Chrono sparkle animation customization & improvements
745759

746760
- It is now possible to customize the frame delay between instances of `[General] -> ChronoSparkle1` animations created on objects being warped by setting `[General] -> ChronoSparkleDisplayDelay`.
747-
- By default on buildings with `MaxOccupants` higher than 0, chrono sparkle animation would be shown at each of the `MuzzleFlashX` coordinates. This behaviour is now customizable, and supports `MuzzleFlashX` indices higher than 10.
761+
- By default on buildings with `MaxNumberOccupants` higher than 0, chrono sparkle animation would be shown at each of the `MuzzleFlashX` coordinates. This behaviour is now customizable, and supports `MuzzleFlashX` indices higher than 10.
748762
- `[General] -> ChronoSparkleBuildingDisplayPositions` can be set to show the sparkle animation on the building (`building`), muzzle flash coordinates of current occupants (`occupants`), muzzle flash coordinates of all occupant slots (`occupantslots`) or any combination of these.
749-
- If `occupants` or `occupantslots` is listed without `building`, a single chrono sparkle animation is still displayed on building if it doesn't have any occupants or it has `MaxOccupants` value less than 1, respectively.
763+
- If `occupants` or `occupantslots` is listed without `building`, a single chrono sparkle animation is still displayed on building if it doesn't have any occupants or it has `MaxNumberOccupants` value less than 1, respectively.
750764
- The chrono sparkle animation that is displayed on building itself is also now displayed at the center of it rather than at center of its topmost cell.
751765

752766
In `rulesmd.ini`:
@@ -840,22 +854,6 @@ In `artmd.ini`:
840854
Image= ; name of the file that will be used as image, without extension
841855
```
842856

843-
### Airstrike target eligibility
844-
845-
- By default whether or not a building can be targeted by airstrikes depends on value of `CanC4`, which also affects other things. This can now be changed independently by setting `AllowAirstrike`. If not set, defaults to value of `CanC4`.
846-
- For non building situations, the default value is true.
847-
- Now it is possible to designate air strikes against non building targets.
848-
- The airstrike aircraft will now aim at the target itself rather than the cell beneath its feet.
849-
850-
In `rulesmd.ini`:
851-
```ini
852-
[SOMETECHNO]
853-
AllowAirstrike= ; boolean
854-
855-
[SOMEWARHEAD]
856-
AirstrikeTargets=building ; List of Affected Target Enumeration (none|infantry|units|buildings|all)
857-
```
858-
859857
### Customizable veterancy insignias
860858

861859
- You can now customize veterancy insignia of TechnoTypes.

docs/New-or-Enhanced-Logics.md

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ This page describes all the engine features that are either new and introduced b
8080
- `AttachEffect.InitialDelays` can be used to set the delays before first creating the effects on TechnoType. Defaults to 0 (immediately). Delay matching the position in `AttachTypes` is used for that type, or the last listed delay if not available.
8181
- `AttachEffect.RecreationDelays` is used to determine if the effect can be recreated if it is removed completely (e.g `AttachEffect.RemoveTypes`), and if yes, how long this takes. Defaults to -1, meaning no recreation. Delay matching the position in `AttachTypes` is used for that type, or the last listed delay if not available.
8282
- Note that neither `InitialDelays` or `RecreationDelays` count down if the effect cannot currently be active due to `DiscardOn` condition.
83-
83+
8484
- AttachEffectTypes can be attached to objects via Warheads using `AttachEffect.AttachTypes`.
8585
- `AttachEffect.DurationOverrides` can be used to override the default durations. Duration matching the position in `AttachTypes` is used for that type, or the last listed duration if not available.
8686
- `AttachEffect.CumulativeRefreshAll` if set to true makes it so that trying to attach `Cumulative=true` effect to a target that already has `Cumulative.MaxCount` amount of effects will refresh duration of all attached effects of the same type instead of only the one with shortest remaining duration. If `AttachEffect.CumulativeRefreshAll.OnAttach` is also set to true, this refresh applies even if the target does not have maximum allowed amount of effects of same type.
@@ -1176,6 +1176,22 @@ Detonate.AtFirer=false ; boolean
11761176

11771177
## Technos
11781178

1179+
### Aggressive attack move mission
1180+
1181+
- `AttackMove.Aggressive` allows your technos to attack the enemy's unarmed buildings more aggressively when in attack move mission (Ctrl+Shift).
1182+
- `AttackMove.UpdateTarget` allows your technos to automatically change and select a higher threat target when in attack move mission (Ctrl+Shift).
1183+
1184+
In `rulesmd.ini`:
1185+
```ini
1186+
[General]
1187+
AttackMove.Aggressive=false ; boolean
1188+
AttackMove.UpdateTarget=false ; boolean
1189+
1190+
[SOMETECHNO] ; TechnoType
1191+
AttackMove.Aggressive= ; boolean, default to [General] -> AttackMove.Aggressive
1192+
AttackMove.UpdateTarget= ; boolean, default to [General] -> AttackMove.UpdateTarget
1193+
```
1194+
11791195
### Aircraft spawner customizations
11801196

11811197
![image](_static/images/spawnrange-01.gif)
@@ -1766,67 +1782,36 @@ WarpInWeapon.UseDistanceAsDamage=false ; boolean
17661782
WarpOutWeapon= ; WeaponType
17671783
```
17681784

1769-
### Fast access vehicle
1770-
1771-
- Now you can let infantry or vehicle passengers quickly enter or leave the transport vehicles without queuing.
1772-
1773-
In `rulesmd.ini`:
1774-
```ini
1775-
[General]
1776-
NoQueueUpToEnter=false ; boolean
1777-
NoQueueUpToUnload=false ; boolean
1778-
1779-
[SOMEVEHICLE] ; VehicleType
1780-
NoQueueUpToEnter= ; boolean, default to [General] -> NoQueueUpToEnter
1781-
NoQueueUpToUnload= ; boolean, default to [General] -> NoQueueUpToUnload
1782-
```
1785+
## Terrain
17831786

1784-
### Aggressive attack move mission
1787+
### Destroy animation & sound
17851788

1786-
- `AttackMove.Aggressive` allows your technos to attack the enemy's unarmed buildings more aggressively when in attack move mission (Ctrl+Shift).
1787-
- `AttackMove.UpdateTarget` allows your technos to automatically change and select a higher threat target when in attack move mission (Ctrl+Shift).
1789+
- You can now specify a destroy animation and sound for a TerrainType that are played when it is destroyed.
17881790

17891791
In `rulesmd.ini`:
17901792
```ini
1791-
[General]
1792-
AttackMove.Aggressive=false ; boolean
1793-
AttackMove.UpdateTarget=false ; boolean
1794-
1795-
[SOMETECHNO]
1796-
AttackMove.Aggressive= ; boolean, default to [General] -> AttackMove.Aggressive
1797-
AttackMove.UpdateTarget= ; boolean, default to [General] -> AttackMove.UpdateTarget
1793+
[SOMETERRAINTYPE] ; TerrainType
1794+
DestroyAnim= ; AnimationType
1795+
DestroySound= ; Sound entry
17981796
```
17991797

1798+
## Vehicles
1799+
18001800
### Amphibious access vehicle
18011801

1802-
- Now you can let amphibious infantry or vehicle passengers enter or leave amphibious transport vehicles on water surface. Defaults to `[General]->AmphibiousEnter` or `[General]->AmphibiousUnload`.
1802+
- Now you can let amphibious infantry or vehicle passengers enter or leave amphibious transport vehicles on water surface.
18031803

18041804
In `rulesmd.ini`:
18051805
```ini
18061806
[General]
18071807
AmphibiousEnter=false ; boolean
18081808
AmphibiousUnload=false ; boolean
18091809

1810-
[SOMEVEHICLE] ; VehicleType
1811-
AmphibiousEnter= ; boolean
1812-
AmphibiousUnload= ; boolean
1813-
```
1814-
1815-
## Terrain
1816-
1817-
### Destroy animation & sound
1818-
1819-
- You can now specify a destroy animation and sound for a TerrainType that are played when it is destroyed.
1820-
1821-
In `rulesmd.ini`:
1822-
```ini
1823-
[SOMETERRAINTYPE] ; TerrainType
1824-
DestroyAnim= ; AnimationType
1825-
DestroySound= ; Sound entry
1810+
[SOMEVEHICLE] ; VehicleType, transport
1811+
AmphibiousEnter= ; boolean, default to [General] -> AmphibiousEnter
1812+
AmphibiousUnload= ; boolean, default to [General] -> AmphibiousUnload
18261813
```
18271814

1828-
## Vehicles
1829-
18301815
### Damaged unit image changes
18311816

18321817
- When a unit is damaged (health points percentage is lower than `[AudioVisual] -> ConditionYellow` percentage), it now may use different image set by `Image.ConditionYellow` VehicleType.
@@ -1846,6 +1831,21 @@ WaterImage.ConditionRed= ; VehicleType entry
18461831
Note that the VehicleTypes had to be defined under [VehicleTypes] and use same image type (SHP/VXL) for vanilla/damaged states.
18471832
```
18481833

1834+
### Fast access vehicle
1835+
1836+
- Now you can let infantry or vehicle passengers quickly enter or leave the transport vehicles without queuing.
1837+
1838+
In `rulesmd.ini`:
1839+
```ini
1840+
[General]
1841+
NoQueueUpToEnter=false ; boolean
1842+
NoQueueUpToUnload=false ; boolean
1843+
1844+
[SOMEVEHICLE] ; VehicleType, transport
1845+
NoQueueUpToEnter= ; boolean, default to [General] -> NoQueueUpToEnter
1846+
NoQueueUpToUnload= ; boolean, default to [General] -> NoQueueUpToUnload
1847+
```
1848+
18491849
### Jumpjet Tilts While Moving
18501850

18511851
![image](_static/images/jumpjet-tilt.gif)
@@ -2019,7 +2019,7 @@ DamageEnemiesMultiplier= ; floating point value
20192019

20202020
### Detonate Warhead on all objects on map
20212021

2022-
- Setting `DetonateOnAllMapObjects` to true allows a Warhead that is detonated by a projectile (for an example, this excludes things like animation `Warhead` and Ares' GenericWarhead superweapon but includes `Crit.Warhead` and animation `Weapon`) and consequently any `Airburst/ShrapnelWeapon` that may follow to detonate on each object currently alive and existing on the map regardless of its actual target, with optional filters. Note that this is done immediately prior Warhead detonation so after `PreImpactAnim` *(Ares feature)* has been displayed.
2022+
- Setting `DetonateOnAllMapObjects` to true allows a Warhead that is detonated by a projectile (for an example, this excludes things like animation `Warhead` and Ares' GenericWarhead superweapon but includes `Crit.Warhead` and animation `Weapon`) and consequently any `AirburstWeapon/ShrapnelWeapon` that may follow to detonate on each object currently alive and existing on the map regardless of its actual target, with optional filters. Note that this is done immediately prior Warhead detonation so after `PreImpactAnim` *(Ares feature)* has been displayed.
20232023
- `DetonateOnAllMapObjects.Full` customizes whether or not the Warhead is detonated fully on the targets (as part of a dummy weapon) or simply deals area damage and applies Phobos' Warhead effects.
20242024
- `DetonateOnAllMapObjects.AffectTargets` is used to filter which types of targets (TechnoTypes) are considered valid and must be set to a valid value other than `none` for this feature to work. Only `none`, `all`, `aircraft`, `buildings`, `infantry` and `units` are valid values. This is set to `none` by default as inclusion of all object types can be performance-heavy.
20252025
- `DetonateOnAllMapObjects.AffectHouses` is used to filter which houses targets can belong to be considered valid and must be set to a valid value other than `none` for this feature to work. Only applicable if the house that fired the projectile is known. This is set to `none` by default as inclusion of all houses can be performance-heavy.

0 commit comments

Comments
 (0)