diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc
index 1abc4604a..e066e68b1 100644
--- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc
+++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc
@@ -47,15 +47,17 @@
ConveyorSorter
Flechette_DoubleBarrel
- [SOL] Flechette Shotgun
+ [SOL] Gewehr Flechette Shotgun
- Two shotguns duct taped together, with two ammo's.
- Buckshot:
- [Range: 2km technically]
+ Dual shotgun with two flechette ammos.
+ [Range: 3.5km]
[Damage: Kinetic]
[Reload Time: 4 seconds]
+ Proximity Scattershot:
+ [MinRange: 1km]
+ [ProxRange: 0.5km]
Smart Flak:
- [Homing and AMS]
+ [Homing]
Textures\GUI\Icons\FlakShotgun.dds
Large
diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Flechette_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Flechette_Ammo.cs
index 4c024f1b6..bbd7af545 100644
--- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Flechette_Ammo.cs
+++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Flechette_Ammo.cs
@@ -30,21 +30,421 @@ namespace Scripts
{ // Don't edit above this line
partial class Parts
{
- private AmmoDef Flechette_Buckshot => new AmmoDef // Your ID, for slotting into the Weapon CS
+
+ //Flechette_ProximityFuse
+
+
+ private AmmoDef Flechette_ProximityFuse => new AmmoDef // Your ID, for slotting into the Weapon CS
{
AmmoMagazine = "FlakShotgun_Magazine", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo.
- AmmoRound = "Buckshot", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. Is used by Shrapnel.
+ AmmoRound = "Proximity Scattershot", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. Is used by Shrapnel.
+ HybridRound = true, // Use both a physical ammo magazine and energy per shot.
+ EnergyCost = 0.0645f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR.
+ BaseDamage = 700f, // Direct damage; one steel plate is worth 100.
+ Mass = 10f, // In kilograms; how much force the impact will apply to the target.
+ Health = 0, // How much damage the projectile can take from other projectiles (base of 1 per hit) before dying; 0 disables this and makes the projectile untargetable.
+ BackKickForce = 0f, // Recoil. This is applied to the Parent Grid.
+ DecayPerShot = 0f, // Damage to the firing weapon itself.
+ HardPointUsable = true, // Whether this is a primary ammo type fired directly by the turret. Set to false if this is a shrapnel ammoType and you don't want the turret to be able to select it directly.
+ EnergyMagazineSize = 2, // For energy weapons, how many shots to fire before reloading.
+ IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod.
+ IgnoreVoxels = false, // Whether the projectile should be able to penetrate voxels.
+ Synchronize = false, // For future use
+ HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot.
+ 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.
+ },
+ Fragment = new FragmentDef // Formerly known as Shrapnel. Spawns specified ammo fragments on projectile death (via hit or detonation).
+ {
+ AmmoRound = "Scattershot", // AmmoRound field of the ammo to spawn.
+ Fragments = 10, // Number of projectiles to spawn.
+ Degrees = 4, // Cone in which to randomize direction of spawned projectiles.
+ Reverse = false, // Spawn projectiles backward instead of forward.
+ DropVelocity = true, // fragments will not inherit velocity from parent.
+ Offset = 0f, // Offsets the fragment spawn by this amount, in meters (positive forward, negative for backwards), value is read from parent ammo type.
+ Radial = 0f, // Determines starting angle for Degrees of spread above. IE, 0 degrees and 90 radial goes perpendicular to travel path
+ MaxChildren = 0, // number of maximum branches for fragments from the roots point of view, 0 is unlimited
+ IgnoreArming = false, // If true, ignore ArmOnHit or MinArmingTime in EndOfLife definitions
+ AdvOffset = Vector(x: 0, y: 0, z: 0), // advanced offsets the fragment by xyz coordinates relative to parent, value is read from fragment ammo type.
+ TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below
+ {
+ Enable = true, // Enables TimedSpawns mechanism
+ Interval = 0, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other
+ StartTime = 15, // Time delay to start spawning fragments, in ticks, of total projectile life
+ MaxSpawns = 1, // Max number of fragment children to spawn
+ Proximity = 500, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance
+ ParentDies = true, // Parent dies once after it spawns its last child.
+ PointAtTarget = false, // Start fragment direction pointing at Target
+ PointType = Predict, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit)
+ DirectAimCone = 8f, //Aim cone used for Direct fire, in degrees
+ GroupSize = 1, // Number of spawns in each group
+ GroupDelay = 1, // Delay between each group.
+ },
+ },
+ Pattern = new PatternDef
+ {
+ Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo.
+ "",
+ },
+ Mode = Never, // Select when to activate this pattern, options: Never, Weapon, Fragment, Both
+ TriggerChance = 1f, // This is %
+ Random = false, // This randomizes the number spawned at once, NOT the list order.
+ RandomMin = 1,
+ RandomMax = 1,
+ SkipParent = false, // Skip the Ammo itself, in the list
+ PatternSteps = 4, // Number of Ammos activated per round, will progress in order and loop. Ignored if Random = true.
+ },
+ DamageScales = new DamageScaleDef
+ {
+ MaxIntegrity = 0f, // Blocks with integrity higher than this value will be immune to damage from this projectile; 0 = disabled.
+ DamageVoxels = false, // Whether to damage voxels.
+ SelfDamage = false, // Whether to damage the weapon's own grid.
+ HealthHitModifier = 1, // How much Health to subtract from another projectile on hit; defaults to 1 if zero or less.
+ VoxelHitModifier = 1, // Voxel damage multiplier; defaults to 1 if zero or less.
+ Characters = 1f, // Character damage multiplier; defaults to 1 if zero or less.
+ // For the following modifier values: -1 = disabled (higher performance), 0 = no damage, 0.01f = 1% damage, 2 = 200% damage.
+ FallOff = new FallOffDef
+ {
+ Distance = 0f, // Distance at which damage begins falling off.
+ MinMultipler = 1f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage.
+ },
+ Grids = new GridSizeDef
+ {
+ Large = -1f, // Multiplier for damage against large grids.
+ Small = 0.25f, // Multiplier for damage against small grids.
+ },
+ Armor = new ArmorDef
+ {
+ Armor = -1f, // Multiplier for damage against all armor. This is multiplied with the specific armor type multiplier (light, heavy).
+ Light = -1f, // Multiplier for damage against light armor.
+ Heavy = -1f, // Multiplier for damage against heavy armor.
+ NonArmor = 0.75f, // Multiplier for damage against every else.
+ },
+ Shields = new ShieldDef
+ {
+ Modifier = 2f, // Multiplier for damage against shields.
+ Type = Default, // Damage vs healing against shields; Default, Heal
+ BypassModifier = -1f, // If greater than zero, the percentage of damage that will penetrate the shield.
+ },
+ DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy
+ {
+ Base = Kinetic, // Base Damage uses this
+ AreaEffect = Kinetic,
+ Detonation = Kinetic,
+ Shield = Kinetic, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line
+ },
+ Custom = new CustomScalesDef
+ {
+ SkipOthers = NoSkip, // Controls how projectile interacts with other blocks in relation to those defined here, NoSkip, Exclusive, Inclusive.
+ Types = new[] // List of blocks to apply custom damage multipliers to.
+ {
+ new CustomBlocksDef
+ {
+ SubTypeId = "Test1",
+ Modifier = -1f,
+ },
+ new CustomBlocksDef
+ {
+ SubTypeId = "Test2",
+ Modifier = -1f,
+ },
+ },
+ },
+ },
+ AreaOfDamage = new AreaOfDamageDef
+ {
+ ByBlockHit = new ByBlockHitDef
+ {
+ Enable = false,
+ Radius = 0f, // Meters
+ Damage = 0f,
+ Depth = 0f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value
+ MaxAbsorb = 0f, // Soft cutoff for damage, except for pooled falloff. If pooled falloff, limits max damage per block.
+ Falloff = Curve, //.NoFalloff applies the same damage to all blocks in radius
+ //.Linear drops evenly by distance from center out to max radius
+ //.Curve drops off damage sharply as it approaches the max radius
+ //.InvCurve drops off sharply from the middle and tapers to max radius
+ //.Squeeze does little damage to the middle, but rapidly increases damage toward max radius
+ //.Pooled damage behaves in a pooled manner that once exhausted damage ceases.
+ //.Exponential drops off exponentially. Does not scale to max radius
+ Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly.
+ },
+ EndOfLife = new EndOfLifeDef
+ {
+ Enable = true,
+ Radius = 8f, // Radius of AOE effect, in meters.
+ Damage = 85000f,
+ Depth = 8f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value
+ MaxAbsorb = 0f, // Soft cutoff for damage, except for pooled falloff. If pooled falloff, limits max damage per block.
+ Falloff = Pooled, //.NoFalloff applies the same damage to all blocks in radius
+ //.Linear drops evenly by distance from center out to max radius
+ //.Curve drops off damage sharply as it approaches the max radius
+ //.InvCurve drops off sharply from the middle and tapers to max radius
+ //.Squeeze does little damage to the middle, but rapidly increases damage toward max radius
+ //.Pooled damage behaves in a pooled manner that once exhausted damage ceases.
+ //.Exponential drops off exponentially. Does not scale to max radius
+ ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode.
+ MinArmingTime = 0, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning.
+ NoVisuals = false,
+ NoSound = false,
+ ParticleScale = 2,
+ CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC
+ CustomSound = "", // SubtypeID from your Audio SBC, not a filename
+ Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly.
+ },
+ },
+ Ewar = new EwarDef
+ {
+ Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!!
+ Type = EnergySink, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push,
+ Mode = Effect, // Effect , Field
+ Strength = 100f,
+ Radius = 5f, // Meters
+ Duration = 100, // In Ticks
+ StackDuration = true, // Combined Durations
+ Depletable = true,
+ MaxStacks = 10, // Max Debuffs at once
+ NoHitParticle = false,
+ /*
+ EnergySink : Targets & Shutdowns Power Supplies, such as Batteries & Reactor
+ Emp : Targets & Shutdown any Block capable of being powered
+ Offense : Targets & Shutdowns Weaponry
+ Nav : Targets & Shutdown Gyros or Locks them down
+ Dot : Deals Damage to Blocks in radius
+ AntiSmart : Effects & Scrambles the Targeting List of Affected Missiles
+ JumpNull : Shutdown & Stops any Active Jumps, or JumpDrive Units in radius
+ Tractor : Affects target with Physics
+ Pull : Affects target with Physics
+ Push : Affects target with Physics
+ Anchor : Targets & Shutdowns Thrusters
+
+ */
+ Force = new PushPullDef
+ {
+ ForceFrom = ProjectileLastPosition, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass
+ ForceTo = HitPosition, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass
+ Position = TargetCenterOfMass, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass
+ DisableRelativeMass = false,
+ TractorRange = 0,
+ ShooterFeelsForce = false,
+ },
+ Field = new FieldDef
+ {
+ Interval = 0, // Time between each pulse, in game ticks (60 == 1 second), starts at 0 (59 == tick 60).
+ PulseChance = 0, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse.
+ GrowTime = 0, // How many ticks it should take the field to grow to full size.
+ HideModel = false, // Hide the default bubble, or other model if specified.
+ ShowParticle = true, // Show Block damage effect.
+ TriggerRange = 250f, //range at which fields are triggered
+ Particle = new ParticleDef // Particle effect to generate at the field's position.
+ {
+ Name = "", // SubtypeId of field particle effect.
+ Extras = new ParticleOptionDef
+ {
+ Scale = 1, // Scale of effect.
+ },
+ },
+ },
+ },
+ 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.
+ },
+ Trajectory = new TrajectoryDef
+ {
+ Guidance = Smart, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed
+ TargetLossDegree = 0f, // Degrees, Is pointed forward
+ TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..).
+ MaxLifeTime = 2400, // 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, // Meters Per Second. This is the spawning Speed of the Projectile, and used by turning.
+ DesiredSpeed = 1550, // voxel phasing if you go above 5100
+ MaxTrajectory = 3100f, // 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 = 25f, // 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: 200), // subtracts value from MaxTrajectory
+ MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory.
+ Smarts = new SmartsDef
+ {
+ Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value.
+ Aggressiveness = 0.01f, // controls how responsive tracking is.
+ MaxLateralThrust = 0.01f, // controls how sharp the trajectile may turn
+ TrackingDelay = 0, // Measured in Shape diameter units traveled.
+ MaxChaseTime = 0, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..).
+ OverideTarget = false, // when set to true ammo picks its own target, does not use hardpoint's.
+ CheckFutureIntersection = false, // Utilize obstacle avoidance?
+ MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited
+ NoTargetExpire = false, // Expire without ever having a target at TargetLossTime
+ Roam = false, // Roam current area after target loss
+ KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss
+ OffsetRatio = 0f, // The ratio to offset the random direction (0 to 1)
+ OffsetTime = 0, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..)
+ NoSteering = true, // this disables target follow and instead travel straight ahead (but will respect offsets)
+ },
+ Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues.
+ {
+ DetectRadius = 0,
+ DeCloakRadius = 0,
+ FieldTime = 0,
+ Cloak = false,
+ Persist = false,
+ },
+ },
+ AmmoGraphics = new GraphicDef
+ {
+ ModelName = "", // Model Path goes here. "\\Models\\Ammo\\Starcore_Arrow_Missile_Large"
+ VisualProbability = 1f, // %
+ ShieldHitDraw = false,
+ Particles = new AmmoParticleDef
+ {
+ Ammo = new ParticleDef
+ {
+ Name = "NecronEnergyProjectile", //ShipWelderArc
+ Offset = Vector(x: 0, y: 0, z: 0),
+ Extras = new ParticleOptionDef
+ {
+ Scale = 0.15f,
+ },
+ },
+ Hit = new ParticleDef
+ {
+ Name = "Exp_Spark_FCC",
+ ApplyToShield = true,
+ Offset = Vector(x: 0, y: 0, z: 0),
+ Extras = new ParticleOptionDef
+ {
+ Scale = 1,
+ HitPlayChance = 1f,
+ },
+ },
+ Eject = new ParticleDef
+ {
+ Name = "",
+ ApplyToShield = true,
+ Offset = Vector(x: 0, y: 0, z: 0),
+ Extras = new ParticleOptionDef
+ {
+ Scale = 1,
+ HitPlayChance = 1f,
+ },
+ },
+ },
+ 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 = 100f, //
+ Width = 1.25f, //
+ Color = Color(red: 20, green: 40, blue: 40f, 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..
+ "ProjectileTrailLine", // 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 = true,
+ Textures = new[] {
+ "WeaponLaser", // Please always have this Line set, if this Section is enabled.
+ },
+ TextureMode = Normal,
+ DecayTime = 60, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low.
+ Color = Color(red: 40, green: 20, blue: 5, alpha: 1),
+ Back = false,
+ CustomWidth = 0.35f,
+ UseWidthVariance = false,
+ UseColorFade = true,
+ },
+ OffsetEffect = new OffsetEffectDef
+ {
+ MaxOffset = 0,// 0 offset value disables this effect
+ MinLength = 1f,
+ MaxLength = 5f,
+ },
+ },
+ },
+ AmmoAudio = new AmmoAudioDef
+ {
+ TravelSound = "FCC_Whistle", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight
+ HitSound = "",
+ ShotSound = "",
+ ShieldHitSound = "",
+ PlayerHitSound = "",
+ VoxelHitSound = "",
+ FloatingHitSound = "",
+ HitPlayChance = 1f,
+ HitPlayShield = true,
+ },
+ Ejection = new EjectionDef // Optional Component, allows generation of Particle or Item (Typically magazine), on firing, to simulate Tank shell ejection
+ {
+ Type = Particle, // Particle or Item (Inventory Component)
+ Speed = 100f, // Speed inventory is ejected from in dummy direction
+ SpawnChance = 0f, // chance of triggering effect (0 - 1)
+ CompDef = new ComponentDef
+ {
+ ItemName = "", //InventoryComponent name
+ ItemLifeTime = 0, // how long item should exist in world
+ Delay = 0, // delay in ticks after shot before ejected
+ }
+ }, // Don't edit below this line
+ };
+
+
+
+
+
+
+
+
+
+
+
+
+ private AmmoDef Flechette_Scattershot => new AmmoDef // Your ID, for slotting into the Weapon CS
+ {
+ AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo.
+ AmmoRound = "Scattershot", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. Is used by Shrapnel.
HybridRound = false, // Use both a physical ammo magazine and energy per shot.
EnergyCost = 0.1f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR.
- BaseDamage = 3200f, // Direct damage; one steel plate is worth 100.
- Mass = 0f, // In kilograms; how much force the impact will apply to the target.
+ BaseDamage = 3050f, // Direct damage; one steel plate is worth 100.
+ Mass = 10f, // In kilograms; how much force the impact will apply to the target.
Health = 0, // How much damage the projectile can take from other projectiles (base of 1 per hit) before dying; 0 disables this and makes the projectile untargetable.
BackKickForce = 0f, // Recoil. This is applied to the Parent Grid.
- DecayPerShot = 0f, // Damage to the firing weapon itself.
- //float.MaxValue will drop the weapon to the first build state and destroy all components used for construction
- //If greater than cube integrity it will remove the cube upon firing, without causing deformation (makes it look like the whole "block" flew away)
- HardPointUsable = true, // Whether this is a primary ammo type fired directly by the turret. Set to false if this is a shrapnel ammoType and you don't want the turret to be able to select it directly.
- EnergyMagazineSize = 1, // For energy weapons, how many shots to fire before reloading.
+ DecayPerShot = 0f, // Damage to the firing weapon itself.
+ HardPointUsable = false, // Whether this is a primary ammo type fired directly by the turret. Set to false if this is a shrapnel ammoType and you don't want the turret to be able to select it directly.
+ EnergyMagazineSize = 0, // For energy weapons, how many shots to fire before reloading.
IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod.
IgnoreVoxels = false, // Whether the projectile should be able to penetrate voxels.
Synchronize = false, // For future use
@@ -62,28 +462,28 @@ partial class Parts
Fragment = new FragmentDef // Formerly known as Shrapnel. Spawns specified ammo fragments on projectile death (via hit or detonation).
{
AmmoRound = "", // AmmoRound field of the ammo to spawn.
- Fragments = 1, // Number of projectiles to spawn.
- Degrees = 0, // Cone in which to randomize direction of spawned projectiles.
+ Fragments = 36, // Number of projectiles to spawn.
+ Degrees = 4, // Cone in which to randomize direction of spawned projectiles.
Reverse = false, // Spawn projectiles backward instead of forward.
- DropVelocity = false, // fragments will not inherit velocity from parent.
+ DropVelocity = true, // fragments will not inherit velocity from parent.
Offset = 0f, // Offsets the fragment spawn by this amount, in meters (positive forward, negative for backwards), value is read from parent ammo type.
Radial = 0f, // Determines starting angle for Degrees of spread above. IE, 0 degrees and 90 radial goes perpendicular to travel path
MaxChildren = 0, // number of maximum branches for fragments from the roots point of view, 0 is unlimited
- IgnoreArming = true, // If true, ignore ArmOnHit or MinArmingTime in EndOfLife definitions
+ IgnoreArming = false, // If true, ignore ArmOnHit or MinArmingTime in EndOfLife definitions
AdvOffset = Vector(x: 0, y: 0, z: 0), // advanced offsets the fragment by xyz coordinates relative to parent, value is read from fragment ammo type.
TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below
{
Enable = false, // Enables TimedSpawns mechanism
Interval = 0, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other
- StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life
+ StartTime = 15, // Time delay to start spawning fragments, in ticks, of total projectile life
MaxSpawns = 1, // Max number of fragment children to spawn
- Proximity = 1000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance
+ Proximity = 800, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance
ParentDies = true, // Parent dies once after it spawns its last child.
PointAtTarget = true, // Start fragment direction pointing at Target
PointType = Predict, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit)
- DirectAimCone = 4f, //Aim cone used for Direct fire, in degrees
- GroupSize = 5, // Number of spawns in each group
- GroupDelay = 120, // Delay between each group.
+ DirectAimCone = 8f, //Aim cone used for Direct fire, in degrees
+ GroupSize = 1, // Number of spawns in each group
+ GroupDelay = 1, // Delay between each group.
},
},
Pattern = new PatternDef
@@ -91,7 +491,7 @@ partial class Parts
Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo.
"",
},
- Mode = Weapon, // Select when to activate this pattern, options: Never, Weapon, Fragment, Both
+ Mode = Never, // Select when to activate this pattern, options: Never, Weapon, Fragment, Both
TriggerChance = 1f, // This is %
Random = false, // This randomizes the number spawned at once, NOT the list order.
RandomMin = 1,
@@ -181,7 +581,7 @@ partial class Parts
Damage = 1000f,
Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value
MaxAbsorb = 0f, // Soft cutoff for damage, except for pooled falloff. If pooled falloff, limits max damage per block.
- Falloff = NoFalloff, //.NoFalloff applies the same damage to all blocks in radius
+ Falloff = Pooled, //.NoFalloff applies the same damage to all blocks in radius
//.Linear drops evenly by distance from center out to max radius
//.Curve drops off damage sharply as it approaches the max radius
//.InvCurve drops off sharply from the middle and tapers to max radius
@@ -262,16 +662,16 @@ partial class Parts
Trajectory = new TrajectoryDef
{
Guidance = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed
- TargetLossDegree = 80f, // Degrees, Is pointed forward
+ TargetLossDegree = 0f, // Degrees, Is pointed forward
TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..).
- MaxLifeTime = 360, // 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.
+ MaxLifeTime = 280, // 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, // Meters Per Second. This is the spawning Speed of the Projectile, and used by turning.
- DesiredSpeed = 750, // voxel phasing if you go above 5100
- MaxTrajectory = 1800f, // Max Distance the projectile or beam can Travel.
+ DesiredSpeed = 1600, // voxel phasing if you go above 5100
+ MaxTrajectory = 1150f, // 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: 25), // subtracts value from MaxTrajectory
+ RangeVariance = Random(start: 0, end: 200), // subtracts value from MaxTrajectory
MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory.
Smarts = new SmartsDef
{
@@ -280,14 +680,15 @@ partial class Parts
MaxLateralThrust = 0.5, // controls how sharp the trajectile may turn
TrackingDelay = 0, // Measured in Shape diameter units traveled.
MaxChaseTime = 0, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..).
- OverideTarget = true, // when set to true ammo picks its own target, does not use hardpoint's.
- CheckFutureIntersection = false, // Utilize obstacle avoidance for drones
+ OverideTarget = false, // when set to true ammo picks its own target, does not use hardpoint's.
+ CheckFutureIntersection = false, // Utilize obstacle avoidance?
MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited
NoTargetExpire = false, // Expire without ever having a target at TargetLossTime
Roam = false, // Roam current area after target loss
KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss
OffsetRatio = 0.05f, // The ratio to offset the random direction (0 to 1)
OffsetTime = 60, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..)
+ //NoSteering = true, // this disables target follow and instead travel straight ahead (but will respect offsets)
},
Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues.
{
@@ -440,7 +841,7 @@ partial class Parts
//float.MaxValue will drop the weapon to the first build state and destroy all components used for construction
//If greater than cube integrity it will remove the cube upon firing, without causing deformation (makes it look like the whole "block" flew away)
HardPointUsable = true, // Whether this is a primary ammo type fired directly by the turret. Set to false if this is a shrapnel ammoType and you don't want the turret to be able to select it directly.
- EnergyMagazineSize = 1, // For energy weapons, how many shots to fire before reloading.
+ EnergyMagazineSize = 2, // For energy weapons, how many shots to fire before reloading.
IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod.
IgnoreVoxels = false, // Whether the projectile should be able to penetrate voxels.
Synchronize = false, // For future use
@@ -663,7 +1064,7 @@ partial class Parts
MaxLifeTime = 720, // 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 = 0, // Meters Per Second. This is the spawning Speed of the Projectile, and used by turning.
DesiredSpeed = 1250, // voxel phasing if you go above 5100
- MaxTrajectory = 2500f, // Max Distance the projectile or beam can Travel.
+ MaxTrajectory = 3500f, // 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.
diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Flechette_Shotgun.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Flechette_Shotgun.cs
index 9ede777fc..32ef9a59c 100644
--- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Flechette_Shotgun.cs
+++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Flechette_Shotgun.cs
@@ -31,15 +31,15 @@ partial class Parts
},
Muzzles = new[] {
"muzzle_01", // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A
- "muzzle_02"
+ "muzzle_02",
},
Ejector = "subpart_ejectordoor", // Optional; empty from which to eject "shells" if specified.
- //Scope = "muzzle_01", // Where line of sight checks are performed from. Must be clear of block collision.
+ Scope = "", // Where line of sight checks are performed from. Must be clear of block collision.
},
Targeting = new TargetingDef
{
Threats = new[] {
- Projectiles, Grids, Neutrals, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals
+ Grids, Neutrals, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals
},
SubSystems = new[] {
Thrust, Offense, Utility, Power, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any
@@ -49,8 +49,8 @@ partial class Parts
LockedSmartOnly = false, // Only fire at smart projectiles that are locked on to parent grid.
MinimumDiameter = 0, // Minimum radius of threat to engage.
MaximumDiameter = 0, // Maximum radius of threat to engage; 0 = unlimited.
- MaxTargetDistance = 1500, // Maximum distance at which targets will be automatically shot at; 0 = unlimited.
- MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at.
+ MaxTargetDistance = 0, // Maximum distance at which targets will be automatically shot at; 0 = unlimited.
+ MinTargetDistance = 1000, // Minimum distance at which targets will be automatically shot at.
TopTargets = 6, // Maximum number of targets to randomize between; 0 = unlimited.
TopBlocks = 8, // Maximum number of blocks to randomize between; 0 = unlimited.
StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited.
@@ -60,9 +60,9 @@ partial class Parts
PartName = "Flechette_Artillery", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons).
DeviateShotAngle = 3f, // Projectile inaccuracy in degrees.
AimingTolerance = 5f, // How many degrees off target a turret can fire at. 0 - 180 firing angle.
- AimLeadingPrediction = Off, // Level of turret aim prediction; Off, Basic, Accurate, Advanced
+ AimLeadingPrediction = Accurate, // Level of turret aim prediction; Off, Basic, Accurate, Advanced
DelayCeaseFire = 0, // Measured in game ticks (6 = 100ms, 60 = 1 second, etc..). Length of time the weapon continues firing after trigger is released - while a target is available.
- AddToleranceToTracking = false, // Allows turret to track to the edge of the AimingTolerance cone instead of dead centre.
+ AddToleranceToTracking = true, // Allows turret to track to the edge of the AimingTolerance cone instead of dead centre.
CanShootSubmerged = false, // Whether the weapon can be fired underwater when using WaterMod.
Ui = new UiDef
@@ -130,7 +130,7 @@ partial class Parts
MaxHeat = 70000, // Max heat before weapon enters cooldown (70% of max heat).
Cooldown = .95f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95
HeatSinkRate = 90000, // Amount of heat lost per second.
- DegradeRof = false, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat).
+ DegradeRof = true, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat).
ShotsInBurst = 0, // Use this if you don't want the weapon to fire an entire physical magazine in one go. Should not be more than your magazine capacity.
DelayAfterBurst = 0, // How long to spend "reloading" after each burst. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..).
FireFull = false, // Whether the weapon should fire the full magazine (or the full burst instead if ShotsInBurst > 0), even if the target is lost or the player stops firing prematurely.
@@ -173,7 +173,9 @@ partial class Parts
},
},
Ammos = new[] {
- Flechette_Buckshot, Flechette_Smart,// Must list all primary, shrapnel, and pattern ammos.
+ Flechette_ProximityFuse,
+ Flechette_Scattershot,
+ Flechette_Smart,// Must list all primary, shrapnel, and pattern ammos.
},
Animations = FlakAnimation,
//Upgrades = UpgradeModules,
diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Heavy_MAC.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Heavy_MAC.cs
index ea116debc..8127e0e94 100644
--- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Heavy_MAC.cs
+++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Heavy_MAC.cs
@@ -88,7 +88,7 @@ partial class Parts {
MinElevation = 0,
MaxElevation = 0,
HomeAzimuth = 0, // Default resting rotation angle
- HomeElevation = 15, // Default resting elevation
+ HomeElevation = 0, // Default resting elevation
InventorySize = 1f, // Inventory capacity in kL.
IdlePower = 0.25f, // Constant base power draw in MW.
FixedOffset = false, // Deprecated.
diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nariman_Turret_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nariman_Turret_Ammo.cs
index bda964f56..e3f100930 100644
--- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nariman_Turret_Ammo.cs
+++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nariman_Turret_Ammo.cs
@@ -38,7 +38,7 @@ partial class Parts
EnergyCost = 0.04f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR.
BaseDamage = 9500f, // Direct damage; one steel plate is worth 100.
Mass = 40f, // In kilograms; how much force the impact will apply to the target.
- Health = 40, // How much damage the projectile can take from other projectiles (base of 1 per hit) before dying; 0 disables this and makes the projectile untargetable.
+ Health = 0, // How much damage the projectile can take from other projectiles (base of 1 per hit) before dying; 0 disables this and makes the projectile untargetable.
BackKickForce = 0f, // Recoil. This is applied to the Parent Grid.
DecayPerShot = 0f, // Damage to the firing weapon itself.