Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[General Purpose] New Tracing trajectory #1481

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

CrimRecya
Copy link
Contributor

@CrimRecya CrimRecya commented Dec 28, 2024

  • A trajectory that keeps following the target and will only detonate when its survival time is exhausted.
    • Trajectory.Tracing.TraceMode controls how should the projectile trace the target. This is used to calculate coordinate axis of Trajectory.Tracing.OffsetCoord located on the tracking target. The H axis is not affected by the tilt and deflection of the tracking target, and always faces directly above. This has the following 6 modes.
      • Connection - Line vector. Take the horizontal component of the vector between the launch position and the target position as the F axis.
      • Global - Map direction. Take the lower right side of the map as the F axis.
      • Body - Follow the body. The F axis is the body orientation of the tracking target.
      • Turret - Follow the turret. The F axis is the turret orientation of the tracking target.
      • RotateCW - Rotate clockwise. Rotate clockwise around the H axis with the resultant offset in the FL direction as the radius.
      • RotateCCW - Rotate counterclockwise. Rotate counterclockwise around the H axis with the resultant offset in the FL direction as the radius.
    • Trajectory.Tracing.TheDuration controls the tracing duration in frames. If it is a non-positive number, the projectile will use weapon's ROF-10 as the duration. At least 1 frame.
    • Trajectory.Tracing.TolerantTime controls how long the projectile will detonate after losing the target. If it is 0, it will detonate directly when switching targets.
    • Trajectory.Tracing.ROT controls the rotational speed of the projectile. When it is negative, it will follow the direction of movement. When it is 0, it will always face the target. When it is positive, it will rotate towards the target according to this speed. If Trajectory.Tracing.BulletSpin=true, the direction of rotation is determined by its positive or negative sign, and the speed of rotation is determined by its value.
    • Trajectory.Tracing.BulletSpin controls whether the projectile will continuously rotate itself like TurretSpin.
    • Trajectory.Tracing.PeacefullyVanish controls whether the projectile disappears directly when it is about to detonate, without producing animation or causing damage
    • Trajectory.Tracing.TraceTheTarget controls whether the target tracked by the projectile is the target of the projectile, and the tracing weapons will be fired by the unit towards the projectile. Otherwise, it will trace the firer, and the tracing weapons will be fired from the projectile towards the target. At the same time, the projectile will detonate if the firer dies.
    • Trajectory.Tracing.CreateAtTarget controls whether the projectile is directly generated at the target position.
    • Trajectory.Tracing.CreateCoord controls the generate position. Not related to Trajectory.Tracing.TraceMode.
    • Trajectory.Tracing.OffsetCoord controls the tracing position on its target, use Trajectory.Tracing.TraceMode determines the specific location.
    • Trajectory.Tracing.WeaponCoord controls the FLH where the projectile fires the weapon when Trajectory.Tracing.TraceTheTarget=false.
    • Trajectory.Tracing.Weapons defines the tracing weapons of the projectile.
      • Trajectory.Tracing.WeaponCount controls how many times the projectile can fire the corresponding weapon. Set to a negative value means unlimited times. If set to zero, the cooling will be calculated directly without firing the tracing weapon. If the quantity is less than Trajectory.Tracing.Weapons, the last value in the list will be used.
      • Trajectory.Tracing.WeaponDelay controls the delay after firing the corresponding weapon, at least 1 frame. If the quantity is less than Trajectory.Tracing.Weapons, the last value in the list will be used.
      • Trajectory.Tracing.WeaponTimer controls the initial delay for firing the tracing weapons defined by Trajectory.Tracing.Weapons.
      • Trajectory.Tracing.WeaponCycle controls how many rounds of weapons the projectile can fire, zero will not fire weapons, and negative numbers are considered infinite.
      • Trajectory.Tracing.WeaponCheck controls whether the projectile will check its orientation before firing the tracing weapons. Ignore this if Trajectory.Tracing.Synchronize=false or Trajectory.Tracing.TraceTheTarget=true or Trajectory.Tracing.BulletSpin=true or have negative Trajectory.Tracing.ROT.
    • Trajectory.Tracing.Synchronize controls whether the target of the projectile is synchronized with the target of its firer. If not, the projectile will not update the target. When Trajectory.Tracing.TraceTheTarget=no, the tracing weapons will select their own targets to attack based on its range.
    • Trajectory.Tracing.SuicideAboveRange controls whether the projectile will explode if its target exceeds the range.
    • Trajectory.Tracing.SuicideIfNoWeapon controls whether the projectile will explode after firing the final weapon.

rulesmd.ini 之中:

[SOMEPROJECTILE]                          ; Projectile
Trajectory=Tracing                        ; Trajectory type
Trajectory.Tracing.TraceMode=Connection   ; TraceMode value enumeration (Connection|Global|Body|Turret|RotateCW|RotateCCW)
Trajectory.Tracing.TheDuration=0          ; integer
Trajectory.Tracing.TolerantTime=-1        ; integer
Trajectory.Tracing.ROT=-1                 ; integer
Trajectory.Tracing.BulletSpin=no          ; boolean
Trajectory.Tracing.PeacefullyVanish=no    ; boolean
Trajectory.Tracing.TraceTheTarget=yes     ; boolean
Trajectory.Tracing.CreateAtTarget=no      ; boolean
Trajectory.Tracing.CreateCoord=0,0,0      ; integer - Forward,Lateral,Height
Trajectory.Tracing.OffsetCoord=0,0,0      ; integer - Forward,Lateral,Height
Trajectory.Tracing.WeaponCoord=0,0,0      ; integer - Forward,Lateral,Height
Trajectory.Tracing.Weapons=               ; list of WeaponTypes
Trajectory.Tracing.WeaponCount=           ; list of integers
Trajectory.Tracing.WeaponDelay=           ; list of integers
Trajectory.Tracing.WeaponTimer=0          ; integer
Trajectory.Tracing.WeaponCycle=-1         ; integer
Trajectory.Tracing.WeaponCheck=no         ; boolean
Trajectory.Tracing.Synchronize=yes        ; boolean
Trajectory.Tracing.SuicideAboveRange=no   ; boolean
Trajectory.Tracing.SuicideIfNoWeapon=no   ; boolean
- If you set `Trajectory.Tracing.TraceTheTarget=false` and `Trajectory.Tracing.Synchronize=false`, make sure you set low `Range` values for weapons in `Trajectory.Tracing.Weapons` unless necessary.
- Note that the listed Weapons in `Trajectory.Tracing.Weapons` must be listed in `[WeaponTypes]` for them to work.
- `Trajectory.Tracing.Weapons` now not support customized `Bolt.ColorN`.

Copy link

github-actions bot commented Dec 28, 2024

Nightly build for this pull request:

This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant