Skip to content

Commit 7e3252f

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into random-anims
# Conflicts: # docs/Whats-New.md
2 parents 7c75494 + e1ac302 commit 7e3252f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+3819
-2986
lines changed

CREDITS.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ This page lists all the individual contributions to the project by their author.
166166
- `AreaFire` targeting customization
167167
- `CreateUnit` improvements
168168
- Attached animation & jumpjet unit layer customization
169-
- `IsSimpleDeployer` improvements
169+
- `IsSimpleDeployer` improvements & additions
170170
- Shield modification warheads
171171
- Warhead decloaking toggle
172172
- `Warp(In/Out)Weapon`
@@ -438,11 +438,12 @@ This page lists all the individual contributions to the project by their author.
438438
- Fix the bug that vehicle owned by computer will scatter when cloaking
439439
- Fix the bug that submarine always turn left after changed owner by map event
440440
- Fix the bug that occupyable structure won't redraw when press deploy hotkey to release all occupants
441-
- Fix the bug that Locomotor warhead wont stop working when the attacker is being affected by `Temporal=yes` warhead
441+
- Fix the bug that Locomotor warhead won't stop working when the attacker is being affected by `Temporal=yes` warhead
442442
- Fix the bug that `IsLocomotor=yes` warhead rendering hover units unselectable and undamageable on elevated bridge
443443
- Fix the bug that Locomotor warhead won't stop working when firer (except for vehicle) stop firing
444444
- Fix the bug that hover vehicle will sink if destroyed on bridge
445445
- Customize squid grapple animation
446+
- Fix the bug that armor multiplier of new attacheffect will have extra take effect once if restricted warheads
446447
- **Apollo** - Translucent SHP drawing patches
447448
- **ststl**:
448449
- Customizable `ShowTimer` priority of superweapons
@@ -541,6 +542,7 @@ This page lists all the individual contributions to the project by their author.
541542
- Fix an issue that barrel anim data will be incorrectly overwritten by turret anim data if the techno's section exists in the map file
542543
- Jumpjet Climbing Logic Enhancement
543544
- Fix for pathfinding crashes on big maps due to too small pathfinding node buffer
545+
- Fix an issue that units' `LaserTrails` will always lags behind by one frame
544546
- **Ollerus**:
545547
- Build limit group enhancement
546548
- Customizable rocker amplitude
@@ -561,6 +563,7 @@ This page lists all the individual contributions to the project by their author.
561563
- Damage multiplier for health percentage
562564
- Linked superweapons tweak
563565
- Randomized anims for several behaviors
566+
- Fixed customized `WarpAway` anim's wrong definition
564567
- **NaotoYuuki** - Vertical & meteor trajectory projectile prototypes
565568
- **handama** - AI script action to `16005 Jump Back To Previous Script`
566569
- **TaranDahl (航味麻酱)**:
@@ -603,6 +606,7 @@ This page lists all the individual contributions to the project by their author.
603606
- Force techno targeting in distributed frames to improve performance
604607
- Use `SkipCrushSlowdown=true` to avoid the bug related to `Accelerates=true` and `MovementZone=CrushAll`
605608
- Auto deploy for GI-like infantry
609+
- Fix an issue that Ares' Type Conversion not resetting barrel's direction by `FireAngle`
606610
- **solar-III (凤九歌)**
607611
- Target scanning delay customization (documentation)
608612
- Skip target scanning function calling for unarmed technos (documentation)

Phobos.vcxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
<ClCompile Include="src\Ext\Unit\Hooks.Firing.cpp" />
2626
<ClCompile Include="src\Ext\EBolt\Body.cpp" />
2727
<ClCompile Include="src\Ext\EBolt\Hooks.cpp" />
28+
<ClCompile Include="src\Ext\Unit\Hooks.SimpleDeployer.cpp" />
2829
<ClCompile Include="src\New\Type\Affiliated\CreateUnitTypeClass.cpp" />
2930
<ClCompile Include="src\Blowfish\blowfish.cpp" />
3031
<ClCompile Include="src\Blowfish\Hooks.Blowfish.cpp" />
@@ -161,7 +162,6 @@
161162
<ClCompile Include="src\Ext\Unit\Hooks.DisallowMoving.cpp" />
162163
<ClCompile Include="src\Ext\Unit\Hooks.DeploysInto.cpp" />
163164
<ClCompile Include="src\Ext\Unit\Hooks.Jumpjet.cpp" />
164-
<ClCompile Include="src\Ext\Unit\Hooks.Unload.cpp" />
165165
<ClCompile Include="src\Ext\WarheadType\Detonate.cpp" />
166166
<ClCompile Include="src\Ext\Techno\Hooks.WeaponEffects.cpp" />
167167
<ClCompile Include="src\Ext\Techno\Hooks.Tint.cpp" />

docs/Fixed-or-Improved-Logics.md

Lines changed: 29 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ This page describes all ingame logics that are fixed or improved in Phobos witho
191191
- `FreeUnit` uses the unit's own `SpeedType` to find the spawn location.
192192
- The bug where naval ships as StartUnit might spawn on land has been fixed.
193193
- When a building is transformed into a vehicle via `UndeploysInto`, the `SpeedType` and `MovementZone` of the target VehicleType will determine whether it can move into the target cell.
194-
- Fixed an issue that harvesters with amphibious movement zone can not automatically return to refineries with `WaterBound` on water surface. Units with `Teleporter=true` are not affected, as they can be used as long as set the refinerys `Naval` to false.
194+
- Fixed an issue that harvesters with amphibious movement zone can not automatically return to refineries with `WaterBound` on water surface. Units with `Teleporter=true` are not affected, as they can be used as long as set the refinery's `Naval` to false.
195195
- Units are now unable to kick out from a factory that is in construction process, and will not always stuck in the factory.
196196
- Fixed issues caused by incorrect reference removal (f.ex. If the unit cloaks/enters transport, it cannot gain experience from previously launched spawners/C4/projectiles).
197197
- Fixed an issue that caused `IsSonic=true` wave drawing to crash the game if the wave traveled over a certain distance.
@@ -248,21 +248,28 @@ This page describes all ingame logics that are fixed or improved in Phobos witho
248248
- Fixed the bug that submarine always turn left after changed owner by map event.
249249
- Fixed the bug that occupyable structure won't redraw when press deploy hotkey to release all occupants.
250250
- Fixed an issue that if the garrison unload occupants when there is no open space around it would result in the disappearance of the occupants.
251-
- Fixed the bug that Locomotor warhead wont stop working when the attacker is being affected by `Temporal=yes` warhead.
251+
- Fixed the bug that Locomotor warhead won't stop working when the attacker is being affected by `Temporal=yes` warhead.
252252
- Fixed the bug that `IsLocomotor=yes` warhead rendering hover units unselectable and undamageable on elevated bridge.
253253
- Fixed the bug that Locomotor warhead won't stop working when firer (except for vehicle) stop firing.
254254
- Fixed the bug that hover vehicle will sink if destroyed on bridge.
255255
- Fixed the fact that when the selected unit is in a rearmed state, it can unconditionally use attack mouse on the target.
256256
- When `Speed=0` or the TechnoTypes cell cannot move due to `MovementRestrictedTo`, vehicles cannot attack targets beyond the weapon's range. `Area Guard` and `Hunt` missions will also become ineffective.
257257
- Fixed an issue that barrel anim data will be incorrectly overwritten by turret anim data if the techno's section exists in the map file.
258258
- Fixed pathfinding crashes (EIP 0x42A525, 0x42C507, 0x42C554) that happened on bigger maps due to too small pathfinding node buffer.
259+
- `IsSimpleDeployer` `BalloonHover=true` units with `DeployToLand=false` are no longer forced to land when hovering.
260+
- If `DeployingAnim` with `Shadow=true` is played for unit currently in air its shadow will now be drawn on ground.
261+
- `DeployingAnim` now supports both `Normalized=true` and `Reverse=true`. Keep in mind `Reverse` uses `LoopEnd` for frame amount instead of `End` even without `LoopCount` > 1.
262+
- `DeployingAnim` using unit drawer now also tint accordingly with the unit.
263+
- Fixed the bug that armor multiplier of new attacheffect will have extra take effect once if restricted warheads.
264+
- Fixed an issue that units' `LaserTrails` will always lags behind by one frame
259265

260266
## Fixes / interactions with other extensions
261267

