-
Notifications
You must be signed in to change notification settings - Fork 9
Ammo Audio Visual
Note you can alter the directionality of particles by passing different offset options:
- Vector(double.MinValue, double.MinValue, double.MinValue), will align the "Up" direction of the particle opposite gravity. Note this is computationally expensive and should not be used with rapid fire weapons
- Vector(double.MaxValue, double.MaxValue, double.MaxValue), will align the "Forward" direction of the particle opposite the trajectory it was going when it hit
AmmoGraphics = new GraphicDef
{
ModelName = "", // Model Path goes here. "\\Models\\Ammo\\Starcore_Arrow_Missile_Large"
VisualProbability = 1f, // %
ShieldHitDraw = false,
Decals = new DecalDef
{
MaxAge = 3600,
Map = new[]
{
new TextureMapDef
{
HitMaterial = "Metal",
DecalMaterial = "GunBullet",
},
new TextureMapDef
{
HitMaterial = "Glass",
DecalMaterial = "GunBullet",
},
},
},
Particles = new AmmoParticleDef
{
Ammo = new ParticleDef
{
Name = "", //ShipWelderArc
Offset = Vector(x: 0, y: 0, z: 0),
DisableCameraCulling = true,// If not true will not cull when not in view of camera, be careful with this and only use if you know you need it
Extras = new ParticleOptionDef
{
Scale = 1,
},
},
Hit = new ParticleDef
{
Name = "",
ApplyToShield = true,
Offset = Vector(x: 0, y: 0, z: 0),
DisableCameraCulling = true, // If not true will not cull when not in view of camera, be careful with this and only use if you know you need it
Extras = new ParticleOptionDef
{
Scale = 1,
HitPlayChance = 1f,
},
},
Eject = new ParticleDef
{
Name = "",
ApplyToShield = true,
Offset = Vector(x: 0, y: 0, z: 0),
DisableCameraCulling = true, // If not true will not cull when not in view of camera, be careful with this and only use if you know you need it
Extras = new ParticleOptionDef
{
Scale = 1,
HitPlayChance = 1f,
},
},
},
Model if left blank, disables spawning a mesh-based object: ModelName = "\\Models\\Ammo\\MissileModel",
, is an example of a valid model path for this.
VisualProbility is in %, of how often your Model is visible per projectile.
This next section, handles a Particle SBC SubtypeID, and spawns it on your projectile.
Hit = new ParticleDef
{
Name = "ParticleSubtypeID",
ApplyToShield = true,
ShrinkByDistance = true,
Color = Color(red: 255, green: 45, blue: 45, alpha: 32),
Offset = Vector(x: 0, y: 0, z: 0),
Extras = new ParticleOptionDef
{
Loop = true,
Restart = false,
MaxDistance = 5000,
MaxDuration = 1,
Scale = 1f,
HitPlayChance = 1f,
},
},
This is an Particle SBC subtypeID Slot, for your wanted Particle when the projectile hits a target.
ApplytoShield, controls if the Projectile still generates this particle if it hits a shield.
Lines = new LineDef
{
ColorVariance = Random(start: 0.75f, end: 2f), // multiply the color by random values within range.
WidthVariance = Random(start: 0f, end: 0f), // adds random value to default width (negatives shrinks width)
Tracer = new TracerBaseDef
{
Enable = true,
Length = 5f, //
Width = 0.1f, //
Color = Color(red: 3, green: 2, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright.
VisualFadeStart = 0, // Number of ticks the weapon has been firing before projectiles begin to fade their color
VisualFadeEnd = 0, // How many ticks after fade began before it will be invisible.
Textures = new[] {// WeaponLaser, ProjectileTrailLine, WarpBubble, etc..
"WeaponLaser", // Please always have this Line set, if this Section is enabled.
},
TextureMode = Normal, // Normal, Cycle, Chaos, Wave
Segmentation = new SegmentDef
{
Enable = false, // If true Tracer TextureMode is ignored
Textures = new[] {
"", // Please always have this Line set, if this Section is enabled.
},
SegmentLength = 0f, // Uses the values below.
SegmentGap = 0f, // Uses Tracer textures and values
Speed = 1f, // meters per second
Color = Color(red: 1, green: 2, blue: 2.5f, alpha: 1),
WidthMultiplier = 1f,
Reverse = false,
UseLineVariance = true,
WidthVariance = Random(start: 0f, end: 0f),
ColorVariance = Random(start: 0f, end: 0f)
}
},
Trail = new TrailDef
{
Enable = false,
Textures = new[] {
"", // Please always have this Line set, if this Section is enabled.
},
TextureMode = Normal,
DecayTime = 3, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low.
Color = Color(red: 0, green: 0, blue: 1, alpha: 1),
Back = false,
CustomWidth = 0,
UseWidthVariance = false,
UseColorFade = true,
},
OffsetEffect = new OffsetEffectDef
{
MaxOffset = 0,// 0 offset value disables this effect
MinLength = 0.2f,
MaxLength = 3,
},
},
},
The Tracer Section in Full.
Tracer = new TracerBaseDef
{
Enable = true, // If Tracer will be used.
Length = 5f, // Line Length \ Distance
Width = 0.1f, // Line Thickness.
Color = Color(red: 3, green: 2, blue: 1f, alpha: 1),
Basic Tracer section
- Length is the Length of the Tracer element itself, width is the actual width of the line
- Color is RGBA, with emissive support; Numbers in the 100-255 range have extensive bloom
Textures = new[] {// WeaponLaser, ProjectileTrailLine, WarpBubble, etc..
"WeaponLaser",
},
TextureMode = Normal, // Normal, Cycle, Chaos, Wave
Segmentation = new SegmentDef
{
Enable = false, // If true Tracer TextureMode is ignored
Textures = new[] {
"",
},
SegmentLength = 0f, // Uses the values below.
SegmentGap = 0f, // Uses Tracer textures and values
Speed = 1f, // meters per second
Color = Color(red: 1, green: 2, blue: 2.5f, alpha: 1),
WidthMultiplier = 1f,
Reverse = false,
UseLineVariance = true,
WidthVariance = Random(start: 0f, end: 0f),
ColorVariance = Random(start: 0f, end: 0f)
}
},
Animated Tracer section.
Textures area, refers to SubtypeIDs from an TransparentMaterials SBC, and specific texture method; DDS BC3 or DDS BC7, with a custom series of tracer textures' aligned & split into strips.
Trail = new TrailDef
{
Enable = false, // If Trail is spawned.
Textures = new[] {
"",
},
TextureMode = Normal,
DecayTime = 1, // Time in Ticks, (60 per second), that the trail exists. 120 means 2 seconds before each trail section despawns.
Color = Color(red: 0, green: 0, blue: 1, alpha: 1),
Back = false,
CustomWidth = 0,
UseWidthVariance = false,
UseColorFade = true,
},
OffsetEffect = new OffsetEffectDef
{
MaxOffset = 0,// 0 offset value disables this effect
MinLength = 0.2f,
MaxLength = 3,
},
This is spawned, when enabled , behind your Tracer on the projectile.
Decay, is the lifespan in seconds, of your Trail behind the projectile; Longer decay times is more expensive.
AmmoAudio = new AmmoAudioDef // Audio, references SubtypeIDs from Audio SBC.
{
TravelSound = "",
HitSound = "",
ShieldHitSound = "",
PlayerHitSound = "",
VoxelHitSound = "",
FloatingHitSound = "",
HitPlayChance = 0.5f,
HitPlayShield = true,
These are expecting Audio SBC SubtypeIDs, and are played relative to the projectile.
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)