-
-
Notifications
You must be signed in to change notification settings - Fork 125
New trajectory system #2060
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
Draft
TaranDahl
wants to merge
194
commits into
Phobos-developers:develop
Choose a base branch
from
TaranDahl:新轨迹系统
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
New trajectory system #2060
The head ref may contain hidden characters: "\u65B0\u8F68\u8FF9\u7CFB\u7EDF"
+8,961
−3,821
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
Author
|
TODO:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reopening #1582
Projectile life cycle logic
LifeDurationcontrols the duration the projectile can exist, and at the end of the time, the projectile will detonate. If it is a non positive number, there will be no timing. The following are exceptions.Trajectory=Engrave, if it is a non positive number, automatically useTrajectory.Engrave.SourceCoordandTrajectory.Engrave.TargetCoordto calculate the process duration. At this point,Trajectory.Engrave.TargetCoordcan be regarded as the endpoint coordinates of the cutting line segment.Trajectory=Tracing, if set to zero, use weapon'sROF-10 as the duration. At least 1 frame. If it is negative, do not time it.NoTargetLifeTimecontrols how long the projectile will live after losing the target. If it is 0, it will detonate instantly when switching targets.CreateCapacitycontrols the capacity that this type of trajectory projectile can be fired. When it is set to a non negative number, the trajectory projectile can only be fired when number of this trajectory type fired by the firer on the map is less than this value, namely effective. That is, every firer can have this number of projectiles.PeacefulVanishcontrols whether the projectile disappears directly when it is about to detonate, without producing animation or causing damage. Default to true ifTrajectory=EngraveorProximityImpactnot equal to 0 orDisperseCyclenot equal to 0.ApplyRangeModifierscontrols whether any applicable weapon range modifiers from the firer are applied to the projectile. Effective options includeLifeDuration,DamageEdgeAttenuationandTrajectory.DetonationDistance.In
rulesmd.ini:Projectile release warheads
PassDetonateenables extra detonations when the projectile is traveling. (You can use this when you want the projectile to detonate warheads every other distance/time during the flight.)PassDetonateWarheaddefines the warhead detonated byPassDetonate. If not set, use the original warhead of the projectile.PassDetonateDamagedefines the damage caused byPassDetonateWarhead. If not set, use the original damage of the projectile.PassDetonateDelaycontrols the delay for detonating the warhead defined byPassDetonateWarhead.PassDetonateInitialDelaycontrols the initial delay for detonating the warhead defined byPassDetonateWarhead.PassDetonateLocalcontrols whetherPassDetonateWarheadand weapon'sWarheadare always detonate at ground level.ProximityImpactcontrols the initial proximity fuse times of detonations. When there are enough remaining times of detonations and the projectile approaches another valid target, it will detonate a warhead defined byProximityWarheadon it. If the times is about to run out, it will also detonate itself at its location. This function can be cancelled by setting to 0. A negative integer means unlimited times. By the way, you can use the weapon'sWarheadwith lowVersusonly to aim at the target, and use theProximityWarheadto causing actual harm. (You can use this to cause non repeated damage to all units encountered during the flight of the projectile.)ProximityWarheaddefines the warhead detonated byProximityImpact. If not set, use the original warhead of the projectile.ProximityDamagedefines the damage caused byProximityWarhead. If not set, use the original damage of the projectile.ProximityRadiuscontrols the range of proximity fuse. It can NOT be set as a negative value.ProximityDirectcontrols whether let the target receive damage instead of detonating the warhead.ProximityMedialcontrols whether to detonateProximityWarheadat the bullet's location rather than the proximity target's location. IfProximityDirectis set to true, this will only affect the calculation result ofDamageEdgeAttenuation.ProximityAlliescontrols whether allies will also trigger the proximity fuse.ProximityFlightcontrols whether to count units in the air.PassThroughVehiclescontrols whether the projectile will not be obstructed by vehicles or aircrafts on the ground. When it is obstructed, it will be directly detonated at its location. If it still haveProximityImpacttimes, it will also detonate aProximityWarheadat the location of the obstacle. Before the projectile being blocked,ProximityImpactwill also not cause damage to vehicles or aircrafts.PassThroughBuildingcontrols whether the projectile will not be obstructed by buildings. When it is obstructed, it will be directly detonated at its location. If it still haveProximityImpacttimes, it will also detonate aProximityImpactat the location of the obstacle. Before the projectile being blocked,ProximityImpactwill also not cause damage to buildings.DamageEdgeAttenuationcontrols the edge attenuation ratio of projectile damage (includes all types of the trajectory's damage), that is, the actual damage caused will be this value multiplied by the ratio of the current distance to the weapon's range. Can NOT be set to a negative value.DamageCountAttenuationcontrols the attenuation coefficient related to frequency of projectile damage (includes all types of the trajectory's damage), that is, how many times the next damage after each bounce is the damage just caused. Can NOT be set to a negative value.In
rulesmd.ini:Projectile release weapons
UseDisperseCoordcontrols whether the fire position need to replaced with the FLH of its superior's trajectory. It can be nested and inherited. Only takes effect when it is fired from one of theDisperseWeapons.Trajectory=EngraveorTrajectory=Tracing, it will also be used as a starting point for laser drawing.DisperseWeaponsdefines the dispersal weapons of the projectile.DisperseBurstsdefines how many corresponding weapons each time the projectile will fire. When the quantity is lower thanDisperseWeapons, the last value in the list will be used.DisperseCountscontrols how many times the projectile can fire the weapon. Set to a negative value means unlimited times. If set to zero, the cooling will be calculated directly without firing the weapon. If the quantity is less than the number of firing groups, the last value in the list will be used.DisperseDelayscontrols the interval delays for dispersing the weapons, at least 1 frame. If the quantity is less than the number of firing groups, the last value in the list will be used.DisperseCyclecontrols how many rounds of weapons the projectile can fire, zero will not fire weapons, and negative numbers are considered infinite.DisperseInitialDelaycontrols the initial delay for dispersing the weapons defined byDisperseWeapons.DisperseEffectiveRangecontrols the weapon dispersing timer to start counting only within this distance of reaching the target. Set to 0 to disable this function. Set to a negative value means it will only Disperse the weapon at most once before detonation.DisperseSeparatecontrols whether the projectile no longer fire all the weapons inDisperseWeaponsat once and instead fire a group of weapons in the list order, followingDisperseBursts. And control how to calculate the number of firing groups. In short, if true, group the weapons and fire them the corresponding counts of times inDisperseWeaponsorder. Otherwise, fire all weapons simultaneously and fire sequentially inDisperseCountsorder.DisperseRetargetcontrols whether the Disperse weapons will find new targets on their own. Using theRange,CanTarget,CanTargetHouses, requiredAttachedEffectsof weapons to search new targets.DisperseLocationcontrols whether the Disperse weapons will search for new targets at the center of the spreading position, otherwise they will focus on the original target.DisperseTendencycontrols whether the Disperse weapons will choose the original target as the first new target in each group of weapons.DisperseHolisticcontrols whether the Disperse weapons will choose targets that are in different states from the original target (in air and on ground).DisperseMarginalcontrols whether the Disperse weapons will choose unimportant items such as trees (regard as on ground), streetlights (regard as on ground) or bullets (regard as in air) as secondary targets.DisperseDoRepeatcontrols whether the Disperse weapons will select duplicate targets when the number of targets is insufficient. If it is set to true, when the weapon can select both the technos and the ground as targets, the technos will be prioritized, then if all non-repeating technos have been selected and the weapon can still be launched at this time (in each round of salvo), it will start selecting duplicate technos. If it is set to false, when the weapon can select both the technos and the ground as targets, the technos will be prioritized, followed by the ground cells, then if all non-repeating targets have been selected and the weapon can still be launched at this time (in each round of salvo), it will stop firing remaining bursts. (The priority of secondary targets is between the technos and the ground.)DisperseSuicidecontrols whether the projectile will self destruct after the number of times it spreads the weapon has been exhausted.DisperseFromFirercontrols whether the weapons will be fired by the firer towards the projectile. Otherwise, the tracing weapons will be fired from the projectile towards the target. WhenTrajectory=EngraveorTrajectory=Tracing, the default is true, while others are false.DisperseFaceCheckcontrols whether the projectile will check its orientation before firing the weapons. Ignore this if there is noTrajectorysetting or there isTrajectory.BulletFacing=VelocityorTrajectory.BulletFacing=Spin.DisperseForceFirecontrols whether still fire disperse weapon when the projectile itself has no target or whenSynchronize=trueand the target of the projectile is beyond the weapon's range.DisperseCoordcontrols the FLH where the projectile fires the weapon when setDisperseFromFirerto false.In
rulesmd.ini:Projectile retargeting logic
RetargetRadiuscontrols the radius of the projectile to search for a new target after losing its original target. The projectile will search for new target at the original target's location. The following have exceptions.Trajectory=Missile, if the projectile hasn't arrivedTrajectory.Missile.PreAimCoordyet, the last coordinate of the original target is taken as the center of the searching circle. Otherwise, the coordinate of the distance in front of the projectile is taken as the center of the circle. Set to 0 indicates that this function is not enabled, and it will still attempt to attack the original target's location. If it is set to a negative value, it will self explode in place when it starts searching.Trajectory=Tracing, the projectile will search for new target at the current position of itself.RetargetIntervalcontrols the interval between each search for a new target again.RetargetHousescontrols the projectile can find new target from which houses.Synchronizecontrols whether the target of the projectile is synchronized with the target of its firer. If not, the projectile will not update the target.In
rulesmd.ini:Projectile trajectories
Trajectoryshould not be combined with original game's projectile trajectory logics (Arcing,ROT,VerticalorInviso). Attempt to do so will result in the other logics being disabled and a warning being written to log file.Trajectory.Speeddefines the speed of the projectile, which unlikeSpeedused byROT> 0 projectiles is defined on projectile not weapon.Trajectory=Straight, it refers to the whole distance speed of the projectile.Trajectory=Bombard, it refers to the initial speed of the projectile.Trajectory=Missile, it refers to the final speed of the projectile.Trajectory.Speedwill be fixed at 192 by settingTrajectory.Missile.UniqueCurve=true.Trajectory=Engrave, it refers to the horizontal engrave speed of the projectile and it cannot exceed 128. Recommend set as about 40.Trajectory=Parabola, it refers to the horizontal velocity of the projectile and is only used for modesSpeed,SpeedAndHeight, orSpeedAndAngle.Trajectory=Tracing, it refers to the moving speed of the projectile.Trajectory.BulletROTcontrols the rotational speed of the projectile's orientation (facing direction).Trajectory.BulletFacingcontrols what direction the projectile should face. This has the following 7 modes.Velocity- Towards the direction of motion of the projectile. WhenTrajectory.BulletROTis a non-positive value, it will always face this direction.Trajectory.BulletFacingOnPlanecontrols whether it will only rotates on a horizontal plane.Spin- Continuously rotating itself on a horizontal plane. WhenTrajectory.BulletROTis 0, it will be unable to rotate. The positive and negative ofTrajectory.BulletROTcan control the direction.Stable- Static after launch and no longer rotates towards the direction.Trajectory.BulletFacingOnPlanecontrols whether its direction will only on a horizontal plane.Target- Towards the target unit. WhenTrajectory.BulletROTis a non-positive value, it will always face this direction.Trajectory.BulletFacingOnPlanecontrols whether it will only rotates on a horizontal plane.Destination- Towards the direction of the projectile's destination (Not necessarily to the target. For example, inTrajectory=Straight, it will be the initial position of the target, and withTrajectory.LeadTimeCalculate, it will be a position in front of the target). WhenTrajectory.BulletROTis a non-positive value, it will always face this direction.Trajectory.BulletFacingOnPlanecontrols whether it will only rotates on a horizontal plane.FirerBody- Follow the orientation of the firer's body, and remain still after the launcher is killed. WhenTrajectory.BulletROTis a non-positive value, it will always face this direction. Only rotates on a horizontal plane.FirerTurret- Follow the orientation of the firer's turret, and remain still after the launcher is killed. WhenTrajectory.BulletROTis a non-positive value, it will always face this direction. Only rotates on a horizontal plane.Trajectory.OffsetCoordcontrols the offsets of the target. Projectile will aim at the relative coordinates of the target to attack. It also supportsInaccurateandTrajectory.LeadTimeCalculateon this basis.Trajectory=EngraveorTrajectory=Tracing, these are invalid.Trajectory.RotateCoordcontrols whether to rotate the projectile's firing direction within the angle bisector ofTrajectory.OffsetCoord(orTrajectory.Missile.PreAimCoordinTrajectory=Missile) according to the most superior's weapon'sBurst. Set to 0 to disable this function. Negative values will reverse the direction of rotation.Trajectory.MirrorCoordcontrols whetherTrajectory.OffsetCoord(andTrajectory.Missile.PreAimCoordinTrajectory=Missile) need to automatically mirror the lateral value to adapt to the firer's current burst index. At the same time as mirroring, the rotation direction calculated byTrajectory.RotateCoordwill also be reversed, and the rotation angle between each adjacent projectile on each side will not change as a result.Trajectory.AxisOfRotationcontrols the rotation axis when calculatingTrajectory.RotateCoord. The axis will rotates with the unit orientation or the vector that from target position to the source position. The length is not important, but the direction is important (the opposite vector will also reverse the rotation direction).Trajectory.LeadTimeCalculatecontrols whether the projectile need to calculate the lead time of the target when firing.Trajectory.LeadTimeMaximumcontrols the projectile to predict how long the target will continue to move (used to prevent the projectile from flying too far).Trajectory.DetonationDistancecontrols the maximum distance in cells from intended target at which the projectile will be forced to detonate. Set to 0 to disable forced detonation. The following are exceptions.Trajectory=Straight, ifApplyRangeModifiersis set to true, any applicable weapon range modifiers from the firer are applied here as well. By settingTrajectory.Straight.PassThrough=true, it refers to the distance that projectile should travel from its firer when it above 0, and the distance that projectile should move behind the target when it below 0 (use the absolute value), and keep moving without distance restrictions when it is zero.Trajectory=BombardandTrajectory=Parabola, when it is set to a negative value, if the target is movable, it will change its target to the cell where the target is located (This is a function expanded forDisperseWeaponsandAirburstWeapon).Trajectory.TargetSnapDistancecontrols the maximum distance in cells from intended target the projectile can be at moment of detonation to make the projectile 'snap' on the intended target. Set to 0 to disable snapping.Trajectory.DetonationHeightcontrols when the projectile is in a descending state and below the height of the launch position plus this value, it will detonate prematurely. Taking effect when it is set to non negative value. IfTrajectory.EarlyDetonationis set to true, it'll take effect during the ascending stage instead, which makes it detonate when its height is above the launch position plus this value.Trajectory=BombardorTrajectory=Parabola, these are valid.Trajectory.AllowFirerTurningcontrols whether the projectile allow for significant changes in the orientation of the firer, otherwise it will be immediately detonated.In
rulesmd.ini:Inaccurate,BallisticScatter.Min,BallisticScatter.Max,Gravity,SubjectToGround.StraightBombardMissileEngraveParabolaTracingTrajectory.SpeedTrajectory.BulletROTTrajectory.BulletFacingTrajectory.BulletFacingOnPlaneTrajectory.OffsetCoordTrajectory.RotateCoordTrajectory.MirrorCoordTrajectory.AxisOfRotationTrajectory.LeadTimeCalculateTrajectory.LeadTimeMaximumTrajectory.DetonationDistanceTrajectory.TargetSnapDistanceTrajectory.EarlyDetonationTrajectory.DetonationHeightTrajectory.AllowFirerTurningInaccurateBallisticScatterGravitySubjectToGroundProjectileRange(Weapon's)LifeDurationNoTargetLifeTimeCreateCapacityApplyRangeModifiersRetargetRadiusSynchronizePeacefulVanishPassDetonateProximityImpactPassThroughVehiclesPassThroughBuildingDamageEdgeAttenuationDamageCountAttenuationUseDisperseCoordDisperseWeaponsStraight trajectory
Straight trajectory used to make blasters in a private mod by @brsajo#9745
Trajectory.Straight.PassThroughenables special case logic where the projectile does not detonate in contact with the target but instead travels up to a distance defined byTrajectory.DetonationDistance. Note that ifTrajectory.DetonationDistanceis a non negative value, the firing angle of the projectile is adjusted with this in mind, making it fire straight ahead if the target is on same elevation.Trajectory.Straight.ConfineAtHeightcontrols the height above ground that projectile will try to travel as it can. It can not move down from the cliff by settingSubjectToCliffsto true. It can be cancelled by setting as a non positive integer. It will be forcibly cancelled by settingTrajectory.Speedabove 256. IfPassDetonateLocalis set to true at the same time, the vertical speed will not be limited.In
rulesmd.ini:Bombard trajectory
Straight, but targets a coordinate between the attacker and intended target first. When the projectile approaches that turning point, it'll turn to the intended target and explodes when it hits the target or ground.Trajectory.Bombard.Heightcontrols the height of the turning point.Trajectory.Bombard.FallPercentcontrols the distance of the turning point by its percentage of the total distance between attacker and intended target. If set to 0%, then it'll fly up vertically. If set to 100%, then it'll travel to the top of the intended target.Trajectory.Bombard.FallPercentShift. If set to 0%, random shift will be disabled.Trajectory.Bombard.FallScatter.Maxas its radius. If set to 0, random scatter will be disabled.Trajectory.Bombard.FallScatter.Mincan be used to determine the minimum radius of the circle. IfTrajectory.Bombard.FallScatter.Linearset to true, the random scatter will be limited to the line that is vertical to the original direction of the projectile.Trajectory.Bombard.FreeFallOnTargetcontrols how it'll hit the intended target. If set to true, the projectile will be respawned above the intended target and free fall. If set to false, the projectile will travel to the intended target from the turning point.Trajectory.Bombard.NoLaunchcontrols whether the attacker will fire the projectile by itself. If set to true, projectile will directly fall from the turning point.Trajectory.Bombard.FallSpeedcontrols the initial speed of the projectile after it turns. If set to 0.0, then it'll useTrajectory.Speed. Can't work whenTrajectory.Bombard.FreeFallOnTargetset to true.Trajectory.Bombard.TurningPointAnims, if set, will play an anim when the projectile reaches the turning point. IfTrajectory.Bombard.FreeFallOnTargetis set to true, it'll be spawned above the target with the projectile together. IfTrajectory.Bombard.NoLaunchis set to true, it'll be played at where the projectile falls, no matter if it's free fall or not. If more than one animation is listed, a random one is selected.In
rulesmd.ini:Missile trajectory
ROT, but its settings are more flexible. It also has a unique trajectory.Trajectory.Missile.UniqueCurvecontrols whether to enable simulated Qian Xuesen trajectory. After enabling this, it will NOT respect the other items.Trajectory.Missile.PreAimCoordcontrols the initial flight direction of the projectile, and after reaching this coordinate, it will begin to turn towards the target direction. When it is set to 0,0,0 , it will directly face the target.Trajectory.Missile.FacingCoordcontrols whether the forward direction inTrajectory.Missile.PreAimCoordis depending on the orientation of the firer. By default, it will depend on the vector between the firer and the target.Trajectory.Missile.ReduceCoordcontrols whetherTrajectory.Missile.PreAimCoorddefines the initial movement coordinates when the attack distance is 10 cells, and the actual initial movement coordinates will change with the length of the attack distance. It can be simply understood as an optimization term aimed at ensuring hits at close range.Trajectory.Missile.LaunchSpeedcontrols the initial flight speed of the projectile.Trajectory.Missile.Accelerationcontrols the acceleration of the projectile's flight speed, increasing or decreasing the speed per frame according to this value, the final speed will beTrajectory.Speed. The velocity superposition with gravity will not be limited by this value.Trajectory.Missile.TurningSpeedcontrols the turning speed of the projectile's locomotion (moving direction) which refers to the maximum angle that the projectile can rotate per frame in terms of direction.Trajectory.Missile.LockDirectioncontrols whether after reachingTrajectory.Missile.PreAimCoordand completing the first turn, the projectile will lock the direction of motion without further adjustment.Trajectory.Missile.CruiseEnablecontrols whether after reachingTrajectory.Missile.PreAimCoord, the projectile will maintain altitude while moving towards the target.Trajectory.Missile.CruiseUnableRangecontrols how far away it is from the target to end the cruise phase, no longer maintaining the cruise altitude, and begins to move directly towards the target. If the distance is already below this value by the timeTrajectory.Missile.PreAimCoordis reached, the cruise phase will be skipped.Trajectory.Missile.CruiseAltitudecontrols the altitude of the projectile in the cruise phase.Trajectory.Missile.CruiseAlongLevelcontrols whether to calculateTrajectory.Missile.CruiseAltitudeby the ground height of the current position, otherwise it will be calculated by the height of the launch position.Trajectory.Missile.SuicideAboveRangecontrols the projectile to self destruct directly after reaching the flight distance. Set to 0 to disable suicide. When set to a negative number, its absolute value represents a multiple of the initial distance.Trajectory.Missile.SuicideShortOfROTcontrols whether the projectile will explode when it detected its insufficient turning ability.In
rulesmd.ini:Engrave trajectory
Trajectory.Engrave.SourceCoordcontrols the starting point of engraving line segment. Taking the target as the coordinate center. Specifically, it will start from the firing position when set to 0,0 . The height of the point will always at ground level, unless the target is in the air.Trajectory.Engrave.TargetCoordcontrols the end point of engraving line segment. IfLifeDurationis set to a positive number, it is only used for direction calculation. Taking the target as the coordinate center. The height of the point will always at ground level, unless the target is in the air.Trajectory.Engrave.AttachToTargetcontrols whether the center position of the engrave laser will update with the target position.Trajectory.Engrave.UpdateDirectioncontrols whether the engrave laser updates the direction with the firer and target position.In
rulesmd.ini:Parabola trajectory
Arcingwith different enhanced functions.Trajectory.Parabola.OpenFireModecontrols how should the projectile be launched. This has the following 6 modes.Trajectory.Speedand target coordinates as calculation conditions.Trajectory.Parabola.ThrowHeightand target coordinates as calculation conditions, i.e. the detonation time of the projectile is relatively fixed.Trajectory.Parabola.LaunchAngleand target coordinates as calculation conditions.Trajectory.SpeedandTrajectory.Parabola.ThrowHeightas calculation conditions, i.e. the trajectory will only undergo altitude changes with the height of the target.Trajectory.Parabola.ThrowHeightandTrajectory.Parabola.LaunchAngleas calculation conditions, i.e. the trajectory will change horizontally with the height of the target.Trajectory.SpeedandTrajectory.Parabola.LaunchAngleas calculation conditions, i.e. the trajectory will be permanently fixed.Trajectory.Parabola.ThrowHeightcontrols the maximum height of the projectile and is only used for modesHeight,SpeedAndHeight, orHeightAndAngle. The specific height will be determined by taking the larger of the launch height and the target height then increasing this value. Non positive numbers are not supported.Trajectory.Parabola.LaunchAnglecontrols the fire angle of the projectile and is only used for modesAngle,HeightAndAngle, orSpeedAndAngle. Only supports -90.0 ~ 90.0 (Cannot use boundary values) in ModeAngleorSpeedAndAngle, and 0.0 ~ 90.0 (Cannot use boundary values) in ModeHeightAndAngle.Trajectory.Parabola.DetonationAnglecontrols when the angle between the projectile in the current velocity direction and the horizontal plane is less than this value, it will detonate prematurely. Taking effect when the value is at -90.0 ~ 90.0 (Cannot use boundary values).Trajectory.Parabola.BounceTimescontrols how many times can it bounce back when the projectile hits the ground or cliff. Be aware that excessive projectile speed may cause abnormal operation.Trajectory.Parabola.BounceOnTargetcontrols the projectile can bounce on which cells or technos.Trajectory.Parabola.BounceOnHousescontrols the projectile can bounce on whose technos.Trajectory.Parabola.BounceDetonatecontrols whether it detonates the warhead once extra during each bounce.Trajectory.Parabola.BounceAttenuationcontrols the attenuation coefficient of projectile bounce damage, that is, how many times the next damage after each bounce is the damage just caused. This will also affect the damage of the final detonation.Trajectory.Parabola.BounceCoefficientcontrols the attenuation coefficient of projectile bounce elasticity, that is, how many times the speed after each bounce is the speed before bouncing.In
rulesmd.ini:Tracing trajectory
Trajectory.Tracing.TraceModecontrols how should the projectile trace the target. This is used to calculate coordinate axis ofTrajectory.Tracing.AttachCoordlocated 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.Trajectory.Tracing.TrackTargetcontrols whether the target tracked by the projectile is the target of the projectile. Otherwise, it will trace the firer, and at the same time, the projectile will detonate if the firer dies.Trajectory.Tracing.CreateAtTargetcontrols whether the projectile is directly generated at the target position.Trajectory.Tracing.StableRotationcontrols whether the projectile will automatically rotate at the same angle interval whenTrajectory.Tracing.TraceModeisRotateCWorRotateCCW.Trajectory.Tracing.CreateCoordcontrols the generate position. Not related toTrajectory.Tracing.TraceMode.Trajectory.Tracing.AttachCoordcontrols the tracing position on its target, useTrajectory.Tracing.TraceModedetermines the specific location.Trajectory.Tracing.ChasableDistancecontrols the maximum distance between the target's center of the projectile pursuing and the firer's center, the distance will not exceed this value. When the firer dies, if it is a positive number, it will peacefully vanish. And if it is a negative number, the projectile will explode. When it is zero, the weapon's range will be used and considered a positive number.In
rulesmd.ini:Summary by CodeRabbit
New Features
Improvements
Documentation