262268
- Weapons fired by EMPulse superweapons *(Ares feature)* now fully respect the firing building's FLH.
263269
- Weapons fired by EMPulse superweapons *(Ares feature)* without `EMPulse.TargetSelf=true` can now create radiation.
264270
- Weapons fired by EMPulse superweapons *(Ares feature)* now respect `Floater` and Phobos-added `Gravity` setting.
265271
- `IsSimpleDeployer` units with Hover locomotor and `DeployToLand` no longer get stuck after deploying or play their move sound indefinitely.
272+
- `Convert.Deploy` displays 'no deploy' cursor if the new type is not allowed to move to the cell due to `SpeedType` etc
266273
- All forms of type conversion (including Ares') now correctly update the warp-in delay if unit with teleport `Locomotor` was converted while the delay was active.
267274
- All forms of type conversion (including Ares') now correctly update `MoveSound` if a moving unit has their type changed.
268275
- All forms of type conversion (including Ares') now correctly update `OpenTopped` state of passengers in transport that is converted.
@@ -281,7 +288,7 @@ This page describes all ingame logics that are fixed or improved in Phobos witho
281288
- 1000 save files are supported, from `SVGM_000.NET` to `SVGM_999.NET`. When the limit is reached, the game will overwrite the latest save file.
282289
- The previous `SVGM_XXX.NET` files are cleaned up before first copy if it's a new game, otherwise the highest numbered `SVGM_XXX.NET` file is found and the index is incremented, if possible.
283290
- The game also automatically copies `spawn.ini` to the save folder as `spawnSG.ini` when saving a game.
284-
291+
- Fixed an issue that Ares' Type Conversion not resetting barrel's direction by `FireAngle`.
285292

286293
```{note}
287294
The described behavior is a replica of and is compliant with XNA CnCNet Client's multiplayer save game support.
@@ -328,7 +335,7 @@ FiringForceScatter=true ; boolean
328335
In `rulesmd.ini`:
329336
```ini
330337
[General]
331-
ExtendedAircraftMissions=false ; boolean
338+
ExtendedAircraftMissions=false ; boolean
332339

333340
[SOMEAIRCRAFT] ; AircraftType
334341
ExtendedAircraftMissions.SmoothMoving= ; boolean, default to [General] -> ExtendedAircraftMissions
@@ -730,7 +737,7 @@ BuildingWaypoints=false ; boolean
730737

731738
### Auto deploy for GI-like infantry
732739

733-
- In RA2, the GI-like infantry controlled by the AI will automatically deploy to use their more powerful secondary weapons when engaging the enemy. This feature was broken in Yuris Revenge. Now you can use the following flags to re-enable this feature.
740+
- In RA2, the GI-like infantry controlled by the AI will automatically deploy to use their more powerful secondary weapons when engaging the enemy. This feature was broken in Yuri's Revenge. Now you can use the following flags to re-enable this feature.
734741

735742
In `rulesmd.ini`:
736743
```ini
@@ -1027,15 +1034,15 @@ TargetZoneScanType=same ; target zone scan enumeration (same|any|inrange)
10271034
*Chrono Legionnaire and Ronco using different teleportation settings in [YR: New War](https://www.moddb.com/mods/yuris-revenge-new-war)*
10281035

10291036
- You can now specify Teleport/Chrono Locomotor settings per TechnoType to override default rules values. Unfilled values default to values in `[General]`.
1030-
- Only applicable to Techno that have Teleport/Chrono Locomotor attached.
1037+
- Applicable to Techno that have Teleport/Chrono Locomotor attached, or being chronowarped by chronosphere.
10311038
- If more than one animation is listed in `WarpOut`, `WarpIn` or `WarpAway`, a random one is selected.
10321039

10331040
In `rulesmd.ini`:
10341041
```ini
10351042
[SOMETECHNO] ; TechnoType
10361043
WarpOut= ; list of Animation (played when Techno warping out), default to [General] WarpOut
10371044
WarpIn= ; list of Animation (played when Techno warping in), default to [General] WarpIn
1038-
WarpAway= ; list of Animation (played when Techno chronowarped by chronosphere), default to [General] WarpOut
1045+
WarpAway= ; list of Animation (played when Techno being erased by `Temporal=yes` warhead), default to [General] WarpAway
10391046
ChronoTrigger= ; boolean, if yes then delay varies by distance, if no it is a constant
10401047
ChronoDistanceFactor= ; integer, amount to divide the distance to destination by to get the warped out delay
10411048
ChronoMinimumDelay= ; integer, the minimum delay for teleporting, no matter how short the distance
@@ -1728,50 +1735,29 @@ DestroyAnim.Random=true ; boolean
17281735

17291736
### `IsSimpleDeployer` vehicle ammo change on deploy
17301737

1731-
- `Ammo.AddOnDeploy` determines the number of ammo added or substracted on unit deploy.
1732-
1738+
- `Ammo.AddOnDeploy` determines the number of ammo added or subtracted after the vehicle has deployed or undeployed.
1739+
- Ammo count cannot go below 0 or above the maximum ammo for vehicle's type (in case the deploy results in type conversion, type is the one after the conversion).
1740+
17331741
In `rulesmd.ini`:
17341742
```ini
1735-
[SOMEVEHICLE] ; VehicleType
1736-
Ammo.AddOnDeploy=0 ; integer
1737-
```
1738-
1739-
```{warning}
1740-
Due to technical constraints, units that use `Convert.Deploy` from [Ares' Type Conversion](https://ares-developers.github.io/Ares-docs/new/typeconversion.html) to change type with `Ammo.AddOnDeploy` will add or substract ammo despite of convertion success. This will also happen when unit exits tank bunker.
1741-
```
1742-
1743-
### `IsSimpleDeployer` vehicle auto-deploy / deploy block on ammo change
1744-
1745-
- Vehicle deployment can now be affected by ammo count.
1746-
- `Ammo.AutoDeployMinimumAmount` determines the minimal number of ammo at which a vehicle converts/deploys automatically.
1747-
- `Ammo.DeployUnlockMinimumAmount` determines the minimal number of ammo that unlocks issuing vehicle converting/deploying command.
1748-
- `Ammo.AutoDeployMaximumAmount` and `Ammo.DeployUnlockMaximumAmount` behave analogically.
1749-
- Setting a negative number will disable ammo count check.
1750-
1751-
In `rulesmd.ini`:
1752-
```ini
1753-
[SOMEVEHICLE] ; VehicleType
1754-
Ammo.AutoDeployMinimumAmount=-1 ; integer
1755-
Ammo.AutoDeployMaximumAmount=-1 ; integer
1756-
Ammo.DeployUnlockMinimumAmount=-1 ; integer
1757-
Ammo.DeployUnlockMaximumAmount=-1 ; integer
1758-
```
1759-
1760-
```{warning}
1761-
Auto-deploy feature requires `Convert.Deploy` from [Ares' Type Conversion](https://ares-developers.github.io/Ares-docs/new/typeconversion.html) to change type. Unit without it will constantly use deploy command on self until ammo is changed.
1743+
[SOMEVEHICLE] ; VehicleType
1744+
Ammo.AddOnDeploy=0 ; integer
17621745
```
17631746

1764-
### IsSimpleDeployer vehicle deploy animation / direction customization
1747+
### IsSimpleDeployer facing and animation customization
17651748

1766-
- `DeployingAnim.AllowAnyDirection` if set, disables any direction constraints for deployers with `DeployingAnim` set. Only works for ground units.
1767-
- `DeployingAnim.KeepUnitVisible` determines if the unit is **not** hidden while the animation is playing.
1768-
- `DeployingAnim.ReverseForUndeploy` controls whether or not the animation is played in reverse for undeploying.
1769-
- `DeployingAnim.UseUnitDrawer` controls whether or not the animation is displayed in the unit's palette and team colours or regular animation palette, including a potential custom palette.
1749+
- In vanilla game only units with `DeployingAnim` were constrained to a specific deploy facing and it was not customizable per unit. `DeployDir` can be set to override this per unit (defaults to `[AudioVisual]` -> `DeployDir`), including using value of -1 to disable the facing restriction.
1750+
- Multiple new options for deploy animations:
1751+
- `DeployingAnims` can be used instead of `DeployingAnim` (if both are set, `DeployingAnims` takes precedence) to define a list of direction-specific deploy animations to play. Largest power of 2 the number of listed animations falls to is used as number of directions/animations. Less than 8 animations listed results in only first listed one being used.
1752+
- `DeployingAnim.KeepUnitVisible` determines if the unit is **not** hidden while the animation is playing.
1753+
- `DeployingAnim.ReverseForUndeploy` controls whether or not the animation is played in reverse for undeploying.
1754+
- `DeployingAnim.UseUnitDrawer` controls whether or not the animation is displayed in the unit's palette and team colours or regular animation palette, including a potential custom palette.
17701755

17711756
In `rulesmd.ini`:
17721757
```ini
17731758
[SOMEVEHICLE] ; VehicleType
1774-
DeployingAnim.AllowAnyDirection=false ; boolean
1759+
DeployDir= ; Facing type (integers from 0-7 or -1)
1760+
DeployingAnims= ; List of AnimationTypes
17751761
DeployingAnim.KeepUnitVisible=false ; boolean
17761762
DeployingAnim.ReverseForUndeploy=true ; boolean
17771763
DeployingAnim.UseUnitDrawer=true ; boolean
@@ -1847,7 +1833,7 @@ Sinkable.SquidGrab=true ; boolean
18471833

18481834
### Turret recoil
18491835

1850-
- Now you can use `TurretRecoil` to control units turret/barrel recoil effect when firing.
1836+
- Now you can use `TurretRecoil` to control units' turret/barrel recoil effect when firing.
18511837
- `TurretTravel` and `BarrelTravel` control the maximum recoil distance.
18521838
- `TurretRecoil.Suppress` can prevent the weapon from producing this effect when firing.
18531839

docs/New-or-Enhanced-Logics.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2007,6 +2007,21 @@ AmphibiousEnter= ; boolean, default to [General] -> AmphibiousEnter
20072007
AmphibiousUnload= ; boolean, default to [General] -> AmphibiousUnload
20082008
```
20092009

2010+
### Automatic deploy and blocking deploying based on ammo
2011+
2012+
- It is now possible for deployable vehicles (`DeploysInto`, `DeployFire`, `IsSimpleDeployer` and those that have passengers) to automatically deploy or prevent deploying based on their current ammo.
2013+
- `Ammo.AutoDeployMinimumAmount` & `Ammo.AutoDeployMaximumAmount` determine minimum and maximum ammo the vehicle should have for it to automatically deploy. Negative values disable the check.
2014+
- `Ammo.DeployUnlockMinimumAmount` & `Ammo.AutoDeployMaximumAmount` determine minimum and maximum ammo the vehicle should have for deploying to be available in general. Negative values disable the check.
2015+
2016+
In `rulesmd.ini`:
2017+
```ini
2018+
[SOMEVEHICLE] ; VehicleType
2019+
Ammo.AutoDeployMinimumAmount=-1 ; integer
2020+
Ammo.AutoDeployMaximumAmount=-1 ; integer
2021+
Ammo.DeployUnlockMinimumAmount=-1 ; integer
2022+
Ammo.DeployUnlockMaximumAmount=-1 ; integer
2023+
```
2024+
20102025
### Damaged unit image changes
20112026

20122027
- 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.
@@ -2619,6 +2634,7 @@ OmniFire.TurnToTarget=no ; boolean
26192634
- `Strafing.Shots` controls the number of times the weapon is fired during a single strafe run, defaults to 5 if not set. `Ammo` is only deducted at the end of the strafe run, regardless of the number of shots fired.
26202635
- `Strafing.SimulateBurst` controls whether or not the shots fired during strafing simulate behavior of `Burst`, allowing for alternating firing offset. Only takes effect if weapon has `Burst` set to 1 or undefined.
26212636
- `Strafing.UseAmmoPerShot`, if set to `true` overrides the usual behaviour of only deducting ammo after a strafing run and instead doing it after each individual shot.
2637+
- `Strafing.TargetCell` controls whether the aircraft will change the target of this round to the ground after firing the first shot, to ensure that all `Strafing.Shots` can be dropped. That is, the `Strafing` will not be interrupted by the premature death of the target.
26222638
- `Strafing.EndDelay` can be used to override the delay after firing last shot in strafing run before aircraft resumes another strafing run or returns to base. Defaults to (Weapon `Range` * 256 + 1024) / Aircraft `Speed`. Note that using a short delay with aircraft that can do multiple strafing runs with their ammo can cause undesired behaviour like dancing around or facing weird way depending on other factors like ROF and/or movement speed.
26232639
- There is a special case for aircraft spawned by `Type=SpyPlane` superweapons on `SpyPlane Approach` or `SpyPlane Overfly` mission where `Strafing.Shots` only if explicitly set on its primary weapon, determines the maximum number of times the map revealing effect can activate irregardless of other factors.
26242640

@@ -2629,6 +2645,7 @@ Strafing= ; boolean
26292645
Strafing.Shots= ; integer
26302646
Strafing.SimulateBurst=false ; boolean
26312647
Strafing.UseAmmoPerShot=false ; boolean
2648+
Strafing.TargetCell=false ; boolean
26322649
Strafing.EndDelay= ; integer, game frames
26332650
```
26342651

0 commit comments

Comments
 (0)