-
Notifications
You must be signed in to change notification settings - Fork 9
Ammo Properties
- You do not need to make a Magazine named "Energy", there is an "Energy" AmmoMagazine entry in WeaponCore itself. Do not override it.
- Health is the projectile's HP pool when facing Anti-Missile Weapons, and has no relation outside of EWAR & AMS. Values for AMS & HP are in 1-3 Ranges for most projectiles.
- Projectiles with Health are valid targets for AMS weapons. Projectiles with a Health of 0 are NOT targetable or interceptable by AntiSmart EWAR.
- Mass is kilograms, and is multiplied by velocity upon impact.
- BackKickForce is in newtons, and is applied to the firing grid.
Mass = 220f, // in kilograms
BackKickForce = 60f,
Mass is the force applied onto the target hit by the Projectile, while BackickForce is the force (recoil) applied onto the shooter.
Shape = new ShapeDef // Defines the collision shape of the projectile, defaults to LineShape and uses the visual Line Length if set to 0.
{
Shape = LineShape, // LineShape or SphereShape. Do not use SphereShape for fast moving projectiles if you care about precision.
Diameter = 1, // Diameter is minimum length of LineShape or minimum diameter of SphereShape.
},
ObjectsHit = new ObjectsHitDef
{
MaxObjectsHit = 0, // Limits the number of entities (grids, players, projectiles) the projectile can penetrate; 0 = unlimited.
CountBlocks = false, // Counts individual blocks, not just entities hit.
},
Shape, is your Projectile's non-visual shape, used for hit detection.
- LineShape is a line
- SphereShape is a sphere
ObjectsHit, is an Old & alternate method of handling Penetration weapons, and can be used to hard-lock the max number of blocks (Or grids) penetrated by a projectile.
Fragments, or shrapnel, are spawned upon the death of the current projectile. There are many options to control the quantity and distribution of fragments, detailed at the Ammo - Fragment Properties page.
Damage Scales are modifiers that alter how much damage is applied to various items, block types, or shields. For full details please visit Ammo - Damage Scales
These effects can apply damage to a range of blocks based upon custom settings. They can be thought of as blast, explosive, splash, etc. Consult Ammo - AOE Properties for specifics.
There is an additional group of effects, collectively called EWAR, that can be utilized as well. IF ANY EWAR SETTING IS USED, BASE OR AOE DAMAGE WILL NOT BE APPLIED! They go above and beyond basic damage, with unique alterations to block or grid behavior. Full details can be found on the Ammo - Electronic Warfare System (EWAR) page.
Beams = new BeamDef
{
Enable = false, // Enable beam behaviour. Please have 3600 RPM, when this Setting is enabled. Please do not fire Beams into Voxels.
VirtualBeams = false, // Only one damaging beam, but with the effectiveness of the visual beams combined (better performance).
ConvergeBeams = false, // When using virtual beams, converge the visual beams to the location of the real beam.
RotateRealBeam = false, // The real beam is rotated between all visual beams, instead of centered between them.
OneParticle = false, // Only spawn one particle hit per beam weapon.
},
Enable, converts this weapon to a Beam; This means projectile's desired speed is ignored, and the Projectile expects a weapon RPM of 3600.
Beams can curve', track, use shrapnel, or the like, however they are hitscan, unless the TravelTime Line is added in the Trajectory Section.
MaxTrajectoryTime = 600,
, This line is in ticks (60 Ticks per Second)
Virtual Beams, if enabled, means only 1 beam actively deals damage , triggers shrapnel, or damages voxel, but takes all beams of this type, fired by the Weapon, and merges their damage stats.
Converge, visually merges the beam effects, into the "Hot" Beam.
OneParticle, reduces particle generation to 1 particle per target hit: This is suggested.
Beams, require a Tracer & Trail, to function Properly.
Trajectory = new TrajectoryDef
{
Guidance = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed
TargetLossDegree = 80f, // Degrees, Is pointed forward
TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..).
MaxLifeTime = 900, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). time begins at 0 and time must EXCEED this value to trigger "time > maxValue". Please have a value for this, It stops Bad things.
AccelPerSec = 0f, // Acceleration in Meters Per Second. Projectile starts on tick 0 at its parents (weapon/other projectiles) travel velocity.
DesiredSpeed = 500, // voxel phasing if you go above 5100
MaxTrajectory = 1000f, // Max Distance the projectile or beam can Travel.
DeaccelTime = 0, // 0 is disabled, a value causes the projectile to come to rest overtime, (Measured in game ticks, 60 = 1 second)
GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. Natural Gravity Only.
SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed. Be warned, you can make your projectile go backwards.
RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory
MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory.
TotalAcceleration = 1234.5, // 0 means no limit, something to do due with a thing called delta and something called v.
Visit the Ammo - Guidance System (Homing, Mines, Self-Guided) for details on the options for the Guidance Line, Smarts, and Approaches.
MaxLifeTime = 1500, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..).
, is the Max life spawn, in ticks, for the projectile, this is typically used to ensure the death of a projectile, should it fail to hit either a target or MaxTrajectory Distance.
AccelPerSec = 0,
, is in Meters, and the Acceleration per second of the Projectile, this is used by SMART type weapons, and can be disabled by leaving it at 0: Which lets the projectile spawn at DesiredSpeed directly.
DesiredSpeed = 1250,
is in Meters, and is the projectile's intended velocity before randomizers (which are optional)
MaxTrajectory = 7000f,
is in Meters, and is the max range or distance, the Projectile can travel.
GravityMultiplier = 0f, // Gravity influences the trajectory of the projectile.
is the influence of Planetary Gravity (Not Artificial), on the projectile, this line can not be used with the SMART system, unless using Shrapnel.
SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed
RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory
These are Randomizers, with min & max value ranges, that adjust these values, per projectile fired.
These are the audio and visual components of your ammo, and include hit effects. Consult Ammo - Audio Visual for specifics.
If you have suggestions or implementations, please raise them in the Discord! Thank you!
Please donate to DarkStar's Patreon!
WeaponCore Quick Links
Weapon Properties (Page in Progress)
Multi-Turret Creation (Page in Progress)
Weapon - Targeting & Hardpoint
Weapon - Critical Reactions/Warheads
Weapon - Minimal Configurations
Ammo - Electronic Warfare System (EWAR)
Ammo - Guidance System (Homing, Mines, Self-Guided)
Armor System (Page in Progress)