diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cbar_hit1A.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cbar_hit1A.wav new file mode 100644 index 000000000..938ff2cc0 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cbar_hit1A.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cbar_hit1A.wav.old b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cbar_hit1A.wav.old new file mode 100644 index 000000000..cb3dca360 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cbar_hit1A.wav.old differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cn.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cn.wav new file mode 100644 index 000000000..66971b586 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/cn.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav new file mode 100644 index 000000000..33970b313 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.9mmorsomething b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.9mmorsomething new file mode 100644 index 000000000..58527ba14 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.9mmorsomething differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.OLD b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.OLD new file mode 100644 index 000000000..f9231c275 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.OLD differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.alternate b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.alternate new file mode 100644 index 000000000..ad599a372 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav.alternate differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav2 b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav2 new file mode 100644 index 000000000..bc7761ff9 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstorm.wav2 differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstormdistance.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstormdistance.wav new file mode 100644 index 000000000..434b19e14 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstormdistance.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstormreload.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstormreload.wav new file mode 100644 index 000000000..9d3987d12 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/metalstormreload.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/shieldhit1.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/shieldhit1.wav new file mode 100644 index 000000000..2f1bc3ab3 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Arcade/shieldhit1.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2BeamFire.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2BeamFire.wav new file mode 100644 index 000000000..d200f4747 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2BeamFire.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2BeamFireB.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2BeamFireB.wav new file mode 100644 index 000000000..8cb068eb5 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2BeamFireB.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2HitA.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2HitA.wav new file mode 100644 index 000000000..9f1892ac6 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2HitA.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2PulseFire.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2PulseFire.wav new file mode 100644 index 000000000..5c50d32de Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2PulseFire.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2Reload.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2Reload.wav new file mode 100644 index 000000000..028d7da58 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2Reload.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2ReloadLong.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2ReloadLong.wav new file mode 100644 index 000000000..a7188af46 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Auger2ReloadLong.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Goliath2GearLoop.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Goliath2GearLoop.wav new file mode 100644 index 000000000..14456b000 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Goliath2GearLoop.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Goliath2GearLoopB.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Goliath2GearLoopB.wav new file mode 100644 index 000000000..62ada2bd0 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/Goliath2GearLoopB.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/RadioGlitchLoop.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/RadioGlitchLoop.wav new file mode 100644 index 000000000..c475e9c2c Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/RadioGlitchLoop.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/RadioLoop2MIN.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/RadioLoop2MIN.wav new file mode 100644 index 000000000..9d34ad64c Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Auger/RadioLoop2MIN.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Concussion_Missile.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Concussion_Missile.wav new file mode 100644 index 000000000..ab01fc9a3 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Concussion_Missile.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_01.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_01.wav new file mode 100644 index 000000000..7c9603433 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_01.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_02.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_02.wav new file mode 100644 index 000000000..d1c9250ea Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_02.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_03.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_03.wav new file mode 100644 index 000000000..0cf1bed11 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Arrival_03.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Engine_Distant.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Engine_Distant.wav new file mode 100644 index 000000000..49eba853a Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Engine_Distant.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Engine_Idle.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Engine_Idle.wav new file mode 100644 index 000000000..36425976e Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Engine_Idle.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-01.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-01.wav new file mode 100644 index 000000000..4e269fb3f Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-01.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-02.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-02.wav new file mode 100644 index 000000000..4ecc59c44 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-02.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-03.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-03.wav new file mode 100644 index 000000000..a83e8aae4 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-03.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-04.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-04.wav new file mode 100644 index 000000000..3492b3ce5 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-04.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-05.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-05.wav new file mode 100644 index 000000000..6ea1f8499 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-05.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-06.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-06.wav new file mode 100644 index 000000000..5806f6065 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-06.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-07.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-07.wav new file mode 100644 index 000000000..f39183206 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-07.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-08.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-08.wav new file mode 100644 index 000000000..bb2a06db2 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-08.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-09.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-09.wav new file mode 100644 index 000000000..074bf2318 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-09.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-10.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-10.wav new file mode 100644 index 000000000..a11ba79a1 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-10.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-11.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-11.wav new file mode 100644 index 000000000..40f4ffa99 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-11.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-12.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-12.wav new file mode 100644 index 000000000..03be73580 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-12.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-13.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-13.wav new file mode 100644 index 000000000..2e16b6bb1 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-13.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-14.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-14.wav new file mode 100644 index 000000000..355db0391 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-14.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-15.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-15.wav new file mode 100644 index 000000000..774838705 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-15.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-16.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-16.wav new file mode 100644 index 000000000..95dfae550 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-16.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-17.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-17.wav new file mode 100644 index 000000000..b92d6e531 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Dreadnaught_Status-17.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion01.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion01.wav new file mode 100644 index 000000000..a293cd582 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion01.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion02.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion02.wav new file mode 100644 index 000000000..f7028c938 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion02.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion03.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion03.wav new file mode 100644 index 000000000..e526af4b6 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion03.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion04.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion04.wav new file mode 100644 index 000000000..ff08a73e3 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Explosion04.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Fighter_Laser.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Fighter_Laser.wav new file mode 100644 index 000000000..d9fdf4dd3 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Fighter_Laser.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Hyperspace_Exit_01.WAV b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Hyperspace_Exit_01.WAV new file mode 100644 index 000000000..f4aca8f01 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Hyperspace_Exit_01.WAV differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Hyperspace_Exit_02.WAV b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Hyperspace_Exit_02.WAV new file mode 100644 index 000000000..c07429f27 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Hyperspace_Exit_02.WAV differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/LR_Ion_Cannon.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/LR_Ion_Cannon.wav new file mode 100644 index 000000000..4475833f8 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/LR_Ion_Cannon.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/Energy.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/Energy.wav new file mode 100644 index 000000000..b4beea3c5 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/Energy.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/beamstart5.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/beamstart5.wav new file mode 100644 index 000000000..796feb608 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/beamstart5.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/charging.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/charging.wav new file mode 100644 index 000000000..dd9f73dd3 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/charging.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/concrete_break2.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/concrete_break2.wav new file mode 100644 index 000000000..a7ca558a3 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/concrete_break2.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/concrete_scrape_smooth_loop1.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/concrete_scrape_smooth_loop1.wav new file mode 100644 index 000000000..4321e341f Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/concrete_scrape_smooth_loop1.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/countdown.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/countdown.wav new file mode 100644 index 000000000..af56945dc Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/countdown.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/energypellet1.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/energypellet1.wav new file mode 100644 index 000000000..ffefcff24 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/energypellet1.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/gapsfx.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/gapsfx.wav new file mode 100644 index 000000000..66395c6ba Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/gapsfx.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/hexcannoncharge.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/hexcannoncharge.wav new file mode 100644 index 000000000..86a8f4986 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/hexcannoncharge.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/mspark.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/mspark.wav new file mode 100644 index 000000000..f5309918c Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/mspark.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup.wav new file mode 100644 index 000000000..4fcc07cbf Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup.wav.disabled b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup.wav.disabled new file mode 100644 index 000000000..c79663dba Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup.wav.disabled differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup2.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup2.wav new file mode 100644 index 000000000..39edf454e Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/powerup2.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/projectilecreate.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/projectilecreate.wav new file mode 100644 index 000000000..216186289 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/projectilecreate.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/projectilepass1.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/projectilepass1.wav new file mode 100644 index 000000000..dc95ff12f Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/projectilepass1.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/rocklaunch.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/rocklaunch.wav new file mode 100644 index 000000000..0d0b15c44 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/rocklaunch.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/se_kira01.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/se_kira01.wav new file mode 100644 index 000000000..662b3493a Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/se_kira01.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/se_tan01.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/se_tan01.wav new file mode 100644 index 000000000..96ad0d4b0 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/se_tan01.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sknifeimpact.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sknifeimpact.wav new file mode 100644 index 000000000..2f78e822e Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sknifeimpact.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/spook.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/spook.wav new file mode 100644 index 000000000..cb17e3283 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/spook.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sunloop.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sunloop.wav new file mode 100644 index 000000000..2ddeb64f9 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sunloop.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sunprojhit.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sunprojhit.wav new file mode 100644 index 000000000..5a52116e5 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/sunprojhit.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/suntravelloop.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/suntravelloop.wav new file mode 100644 index 000000000..eabfaa1ce Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/suntravelloop.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/zapping.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/zapping.wav new file mode 100644 index 000000000..349f08d8d Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Magic/zapping.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-01.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-01.wav new file mode 100644 index 000000000..d8f9035ee Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-01.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-02.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-02.wav new file mode 100644 index 000000000..6b831a6fe Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-02.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-03.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-03.wav new file mode 100644 index 000000000..1d6bb2dcc Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-03.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-04.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-04.wav new file mode 100644 index 000000000..12f718c74 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-04.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-05.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-05.wav new file mode 100644 index 000000000..41009ffca Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-05.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-06.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-06.wav new file mode 100644 index 000000000..c81c043c6 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-06.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-07.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-07.wav new file mode 100644 index 000000000..7fd8116b7 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-07.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-08.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-08.wav new file mode 100644 index 000000000..a744051d9 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-08.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-09.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-09.wav new file mode 100644 index 000000000..44031d8e1 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-09.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-10.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-10.wav new file mode 100644 index 000000000..b567e4d1b Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-10.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-11.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-11.wav new file mode 100644 index 000000000..8066974c2 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-11.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-12.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-12.wav new file mode 100644 index 000000000..91c59d56e Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-12.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-13.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-13.wav new file mode 100644 index 000000000..04c2bbd56 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-13.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-14.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-14.wav new file mode 100644 index 000000000..dd3594b40 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-14.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-15.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-15.wav new file mode 100644 index 000000000..f6dc29b43 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-15.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-16.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-16.wav new file mode 100644 index 000000000..3234fd6f5 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-16.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-17.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-17.wav new file mode 100644 index 000000000..41ac39917 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/NebulonB_Status-17.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/RB_Turbolaser_01.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/RB_Turbolaser_01.wav new file mode 100644 index 000000000..42f899cdc Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/RB_Turbolaser_01.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/RB_Turbolaser_02.wav b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/RB_Turbolaser_02.wav new file mode 100644 index 000000000..301180335 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/RB_Turbolaser_02.wav differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Turboion_Impact.WAV b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Turboion_Impact.WAV new file mode 100644 index 000000000..4ba28d0e3 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Audio/Turboion_Impact.WAV differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio.sbc index eac46dd85..f17f40a9e 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio.sbc @@ -7,6 +7,308 @@ + + + + + + + + + + + + + MyObjectBuilder_AudioDefinition + Auger3Reload + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 1.2 + 5 + + + Audio\Auger\Auger2Reload.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Auger5Reload + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 1.2 + 5 + + + Audio\Auger\Auger2ReloadLong.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Auger3Fire + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 1 + 5 + + + Audio\Auger\Auger2PulseFire.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Auger5Fire + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 3 + true + 5 + 1.2 + 5 + + + Audio\Auger\Auger2BeamFire.wav + + + + + + + + MyObjectBuilder_AudioDefinition + AugerGears + + SHOT + 0.1 + 500 + 0 + HeavyFight + 1 + true + 1 + 1.2 + 5 + + + Audio\Auger\Goliath2GearLoopB.wav + + + + + + + + MyObjectBuilder_AudioDefinition + AugerHitA + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 1.2 + 5 + + + Audio\Auger\Auger2HitA.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + RadioGlitchLoop + + SHOT + 0.1 + 3000 + 0 + HeavyFight + 4 + true + 4 + 0.7 + 5 + 3 + + + Audio\Auger\RadioLoop2MIN.wav + + + + + + + + + + + + + + + + + + + + + MyObjectBuilder_AudioDefinition + metalstorm + + SHOT + 0.1 + 2100 + 0 + + + + HeavyFight + 15 + false + 32 + 0.1 + 5 + + + Audio\Arcade\metalstorm.wav + + + + + + + + MyObjectBuilder_AudioDefinition + metalstormdistant + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 0.1 + 5 + + + Audio\Arcade\metalstorm.wav + + + + + + + + MyObjectBuilder_AudioDefinition + cbar + + SHOT + 0.1 + 1000 + 0 + HeavyFight + 15 + false + 0.1 + 5 + + + Audio\Arcade\cbar_hit1A.wav + + + + + + + + MyObjectBuilder_AudioDefinition + shit + + SHOT + 0.1 + 1000 + 0 + HeavyFight + 15 + false + 0.1 + 5 + + + Audio\Arcade\shieldhit1.wav + + + + + + + + MyObjectBuilder_AudioDefinition + metalstormreload + + SHOT + 0.1 + 250 + 10 + 0 + HeavyFight + 15 + false + 1 + 5 + + + Audio\Arcade\metalstormreload.wav + + + + + @@ -238,6 +540,35 @@ + + + + MyObjectBuilder_AudioDefinition + MedLaserLoop + + SHOT + 1200 + 0 + HeavyFight + 3 + 0.4 + 25 + 5 + true + + + Audio\MW4 Laser MediumLoop.wav + + + + + + + + + + + MyObjectBuilder_AudioDefinition @@ -378,6 +709,121 @@ + + + + + + + MyObjectBuilder_AudioDefinition + caution + + SHOT + 3000 + 0 + HeavyFight + 15 + false + 1 + 5 + + + Audio\Magic\hexcannoncharge.wav + + + + + + + + MyObjectBuilder_AudioDefinition + suntravelloop + + SHOT + 3000 + 0 + HeavyFight + 15 + true + 5 + + + Audio\Magic\suntravelloop.wav + Audio\Magic\suntravelloop.wav + Audio\Magic\suntravelloop.wav + + + + + + + + MyObjectBuilder_AudioDefinition + sunloop + + SHOT + 3000 + 0 + HeavyFight + 15 + true + 1 + + + Audio\Magic\sunloop.wav + + + + + + + + MyObjectBuilder_AudioDefinition + sunprojhit + + SHOT + 500 + 0 + + + HeavyFight + 15 + false + 1 + 5 + + + Audio\Magic\sunprojhit.wav + + + + + + + + MyObjectBuilder_AudioDefinition + gapsfx + + SHOT + 1000 + 0 + + + HeavyFight + 15 + false + 1 + 5 + 5 + + + Audio\Magic\gapsfx.wav + + + + + + MyObjectBuilder_AudioDefinition diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio_SA.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio_SA.sbc index 288861c27..7012c86d6 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio_SA.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio_SA.sbc @@ -1,756 +1,756 @@ - - - - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_AMS - - SHOT - 3000 - 0 - HeavyFight - 35 - 1 - false - - - Audio\Gauss\HSR_Shot_Alpha.wav - - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_Heavy - - SHOT - 5000 - 0 - HeavyFight - 35 - 1.45 - false - - - Audio\Gauss\HSR_Shot_Alpha.wav - - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_RotaryGauss - - SHOT - 4000 - 0 - HeavyFight - 35 - 1 - 50 - - - - false - - - Audio\General\RotaryGauss.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_RotaryGauss_Distant - - SHOT - 4000 - 0 - HeavyFight - - 35 - 1 - -5 - false - - - Audio\General\RotaryGauss_Distant.wav - - - - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_HeavyCharon - - SHOT - 7000 - 0 - HeavyFight - 35 - 0.65 - 20 - - - - false - - - Audio\Gauss\HSR_Shot_Alpha.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_HeavyCharon_Distant - - SHOT - 7000 - 0 - HeavyFight - 35 - 2 - 20 - false - - - Audio\Gauss\HSR_Shot_B.wav - - - - - - - MyObjectBuilder_AudioDefinition - Charon_Charge_Distant - - SHOT - 7000 - 0 - HeavyFight - 35 - 3 - false - - - Audio\Gauss\Charon_Charge_Distant.wav - - - - - - - MyObjectBuilder_AudioDefinition - Monopole_Charge_Distant - - SHOT - 7000 - 0 - HeavyFight - 35 - 3 - false - - - Audio\Gauss\Monopole_Charge_Distant.wav - - - - - - - - - MyObjectBuilder_AudioDefinition - Charon_Charge - - SHOT - 7000 - 0 - HeavyFight - 35 - 2 - - - - false - - - Audio\Gauss\Charon_Charge.wav - - - - - - - MyObjectBuilder_AudioDefinition - Charon_Barrel_Spin - - SHOT - 5000 - 0 - HeavyFight - 35 - 10 - true - - - Audio\Gauss\Charon_Barrel.wav - - - - - - - MyObjectBuilder_AudioDefinition - Monopole_Charge - - SHOT - 7000 - 0 - HeavyFight - 35 - 2 - - - - false - - - Audio\Gauss\Monopole_Charge.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_ER - - SHOT - 5000 - 0 - HeavyFight - 35 - 1 - false - - - Audio\Gauss\HSR_Shot_Alpha.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_Cerberus - - SHOT - 7000 - 0 - HeavyFight - 35 - 1 - -1 - false - - - - - - Audio\Gauss\HSR_Shot_Alpha.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_Cerberus_Distant - - SHOT - 7000 - 0 - HeavyFight - 35 - 4 - 1 - false - - - Audio\Gauss\HSR_Shot_B.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_Cerberus_Impact - - SHOT - 400 - 0 - HeavyFight - 35 - 2 - 50 - false - - - Audio\Gauss\HSR_Shot_D.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Launch - - SHOT - 8000 - 0 - HeavyFight - 35 - 1 - 1 - 0.1 - 0.1 - false - - - Audio\Gauss\HSR_Missile_Launch_A.wav - - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_GrimFlight - - SHOT - 1000 - 0 - HeavyFight - 35 - 1 - true - - - Audio\Gauss\Audio_MissileTravelLoop_Dark.wav - - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Reload_Gauss - - SHOT - 50 - 0 - HeavyFight - 35 - 1 - false - - - Audio\General\SA_Reload_1.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_AmmoEmpty - - SHOT - 50 - 0 - HeavyFight - 35 - 1 - false - - - Audio\General\SA_Error_AmmoEmpty.wav - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Charon_Impact - - SHOT - 1300 - 0 - HeavyFight - 35 - 1 - false - - - Audio\Gauss\HSR_Shot_D.wav - - - - - - - - MyObjectBuilder_AudioDefinition - K_SA_Gauss_Asterius - - SHOT - 1000 - HeavyFight - 3 - 1 - false - 30 - 0.1 - 100 - 0 - - - Audio\Gauss\HSR_Shot_Alpha.wav - - - - - - - MyObjectBuilder_AudioDefinition - Satisfaction - - SHOT - 1500 - HeavyFight - 3 - 1 - 100 - 10 - false - - - Audio\Gauss\Satisfaction.wav - - - - - - - MyObjectBuilder_AudioDefinition - Somnus_Fire - - SHOT - 5000 - HeavyFight - 3 - 1 - 50 - 10 - false - - - Audio\Gauss\Somnus_Heavy.wav - - - - - - - MyObjectBuilder_AudioDefinition - Somnus_Hit - - SHOT - 1500 - HeavyFight - 3 - 1 - -2 - false - - - Audio\Gauss\Somnus_Heavy_Reverse_Impact.wav - - - - - - - MyObjectBuilder_AudioDefinition - Somnus_Shield_Hit - - SHOT - 1500 - HeavyFight - 3 - 1 - -5 - false - - - Audio\Gauss\Somnus_Shield_Hit.wav - - - - - - - MyObjectBuilder_AudioDefinition - SomnusFlyby - - SHOT - 1500 - 25 - HeavyFight - 3 - 3 - -1 - 40 - true - - - Audio\Gauss\Somnus_Flyby.wav - - - - - - - - MyObjectBuilder_AudioDefinition - Silvius_Charge - - SHOT - 8500 - HeavyFight - 3 - 4 - false - 0 - - - Audio\Gauss\Charge_up.wav - - - - - - MyObjectBuilder_AudioDefinition - Silvius_Fire - - SHOT - 8500 - HeavyFight - 3 - 4 - false - 0 - - - Audio\Gauss\Reverb_Cannon.wav - - - - - - - - MyObjectBuilder_AudioDefinition - Hydra_Reload - - SHOT - 500 - HeavyFight - 3 - 0.8 - false - 0 - - - Audio\shotgun\Dopamine_Device_Hydra_LoadingV2.wav - - - - - - - MyObjectBuilder_AudioDefinition - AutoCoilReload - - SHOT - 500 - HeavyFight - 3 - 0.5 - false - 0 - - - Audio\Gauss\AutoCoilReload.wav - - - - - - - - - - MyObjectBuilder_AudioDefinition - Hydra_Fire_Distant - - SHOT - 7000 - 0 - HeavyFight - 35 - 0.8 - false - - - Audio\shotgun\Dopamine_Device_Hydra_Firing_Distant.wav - - - - - - - MyObjectBuilder_AudioDefinition - Hydra_Fire - - SHOT - 7000 - 0 - HeavyFight - 35 - 0.8 - 20 - - - - false - - - Audio\shotgun\Chungus_Boom_Hydra_Firing.wav - - - - - - - - - MyObjectBuilder_AudioDefinition - Rotary_Gauss_Fire - - SHOT - 5000 - 0 - HeavyFight - 35 - 1 - 20 - - - - false - - - Audio\General\RotaryGauss.wav - - - - - - - MyObjectBuilder_AudioDefinition - Rotary_Gauss_Fire_Distant - - SHOT - 5000 - 0 - HeavyFight - 35 - 1 - 20 - false - - - Audio\General\RotaryGauss_Distant.wav - - - - - - - MyObjectBuilder_AudioDefinition - Pulse_Flak - - SHOT - 1200 - 5 - HeavyFight - 35 - 0.1 - 90 - false - - - Audio\Gauss\Pulse Flak.wav - - - - - - - MyObjectBuilder_AudioDefinition - Pulse_Flak_placeholder - - SHOT - 800 - HeavyFight - 35 - 0.5 - 50 - false - - - Audio\General\FixedHardLaser.wav - - - - - - - - - + + + + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_AMS + + SHOT + 3000 + 0 + HeavyFight + 35 + 1 + false + + + Audio\Gauss\HSR_Shot_Alpha.wav + + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_Heavy + + SHOT + 5000 + 0 + HeavyFight + 35 + 1.45 + false + + + Audio\Gauss\HSR_Shot_Alpha.wav + + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_RotaryGauss + + SHOT + 4000 + 0 + HeavyFight + 35 + 1 + 50 + + + + false + + + Audio\General\RotaryGauss.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_RotaryGauss_Distant + + SHOT + 4000 + 0 + HeavyFight + + 35 + 1 + -5 + false + + + Audio\General\RotaryGauss_Distant.wav + + + + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_HeavyCharon + + SHOT + 7000 + 0 + HeavyFight + 35 + 0.65 + 20 + + + + false + + + Audio\Gauss\HSR_Shot_Alpha.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_HeavyCharon_Distant + + SHOT + 7000 + 0 + HeavyFight + 35 + 2 + 20 + false + + + Audio\Gauss\HSR_Shot_B.wav + + + + + + + MyObjectBuilder_AudioDefinition + Charon_Charge_Distant + + SHOT + 7000 + 0 + HeavyFight + 35 + 3 + false + + + Audio\Gauss\Charon_Charge_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + Monopole_Charge_Distant + + SHOT + 7000 + 0 + HeavyFight + 35 + 3 + false + + + Audio\Gauss\Monopole_Charge_Distant.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + Charon_Charge + + SHOT + 7000 + 0 + HeavyFight + 35 + 2 + + + + false + + + Audio\Gauss\Charon_Charge.wav + + + + + + + MyObjectBuilder_AudioDefinition + Charon_Barrel_Spin + + SHOT + 5000 + 0 + HeavyFight + 35 + 10 + true + + + Audio\Gauss\Charon_Barrel.wav + + + + + + + MyObjectBuilder_AudioDefinition + Monopole_Charge + + SHOT + 7000 + 0 + HeavyFight + 35 + 2 + + + + false + + + Audio\Gauss\Monopole_Charge.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_ER + + SHOT + 5000 + 0 + HeavyFight + 35 + 1 + false + + + Audio\Gauss\HSR_Shot_Alpha.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_Cerberus + + SHOT + 7000 + 0 + HeavyFight + 35 + 1 + -1 + false + + + + + + Audio\Gauss\HSR_Shot_Alpha.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_Cerberus_Distant + + SHOT + 7000 + 0 + HeavyFight + 35 + 4 + 1 + false + + + Audio\Gauss\HSR_Shot_B.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_Cerberus_Impact + + SHOT + 400 + 0 + HeavyFight + 35 + 2 + 50 + false + + + Audio\Gauss\HSR_Shot_D.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Launch + + SHOT + 8000 + 0 + HeavyFight + 35 + 1 + 1 + 0.1 + 0.1 + false + + + Audio\Gauss\HSR_Missile_Launch_A.wav + + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_GrimFlight + + SHOT + 1000 + 0 + HeavyFight + 35 + 1 + true + + + Audio\Gauss\Audio_MissileTravelLoop_Dark.wav + + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Reload_Gauss + + SHOT + 50 + 0 + HeavyFight + 35 + 1 + false + + + Audio\General\SA_Reload_1.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_AmmoEmpty + + SHOT + 50 + 0 + HeavyFight + 35 + 1 + false + + + Audio\General\SA_Error_AmmoEmpty.wav + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Charon_Impact + + SHOT + 1300 + 0 + HeavyFight + 35 + 1 + false + + + Audio\Gauss\HSR_Shot_D.wav + + + + + + + + MyObjectBuilder_AudioDefinition + K_SA_Gauss_Asterius + + SHOT + 1000 + HeavyFight + 3 + 1 + false + 30 + 0.1 + 100 + 0 + + + Audio\Gauss\HSR_Shot_Alpha.wav + + + + + + + MyObjectBuilder_AudioDefinition + Satisfaction + + SHOT + 1500 + HeavyFight + 3 + 1 + 100 + 10 + false + + + Audio\Gauss\Satisfaction.wav + + + + + + + MyObjectBuilder_AudioDefinition + Somnus_Fire + + SHOT + 5000 + HeavyFight + 3 + 1 + 50 + 10 + false + + + Audio\Gauss\Somnus_Heavy.wav + + + + + + + MyObjectBuilder_AudioDefinition + Somnus_Hit + + SHOT + 1500 + HeavyFight + 3 + 1 + -2 + false + + + Audio\Gauss\Somnus_Heavy_Reverse_Impact.wav + + + + + + + MyObjectBuilder_AudioDefinition + Somnus_Shield_Hit + + SHOT + 1500 + HeavyFight + 3 + 1 + -5 + false + + + Audio\Gauss\Somnus_Shield_Hit.wav + + + + + + + MyObjectBuilder_AudioDefinition + SomnusFlyby + + SHOT + 1500 + 25 + HeavyFight + 3 + 3 + -1 + 40 + true + + + Audio\Gauss\Somnus_Flyby.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Silvius_Charge + + SHOT + 8500 + HeavyFight + 3 + 4 + false + 0 + + + Audio\Gauss\Charge_up.wav + + + + + + MyObjectBuilder_AudioDefinition + Silvius_Fire + + SHOT + 8500 + HeavyFight + 3 + 4 + false + 0 + + + Audio\Gauss\Reverb_Cannon.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Hydra_Reload + + SHOT + 500 + HeavyFight + 3 + 0.8 + false + 0 + + + Audio\shotgun\Dopamine_Device_Hydra_LoadingV2.wav + + + + + + + MyObjectBuilder_AudioDefinition + AutoCoilReload + + SHOT + 500 + HeavyFight + 3 + 0.5 + false + 0 + + + Audio\Gauss\AutoCoilReload.wav + + + + + + + + + + MyObjectBuilder_AudioDefinition + Hydra_Fire_Distant + + SHOT + 7000 + 0 + HeavyFight + 35 + 0.8 + false + + + Audio\shotgun\Dopamine_Device_Hydra_Firing_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + Hydra_Fire + + SHOT + 7000 + 0 + HeavyFight + 35 + 0.8 + 20 + + + + false + + + Audio\shotgun\Chungus_Boom_Hydra_Firing.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + Rotary_Gauss_Fire + + SHOT + 5000 + 0 + HeavyFight + 35 + 1 + 20 + + + + false + + + Audio\General\RotaryGauss.wav + + + + + + + MyObjectBuilder_AudioDefinition + Rotary_Gauss_Fire_Distant + + SHOT + 5000 + 0 + HeavyFight + 35 + 1 + 20 + false + + + Audio\General\RotaryGauss_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + Pulse_Flak + + SHOT + 1200 + 5 + HeavyFight + 35 + 0.1 + 90 + false + + + Audio\Gauss\Pulse Flak.wav + + + + + + + MyObjectBuilder_AudioDefinition + Pulse_Flak_placeholder + + SHOT + 800 + HeavyFight + 35 + 0.5 + 50 + false + + + Audio\General\FixedHardLaser.wav + + + + + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio_SW.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio_SW.sbc new file mode 100644 index 000000000..cbee6ee7d --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Audio_SW.sbc @@ -0,0 +1,652 @@ + + + + + + + + MyObjectBuilder_AudioDefinition + Ship_Engine + + SHOT + 3000 + 1 + true + 1 + 3 + 25 + + + + + + Audio\Dreadnaught_Engine_Idle.wav + + + + + + + MyObjectBuilder_AudioDefinition + Ship_Engine_Distant + + SHOT + 3000 + 0.75 + true + 1 + 3 + 25 + + + Audio\Dreadnaught_Engine_Distant.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Turbolaser_Impact + + SHOT + 1200 + 1 + false + 14 + + + Audio\Explosion01.wav + + + Audio\Explosion02.wav + + + Audio\Explosion03.wav + + + Audio\Explosion04.wav + + + + + + + MyObjectBuilder_AudioDefinition + Turboion_Impact + + SHOT + 1200 + 1 + false + 50 + + + Audio\Turboion_Impact.wav + + + + + + + MyObjectBuilder_AudioDefinition + Light_Turbolaser_Shot + + SHOT + 2500 + 1 + true + 15 + + + + + + Audio\RB_Turbolaser_01.wav + + + Audio\RB_Turbolaser_02.wav + + + + + + + MyObjectBuilder_AudioDefinition + Light_Turbolaser_Shot_Dist + + SHOT + 2500 + 0.75 + true + + 25 + + + Audio\RB_Turbolaser_01.wav + + + + + + + MyObjectBuilder_AudioDefinition + Light_Turboion_Shot + + SHOT + 2500 + 1 + false + 10 + + + Audio\LR_Ion_Cannon.wav + + + + + + + MyObjectBuilder_AudioDefinition + Concussion_Missile_Shot + + SHOT + 2500 + 1 + false + 10 + + + Audio\Concussion_Missile.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Dreadnaught_Arrival + + SHOT + 1500 + 1 + false + 1 + + + Audio\Dreadnaught_Status-01.wav + + + Audio\Dreadnaught_Status-02.wav + + + Audio\Dreadnaught_Status-03.wav + + + Audio\Dreadnaught_Status-04.wav + + + Audio\Dreadnaught_Status-05.wav + + + + + + + MyObjectBuilder_AudioDefinition + Dreadnaught_Stage_01 + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + + + + Audio\Dreadnaught_Status-06.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\Dreadnaught_Status-07.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\Dreadnaught_Status-08.wav + Audio\Dreadnaught_Engine_Idle.wav + + + + + + + MyObjectBuilder_AudioDefinition + Dreadnaught_Stage_01_Distant + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + Audio\Dreadnaught_Status-06.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\Dreadnaught_Status-07.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\Dreadnaught_Status-08.wav + Audio\Dreadnaught_Engine_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + Dreadnaught_Stage_02 + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + + + + Audio\Dreadnaught_Status-09.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\Dreadnaught_Status-10.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\Dreadnaught_Status-11.wav + Audio\Dreadnaught_Engine_Idle.wav + + + + + + + MyObjectBuilder_AudioDefinition + Dreadnaught_Stage_02_Distant + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + Audio\Dreadnaught_Status-09.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\Dreadnaught_Status-10.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\Dreadnaught_Status-11.wav + Audio\Dreadnaught_Engine_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + Dreadnaught_Stage_03 + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + + + + Audio\Dreadnaught_Status-12.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\Dreadnaught_Status-13.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\Dreadnaught_Status-14.wav + Audio\Dreadnaught_Engine_Idle.wav + + + + + + + MyObjectBuilder_AudioDefinition + Dreadnaught_Stage_03_Distant + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + Audio\Dreadnaught_Status-12.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\Dreadnaught_Status-13.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\Dreadnaught_Status-14.wav + Audio\Dreadnaught_Engine_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + Dreadnaught_Death + + SHOT + 2500 + 1 + false + 3 + 25 + + + Audio\Dreadnaught_Status-15.wav + + + Audio\Dreadnaught_Status-16.wav + + + Audio\Dreadnaught_Status-17.wav + + + + + + + + MyObjectBuilder_AudioDefinition + NebulonB_Arrival + + SHOT + 1500 + 4 + false + 1 + + + Audio\NebulonB_Status-01.wav + + + Audio\NebulonB_Status-02.wav + + + Audio\NebulonB_Status-03.wav + + + Audio\NebulonB_Status-04.wav + + + Audio\NebulonB_Status-05.wav + + + + + + + MyObjectBuilder_AudioDefinition + NebulonB_Stage_01 + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + + + + Audio\NebulonB_Status-06.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\NebulonB_Status-07.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\NebulonB_Status-08.wav + Audio\Dreadnaught_Engine_Idle.wav + + + + + + + MyObjectBuilder_AudioDefinition + NebulonB_Stage_01_Distant + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + Audio\NebulonB_Status-06.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\NebulonB_Status-07.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\NebulonB_Status-08.wav + Audio\Dreadnaught_Engine_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + NebulonB_Stage_02 + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + + + + Audio\NebulonB_Status-09.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\NebulonB_Status-10.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\NebulonB_Status-11.wav + Audio\Dreadnaught_Engine_Idle.wav + + + + + + + MyObjectBuilder_AudioDefinition + NebulonB_Stage_02_Distant + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + Audio\NebulonB_Status-09.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\NebulonB_Status-10.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\NebulonB_Status-11.wav + Audio\Dreadnaught_Engine_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + NebulonB_Stage_03 + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + + + + Audio\NebulonB_Status-12.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\NebulonB_Status-13.wav + Audio\Dreadnaught_Engine_Idle.wav + + + Audio\NebulonB_Status-14.wav + Audio\Dreadnaught_Engine_Idle.wav + + + + + + + MyObjectBuilder_AudioDefinition + NebulonB_Stage_03_Distant + + SHOT + 2500 + 1 + true + 1 + 3 + 25 + + + Audio\NebulonB_Status-12.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\NebulonB_Status-13.wav + Audio\Dreadnaught_Engine_Distant.wav + + + Audio\NebulonB_Status-14.wav + Audio\Dreadnaught_Engine_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + NebulonB_Death + + SHOT + 2500 + 1 + false + 3 + 25 + + + Audio\NebulonB_Status-15.wav + + + Audio\NebulonB_Status-16.wav + + + Audio\NebulonB_Status-17.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Hyperspace_Exit + + SHOT + 1200 + 1 + false + 25 + + + Audio\Hyperspace_Exit_01.wav + + + Audio\Hyperspace_Exit_02.wav + + + + + + + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/CapacitorBlocks.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/CapacitorBlocks.sbc index 2adee2d34..5a4b32386 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/CapacitorBlocks.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/CapacitorBlocks.sbc @@ -1,71 +1,71 @@ - - - - - - BatteryBlock - CapacitorLarge - - Capacitor - Textures\GUI\Icons\Capacitor.dds - - Has a reserve of power that can discharge - It must be set to "Discharge" or "Auto" to provide power. Setting it back to "Rechage" pauses the timer.i se - - Large - TriangleMesh - - - Models\Capacitor.mwm - - - - - - Ore - Scrap - - - - - - - - - - Capacitor - Light - 40 - - Battery - 1000 - - BatteryBlock - 12 - true - 3 - 0.3 - 0.8 - - - 1 - 1 - 1 - - true - Damage_Electrical_Damaged - ParticleElectrical - Extended - BlockDestroyedExplosion_Large - WepSmallWarheadExpl - 15 - true - Y - Z - - PowerSystems - - - - - + + + + + + BatteryBlock + CapacitorLarge + + Capacitor + Textures\GUI\Icons\Capacitor.dds + + Has a reserve of power that can discharge + It must be set to "Discharge" or "Auto" to provide power. Setting it back to "Rechage" pauses the timer.i se + + Large + TriangleMesh + + + Models\Capacitor.mwm + + + + + + Ore + Scrap + + + + + + + + + + Capacitor + Light + 40 + + Battery + 1000 + + BatteryBlock + 12 + true + 3 + 0.3 + 0.8 + + + 1 + 1 + 1 + + true + Damage_Electrical_Damaged + ParticleElectrical + Extended + BlockDestroyedExplosion_Large + WepSmallWarheadExpl + 15 + true + Y + Z + + PowerSystems + + + + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Concussion_Missile.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Concussion_Missile.sbc new file mode 100644 index 000000000..66a35570b --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Concussion_Missile.sbc @@ -0,0 +1,1848 @@ + + + + + + 2117308147 + 1 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 72 + + + + + + + + + + + 0.2196078 + 0.2084001 + 0.1071171 + 0.2196078 + + + + + + + 0.1390225 + 0.05818718 + 0.02095113 + 1 + + + + + + + 0.01517524 + 0.01517524 + 0.01517524 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 50 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0.02 + 0.02 + 0.02 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0.3 + + + + + + + + + 0.2 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 2 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0.5 + + + + + + + + + + 0.35 + + + + + 1.25 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + 2 + + + 4 + + + 0.05 + + + true + + + + + + 450 + + + + + 100 + + + + + 500 + + + + + 200 + + + + + 300 + + + + + 150 + + + + + 450 + + + + + 250 + + + + + 350 + + + + + 100 + + + + + 300 + + + + + + Atlas_D_01 + + + 1 + + + true + + + false + + + true + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0.2 + + + + 0.5 + + + 0.01 + + + true + + + 0.5 + + + 0.2 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0.2 + + + + + + + + + + 300 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 2.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 1 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 10 + 35 + 0.5 + + + + + + + 6 + 10 + 35 + 0.5 + + + + + + + 6 + 10 + 35 + 0.5 + + + + + + + 6 + 10 + 35 + 0.5 + + + + + + + + + + + + + + + + + 100 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + + + + + 0.05 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 0.9743002 + 0.7667436 + 0.5174014 + 1 + + + + + + + 0.9743002 + 0.7667436 + 0.5174014 + 1 + + + + + + + 0.9743002 + 0.7667436 + 0.5174014 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 50 + + + + + 300 + + + + + 300 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 5 + + + + + + + + + 2 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0.2 + + + + + 0.2 + + + + + + + + + 0.05 + + + 1 + + + 2 + + + 1 + + + true + + + + + + 30 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 2 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 1 + + + + 103 + + + 1 + + + + + + + + + + + 0.075 + 0.2 + 0.5 + 0.5 + + + + + + + 0.1554853 + 0.03592236 + 0.03592236 + 0.2195197 + + + + + + + 0.1554853 + 0.03592236 + 0.03592236 + 0.2195197 + + + + + + + 0.1554853 + 0.03592236 + 0.03592236 + 0.2195197 + + + + + + + + + + + + + + + + + 100 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.05 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + + + + 0.9137255 + 0.7882353 + 0.3411765 + 1 + + + + + + + + + + + + + 5 + + + + + + + + + + + + 2 + + + + + + + + + 0.5 + + + + + + false + + + 0 + + + 1 + + + 0.1 + + + + + 5000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/ConveyorBlocks.sbc.disabled b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/ConveyorBlocks.sbc.disabled index 0047582fb..5e71661e8 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/ConveyorBlocks.sbc.disabled +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/ConveyorBlocks.sbc.disabled @@ -1,81 +1,81 @@ - - - - - - - Conveyor - BusLineStraight - - Capacitor Bus Line - Textures\GUI\Icons\Cubes\conveyor.dds - Connects high-voltage components from CapacitCore. - Large - TriangleMesh - - - Models\BusLineStraight.mwm - - - - - - - - - - BusLine - - - - - Conveyor - BusLineCurved - - Curved Capacitor Bus Line - Textures\GUI\Icons\Cubes\conveyor.dds - Connects high-voltage components from CapacitCore. - Large - TriangleMesh - - - Models\BusLineCurved.mwm - - - - - - - - - - BusLineC - - - - - Conveyor - BusLineT - - Split-T Capacitor Bus Line - Textures\GUI\Icons\Cubes\conveyor.dds - Connects high-voltage components from CapacitCore. - Large - TriangleMesh - - - Models\BusLineT.mwm - - - - - - - - - - BusLineT - - - + + + + + + + Conveyor + BusLineStraight + + Capacitor Bus Line + Textures\GUI\Icons\Cubes\conveyor.dds + Connects high-voltage components from CapacitCore. + Large + TriangleMesh + + + Models\BusLineStraight.mwm + + + + + + + + + + BusLine + + + + + Conveyor + BusLineCurved + + Curved Capacitor Bus Line + Textures\GUI\Icons\Cubes\conveyor.dds + Connects high-voltage components from CapacitCore. + Large + TriangleMesh + + + Models\BusLineCurved.mwm + + + + + + + + + + BusLineC + + + + + Conveyor + BusLineT + + Split-T Capacitor Bus Line + Textures\GUI\Icons\Cubes\conveyor.dds + Connects high-voltage components from CapacitCore. + Large + TriangleMesh + + + Models\BusLineT.mwm + + + + + + + + + + BusLineT + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/GasProperties.sbc.disabled b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/GasProperties.sbc.disabled index 53451ee40..00f88526d 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/GasProperties.sbc.disabled +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/GasProperties.sbc.disabled @@ -1,13 +1,13 @@ - - - - - - MyObjectBuilder_GasProperties - CapacitCoreCharge - - 500 - - - - + + + + + + MyObjectBuilder_GasProperties + CapacitCoreCharge + + 500 + + + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/MA_Afterburner_Audio.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/MA_Afterburner_Audio.sbc index 1b870adc3..92274344d 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/MA_Afterburner_Audio.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/MA_Afterburner_Audio.sbc @@ -1,146 +1,146 @@ - - - - - - - AudioDefinition - MA_Afterburner_Large - - WEP_SHIP - 800 - 3 - 1 - 6 - true - - - Audio\EMP_Fire_Start.wav - Audio\EMP_Fire_Loop.wav - Audio\EMP_Fire_Stop.wav - - - - - - - AudioDefinition - MA_Afterburner_Large_Fug - - WEP_SHIP - 800 - 2 - 1 - true - - - Audio\EMP_Fire_Loop.wav - - - - - - - MyObjectBuilder_AudioDefinition - EMPFiringSoundDistant - - SHOT - 800 - 100 - 3 - true - - - Audio\EMP_Fire_Start_Dist.wav - Audio\EMP_Fire_Loop_Dist.wav - Audio\EMP_Fire_Stop_Dist.wav - - - - - - - MyObjectBuilder_AudioDefinition - ABWarning - - SHOT - 800 - 100 - 3 - true - - - Audio\abwarning.wav - - - - - - - - - MyObjectBuilder_AudioDefinition - SRBstart - - SHOT - 800 - 100 - 0.1 - true - - - Audio\SRBstart.wav - - - - - - - - - AudioDefinition - SRBloop - - WEP_SHIP - 800 - 0.1 - 1 - 6 - true - - - Audio\SRBloop_start.wav - Audio\SRBloop.wav - Audio\EMP_Fire_Stop.wav - - - - - - - MyObjectBuilder_AudioDefinition - gravgun - - SHOT - 1000 - 0 - - - HeavyFight - 15 - false - 1 - 5 - - - Audio\gravgun.wav - - - - - - - - - + + + + + + + AudioDefinition + MA_Afterburner_Large + + WEP_SHIP + 800 + 3 + 1 + 6 + true + + + Audio\EMP_Fire_Start.wav + Audio\EMP_Fire_Loop.wav + Audio\EMP_Fire_Stop.wav + + + + + + + AudioDefinition + MA_Afterburner_Large_Fug + + WEP_SHIP + 800 + 2 + 1 + true + + + Audio\EMP_Fire_Loop.wav + + + + + + + MyObjectBuilder_AudioDefinition + EMPFiringSoundDistant + + SHOT + 800 + 100 + 3 + true + + + Audio\EMP_Fire_Start_Dist.wav + Audio\EMP_Fire_Loop_Dist.wav + Audio\EMP_Fire_Stop_Dist.wav + + + + + + + MyObjectBuilder_AudioDefinition + ABWarning + + SHOT + 800 + 100 + 3 + true + + + Audio\abwarning.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + SRBstart + + SHOT + 800 + 100 + 0.1 + true + + + Audio\SRBstart.wav + + + + + + + + + AudioDefinition + SRBloop + + WEP_SHIP + 800 + 0.1 + 1 + 6 + true + + + Audio\SRBloop_start.wav + Audio\SRBloop.wav + Audio\EMP_Fire_Stop.wav + + + + + + + MyObjectBuilder_AudioDefinition + gravgun + + SHOT + 1000 + 0 + + + HeavyFight + 15 + false + 1 + 5 + + + Audio\gravgun.wav + + + + + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Muzzle_Flash_MetalStorm.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Muzzle_Flash_MetalStorm.sbc new file mode 100644 index 000000000..0361c4a2b --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Muzzle_Flash_MetalStorm.sbc @@ -0,0 +1,2288 @@ + + + + + + 75 + 4 + 0 + false + false + 4 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 72 + + + + + + + + + + + 1 + 0.607843161 + 0.270588249 + 1 + + + + + + + 0.235294119 + 0.235294119 + 0.235294119 + 0.156862751 + + + + + + + 0.007843138 + 0.007843138 + 0.007843138 + 0.0392156877 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 3 + + + + + 0.2 + + + + + 0.05 + + + + + 0.05 + + + + + + + + + 0.5 + + + + + + + 0.02 + 0.02 + 0.02 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 10 + + + + + + + + + 3 + + + + + + + + + 0 + + + + + + + + + 50 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + -110 + + + + + -9.91 + + + + + -4.1 + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 0.25 + + + + + 0.9 + + + + + 6 + + + + + 6 + + + + + + + + + 2 + + + 2 + + + 4 + + + 0.15 + + + true + + + + + + Atlas_D_01 + + + 0.1 + + + false + + + false + + + true + + + false + + + 1 + + + -0.04 + + + + 0 + 0 + -0.07 + + + + 0 + + + 0 + + + true + + + 0.97 + + + 0.5 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 3 + + + + + + 0 + + + + + + + + + + 30 + + + + + 1 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 25 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 480 + + + 16 + + + + + + + + + + + 1 + 0.521568656 + 0.294117659 + 1 + + + + + + + 1 + 0.470588237 + 0.219607845 + 1 + + + + + + + 0.447058827 + 0.203921571 + 0.141176477 + 0.5019608 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 2000 + + + + + 2000 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 20 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 1 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + -500 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0.02 + + + + + 0.3 + + + + + 0 + + + + + + + + + 0.1 + + + 15 + + + 1 + + + 0.3 + + + false + + + + + + Atlas_D_01 + + + 20 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 3 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 5 + + + + + 5 + + + + + 0 + + + + + 0 + + + + + + + + + 0.1 + + + false + + + true + + + 100 + + + 1 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 72 + + + + + + + + + + + 1 + 0.654902 + 0.254901975 + 1 + + + + + + + 0.156862751 + 0.156862751 + 0.156862751 + 0.196078435 + + + + + + + 0.007843138 + 0.007843138 + 0.007843138 + 0.0392156877 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 3 + + + + + 0.5 + + + + + 0.05 + + + + + 0.05 + + + + + + + + + 0.5 + + + + + + + 0.02 + 0.02 + 0.02 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 30 + + + + + + + + + 5 + + + + + + + + + 0 + + + + + + + + + 20 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + -500 + + + + + -45 + + + + + -9 + + + + + 0 + + + + + + + + + 2.6 + + + + + + + + + + 0.25 + + + + + 0.4 + + + + + 4 + + + + + 0.7 + + + + + + + + + 1 + + + 2 + + + 4 + + + 0.3 + + + false + + + + + + Atlas_D_01 + + + 0.3 + + + false + + + false + + + true + + + false + + + 1 + + + -0.04 + + + + 0 + 0 + -0.07 + + + + 0 + + + 0 + + + true + + + 0.97 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 5 + + + + + + 0 + + + + + + + + + + 5 + + + + + 1 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 25 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 128 + + + 96 + + + + + + + + + + + 0.0784313753 + 0.0784313753 + 0.0784313753 + 0.0784313753 + + + + + + + 0.0784313753 + 0.0784313753 + 0.0784313753 + 0.117647059 + + + + + + + 0.0784313753 + 0.0784313753 + 0.0784313753 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 0.05 + + + + + 0.05 + + + + + 0.05 + + + + + 0.05 + + + + + + + + + 0.5 + + + + + + + 0.02 + 0.02 + 0.02 + + + + + + + + + + 0 + + + + + + + 0 + 0.2 + 1 + + + + + + + 1 + + + + + + + + + 0.5 + + + + + + + + + 0 + + + + + + + + + 30 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 3 + + + + + 1.5 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.2 + + + + + 0.4 + + + + + 3.5 + + + + + 3.5 + + + + + + + + + 1.5 + + + 20 + + + 4 + + + 0.4 + + + false + + + + + + 9 + + + + + 5 + + + + + 0 + + + + + + Atlas_E_01 + + + 0.1 + + + false + + + false + + + true + + + false + + + 1 + + + -0.04 + + + + 0 + 0 + -0.07 + + + + 0 + + + 0 + + + true + + + 0.97 + + + 0.2 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 25 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 480 + + + 16 + + + + + + + + + + + 1 + 0.521568656 + 0.294117659 + 1 + + + + + + + 1 + 0.470588237 + 0.219607845 + 1 + + + + + + + 0.447058827 + 0.203921571 + 0.141176477 + 0.5019608 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 2000 + + + + + 2000 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 20 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 1 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + -500 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0.02 + + + + + 0.28 + + + + + 0 + + + + + + + + + 0.1 + + + 15 + + + 1 + + + 0.3 + + + false + + + + + + Atlas_D_01 + + + 20 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 3 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 5 + + + + + 5 + + + + + 0 + + + + + 0 + + + + + + + + + 0.1 + + + false + + + true + + + 100 + + + 1 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + + + + 1 + 0.7742273 + 0.3736151 + 1 + + + + + + + + + + + + + 30 + + + + + + + + + + + + 80 + + + + + 0 + + + + + + + + + 30 + + + + + 0 + + + + + + true + + + 0 + + + 0.1 + + + 0.005 + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Nebulon_Engine.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Nebulon_Engine.sbc new file mode 100644 index 000000000..e42a5af6c --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Nebulon_Engine.sbc @@ -0,0 +1,6013 @@ + + + + + + -863470998 + 90 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.75 + + + + + 3.5 + + + + + 2.25 + + + + + 1.25 + + + + + + + + + 0.5 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + -1.5 + 72 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + -1.5 + 72 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 5.35 + 2 + 72 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -5.35 + 2 + 72 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 5.8 + 9.5 + 72 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -5.8 + 9.5 + 72 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.8 + 9.5 + 72 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + 80 + 33 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + 1.5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.8 + 9.5 + 72 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.75 + + + + + 3.5 + + + + + 2.25 + + + + + 1.25 + + + + + + + + + 0.5 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 5.35 + 2 + 72 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.75 + + + + + 3.5 + + + + + 2.25 + + + + + 1.25 + + + + + + + + + 0.5 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -5.35 + 2 + 72 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.75 + + + + + 3.5 + + + + + 2.25 + + + + + 1.25 + + + + + + + + + 0.5 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 5.8 + 9.5 + 72 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.75 + + + + + 3.5 + + + + + 2.25 + + + + + 1.25 + + + + + + + + + 0.5 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -5.8 + 9.5 + 72 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.75 + + + + + 3.5 + + + + + 2.25 + + + + + 1.25 + + + + + + + + + 0.5 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.8 + 9.5 + 72 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + 12 + 6 + 0 + 0.5 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1.75 + + + + + 3.5 + + + + + 2.25 + + + + + 1.25 + + + + + + + + + 0.5 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.8 + 9.5 + 72 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particle_Projectiles.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particle_Projectiles.sbc index 150e26582..f2a814670 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particle_Projectiles.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particle_Projectiles.sbc @@ -1,8385 +1,8385 @@ - - - - - - - - 63799 - 5 - 0 - false - false - 5 - 0 - 0 - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0 - 1 - 0 - 1 - - - - - - - 0 - 1 - 0.2 - 1 - - - - - - - 0 - 1 - 0.2 - 1 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 50 - - - - - 500 - - - - - 500 - - - - - 50 - - - - - - - - - 0.5 - - - - - - - 0 - 1.8 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0.5 - - - - - 0.5 - - - - - 0.5 - - - - - 0.7 - - - - - - - - - 0.45 - - - 1 - - - 4 - - - 0.03 - - - true - - - - - - 0 - - - - - 0 - - - - - 0.1 - - - - - 0 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - -0.1 - - - - 2.9 - 0 - -0.2 - - - - 0 - - - 0 - - - false - - - 1 - - - 0 - - - false - - - 1 - - - - 0 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 2 - - - - - 2 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 50 - - - - - 50 - - - - - 50 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0.15 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0 - 1 - 0 - 1 - - - - - - - 0 - 1 - 0 - 1 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 1 - - - - - 100 - - - - - 100 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - 1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0.1 - - - - - 0.38 - - - - - 0.38 - - - - - 0.1 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.03 - - - false - - - - - - 2 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - -1.5 - 0.1 - - - - 0 - - - 0 - - - true - - - 1 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0.5 - - - - - - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0 - 1 - 0 - 1 - - - - - - - 0 - 1 - 0 - 1 - - - - - - - 0 - 1 - 0 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1000 - - - - - 1000 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 1 - 0 - - - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0.1 - - - - - 0.1 - - - - - 1 - - - - - 1 - - - - - - - - - 1 - - - 1 - - - 4 - - - 0.01 - - - true - - - - - - 0 - - - - - 0 - - - - - 2 - - - - - 2 - - - - - 0 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 1 - 0.2 - - - - 0 - - - 0 - - - false - - - 1 - - - 0 - - - false - - - 1 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 3 - - - - - 3 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - - - - - - - - - - - - - - - -5 -0.25 -0.25 - 1 - - - - - - - - - - - - - 150 - - - - - - - - - 1 - - - - - - - - - 0 - - - - - 120 - - - - - 115 - - - - - 45 - - - - - 35 - - - - - 12 - - - - - 0 - - - - - - - - - true - - - 0 - - - 0.3 - - - 1 - - - - - 7000 - 1 - - - - - 63800 - 5 - 0 - false - false - 5 - 0 - 0 - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 0 - 0.5 - 0.5 - 1 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 75 - - - - - 200 - - - - - 300 - - - - - 50 - - - - - - - - - 0.5 - - - - - - - 0 - 1.8 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0.5 - - - - - 0.5 - - - - - 0.5 - - - - - 0.7 - - - - - - - - - 10 - - - 1 - - - 4 - - - 0.03 - - - false - - - - - - 10 - - - - - 10 - - - - - 10.1 - - - - - 10 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - -0.1 - - - - 2.9 - 0 - -0.2 - - - - 0 - - - 0 - - - false - - - 1 - - - 0 - - - false - - - 1 - - - - 0 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 2 - - - - - 2 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 50 - - - - - 50 - - - - - 50 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0.15 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 1 - - - - - 100 - - - - - 100 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - 1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0.1 - - - - - 0.38 - - - - - 0.38 - - - - - 0.1 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.03 - - - false - - - - - - 2 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - -1.5 - 0.1 - - - - 0 - - - 0 - - - true - - - 1 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0.5 - - - - - - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 1 - 1 - 1 - - - - - - - 0.2 - 1 - 1 - 1 - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1000 - - - - - 1000 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0.5 - - - - - - - 1 - 1 - 1 - - - - - - - 0.5 - - - - - - - - - 0.05 - - - - - - - - - 20 - - - - - - - - - 20 - - - - - - - 0 - 0 - 2 - - - - - - - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - - - - - 100 - - - - - - - - - - 6 - - - - - 6 - - - - - 6 - - - - - 6 - - - - - - - - - 0.015 - - - 1 - - - 3 - - - 0.01 - - - true - - - - - - 15 - - - - - 15 - - - - - 15 - - - - - 15 - - - - - 15 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 1000 - - - 0.1 - - - true - - - 1 - - - 0.41 - - - true - - - 0 - - - - 110 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 3 - - - - - 5 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - true - - - 1 - - - 0 - - - 1 - - - 1 - - - 0 - - - true - - - 0 - - - - - - - - - - - - - - - - - - - - - 0 - 2.5 - 2.5 - 1 - - - - - - - - - - - - - 150 - - - - - - - - - 1 - - - - - - - - - 0 - - - - - 120 - - - - - 115 - - - - - 45 - - - - - 35 - - - - - 12 - - - - - 0 - - - - - - - - - false - - - 0 - - - 0.3 - - - 1 - - - - - 2000 - 1 - - - - - 63801 - 5 - 0 - false - false - 5 - 0 - 0 - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 0 - 0.5 - 0.5 - 1 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 75 - - - - - 200 - - - - - 300 - - - - - 50 - - - - - - - - - 0.5 - - - - - - - 0 - 1.8 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0.5 - - - - - 0.5 - - - - - 0.5 - - - - - 0.7 - - - - - - - - - 10 - - - 1 - - - 4 - - - 0.03 - - - false - - - - - - 10 - - - - - 10 - - - - - 10.1 - - - - - 10 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - -0.1 - - - - 2.9 - 0 - -0.2 - - - - 0 - - - 0 - - - false - - - 1 - - - 0 - - - false - - - 1 - - - - 0 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 2 - - - - - 2 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 50 - - - - - 50 - - - - - 50 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0.15 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 0 - 1 - 1 - 1 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 1 - - - - - 100 - - - - - 100 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - 1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0.1 - - - - - 0.38 - - - - - 0.38 - - - - - 0.1 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.03 - - - false - - - - - - 2 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - -1.5 - 0.1 - - - - 0 - - - 0 - - - true - - - 1 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0.5 - - - - - - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 1.86 - 1.29 - 1.94 - 1 - - - - - - - 1.86 - 1.29 - 1.94 - 1 - - - - - - - 1.86 - 1.29 - 1.94 - 1 - - - - - - - 1.86 - 1.29 - 1.94 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1000 - - - - - 1000 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 3 - 3 - 3 - - - - - - - - - - 1 - - - - - - - 1 - 1 - 1 - - - - - - - 1 - - - - - - - - - 0.05 - - - - - - - - - 20 - - - - - - - - - 20 - - - - - - - 0 - 0 - 2 - - - - - - - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - - - - - 100 - - - - - - - - - - 6 - - - - - 6 - - - - - 6 - - - - - 6 - - - - - - - - - 0.015 - - - 1 - - - 1.2 - - - 0.01 - - - true - - - - - - 15 - - - - - 30 - - - - - 30 - - - - - 30 - - - - - 30 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 1000 - - - 0.1 - - - true - - - 1 - - - 0.41 - - - true - - - 0 - - - - 110 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 3 - - - - - 5 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - true - - - 1 - - - 0 - - - 1 - - - 1 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 4 - 4 - 0 - - - - 6 - - - 1 - - - - - - - - - - - 0.8117647 - 0.1117647 - 0.1117647 - 0.156862751 - - - - - - - 0.8117647 - 0.1117647 - 0.1117647 - 0.156862751 - - - - - - - 0.8117647 - 0.1117647 - 0.1117647 - 0.156862751 - - - - - - - 0.8117647 - 0.1117647 - 0.1117647 - 0.156862751 - - - - - - - - - - - - - - - - - 0 - - - - - 0.1 - - - - - 0.3 - - - - - 0.3 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 1 - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - 0.5 - - - 0 - - - 4 - - - 1 - - - true - - - - - - 5 - - - - - 5 - - - - - 5 - - - - - - Atlas_E_01 - - - 0.1 - - - false - - - false - - - true - - - false - - - 2 - - - 0 - - - - 0 - 0 - -3 - - - - 0 - - - 0 - - - false - - - 1 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 0 - - - - - 0.1 - - - - - 0.1 - - - - - 0 - - - - - - - - - 1 - - - false - - - true - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 4 - 4 - 0 - - - - 6 - - - 1 - - - - - - - - - - - 0 - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - 0.9117647 - 0.4117647 - 0.4117647 - 0.156862751 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 0.3 - - - - - 0.3 - - - - - 0.3 - - - - - 0.3 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 8 - - - - - 8 - - - - - 8 - - - - - 8 - - - - - - - - - 2 - - - 0 - - - 4 - - - 1 - - - true - - - - - - 5 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - Atlas_E_01 - - - 0.1 - - - false - - - false - - - true - - - false - - - 2 - - - 0 - - - - 0 - 0 - -3 - - - - 0 - - - 0 - - - false - - - 1 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 0 - - - - - 0.1 - - - - - 0.1 - - - - - 0 - - - - - - - - - 1 - - - false - - - true - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 4 - 4 - 0 - - - - 6 - - - 1 - - - - - - - - - - - -11 - -11 - -11 - 5 - - - - - - - - -11 - -11 - -11 - 5 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - -1 - - - - - - - - - - 15 - - - - - 15 - - - - - 15 - - - - - 15 - - - - - - - - - 2 - - - 0 - - - 4 - - - 1 - - - true - - - - - - 5 - - - - - 11 - - - - - 11 - - - - - 11 - - - - - 11 - - - - - - Atlas_E_01 - - - 0.1 - - - false - - - false - - - true - - - false - - - 2 - - - 0 - - - - 0 - 0 - -3 - - - - 0 - - - 0 - - - false - - - 1 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 0 - - - - - 0.1 - - - - - 0.1 - - - - - 0 - - - - - - - - - 1 - - - false - - - true - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 4 - 4 - 0 - - - - 7 - - - 0 - - - - - - - - - - - 0.11 - 0.11 - 0.11 - 0.1392156877 - - - - - - - 0.11 - 0.11 - 0.11 - 0.1392156877 - - - - - - - 0.11 - 0.11 - 0.11 - 0 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 11.5 - - - - - 2.5 - - - - - 0 - - - - - 0 - - - - - - - - - 0.5 - - - - - - - 11 - 11 - 11 - - - - - - - - - - 0 - - - - - - - 0 - 0 - 1 - - - - - - - 110 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 20 - - - - - - - - - - - 0 - - - - - 2 - - - - - 0 - - - - - 0 - - - - - - - - - 1 - - - - - - - - - - 65 - - - - - 55 - - - - - 25 - - - - - 0 - - - - - - - - - 0.8 - - - 15 - - - 114 - - - 0.0005 - - - true - - - - - - 50 - - - - - - Atlas_E_01 - - - 0.151 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 10 - - - 0 - - - false - - - 0 - - - 0.1 - - - true - - - 1 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 1 - - - - - 1 - - - - - 1.3 - - - - - - - - - - - - 0 - - - - - - 1 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 1 - - - false - - - false - - - 0.5 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 16 - 16 - 1 - - - - 103 - - - 1 - - - - - - - - - - - 0.4763432 - 0.1800302 - 0.07277033 - 0.5019608 - - - - - - - 0.1554853 - 0.03592236 - 0.03592236 - 0.2195197 - - - - - - - 0.1554853 - 0.03592236 - 0.03592236 - 0.2195197 - - - - - - - 0.1554853 - 0.03592236 - 0.03592236 - 0.2195197 - - - - - - - - - - - - - - - - - 100 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.05 - - - 1 - - - 4 - - - 1 - - - false - - - - - - 25 - - - - - - Atlas_E_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 1 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 16 - 16 - 0 - - - - 0 - - - 64 - - - - - - - - - - - 0.7647059 - 1 - 0.996078432 - 1 - - - - - - - 0.494117647 - 0.694117665 - 1 - 1 - - - - - - - 0.192156866 - 0.172549024 - 0.4862745 - 0.784313738 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 8000 - - - - - 8000 - - - - - 100 - - - - - 100 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 1 - - - - - - - 0 - 1 - 0 - - - - - - - 100 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 180 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0.5 - - - - - - - - - - 1.3 - - - - - 12 - - - - - 1.3 - - - - - 0 - - - - - - - - - 0.7 - - - 15 - - - 4 - - - 0.014 - - - false - - - - - - 500 - - - - - 500 - - - - - 2000 - - - - - - Atlas_F_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 17 - - - - 0.5 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0.3 - - - - - - - - - - 8000 - - - - - 8000 - - - - - 100 - - - - - 0 - - - - - - - - - 1 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 4 - 4 - 0 - - - - 7 - - - 0 - - - - - - - - - - - 0.113725491 - 0.490196079 - 0.6039216 - 1 - - - - - - - 0.6039216 - 0.113725491 - 0.113725491 - 1 - - - - - - - 0.196078435 - 0.196078435 - 0.196078435 - 0 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 30 - - - - - 5 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - 1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 22 - - - - - 22 - - - - - 0 - - - - - - - - - 10 - - - 15 - - - 1 - - - 0.005 - - - false - - - - - - 10 - - - - - - Atlas_E_01 - - - 1 - - - false - - - false - - - true - - - false - - - 1 - - - 0 - - - - 0 - 0 - 1 - - - - 0 - - - 0.01 - - - false - - - 0 - - - 0.1 - - - true - - - 1 - - - - 90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0.1 - - - - - 0.1 - - - - - 0 - - - - - - - - - - - - 0 - - - - - - 0 - - - - - - - - - - 10 - - - - - 5 - - - - - 0 - - - - - 0 - - - - - - - - - 1 - - - false - - - false - - - 0.5 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 16 - 16 - 0 - - - - 0 - - - 64 - - - - - - - - - - - 0.7647059 - 1 - 0.996078432 - 1 - - - - - - - 0.494117647 - 0.694117665 - 1 - 1 - - - - - - - 0.192156866 - 0.172549024 - 0.4862745 - 0.784313738 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 8000 - - - - - 8000 - - - - - 100 - - - - - 100 - - - - - - - - - 1 - - - - - - - 12 - 12 - 12 - - - - - - - - - - 9 - - - - - - - 1 - 1 - 1 - - - - - - - 100 - - - - - - - - - 0 - - - - - - - - - 180 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0.5 - - - - - - - - - - 0.3 - - - - - 2 - - - - - 0.3 - - - - - 0 - - - - - - - - - 0.7 - - - 15 - - - 0.02 - - - 0.014 - - - true - - - - - - 1000 - - - - - - Atlas_F_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0.5 - - - 0 - - - true - - - 0.1 - - - 0 - - - true - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0.3 - - - - - - - - - - 8000 - - - - - 8000 - - - - - 100 - - - - - 0 - - - - - - - - - 1 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - - - - - - - - - - - - - - - - 0 - 2.5 - 2.5 - 1 - - - - - - - - - - - - - 150 - - - - - - - - - 1 - - - - - - - - - 0 - - - - - 120 - - - - - 115 - - - - - 45 - - - - - 35 - - - - - 12 - - - - - 0 - - - - - - - - - false - - - 0 - - - 0.3 - - - 1 - - - - - 3500 - 1 - - - - - - 63801 - 1.5 - 2 - false - false - 0.1 - 1.5 - 0 - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 1 - 0.5 - 1 - - - - - - - 0.2 - 1 - 0.2 - 1 - - - - - - - 0 - 1 - 0 - 1 - - - - - - - 0 - 1 - 0 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1000 - - - - - 1000 - - - - - 1 - - - - - - - - - 0 - - - - - - - .11 - .11 - .11 - - - - - - - - - - 0.01 - - - - - - - 1 - 1 - 1 - - - - - - - -1 - - - - - - - - - 0.01 - - - - - - - - - 99 - - - - - - - - - 100 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 1.0 - - - - - 1.0 - - - - - 1.5 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 3 - - - - - 3 - - - - - 3 - - - - - 3 - - - - - - - - - 0.05 - - - 1 - - - 4 - - - 0.017 - - - true - - - - - - 60 - - - - - 30 - - - - - 20 - - - - - 15 - - - - - 15 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - -1 - 0 - 0 - - - - 5 - - - 0.02 - - - true - - - 0.5 - - - 0.01 - - - true - - - 0 - - - - 360 - 0 - 0 - - - - - 5 - 5 - 5 - - - - - - - - - - - 1 - - - - - 2 - - - - - 4 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - true - - - true - - - 1 - - - 0.05 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - - - - - - - - - - - - - - 0 - 2.5 - 2.5 - 1 - - - - - - - - - - - - - 150 - - - - - - - - - 1 - - - - - - - - - 0 - - - - - 120 - - - - - 115 - - - - - 45 - - - - - 35 - - - - - 12 - - - - - 0 - - - - - - - - - false - - - 0 - - - 0.3 - - - 1 - - - - - 2000 - 1 - - - - - - - + + + + + + + + 63799 + 5 + 0 + false + false + 5 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0 + 1 + 0 + 1 + + + + + + + 0 + 1 + 0.2 + 1 + + + + + + + 0 + 1 + 0.2 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 50 + + + + + 500 + + + + + 500 + + + + + 50 + + + + + + + + + 0.5 + + + + + + + 0 + 1.8 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.5 + + + + + 0.5 + + + + + 0.5 + + + + + 0.7 + + + + + + + + + 0.45 + + + 1 + + + 4 + + + 0.03 + + + true + + + + + + 0 + + + + + 0 + + + + + 0.1 + + + + + 0 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + -0.1 + + + + 2.9 + 0 + -0.2 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 2 + + + + + 2 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 50 + + + + + 50 + + + + + 50 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.15 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0 + 1 + 0 + 1 + + + + + + + 0 + 1 + 0 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 100 + + + + + 100 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + 1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + + 0.38 + + + + + 0.38 + + + + + 0.1 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.03 + + + false + + + + + + 2 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + -1.5 + 0.1 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0.5 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0 + 1 + 0 + 1 + + + + + + + 0 + 1 + 0 + 1 + + + + + + + 0 + 1 + 0 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1000 + + + + + 1000 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 1 + 0 + + + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + + 0.1 + + + + + 1 + + + + + 1 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.01 + + + true + + + + + + 0 + + + + + 0 + + + + + 2 + + + + + 2 + + + + + 0 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 1 + 0.2 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 3 + + + + + 3 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + + + + + +5 +0.25 +0.25 + 1 + + + + + + + + + + + + + 150 + + + + + + + + + 1 + + + + + + + + + 0 + + + + + 120 + + + + + 115 + + + + + 45 + + + + + 35 + + + + + 12 + + + + + 0 + + + + + + + + + true + + + 0 + + + 0.3 + + + 1 + + + + + 7000 + 1 + + + + + 63800 + 5 + 0 + false + false + 5 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 0 + 0.5 + 0.5 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 75 + + + + + 200 + + + + + 300 + + + + + 50 + + + + + + + + + 0.5 + + + + + + + 0 + 1.8 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.5 + + + + + 0.5 + + + + + 0.5 + + + + + 0.7 + + + + + + + + + 10 + + + 1 + + + 4 + + + 0.03 + + + false + + + + + + 10 + + + + + 10 + + + + + 10.1 + + + + + 10 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + -0.1 + + + + 2.9 + 0 + -0.2 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 2 + + + + + 2 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 50 + + + + + 50 + + + + + 50 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.15 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 100 + + + + + 100 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + 1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + + 0.38 + + + + + 0.38 + + + + + 0.1 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.03 + + + false + + + + + + 2 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + -1.5 + 0.1 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0.5 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 1 + 1 + 1 + + + + + + + 0.2 + 1 + 1 + 1 + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1000 + + + + + 1000 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0.5 + + + + + + + 1 + 1 + 1 + + + + + + + 0.5 + + + + + + + + + 0.05 + + + + + + + + + 20 + + + + + + + + + 20 + + + + + + + 0 + 0 + 2 + + + + + + + + + + + 0 + + + + + 0 + + + + + 1 + + + + + 0 + + + + + + + + + 100 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 0.015 + + + 1 + + + 3 + + + 0.01 + + + true + + + + + + 15 + + + + + 15 + + + + + 15 + + + + + 15 + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 1000 + + + 0.1 + + + true + + + 1 + + + 0.41 + + + true + + + 0 + + + + 110 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 3 + + + + + 5 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + true + + + 1 + + + 0 + + + 1 + + + 1 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + + + + + + 0 + 2.5 + 2.5 + 1 + + + + + + + + + + + + + 150 + + + + + + + + + 1 + + + + + + + + + 0 + + + + + 120 + + + + + 115 + + + + + 45 + + + + + 35 + + + + + 12 + + + + + 0 + + + + + + + + + false + + + 0 + + + 0.3 + + + 1 + + + + + 2000 + 1 + + + + + 63801 + 5 + 0 + false + false + 5 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 0 + 0.5 + 0.5 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 75 + + + + + 200 + + + + + 300 + + + + + 50 + + + + + + + + + 0.5 + + + + + + + 0 + 1.8 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.5 + + + + + 0.5 + + + + + 0.5 + + + + + 0.7 + + + + + + + + + 10 + + + 1 + + + 4 + + + 0.03 + + + false + + + + + + 10 + + + + + 10 + + + + + 10.1 + + + + + 10 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + -0.1 + + + + 2.9 + 0 + -0.2 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 2 + + + + + 2 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 50 + + + + + 50 + + + + + 50 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.15 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 0 + 1 + 1 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 100 + + + + + 100 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + 1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + + 0.38 + + + + + 0.38 + + + + + 0.1 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.03 + + + false + + + + + + 2 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + -1.5 + 0.1 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0.5 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 1.86 + 1.29 + 1.94 + 1 + + + + + + + 1.86 + 1.29 + 1.94 + 1 + + + + + + + 1.86 + 1.29 + 1.94 + 1 + + + + + + + 1.86 + 1.29 + 1.94 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1000 + + + + + 1000 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 3 + 3 + 3 + + + + + + + + + + 1 + + + + + + + 1 + 1 + 1 + + + + + + + 1 + + + + + + + + + 0.05 + + + + + + + + + 20 + + + + + + + + + 20 + + + + + + + 0 + 0 + 2 + + + + + + + + + + + 0 + + + + + 0 + + + + + 1 + + + + + 0 + + + + + + + + + 100 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 0.015 + + + 1 + + + 1.2 + + + 0.01 + + + true + + + + + + 15 + + + + + 30 + + + + + 30 + + + + + 30 + + + + + 30 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 1000 + + + 0.1 + + + true + + + 1 + + + 0.41 + + + true + + + 0 + + + + 110 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 3 + + + + + 5 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + true + + + 1 + + + 0 + + + 1 + + + 1 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 0.8117647 + 0.1117647 + 0.1117647 + 0.156862751 + + + + + + + 0.8117647 + 0.1117647 + 0.1117647 + 0.156862751 + + + + + + + 0.8117647 + 0.1117647 + 0.1117647 + 0.156862751 + + + + + + + 0.8117647 + 0.1117647 + 0.1117647 + 0.156862751 + + + + + + + + + + + + + + + + + 0 + + + + + 0.1 + + + + + 0.3 + + + + + 0.3 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + 0.5 + + + 0 + + + 4 + + + 1 + + + true + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + Atlas_E_01 + + + 0.1 + + + false + + + false + + + true + + + false + + + 2 + + + 0 + + + + 0 + 0 + -3 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0.1 + + + + + 0.1 + + + + + 0 + + + + + + + + + 1 + + + false + + + true + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0.9117647 + 0.4117647 + 0.4117647 + 0.156862751 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 0.3 + + + + + 0.3 + + + + + 0.3 + + + + + 0.3 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + + + + + 2 + + + 0 + + + 4 + + + 1 + + + true + + + + + + 5 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + Atlas_E_01 + + + 0.1 + + + false + + + false + + + true + + + false + + + 2 + + + 0 + + + + 0 + 0 + -3 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0.1 + + + + + 0.1 + + + + + 0 + + + + + + + + + 1 + + + false + + + true + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + -11 + -11 + -11 + 5 + + + + + + + + -11 + -11 + -11 + 5 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + -1 + + + + + + + + + + 15 + + + + + 15 + + + + + 15 + + + + + 15 + + + + + + + + + 2 + + + 0 + + + 4 + + + 1 + + + true + + + + + + 5 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + 11 + + + + + + Atlas_E_01 + + + 0.1 + + + false + + + false + + + true + + + false + + + 2 + + + 0 + + + + 0 + 0 + -3 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0.1 + + + + + 0.1 + + + + + 0 + + + + + + + + + 1 + + + false + + + true + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 0 + + + + + + + + + + + 0.11 + 0.11 + 0.11 + 0.1392156877 + + + + + + + 0.11 + 0.11 + 0.11 + 0.1392156877 + + + + + + + 0.11 + 0.11 + 0.11 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 11.5 + + + + + 2.5 + + + + + 0 + + + + + 0 + + + + + + + + + 0.5 + + + + + + + 11 + 11 + 11 + + + + + + + + + + 0 + + + + + + + 0 + 0 + 1 + + + + + + + 110 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 20 + + + + + + + + + + + 0 + + + + + 2 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + + + + + + + + 65 + + + + + 55 + + + + + 25 + + + + + 0 + + + + + + + + + 0.8 + + + 15 + + + 114 + + + 0.0005 + + + true + + + + + + 50 + + + + + + Atlas_E_01 + + + 0.151 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 10 + + + 0 + + + false + + + 0 + + + 0.1 + + + true + + + 1 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 1 + + + + + 1 + + + + + 1.3 + + + + + + + + + + + + 0 + + + + + + 1 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 1 + + + + 103 + + + 1 + + + + + + + + + + + 0.4763432 + 0.1800302 + 0.07277033 + 0.5019608 + + + + + + + 0.1554853 + 0.03592236 + 0.03592236 + 0.2195197 + + + + + + + 0.1554853 + 0.03592236 + 0.03592236 + 0.2195197 + + + + + + + 0.1554853 + 0.03592236 + 0.03592236 + 0.2195197 + + + + + + + + + + + + + + + + + 100 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.05 + + + 1 + + + 4 + + + 1 + + + false + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 64 + + + + + + + + + + + 0.7647059 + 1 + 0.996078432 + 1 + + + + + + + 0.494117647 + 0.694117665 + 1 + 1 + + + + + + + 0.192156866 + 0.172549024 + 0.4862745 + 0.784313738 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 8000 + + + + + 8000 + + + + + 100 + + + + + 100 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 1 + + + + + + + 0 + 1 + 0 + + + + + + + 100 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 180 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0.5 + + + + + + + + + + 1.3 + + + + + 12 + + + + + 1.3 + + + + + 0 + + + + + + + + + 0.7 + + + 15 + + + 4 + + + 0.014 + + + false + + + + + + 500 + + + + + 500 + + + + + 2000 + + + + + + Atlas_F_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 17 + + + + 0.5 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0.3 + + + + + + + + + + 8000 + + + + + 8000 + + + + + 100 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 0 + + + + + + + + + + + 0.113725491 + 0.490196079 + 0.6039216 + 1 + + + + + + + 0.6039216 + 0.113725491 + 0.113725491 + 1 + + + + + + + 0.196078435 + 0.196078435 + 0.196078435 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 30 + + + + + 5 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + 1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 22 + + + + + 22 + + + + + 0 + + + + + + + + + 10 + + + 15 + + + 1 + + + 0.005 + + + false + + + + + + 10 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + true + + + false + + + 1 + + + 0 + + + + 0 + 0 + 1 + + + + 0 + + + 0.01 + + + false + + + 0 + + + 0.1 + + + true + + + 1 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0.1 + + + + + 0.1 + + + + + 0 + + + + + + + + + + + + 0 + + + + + + 0 + + + + + + + + + + 10 + + + + + 5 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 64 + + + + + + + + + + + 0.7647059 + 1 + 0.996078432 + 1 + + + + + + + 0.494117647 + 0.694117665 + 1 + 1 + + + + + + + 0.192156866 + 0.172549024 + 0.4862745 + 0.784313738 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 8000 + + + + + 8000 + + + + + 100 + + + + + 100 + + + + + + + + + 1 + + + + + + + 12 + 12 + 12 + + + + + + + + + + 9 + + + + + + + 1 + 1 + 1 + + + + + + + 100 + + + + + + + + + 0 + + + + + + + + + 180 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0.5 + + + + + + + + + + 0.3 + + + + + 2 + + + + + 0.3 + + + + + 0 + + + + + + + + + 0.7 + + + 15 + + + 0.02 + + + 0.014 + + + true + + + + + + 1000 + + + + + + Atlas_F_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0.5 + + + 0 + + + true + + + 0.1 + + + 0 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0.3 + + + + + + + + + + 8000 + + + + + 8000 + + + + + 100 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + + + + + + 0 + 2.5 + 2.5 + 1 + + + + + + + + + + + + + 150 + + + + + + + + + 1 + + + + + + + + + 0 + + + + + 120 + + + + + 115 + + + + + 45 + + + + + 35 + + + + + 12 + + + + + 0 + + + + + + + + + false + + + 0 + + + 0.3 + + + 1 + + + + + 3500 + 1 + + + + + + 63801 + 1.5 + 2 + false + false + 0.1 + 1.5 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 1 + 0.5 + 1 + + + + + + + 0.2 + 1 + 0.2 + 1 + + + + + + + 0 + 1 + 0 + 1 + + + + + + + 0 + 1 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1000 + + + + + 1000 + + + + + 1 + + + + + + + + + 0 + + + + + + + .11 + .11 + .11 + + + + + + + + + + 0.01 + + + + + + + 1 + 1 + 1 + + + + + + + -1 + + + + + + + + + 0.01 + + + + + + + + + 99 + + + + + + + + + 100 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 1.0 + + + + + 1.0 + + + + + 1.5 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 3 + + + + + 3 + + + + + 3 + + + + + 3 + + + + + + + + + 0.05 + + + 1 + + + 4 + + + 0.017 + + + true + + + + + + 60 + + + + + 30 + + + + + 20 + + + + + 15 + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -1 + 0 + 0 + + + + 5 + + + 0.02 + + + true + + + 0.5 + + + 0.01 + + + true + + + 0 + + + + 360 + 0 + 0 + + + + + 5 + 5 + 5 + + + + + + + + + + + 1 + + + + + 2 + + + + + 4 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + true + + + true + + + 1 + + + 0.05 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + + + + 0 + 2.5 + 2.5 + 1 + + + + + + + + + + + + + 150 + + + + + + + + + 1 + + + + + + + + + 0 + + + + + 120 + + + + + 115 + + + + + 45 + + + + + 35 + + + + + 12 + + + + + 0 + + + + + + + + + false + + + 0 + + + 0.3 + + + 1 + + + + + 2000 + 1 + + + + + + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_AnomalyHealParticle.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_AnomalyHealParticle.sbc index 88226a84a..b0d2666a0 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_AnomalyHealParticle.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_AnomalyHealParticle.sbc @@ -1,449 +1,449 @@ - - - - - - -1218519223 - 90 - 0 - false - false - 4 - 4 - 0 - - - GPU - - - - 16 - 16 - 0 - - - - 137 - - - 1 - - - - - - - - - - - 1 - 100 - 1 - 1 - - - - - - - 1 - 100 - 1 - 1 - - - - - - - 1 - 100 - 1 - 1 - - - - - - - 1 - 100 - 1 - 1 - - - - - - - - - - - - - - - - - 8 - - - - - 8 - - - - - 8 - - - - - 8 - - - - - - - - - 0.5 - - - - - - - 250 - 250 - 250 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.25 - - - 1 - - - 4 - - - 1 - - - true - - - - - - 2500 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - 20000 - 1 - - + + + + + + -1218519223 + 90 + 0 + false + false + 4 + 4 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 137 + + + 1 + + + + + + + + + + + 1 + 100 + 1 + 1 + + + + + + + 1 + 100 + 1 + 1 + + + + + + + 1 + 100 + 1 + 1 + + + + + + + 1 + 100 + 1 + 1 + + + + + + + + + + + + + + + + + 8 + + + + + 8 + + + + + 8 + + + + + 8 + + + + + + + + + 0.5 + + + + + + + 250 + 250 + 250 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.25 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 2500 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 20000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcCollisionParticles.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcCollisionParticles.sbc index 723ae53a9..659f25b1b 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcCollisionParticles.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcCollisionParticles.sbc @@ -1,449 +1,449 @@ - - - - - - 310745088 - 90 - 0 - false - true - 0.1 - 0 - 0 - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 4 - - - - - 4 - - - - - 4 - - - - - 4 - - - - - - - - - 0.4 - - - 1 - - - 4 - - - 0.01 - - - true - - - - - - 16 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 100 - - - - - 100 - - - - - 100 - - - - - 100 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - 3000 - 1 - - + + + + + + 310745088 + 90 + 0 + false + true + 0.1 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 0.4 + + + 1 + + + 4 + + + 0.01 + + + true + + + + + + 16 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 100 + + + + + 100 + + + + + 100 + + + + + 100 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcLargeParticles.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcLargeParticles.sbc index 00840c82e..254d9b2fe 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcLargeParticles.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcLargeParticles.sbc @@ -1,6129 +1,6129 @@ - - - - - - 1742647582 - 90 - 0 - false - true - 0.1 - 0 - 0 - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -175 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 16 - - - - - 16 - - - - - 16 - - - - - 16 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 10 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.001 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -525 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - 90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.001 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -175 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - 90 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 16.5 - - - - - 16.5 - - - - - 16.5 - - - - - 16.5 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -525 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -875 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 10 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.001 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -875 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - 90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 5 - - - - - 5 - - - - - 5 - - - - - 5 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 2 - 0 - -10 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - 8 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 3 - - - - - 3 - - - - - 3 - - - - - 3 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 3 - - - - - 3 - - - - - 3 - - - - - 3 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - -2 - 0 - -10 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - -8 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 5 - - - - - 5 - - - - - 5 - - - - - 5 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 3 - - - - - 3 - - - - - 3 - - - - - 3 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 2 - 0 - -10 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -98 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 5 - - - - - 5 - - - - - 5 - - - - - 5 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 5 - - - - - 5 - - - - - 5 - - - - - 5 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - -2 - 0 - -10 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -82 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 3 - - - - - 3 - - - - - 3 - - - - - 3 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - 0.5 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 10 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.001 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -1225 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - 90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -1225 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - 3000 - 1 - - + + + + + + 1742647582 + 90 + 0 + false + true + 0.1 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -175 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 16 + + + + + 16 + + + + + 16 + + + + + 16 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 10 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -525 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -175 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 16.5 + + + + + 16.5 + + + + + 16.5 + + + + + 16.5 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -525 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -875 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 10 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -875 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 2 + 0 + -10 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + 8 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 3 + + + + + 3 + + + + + 3 + + + + + 3 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 3 + + + + + 3 + + + + + 3 + + + + + 3 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -2 + 0 + -10 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + -8 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 3 + + + + + 3 + + + + + 3 + + + + + 3 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 2 + 0 + -10 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -98 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -2 + 0 + -10 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -82 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 3 + + + + + 3 + + + + + 3 + + + + + 3 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + 0.5 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 10 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -1225 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -1225 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcParticles.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcParticles.sbc index 90caccfac..1f086efc4 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcParticles.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ArcParticles.sbc @@ -1,3502 +1,3502 @@ - - - - - - 624593792 - 90 - 0 - false - true - 0.1 - 0 - 0 - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -90 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 9 - - - - - 9 - - - - - 9 - - - - - 9 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 10 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.001 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -360 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - 90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 9 - - - - - 9 - - - - - 9 - - - - - 9 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 12 - - - - - 12 - - - - - 12 - - - - - 12 - - - - - - - - - 0.1 - - - 1 - - - 4 - - - 0.001 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -90 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - 90 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 9 - - - - - 9 - - - - - 9 - - - - - 9 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -360 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 9 - - - - - 9 - - - - - 9 - - - - - 9 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.5 - 0.5 - 1 - 1 - - - - - - - 0.5 - 0.5 - 1 - 1 - - - - - - - 0.5 - 0.5 - 1 - 1 - - - - - - - 0.5 - 0.5 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 10 - 0 - 10 - - - - - - - - - - 1 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - - - 0 - - - - - 70 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.5 - - - true - - - - - - 200 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 7.5 - - - - 0 - - - 0.065 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - -90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 50 - - - - - 50 - - - - - 50 - - - - - 50 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.005 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -640 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - -90 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 5 - - - - - 5 - - - - - 5 - - - - - 5 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 32 - 16 - 0 - - - - 448 - - - 32 - - - - - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - 0.1 - 0.1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 25 - 25 - 10 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 25 - - - - - 25 - - - - - 25 - - - - - 25 - - - - - - - - - 0.2 - - - 1 - - - 4 - - - 0.001 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -640 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - 90 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 20 - - - - - - - - - - - - 5 - - - - - 5 - - - - - 5 - - - - - 5 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - 3000 - 1 - - + + + + + + 624593792 + 90 + 0 + false + true + 0.1 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -90 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 10 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -360 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 12 + + + + + 12 + + + + + 12 + + + + + 12 + + + + + + + + + 0.1 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -90 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -360 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 9 + + + + + 9 + + + + + 9 + + + + + 9 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.5 + 0.5 + 1 + 1 + + + + + + + 0.5 + 0.5 + 1 + 1 + + + + + + + 0.5 + 0.5 + 1 + 1 + + + + + + + 0.5 + 0.5 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 10 + 0 + 10 + + + + + + + + + + 1 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + + + 0 + + + + + 70 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.5 + + + true + + + + + + 200 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 7.5 + + + + 0 + + + 0.065 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + -90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 50 + + + + + 50 + + + + + 50 + + + + + 50 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.005 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -640 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + -90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + 0.1 + 0.1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 25 + 25 + 10 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 25 + + + + + 25 + + + + + 25 + + + + + 25 + + + + + + + + + 0.2 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -640 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 20 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + 1000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_FieldParticles.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_FieldParticles.sbc index 0f94f03e4..6e49f870d 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_FieldParticles.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_FieldParticles.sbc @@ -1,455 +1,455 @@ - - - - - - 114512441 - 90 - 0 - false - true - 0 - 0 - 0 - - - GPU - - - - 4 - 4 - 0 - - - - 6 - - - 1 - - - - - - - - - - - 1 - 1 - 20 - 1 - - - - - - - 1 - 1 - 20 - 1 - - - - - - - 1 - 1 - 20 - 1 - - - - - - - 1 - 1 - 20 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 10 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 10000 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0 - - - - - - - - - - 10 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - 0.0334 - - - 1 - - - 2.7 - - - 0 - - - true - - - - - - 30 - - - - - - Atlas_E_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 1 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 10 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - 3000 - 1 - - + + + + + + 114512441 + 90 + 0 + false + true + 0 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 1 + 1 + 20 + 1 + + + + + + + 1 + 1 + 20 + 1 + + + + + + + 1 + 1 + 20 + 1 + + + + + + + 1 + 1 + 20 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 10000 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 0.0334 + + + 1 + + + 2.7 + + + 0 + + + true + + + + + + 30 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_FlamerParticles.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_FlamerParticles.sbc index 307746de0..b0599a15b 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_FlamerParticles.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_FlamerParticles.sbc @@ -1,887 +1,887 @@ - - - - - - 2109234457 - 90 - 0 - false - true - 0 - 0 - 0 - - - GPU - - - - 16 - 16 - 0 - - - - 1 - - - 31 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.05 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 250 - - - - - - - - - 0 - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 2 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 10 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - 4 - - - 1 - - - 4 - - - 0.15 - - - true - - - - - - 30 - - - - - - Atlas_D_01 - - - 1 - - - true - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -5 - - - - 0 - - - 0 - - - true - - - 0 - - - 0.2 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 10 - - - - - - - - - - 100 - - - - - 100 - - - - - 100 - - - - - 100 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0.5 - - - 0.05 - - - 3 - - - 0 - - - true - - - 100 - - - - - GPU - - - - 16 - 16 - 0 - - - - 1 - - - 31 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.05 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 250 - - - - - - - - - 0 - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 2 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 10 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - 4 - - - 1 - - - 1 - - - 0.15 - - - true - - - - - - 30 - - - - - - Atlas_D_01 - - - 1 - - - true - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0.2 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 10 - - - - - - - - - - 100 - - - - - 100 - - - - - 100 - - - - - 100 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0.5 - - - 0.05 - - - 3 - - - 0 - - - true - - - 25 - - - - - - 10000 - 1 - - + + + + + + 2109234457 + 90 + 0 + false + true + 0 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 1 + + + 31 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.05 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 250 + + + + + + + + + 0 + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 4 + + + 1 + + + 4 + + + 0.15 + + + true + + + + + + 30 + + + + + + Atlas_D_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -5 + + + + 0 + + + 0 + + + true + + + 0 + + + 0.2 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 10 + + + + + + + + + + 100 + + + + + 100 + + + + + 100 + + + + + 100 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 0.05 + + + 3 + + + 0 + + + true + + + 100 + + + + + GPU + + + + 16 + 16 + 0 + + + + 1 + + + 31 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.05 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 250 + + + + + + + + + 0 + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 4 + + + 1 + + + 1 + + + 0.15 + + + true + + + + + + 30 + + + + + + Atlas_D_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0.2 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 10 + + + + + + + + + + 100 + + + + + 100 + + + + + 100 + + + + + 100 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 0.05 + + + 3 + + + 0 + + + true + + + 25 + + + + + + 10000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ImpulseTorchParticles.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ImpulseTorchParticles.sbc index 307746de0..b0599a15b 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ImpulseTorchParticles.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/AMP_ImpulseTorchParticles.sbc @@ -1,887 +1,887 @@ - - - - - - 2109234457 - 90 - 0 - false - true - 0 - 0 - 0 - - - GPU - - - - 16 - 16 - 0 - - - - 1 - - - 31 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.05 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 250 - - - - - - - - - 0 - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 2 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 10 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - 4 - - - 1 - - - 4 - - - 0.15 - - - true - - - - - - 30 - - - - - - Atlas_D_01 - - - 1 - - - true - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -5 - - - - 0 - - - 0 - - - true - - - 0 - - - 0.2 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 10 - - - - - - - - - - 100 - - - - - 100 - - - - - 100 - - - - - 100 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0.5 - - - 0.05 - - - 3 - - - 0 - - - true - - - 100 - - - - - GPU - - - - 16 - 16 - 0 - - - - 1 - - - 31 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.05 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 250 - - - - - - - - - 0 - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 2 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 10 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - 4 - - - 1 - - - 1 - - - 0.15 - - - true - - - - - - 30 - - - - - - Atlas_D_01 - - - 1 - - - true - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0.2 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 10 - - - - - - - - - - 100 - - - - - 100 - - - - - 100 - - - - - 100 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0.5 - - - 0.05 - - - 3 - - - 0 - - - true - - - 25 - - - - - - 10000 - 1 - - + + + + + + 2109234457 + 90 + 0 + false + true + 0 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 1 + + + 31 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.05 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 250 + + + + + + + + + 0 + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 4 + + + 1 + + + 4 + + + 0.15 + + + true + + + + + + 30 + + + + + + Atlas_D_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -5 + + + + 0 + + + 0 + + + true + + + 0 + + + 0.2 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 10 + + + + + + + + + + 100 + + + + + 100 + + + + + 100 + + + + + 100 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 0.05 + + + 3 + + + 0 + + + true + + + 100 + + + + + GPU + + + + 16 + 16 + 0 + + + + 1 + + + 31 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.05 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 250 + + + + + + + + + 0 + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 4 + + + 1 + + + 1 + + + 0.15 + + + true + + + + + + 30 + + + + + + Atlas_D_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0.2 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 10 + + + + + + + + + + 100 + + + + + 100 + + + + + 100 + + + + + 100 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 0.05 + + + 3 + + + 0 + + + true + + + 25 + + + + + + 10000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ANO_AnomalyHeal2.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ANO_AnomalyHeal2.sbc index dce5461e7..e1d615f96 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ANO_AnomalyHeal2.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ANO_AnomalyHeal2.sbc @@ -1,476 +1,476 @@ - - - - - - 386088596 - 0.1 - 0 - false - false - 1 - 0 - 0 - - - GPU - - - - 18 - 20 - 0 - - - - 0 - - - 1 - - - - - - - - - - - 1 - 100 - 1 - 1 - - - - - - - 1 - 100 - 1 - 1 - - - - - - - 1 - 100 - 1 - 1 - - - - - - - 1 - 100 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 75 - 75 - 75 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 10 - - - - - - - - - 0 - - - - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 1 - - - 1 - - - 4 - - - 1 - - - true - - - - - - 0 - - - - - - Atlas_AnoText - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - -1 - 0 - - - - 0 - - - 0.01 - - - false - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 100 - - - - - - 0 - - - - - - - - - - 10 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - - - - -4 - - - - - -4 - - - - - -4 - - - - - -4 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - 10000 - 1 - - + + + + + + 386088596 + 0.1 + 0 + false + false + 1 + 0 + 0 + + + GPU + + + + 18 + 20 + 0 + + + + 0 + + + 1 + + + + + + + + + + + 1 + 100 + 1 + 1 + + + + + + + 1 + 100 + 1 + 1 + + + + + + + 1 + 100 + 1 + 1 + + + + + + + 1 + 100 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 75 + 75 + 75 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 10 + + + + + + + + + 0 + + + + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 0 + + + + + + Atlas_AnoText + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + -1 + 0 + + + + 0 + + + 0.01 + + + false + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 100 + + + + + + 0 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + + + + -4 + + + + + -4 + + + + + -4 + + + + + -4 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 10000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWFLARE.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWFLARE.sbc new file mode 100644 index 000000000..810e08f46 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWFLARE.sbc @@ -0,0 +1,455 @@ + + + + + + 117011 + 5 + 0 + false + true + 5 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 8 + + + + + + + + + + + 30 + 30 + 30 + 1 + + + + + + + 12.9828262 + 5.940601 + 2.43134022 + 1 + + + + + + + 0.9913929 + 0.4590799 + 0.0563741 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.4 + + + + + 1.6 + + + + + 1 + + + + + 0 + + + + + + + + + 0.5 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + 100 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0.5 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + 0.5 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 5 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 5000 + -1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWFLAREDEATH.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWFLAREDEATH.sbc new file mode 100644 index 000000000..2f068ccba --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWFLAREDEATH.sbc @@ -0,0 +1,449 @@ + + + + + + 117012 + 4 + 0 + false + false + 4 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 128 + + + 96 + + + + + + + + + + + 1 + 0.5764706 + 0.215686277 + 0.156862751 + + + + + + + 0.215686277 + 0.215686277 + 0.215686277 + 0.5882353 + + + + + + + 0.008526365 + 0.008526365 + 0.008526365 + 0.07843138 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 0.5 + + + + + 0.02 + + + + + 0.02 + + + + + 0.02 + + + + + + + + + 0.5 + + + + + + + 0.012 + 0.012 + 0.012 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 2 + + + + + + + + + 3 + + + + + + + + + 0 + + + + + + + + + 50 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 4 + + + + + 9 + + + + + 25 + + + + + 6 + + + + + + + + + 1 + + + 2 + + + 4 + + + 0.02 + + + true + + + + + + Atlas_E_01 + + + 0.1 + + + false + + + false + + + true + + + false + + + 1 + + + -0.04 + + + + 0 + 0 + -4 + + + + 0 + + + 0 + + + true + + + 0.95 + + + 0.5 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 2 + + + + + + 0 + + + + + + + + + + 0.5 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 25 + + + 0 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + + 1500 + 250 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWNUKE.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWNUKE.sbc new file mode 100644 index 000000000..30396951c --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWNUKE.sbc @@ -0,0 +1,2524 @@ + + + + + + 306776690 + 10 + 0 + false + false + 7 + 10 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 0.9743002 + 0.6667436 + 0.4174014 + 1 + + + + + + + 0.9743002 + 0.6667436 + 0.4174014 + 1 + + + + + + + 0.9743002 + 0.6667436 + 0.4174014 + 0.5 + + + + + + + 0.9743002 + 0.2667436 + 0.1174014 + 0.2 + + + + + + + 0.638598263 + 0.174835235 + 0.0769499242 + 0.01 + + + + + + + 0 + 0 + 0 + -10 + + + + + + + + + + + + + + + + + 50 + + + + + 300 + + + + + 300 + + + + + 0 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + 1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 150 + + + + + 90 + + + + + 40 + + + + + 50 + + + + + 40 + + + + + 10 + + + + + + + + + 7 + + + 1 + + + 0 + + + 1 + + + true + + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0.86 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 10000 + + + + + 1 + + + + + 0.1 + + + + + -100 + + + + + + + + + 1 + + + false + + + false + + + 10 + + + 0 + + + 1 + + + 3 + + + 0 + + + false + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0.9743002 + 0.6667436 + 0.4174014 + 0.15 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 50 + + + + + 0.5 + + + + + 0.5 + + + + + + + + + 0.5 + + + + + + + 1 + 1 + 1 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 3 + + + + + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0.15 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 200 + + + + + + + + + 1.5 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0.86 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0.5 + + + + + 0.5 + + + + + 0.5 + + + + + 0.5 + + + + + + + + + + + + 3 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 20 + + + + + + + + + + + 0.1 + 0.5 + 0.9 + 1 + + + + + + + 0 + 0.4 + 1 + 1 + + + + + + + 0.2 + 0.3992933 + 0.3992933 + 1 + + + + + + + 0.90472 + 0.180623591 + 0.180623591 + 0.2 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1000 + + + + + 600 + + + + + 3 + + + + + 1 + + + + + + + + + 0.05 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 20 + + + + + + + + + 30 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + + 0.2 + + + + + 0.1 + + + + + 0.01 + + + + + 0 + + + + + + + + + 0.2 + + + 1 + + + 0.5 + + + 0.05 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + -5 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0.86 + + + 0.2 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 40 + + + + + 30 + + + + + 20 + + + + + 10 + + + + + + 0 + + + + + + + + + + 10000 + + + + + 10000 + + + + + 10000 + + + + + 10000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 110 + + + 1 + + + 0 + + + 0 + + + false + + + 100 + + + + + GPU + + + + 16 + 16 + 0 + + + + 4 + + + 1 + + + + + + + + + + + 1 + 0.9743002 + 0.8355278 + 1 + + + + + + + 1 + 0.8355278 + 0.666117 + 1 + + + + + + + 1 + 0.7226725 + 0.7226725 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 50 + + + + + 50 + + + + + 2 + + + + + 1 + + + + + + + + + 0.3 + + + + + + + 15 + 15 + 15 + + + + + + + + + + 12 + + + + + + + 0 + 0 + -1 + + + + + + + 75 + + + + + + + + + 0.5 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.5 + + + + + 0.25 + + + + + 0.1 + + + + + 0 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 5 + + + + 0 + 0 + 0 + + + + 0.25 + + + 0 + + + true + + + 0.86 + + + 1 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 20 + + + + + 20 + + + + + 10 + + + + + 10 + + + + + + 0 + + + + + + + + + + 10000 + + + + + 1000 + + + + + 500.26825 + + + + + 1 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 1 + + + 10 + + + 1 + + + 0 + + + 0.001 + + + false + + + 20 + + + + + GPU + + + + 16 + 16 + 0 + + + + 4 + + + 1 + + + + + + + + + + + 0 + 0.9743002 + 0.8355278 + 1 + + + + + + + 1 + 0.8355278 + 0.666117 + 1 + + + + + + + 1 + 0.7226725 + 0.7226725 + 1 + + + + + + + 0.8 + 0.2 + 0.2 + 0.523869 + + + + + + + 0.389392346 + 0 + 0 + 0.401010334 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 50 + + + + + 50 + + + + + 2 + + + + + 0 + + + + + + + + + 0.2 + + + + + + + 5 + 5 + 5 + + + + + + + + + + 4 + + + + + + + 0 + 0 + -1 + + + + + + + 15 + + + + + + + + + 1 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0 + + + + + + + + + 6 + + + 1 + + + 4 + + + 0 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 2 + + + + 0 + 0 + 0 + + + + 0.25 + + + 0.127 + + + true + + + 0.86 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 12 + + + + + 10 + + + + + 8 + + + + + 6 + + + + + + 0 + + + + + + + + + + 1E+09 + + + + + 100000 + + + + + 10000 + + + + + 1000 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 1 + + + 10 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 0.9743002 + 0.6667436 + 0.4174014 + 1 + + + + + + + 0.9 + 0.6 + 0.4 + 1 + + + + + + + 0.9743002 + 0.2667436 + 0.1174014 + 1 + + + + + + + 0.9743 + 0.9743 + 0.117401 + 1 + + + + + + + + + + + + + 1600 + + + + + 800 + + + + + 600 + + + + + 400 + + + + + 100 + + + + + 0 + + + + + + + + + + + + 24000 + + + + + 5000 + + + + + 200 + + + + + 10 + + + + + 1 + + + + + 8 + + + + + 2 + + + + + 5 + + + + + 25 + + + + + 10 + + + + + 5 + + + + + 1 + + + + + 0 + + + + + + + + + true + + + 0 + + + 0.1 + + + 0 + + + + + 15000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWTRAIL.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWTRAIL.sbc new file mode 100644 index 000000000..da42d6be3 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ARROWTRAIL.sbc @@ -0,0 +1,468 @@ + + + + + + 117010 + 5 + 0 + false + true + 0 + 20 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 72 + + + + + + + + + + + 5 + 5 + 5 + 1 + + + + + + + 0.2390225 + 0.05818718 + 0.02095113 + 1 + + + + + + + 0.05 + 0.05 + 0.05 + 1 + + + + + + + 0.005 + 0.005 + 0.005 + 1 + + + + + + + 0.00251068245 + 0.00251068245 + 0.00251068245 + 0.502136469 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 10 + + + + + 2 + + + + + 1.5 + + + + + 1 + + + + + + + + + 0.95 + + + + + + + 0.25 + 0.25 + 0.5 + + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 1 + + + + + + + 10 + + + + + + + + + 10 + + + + + + + + + + + + 360 + + + + + + + 0 + 0 + -50 + + + + + + + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 1 + + + + + 3 + + + + + 3 + + + + + 1 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + 0.75 + + + 1 + + + 1 + + + 0.75 + + + true + + + + + + 200 + + + + + + Atlas_D_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 20 + + + + 5 + + + 0 + + + true + + + 0 + + + 0.25 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 1 + 1 + 1 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 100 + + + + + 1 + + + + + 0 + + + + + 1 + + + + + 1 + + + + + + + + + 0.1 + + + false + + + false + + + 1 + + + 3 + + + 1 + + + 0 + + + 0.0001 + + + false + + + 0 + + + + + + 11000 + -1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine.sbc new file mode 100644 index 000000000..9af9465ca --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine.sbc @@ -0,0 +1,5157 @@ + + + + + + -889240298 + 90 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 14.5 + 0 + 145 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 14.5 + 0 + 146 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -14.5 + 0 + 145 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -14.5 + 0 + 146 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + 15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + 15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + 15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + 15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + -15.5 + 142 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine_Damage_01.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine_Damage_01.sbc new file mode 100644 index 000000000..2e3756ec0 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine_Damage_01.sbc @@ -0,0 +1,6047 @@ + + + + + + 1951439660 + 90 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 14.5 + 0 + 145 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 14.5 + 0 + 146 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -14.5 + 0 + 145 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -14.5 + 0 + 146 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + 15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + 15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + + + + + + + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 6 + + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 1 + + + + + + + + + + 7 + + + + + 12 + + + + + 6 + + + + + 3 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + 9.5 + 15.5 + 143 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + -15.5 + 142 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 73 + + + + + + + + + + + 0 + 0 + 0 + 0.5 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 1 + 1 + 1 + 0.5 + + + + + + + 1 + 1 + 1 + 0.25 + + + + + + + 0 + 0 + 0 + 0.15 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 5 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 3 + + + + + + + + + + 16 + + + + + 20 + + + + + 18 + + + + + 25 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 8 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + 15.5 + 143 + + + + 5 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 73 + + + + + + + + + + + 0 + 0 + 0 + 0.5 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 1 + 1 + 1 + 0.5 + + + + + + + 1 + 1 + 1 + 0.25 + + + + + + + 0 + 0 + 0 + 0.15 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 90 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 5 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 3 + + + + + + + + + + 16 + + + + + 20 + + + + + 18 + + + + + 25 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 8 + + + + + + Atlas_D_01 + + + 3 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -20 + 15 + -56 + + + + 5 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + + + + + + + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 90 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 6 + + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 1 + + + + + + + + + + 7 + + + + + 12 + + + + + 6 + + + + + 3 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + -20 + 10 + -56 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine_Damage_02.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine_Damage_02.sbc new file mode 100644 index 000000000..82dbefb4a --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Dreadnaught_Engine_Damage_02.sbc @@ -0,0 +1,7813 @@ + + + + + + -1940243109 + 90 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 14.5 + 0 + 145 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 14.5 + 0 + 146 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + 15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + 15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + + + + + + + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 6 + + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 1 + + + + + + + + + + 7 + + + + + 12 + + + + + 6 + + + + + 3 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + 9.5 + 15.5 + 143 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + -15.5 + 142 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + 6 + 13 + 15 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 7 + + + + + 14 + + + + + 9 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + 250 + 250 + 250 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 6 + + + + + 6 + + + + + 6 + + + + + 6 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 25 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -9.5 + -15.5 + 143 + + + + 0 + + + 0.1 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 73 + + + + + + + + + + + 0 + 0 + 0 + 0.5 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 1 + 1 + 1 + 0.5 + + + + + + + 1 + 1 + 1 + 0.25 + + + + + + + 0 + 0 + 0 + 0.15 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 5 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 3 + + + + + + + + + + 16 + + + + + 20 + + + + + 18 + + + + + 25 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 8 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 9.5 + 15.5 + 143 + + + + 5 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 73 + + + + + + + + + + + 0 + 0 + 0 + 0.5 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 1 + 1 + 1 + 0.5 + + + + + + + 1 + 1 + 1 + 0.25 + + + + + + + 0 + 0 + 0 + 0.15 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 90 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 5 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 3 + + + + + + + + + + 16 + + + + + 20 + + + + + 18 + + + + + 25 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 8 + + + + + + Atlas_D_01 + + + 3 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -20 + 15 + -56 + + + + 5 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + + + + + + + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 90 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 6 + + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 1 + + + + + + + + + + 7 + + + + + 12 + + + + + 6 + + + + + 3 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + -20 + 10 + -56 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 73 + + + + + + + + + + + 0 + 0 + 0 + 0.5 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 1 + 1 + 1 + 0.5 + + + + + + + 1 + 1 + 1 + 0.25 + + + + + + + 0 + 0 + 0 + 0.15 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + -90 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 5 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 3 + + + + + + + + + + 16 + + + + + 20 + + + + + 18 + + + + + 25 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 8 + + + + + + Atlas_D_01 + + + 3 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 20 + 7 + 6 + + + + 5 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + + + + + + + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + -90 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 6 + + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 1 + + + + + + + + + + 7 + + + + + 12 + + + + + 6 + + + + + 3 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + 20 + 7 + 6 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + + + + + + + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 6 + + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 1 + + + + + + + + + + 7 + + + + + 12 + + + + + 6 + + + + + 3 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + -14.5 + 0 + 145 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 73 + + + + + + + + + + + 0 + 0 + 0 + 0.5 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 1 + 1 + 1 + 0.5 + + + + + + + 1 + 1 + 1 + 0.25 + + + + + + + 0 + 0 + 0 + 0.15 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 5 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 3 + + + + + + + + + + 16 + + + + + 20 + + + + + 18 + + + + + 25 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 8 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -14.5 + 0 + 145 + + + + 5 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 73 + + + + + + + + + + + 0 + 0 + 0 + 0.5 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 1 + 1 + 1 + 0.5 + + + + + + + 1 + 1 + 1 + 0.25 + + + + + + + 0 + 0 + 0 + 0.15 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 90 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 5 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 3 + + + + + + + + + + 16 + + + + + 20 + + + + + 18 + + + + + 25 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 8 + + + + + + Atlas_D_01 + + + 3 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + -15 + -12 + 0 + + + + 5 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + 15 + 8 + 2 + 1 + + + + + + + + + + + + + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + 0.75 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 90 + 0 + -1 + + + + + + + -10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 6 + + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 1 + + + + + + + + + + 7 + + + + + 12 + + + + + 6 + + + + + 3 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.05 + + + true + + + + + + 15 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + -15 + -12 + 0 + + + + 0 + + + 0 + + + true + + + 0.8 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 0.5 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/EXPLODETHESUN1.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/EXPLODETHESUN1.sbc new file mode 100644 index 000000000..a4a623b9e --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/EXPLODETHESUN1.sbc @@ -0,0 +1,455 @@ + + + + + + 305503567 + 90 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 10 + 2 + 1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 20 + + + + + 20 + + + + + 20 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 20000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Green_Turbo_Light.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Green_Turbo_Light.sbc new file mode 100644 index 000000000..785d96d10 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Green_Turbo_Light.sbc @@ -0,0 +1,90 @@ + + + + + + 333890035 + 90 + 0 + false + false + 0 + 0 + 0 + + + + + + + + + + + + + + + + 15 + 30 + 0 + 1 + + + + + + + + + + + + + 15 + + + + + + + + + 1.25 + + + + + + + + + 10 + + + + + + + + + true + + + 0 + + + 1 + + + 0.05 + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/INV_NapalmParticle.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/INV_NapalmParticle.sbc index 798899110..9437ecf44 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/INV_NapalmParticle.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/INV_NapalmParticle.sbc @@ -1,1465 +1,1465 @@ - - - - - - 1872113937 - 90 - 0 - false - false - 0 - 10 - 0 - - - GPU - - - - 16 - 16 - 0 - - - - 0 - - - 32 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 5 - - - - - 5 - - - - - 5 - - - - - 5 - - - - - - - - - - - - 50 - - - - - 50 - - - - - 50 - - - - - 50 - - - - - - - - - 1 - - - 1 - - - 4 - - - 0.03125 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 10 - - - - - 10 - - - - - 10 - - - - - 10 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 16 - 16 - 0 - - - - 0 - - - 32 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 50 - 50 - 50 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 15 - - - - - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 360 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 17 - - - - - 17 - - - - - 17 - - - - - 17 - - - - - - - - - 1 - - - 1 - - - 0.2 - - - 0.03125 - - - true - - - - - - 0 - - - - - 1000 - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 0 - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - -1 - - - - - -1 - - - - - -1 - - - - - -1 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - GPU - - - - 4 - 4 - 0 - - - - 6 - - - 1 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - 0 - 0 - 0 - 1 - - - - - - - 0 - 0 - 0 - 1 - - - - - - - 0 - 0 - 0 - 1 - - - - - - - 0 - 0 - 0 - 1 - - - - - - - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - 250 - - - - - 250 - - - - - 250 - - - - - 250 - - - - - - - - - 1 - - - 1 - - - 4 - - - 1 - - - true - - - - - - Atlas_E_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - true - - - 0 - - - - - - 3000 - 1 - - + + + + + + 1872113937 + 90 + 0 + false + false + 0 + 10 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + + + + 50 + + + + + 50 + + + + + 50 + + + + + 50 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.03125 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 32 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 50 + 50 + 50 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 15 + + + + + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 17 + + + + + 17 + + + + + 17 + + + + + 17 + + + + + + + + + 1 + + + 1 + + + 0.2 + + + 0.03125 + + + true + + + + + + 0 + + + + + 1000 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + -1 + + + + + -1 + + + + + -1 + + + + + -1 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + 0 + 0 + 0 + 1 + + + + + + + 0 + 0 + 0 + 1 + + + + + + + 0 + 0 + 0 + 1 + + + + + + + 0 + 0 + 0 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + 250 + + + + + 250 + + + + + 250 + + + + + 250 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Ion_Disabled.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Ion_Disabled.sbc new file mode 100644 index 000000000..661aca43b --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Ion_Disabled.sbc @@ -0,0 +1,1155 @@ + + + + + + 690491419 + 1 + 0 + false + true + 4 + 3 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 1 + 2 + 2 + 1 + + + + + + + 1 + 2 + 2 + 1 + + + + + + + 1 + 2 + 2 + 1 + + + + + + + 1 + 2 + 2 + 1 + + + + + + + + + + + + + + + + + 50 + + + + + 50 + + + + + 50 + + + + + 50 + + + + + + + + + 0.5 + + + + + + + 4 + 4 + 4 + + + + + + + + + + 0.5 + + + + + + + 0 + 1 + 0 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 2 + + + + + 1.5 + + + + + 1.5 + + + + + 3 + + + + + + + + + 0.2 + + + 10 + + + 4 + + + 0.01 + + + true + + + + + + 16 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + -0.1 + + + + 2 + -1.5 + 0.2 + + + + 0 + + + 0 + + + true + + + 1 + + + 0.1 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + -0.7 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0.3185261 + 0.3495145 + 0.3495145 + 0.3921569 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1000 + + + + + 1000 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 4 + 4 + 4 + + + + + + + + + + 0.5 + + + + + + + 0 + 1 + 0 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 2 + + + + + 1.5 + + + + + 1.5 + + + + + 3 + + + + + + + + + 0.1 + + + 10 + + + 4 + + + 0.01 + + + true + + + + + + 8 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + -0.1 + + + + -1.2 + -1.5 + 0.2 + + + + 0 + + + 0.05 + + + true + + + 1 + + + 0.1 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + -0.7 + + + + + + + + + + 50 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + 1.4 + 1.4 + 1.4 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + + + + 0.9644268 + 0.8623552 + 0.616268 + 1 + + + + + + + 0.6186857 + 0.9658147 + 0.9157501 + 1 + + + + + + + + + + + + + 8 + + + + + + + + + 1 + + + + + + + + + 10 + + + + + 0 + + + + + 10 + + + + + 0 + + + + + 10 + + + + + 0 + + + + + 10 + + + + + 0 + + + + + 10 + + + + + 0 + + + + + 10 + + + + + 0 + + + + + 0 + + + + + 10 + + + + + 0 + + + + + 10 + + + + + 0 + + + + + + + + + 0 + + + + + + true + + + 0 + + + 0.5 + + + 0.1 + + + + + + + + + + + -1.5 + -1.5 + -1.5 + + + + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + 10 + + + + + + + + + + + + 0 + + + + + 0 + + + + + 10 + + + + + 10 + + + + + 0 + + + + + + + + + false + + + 0 + + + 1 + + + 0.1 + + + + + 300 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Ion_impact.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Ion_impact.sbc new file mode 100644 index 000000000..473fed9c9 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Ion_impact.sbc @@ -0,0 +1,1843 @@ + + + + + + -1362751943 + 3 + 0 + false + false + 3 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 128 + + + 96 + + + + + + + + + + + 0.5803922 + 0.160784319 + 0.05882353 + 1 + + + + + + + 0.6039216 + 0.141176477 + 0.08235294 + 1 + + + + + + + 0 + 0.08627451 + 0.8039216 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 300 + + + + + 2500 + + + + + 2500 + + + + + 1 + + + + + + + + + 0 + + + + + + + 3.2 + 3.2 + 3.2 + + + + + + + + + + 0 + + + + + + + 0 + -1 + 0 + + + + + + + 10 + + + + + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0.5 + + + + + -1 + + + + + -0.3 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.02 + + + + + 0.06 + + + + + 0.06 + + + + + 0.02 + + + + + + + + + 0.15 + + + 1 + + + 3 + + + 0.03 + + + true + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + true + + + false + + + 1 + + + 0.05 + + + + 0 + 0 + 0 + + + + 0.25 + + + 0 + + + true + + + 0.86 + + + 0.05 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 5 + + + + + 5 + + + + + 1 + + + + + + + + + + + + 15 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 2000 + + + + + 2000 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 8 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 0.9828262 + 0.9406007 + 0.4313402 + 1 + + + + + + + 0.9913929 + 0.4590799 + 0.0563741 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 500 + + + + + 500 + + + + + 500 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 3 + + + + + 0 + + + + + + + + + 0.13 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + 100 + + + + + 100 + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0.86 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 128 + + + 96 + + + + + + + + + + + 0.7299189 + 0.5295233 + 0.3786763 + 1 + + + + + + + 0.3372549 + 0.6862745 + 0.8666667 + 1 + + + + + + + 0 + 0.219607845 + 0.8039216 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 300 + + + + + 2500 + + + + + 1000 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 2.5 + 2.5 + 2.5 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 8 + + + + + + + + + 0.5 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 10 + + + + + 20 + + + + + -3 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.2 + + + + + 0.1 + + + + + 0.2 + + + + + 0.01 + + + + + + + + + 0.15 + + + 1 + + + 1 + + + 0.03 + + + true + + + + + + Atlas_E_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0.25 + + + 0 + + + true + + + 0.86 + + + 0 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 50 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 224 + + + 16 + + + + + + + + + + + 0.7299189 + 0.5295233 + 0.3786763 + 1 + + + + + + + 0.3372549 + 0.6862745 + 0.8666667 + 1 + + + + + + + 0 + 0.219607845 + 0.8039216 + 1 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 300 + + + + + 2500 + + + + + 1000 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 2.5 + 2.5 + 2.5 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 3 + + + + + + + + + 0.5 + + + + + + + + + 0 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 10 + + + + + 20 + + + + + -3 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 2 + + + + + 1.5 + + + + + 0.8 + + + + + 0.01 + + + + + + + + + 0.33 + + + 1 + + + 0.25 + + + 0.03 + + + true + + + + + + Atlas_D_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0.25 + + + 0 + + + true + + + 0.86 + + + 0.15 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 100 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0.5 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + + + + 0.5411765 + 0.7764706 + 0.968627453 + 1 + + + + + + + + + + 0.5 + + + + + + + + + 50 + + + + + 100 + + + + + 150 + + + + + 160 + + + + + + + + + + + + 350 + + + + + 500 + + + + + 250 + + + + + 0 + + + + + + + + + true + + + 1 + + + 1 + + + 0.1 + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/NecronWhipProjectileParticle.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/NecronWhipProjectileParticle.sbc new file mode 100644 index 000000000..881e85851 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/NecronWhipProjectileParticle.sbc @@ -0,0 +1,947 @@ + + + + + + 411954321 + 90 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 1 + 3 + 1 + 1 + + + + + + + 1 + 3 + 1 + 1 + + + + + + + 1 + 3 + 1 + 1 + + + + + + + 1 + 3 + 1 + 1 + + + + + + + + + + + + + + + + + 100 + + + + + 100 + + + + + 100 + + + + + 100 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 200 + + + + + + + + + 180 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + + + + 0.2 + + + 1 + + + 0 + + + 0.0001 + + + true + + + + + + 300 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + true + + + true + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0.15 + + + 0.05 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 0.5 + + + + + 0.5 + + + + + 0.5 + + + + + 0.5 + + + + + + + + + + + + 0 + + + + + + + + + + 200 + + + + + 200 + + + + + 200 + + + + + 200 + + + + + + + + + 5 + + + false + + + false + + + 2 + + + 2 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 32 + + + + + + + + + + + 1 + 3 + 1 + 1 + + + + + + + 1 + 3 + 1 + 1 + + + + + + + 1 + 3 + 1 + 1 + + + + + + + 1 + 3 + 1 + 1 + + + + + + + + + + + + + + + + + 100 + + + + + 100 + + + + + 100 + + + + + 100 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 500 + + + + + + + + + 200 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + + + + + + + + 3 + + + + + 3 + + + + + 3 + + + + + 3 + + + + + + + + + 0.1 + + + 1 + + + 0 + + + 0.0001 + + + true + + + + + + 7 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + true + + + true + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + -2 + + + 0 + + + true + + + 0.15 + + + 0.05 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + + + + + + + 0 + + + + + + 0 + + + + + + + + + + 200 + + + + + 200 + + + + + 200 + + + + + 200 + + + + + + + + + 5 + + + false + + + false + + + 2 + + + 2 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + + + + + + + + + + + + + + + 1 + 2 + 1 + 1 + + + + + + + + + + + + + 100 + + + + + + + + + + + + 20 + + + + + + + + + true + + + 0 + + + 1 + + + 0.1 + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Particles.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Particles.sbc index 7d4cab983..062adcb3f 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Particles.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/Particles.sbc @@ -1,5228 +1,5228 @@ - - - - - - - - ParticleEffect - EnergyBauble - - 0 - 4757 - 6 - 1 - 3 - 200 - true - - - - GPU - - - - 16 - 16 - 0 - - - - 64 - - - 8 - - - - - - - - - - - 1.0 - 1.0 - 0.5 - 0.2 - - - - - - 1.0 - 1.0 - 0.5 - 0.2 - - - - - - 1.0 - 1.0 - 0.5 - 0.8 - - - - - - 1.0 - 1.0 - 0.5 - 0.2 - - - - - - - - - - - - - - - - 100 - - - - 100 - - - - 100 - - - - 100 - - - - - - - - 0 - - - - - - - 0.8 - 0.8 - 0.8 - - - - - - - - - .98 - - - - - - 0 - 0 - -1 - - - - - - - 0.001 - - - - 0.001 - - - - - - - - 0.5 - - - - - - - - 20 - - - - - - - - 20 - - - - - - 0 - 0 - 0.003 - - - - 10 - - - - - - - - - - 0.05 - - - - 0.05 - - - - 0.05 - - - - 0.05 - - - - 0.05 - - - - 0.05 - - - - - - - - 1.6 - - - 1 - - - 18.5 - - - 0.02 - - - true - - - - - - 10 - - - - 10 - - - - 10 - - - - - Atlas_E_01 - - - 1 - - - true - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 2 - - - 0 - - - 0 - - - true - - - 1 - - - 0 - - - true - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - 1 - - - - 1 - - - - 1 - - - - - - - - 1 - - - 0.001 - - - - - - - - - GPU - - - - 16 - 16 - 1 - - - - 145 - - - 80 - - - - - - - - - - - 1.0 - 0.99 - 0.5 - 0.2 - - - - - - 1.0 - 0.99 - 0.5 - 0.2 - - - - - - 1.0 - 0.99 - 0.5 - 0.2 - - - - - - 1.0 - 0.99 - 0.5 - 0.2 - - - - - - - - - - - - - - - - 100 - - - - 50 - - - - 50 - - - - 100 - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - 0 - - - - - - - - 0 - - - - - - - - 0 - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 0 - - - - - - - - - - 0.4 - - - - 0.4 - - - - 0.4 - - - - 0.4 - - - - - - - - 0.15 - - - 1 - - - 4 - - - 2 - - - true - - - - - - 25 - - - - - Atlas_E_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 1 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - 1 - - - - 1 - - - - 1 - - - - - - - - - - - 0 - - - - - - - - - - 110 - - - - 110 - - - - 110 - - - - 110 - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - - - - - - - - - - - - CPU - - - - - - 0 - - - - - - - - 1.5 - - - - - 0.25 - - - - - - - 0 - 1 - 0 - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0.0001 - - - - - - - - - - - - - - - - - - - 0 - 0 - 0 - 0 - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - - - Current_A_Sprite - - - - - - - - 0 - - - - - - false - - - false - - - false - - - false - - - -1 - - - -1 - - - - - - 1 - - - - 1 - - - - 0 - - - - - - - - 1 - - - - - - - - 1 - - - - - false - - - 0 - - - - - - - - - 0 - - - - - - - - - 1 - - - - - 0 - - - - - - 1 - - - - - - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - 0 - - - - 6 - 4 - 0 - - - - - - - - - - - 6 - - - - 7 - - - - - - - - 0 - - - 0 - - - 0 - - - 1 - - - 0 - - - - - - - 5 - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - 0 - 0 - - - - - - - 1 - 1 - 1 - - - - - - - 1 - - - - - 1 - - - 1 - - - false - - - - - - - - - - - - - - - - - - - - - - - 1.0 - 0.8 - 0.8 - 0.2 - - - - - - - - - - - - 1.5 - - - - 1.5 - - - - 1.5 - - - - 1.0 - - - - 1.0 - - - - 1.0 - - - - 1.5 - - - - 1.5 - - - - 1.5 - - - - 1.0 - - - - 1.0 - - - - - - - - .5 - - - - - - - - 300 - - - - - - - - 1 - - - - - true - - - 0 - - - 10 - - - 10 - - - - - - - - - - ParticleEffect - Energy_Explosion - - 0 - 34 - 2 - 2 - 0 - 5000 - false - - - GPU - - - - 16 - 16 - 0 - - - - 32 - - - 32 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - 0.7686275 - 0.4308151 - 0.4308151 - 0.4308151 - - - - - - 0.7686275 - 0.4308151 - 0.4308151 - 0.4308151 - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - 1500 - - - - 1500 - - - - 50 - - - - 1 - - - - - - - - 0.5 - - - - - - - 1.5 - 1.5 - 1.5 - - - - - - - - - 0 - - - - - - 0 - 0 - -1 - - - - - - - 1.5 - - - - - - - - 0.5 - - - - - - - - 0 - - - - - - - - 360 - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 1 - - - - - - - - - - 1 - - - - 2.5 - - - - 3 - - - - 2.5 - - - - - - - - 1.04 - - - 20 - - - 4 - - - 0.037 - - - true - - - - - - Atlas_D_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 1 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - 1 - - - - 1 - - - - 1 - - - - - - - - - - - 5 - - - - 3 - - - - 3 - - - - - 0 - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 0 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - - - GPU - - - - 16 - 16 - 0 - - - - 4 - - - 8 - - - - - - - - - - - 1 - 0.9469329 - 0.9210556 - 0.5143444 - - - - - - 1 - 0.7154654 - 0.3586539 - 0.1904629 - - - - - - 1 - 0.1767743 - 0.1449721 - 0.1449721 - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - 2000 - - - - 600 - - - - 100 - - - - 1 - - - - - - - - 0.1 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - - - - - - 0 - 0 - -1 - - - - - - - 25 - - - - 0 - - - - - - - - 15 - - - - - - - - 0 - - - - - - - - 360 - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 0 - - - - - - - - - - 0 - - - - 0 - - - - 0.1 - - - - 0.1 - - - - - - - - 0.5 - - - 1 - - - 0.24 - - - 0.01 - - - true - - - - - - Atlas_D_01 - - - 1 - - - true - - - false - - - false - - - false - - - 1 - - - 1 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0.15 - - - true - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - 1 - - - - 1 - - - - 1 - - - - - - - - - - - 300 - - - - - 0 - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - - - GPU - - - - 16 - 16 - 0 - - - - 64 - - - 8 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - 1 - 0.9828262 - 0.9406007 - 0.4313402 - - - - - - 1 - 0.9913929 - 0.4590799 - 0.0563741 - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - 500 - - - - 500 - - - - 500 - - - - 1 - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - 0 - - - - - - - - 0 - - - - - - - - 360 - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 0 - - - - - - - - - - 1 - - - - 0.5 - - - - 2.5 - - - - 0.1 - - - - - - - - 0.13 - - - 1 - - - 4 - - - 0.001 - - - true - - - - - - 100 - - - - 100 - - - - 0 - - - - - Atlas_E_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - 1 - - - - 1 - - - - 1 - - - - - - - - - - - 4 - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - - - GPU - - - - 4 - 4 - 1 - - - - 6 - - - 1 - - - - - - - - - - - 0.5019608 - 0.07582522 - 0.1101903 - 0.1083053 - - - - - - 0.254902 - 0.254902 - 0.254902 - 0.254902 - - - - - - 0 - 0 - 0 - 0 - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - 2 - - - - 2 - - - - 2 - - - - 2 - - - - - - - - 0.5 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - 0 - - - - - - - - 0 - - - - - - - - 0 - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 0 - - - - - - - - - - 0.1 - - - - 0.1 - - - - 30 - - - - 50 - - - - - - - - 0.4 - - - 1 - - - 4 - - - 1 - - - true - - - - - - Atlas_E_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - false - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - 1 - - - - 1 - - - - 1 - - - - - - - - - - - 1 - - - - - 0 - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - - - GPU - - - - 4 - 4 - 0 - - - - 7 - - - 1 - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - 1 - 0.9828262 - 0.9406007 - 0.4313402 - - - - - - 1 - 1 - 1 - 1 - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - 500 - - - - 500 - - - - 500 - - - - 1 - - - - - - - - 0.5 - - - - - - - 2 - 2 - 2 - - - - - - - - - 0 - - - - - - 0 - 0 - -1 - - - - - - - 5 - - - - - - - - 0 - - - - - - - - 0 - - - - - - - - 360 - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 0 - - - - - - - - - - 1 - - - - 6 - - - - 1 - - - - 0.1 - - - - - - - - 0.25 - - - 1 - - - 4 - - - 1 - - - false - - - - - - Atlas_E_01 - - - 1 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - 0 - - - - 0 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - 1 - - - - 1 - - - - 1 - - - - - - - - - - - 1 - - - - 1 - - - - 1 - - - - - 4 - - - - - - - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - - - - - 5 - - - false - - - false - - - 1 - - - 0 - - - 1 - - - 0 - - - 0 - - - - - - - - - - - - - - - - - - - 1 - 1 - 0.8122415 - 0.4259053 - - - - - - - - - - - - 150 - - - - - - - - 1 - - - - - - - - 0 - - - - 120 - - - - 115 - - - - 45 - - - - 35 - - - - 12 - - - - 0 - - - - - - - - true - - - 0 - - - 0.3 - - - 1 - - - - - - - - - - - ParticleEffect - recoil_Flash - - 0 - 202 - 1 - 0.25 - 0 - false - - - CPU - - - - - - 0 - - - - - - - - 0.5 - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - 0 - - - - - - - -90 - 0 - 90 - - - - - - - 0 - 0 - 0 - - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0.1 - - - - - - - - - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - Atlas_A_01 - - - - - - - - 0 - - - - - - 0.2 - - - - - true - - - false - - - false - - - false - - - -1 - - - -1 - - - - - - 1 - - - - 1 - - - - 0 - - - - - - - - 1 - - - - - - - - 1 - - - - - true - - - 0 - - - - - - - - - 0 - - - - - - - - - 2 - - - - - 0 - - - - - - 10 - - - - - - - - - - - - - 0 - 0 - -0.2 - - - - - - - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - 1 - - - - 32 - 16 - 0 - - - - - - - - - - - 64 - - - - 79 - - - - - - - - 0 - - - 0 - - - 0 - - - 1 - - - 0 - - - - - - - 5 - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - 0 - 0 - - - - - - - 1 - 1 - 1 - - - - - - - 1 - - - - - 1 - - - 1 - - - false - - - - - - - - - CPU - - - - - - 0 - - - - - - - - 0.5 - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - 0 - - - - - - - -90 - 0 - -45 - - - - - - - 0 - 0 - 0 - - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0.1 - - - - - - - - - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - Atlas_A_01 - - - - - - - - 0 - - - - - - 0.2 - - - - - true - - - false - - - false - - - false - - - -1 - - - -1 - - - - - - 1 - - - - 1 - - - - 0 - - - - - - - - 1 - - - - - - - - 1 - - - - - true - - - 0 - - - - - - - - - 0 - - - - - - - - - 2 - - - - - 0 - - - - - - 10 - - - - - - - - - - - - - 0 - 0 - -0.2 - - - - - - - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - 1 - - - - 32 - 16 - 0 - - - - - - - - - - - 66 - - - - 79 - - - - - - - - 0 - - - 0 - - - 0 - - - 1 - - - 0 - - - - - - - 5 - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - 0 - 0 - - - - - - - 1 - 1 - 1 - - - - - - - 1 - - - - - 1 - - - 1 - - - false - - - - - - - - - CPU - - - - - - 0 - - - - - - - - 0.5 - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0.2 - - - - - - - - - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - Atlas_A_01 - - - - - - - - 0 - - - - - - true - - - false - - - false - - - false - - - -1 - - - -1 - - - - - - 1 - - - - 1 - - - - 0 - - - - - - - - 1 - - - - - - - - 1 - - - - - true - - - 0 - - - - - - - - - 0 - - - - - - - - - 2 - - - - - 0 - - - - - - 2 - - - - - - - - - - - - - 0 - 0 - -0.03 - - - - - - - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - 1 - - - - 16 - 16 - 0 - - - - - - - - - - - 48 - - - - 63 - - - - - - - - 0 - - - 0 - - - 0 - - - 1 - - - 0 - - - - - - - 5 - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - 0 - 0 - - - - - - - 1 - 1 - 1 - - - - - - - 1 - - - - - 1 - - - 1 - - - false - - - - - - - - - CPU - - - - - - 0 - - - - - - - - 0.5 - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - 0 - - - - - - - -90 - 0 - 45 - - - - - - - 0 - 0 - 0 - - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0.1 - - - - - - - - - - - - - - - - - - - 1 - 1 - 1 - 1 - - - - - - 1 - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - Atlas_A_01 - - - - - - - - 0 - - - - - - 0.2 - - - - - true - - - false - - - false - - - false - - - -1 - - - -1 - - - - - - 1 - - - - 1 - - - - 0 - - - - - - - - 1 - - - - - - - - 1 - - - - - true - - - 0 - - - - - - - - - 0 - - - - - - - - - 2 - - - - - 0 - - - - - - 10 - - - - - - - - - - - - - 0 - 0 - -0.2 - - - - - - - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - 1 - - - - 32 - 16 - 0 - - - - - - - - - - - 64 - - - - 79 - - - - - - - - 0 - - - 0 - - - 0 - - - 1 - - - 0 - - - - - - - 5 - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - 0 - 0 - - - - - - - 1 - 1 - 1 - - - - - - - 1 - - - - - 1 - - - 1 - - - false - - - - - - - - - CPU - - - - - - 20 - - - - - - - - 0.5 - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0.2 - - - - - - - - - - - - - - - - - - - 0.0103978 - 0.008525821 - 0.006998232 - 0.005011245 - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - - - Atlas_A_01 - - - - - - - - 0 - - - - - - true - - - false - - - false - - - false - - - -1 - - - -1 - - - - - - 1 - - - - 1 - - - - 0 - - - - - - - - 1 - - - - - - - - 1 - - - - - true - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - - 10 - - - - - - - - - - - - - 0 - 0 - -0.03 - - - - - - - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - 0 - - - - 16 - 16 - 0 - - - - - - - - - - - 31 - - - - - - - - 0 - - - 0 - - - 0 - - - 10 - - - 0 - - - - - - - 5 - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - 0 - 0 - - - - - - - 1 - 1 - 1 - - - - - - - 1 - - - - - 1 - - - 1 - - - false - - - - - - - - - - - - - - - - - 0 - 0 - 0 - - - - - - - - - - - - - 1 - 1 - 0.9686275 - 0.8823529 - - - - - - - - - - - - 1 - - - - - - - - - - - 10 - - - - - - - - 5 - - - - - true - - - - - - - - + + + + + + + + ParticleEffect + EnergyBauble + + 0 + 4757 + 6 + 1 + 3 + 200 + true + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 8 + + + + + + + + + + + 1.0 + 1.0 + 0.5 + 0.2 + + + + + + 1.0 + 1.0 + 0.5 + 0.2 + + + + + + 1.0 + 1.0 + 0.5 + 0.8 + + + + + + 1.0 + 1.0 + 0.5 + 0.2 + + + + + + + + + + + + + + + + 100 + + + + 100 + + + + 100 + + + + 100 + + + + + + + + 0 + + + + + + + 0.8 + 0.8 + 0.8 + + + + + + + + + .98 + + + + + + 0 + 0 + -1 + + + + + + + 0.001 + + + + 0.001 + + + + + + + + 0.5 + + + + + + + + 20 + + + + + + + + 20 + + + + + + 0 + 0 + 0.003 + + + + 10 + + + + + + + + + + 0.05 + + + + 0.05 + + + + 0.05 + + + + 0.05 + + + + 0.05 + + + + 0.05 + + + + + + + + 1.6 + + + 1 + + + 18.5 + + + 0.02 + + + true + + + + + + 10 + + + + 10 + + + + 10 + + + + + Atlas_E_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 2 + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + + + + + 1 + + + 0.001 + + + + + + + + + GPU + + + + 16 + 16 + 1 + + + + 145 + + + 80 + + + + + + + + + + + 1.0 + 0.99 + 0.5 + 0.2 + + + + + + 1.0 + 0.99 + 0.5 + 0.2 + + + + + + 1.0 + 0.99 + 0.5 + 0.2 + + + + + + 1.0 + 0.99 + 0.5 + 0.2 + + + + + + + + + + + + + + + + 100 + + + + 50 + + + + 50 + + + + 100 + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + 0 + + + + + + + + 0 + + + + + + + + 0 + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 0 + + + + + + + + + + 0.4 + + + + 0.4 + + + + 0.4 + + + + 0.4 + + + + + + + + 0.15 + + + 1 + + + 4 + + + 2 + + + true + + + + + + 25 + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + + + + + + + + 0 + + + + + + + + + + 110 + + + + 110 + + + + 110 + + + + 110 + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + + + + + + + + + + + + CPU + + + + + + 0 + + + + + + + + 1.5 + + + + + 0.25 + + + + + + + 0 + 1 + 0 + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0.0001 + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + + + Current_A_Sprite + + + + + + + + 0 + + + + + + false + + + false + + + false + + + false + + + -1 + + + -1 + + + + + + 1 + + + + 1 + + + + 0 + + + + + + + + 1 + + + + + + + + 1 + + + + + false + + + 0 + + + + + + + + + 0 + + + + + + + + + 1 + + + + + 0 + + + + + + 1 + + + + + + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + 0 + + + + 6 + 4 + 0 + + + + + + + + + + + 6 + + + + 7 + + + + + + + + 0 + + + 0 + + + 0 + + + 1 + + + 0 + + + + + + + 5 + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + 0 + 0 + + + + + + + 1 + 1 + 1 + + + + + + + 1 + + + + + 1 + + + 1 + + + false + + + + + + + + + + + + + + + + + + + + + + + 1.0 + 0.8 + 0.8 + 0.2 + + + + + + + + + + + + 1.5 + + + + 1.5 + + + + 1.5 + + + + 1.0 + + + + 1.0 + + + + 1.0 + + + + 1.5 + + + + 1.5 + + + + 1.5 + + + + 1.0 + + + + 1.0 + + + + + + + + .5 + + + + + + + + 300 + + + + + + + + 1 + + + + + true + + + 0 + + + 10 + + + 10 + + + + + + + + + + ParticleEffect + Energy_Explosion + + 0 + 34 + 2 + 2 + 0 + 5000 + false + + + GPU + + + + 16 + 16 + 0 + + + + 32 + + + 32 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + 0.7686275 + 0.4308151 + 0.4308151 + 0.4308151 + + + + + + 0.7686275 + 0.4308151 + 0.4308151 + 0.4308151 + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + 1500 + + + + 1500 + + + + 50 + + + + 1 + + + + + + + + 0.5 + + + + + + + 1.5 + 1.5 + 1.5 + + + + + + + + + 0 + + + + + + 0 + 0 + -1 + + + + + + + 1.5 + + + + + + + + 0.5 + + + + + + + + 0 + + + + + + + + 360 + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 1 + + + + + + + + + + 1 + + + + 2.5 + + + + 3 + + + + 2.5 + + + + + + + + 1.04 + + + 20 + + + 4 + + + 0.037 + + + true + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 1 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + + + + + + + + 5 + + + + 3 + + + + 3 + + + + + 0 + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 0 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 4 + + + 8 + + + + + + + + + + + 1 + 0.9469329 + 0.9210556 + 0.5143444 + + + + + + 1 + 0.7154654 + 0.3586539 + 0.1904629 + + + + + + 1 + 0.1767743 + 0.1449721 + 0.1449721 + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + 2000 + + + + 600 + + + + 100 + + + + 1 + + + + + + + + 0.1 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + + + + + + 0 + 0 + -1 + + + + + + + 25 + + + + 0 + + + + + + + + 15 + + + + + + + + 0 + + + + + + + + 360 + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 0 + + + + + + + + + + 0 + + + + 0 + + + + 0.1 + + + + 0.1 + + + + + + + + 0.5 + + + 1 + + + 0.24 + + + 0.01 + + + true + + + + + + Atlas_D_01 + + + 1 + + + true + + + false + + + false + + + false + + + 1 + + + 1 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0.15 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + + + + + + + + 300 + + + + + 0 + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 8 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + 1 + 0.9828262 + 0.9406007 + 0.4313402 + + + + + + 1 + 0.9913929 + 0.4590799 + 0.0563741 + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + 500 + + + + 500 + + + + 500 + + + + 1 + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + 0 + + + + + + + + 0 + + + + + + + + 360 + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 0 + + + + + + + + + + 1 + + + + 0.5 + + + + 2.5 + + + + 0.1 + + + + + + + + 0.13 + + + 1 + + + 4 + + + 0.001 + + + true + + + + + + 100 + + + + 100 + + + + 0 + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + + + + + + + + 4 + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + + + GPU + + + + 4 + 4 + 1 + + + + 6 + + + 1 + + + + + + + + + + + 0.5019608 + 0.07582522 + 0.1101903 + 0.1083053 + + + + + + 0.254902 + 0.254902 + 0.254902 + 0.254902 + + + + + + 0 + 0 + 0 + 0 + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + 0 + + + + + + + + 0 + + + + + + + + 0 + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + 0.1 + + + + 30 + + + + 50 + + + + + + + + 0.4 + + + 1 + + + 4 + + + 1 + + + true + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + + + + + + + + 1 + + + + + 0 + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + 1 + 0.9828262 + 0.9406007 + 0.4313402 + + + + + + 1 + 1 + 1 + 1 + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + 500 + + + + 500 + + + + 500 + + + + 1 + + + + + + + + 0.5 + + + + + + + 2 + 2 + 2 + + + + + + + + + 0 + + + + + + 0 + 0 + -1 + + + + + + + 5 + + + + + + + + 0 + + + + + + + + 0 + + + + + + + + 360 + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 0 + + + + + + + + + + 1 + + + + 6 + + + + 1 + + + + 0.1 + + + + + + + + 0.25 + + + 1 + + + 4 + + + 1 + + + false + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + 1 + + + + + + + + + + + 1 + + + + 1 + + + + 1 + + + + + 4 + + + + + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + 1 + 1 + 0.8122415 + 0.4259053 + + + + + + + + + + + + 150 + + + + + + + + 1 + + + + + + + + 0 + + + + 120 + + + + 115 + + + + 45 + + + + 35 + + + + 12 + + + + 0 + + + + + + + + true + + + 0 + + + 0.3 + + + 1 + + + + + + + + + + + ParticleEffect + recoil_Flash + + 0 + 202 + 1 + 0.25 + 0 + false + + + CPU + + + + + + 0 + + + + + + + + 0.5 + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + 0 + + + + + + + -90 + 0 + 90 + + + + + + + 0 + 0 + 0 + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0.1 + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + Atlas_A_01 + + + + + + + + 0 + + + + + + 0.2 + + + + + true + + + false + + + false + + + false + + + -1 + + + -1 + + + + + + 1 + + + + 1 + + + + 0 + + + + + + + + 1 + + + + + + + + 1 + + + + + true + + + 0 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + 0 + + + + + + 10 + + + + + + + + + + + + + 0 + 0 + -0.2 + + + + + + + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + 1 + + + + 32 + 16 + 0 + + + + + + + + + + + 64 + + + + 79 + + + + + + + + 0 + + + 0 + + + 0 + + + 1 + + + 0 + + + + + + + 5 + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + 0 + 0 + + + + + + + 1 + 1 + 1 + + + + + + + 1 + + + + + 1 + + + 1 + + + false + + + + + + + + + CPU + + + + + + 0 + + + + + + + + 0.5 + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + 0 + + + + + + + -90 + 0 + -45 + + + + + + + 0 + 0 + 0 + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0.1 + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + Atlas_A_01 + + + + + + + + 0 + + + + + + 0.2 + + + + + true + + + false + + + false + + + false + + + -1 + + + -1 + + + + + + 1 + + + + 1 + + + + 0 + + + + + + + + 1 + + + + + + + + 1 + + + + + true + + + 0 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + 0 + + + + + + 10 + + + + + + + + + + + + + 0 + 0 + -0.2 + + + + + + + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + 1 + + + + 32 + 16 + 0 + + + + + + + + + + + 66 + + + + 79 + + + + + + + + 0 + + + 0 + + + 0 + + + 1 + + + 0 + + + + + + + 5 + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + 0 + 0 + + + + + + + 1 + 1 + 1 + + + + + + + 1 + + + + + 1 + + + 1 + + + false + + + + + + + + + CPU + + + + + + 0 + + + + + + + + 0.5 + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0.2 + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + Atlas_A_01 + + + + + + + + 0 + + + + + + true + + + false + + + false + + + false + + + -1 + + + -1 + + + + + + 1 + + + + 1 + + + + 0 + + + + + + + + 1 + + + + + + + + 1 + + + + + true + + + 0 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + 0 + + + + + + 2 + + + + + + + + + + + + + 0 + 0 + -0.03 + + + + + + + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + 1 + + + + 16 + 16 + 0 + + + + + + + + + + + 48 + + + + 63 + + + + + + + + 0 + + + 0 + + + 0 + + + 1 + + + 0 + + + + + + + 5 + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + 0 + 0 + + + + + + + 1 + 1 + 1 + + + + + + + 1 + + + + + 1 + + + 1 + + + false + + + + + + + + + CPU + + + + + + 0 + + + + + + + + 0.5 + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + 0 + + + + + + + -90 + 0 + 45 + + + + + + + 0 + 0 + 0 + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0.1 + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + Atlas_A_01 + + + + + + + + 0 + + + + + + 0.2 + + + + + true + + + false + + + false + + + false + + + -1 + + + -1 + + + + + + 1 + + + + 1 + + + + 0 + + + + + + + + 1 + + + + + + + + 1 + + + + + true + + + 0 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + 0 + + + + + + 10 + + + + + + + + + + + + + 0 + 0 + -0.2 + + + + + + + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + 1 + + + + 32 + 16 + 0 + + + + + + + + + + + 64 + + + + 79 + + + + + + + + 0 + + + 0 + + + 0 + + + 1 + + + 0 + + + + + + + 5 + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + 0 + 0 + + + + + + + 1 + 1 + 1 + + + + + + + 1 + + + + + 1 + + + 1 + + + false + + + + + + + + + CPU + + + + + + 20 + + + + + + + + 0.5 + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0.2 + + + + + + + + + + + + + + + + + + + 0.0103978 + 0.008525821 + 0.006998232 + 0.005011245 + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + + + Atlas_A_01 + + + + + + + + 0 + + + + + + true + + + false + + + false + + + false + + + -1 + + + -1 + + + + + + 1 + + + + 1 + + + + 0 + + + + + + + + 1 + + + + + + + + 1 + + + + + true + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + 0 + + + + + + 10 + + + + + + + + + + + + + 0 + 0 + -0.03 + + + + + + + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + 0 + + + + 16 + 16 + 0 + + + + + + + + + + + 31 + + + + + + + + 0 + + + 0 + + + 0 + + + 10 + + + 0 + + + + + + + 5 + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + 0 + 0 + + + + + + + 1 + 1 + 1 + + + + + + + 1 + + + + + 1 + + + 1 + + + false + + + + + + + + + + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + + + 1 + 1 + 0.9686275 + 0.8823529 + + + + + + + + + + + + 1 + + + + + + + + + + + 10 + + + + + + + + 5 + + + + + true + + + + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/SUNSHOT.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/SUNSHOT.sbc new file mode 100644 index 000000000..70f007691 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/SUNSHOT.sbc @@ -0,0 +1,1311 @@ + + + + + + 1248490464 + 90 + 0 + false + true + 1 + 1 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 7 + + + + + + + + + + + 10 + 1 + 1 + 1 + + + + + + + 10 + 1 + 1 + 1 + + + + + + + 10 + 1 + 1 + 1 + + + + + + + 10 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.3 + + + + + 0.3 + + + + + 0.3 + + + + + 0.3 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.1 + + + false + + + + + + 5 + + + + + + Atlas_D_01 + + + 69420 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 10 + + + + + + Atlas_E_01 + + + 69420 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 10 + 2 + 1 + 1 + + + + + + + 10 + 2 + 1 + 1 + + + + + + + 10 + 2 + 1 + 1 + + + + + + + 10 + 2 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 10 + + + + + + Atlas_E_01 + + + 69420 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 6000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/SUNTRAVEL.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/SUNTRAVEL.sbc new file mode 100644 index 000000000..69a062ee0 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/SUNTRAVEL.sbc @@ -0,0 +1,455 @@ + + + + + + -310762832 + 90 + 0 + false + true + 0.1 + 1 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + + + + + 2 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/THESUN.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/THESUN.sbc new file mode 100644 index 000000000..d7328df4a --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/THESUN.sbc @@ -0,0 +1,936 @@ + + + + + + 1725926289 + 0.1 + 0 + false + true + 5 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 20 + 5 + 1 + 1 + + + + + + + 20 + 5 + 1 + 1 + + + + + + + 20 + 5 + 1 + 1 + + + + + + + 20 + 5 + 1 + 1 + + + + + + + + + + + + + + + + + 100 + + + + + 100 + + + + + 100 + + + + + 100 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 10 + + + + + 7 + + + + + 10 + + + + + + + + + 10 + + + 1 + + + 4 + + + 1 + + + true + + + + + + Atlas_E_01 + + + 0.001 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.002 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 6 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 30 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 10 + + + 1 + + + 4 + + + 1 + + + true + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 360 + 0 + 360 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 6 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + + + + 10 + 2 + 0 + 10 + + + + + + + + + + + + + 200 + + + + + + + + + + + + 1000 + + + + + + + + + true + + + 0 + + + 1 + + + 100 + + + + + 20000 + -500 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/THESUNMUZZLE.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/THESUNMUZZLE.sbc new file mode 100644 index 000000000..6bc883286 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/THESUNMUZZLE.sbc @@ -0,0 +1,879 @@ + + + + + + -1360319236 + 0.1 + 0 + false + false + 1 + 1 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 20 + 5 + 1 + 1 + + + + + + + 20 + 5 + 1 + 1 + + + + + + + 20 + 5 + 1 + 1 + + + + + + + 20 + 5 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 4 + + + + + 0 + + + + + + + + + 2 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 20 + + + + + 0 + + + + + + + + + 2 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + true + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 20000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/chromaticexplode.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/chromaticexplode.sbc new file mode 100644 index 000000000..9b1668e56 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/chromaticexplode.sbc @@ -0,0 +1,449 @@ + + + + + + 1897916599 + 0.1 + 0 + false + true + 1 + 1 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 48 + + + 16 + + + + + + + + + + + 10 + 10 + 1 + 1 + + + + + + + 10 + 10 + 1 + 1 + + + + + + + 10 + 10 + 1 + 1 + + + + + + + 10 + 10 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.1 + + + true + + + + + + 60 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.473 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/greenportalparticle.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/greenportalparticle.sbc new file mode 100644 index 000000000..8e7f2683b --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/greenportalparticle.sbc @@ -0,0 +1,872 @@ + + + + + + -1861197498 + 90 + 0 + false + true + 1 + 1 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 137 + + + 1 + + + + + + + + + + + -1 + -1 + -1 + 99 + + + + + + + -1 + -1 + -1 + 99 + + + + + + + -1 + -1 + -1 + 99 + + + + + + + -1 + -1 + -1 + 99 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 5 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 1 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 137 + + + 1 + + + + + + + + + + + 1 + 10 + 5 + 1 + + + + + + + 1 + 10 + 5 + 1 + + + + + + + 1 + 10 + 5 + 1 + + + + + + + 1 + 10 + 5 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 6 + + + + + 6 + + + + + 0 + + + + + + + + + 2 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 1 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 6000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/healaoe.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/healaoe.sbc new file mode 100644 index 000000000..8656c60b3 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/healaoe.sbc @@ -0,0 +1,449 @@ + + + + + + -554714793 + 1 + 0 + false + false + 10 + 10 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 1 + 10 + 5 + 1 + + + + + + + 1 + 10 + 5 + 1 + + + + + + + 1 + 10 + 5 + 0 + + + + + + + 1 + 10 + 5 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1000 + + + + + 947.3876 + + + + + 1 + + + + + + + + + 3 + + + 1 + + + 4 + + + 1 + + + true + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/incandescent_gas.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/incandescent_gas.sbc new file mode 100644 index 000000000..6fa0d4462 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/incandescent_gas.sbc @@ -0,0 +1,2665 @@ + + + + + + -735918706 + 0.1 + 0 + false + true + 60 + 60 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 20 + 5 + 1 + 0.01 + + + + + + + 20 + 5 + 1 + 0.01 + + + + + + + 20 + 5 + 1 + 0.01 + + + + + + + 20 + 5 + 1 + 0.01 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 10 + + + + + 7 + + + + + 10 + + + + + + + + + 2 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 3 + + + + + + Atlas_E_01 + + + 2 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.002 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 60 + + + + + 60 + + + + + 60 + + + + + 60 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 20 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 32 + 16 + 0 + + + + 448 + + + 33 + + + + + + + + + + + 10 + 2 + 2 + 1 + + + + + + + 10 + 2 + 2 + 1 + + + + + + + 10 + 2 + 2 + 1 + + + + + + + 10 + 2 + 2 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.1 + + + true + + + + + + 0.6 + + + + + + Atlas_D_01 + + + 0.1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.03 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 5 + + + + + + + + + + 2000 + + + + + 2000 + + + + + 2000 + + + + + 2000 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 22 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 32 + + + 3 + + + + + + + + + + + 255 + 255 + 255 + 1 + + + + + + + 255 + 255 + 255 + 1 + + + + + + + 255 + 255 + 255 + 1 + + + + + + + 255 + 255 + 255 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 1 + + + + + + Atlas_D_01 + + + 10000 + + + false + + + false + + + true + + + true + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.209 + + + true + + + 1 + + + 0.1 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 1 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 2 + + + 30 + + + + + + + + + + + 0.0001 + 0 + 0 + 1 + + + + + + + 0.0001 + 0 + 0 + 1 + + + + + + + 0.0001 + 0 + 0 + 1 + + + + + + + 0.0001 + 0 + 0 + 1 + + + + + + + + + + + + + + + + + 0.001 + + + + + 1 + + + + + 100 + + + + + 0.001 + + + + + + + + + 0.5 + + + + + + + 60 + 60 + 60 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 12 + + + + + + + + + 2 + + + + + + + + + 50 + + + + + + + + + 360 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 6 + + + + + 0 + + + + + -10 + + + + + + + + + 0 + + + + + + + + + + 3 + + + + + 3 + + + + + 3 + + + + + 3 + + + + + + + + + 5 + + + 1 + + + 0.6 + + + 0.2 + + + true + + + + + + 1.2 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.032 + + + false + + + 1 + + + 1 + + + true + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + 0 + + + + + + + + + + 5 + + + + + 500 + + + + + 5000 + + + + + 50000 + + + + + 50 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 10 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 22 + + + 4 + + + + + + + + + + + 55 + 55 + 55 + 1 + + + + + + + 55 + 55 + 55 + 1 + + + + + + + 55 + 55 + 55 + 1 + + + + + + + 55 + 55 + 55 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 5 + + + + + + + + + 10 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + 2 + + + 1 + + + 4 + + + 0.2 + + + false + + + + + + 2 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0.5 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 90 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 10 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 18 + + + + + + Atlas_E_01 + + + 5 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 2 + + + 0 + + + true + + + 1 + + + 0.2 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 360 + 0 + 360 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 200 + + + + + 200 + + + + + 200 + + + + + 200 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 20 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + + + + 0.8 + 0.2 + 0.01 + 0.5 + + + + + + + + + + + + + 2500 + + + + + + + + + + + + 700 + + + + + + + + + true + + + 0 + + + 0.0001 + + + 0 + + + + + 40000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/magic_I_guess.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/magic_I_guess.sbc new file mode 100644 index 000000000..2faec956a --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/magic_I_guess.sbc @@ -0,0 +1,541 @@ + + + + + + 444 + 3 + 0 + false + false + 0.1 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 0 + + + 65 + + + + + + + + + + + 0.52 + 0.92 + 0.1 + 0.5882353 + + + + + + + 0.52 + 0.92 + 0.1 + 0.5882353 + + + + + + + 0.52 + 0.92 + 0.1 + 0.5882353 + + + + + + + 0.52 + 0.92 + 0.1 + 0.5882353 + + + + + + + + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 0 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + 1 + + + + + + + 0.02 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0.2 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + 1 + + + 1 + + + 0.01 + + + true + + + + + + 0 + + + + + + Atlas_F_01 + + + 0.15 + + + false + + + false + + + true + + + false + + + 1 + + + 0.3 + + + + 0 + 0 + 0 + + + + 0.5 + + + 0.737 + + + true + + + 1 + + + 0.1 + + + false + + + 0 + + + + 90 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 2 + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 1 + + + false + + + false + + + 1 + + + 5 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + + + + + + + + + + + 1 + 1 + 1 + + + + + + + + + + + 1 + 1 + 2 + 1 + + + + + + + + + + + + + 20 + + + + + + + + + 1 + + + + + + + + + 100 + + + + + + + + + 0.5 + + + + + + true + + + 0 + + + 1 + + + 1 + + + + + 6000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/magicring.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/magicring.sbc new file mode 100644 index 000000000..fa2fd77f6 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/magicring.sbc @@ -0,0 +1,541 @@ + + + + + + 444 + 3 + 0 + false + true + 0.1 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 0.52 + 0.92 + 0.1 + 0.5882353 + + + + + + + 0.52 + 0.92 + 0.1 + 0.5882353 + + + + + + + 0.52 + 0.92 + 0.1 + 0.5882353 + + + + + + + 0.52 + 0.92 + 0.1 + 0.5882353 + + + + + + + + + + + + + + + + + 10 + + + + + 10 + + + + + 10 + + + + + 0 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + 1 + + + + + + + 0.02 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0.2 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.2 + + + 1 + + + 1 + + + 1 + + + true + + + + + + 0 + + + + + + Atlas_E_01 + + + 0.15 + + + false + + + false + + + true + + + false + + + 1 + + + 0.3 + + + + 0 + 0 + 0 + + + + 0.5 + + + 0.737 + + + true + + + 1 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 1 + + + false + + + false + + + 1 + + + 5 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + + + + + + + + + + + + 1 + 1 + 1 + + + + + + + + + + + 1 + 1 + 2 + 1 + + + + + + + + + + + + + 20 + + + + + + + + + 1 + + + + + + + + + 100 + + + + + + + + + 0.5 + + + + + + true + + + 0 + + + 1 + + + 1 + + + + + 6000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/mysticsquare.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/mysticsquare.sbc new file mode 100644 index 000000000..55d3664a2 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/mysticsquare.sbc @@ -0,0 +1,450 @@ + + + + + + 189791659 + 0.1 + 0 + false + true + 1 + 1 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 20 + 1 + 10 + 1 + + + + + + + 20 + 1 + 10 + 1 + + + + + + + 20 + 1 + 10 + 1 + + + + + + + 20 + 1 + 10 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 1 + + + + + 10 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.033 + + + true + + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.079 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 6000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/portalparticle.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/portalparticle.sbc new file mode 100644 index 000000000..f0a6322b6 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/portalparticle.sbc @@ -0,0 +1,872 @@ + + + + + + -1861197498 + 90 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 16 + 16 + 0 + + + + 137 + + + 1 + + + + + + + + + + + -1 + -1 + -1 + 99 + + + + + + + -1 + -1 + -1 + 99 + + + + + + + -1 + -1 + -1 + 99 + + + + + + + -1 + -1 + -1 + 99 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 1 + + + + + 5 + + + + + 5 + + + + + + + + + 2 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 1 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 137 + + + 1 + + + + + + + + + + + 10 + 1 + 10 + 1 + + + + + + + 10 + 1 + 10 + 1 + + + + + + + 10 + 1 + 10 + 1 + + + + + + + 10 + 1 + 10 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 6 + + + + + 6 + + + + + 0 + + + + + + + + + 3 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 1 + + + + + + Atlas_D_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 6000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ringedplanetparticle.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ringedplanetparticle.sbc new file mode 100644 index 000000000..2bb33fa34 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/ringedplanetparticle.sbc @@ -0,0 +1,1305 @@ + + + + + + -1233968703 + 90 + 0 + false + true + 0 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 7 + + + 1 + + + + + + + + + + + 10 + 30 + 20 + 1 + + + + + + + 10 + 30 + 20 + 1 + + + + + + + 10 + 30 + 20 + 1 + + + + + + + 10 + 30 + 20 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 5 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.094 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 0 + 1 + 1 + 0 + + + + + + + 0 + 1 + 1 + 0.5 + + + + + + + 0 + 1 + 1 + 0.5 + + + + + + + 0 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 4 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0.089 + + + false + + + 1 + + + 1 + + + false + + + 1 + + + + 90 + 0 + 0 + + + + + 180 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + -1 + -1 + -1 + 0 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 1 + + + + + + + -1 + -1 + -1 + 0 + + + + + + + + + + + + + + + + + 4 + + + + + 4 + + + + + 4 + + + + + 4 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 2 + + + + + 2 + + + + + 2 + + + + + 2 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 2 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 10000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/rotatingslab.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/rotatingslab.sbc new file mode 100644 index 000000000..65f11daed --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/rotatingslab.sbc @@ -0,0 +1,455 @@ + + + + + + -1254576254 + 90 + 0 + false + false + 0 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 160 + + + 16 + + + + + + + + + + + 9 + 1 + 9 + 1 + + + + + + + 9 + 1 + 9 + 1 + + + + + + + 9 + 1 + 9 + 1 + + + + + + + 9 + 1 + 9 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 5 + + + + + 5 + + + + + 5 + + + + + 5 + + + + + + + + + 1 + + + 1 + + + 4 + + + 0.033 + + + true + + + + + + 1 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + false + + + 1 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 0 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 6000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/sunstagechange.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/sunstagechange.sbc new file mode 100644 index 000000000..156285b70 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Particles/sunstagechange.sbc @@ -0,0 +1,455 @@ + + + + + + 1030857634 + 90 + 0 + false + true + 0 + 0 + 0 + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + 0.5 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + + + + + 1 + + + 1 + + + 4 + + + 1 + + + true + + + + + + 0 + + + + + + Atlas_E_01 + + + 1 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + 0 + + + + 0 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 5 + + + false + + + false + + + 1 + + + 0 + + + 1 + + + 0 + + + 0 + + + true + + + 0 + + + + + + 3000 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/REE_Decals_OnHit.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/REE_Decals_OnHit.sbc index 6fd30af4a..c9f124014 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/REE_Decals_OnHit.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/REE_Decals_OnHit.sbc @@ -1,85 +1,85 @@ - - - - - - - - - - - - - DecalDefinition - REE_Laser_Damage1 - - REE_Laser_Decal - Metal - - Textures/Decals/MissileDirt_01_ng.dds - Textures/Decals/MissileDirt_01_cm.dds - Textures/Decals/MissileDirt_01_alphamask.dds - Textures/Decals/MissileDirt_01_add.dds - - 1.0 - 3 - 20 - 1000 - - - - - DecalDefinition - REE_Bullet_Damage1 - - REE_Bullet_Decal - Metal - - Textures/Decals/Bullet_Metal_Hit_01_ng.dds - Textures/Decals/Bullet_Metal_Hit_01_cm.dds - Textures/Decals/Bullet_Metal_Hit_01_alphamask.dds - Textures/Decals/Bullet_Metal_Hit_01_add.dds - - 1.0 - 1 - 20 - 1000 - - - - - DecalDefinition - REE_Explosive_Decal1 - - REE_Explosive_Decal - Metal - - Textures/Decals/MissileDirt_01_ng.dds - Textures/Decals/MissileDirt_01_cm.dds - Textures/Decals/MissileDirt_01_alphamask.dds - Textures/Decals/MissileDirt_01_add.dds - - 10 - 10 - 7.5 - 1000 - - - - - + + + + + + + + + + + + + DecalDefinition + REE_Laser_Damage1 + + REE_Laser_Decal + Metal + + Textures/Decals/MissileDirt_01_ng.dds + Textures/Decals/MissileDirt_01_cm.dds + Textures/Decals/MissileDirt_01_alphamask.dds + Textures/Decals/MissileDirt_01_add.dds + + 1.0 + 3 + 20 + 1000 + + + + + DecalDefinition + REE_Bullet_Damage1 + + REE_Bullet_Decal + Metal + + Textures/Decals/Bullet_Metal_Hit_01_ng.dds + Textures/Decals/Bullet_Metal_Hit_01_cm.dds + Textures/Decals/Bullet_Metal_Hit_01_alphamask.dds + Textures/Decals/Bullet_Metal_Hit_01_add.dds + + 1.0 + 1 + 20 + 1000 + + + + + DecalDefinition + REE_Explosive_Decal1 + + REE_Explosive_Decal + Metal + + Textures/Decals/MissileDirt_01_ng.dds + Textures/Decals/MissileDirt_01_cm.dds + Textures/Decals/MissileDirt_01_alphamask.dds + Textures/Decals/MissileDirt_01_add.dds + + 10 + 10 + 7.5 + 1000 + + + + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_AmmoMagazines.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_AmmoMagazines.sbc index 5cb57f195..c55d59fbf 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_AmmoMagazines.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_AmmoMagazines.sbc @@ -1,75 +1,346 @@ - - - - - - - - AmmoMagazine - MACmag - - MACammo - Textures\Icons\srm8l.dds - pewpewpew - - 0.25 - 0.2 - 0.2 - - 103.5 - 138 - Models\Ammo\Starcore_LRM_Missile_Large.mwm - Ammo - 1 - - - - - - - - - - AmmoMagazine - ARCSTRIKEMAG - - NOOOKS - Textures\Icons\arrowiv.dds - I'M HERE TO EAT ASS AND KICK BUBBLEGUM. - - 0.1 - 0.1 - 0.1 - - 30 - 1 - Models\Ammo\Starcore_Arrow_Missile_Large.mwm - Ammo - 4 - - - - - - AmmoMagazine - SM3MAG - - NOOOKS - Textures\Icons\arrowiv.dds - I'M HERE TO EAT ASS AND KICK BUBBLEGUM. - - 0.1 - 0.1 - 0.1 - - 30 - 1 - Models\Ammo\Starcore_Arrow_Missile_Large.mwm - Ammo - 8 - - - - - + + + + + + + + AmmoMagazine + ImpulseTorch_Magazine + + ImpulseTorch Fuel Cartridge + Textures\GUI\Icons\ImpulseTorch_Magazine.dds + + 0.25 + 0.2 + 0.2 + + 1000 + 10 + Models\Ammos\ImpulseTorch_Magazine.mwm + 15 + + + + + + AmmoMagazine + FlakShotgun_Magazine + + Shotgun Shell + Textures\GUI\Icons\ImpulseTorch_Magazine.dds + + 0.25 + 0.2 + 0.2 + + 1000 + 10 + Models\Ammos\LBX5_AmmoShellShotgun.mwm + 1 + + + + + + + + + + + + + AmmoMagazine + DragonyosBomber + + Dragonyos Torpedo Bomber + Textures\GUI\Icons\Manticore.dds + + 1 + 2 + 0.5 + + 300 + 500 + Models\Drones\Manticore.mwm + Ammo + 1 + + + 6 + 12 + 3 + 24 + true + + + + + + AmmoMagazine + HarcosFighter + + Harcos Laser Fighter + Textures\GUI\Icons\Fighter_drone.dds + + 1 + 2 + 0.5 + + 300 + 500 + Models\Drones\Fighter_drone.mwm + Ammo + 1 + + + 6 + 12 + 3 + 24 + true + + + + + + AmmoMagazine + TesterLauncherStage + + Tester Sentry + Textures\GUI\Icons\Artillery_drone.dds + + 1 + 2 + 0.5 + + 350 + 500 + Models\Drones\Artillery_drone.mwm + Ammo + 1 + + + 1 + 12 + 1 + 12 + true + + + + + AmmoMagazine + FegyverLauncherStage + + Fegyver Light Sentry + Textures\GUI\Icons\Artillery_drone.dds + + 1 + 2 + 0.5 + + 350 + 500 + Models\Drones\Artillery_drone.mwm + Ammo + 1 + + + 1 + 12 + 1 + 12 + true + + + + + + AmmoMagazine + AgyuLauncherStage + + Agyu Heavy Sentry + Textures\GUI\Icons\Artillery_drone.dds + + 1 + 2 + 0.5 + + 290 + 500 + Models\Drones\Artillery_drone.mwm + Ammo + 1 + + + 6 + 12 + 3 + 24 + true + + + + + + AmmoMagazine + OrszemLauncherStage + + Orszem Sentinel + Textures\GUI\Icons\Artillery_drone.dds + + 1 + 2 + 0.5 + + 290 + 500 + Models\Drones\Artillery_drone.mwm + Ammo + 1 + + + 6 + 12 + 3 + 24 + true + + + + + + + + + + + + + + + + + + + + + AmmoMagazine + MACmag + + MACammo + Textures\Icons\srm8l.dds + pewpewpew + + 0.25 + 0.2 + 0.2 + + 103.5 + 138 + Models\Ammo\Starcore_LRM_Missile_Large.mwm + Ammo + 1 + + + + + + + + AmmoMagazine + SubterraneanSun + + no one reads this + + pain + + 0.1 + 0.1 + 0.1 + + 150 + 1 + + Ammo + 1 + + + + + + + + + + + AmmoMagazine + ScathisProj1 + + Scathis Electric Bullet + + pain + + 0.1 + 0.1 + 0.1 + + 150 + 1 + + Ammo + 32 + + + + + + + + + + + AmmoMagazine + ARCSTRIKEMAG + + ArcStrike Long Range Anti-Shield Missile + Textures\Icons\arrowiv.dds + I'M HERE TO EAT ASS AND KICK BUBBLEGUM. + + 0.1 + 0.1 + 0.1 + + 30 + 1 + Models\Ammo\Starcore_Arrow_Missile_Large.mwm + Ammo + 4 + + + + + + AmmoMagazine + SM3MAG + + SM-3 Counter Missile + Textures\Icons\arrowiv.dds + I'M HERE TO EAT ASS AND KICK BUBBLEGUM. + + 0.1 + 0.1 + 0.1 + + 30 + 1 + Models\Ammo\Starcore_Arrow_Missile_Large.mwm + Ammo + 8 + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_Ammos.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_Ammos.sbc index 1db1b75eb..aaf217c43 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_Ammos.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_Ammos.sbc @@ -1,56 +1,56 @@ - - - - - - - - - AmmoDefinition - K_HSR_Fake - - - 300 - 0 - 2 - 3.2 - RifleBullet - - - 0.05 - 1 - 30 - 24 - true - 60 - - - - - - - - AmmoDefinition - K_HSR_FakeMissile - - - 200 - 0 - 0 - true - 700 - Missile - - - 45 - 1 - Models\Weapons\Projectile_Missile.mwm - 600 - 100 - false - 0 - - - - + + + + + + + + + AmmoDefinition + K_HSR_Fake + + + 300 + 0 + 2 + 3.2 + RifleBullet + + + 0.05 + 1 + 30 + 24 + true + 60 + + + + + + + + AmmoDefinition + K_HSR_FakeMissile + + + 200 + 0 + 0 + true + 700 + Missile + + + 45 + 1 + Models\Weapons\Projectile_Missile.mwm + 600 + 100 + false + 0 + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc index dc9ae5a54..ecb90ec11 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc @@ -398,7 +398,7 @@ - + @@ -407,19 +407,13 @@ [SOL] Nariman NanoDart Turret - Dual Ammo, Dual Purpose Turret - Smart NanoDart: + Guided Turret [Range: 5km] [Velocity: 2.5km/s] [Damage: Energy] [Homing and AMS] - Concussion Bolt: - [Range: 3.5km] - [Velocity: 600m/s] - [Damage: Energy] - [Homing and AOE] - Textures\GUI\Icons\Ceis.dds + Textures\GUI\Icons\SA_GaussAP_Large.dds Large false TriangleMesh @@ -440,7 +434,7 @@ - + @@ -484,6 +478,170 @@ + + + + + ConveyorSorter + Meson5_Turret + + [SOL] Auger Series 5 Meson Gun + + Internal Turret + Heavy Meson Gun: + [Range: 5km] + [Velocity: 5km/s] + [Damage: Kinetic] + + Textures\Icons\SA_Auger_S5.dds + Large + false + TriangleMesh + + + Models\SA_Auger_S5.mwm + true + + + + + + + + + + + + + + + + + + + + + + + + + + OutsideVoxel + 0.2 + 0 + + + OutsideVoxel + 0.2 + 0.01 + + + Meson5_Turret + Z + Y + Light + 30 + 1 + 213 + false + ParticleWeapExpl + Defense + -5 + 100 + -180 + 180 + 0.0001 + 0.0001 + false + 3500 + 0.0001 + 2 + Default + + + + + + ConveyorSorter + Meson3_Turret + + [SOL] Auger Series 3 Meson Gun + + Internal Turret + Medium Meson Gun: + [Range: 3km] + [Velocity: 5km/s] + [Damage: Kinetic] + + Textures\Icons\SA_Auger_S3.dds + Large + false + TriangleMesh + + + Models\SA_Auger_S3.mwm + true + + + + + + + + + + + + + + + + + + + + + + + + + + OutsideVoxel + 0.2 + 0 + + + OutsideVoxel + 0.2 + 0.01 + + + Meson3_Turret + Z + Y + Light + 120 + 1 + 213 + false + ParticleWeapExpl + Defense + -5 + 100 + -180 + 180 + 0.0001 + 0.0001 + false + 3500 + 0.0001 + 2 + Default + + + + + @@ -561,6 +719,255 @@ + + + + ConveyorSorter + PSP + + [SOL] Point Singularity Projector + + ☢ CAUTION!! ☢ + Fires a singularity that + travels for [3km]. + At the end, an artificial + sun is spawned, with a + [2km pull EWAR field], + lasting 1 minute. + + Anything pulled to the center + will experience + Ultimate Nuclear Fusion™ + 2 minute reload. + + Textures\GUI\HexCannon.png + Large + TriangleMesh + + +
+ Models\Cubes\Large\HexCannon.mwm + + + + + + + + + + + + + + + + + + + + + + 1 + PSP + Z + Y + 600 + Heavy + + 0.960 + Defense + 213 + 0.2 + 1800 + + + + + + + ConveyorSorter + ScathisM77 + + [SOL] Scathis M-77 + + Burst AMS Turret + [Range: 5.5km] + [Velocity: 1km/s] + [Damage: Kinetic] + Adjustable RoF + 8 second reload + + Textures\GUI\Icons\Cubes\Metal_Storm.dds + Large + TriangleMesh + + + Models\Cubes\Large\Metal_Storm.mwm + + + + + + + + + + + + + + + + + + + + + + OutsideVoxel + 0.2 + 0 + + + OutsideVoxel + 0.2 + 0.01 + + + ScathisM77 + Z + Y + Light + 22 + Textures\GUI\Screens\AWP_TurretOverlay_Universal.dds + + 1.056 + Damage_WeapExpl_Damaged + ParticleWeapExpl + Defense + -9 + 85 + -180 + 180 + false + 800 + 0.002 + 0.003 + Default + 0.1 + 1.0 + BlockDestroyedExplosion_Large + WepSmallWarheadExpl + 280 + false + 1 + + + + + + + + + + + + + + ConveyorSorter + Dreadnaught_Beacon + + [SOL] Beacon Dreadnaught + Reinforcement Beacon that calls in a Dreadnaught Heavy Cruiser with Two Z-95 Starfighter Escorts + Textures\Logo_Imperial.dds + Large + TriangleMesh + + + Models\Large_Reinforcement_Beacon.mwm + + + + + + + + + + + + + + + + + Dreadnaught_Beacon_Block + Z + Y + Light + Extended + 30 + + 0.384 + 2 + 6 + Default + 225 + + + + + ConveyorSorter + Nebulon_Beacon + + [SOL] Beacon Nebulon-B + Reinforcement Beacon that calls in a Nebulon-B Frigate with Two Y-Wing Bomber Escorts + Textures\Logo_Rebel.dds + Large + TriangleMesh + + + Models\Large_Reinforcement_Beacon.mwm + + + + + + + + + + + + + + + + + Nebulon_Beacon_Block + Z + Y + Light + Extended + 30 + + 0.384 + 2 + 6 + Default + 225 + + + + + + + + + + + @@ -575,7 +982,20 @@ [SOL] Sentry Hangar Bay Textures\GUI\Icons\Hangar.dds - These drones can be given orders via the hangar's ActionFriend/ActionEnemy options. + + 2 Minute Sentry Reload + 1 km Deployment Distance + + [Fegyver Medium Sentry] + 6km Railgun + 20 Shots + [Agyu Heavy Sentry] + 8km Coilgun + 4 Shots + [Orszem Sentinel] + 1.5km EMP Laser + + These drones can be given orders via the hangar's ActionFriend/ActionEnemy options. Large TriangleMesh @@ -627,7 +1047,8 @@ [SOL] Strikecraft Hangar Bay Textures\GUI\Icons\Hangar.dds - These drones can be given orders via the hangar's ActionFriend/ActionEnemy options. + + These drones can be given orders via the hangar's ActionFriend/ActionEnemy options. Large TriangleMesh @@ -683,6 +1104,79 @@ + + + + + + ConveyorSorter + WCTest_Hangar + + [SOL] Test Hangar Bay + Textures\GUI\Icons\Hangar.dds + These drones can be given orders via the hangar's ActionFriend/ActionEnemy options. + Large + TriangleMesh + + + Models\Hangar.mwm + + + + + + + + + + + + + + + + + + + + + TestHangar + Z + Z + Y + Light + 30 + Default + Defense + 1 + Damage_WeapExpl_Damaged + ParticleWeapExpl + BlockDestroyedExplosion_Large + WepSmallWarheadExpl + 500 + + Weapons + + + + + + + + + + + + + + + + + + + + + ConveyorSorter diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ArcStrike_Launcher_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ArcStrike_Launcher_Ammo.cs index fb6deaf94..9dc821587 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ArcStrike_Launcher_Ammo.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ArcStrike_Launcher_Ammo.cs @@ -313,11 +313,11 @@ partial class Parts { Ammo = new ParticleDef { - Name = "", //ShipWelderArc + Name = "ARROWTRAIL", //ShipWelderArc Offset = Vector(x: 0, y: 0, z: -0.21f), Extras = new ParticleOptionDef { - Scale = 1f, + Scale = 0.3f, }, }, Hit = new ParticleDef @@ -699,7 +699,7 @@ partial class Parts Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Color = Color(red: 3, green: 0.5f, blue: 0.5f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { @@ -715,7 +715,7 @@ partial class Parts Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Color = Color(red: 3, green: 0.5f, blue: 0.5f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { @@ -737,7 +737,7 @@ partial class Parts Enable = true, Length = 8f, Width = 2f, - Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + Color = Color(red: 40f, green: 15, blue: 15f, alpha: 1), 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.. @@ -769,7 +769,7 @@ partial class Parts }, TextureMode = Normal, DecayTime = 90, - Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Color = Color(red: 40f, green: 10f, blue: 10f, alpha: 1), Back = false, CustomWidth = 0.2f, UseWidthVariance = false, @@ -1081,7 +1081,7 @@ partial class Parts Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Color = Color(red: 3, green: 0.5f, blue: 0.5f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { @@ -1097,7 +1097,7 @@ partial class Parts Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Color = Color(red: 3, green: 0.5f, blue: 0.5f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { @@ -1118,7 +1118,7 @@ partial class Parts Enable = true, Length = 8f, Width = 1f, - Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Color = Color(red: 40f, green: 10f, blue: 10f, alpha: 1), 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.. @@ -1194,7 +1194,7 @@ partial class Parts AmmoRound = "ArcStrike Torp Frag", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. HybridRound = false, // Use both a physical ammo magazine and energy per shot. EnergyCost = 0.01f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. - BaseDamage = 12500f, // Direct damage; one steel plate is worth 100. + BaseDamage = 45000f, // Direct damage; one steel plate is worth 100. Mass = 0f, // In kilograms; how much force the impact will apply to the target. Health = 360, // 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. @@ -1459,7 +1459,7 @@ partial class Parts Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Color = Color(red: 3, green: 0.5f, blue: 0.5f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { @@ -1474,7 +1474,7 @@ partial class Parts { Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Color = Color(red: 3, green: 0.5f, blue: 0.5f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S3.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S3.cs new file mode 100644 index 000000000..35ac5da2f --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S3.cs @@ -0,0 +1,193 @@ +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts { + partial class Parts { + // Don't edit above this line + WeaponDefinition Auger3_Internal_Turret => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "Meson3_Turret", + SpinPartId = "None", // For weapons with a spinning barrel such as Gatling Guns. + MuzzlePartId = "Meson3_Elevation", // The subpart where your muzzle empties are located. + AzimuthPartId = "Meson3_Azimuth", + ElevationPartId = "Meson3_Elevation", + DurabilityMod = 0.5f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + }, + Muzzles = new[] { + "Muzzle_Meson3", + }, + Ejector = "", // Optional; empty from which to eject "shells" if specified. + Scope = "", // Where line of sight checks are performed from. Must be clear of block collision. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Grids, Neutrals, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals + }, + SubSystems = new[] { + Power, Thrust, Offense, Utility, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = true, // Don't fire at non-smart projectiles. + 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 = 3000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. + TopTargets = 8, // Maximum number of targets to randomize between; 0 = unlimited. + TopBlocks = 16, // Maximum number of blocks to randomize between; 0 = unlimited. + StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. + }, + HardPoint = new HardPointDef + { + PartName = "AugerS3", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 0.25f, // Projectile inaccuracy in degrees. + AimingTolerance = 5f, // How many degrees off target a turret can fire at. 0 - 180 firing angle. + AimLeadingPrediction = Advanced, // 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. + AddToleranceToTracking = false, // 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 + { + RateOfFire = true, // Enables terminal slider for changing rate of fire. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + }, + Ai = new AiDef + { + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. + TurretController = true, // Whether this weapon can physically control the turret's movement. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + }, + HardWare = new HardwareDef + { + RotateRate = 0.01f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0.01f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = -180, + MaxAzimuth = 180, + MinElevation = -180, + MaxElevation = 180, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 0, // Default resting elevation + InventorySize = 0.639f, // Inventory capacity in kL. + IdlePower = 100f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 4), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + DisableLosCheck = true, // Do not perform LOS checks at all... not advised for self tracking weapons + NoVoxelLosCheck = true, // If set to true this ignores voxels for LOS checking.. which means weapons will fire at targets behind voxels. However, this can save cpu in some situations, use with caution. + Debug = false, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 1200, // Set this to 3600 for beam weapons. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 180, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 20, // Number of physical magazines to consume on reload. + DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 80, // Heat generated per shot. + MaxHeat = 2000, // Max heat before weapon enters cooldown (70% of max heat). + Cooldown = .5f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 + HeatSinkRate = 200, // Amount of heat lost per second. + DegradeRof = false, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat). + ShotsInBurst = 12, // 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. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = false, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "", // Audio for warmup effect. + FiringSound = "Auger3Fire", // Audio for firing. + FiringSoundPerShot = true, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "Auger3Reload", + NoAmmoSound = "", + HardPointRotationSound = "AugerGears", // Audio played when turret is moving. + BarrelRotationSound = "", + FireSoundEndDelay = 0, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "FieldShield", // SubtypeId of muzzle particle effect. + Color = Color(red: 0.1f, green: 0.2f, blue: 0, alpha: 0.1f), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + + Extras = new ParticleOptionDef + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, // Whether to end a looping effect instantly when firing stops. + MaxDistance = 3000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! + MaxDuration = 6, // Deprecated. + Scale = 1f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "", + Color = Color(red: 0.1f, green: 0.1f, blue: 0.1f, alpha: 0.1f), + Offset = Vector(x: 0, y: 0, z: 0), + + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 150, + MaxDuration = 6, + Scale = 1f, + }, + }, + }, + }, + Ammos = new[] { + Meson_Medium_Round, //Nariman_EWAR_Round, Must list all primary, shrapnel, and pattern ammos. + }, + //Animations = Nariman_Dart_Animation, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S3_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S3_Ammo.cs new file mode 100644 index 000000000..0ac6357f5 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S3_Ammo.cs @@ -0,0 +1,425 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AmmoDef Meson_Medium_Round => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Medium Meson Pulse", // 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.34283f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 3500f, // Direct damage; one steel plate is worth 100. + Mass = 40f, // 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 = 12, // 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 + + 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 = "", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 15, // 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. + Offset = 0f, // Offsets the fragment spawn by this amount, in meters (positive forward, negative for backwards). + 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 + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = false, // Enables TimedSpawns mechanism + Interval = 0, // Time between spawning fragments, in ticks + StartTime = 0, // 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 + ParentDies = true, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 5, // Number of spawns in each group + GroupDelay = 120, // 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 = Fragment, // Select when to activate this pattern, options: Inactive, 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 = 1, // 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 = -1f, // 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 = 1.05f, // Multiplier for damage against light armor. + Heavy = 1.25f, // Multiplier for damage against heavy armor. + NonArmor = 0.75f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 2.4f, // 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 = Energy, // 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 = 3f, // Meters + Damage = 5f, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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 + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3f, // Meters + Damage = 4500f, + Depth = 1f, + MaxAbsorb = 0f, + Falloff = Linear, //.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 = 0.25f, + CustomParticle = "Exp_Spark_large", // Particle SubtypeID, from your Particle SBC + CustomSound = "MissileHitRandom", // SubtypeID from your Audio SBC, not a filename + Shape = Diamond, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Anchor, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 1000f, + 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). + 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 projectile model if it has one. + 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 = None, // 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 = 900, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). 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 = 5000, // voxel phasing if you go above 5100 + MaxTrajectory = 3000f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // 0 is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (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. + Smarts = new SmartsDef + { + SteeringLimit = 30, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0.5f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 2f, // controls how responsive tracking is. + MaxLateralThrust = 0.15, // 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. + 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..) + }, + 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 = "\\Models\\Ammo\\Expanse-Torpedo", + 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 = "ARROWNUKE", + ApplyToShield = true, + + Color = Color(red: 3, green: 1f, blue: 1.9f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 10, + Scale = 0.4f, + 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.25f, end: 3f), // multiply the color by random values within range. + WidthVariance = Random(start: 0.25f, end: 1f), // adds random value to default width (negatives shrinks width) + Tracer = new TracerBaseDef + { + Enable = true, + Length = 2f, // + Width = 0.15f, // + Color = Color(red: 40f, green: 40f, blue: 25f, 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: 1f, green: 2f, blue: 2.5f, alpha: 1f), + WidthMultiplier = 0.25f, + 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 = 10, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 4f, green: 4f, blue: 2.5f, alpha: 1), + Back = false, + CustomWidth = 0.25f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 2,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "DRONEFLYBY", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "PPCImpact", + + ShieldHitSound = "AugerHitA", + 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 = 0.5f, // 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 + }; + + } +} + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S5.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S5.cs new file mode 100644 index 000000000..028ed478f --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S5.cs @@ -0,0 +1,196 @@ +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts { + partial class Parts { + // Don't edit above this line + WeaponDefinition Auger5_Internal_Turret => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "Meson5_Turret", + SpinPartId = "None", // For weapons with a spinning barrel such as Gatling Guns. + MuzzlePartId = "Meson5_Elevation", // The subpart where your muzzle empties are located. + AzimuthPartId = "Meson5_Azimuth", + ElevationPartId = "Meson5_Elevation", + DurabilityMod = 0.5f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + }, + Muzzles = new[] { + "Muzzle_Meson5", + }, + Ejector = "", // Optional; empty from which to eject "shells" if specified. + Scope = "Scope_Meson5", // 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 + }, + SubSystems = new[] { + Power, Thrust, Offense, Utility, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = true, // Don't fire at non-smart projectiles. + 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 = 5000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. + TopTargets = 8, // Maximum number of targets to randomize between; 0 = unlimited. + TopBlocks = 16, // Maximum number of blocks to randomize between; 0 = unlimited. + StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. + }, + HardPoint = new HardPointDef + { + PartName = "AugerS5", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 0.25f, // Projectile inaccuracy in degrees. + AimingTolerance = 5f, // How many degrees off target a turret can fire at. 0 - 180 firing angle. + AimLeadingPrediction = Advanced, // 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. + AddToleranceToTracking = false, // 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 + { + RateOfFire = false, // Enables terminal slider for changing rate of fire. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + }, + Ai = new AiDef + { + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. + TurretController = true, // Whether this weapon can physically control the turret's movement. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + }, + HardWare = new HardwareDef + { + RotateRate = 0.005f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0.005f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = -180, + MaxAzimuth = 180, + MinElevation = -180, + MaxElevation = 180, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 0, // Default resting elevation + InventorySize = 0.639f, // Inventory capacity in kL. + IdlePower = 200f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 4), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + DisableLosCheck = true, // Do not perform LOS checks at all... not advised for self tracking weapons + NoVoxelLosCheck = true, // If set to true this ignores voxels for LOS checking.. which means weapons will fire at targets behind voxels. However, this can save cpu in some situations, use with caution. + Debug = false, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 1800, // Set this to 3600 for beam weapons. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 420, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 12, // Number of physical magazines to consume on reload. + DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 10, // Heat generated per shot. + MaxHeat = 2000, // Max heat before weapon enters cooldown (70% of max heat). + Cooldown = .5f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 + HeatSinkRate = 200, // Amount of heat lost per second. + DegradeRof = false, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat). + ShotsInBurst = 12, // 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. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = false, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "Auger5Fire", // Audio for warmup effect. + FiringSound = "AugerHitA", // Audio for firing. + FiringSoundPerShot = true, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "Auger5Reload", + NoAmmoSound = "", + HardPointRotationSound = "AugerGears", // Audio played when turret is moving. + BarrelRotationSound = "", + FireSoundEndDelay = 10, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "FieldShield", // SubtypeId of muzzle particle effect. + Color = Color(red: 0.1f, green: 0.2f, blue: 0, alpha: 0.1f), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + + Extras = new ParticleOptionDef + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, // Whether to end a looping effect instantly when firing stops. + MaxDistance = 5000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! + MaxDuration = 6, // Deprecated. + Scale = 1f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "SolHyp_MAC_Muzzleflash", // SubtypeId of muzzle particle effect. + Color = Color(red: 15, green: 2, blue: 1, alpha: 0.8f), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0.22, z: -1.5), // Offsets the effect from the muzzle empty. + + Extras = new ParticleOptionDef + { + Loop = false, // Deprecated, set this in particle sbc. + Restart = true, // Whether to end the previous effect early and spawn a new one. + MaxDistance = 5000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! + MaxDuration = 0, // How many ticks the effect should be ended after, if it's still running. + Scale = 1f, // Scale of effect. + }, + }, + }, + }, + Ammos = new[] { + Meson_Heavy_Round, + + //Must list all primary, shrapnel, and pattern ammos. + }, + //Animations = Nariman_Dart_Animation, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S5_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S5_Ammo.cs new file mode 100644 index 000000000..c5484ad75 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Auger_S5_Ammo.cs @@ -0,0 +1,433 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AmmoDef Meson_Heavy_Round => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Heavy Meson Bolter", // 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.12631f, // 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 = 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 = 18, // 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 = "", // 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 = false, // 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 = Weapon, // 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 = 0.95f, // Multiplier for damage against light armor. + Heavy = 0.85f, // Multiplier for damage against heavy armor. + NonArmor = 1.45f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 4f, // 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 = 1300f, + 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 = "MyRailRoundHit", // 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 = None, // 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 = 900, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). 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 = 5000, // voxel phasing if you go above 5100 + MaxTrajectory = 5000f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // 0 is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (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. + Smarts = new SmartsDef + { + SteeringLimit = 30, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0.5f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 2f, // controls how responsive tracking is. + MaxLateralThrust = 0.15, // 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. + 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..) + }, + 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 = "\\Models\\Ammo\\Expanse-Torpedo", + 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.25f, + }, + }, + Hit = new ParticleDef + { + Name = "",//ARROWFLAREDEATH ARROWNUKE + ApplyToShield = true, + + Color = Color(red: 3, green: 1f, blue: 1.9f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 10, + Scale = 0.65f, + 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.25f, end: 5f), // multiply the color by random values within range. + WidthVariance = Random(start: 0.15f, end: 1f), // adds random value to default width (negatives shrinks width) + Tracer = new TracerBaseDef + { + Enable = true, + Length = 2f, // + Width = 0.15f, // + Color = Color(red: 4f, green: 4f, blue: 2.5f, 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: 1f, green: 2f, blue: 2.5f, alpha: 1f), + WidthMultiplier = 0.15f, + 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 = 5, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 4f, green: 4f, blue: 2.5f, alpha: 1), + Back = false, + CustomWidth = 0.25f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 2,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "Auger5Fire", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "", + ShieldHitSound = "AugerHitA", + 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 + }; + + + + + + + } +} + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Dreadnaught_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Dreadnaught_Ammo.cs new file mode 100644 index 000000000..e3cb1503c --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Dreadnaught_Ammo.cs @@ -0,0 +1,2623 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AmmoDef Launch_Dummy_Dreadnaught => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Launch_Dummy_Dreadnaught", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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. + 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "Dreadnaught_Launch", // 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. + Reverse = false, // Spawn projectiles backward instead of forward. + DropVelocity = false, // fragments will not inherit velocity from parent. + Offset = -15f, // 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 1, // 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 = 0f, //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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = 1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 1f, + 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 (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = true, + NoSound = true, + ParticleScale = 1, + CustomParticle = "", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 300, // 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 = 1, // voxel phasing if you go above 5100 + MaxTrajectory = 1000000f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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 = 0, // 0 means no limit, something to do due with a thing called delta and something called v. + }, + 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 = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 0.001f, // + Width = 0.001f, // + Color = Color(red: 1, green: 1, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 Dreadnaught => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Dreadnaught_Launch", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // In kilograms; how much force the impact will apply to the target. + Health = 10000, // 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 = 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 = 1, // 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = true, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = true, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "Light_Turbolaser_Dreadnaught", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 8, // 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 + MaxSpawns = 1440, // Max number of fragment children to spawn + Proximity = 2500, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 2, // Number of spawns in each group + GroupDelay = 420, // Delay between each group. + }, + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "Light_Turbolaser_Dreadnaught", + "Light_Turbolaser_Dreadnaught", + + "Light_Turbolaser_2_Dreadnaught", + "Light_Turbolaser_2_Dreadnaught", + + "Light_Turbolaser_Dreadnaught", + "Light_Turbolaser_Dreadnaught", + + "Light_Turbolaser_2_Dreadnaught", + "Light_Turbolaser_2_Dreadnaught", + + "Light_Turboion_Dreadnaught", + "Light_Turboion_Dreadnaught", + }, + Mode = Fragment, // 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 = true, // Skip the Ammo itself, in the list + PatternSteps = 1, // 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 = 0.5, // 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 //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = 1f, // Multiplier for damage against large grids. + Small = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Kinetic, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 5f, // Radius of AOE effect, in meters. + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "", // Particle SubtypeID, from your Particle SBC + CustomSound = "Dreadnaught_Death", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 54000, // 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 = 12.5f, // Acceleration in Meters Per Second. Projectile starts on tick 0 at its parents (weapon/other projectiles) travel velocity. + DesiredSpeed = 65, // voxel phasing if you go above 5100 + MaxTrajectory = 1000000f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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. + Smarts = new SmartsDef + { + SteeringLimit = 30f, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 1f, // controls how responsive tracking is, recommended value 3-5. + MaxLateralThrust = 0, // controls how sharp the projectile may turn, this is the cheaper but less realistic version of SteeringLimit, cost of 2 on a scale of 1-5, 0 being basic smart. + NavAcceleration = -1f, // helps influence how the projectile steers, 0 defaults to 1/2 Aggressiveness value or 0 if its 0, a value less than 0 disables this feature. + TrackingDelay = 30, // Measured in Shape diameter units traveled. + AccelClearance = false, // Setting this to true will prevent smart acceleration until it is clear of the grid and tracking delay has been met (free fall). + MaxChaseTime = 18000, // 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 = true, // Utilize obstacle avoidance for drones/smarts + FutureIntersectionRange = 250, // Range in front of the projectile at which it will detect obstacle. If set to zero it defaults to DesiredSpeed + Shape Diameter + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // 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..) + OffsetMinRange = 0, // The range from target at which offsets are no longer active + FocusOnly = false, // only target the constructs Ai's focus target + FocusEviction = false, // If FocusOnly and this to true will force smarts to lose target when there is no focus target + ScanRange = 0, // 0 disables projectile screening, the max range that this projectile will be seen at by defending grids (adds this projectile to defenders lookup database). + NoSteering = false, // this disables target follow and instead travel straight ahead (but will respect offsets). + MinTurnSpeed = 50, // set this to a reasonable value to avoid projectiles from spinning in place or being too aggressive turing at slow speeds + NoTargetApproach = false, // If true approaches can begin prior to the projectile ever having had a target. + AltNavigation = false, // If true this will swap the default navigation algorithm from ProNav to ZeroEffort Miss. Zero effort is more direct/precise but less cinematic + }, + Approaches = new[] // These approaches move forward and backward in order, once the end condition of the last one is reached it will revert to default behavior. Cost level of 4+, or 5+ if used with steering. + { + /** What are approaches? How do they interact with other config variables? What problems do they solve? + * + * At the most basic level an "approach" is a collection of variables that allow you, the mod author, to tell the projectile how to "approach" + * a desired "destination" (aka position) when certain conditions are met and what to then do once it has arrived. I say "destination/position" and not "target" on + * purpose, while the desired destination may be the "target" it often is not. Keep in mind that approaches merely "influence" the projectiles path to + * a desired position, they do not absolutely determine it. Instead you are telling the projectile where you want it to go and through which + * trajectory it should travel to get there, but ultimately you are setting the desired flight path, you are not the pilot. + * + * Approaches are an extension of Smarts and these variables are applied ontop of, not in place of, all other config variables. This means anything + * you set in other parts of the config will still influence approaches and sometimes in unexpected ways (i.e. trackingDelay or not finding a target + * can delay when an approaches begins). In a few cases approaches have variables that override/alter/extend how non-approach variables behave. + * + * Approaches will not alter the path of a projectile until its start condition is met(and optionally maintained). Prior to "starting" the + * projectile will behave as it would have had there was no approach defined.This is also the case once all approaches have completed. + * + * Approaches require you to think about projectile navigation in an abstract manner.This is a good time to restate that you are merely "influencing" the + * projectile, you are not controlling/piloting it.The battlefield is dynamic, always changing, you are setting objectives and providing rules to follow + * if certain conditions are met, nothing more. You must also remember that although you are setting variables like positionB, positionC, elevation, lead + * upDirection, forwardDirection etc... these variables merely "influence" the projectiles heading relative to its current position and velocity, they do not + * represent its actual source nor destination positions, directions nor elevation. + * + * Said another way, imagine your projectile half way between its launcher and the "target" and it is at this time that your approach "starts". If you were + * to then draw this scene out visually, you would draw three spheres representing positions which we will call "projectile current position (aka positionA)", "positionB" + * and "positionC", where you only get to define the latter two.You then define two directions, a forward direction and an up direction.You can + * also optionally set a desired "elevation" relative to the up direction and a desired "lead" relative to the forward direction, applied to the positionB and/or + * positionC. Now draw a 1 and 2 that represents the modified positionB and positionC positions (taking into account elevation, lead, and rotations). Your + * projectiles heading will by default attempt to steer to modified C position(2), or alternatively to modified B(1) if you set TrajectoryRelativeToB to true. */ + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToNext, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = DistanceFromTarget, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = HealthRemaining, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 2000, + Start2Value = 0, + End1Value = 9998, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = DoNothing, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardRelativeToShooter, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToShooter, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = PositionA, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = Target, + Elevation = Nothing, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = true, // Updated the position overtime. + AdjustPositionC = true, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 0, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 0, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 0, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = false, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 0.85f, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = true, // Orbit the Position + OrbitRadius = 1000, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = true, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToNext, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = HealthRemaining, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = HealthRemaining, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 9998, + Start2Value = 0, + End1Value = 7000, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = DoNothing, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardRelativeToShooter, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToShooter, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = PositionA, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = Target, + Elevation = Nothing, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = true, // Updated the position overtime. + AdjustPositionC = true, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 0, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 0, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 0, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = false, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 1, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = true, // Orbit the Position + OrbitRadius = 1250, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = true, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "Dreadnaught_Stage_01", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToNext, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = HealthRemaining, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = HealthRemaining, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 7000, + Start2Value = 0, + End1Value = 4000, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = DoNothing, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardRelativeToShooter, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToShooter, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = PositionA, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = Target, + Elevation = Nothing, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = true, // Updated the position overtime. + AdjustPositionC = true, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 0, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 0, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 0, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = false, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 0.75, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = true, // Orbit the Position + OrbitRadius = 1150, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = true, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "Dreadnaught_Engine_Damage_01", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "Dreadnaught_Stage_02", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToNext, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = HealthRemaining, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = HealthRemaining, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 4000, + Start2Value = 0, + End1Value = 100, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = EndProjectile, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardRelativeToShooter, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToShooter, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = PositionA, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = Target, + Elevation = Nothing, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = true, // Updated the position overtime. + AdjustPositionC = true, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 0, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 0, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 0, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = false, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 0.5, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = true, // Orbit the Position + OrbitRadius = 1500, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = true, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "Dreadnaught_Engine_Damage_02", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "Dreadnaught_Stage_03", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + }, + Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues. + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + OnHit = new OnHitDef { + } + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Cubes\\large\\Dreadnaught_Projectile.mwm", // 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 = "Dreadnaught_Engine", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 0.01f, // + Width = 0.01f, // + Color = Color(red: 30, green: 2, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "Ship_Engine", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "Hyperspace_Exit", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 Light_Turbolaser_Dreadnaught => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Light_Turbolaser_Dreadnaught", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "MagicFragment", // AmmoRound field of the ammo to spawn. + Fragments = 100, // Number of projectiles to spawn. + Degrees = 15, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + 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 + 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 = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 5, // Number of spawns in each group + GroupDelay = 120, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = 1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3f, // Radius of AOE effect, in meters. + Damage = 50000f, + Depth = 3f, // 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 (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "", // Particle SubtypeID, from your Particle SBC + CustomSound = "Turbolaser_Impact", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 2500f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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 = 0, // 0 means no limit, something to do due with a thing called delta and something called v. + }, + 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 = "Green_Turbo_Light", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 18f, // + Width = 0.5f, // + Color = Color(red: 3, green: 30, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "Light_Turbolaser_Shot", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 Light_Turbolaser_2_Dreadnaught => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Light_Turbolaser_2_Dreadnaught", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "MagicFragment", // AmmoRound field of the ammo to spawn. + Fragments = 100, // Number of projectiles to spawn. + Degrees = 15, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + AdvOffset = Vector(x: 20, y: 7, z: 6f), // 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + 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 + 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 = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 5, // Number of spawns in each group + GroupDelay = 120, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = 1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3f, // Radius of AOE effect, in meters. + Damage = 50000f, + Depth = 3f, // 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 (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "", // Particle SubtypeID, from your Particle SBC + CustomSound = "Turbolaser_Impact", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 2500f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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 = 0, // 0 means no limit, something to do due with a thing called delta and something called v. + }, + 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 = "Green_Turbo_Light", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 18f, // + Width = 0.5f, // + Color = Color(red: 3, green: 30, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "Light_Turbolaser_Shot", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 Light_Turboion_Dreadnaught => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Light_Turboion_Dreadnaught", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "MagicFragment", // AmmoRound field of the ammo to spawn. + Fragments = 100, // Number of projectiles to spawn. + Degrees = 15, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + 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 + 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 = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 5, // Number of spawns in each group + GroupDelay = 120, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = 1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3f, // Radius of AOE effect, in meters. + Damage = 50000f, + Depth = 3f, // 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 (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "Ion_impact", // Particle SubtypeID, from your Particle SBC + CustomSound = "Turboion_Impact", // SubtypeID from your Audio SBC, not a filename + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + }, + Ewar = new EwarDef + { + Enable = true, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Anchor, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Effect, // Effect , Field + Strength = 1000000f, + Radius = 5f, // Meters + Duration = 900, // In Ticks + StackDuration = false, // Combined Durations + Depletable = true, + MaxStacks = 1, // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 2500f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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 = 0, // 0 means no limit, something to do due with a thing called delta and something called v. + }, + 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 = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 18f, // + Width = 2f, // + Color = Color(red: 3, green: 26, blue: 30f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "Light_Turboion_Shot", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 + }; + } +} + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Dreadnaught_Weapon.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Dreadnaught_Weapon.cs new file mode 100644 index 000000000..c9eadf841 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Dreadnaught_Weapon.cs @@ -0,0 +1,237 @@ +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.TargetingDef; +using static Scripts.Structure.WeaponDefinition.TargetingDef.CommunicationDef.Comms; +using static Scripts.Structure.WeaponDefinition.TargetingDef.CommunicationDef.SecurityMode; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts { + partial class Parts { + // Don't edit above this line + WeaponDefinition Dreadnaught_Beacon => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "Dreadnaught_Beacon", // Block Subtypeid. Your Cubeblocks contain this information + SpinPartId = "None", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. + MuzzlePartId = "None", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. + AzimuthPartId = "None", // Your Rotating Subpart, the bit that moves sideways. + ElevationPartId = "None",// Your Elevating Subpart, that bit that moves up. + DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + + }, + Muzzles = new[] { + "muzzle_Dreadnaught", // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A + + }, + Ejector = "", // Optional; empty from which to eject "shells" if specified. + Scope = "", // Where line of sight checks are performed from. Must be clear of block collision. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Grids, Neutrals, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals, ScanRoid, ScanPlanet, ScanFriendlyCharacter, ScanFriendlyGrid, ScanEnemyCharacter, ScanEnemyGrid, ScanNeutralCharacter, ScanNeutralGrid, ScanUnOwnedGrid, ScanOwnersGrid + }, + SubSystems = new[] { + Thrust, Offense, Utility, Power, Production, Jumping, Steering, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = false, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = false, // Don't fire at non-smart projectiles. + 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 = 15000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 100, // Minimum distance at which targets will be automatically shot at. + TopTargets = 4, // Maximum number of targets to randomize between; 0 = unlimited. + CycleTargets = 0, // Number of targets to "cycle" per acquire attempt. + TopBlocks = 8, // Maximum number of blocks to randomize between; 0 = unlimited. + CycleBlocks = 0, // Number of blocks to "cycle" per acquire attempt. + StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. + UniqueTargetPerWeapon = false, // only applies to multi-weapon blocks + MaxTrackingTime = 0, // After this time has been reached the weapon will stop tracking existing target and scan for a new one + ShootBlanks = false, // Do not generate projectiles when shooting + FocusOnly = false, // This weapon can only track focus targets. + EvictUniqueTargets = false, // if this is set it will evict any weapons set to UniqueTargetPerWeapon unless they to have this set + Communications = new CommunicationDef + { + StoreTargets = false, // Pushes its current target to the grid/construct so that other slaved weapons can fire on it. + StorageLimit = 0, // The limit at which this weapon will no longer export targets onto the channel. + MaxConnections = 0, // 0 is unlimited, this value determines the maximum number of weapons that can link up to another weapon. + StoreLimitPerBlock = false, // Setting this to true will switch the StorageLimit from being per Location to per block per Location. + StorageLocation = "", // This location ID is used either by the master weapon (if ExportTargets = true) or the slave weapon (if its false). This is shared across the conncted grids. + Mode = NoComms, // NoComms, BroadCast, LocalNetwork, Repeater, Relay, Jamming + TargetPersists = false, // Whether or not the weapon will retain its existing target even if the source of the target releases theirs. + Security = Private, // Public, Private, Secure + BroadCastChannel = "", // If defined you will broadcast to all other scanners on this channel. + BroadCastRange = 0, // This is the range that you will broadcast up too. Note that this value applies to both the sender and receiver, both range requirements must be met. + JammingStrength = 0, // If Mode is set to jamming, then this value will decrease the "range" of broadcasts. Strength falls off at sqr of the distance. + RelayChannel = "", // If defined this channel will be used to relay any targets it seems on the broadcast channel. + RelayRange = 0, // This defines the range that any broadcasts will be relayed. Note that this channel id is seen as the "broadcast" channel for all receivers, broadcast range requirements apply. + }, + }, + HardPoint = new HardPointDef + { + PartName = "Dreadnaught", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 0f, // Projectile inaccuracy in degrees. + AimingTolerance = 180f, // 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 + 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 = 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. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + ScanTrackOnly = false, // This weapon only scans and tracks entities, this disables un-needed functionality and customizes for this purpose. + Ui = new UiDef + { + RateOfFire = false, // Enables terminal slider for changing rate of fire. + RateOfFireMin = 0.0f, // Sets the minimum limit for the rate of fire slider, default is 0. Range is 0-1f. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + AlternateUi = false, // This simplifies and customizes the block controls for alternative weapon purposes, + DisableStatus = false, // Do not display weapon status NoTarget, Reloading, NoAmmo, etc.. + }, + Ai = new AiDef + { + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = true, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + DefaultLeadGroup = 0, // Default LeadGroup setting, range 0-5, 0 is disables lead group. Only useful for fixed weapons or weapons set to OverrideLeads. + TargetGridCenter = false, // Does not target blocks, instead it targets grid center. + }, + HardWare = new HardwareDef + { + RotateRate = 0.1f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0.1f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = -180, // Az/Ele figures are in degrees + MaxAzimuth = 180, + MinElevation = -9, + MaxElevation = 50, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 15, // Default resting elevation + InventorySize = 1f, // Inventory capacity in kL. + IdlePower = 0.25f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "AmmoType2", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + DisableLosCheck = true, // Do not perform LOS checks at all... not advised for self tracking weapons + NoVoxelLosCheck = true, // If set to true this ignores voxels for LOS checking.. which means weapons will fire at targets behind voxels. However, this can save cpu in some situations, use with caution. + Debug = false, // Force enables debug mode - will output damage stats to WC log. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 60, // Set this to 3600 for beam weapons. This is how fast your gun fires per minute. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 120, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 1, // Number of physical magazines to consume on reload. + DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 1, // Heat generated per shot. + 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 = 9000000, // Amount of heat lost per second. + DegradeRof = false, // 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. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // 0 disables and uses RateOfFire. If slower than ROF, will increase time to spin up and start shooting. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = true, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + MaxActiveProjectiles = 0, // Maximum number of drones in flight (only works for drone launchers) + MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon + GoHomeToReload = false, // Tells the weapon it must be in the home position before it can reload. + DropTargetUntilLoaded = false, // If true this weapon will drop the target when its out of ammo and until its reloaded. + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "", // Audio for warmup effect. + FiringSound = "Dreadnaught_Arrival", // Audio for firing. + FiringSoundPerShot = true, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "", // Sound SubtypeID, for when your Weapon is in a reloading state + NoAmmoSound = "", + HardPointRotationSound = "WepTurretGatlingRotate", // Audio played when turret is moving. + BarrelRotationSound = "WepShipGatlingRotation", + FireSoundEndDelay = 120, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "Muzzle_Flash_Large", // SubtypeId of muzzle particle effect. + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + DisableCameraCulling = false, // 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 + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, // Whether to end a looping effect instantly when firing stops. + MaxDistance = 800, + MaxDuration = 0, + Scale = 1f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "", + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false, // 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 + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, + MaxDistance = 800, + MaxDuration = 0, + Scale = 1f, + }, + }, + }, + }, + Ammos = new[] { + Launch_Dummy_Dreadnaught, + Dreadnaught, + Light_Turbolaser_Dreadnaught, + Light_Turbolaser_2_Dreadnaught, + Light_Turboion_Dreadnaught,// Must list all primary, shrapnel, and pattern ammos. + }, + //Animations = Weapon75_Animation, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneFighterTypes.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneFighterTypes.cs index 58d6ed5d1..bff8b9c9e 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneFighterTypes.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneFighterTypes.cs @@ -71,14 +71,14 @@ partial class Parts TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below { Enable = true, // Enables TimedSpawns mechanism - Interval = 60, // Time between spawning fragments, in ticks + Interval = 460, // Time between spawning fragments, in ticks StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life MaxSpawns = 10, // Max number of fragment children to spawn Proximity = 4000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance ParentDies = false, // Parent dies once after it spawns its last child. PointAtTarget = false, // Start fragment direction pointing at Target PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) - GroupSize = 2, // Number of spawns in each group + GroupSize = 1, // Number of spawns in each group GroupDelay = 60, // Delay between each group. DirectAimCone = 45, //Angle cone in which the drone will open fire. }, diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTester.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTester.cs new file mode 100644 index 000000000..29f388fb4 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTester.cs @@ -0,0 +1,878 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + + + + + + + + + + + + + private AmmoDef TesterSentry => new AmmoDef + { + + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Tester Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 1f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 1000, // 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. + 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 = 1, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "Medium_Artillery_Slug", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1f, // 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. + Offset = 0f, // Offsets the fragment spawn by this amount, in meters (positive forward, negative for backwards). + 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 + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 360, // Time between spawning fragments, in ticks + StartTime = 120, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 20, // Max number of fragment children to spawn + Proximity = 8000, // 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, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 60, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + "Medium_Artillery_Slug", + //"FegyverReturnStage", + }, + Enable = true, + Mode = Both, // Select when to activate this pattern, options: Never, Weapon, Fragment, Both + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = true, + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 3, // Meters + Damage = 50, + Depth = 2f, + MaxAbsorb = 0f, + Falloff = Linear, //.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. + ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. + MinArmingTime = 3600, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1f, + CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + //Debug = true, + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 8200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 50f, + DesiredSpeed = 100f, // voxel phasing if you go above 5100 + //MaxSpeed = 50, //Unknown + MaxTrajectory = 10000, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + SteeringLimit = 0, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3f, // controls how responsive tracking is. + MaxLateralThrust = 0.5f, // controls how sharp the projectile may turn, this is the cheaper but less realistic version of SteeringLimit, cost of 2 on a scale of 1-5, 0 being basic smart. + NavAcceleration = 0, // helps influence how the projectile steers. + TrackingDelay = 0, // Measured in Shape diameter units traveled. + AccelClearance = false, // Setting this to true will prevent smart acceleration until it is clear of the grid and tracking delay has been met (free fall). + MaxChaseTime = 12000, // 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 for drones + FutureIntersectionRange = 400, + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // 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..) + OffsetMinRange = 0, // The range from target at which offsets are no longer active + FocusOnly = true, // only target the constructs Ai's focus target + MinTurnSpeed = 5, // set this to a reasonable value to avoid projectiles from spinning in place or being too aggressive turing at slow speeds + NoTargetApproach = true, // If true approaches can begin prior to the projectile ever having had a target. + AltNavigation = false, // If true this will swap the default navigation algorithm from ProNav to ZeroEffort Miss. Zero effort is more direct/precise but less cinematic + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + //Debug = true, + ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "SUNSHOT", //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 = 3, + }, + }, + Hit = new ParticleDef + { + Name = "", + 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 = 1, // + Width = 1, // + Color = Color(red: 10, green: 2, blue: 2, 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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[] { + "ProjectileTrailLine", // 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 = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), + 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[] { + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + }, + TextureMode = Normal, + DecayTime = 10, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, 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, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "sunloop", // 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 = 0.5f, // 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 + }; + + + + //Fegyver Bullet + private AmmoDef MediumArtillery => new AmmoDef + { + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Medium_Artillery_Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 126000f, // Direct damage; one steel plate is worth 100. + Mass = 300, // 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. + 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 = 10, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = false, // Enables TimedSpawns mechanism + Interval = 10, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // Max number of fragment children to spawn + Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = false, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 240, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = 500, // 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 = 6000f, // Distance at which damage begins falling off. + MinMultipler = 0.75f, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = true, + Radius = 3f, // Meters + Damage = 10000f, // Damages 4 blocks + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 2500f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, //particle spawned on hit + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 140500f, + 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 = 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 = true, // 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 = 1, + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // 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 = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed + TargetLossDegree = 1f, // Degrees, Is pointed forward + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 900, //120 is required for sound. 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 = 5000, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, //**MUST** be double of speed for sound to work good.// 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: 100), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 3f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + 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 + CheckFutureIntersection = true, + OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Ammo\\Expanse-Torpedo", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "SUNTRAVEL", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "THESUNMUZZLE", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 10000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + + + + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - Functional Override.DISABLED b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - Functional Override.DISABLED new file mode 100644 index 000000000..451eca2e9 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - Functional Override.DISABLED @@ -0,0 +1,1277 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + + + + + private AmmoDef FegyverLauncher => new AmmoDef + { + AmmoMagazine = "FegyverLauncherStage", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Fegyver Light Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 300, // 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 = 3, // 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 = "FegyverSentryStage", // 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. + 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 = true, // 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 = 30, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 120, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 0, // 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 = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 5f, //Aim cone used for Direct fire, in degrees + GroupSize = 0, // Number of spawns in each group + GroupDelay = 0, // 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 = Fragment, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = false, + 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 = 10f, // Degrees, Is pointed forward + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 800, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 200f, + DesiredSpeed = 200f, // voxel phasing if you go above 5100 + MaxTrajectory = 1000f, + DeaccelTime = 60, // 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: 200), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 4f, // 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.2f, // 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 = true, // 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 = false, // 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 = "\\Models\\Drones\\Artillery_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 FegyverSentry => new AmmoDef + { + + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "FegyverSentryStage", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 1f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 1000, // 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. + 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. + + 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 = "Railgun Artillery Slug", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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. + Offset = 0f, // Offsets the fragment spawn by this amount, in meters (positive forward, negative for backwards). + 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 + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 360, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 10, // Max number of fragment children to spawn + Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 60, // Delay between each group. + DirectAimCone = 1, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3, // Meters + Damage = 50, + Depth = 2f, + MaxAbsorb = 0f, + Falloff = Linear, //.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. + ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. + MinArmingTime = 3600, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1f, + CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + //Debug = true, + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 1f, + DesiredSpeed = 5, // voxel phasing if you go above 5100 + //MaxSpeed = 50, //Unknown + MaxTrajectory = 10000, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + //Debug = true, + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 0.45f, // controls how sharp the trajectile may turn + //AccelClearance = 1000f, //Unknown + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // Whether to stop early death of projectile on target loss + CheckFutureIntersection = true, + OffsetRatio = 0.05f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 3600, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + //Debug = true, + ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "ManticoreThrust", //ShipWelderArc + Color = Color(red: 25, green: 25, blue: 25, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Loop = true, + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 2.5f, green: 2f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 0.75f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + 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: 1.025f), // adds random value to default width (negatives shrinks width) + Tracer = new TracerBaseDef + { + Enable = false, + Length = 10f, + Width = 2f, + Color = Color(red: 25, green: 10, blue: 5, alpha: 0), + 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.. + "AryxMissileTrail", + }, + 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) + } + }, + Trail = new TrailDef + { + Enable = true, + Textures = new[] { + "WeaponLaser", + }, + TextureMode = Normal, + DecayTime = 60, + Color = Color(red: 25, green: 20, blue: 6, alpha: 1), + Back = false, + CustomWidth = 0.1f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + + + //Fegyver Bullet + private AmmoDef LightArtillery => new AmmoDef + { + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Railgun Artillery Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 126000f, // Direct damage; one steel plate is worth 100. + Mass = 300, // 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. + 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 = 10, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 10, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // Max number of fragment children to spawn + Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 240, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = 500, // 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 = 6000f, // Distance at which damage begins falling off. + MinMultipler = 0.75f, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = true, + Radius = 3f, // Meters + Damage = 10000f, // Damages 4 blocks + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 2500f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, //particle spawned on hit + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 0.4f, + 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 = 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 = true, // 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 = 1, + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // 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 = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = None, // 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 = 120, //120 is required for sound. 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 = 5000, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, //**MUST** be double of speed for sound to work good.// 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: 1000), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 3f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + 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 + CheckFutureIntersection = true, + OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Ammo\\Expanse-Torpedo", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - Functional Three Stage.DISABLED b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - Functional Three Stage.DISABLED new file mode 100644 index 000000000..65ea4410d --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - Functional Three Stage.DISABLED @@ -0,0 +1,1278 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + + + + + private AmmoDef FegyverLauncher => new AmmoDef + { + AmmoMagazine = "FegyverLauncherStage", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Fegyver Light Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 300, // 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 = 3, // 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 = true, // 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 = "FegyverSentryStage", // AmmoRound field of the ammo to spawn. + Fragments = 1, // 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 = true, // 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 = 30, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 120, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 0, // 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 = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 5f, //Aim cone used for Direct fire, in degrees + GroupSize = 0, // Number of spawns in each group + GroupDelay = 0, // Delay between each group. + }, + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "FegyverSentryStage", + }, + Mode = Fragment, // 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 = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = false, + 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 = 10f, // Degrees, Is pointed forward + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 800, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 200f, + DesiredSpeed = 200f, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, + DeaccelTime = 60, // 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: 200), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + SteeringLimit = 10, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 4f, // 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.2f, // 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 = true, // 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 = "\\Models\\Ammo\\Expanse-Torpedo", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 FegyverSentry => new AmmoDef + { + + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "FegyverSentryStage", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 1f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 1000, // 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. + 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. + + 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 = "Railgun Artillery Slug", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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. + Offset = 0f, // Offsets the fragment spawn by this amount, in meters (positive forward, negative for backwards). + 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 + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 360, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 10, // Max number of fragment children to spawn + Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 60, // Delay between each group. + DirectAimCone = 1, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3, // Meters + Damage = 50, + Depth = 2f, + MaxAbsorb = 0f, + Falloff = Linear, //.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. + ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. + MinArmingTime = 3600, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1f, + CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + //Debug = true, + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 1f, + DesiredSpeed = 5, // voxel phasing if you go above 5100 + //MaxSpeed = 50, //Unknown + MaxTrajectory = 10000, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + //Debug = true, + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 0.45f, // controls how sharp the trajectile may turn + //AccelClearance = 1000f, //Unknown + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // Whether to stop early death of projectile on target loss + CheckFutureIntersection = true, + OffsetRatio = 0.05f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 3600, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + //Debug = true, + ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "ManticoreThrust", //ShipWelderArc + Color = Color(red: 25, green: 25, blue: 25, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Loop = true, + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 2.5f, green: 2f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 0.75f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + 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: 1.025f), // adds random value to default width (negatives shrinks width) + Tracer = new TracerBaseDef + { + Enable = false, + Length = 10f, + Width = 2f, + Color = Color(red: 25, green: 10, blue: 5, alpha: 0), + 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.. + "AryxMissileTrail", + }, + 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) + } + }, + Trail = new TrailDef + { + Enable = true, + Textures = new[] { + "WeaponLaser", + }, + TextureMode = Normal, + DecayTime = 60, + Color = Color(red: 25, green: 20, blue: 6, alpha: 1), + Back = false, + CustomWidth = 0.1f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + + + //Fegyver Bullet + private AmmoDef LightArtillery => new AmmoDef + { + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Railgun Artillery Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 126000f, // Direct damage; one steel plate is worth 100. + Mass = 300, // 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. + 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 = 10, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 10, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // Max number of fragment children to spawn + Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 240, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = 500, // 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 = 6000f, // Distance at which damage begins falling off. + MinMultipler = 0.75f, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = true, + Radius = 3f, // Meters + Damage = 10000f, // Damages 4 blocks + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 2500f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, //particle spawned on hit + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 0.4f, + 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 = 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 = true, // 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 = 1, + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // 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 = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = None, // 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 = 120, //120 is required for sound. 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 = 5000, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, //**MUST** be double of speed for sound to work good.// 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: 100), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 3f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + 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 + CheckFutureIntersection = true, + OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Ammo\\Expanse-Torpedo", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - OG.DISABLED b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - OG.DISABLED new file mode 100644 index 000000000..99bf2b8bf --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes - OG.DISABLED @@ -0,0 +1,2427 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AmmoDef Fegyver => new AmmoDef + { + AmmoMagazine = "FegyverDrone", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Fegyver Light Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 1f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 1000, // 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. + 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. + + 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 = "Railgun Artillery Slug", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 360, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 10, // Max number of fragment children to spawn + Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 60, // Delay between each group. + DirectAimCone = 1, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3, // Meters + Damage = 50, + Depth = 2f, + MaxAbsorb = 0f, + Falloff = Linear, //.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. + ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. + MinArmingTime = 3600, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1f, + CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 1f, + DesiredSpeed = 5, // voxel phasing if you go above 5100 + //MaxSpeed = 50, //Unknown + MaxTrajectory = 10000, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 0.45f, // controls how sharp the trajectile may turn + //AccelClearance = 1000f, //Unknown + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // Whether to stop early death of projectile on target loss + CheckFutureIntersection = true, + OffsetRatio = 0.05f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 3600, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "ManticoreThrust", //ShipWelderArc + Color = Color(red: 25, green: 25, blue: 25, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Loop = true, + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 2.5f, green: 2f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 0.75f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + 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: 1.025f), // adds random value to default width (negatives shrinks width) + Tracer = new TracerBaseDef + { + Enable = false, + Length = 10f, + Width = 2f, + Color = Color(red: 25, green: 10, blue: 5, alpha: 0), + 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.. + "AryxMissileTrail", + }, + 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) + } + }, + Trail = new TrailDef + { + Enable = true, + Textures = new[] { + "WeaponLaser", + }, + TextureMode = Normal, + DecayTime = 60, + Color = Color(red: 25, green: 20, blue: 6, alpha: 1), + Back = false, + CustomWidth = 0.1f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 Agyu => new AmmoDef + { + AmmoMagazine = "AgyuDrone", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Agyu Heavy Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 1f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 2800, // 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. + 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 = 3, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "Coilgun Artillery Slug", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 60, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // 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 + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 60, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 3, // Meters + Damage = 50, + Depth = 2f, + MaxAbsorb = 0f, + Falloff = Linear, //.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. + ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. + MinArmingTime = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1f, + CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 100f, + DesiredSpeed = 300, // voxel phasing if you go above 5100 + MaxTrajectory = 400000, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0.2f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 0.25, // controls how responsive tracking is. + MaxLateralThrust = 0.35f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss + CheckFutureIntersection = true, + OffsetRatio = 0.8f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "ManticoreThrust", //ShipWelderArc + Color = Color(red: 25, green: 25, blue: 25, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Loop = true, + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 2.5f, green: 2f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 0.75f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + 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: 1.025f), // adds random value to default width (negatives shrinks width) + Tracer = new TracerBaseDef + { + Enable = false, + Length = 10f, + Width = 2f, + Color = Color(red: 25, green: 10, blue: 5, alpha: 0), + 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.. + "AryxMissileTrail", + }, + 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) + } + }, + Trail = new TrailDef + { + Enable = true, + Textures = new[] { + "WeaponLaser", + }, + TextureMode = Normal, + DecayTime = 60, + Color = Color(red: 25, green: 20, blue: 6, alpha: 1), + Back = false, + CustomWidth = 0.1f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 Orszem => new AmmoDef + { + AmmoMagazine = "OrszemDrone", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Orszem Sentinel", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 1f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 1200, // 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. + 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 = 3, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "AMS Bullet", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 60, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // 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 + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 20, // Number of spawns in each group + GroupDelay = 60, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 3, // Meters + Damage = 50, + Depth = 2f, + MaxAbsorb = 0f, + Falloff = Linear, //.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. + ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. + MinArmingTime = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1f, + CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 100f, + DesiredSpeed = 300, // voxel phasing if you go above 5100 + MaxTrajectory = 400000, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0.2f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 0.25, // controls how responsive tracking is. + MaxLateralThrust = 0.35f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss + CheckFutureIntersection = true, + OffsetRatio = 0.8f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "ManticoreThrust", //ShipWelderArc + Color = Color(red: 25, green: 25, blue: 25, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Loop = true, + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 2.5f, green: 2f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 500, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 0.75f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + 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: 1.025f), // adds random value to default width (negatives shrinks width) + Tracer = new TracerBaseDef + { + Enable = false, + Length = 10f, + Width = 2f, + Color = Color(red: 25, green: 10, blue: 5, alpha: 0), + 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.. + "AryxMissileTrail", + }, + 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) + } + }, + Trail = new TrailDef + { + Enable = true, + Textures = new[] { + "WeaponLaser", + }, + TextureMode = Normal, + DecayTime = 60, + Color = Color(red: 25, green: 20, blue: 6, alpha: 1), + Back = false, + CustomWidth = 0.1f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + + + + + + + //Fegyver Bullet + private AmmoDef LightArtillery => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Railgun Artillery Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 126000f, // Direct damage; one steel plate is worth 100. + Mass = 300, // 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. + 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 = 10, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "Energy", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 10, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // Max number of fragment children to spawn + Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 240, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = 500, // 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 = 6000f, // Distance at which damage begins falling off. + MinMultipler = 0.75f, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = true, + Radius = 3f, // Meters + Damage = 10000f, // Damages 4 blocks + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 2500f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, //particle spawned on hit + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 0.4f, + 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 = 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 = true, // 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 = 1, + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // 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 = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = None, // 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 = 120, //120 is required for sound. 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 = 5000, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, //**MUST** be double of speed for sound to work good.// 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: 1000), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 3f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss + CheckFutureIntersection = true, + OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Ammo\\Expanse-Torpedo", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 HeavyArtillery => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Coilgun Artillery Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 5000f, // Direct damage; one steel plate is worth 100. + Mass = 1500f, // In kilograms; how much force the impact will apply to the target. + Health = 200, // 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. + 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 = 3, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "Energy", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 10, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // 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 + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 240, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = 15000f, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 3f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3f, // Meters + Damage = 375000f, + Depth = 2f, + MaxAbsorb = 0f, + Falloff = Linear, //.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. + 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 = 1f, + CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 0f, + DesiredSpeed = 5000, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0.2f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 3f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss + CheckFutureIntersection = true, + OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Ammo\\Expanse-Torpedo", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 PointDefenseBullet => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "AMS Bullet", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 5000f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 200, // 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. + 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 = 3, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "Energy", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 10, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // 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 + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 240, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 3, // Meters + Damage = 50, + Depth = 2f, + MaxAbsorb = 0f, + Falloff = Linear, //.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. + ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. + MinArmingTime = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1f, + CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond + }, + }, + Ewar = new EwarDef + { + Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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, DroneAdvanced + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 100f, + DesiredSpeed = 300, // voxel phasing if you go above 5100 + MaxTrajectory = 400000, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0.2f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 3f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 12000, // 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. + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss + CheckFutureIntersection = true, + OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Ammo\\Expanse-Torpedo", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + + + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes.cs index 99bf2b8bf..933b6bdce 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/DroneSentryTypes.cs @@ -11,9 +11,18 @@ using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; @@ -22,29 +31,41 @@ using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; namespace Scripts { // Don't edit above this line partial class Parts { - private AmmoDef Fegyver => new AmmoDef + + //Agyu Launcher Stage + private AmmoDef AgyuLauncher => new AmmoDef { - AmmoMagazine = "FegyverDrone", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. - AmmoRound = "Fegyver Light Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + AmmoMagazine = "AgyuLauncherStage", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Agyu Heavy Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. 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 = 1f, // Direct damage; one steel plate is worth 100. - Mass = 3000, // In kilograms; how much force the impact will apply to the target. - Health = 1000, // 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. + EnergyCost = 0f, //0.0645f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // In kilograms; how much force the impact will apply to the target. + Health = 800, // 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. + EnergyMagazineSize = 1, // 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. + Sync = new SynchronizeDef + { + Full = false, // Be careful, do not use on high fire rate weapons or ammos with many simultaneous fragments. This will send position updates twice per second per projectile/fragment and sync target (grid/block) changes. + PointDefense = true, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = true, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, 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. @@ -57,43 +78,42 @@ partial class Parts }, Fragment = new FragmentDef // Formerly known as Shrapnel. Spawns specified ammo fragments on projectile death (via hit or detonation). { - AmmoRound = "Railgun Artillery Slug", // AmmoRound field of the ammo to spawn. + AmmoRound = "AgyuSentryStage", // AmmoRound field of the ammo to spawn. Fragments = 1, // Number of projectiles to spawn. - Degrees = 1, // Cone in which to randomize direction of spawned projectiles. + 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). + 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 - + MaxChildren = 1, // 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 + 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 = 360, // Time between spawning fragments, in ticks - StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life - MaxSpawns = 10, // Max number of fragment children to spawn - Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance - ParentDies = false, // Parent dies once after it spawns its last child. + Interval = 420, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 420, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 0, // 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, Lead (always fire), Predict (only fire if it can hit) - GroupSize = 1, // Number of spawns in each group - GroupDelay = 60, // Delay between each group. - DirectAimCone = 1, //Angle cone in which the drone will open fire. + PointType = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 5f, //Aim cone used for Direct fire, in degrees + GroupSize = 0, // Number of spawns in each group + GroupDelay = 0, // Delay between each group. }, - }, Pattern = new PatternDef { Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. "", }, - Enable = false, - TriggerChance = 1f, - Random = false, + Mode = Fragment, // 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, + SkipParent = true, // Skip the Ammo itself, in the list PatternSteps = 1, // Number of Ammos activated per round, will progress in order and loop. Ignored if Random = true. }, DamageScales = new DamageScaleDef @@ -102,8 +122,8 @@ partial class Parts 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. + 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 { @@ -124,20 +144,20 @@ partial class Parts }, Shields = new ShieldDef { - Modifier = -1f, // Multiplier for damage against shields. + Modifier = 1f, // 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 = Kinetic, // Base Damage uses this AreaEffect = Kinetic, Detonation = Kinetic, - Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + 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 { - IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 @@ -153,70 +173,72 @@ partial class Parts }, }, }, - AreaOfDamage = new AreaOfDamageDef + AreaOfDamage = new AreaOfDamageDef { ByBlockHit = new ByBlockHitDef { Enable = false, Radius = 0f, // Meters - Damage = 0, - Depth = 1f, // Meters - MaxAbsorb = 0f, - Falloff = Pooled, //.NoFalloff applies the same damage to all blocks in radius + 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. - Shape = Diamond, // Round or Diamond + //.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 = 3, // Meters - Damage = 50, - Depth = 2f, - MaxAbsorb = 0f, - Falloff = Linear, //.NoFalloff applies the same damage to all blocks in radius + Enable = false, + 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 = 3600, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + MinArmingTime = 0, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. NoVisuals = false, NoSound = false, - ParticleScale = 1f, - CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC + ParticleScale = 2, + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC CustomSound = "", // SubtypeID from your Audio SBC, not a filename - Shape = Round, // Round or Diamond - }, + 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 = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, - Mode = Field, // Effect , Field - Strength = 30000000, - Radius = 250f, // Meters - Duration = 600, // In Ticks - StackDuration = false, // Combined Durations - Depletable = false, - MaxStacks = 2, // Max Debuffs at once + 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, Thrusters, or Locks them down + 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 : Affects target with Physics + Anchor : Targets & Shutdowns Thrusters */ Force = new PushPullDef @@ -230,10 +252,10 @@ partial class Parts }, Field = new FieldDef { - Interval = 5, // Time between each pulse, in game ticks (60 == 1 second). - PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. - GrowTime = 60, // How many ticks it should take the field to grow to full size. - HideModel = false, // Hide the projectile model if it has one. + 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. @@ -248,7 +270,7 @@ partial class Parts }, Beams = new BeamDef { - Enable = false, // Enable beam behaviour. + 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. @@ -256,37 +278,37 @@ partial class Parts }, Trajectory = new TrajectoryDef { - Guidance = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced - TargetLossDegree = 0f, + Guidance = Smart, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed + TargetLossDegree = 10f, // Degrees, Is pointed forward TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - AccelPerSec = 1f, - DesiredSpeed = 5, // voxel phasing if you go above 5100 - //MaxSpeed = 50, //Unknown - MaxTrajectory = 10000, - //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) - GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. - SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed - RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxLifeTime = 800, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 200f, + DesiredSpeed = 200f, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, + DeaccelTime = 60, // 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: 200), // subtracts value from MaxTrajectory MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. Smarts = new SmartsDef { - Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. - Aggressiveness = 3, // controls how responsive tracking is. - MaxLateralThrust = 0.45f, // controls how sharp the trajectile may turn - //AccelClearance = 1000f, //Unknown - TrackingDelay = 10, // Measured in Shape diameter units traveled. - MaxChaseTime = 12000, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + SteeringLimit = 10f, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 4f, // 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.2f, // controls how sharp the trajectile may turn + TrackingDelay = 120, // 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 = true, // Roam current area after target loss - KeepAliveAfterTargetLoss = true, // Whether to stop early death of projectile on target loss - CheckFutureIntersection = true, - OffsetRatio = 0.05f, // The ratio to offset the random dir (0 to 1) - OffsetTime = 3600, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + Roam = false, // Roam current area after target loss + KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss + OffsetRatio = 3f, // 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 + Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues. { DetectRadius = 0, DeCloakRadius = 0, @@ -297,45 +319,42 @@ partial class Parts }, AmmoGraphics = new GraphicDef { - ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + ModelName = "\\Models\\Ammo\\Expanse-Torpedo", //"\\Models\\Drones\\Fighter_drone.mwm", VisualProbability = 1f, - ShieldHitDraw = true, + ShieldHitDraw = false, Particles = new AmmoParticleDef { Ammo = new ParticleDef { - Name = "ManticoreThrust", //ShipWelderArc - Color = Color(red: 25, green: 25, blue: 25, alpha: 1), - Offset = Vector(x: 0, y: 0, z: 0), + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), Extras = new ParticleOptionDef { - Loop = true, - Restart = false, - MaxDistance = 500, - MaxDuration = 0, - Scale = 1f, + Scale = 0.75f, }, }, Hit = new ParticleDef { Name = "", ApplyToShield = true, - Color = Color(red: 2.5f, green: 2f, blue: 1f, alpha: 1), + + Color = Color(red: 0.5f, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { Restart = false, - MaxDistance = 500, + MaxDistance = 5000, MaxDuration = 0, Scale = 1, - HitPlayChance = 0.75f, + HitPlayChance = 1f, }, }, Eject = new ParticleDef { Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + + Color = Color(red: 0.5f, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { @@ -349,18 +368,19 @@ partial class Parts }, Lines = new LineDef { - ColorVariance = Random(start: 0.75f, end: 2f), // multiply the color by random values within range. - WidthVariance = Random(start: 0f, end: 1.025f), // adds random value to default width (negatives shrinks width) + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. Tracer = new TracerBaseDef { - Enable = false, - Length = 10f, + Enable = true, + Length = 8f, Width = 2f, - Color = Color(red: 25, green: 10, blue: 5, alpha: 0), + Color = Color(red: 5f, green: 35, blue: 20f, alpha: 1), 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.. - "AryxMissileTrail", + "WeaponLaser", }, TextureMode = Normal, // Normal, Cycle, Chaos, Wave Segmentation = new SegmentDef @@ -372,7 +392,7 @@ partial class Parts 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), + Color = Color(red: 3, green: 16, blue: 10, alpha: 1), WidthMultiplier = 1f, Reverse = false, UseLineVariance = true, @@ -387,10 +407,10 @@ partial class Parts "WeaponLaser", }, TextureMode = Normal, - DecayTime = 60, - Color = Color(red: 25, green: 20, blue: 6, alpha: 1), + DecayTime = 90, + Color = Color(red: 5f, green: 35, blue: 20f, alpha: 1), Back = false, - CustomWidth = 0.1f, + CustomWidth = 0.2f, UseWidthVariance = false, UseColorFade = true, }, @@ -404,13 +424,13 @@ partial class Parts }, AmmoAudio = new AmmoAudioDef { - TravelSound = "", + TravelSound = "ObviousFlyby", HitSound = "", ShieldHitSound = "", PlayerHitSound = "", VoxelHitSound = "", FloatingHitSound = "", - HitPlayChance = 0.5f, + HitPlayChance = 1f, HitPlayShield = true, }, Ejection = new EjectionDef @@ -426,21 +446,21 @@ partial class Parts } }, // Don't edit below this line }; - - - private AmmoDef Agyu => new AmmoDef + //Agyu Sentry Drone + private AmmoDef AgyuSentry => new AmmoDef { - AmmoMagazine = "AgyuDrone", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. - AmmoRound = "Agyu Heavy Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "AgyuSentryStage", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. 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 = 1f, // Direct damage; one steel plate is worth 100. Mass = 3000, // In kilograms; how much force the impact will apply to the target. - Health = 2800, // 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 = 2400, // 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. 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 = 3, // For energy weapons, how many shots to fire before reloading. + EnergyMagazineSize = 1, // For energy weapons, how many shots to fire before reloading. IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. Shape = new ShapeDef // Defines the collision shape of the projectile, defaults to LineShape and uses the visual Line Length if set to 0. @@ -455,11 +475,11 @@ partial class Parts }, Fragment = new FragmentDef // Formerly known as Shrapnel. Spawns specified ammo fragments on projectile death (via hit or detonation). { - AmmoRound = "Coilgun Artillery Slug", // AmmoRound field of the ammo to spawn. + AmmoRound = "Coilgun_Artillery_Slug", // AmmoRound field of the ammo to spawn. Fragments = 1, // Number of projectiles to spawn. - Degrees = 1, // Cone in which to randomize direction of spawned projectiles. + Degrees = 1f, // 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. + DropVelocity = false, // fragments will not inherit velocity from parent. Offset = 0f, // Offsets the fragment spawn by this amount, in meters (positive forward, negative for backwards). 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 @@ -468,30 +488,35 @@ partial class Parts TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below { Enable = true, // Enables TimedSpawns mechanism - Interval = 60, // Time between spawning fragments, in ticks - StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life - MaxSpawns = 900, // 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 - ParentDies = false, // Parent dies once after it spawns its last child. + Interval = 1800, // Time between spawning fragments, in ticks + StartTime = 120, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 21, // Max number of fragment children to spawn + Proximity = 8000, // 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, Lead (always fire), Predict (only fire if it can hit) GroupSize = 1, // Number of spawns in each group GroupDelay = 60, // Delay between each group. - DirectAimCone = 5, //Angle cone in which the drone will open fire. + DirectAimCone = 0.015f, //Angle cone in which the drone will open fire. }, }, Pattern = new PatternDef { Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. - "", - }, - Enable = false, + "Coilgun_Artillery_Slug", + "Coilgun_Artillery_Slug", + "Coilgun_Artillery_Slug", + "Coilgun_Artillery_Slug", + //"FegyverReturnStage", + }, + Enable = true, + Mode = Both, // Select when to activate this pattern, options: Never, Weapon, Fragment, Both TriggerChance = 1f, Random = false, RandomMin = 1, RandomMax = 1, - SkipParent = false, + SkipParent = true, PatternSteps = 1, // Number of Ammos activated per round, will progress in order and loop. Ignored if Random = true. }, DamageScales = new DamageScaleDef @@ -570,25 +595,26 @@ partial class Parts }, EndOfLife = new EndOfLifeDef { - Enable = false, - Radius = 3, // Meters - Damage = 50, - Depth = 2f, - MaxAbsorb = 0f, - Falloff = Linear, //.NoFalloff applies the same damage to all blocks in radius + Enable = true , + Radius = 12f , // Meters + Damage = 45000f , + Depth = 6f , + MaxAbsorb = 0f , + Falloff = Linear , //.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. - ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. - MinArmingTime = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. - NoVisuals = false, - NoSound = false, - ParticleScale = 1f, - CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC - CustomSound = "", // SubtypeID from your Audio SBC, not a filename - Shape = Round, // Round or Diamond + //.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 = 3 , + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // SubtypeID from your Audio SBC, not a filename + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. }, }, Ewar = new EwarDef @@ -655,32 +681,43 @@ partial class Parts Trajectory = new TrajectoryDef { Guidance = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + //Debug = true, TargetLossDegree = 0f, TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - AccelPerSec = 100f, - DesiredSpeed = 300, // voxel phasing if you go above 5100 - MaxTrajectory = 400000, + MaxLifeTime = 7400, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 50f, + DesiredSpeed = 0.25f, // voxel phasing if you go above 5100 + //MaxSpeed = 50, //Unknown + MaxTrajectory = 7000, //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) - GravityMultiplier = 0.2f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. Smarts = new SmartsDef { - Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. - Aggressiveness = 0.25, // controls how responsive tracking is. - MaxLateralThrust = 0.35f, // controls how sharp the trajectile may turn - TrackingDelay = 10, // Measured in Shape diameter units traveled. - MaxChaseTime = 12000, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + SteeringLimit = 0, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3f, // controls how responsive tracking is. + MaxLateralThrust = 3.5f, // controls how sharp the projectile may turn, this is the cheaper but less realistic version of SteeringLimit, cost of 2 on a scale of 1-5, 0 being basic smart. + NavAcceleration = 0, // helps influence how the projectile steers. + TrackingDelay = 0, // Measured in Shape diameter units traveled. + AccelClearance = false, // Setting this to true will prevent smart acceleration until it is clear of the grid and tracking delay has been met (free fall). + MaxChaseTime = 7400, // 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 for drones + FutureIntersectionRange = 400, MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited NoTargetExpire = false, // Expire without ever having a target at TargetLossTime - Roam = true, // Roam current area after target loss + Roam = false, // Roam current area after target loss KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss - CheckFutureIntersection = true, - OffsetRatio = 0.8f, // The ratio to offset the random dir (0 to 1) - OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + 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..) + OffsetMinRange = 0, // The range from target at which offsets are no longer active + FocusOnly = true, // only target the constructs Ai's focus target + MinTurnSpeed = 5, // set this to a reasonable value to avoid projectiles from spinning in place or being too aggressive turing at slow speeds + NoTargetApproach = true, // If true approaches can begin prior to the projectile ever having had a target. + AltNavigation = false, // If true this will swap the default navigation algorithm from ProNav to ZeroEffort Miss. Zero effort is more direct/precise but less cinematic }, Mines = new MinesDef { @@ -693,6 +730,7 @@ partial class Parts }, AmmoGraphics = new GraphicDef { + //Debug = true, ModelName = "\\Models\\Drones\\Artillery_drone.mwm", VisualProbability = 1f, ShieldHitDraw = true, @@ -700,44 +738,32 @@ partial class Parts { Ammo = new ParticleDef { - Name = "ManticoreThrust", //ShipWelderArc - Color = Color(red: 25, green: 25, blue: 25, alpha: 1), + Name = "SUNSHOT", //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 { - Loop = true, - Restart = false, - MaxDistance = 500, - MaxDuration = 0, - Scale = 1f, + Scale = 3, }, }, Hit = new ParticleDef { Name = "", ApplyToShield = true, - Color = Color(red: 2.5f, green: 2f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Restart = false, - MaxDistance = 500, - MaxDuration = 0, Scale = 1, - HitPlayChance = 0.75f, + HitPlayChance = 1f, }, }, Eject = new ParticleDef { Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Restart = false, - MaxDistance = 5000, - MaxDuration = 30, Scale = 1, HitPlayChance = 1f, }, @@ -746,29 +772,30 @@ partial class Parts Lines = new LineDef { ColorVariance = Random(start: 0.75f, end: 2f), // multiply the color by random values within range. - WidthVariance = Random(start: 0f, end: 1.025f), // adds random value to default width (negatives shrinks width) + WidthVariance = Random(start: 0f, end: 0f), // adds random value to default width (negatives shrinks width) Tracer = new TracerBaseDef { - Enable = false, - Length = 10f, - Width = 2f, - Color = Color(red: 25, green: 10, blue: 5, alpha: 0), + Enable = true, + Length = 1, // + Width = 1, // + Color = Color(red: 10, green: 2, blue: 2, 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). Textures = new[] {// WeaponLaser, ProjectileTrailLine, WarpBubble, etc.. - "AryxMissileTrail", + "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[] { - "", + "ProjectileTrailLine", // 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), + Speed = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), WidthMultiplier = 1f, Reverse = false, UseLineVariance = true, @@ -778,15 +805,15 @@ partial class Parts }, Trail = new TrailDef { - Enable = true, + Enable = false, Textures = new[] { - "WeaponLaser", + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. }, TextureMode = Normal, - DecayTime = 60, - Color = Color(red: 25, green: 20, blue: 6, alpha: 1), + DecayTime = 10, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, blue: 1, alpha: 1), Back = false, - CustomWidth = 0.1f, + CustomWidth = 0, UseWidthVariance = false, UseColorFade = true, }, @@ -800,16 +827,17 @@ partial class Parts }, AmmoAudio = new AmmoAudioDef { - TravelSound = "", + TravelSound = "RadioGlitchLoop", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight HitSound = "", + ShotSound = "", ShieldHitSound = "", PlayerHitSound = "", VoxelHitSound = "", FloatingHitSound = "", - HitPlayChance = 0.5f, + HitPlayChance = 1f, HitPlayShield = true, }, - Ejection = new EjectionDef + 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 @@ -822,20 +850,20 @@ partial class Parts } }, // Don't edit below this line }; - - private AmmoDef Orszem => new AmmoDef + //Agyu Bullet + private AmmoDef HeavyArtillery => new AmmoDef { - AmmoMagazine = "OrszemDrone", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. - AmmoRound = "Orszem Sentinel", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Coilgun_Artillery_Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. 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 = 1f, // Direct damage; one steel plate is worth 100. - Mass = 3000, // In kilograms; how much force the impact will apply to the target. - Health = 1200, // 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. + BaseDamage = 425000f, // Direct damage; one steel plate is worth 100. + Mass = 2500f, // 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. 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 = 3, // For energy weapons, how many shots to fire before reloading. + 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 = 10, // For energy weapons, how many shots to fire before reloading. IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. Shape = new ShapeDef // Defines the collision shape of the projectile, defaults to LineShape and uses the visual Line Length if set to 0. @@ -850,7 +878,7 @@ partial class Parts }, Fragment = new FragmentDef // Formerly known as Shrapnel. Spawns specified ammo fragments on projectile death (via hit or detonation). { - AmmoRound = "AMS Bullet", // AmmoRound field of the ammo to spawn. + AmmoRound = "", // AmmoRound field of the ammo to spawn. Fragments = 1, // Number of projectiles to spawn. Degrees = 1, // Cone in which to randomize direction of spawned projectiles. Reverse = false, // Spawn projectiles backward instead of forward. @@ -860,18 +888,19 @@ partial class Parts 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 + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below { - Enable = true, // Enables TimedSpawns mechanism - Interval = 60, // Time between spawning fragments, in ticks + Enable = false, // Enables TimedSpawns mechanism + Interval = 10, // Time between spawning fragments, in ticks StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life MaxSpawns = 900, // 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 = 10000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance ParentDies = false, // Parent dies once after it spawns its last child. - PointAtTarget = true, // Start fragment direction pointing at Target + PointAtTarget = false, // Start fragment direction pointing at Target PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) - GroupSize = 20, // Number of spawns in each group - GroupDelay = 60, // Delay between each group. + GroupSize = 1, // Number of spawns in each group + GroupDelay = 240, // Delay between each group. DirectAimCone = 5, //Angle cone in which the drone will open fire. }, @@ -894,14 +923,14 @@ partial class Parts 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. + HealthHitModifier = 500, // 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. + Distance = 6000f, // Distance at which damage begins falling off. + MinMultipler = 0.75f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. }, Grids = new GridSizeDef { @@ -917,7 +946,7 @@ partial class Parts }, Shields = new ShieldDef { - Modifier = -1f, // Multiplier for damage against shields. + Modifier = 6f, // 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. }, @@ -946,44 +975,46 @@ partial class Parts }, }, }, - AreaOfDamage = new AreaOfDamageDef + AreaOfDamage = new AreaOfDamageDef { ByBlockHit = new ByBlockHitDef { - Enable = false, - Radius = 0f, // Meters - Damage = 0, - Depth = 1f, // Meters - MaxAbsorb = 0f, + Enable = true, + Radius = 3f, // Meters + Damage = 100000f, // Damages 4 blocks + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 2500f, // 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. - Shape = Diamond, // Round or Diamond + //.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 = false, - Radius = 3, // Meters - Damage = 50, - Depth = 2f, - MaxAbsorb = 0f, - Falloff = Linear, //.NoFalloff applies the same damage to all blocks in radius + Enable = true, //particle spawned on hit + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 240500f, + 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 = 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. - ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. - MinArmingTime = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + //.Exponential drops off exponentially. Does not scale to max radius + ArmOnlyOnHit = true, // 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 = 1f, - CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC - CustomSound = "", // SubtypeID from your Audio SBC, not a filename - Shape = Round, // Round or Diamond + ParticleScale = 3, + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // SubtypeID from your Audio SBC, not a filename + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. }, }, Ewar = new EwarDef @@ -1049,32 +1080,32 @@ partial class Parts }, Trajectory = new TrajectoryDef { - Guidance = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced - TargetLossDegree = 0f, + Guidance = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed + TargetLossDegree = 1f, // Degrees, Is pointed forward TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - AccelPerSec = 100f, - DesiredSpeed = 300, // voxel phasing if you go above 5100 - MaxTrajectory = 400000, - //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) - GravityMultiplier = 0.2f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. - SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed - RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxLifeTime = 900, //120 is required for sound. 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 = 5100, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, //**MUST** be double of speed for sound to work good.// 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: 100), // subtracts value from MaxTrajectory MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. Smarts = new SmartsDef { Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. - Aggressiveness = 0.25, // controls how responsive tracking is. - MaxLateralThrust = 0.35f, // controls how sharp the trajectile may turn + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 3f, // controls how sharp the trajectile may turn TrackingDelay = 10, // Measured in Shape diameter units traveled. - MaxChaseTime = 12000, // 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. + MaxChaseTime = 7400, // 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. MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited NoTargetExpire = false, // Expire without ever having a target at TargetLossTime - Roam = true, // Roam current area after target loss + Roam = false, // Roam current area after target loss KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss CheckFutureIntersection = true, - OffsetRatio = 0.8f, // The ratio to offset the random dir (0 to 1) + OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) }, Mines = new MinesDef @@ -1088,50 +1119,47 @@ partial class Parts }, AmmoGraphics = new GraphicDef { - ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + ModelName = "\\Models\\Ammo\\Expanse-Torpedo-Smol",//Expanse-Torpedo-Smol VisualProbability = 1f, - ShieldHitDraw = true, + ShieldHitDraw = false, Particles = new AmmoParticleDef { Ammo = new ParticleDef { - Name = "ManticoreThrust", //ShipWelderArc - Color = Color(red: 25, green: 25, blue: 25, alpha: 1), - Offset = Vector(x: 0, y: 0, z: 0), + Name = "ARROWFLARE", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), Extras = new ParticleOptionDef { - Loop = true, - Restart = false, - MaxDistance = 500, - MaxDuration = 0, - Scale = 1f, + Scale = 0.35f, }, }, Hit = new ParticleDef { - Name = "", + Name = "ARROWNUKE", ApplyToShield = true, - Color = Color(red: 2.5f, green: 2f, blue: 1f, alpha: 1), + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { Restart = false, - MaxDistance = 500, - MaxDuration = 0, + MaxDistance = 5000, + MaxDuration = 10, Scale = 1, - HitPlayChance = 0.75f, + HitPlayChance = 1f, }, }, Eject = new ParticleDef { - Name = "", + Name = "THESUNMUZZLE", ApplyToShield = true, + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { Restart = false, - MaxDistance = 5000, + MaxDistance = 10000, MaxDuration = 30, Scale = 1, HitPlayChance = 1f, @@ -1140,18 +1168,19 @@ partial class Parts }, Lines = new LineDef { - ColorVariance = Random(start: 0.75f, end: 2f), // multiply the color by random values within range. - WidthVariance = Random(start: 0f, end: 1.025f), // adds random value to default width (negatives shrinks width) + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. Tracer = new TracerBaseDef { - Enable = false, - Length = 10f, + Enable = true, + Length = 8f, Width = 2f, - Color = Color(red: 25, green: 10, blue: 5, alpha: 0), + Color = Color(red: 40f, green: 40f, blue: 25f, alpha: 1), 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.. - "AryxMissileTrail", + "WarpBubble", }, TextureMode = Normal, // Normal, Cycle, Chaos, Wave Segmentation = new SegmentDef @@ -1163,7 +1192,7 @@ partial class Parts 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), + Color = Color(red: 16, green: 16, blue: 16, alpha: 1), WidthMultiplier = 1f, Reverse = false, UseLineVariance = true, @@ -1178,10 +1207,10 @@ partial class Parts "WeaponLaser", }, TextureMode = Normal, - DecayTime = 60, - Color = Color(red: 25, green: 20, blue: 6, alpha: 1), + DecayTime = 120, + Color = Color(red: 40f, green: 40f, blue: 25f, alpha: 1), Back = false, - CustomWidth = 0.1f, + CustomWidth = 0.2f, UseWidthVariance = false, UseColorFade = true, }, @@ -1195,13 +1224,13 @@ partial class Parts }, AmmoAudio = new AmmoAudioDef { - TravelSound = "", + TravelSound = "ObviousFlyby", HitSound = "", ShieldHitSound = "", PlayerHitSound = "", VoxelHitSound = "", FloatingHitSound = "", - HitPlayChance = 0.5f, + HitPlayChance = 1f, HitPlayShield = true, }, Ejection = new EjectionDef @@ -1224,22 +1253,132 @@ partial class Parts - //Fegyver Bullet - private AmmoDef LightArtillery => new AmmoDef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + //Fegyver Launcher Stage + private AmmoDef FegyverLauncher => new AmmoDef { - AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. - AmmoRound = "Railgun Artillery Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + AmmoMagazine = "FegyverLauncherStage", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Fegyver Medium Sentry", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. 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 = 126000f, // Direct damage; one steel plate is worth 100. - Mass = 300, // 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. + EnergyCost = 0f, //0.0645f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // In kilograms; how much force the impact will apply to the target. + Health = 800, // 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 = 10, // For energy weapons, how many shots to fire before reloading. + EnergyMagazineSize = 1, // 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. + Sync = new SynchronizeDef + { + Full = false, // Be careful, do not use on high fire rate weapons or ammos with many simultaneous fragments. This will send position updates twice per second per projectile/fragment and sync target (grid/block) changes. + PointDefense = true, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = true, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, 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. @@ -1252,44 +1391,42 @@ partial class Parts }, Fragment = new FragmentDef // Formerly known as Shrapnel. Spawns specified ammo fragments on projectile death (via hit or detonation). { - AmmoRound = "Energy", // AmmoRound field of the ammo to spawn. + AmmoRound = "FegyverSentryStage", // AmmoRound field of the ammo to spawn. Fragments = 1, // Number of projectiles to spawn. - Degrees = 1, // Cone in which to randomize direction of spawned projectiles. + 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). + 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 + MaxChildren = 1, // 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 - - + 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 = 10, // Time between spawning fragments, in ticks - StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life - MaxSpawns = 900, // Max number of fragment children to spawn - Proximity = 8000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance - ParentDies = false, // Parent dies once after it spawns its last child. + Interval = 420, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 420, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 0, // 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, Lead (always fire), Predict (only fire if it can hit) - GroupSize = 1, // Number of spawns in each group - GroupDelay = 240, // Delay between each group. - DirectAimCone = 5, //Angle cone in which the drone will open fire. + PointType = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 5f, //Aim cone used for Direct fire, in degrees + GroupSize = 0, // Number of spawns in each group + GroupDelay = 0, // Delay between each group. }, - }, Pattern = new PatternDef { Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. "", }, - Enable = false, - TriggerChance = 1f, - Random = false, + Mode = Fragment, // 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, + SkipParent = true, // Skip the Ammo itself, in the list PatternSteps = 1, // Number of Ammos activated per round, will progress in order and loop. Ignored if Random = true. }, DamageScales = new DamageScaleDef @@ -1297,14 +1434,14 @@ partial class Parts 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 = 500, // 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. + 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 = 6000f, // Distance at which damage begins falling off. - MinMultipler = 0.75f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + 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 { @@ -1320,20 +1457,20 @@ partial class Parts }, Shields = new ShieldDef { - Modifier = -1f, // Multiplier for damage against shields. + Modifier = 1f, // 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 = Kinetic, // Base Damage uses this AreaEffect = Kinetic, Detonation = Kinetic, - Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + 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 { - IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 @@ -1353,12 +1490,12 @@ partial class Parts { ByBlockHit = new ByBlockHitDef { - Enable = true, - Radius = 3f, // Meters - Damage = 10000f, // Damages 4 blocks - Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value - MaxAbsorb = 2500f, // 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 + 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 @@ -1369,10 +1506,10 @@ partial class Parts }, EndOfLife = new EndOfLifeDef { - Enable = true, //particle spawned on hit - Radius = 1f, // Radius of AOE effect, in meters. - Damage = 0.4f, - Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + Enable = false, + 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 @@ -1381,40 +1518,40 @@ partial class Parts //.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 = true, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. + 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 = 1, + ParticleScale = 2, CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC - CustomSound = "MyRailRoundHit", // SubtypeID from your Audio SBC, not a filename + 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 = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, - Mode = Field, // Effect , Field - Strength = 30000000, - Radius = 250f, // Meters - Duration = 600, // In Ticks - StackDuration = false, // Combined Durations - Depletable = false, - MaxStacks = 2, // Max Debuffs at once + 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, Thrusters, or Locks them down + 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 : Affects target with Physics + Anchor : Targets & Shutdowns Thrusters */ Force = new PushPullDef @@ -1428,10 +1565,1286 @@ partial class Parts }, Field = new FieldDef { - Interval = 5, // Time between each pulse, in game ticks (60 == 1 second). - PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. - GrowTime = 60, // How many ticks it should take the field to grow to full size. - HideModel = false, // Hide the projectile model if it has one. + 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 = 10f, // Degrees, Is pointed forward + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 800, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 200f, + DesiredSpeed = 200f, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, + DeaccelTime = 60, // 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: 200), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + SteeringLimit = 10f, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 4f, // 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.2f, // controls how sharp the trajectile may turn + TrackingDelay = 120, // 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 = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // Whether to stop early death of projectile on target loss + OffsetRatio = 3f, // 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 = "\\Models\\Ammo\\Expanse-Torpedo", //"\\Models\\Drones\\Fighter_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "Expanse_Trail", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.75f, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 0.5f, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + + Color = Color(red: 0.5f, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 5f, green: 35, blue: 20f, alpha: 1), + 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", + }, + 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: 3, green: 16, blue: 10, 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", + }, + TextureMode = Normal, + DecayTime = 90, + Color = Color(red: 5f, green: 35, blue: 20f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + //Fegyver Sentry Drone + private AmmoDef FegyverSentry => new AmmoDef + { + + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "FegyverSentryStage", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 1f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 2400, // 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. + 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 = 1, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "Railgun_Artillery_Slug", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1f, // 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. + Offset = 0f, // Offsets the fragment spawn by this amount, in meters (positive forward, negative for backwards). + 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 + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 360, // Time between spawning fragments, in ticks + StartTime = 120, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 21, // Max number of fragment children to spawn + Proximity = 6000, // 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, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 60, // Delay between each group. + DirectAimCone = 2, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + "Railgun_Artillery_Slug", + //"FegyverReturnStage", + }, + Enable = true, + Mode = Both, // Select when to activate this pattern, options: Never, Weapon, Fragment, Both + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = true, + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = -1f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 0, + Depth = 1f, // Meters + MaxAbsorb = 0f, + 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. + Shape = Diamond, // Round or Diamond + }, + EndOfLife = new EndOfLifeDef + { + Enable = true , + Radius = 12f , // Meters + Damage = 45000f , + Depth = 6f , + MaxAbsorb = 0f , + Falloff = Linear , //.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 = 3 , + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // 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 = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + //Debug = true, + TargetLossDegree = 0f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 7400, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 50f, + DesiredSpeed = 0.25f, // voxel phasing if you go above 5100 + //MaxSpeed = 50, //Unknown + MaxTrajectory = 7000, + //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + SteeringLimit = 0, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3f, // controls how responsive tracking is. + MaxLateralThrust = 3.5f, // controls how sharp the projectile may turn, this is the cheaper but less realistic version of SteeringLimit, cost of 2 on a scale of 1-5, 0 being basic smart. + NavAcceleration = 0, // helps influence how the projectile steers. + TrackingDelay = 0, // Measured in Shape diameter units traveled. + AccelClearance = false, // Setting this to true will prevent smart acceleration until it is clear of the grid and tracking delay has been met (free fall). + MaxChaseTime = 7400, // 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 for drones + FutureIntersectionRange = 400, + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // 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..) + OffsetMinRange = 0, // The range from target at which offsets are no longer active + FocusOnly = true, // only target the constructs Ai's focus target + MinTurnSpeed = 5, // set this to a reasonable value to avoid projectiles from spinning in place or being too aggressive turing at slow speeds + NoTargetApproach = true, // If true approaches can begin prior to the projectile ever having had a target. + AltNavigation = false, // If true this will swap the default navigation algorithm from ProNav to ZeroEffort Miss. Zero effort is more direct/precise but less cinematic + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + //Debug = true, + ModelName = "\\Models\\Drones\\Artillery_drone.mwm", + VisualProbability = 1f, + ShieldHitDraw = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "SUNSHOT", //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 = 3, + }, + }, + Hit = new ParticleDef + { + Name = "", + 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 = 1, // + Width = 1, // + Color = Color(red: 10, green: 2, blue: 2, 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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[] { + "ProjectileTrailLine", // 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 = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), + 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[] { + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + }, + TextureMode = Normal, + DecayTime = 10, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, 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, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "RadioGlitchLoop", // 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 = 0.5f, // 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 + }; + //Fegyver Bullet + private AmmoDef LightArtillery => new AmmoDef + { + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Railgun_Artillery_Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + 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 = 126000f, // Direct damage; one steel plate is worth 100. + Mass = 300, // 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. + 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 = 10, // For energy weapons, how many shots to fire before reloading. + IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. + + 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 = "", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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). + 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 + + + TimedSpawns = new TimedSpawnDef // disables FragOnEnd in favor of info specified below + { + Enable = false, // Enables TimedSpawns mechanism + Interval = 10, // Time between spawning fragments, in ticks + StartTime = 0, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 900, // Max number of fragment children to spawn + Proximity = 7000, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = false, // Start fragment direction pointing at Target + PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) + GroupSize = 1, // Number of spawns in each group + GroupDelay = 240, // Delay between each group. + DirectAimCone = 5, //Angle cone in which the drone will open fire. + }, + + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "", + }, + Enable = false, + TriggerChance = 1f, + Random = false, + RandomMin = 1, + RandomMax = 1, + SkipParent = false, + PatternSteps = 1, // 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 = 500, // 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 = 6000f, // Distance at which damage begins falling off. + MinMultipler = 0.75f, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 6f, // 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, + AreaEffect = Kinetic, + Detonation = Kinetic, + Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = true, + Radius = 3f, // Meters + Damage = 10000f, // Damages 4 blocks + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 2500f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, //particle spawned on hit + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 140500f, + 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 = 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 = true, // 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 = 1, + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // 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 = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 30000000, + Radius = 250f, // Meters + Duration = 600, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 2, // 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, Thrusters, 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 : Affects target with Physics + + */ + 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 = 5, // Time between each pulse, in game ticks (60 == 1 second). + PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. + GrowTime = 60, // How many ticks it should take the field to grow to full size. + HideModel = false, // Hide the projectile model if it has one. + 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. + 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 = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed + TargetLossDegree = 1f, // Degrees, Is pointed forward + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 900, //120 is required for sound. 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 = 5000, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, //**MUST** be double of speed for sound to work good.// 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: 100), // subtracts value from MaxTrajectory + MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. + Smarts = new SmartsDef + { + Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3, // controls how responsive tracking is. + MaxLateralThrust = 3f, // controls how sharp the trajectile may turn + TrackingDelay = 10, // Measured in Shape diameter units traveled. + MaxChaseTime = 7400, // 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. + 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 + CheckFutureIntersection = true, + OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) + OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Ammo\\Expanse-Torpedo-Smol",//Expanse-Torpedo-Smol + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: -0.21f), + Extras = new ParticleOptionDef + { + Scale = 0.35f, + }, + }, + Hit = new ParticleDef + { + Name = "ArcImpact", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 10, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "THESUNMUZZLE", + ApplyToShield = true, + + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 10000, + MaxDuration = 30, + Scale = 1, + HitPlayChance = 1f, + }, + }, + }, + Lines = new LineDef + { + ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + Tracer = new TracerBaseDef + { + Enable = true, + Length = 8f, + Width = 2f, + Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + 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.. + "WarpBubble", + }, + 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: 16, green: 16, blue: 16, 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", + }, + TextureMode = Normal, + DecayTime = 80, + Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "ObviousFlyby", + HitSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 1f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + //Orszem Launcher Stage + private AmmoDef OrszemLauncher => new AmmoDef + { + AmmoMagazine = "OrszemLauncherStage", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Orszem Sentinel", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + HybridRound = false, // Use both a physical ammo magazine and energy per shot. + EnergyCost = 0f, //0.0645f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // In kilograms; how much force the impact will apply to the target. + Health = 800, // 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 = 1, // 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. + Sync = new SynchronizeDef + { + Full = false, // Be careful, do not use on high fire rate weapons or ammos with many simultaneous fragments. This will send position updates twice per second per projectile/fragment and sync target (grid/block) changes. + PointDefense = true, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = true, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 = "OrszemSentryStage", // AmmoRound field of the ammo to spawn. + Fragments = 1, // 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 = 1, // 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 + 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 = 420, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 420, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 0, // 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 = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 5f, //Aim cone used for Direct fire, in degrees + GroupSize = 0, // Number of spawns in each group + GroupDelay = 0, // 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 = Fragment, // 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 = true, // Skip the Ammo itself, in the list + PatternSteps = 1, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = false, + 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. @@ -1446,7 +2859,7 @@ partial class Parts }, Beams = new BeamDef { - Enable = false, // Enable beam behaviour. + 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. @@ -1454,35 +2867,37 @@ partial class Parts }, Trajectory = new TrajectoryDef { - Guidance = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed - TargetLossDegree = 0f, // Degrees, Is pointed forward + Guidance = Smart, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed + TargetLossDegree = 10f, // Degrees, Is pointed forward TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MaxLifeTime = 120, //120 is required for sound. 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 = 5000, // voxel phasing if you go above 5100 - MaxTrajectory = 10000f, //**MUST** be double of speed for sound to work good.// 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) + MaxLifeTime = 800, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 200f, + DesiredSpeed = 200f, // voxel phasing if you go above 5100 + MaxTrajectory = 10000f, + DeaccelTime = 60, // 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: 1000), // 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 { - Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. - Aggressiveness = 3, // controls how responsive tracking is. - MaxLateralThrust = 3f, // controls how sharp the trajectile may turn - TrackingDelay = 10, // Measured in Shape diameter units traveled. - MaxChaseTime = 12000, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + SteeringLimit = 10f, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 4f, // 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.2f, // controls how sharp the trajectile may turn + TrackingDelay = 120, // 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 = true, // Roam current area after target loss - KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss - CheckFutureIntersection = true, - OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) - OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + KeepAliveAfterTargetLoss = true, // Whether to stop early death of projectile on target loss + OffsetRatio = 3f, // 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 + Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues. { DetectRadius = 0, DeCloakRadius = 0, @@ -1493,7 +2908,7 @@ partial class Parts }, AmmoGraphics = new GraphicDef { - ModelName = "\\Models\\Ammo\\Expanse-Torpedo", + ModelName = "\\Models\\Ammo\\Expanse-Torpedo", //"\\Models\\Drones\\Fighter_drone.mwm", VisualProbability = 1f, ShieldHitDraw = false, Particles = new AmmoParticleDef @@ -1512,7 +2927,7 @@ partial class Parts Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Color = Color(red: 0.5f, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { @@ -1528,7 +2943,7 @@ partial class Parts Name = "", ApplyToShield = true, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Color = Color(red: 0.5f, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { @@ -1550,7 +2965,7 @@ partial class Parts Enable = true, Length = 8f, Width = 2f, - Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + Color = Color(red: 5f, green: 35, blue: 20f, alpha: 1), 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.. @@ -1566,7 +2981,7 @@ partial class Parts SegmentLength = 0f, // Uses the values below. SegmentGap = 0f, // Uses Tracer textures and values Speed = 1f, // meters per second - Color = Color(red: 16, green: 16, blue: 16, alpha: 1), + Color = Color(red: 3, green: 16, blue: 10, alpha: 1), WidthMultiplier = 1f, Reverse = false, UseLineVariance = true, @@ -1582,7 +2997,7 @@ partial class Parts }, TextureMode = Normal, DecayTime = 90, - Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + Color = Color(red: 5f, green: 35, blue: 20f, alpha: 1), Back = false, CustomWidth = 0.2f, UseWidthVariance = false, @@ -1620,25 +3035,20 @@ partial class Parts } }, // Don't edit below this line }; - - - - - - - private AmmoDef HeavyArtillery => new AmmoDef + //Orszem Sentry Drone + private AmmoDef OrszemSentry => new AmmoDef { - AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. - AmmoRound = "Coilgun Artillery Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "OrszemSentryStage", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. 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 = 5000f, // Direct damage; one steel plate is worth 100. - Mass = 1500f, // In kilograms; how much force the impact will apply to the target. - Health = 200, // 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. + BaseDamage = 1f, // Direct damage; one steel plate is worth 100. + Mass = 3000, // In kilograms; how much force the impact will apply to the target. + Health = 2400, // 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. 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 = 3, // For energy weapons, how many shots to fire before reloading. + EnergyMagazineSize = 1, // For energy weapons, how many shots to fire before reloading. IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. Shape = new ShapeDef // Defines the collision shape of the projectile, defaults to LineShape and uses the visual Line Length if set to 0. @@ -1653,30 +3063,30 @@ partial class Parts }, Fragment = new FragmentDef // Formerly known as Shrapnel. Spawns specified ammo fragments on projectile death (via hit or detonation). { - AmmoRound = "Energy", // AmmoRound field of the ammo to spawn. + AmmoRound = "Light_Drone_Slug", // AmmoRound field of the ammo to spawn. Fragments = 1, // Number of projectiles to spawn. - Degrees = 1, // Cone in which to randomize direction of spawned projectiles. + Degrees = 0, // 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). + DropVelocity = false, // 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 + ArmWhenHit = true, // Setting this to true will arm the projectile when its shot by other projectiles. + 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 = 10, // Time between spawning fragments, in ticks + 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 - MaxSpawns = 900, // 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 + MaxSpawns = 5760, // Max number of fragment children to spawn + Proximity = 1500, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance ParentDies = false, // Parent dies once after it spawns its last child. PointAtTarget = true, // Start fragment direction pointing at Target - PointType = Predict, // Point accuracy, Direct, Lead (always fire), Predict (only fire if it can hit) - GroupSize = 1, // Number of spawns in each group - GroupDelay = 240, // Delay between each group. - DirectAimCone = 5, //Angle cone in which the drone will open fire. + PointType = Direct, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 120, // Number of spawns in each group + GroupDelay = 30, // Delay between each group. }, }, @@ -1684,13 +3094,15 @@ partial class Parts { Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. "", + //"FegyverReturnStage", }, Enable = false, + Mode = Fragment, // Select when to activate this pattern, options: Never, Weapon, Fragment, Both TriggerChance = 1f, Random = false, RandomMin = 1, RandomMax = 1, - SkipParent = false, + SkipParent = true, PatternSteps = 1, // Number of Ammos activated per round, will progress in order and loop. Ignored if Random = true. }, DamageScales = new DamageScaleDef @@ -1704,7 +3116,7 @@ partial class Parts // For the following modifier values: -1 = disabled (higher performance), 0 = no damage, 0.01f = 1% damage, 2 = 200% damage. FallOff = new FallOffDef { - Distance = 15000f, // Distance at which damage begins falling off. + 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 @@ -1721,7 +3133,7 @@ partial class Parts }, Shields = new ShieldDef { - Modifier = 3f, // Multiplier for damage against shields. + Modifier = -1f, // 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. }, @@ -1750,7 +3162,7 @@ partial class Parts }, }, }, - AreaOfDamage = new AreaOfDamageDef + AreaOfDamage = new AreaOfDamageDef { ByBlockHit = new ByBlockHitDef { @@ -1769,26 +3181,27 @@ partial class Parts }, EndOfLife = new EndOfLifeDef { - Enable = true, - Radius = 3f, // Meters - Damage = 375000f, - Depth = 2f, - MaxAbsorb = 0f, - Falloff = Linear, //.NoFalloff applies the same damage to all blocks in radius + Enable = true , + Radius = 12f , // Meters + Damage = 45000f , + Depth = 6f , + MaxAbsorb = 0f , + Falloff = Linear , //.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. - 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 = 1f, - CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC - CustomSound = "", // SubtypeID from your Audio SBC, not a filename - Shape = Round, // Round or Diamond - }, + //.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 = 3 , + CustomParticle = "Definitive_Explosion", // Particle SubtypeID, from your Particle SBC + CustomSound = "MyRailRoundHit", // SubtypeID from your Audio SBC, not a filename + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, }, Ewar = new EwarDef { @@ -1853,33 +3266,44 @@ partial class Parts }, Trajectory = new TrajectoryDef { - Guidance = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + Guidance = DroneAdvanced, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced + //Debug = true, TargetLossDegree = 0f, TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MaxLifeTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - AccelPerSec = 0f, - DesiredSpeed = 5000, // voxel phasing if you go above 5100 - MaxTrajectory = 10000f, + MaxLifeTime = 7400, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 50f, + DesiredSpeed = 0.25f, // voxel phasing if you go above 5100 + //MaxSpeed = 50, //Unknown + MaxTrajectory = 7000, //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) - GravityMultiplier = 0.2f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed RangeVariance = Random(start: 0, end: 0), // subtracts value from MaxTrajectory MaxTrajectoryTime = 0, // How long the weapon must fire before it reaches MaxTrajectory. Smarts = new SmartsDef { - Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. - Aggressiveness = 3, // controls how responsive tracking is. - MaxLateralThrust = 3f, // controls how sharp the trajectile may turn - TrackingDelay = 10, // Measured in Shape diameter units traveled. - MaxChaseTime = 12000, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + SteeringLimit = 0, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 3f, // controls how responsive tracking is. + MaxLateralThrust = 3.5f, // controls how sharp the projectile may turn, this is the cheaper but less realistic version of SteeringLimit, cost of 2 on a scale of 1-5, 0 being basic smart. + NavAcceleration = 0, // helps influence how the projectile steers. + TrackingDelay = 0, // Measured in Shape diameter units traveled. + AccelClearance = false, // Setting this to true will prevent smart acceleration until it is clear of the grid and tracking delay has been met (free fall). + MaxChaseTime = 7200, // 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 for drones + FutureIntersectionRange = 400, MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited NoTargetExpire = false, // Expire without ever having a target at TargetLossTime Roam = true, // Roam current area after target loss KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss - CheckFutureIntersection = true, - OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) - OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + 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..) + OffsetMinRange = 0, // The range from target at which offsets are no longer active + FocusOnly = true, // only target the constructs Ai's focus target + MinTurnSpeed = 5, // set this to a reasonable value to avoid projectiles from spinning in place or being too aggressive turing at slow speeds + NoTargetApproach = true, // If true approaches can begin prior to the projectile ever having had a target. + AltNavigation = false, // If true this will swap the default navigation algorithm from ProNav to ZeroEffort Miss. Zero effort is more direct/precise but less cinematic }, Mines = new MinesDef { @@ -1892,32 +3316,29 @@ partial class Parts }, AmmoGraphics = new GraphicDef { - ModelName = "\\Models\\Ammo\\Expanse-Torpedo", + //Debug = true, + ModelName = "\\Models\\Drones\\Artillery_drone.mwm", VisualProbability = 1f, - ShieldHitDraw = false, + ShieldHitDraw = true, Particles = new AmmoParticleDef { Ammo = new ParticleDef { - Name = "Expanse_Trail", //ShipWelderArc - Offset = Vector(x: 0, y: 0, z: -0.21f), + Name = "SUNSHOT", //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 = 0.75f, + Scale = 3, }, }, Hit = new ParticleDef { Name = "", ApplyToShield = true, - - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Restart = false, - MaxDistance = 5000, - MaxDuration = 0, Scale = 1, HitPlayChance = 1f, }, @@ -1926,14 +3347,9 @@ partial class Parts { Name = "", ApplyToShield = true, - - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Restart = false, - MaxDistance = 5000, - MaxDuration = 30, Scale = 1, HitPlayChance = 1f, }, @@ -1941,31 +3357,31 @@ partial class Parts }, Lines = new LineDef { - ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. - WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) - DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + 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 = 8f, - Width = 2f, - Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + Length = 1, // + Width = 1, // + Color = Color(red: 10, green: 2, blue: 2, 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). Textures = new[] {// WeaponLaser, ProjectileTrailLine, WarpBubble, etc.. - "WeaponLaser", + "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[] { - "", + "ProjectileTrailLine", // 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: 16, green: 16, blue: 16, alpha: 1), + Speed = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), WidthMultiplier = 1f, Reverse = false, UseLineVariance = true, @@ -1975,15 +3391,15 @@ partial class Parts }, Trail = new TrailDef { - Enable = true, + Enable = false, Textures = new[] { - "WeaponLaser", + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. }, TextureMode = Normal, - DecayTime = 90, - Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), + DecayTime = 10, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, blue: 1, alpha: 1), Back = false, - CustomWidth = 0.2f, + CustomWidth = 0, UseWidthVariance = false, UseColorFade = true, }, @@ -1997,8 +3413,9 @@ partial class Parts }, AmmoAudio = new AmmoAudioDef { - TravelSound = "ObviousFlyby", + TravelSound = "RadioGlitchLoop", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight HitSound = "", + ShotSound = "", ShieldHitSound = "", PlayerHitSound = "", VoxelHitSound = "", @@ -2006,7 +3423,7 @@ partial class Parts HitPlayChance = 1f, HitPlayShield = true, }, - Ejection = new EjectionDef + 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 @@ -2019,28 +3436,22 @@ partial class Parts } }, // Don't edit below this line }; - - - - - - - - - private AmmoDef PointDefenseBullet => new AmmoDef + //Fegyver Bullet + private AmmoDef PointDroneShot => new AmmoDef { - AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. - AmmoRound = "AMS Bullet", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Light_Drone_Slug", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. 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 = 5000f, // Direct damage; one steel plate is worth 100. - Mass = 3000, // In kilograms; how much force the impact will apply to the target. - Health = 200, // 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. + EnergyCost = 0.0000001f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 1600f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 0, // Recoil. 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 = 3, // For energy weapons, how many shots to fire before reloading. + EnergyMagazineSize = 120, // 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. Shape = new ShapeDef // Defines the collision shape of the projectile, defaults to LineShape and uses the visual Line Length if set to 0. { @@ -2054,44 +3465,41 @@ partial class Parts }, Fragment = new FragmentDef // Formerly known as Shrapnel. Spawns specified ammo fragments on projectile death (via hit or detonation). { - AmmoRound = "Energy", // AmmoRound field of the ammo to spawn. + AmmoRound = "", // AmmoRound field of the ammo to spawn. Fragments = 1, // Number of projectiles to spawn. - Degrees = 1, // Cone in which to randomize direction of spawned projectiles. + Degrees = 0, // 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). + DropVelocity = false, // 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 = true, // Enables TimedSpawns mechanism - Interval = 10, // Time between spawning fragments, in ticks + 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 - MaxSpawns = 900, // 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 - ParentDies = false, // Parent dies once after it spawns its last child. + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 0, // 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, Lead (always fire), Predict (only fire if it can hit) - GroupSize = 1, // Number of spawns in each group - GroupDelay = 240, // Delay between each group. - DirectAimCone = 5, //Angle cone in which the drone will open fire. + GroupSize = 0, // Number of spawns in each group + GroupDelay = 0, // Delay between each group. }, - }, Pattern = new PatternDef { Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. "", }, - Enable = false, - TriggerChance = 1f, - Random = false, + Mode = Fragment, // 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, + SkipParent = false, // Skip the Ammo itself, in the list PatternSteps = 1, // Number of Ammos activated per round, will progress in order and loop. Ignored if Random = true. }, DamageScales = new DamageScaleDef @@ -2100,12 +3508,12 @@ partial class Parts 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. + 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. + Distance = 3000f, // 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 @@ -2115,27 +3523,27 @@ partial class Parts }, Armor = new ArmorDef { - Armor = -1f, // Multiplier for damage against all armor. This is multiplied with the specific armor type multiplier (light, heavy). + Armor = 1.75f, // 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 = -1f, // Multiplier for damage against every else. + NonArmor = 0.15f, // Multiplier for damage against every else. }, Shields = new ShieldDef { - Modifier = -1f, // Multiplier for damage against shields. + Modifier = 1.25f, // 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. + BypassModifier = -2f, // 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, - AreaEffect = Kinetic, - Detonation = Kinetic, - Shield = Kinetic, // Damage against shields is currently all of one type per projectile. + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line }, Custom = new CustomScalesDef { - IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 @@ -2158,9 +3566,9 @@ partial class Parts Enable = false, Radius = 0f, // Meters Damage = 0, - Depth = 1f, // Meters + Depth = 0f, // Meters MaxAbsorb = 0f, - Falloff = Pooled, //.NoFalloff applies the same damage to all blocks in radius + Falloff = Linear, //.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 @@ -2171,9 +3579,9 @@ partial class Parts EndOfLife = new EndOfLifeDef { Enable = false, - Radius = 3, // Meters - Damage = 50, - Depth = 2f, + Radius = 0f, // Meters + Damage = 0f, + Depth = 0f, MaxAbsorb = 0f, Falloff = Linear, //.NoFalloff applies the same damage to all blocks in radius //.Linear drops evenly by distance from center out to max radius @@ -2182,24 +3590,24 @@ partial class Parts //.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. ArmOnlyOnHit = false, // Detonation only is available, After it hits something, when this is true. IE, if shot down, it won't explode. - MinArmingTime = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. - NoVisuals = false, - NoSound = false, - ParticleScale = 1f, - CustomParticle = "FlechetteBurst", // Particle SubtypeID, from your Particle SBC - CustomSound = "", // SubtypeID from your Audio SBC, not a filename - Shape = Round, // Round or Diamond + MinArmingTime = 0, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = true, + NoSound = true, + ParticleScale = 1, + CustomParticle = "particleName", // Particle SubtypeID, from your Particle SBC + CustomSound = "soundName", // SubtypeID from your Audio SBC, not a filename + Shape = Diamond, // Round or Diamond }, }, Ewar = new EwarDef { - Enable = false, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! - Type = Emp, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, - Mode = Field, // Effect , Field - Strength = 30000000, - Radius = 250f, // Meters - Duration = 600, // In Ticks - StackDuration = false, // Combined Durations + Enable = true, // Enables the EWAR , Electronic-Warfare System + Type = Offense, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Effect, // Effect , Field + Strength = 100f, + Radius = 15f, // Meters + Duration = 500, // In Ticks + StackDuration = true, // Combined Durations Depletable = false, MaxStacks = 2, // Max Debuffs at once NoHitParticle = false, @@ -2228,12 +3636,12 @@ partial class Parts }, Field = new FieldDef { - Interval = 5, // Time between each pulse, in game ticks (60 == 1 second). - PulseChance = 100, // Chance from 0 - 100 that an entity in the field will be hit by any given pulse. - GrowTime = 60, // How many ticks it should take the field to grow to full size. + Interval = 0, // Time between each pulse, in game ticks (60 == 1 second). + 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 projectile model if it has one. ShowParticle = true, // Show Block damage effect. - TriggerRange = 250f, //range at which fields are triggered + TriggerRange = 0f, //range at which fields are triggered Particle = new ParticleDef // Particle effect to generate at the field's position. { Name = "", // SubtypeId of field particle effect. @@ -2246,7 +3654,7 @@ partial class Parts }, Beams = new BeamDef { - Enable = false, // Enable beam behaviour. + Enable = true, // 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. @@ -2254,35 +3662,35 @@ partial class Parts }, Trajectory = new TrajectoryDef { - Guidance = Smart, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed, DroneAdvanced - TargetLossDegree = 0f, + Guidance = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed + TargetLossDegree = 20f, // Degrees, Is pointed forward TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MaxLifeTime = 7200, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - AccelPerSec = 100f, - DesiredSpeed = 300, // voxel phasing if you go above 5100 - MaxTrajectory = 400000, - //FieldTime was here, it's dead now is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) - GravityMultiplier = 0.2f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. - SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + MaxLifeTime = 120, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). Please have a value for this, It stops Bad things. + AccelPerSec = 3600f, // Meters Per Second. This is the spawning Speed of the Projectile, and used by turning. + DesiredSpeed = 3600, // voxel phasing if you go above 5100 + MaxTrajectory = 3000f, // 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. Smarts = new SmartsDef { - Inaccuracy = 0, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. - Aggressiveness = 3, // controls how responsive tracking is. - MaxLateralThrust = 3f, // controls how sharp the trajectile may turn - TrackingDelay = 10, // Measured in Shape diameter units traveled. - MaxChaseTime = 12000, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + SteeringLimit = 30, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 1f, // controls how responsive tracking is. + MaxLateralThrust = 0.55f, // controls how sharp the trajectile may turn + TrackingDelay = 60, // Measured in Shape diameter units traveled. + MaxChaseTime = 120, // 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. MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited NoTargetExpire = false, // Expire without ever having a target at TargetLossTime - Roam = true, // Roam current area after target loss + Roam = false, // Roam current area after target loss KeepAliveAfterTargetLoss = false, // Whether to stop early death of projectile on target loss - CheckFutureIntersection = true, - OffsetRatio = 0.1f, // The ratio to offset the random dir (0 to 1) - OffsetTime = 120, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + 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..) }, - Mines = new MinesDef + Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues. { DetectRadius = 0, DeCloakRadius = 0, @@ -2291,34 +3699,41 @@ partial class Parts Persist = false, }, }, - AmmoGraphics = new GraphicDef + AmmoGraphics = new GraphicDef { - ModelName = "\\Models\\Ammo\\Expanse-Torpedo", - VisualProbability = 1f, - ShieldHitDraw = false, + ModelName = "", // Model Path goes here. "\\Models\\Ammo\\Starcore_Arrow_Missile_Large" + VisualProbability = 1f, // % + ShieldHitDraw = true, + Decals = new DecalDef //will need pattern ammo if laggy + { + MaxAge = 300, + Map = new[] + { + new TextureMapDef + { + HitMaterial = "Metal", + DecalMaterial = "REE_Laser_Decal", + }, + }, + }, Particles = new AmmoParticleDef { Ammo = new ParticleDef { - Name = "Expanse_Trail", //ShipWelderArc - Offset = Vector(x: 0, y: 0, z: -0.21f), + Name = "", //ShipWelderArc + Offset = Vector(x: 128, y: 0, z: 0), Extras = new ParticleOptionDef { - Scale = 0.75f, + Scale = 1, }, }, Hit = new ParticleDef { - Name = "", + Name = "ArcImpact", ApplyToShield = true, - - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Restart = false, - MaxDistance = 5000, - MaxDuration = 0, Scale = 1, HitPlayChance = 1f, }, @@ -2327,14 +3742,9 @@ partial class Parts { Name = "", ApplyToShield = true, - - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Restart = false, - MaxDistance = 5000, - MaxDuration = 30, Scale = 1, HitPlayChance = 1f, }, @@ -2342,35 +3752,34 @@ partial class Parts }, Lines = new LineDef { - ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. - WidthVariance = Random(start: 0f, end: 0.5f), // adds random value to default width (negatives shrinks width) - DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + ColorVariance = Random(start: 0.25f, end: 3f), // multiply the color by random values within range. + WidthVariance = Random(start: 0.25f, end: 1f), // adds random value to default width (negatives shrinks width) Tracer = new TracerBaseDef { Enable = true, - Length = 8f, - Width = 2f, - Color = Color(red: 40f, green: 25, blue: 40f, alpha: 1), + Length = 1f, // + Width = 0.35f, // + Color = Color(red: 5, green: 12, blue: 12, 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", + "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[] { - "", + "WeaponLaser", // Please always have this Line set, if this Section is enabled. }, - SegmentLength = 0f, // Uses the values below. + SegmentLength = 50f, // Uses the values below. SegmentGap = 0f, // Uses Tracer textures and values Speed = 1f, // meters per second - Color = Color(red: 16, green: 16, blue: 16, alpha: 1), + Color = Color(red: 2, green: 4, blue: 2.5f, alpha: 1), WidthMultiplier = 1f, Reverse = false, UseLineVariance = true, - WidthVariance = Random(start: 0f, end: 0f), + WidthVariance = Random(start: 0.5f, end: 0.75f), ColorVariance = Random(start: 0f, end: 0f) } }, @@ -2378,28 +3787,28 @@ partial class Parts { Enable = true, Textures = new[] { - "WeaponLaser", + "WeaponLaser", // Please always have this Line set, if this Section is enabled. }, TextureMode = Normal, - DecayTime = 90, - Color = Color(red: 40f, green: 25f, blue: 40f, alpha: 1), - Back = false, - CustomWidth = 0.2f, + DecayTime = 1, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 5, green: 12, blue: 12, alpha: 1), + Back = true, + CustomWidth = 1f, UseWidthVariance = false, UseColorFade = true, }, OffsetEffect = new OffsetEffectDef { - MaxOffset = 0,// 0 offset value disables this effect - MinLength = 0.2f, - MaxLength = 3, + MaxOffset = 3,// 0 offset value disables this effect + MinLength = 1.2f, + MaxLength = 5, }, }, }, AmmoAudio = new AmmoAudioDef { - TravelSound = "ObviousFlyby", - HitSound = "", + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "MedLaserLoop", ShieldHitSound = "", PlayerHitSound = "", VoxelHitSound = "", @@ -2407,7 +3816,7 @@ partial class Parts HitPlayChance = 1f, HitPlayShield = true, }, - Ejection = new EjectionDef + 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 @@ -2423,5 +3832,19 @@ partial class Parts + + + + + + + + + + + + + + } } diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Goncol_Animation.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Goncol_Animation.cs index ad5a8db4e..4ff1875c5 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Goncol_Animation.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Goncol_Animation.cs @@ -1,237 +1,237 @@ -using System.Collections.Generic; -using static Scripts.Structure.WeaponDefinition; -using static Scripts.Structure.WeaponDefinition.AnimationDef; -using static Scripts.Structure.WeaponDefinition.AnimationDef.PartAnimationSetDef.EventTriggers; -using static Scripts.Structure.WeaponDefinition.AnimationDef.RelMove.MoveType; -using static Scripts.Structure.WeaponDefinition.AnimationDef.RelMove; -namespace Scripts -{ // Don't edit above this line - partial class Parts - { - private AnimationDef FieldAnimation => new AnimationDef - { - - - //Emissives = new [] - //{ - // - // Emissive( - // EmissiveName: "TurnOn", - // Colors: new [] - // { - // Color(red:0, green: 0, blue:0, alpha: 1),//will transitions form one color to the next if more than one - // Color(red:0, green: .051f, blue:.051f, alpha: .05f), - // - // }, - // IntensityFrom:1, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value - // IntensityTo:1, - // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value - // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts - // EmissivePartNames: new [] - // { - // "EmissiveSpectrumAtlas" - // }), - // - // Emissive( - // EmissiveName: "TurnOff", - // Colors: new [] - // { - // Color(red:0, green: .051f, blue:.051f, alpha: .05f),//will transitions form one color to the next if more than one - // Color(red:0, green: 0, blue: 0, alpha: 1),//will transitions form one color to the next if more than one - - - // }, - // IntensityFrom:1, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value - // IntensityTo:0, - // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value - // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts - // EmissivePartNames: new [] - // { - // "Emissive3" - // }), - - - - - // Emissive( - // EmissiveName: "PowerUp", - // Colors: new [] - // { - // Color(red:0, green: .051f, blue:.051f, alpha: .05f),//will transitions form one color to the next if more than one - // Color(red:0, green: 1, blue:1, alpha: 1), - - // }, - // IntensityFrom:0, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value - // IntensityTo:1, - // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value - // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts - // EmissivePartNames: new [] - // { - // "Emissive3" - // }), - // - // Emissive( - // EmissiveName: "ShootPulse", - // Colors: new [] - // { - // - // - // Color(red:0, green: 250, blue: 250, alpha: 1), - // - // }, - // IntensityFrom:1, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value - // IntensityTo:1, - // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value - // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts - // EmissivePartNames: new [] - // { - // "EmissiveSpectrumAtlas.003" - // }), - // Emissive( - // EmissiveName: "PowerDown", - // Colors: new [] - // { - // - // Color(red:0, green: 250, blue:250, alpha: 1), - // Color(red:0, green: .051f, blue:.051f, alpha: .05f), - // - // }, - // IntensityFrom:1, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value - // IntensityTo:1, - // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value - // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts - // EmissivePartNames: new [] - // { - // "Emissive3" - // }), - // - //}, - - EventParticles = new Dictionary - { - [Firing] = new[]{ //This particle fires in the Prefire state, during the 10 second windup the gauss cannon has. - //Valid options include Firing, Reloading, Overheated, Tracking, On, Off, BurstReload, OutOfAmmo, PreFire. - new EventParticle - { - EmptyNames = Names("eject"), //If you want an effect on your own dummy - MuzzleNames = Names(""), //If you want an effect on the muzzle - StartDelay = 0, //ticks 60 = 1 second, delay until particle starts. - LoopDelay = 0, //ticks 60 = 1 second - ForceStop = true, - Particle = new ParticleDef - { - Name = "FieldShield", //Particle subtypeID - Color = Color(red: 25, green: 25, blue: 25, alpha: 1), //This is redundant as recolouring is no longer supported. - Extras = new ParticleOptionDef //do your particle colours in your particle file instead. - { - Loop = false, //Should match your particle definition. - Restart = false, - //Scale = 1, //How chunky the particle is. - // MaxDistance = 10000, - //MaxDuration = 1, - } - } - }, - }, - }, - - AnimationSets = new[] - { - #region Muzzles Animations - new PartAnimationSetDef() - { - SubpartId = Names("rotary"), - BarrelId = "Any", //only used for firing, use "Any" for all muzzles - StartupFireDelay = 0, - AnimationDelays = Delays(FiringDelay : 0, ReloadingDelay: 0, OverheatedDelay: 0, TrackingDelay: 0, LockedDelay: 0, OnDelay: 0, OffDelay: 0, BurstReloadDelay: 0, OutOfAmmoDelay: 0, PreFireDelay: 0, StopFiringDelay: 0, StopTrackingDelay:0, InitDelay:0),//Delay before animation starts - Reverse = Events(), - Loop = Events(), - EventMoveSets = new Dictionary - { - // Reloading, Firing, Tracking, Overheated, TurnOn, TurnOff, BurstReload, NoMagsToLoad, PreFire, EmptyOnGameLoad, StopFiring, StopTracking, LockDelay, Init - - [Firing] = - new[] - { - - new RelMove - { - CenterEmpty = "", - TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second - MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade - LinearPoints = new XYZ[0], - Rotation = Transformation(0, 0, 5), //degrees - RotAroundCenter = Transformation(0, 0, 0), //degrees - }, - - new RelMove - { - CenterEmpty = "", - TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second - MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade - LinearPoints = new XYZ[0], - Rotation = Transformation(0, 0, 9), //degrees - RotAroundCenter = Transformation(0, 0, 0), //degrees - }, - - new RelMove - { - CenterEmpty = "", - TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second - MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade - LinearPoints = new XYZ[0], - Rotation = Transformation(0, 0, 18), //degrees - RotAroundCenter = Transformation(0, 0, 0), //degrees - }, - - new RelMove - { - CenterEmpty = "", - TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second - MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade - LinearPoints = new XYZ[0], - Rotation = Transformation(0, 0, 36), //degrees - RotAroundCenter = Transformation(0, 0, 0), //degrees - }, - - new RelMove - { - CenterEmpty = "", - TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second - MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade - LinearPoints = new XYZ[0], - Rotation = Transformation(0, 0, 72), //degrees - RotAroundCenter = Transformation(0, 0, 0), //degrees - }, - - new RelMove - { - CenterEmpty = "", - TicksToMove = 250, //number of ticks to complete motion, 60 = 1 second - MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade - LinearPoints = new XYZ[0], - Rotation = Transformation(0, 0, 1800), //degrees - RotAroundCenter = Transformation(0, 0, 0), //degrees - }, - - new RelMove - { - CenterEmpty = "", - TicksToMove = 100, //number of ticks to complete motion, 60 = 1 second - MovementType = ExpoDecay, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade - LinearPoints = new XYZ[0], - Rotation = Transformation(0, 0, 180), //degrees - RotAroundCenter = Transformation(0, 0, 0), //degrees - }, - }, - - } - }, - - #endregion - - - } - }; - } -} +using System.Collections.Generic; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AnimationDef; +using static Scripts.Structure.WeaponDefinition.AnimationDef.PartAnimationSetDef.EventTriggers; +using static Scripts.Structure.WeaponDefinition.AnimationDef.RelMove.MoveType; +using static Scripts.Structure.WeaponDefinition.AnimationDef.RelMove; +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AnimationDef FieldAnimation => new AnimationDef + { + + + //Emissives = new [] + //{ + // + // Emissive( + // EmissiveName: "TurnOn", + // Colors: new [] + // { + // Color(red:0, green: 0, blue:0, alpha: 1),//will transitions form one color to the next if more than one + // Color(red:0, green: .051f, blue:.051f, alpha: .05f), + // + // }, + // IntensityFrom:1, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value + // IntensityTo:1, + // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value + // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts + // EmissivePartNames: new [] + // { + // "EmissiveSpectrumAtlas" + // }), + // + // Emissive( + // EmissiveName: "TurnOff", + // Colors: new [] + // { + // Color(red:0, green: .051f, blue:.051f, alpha: .05f),//will transitions form one color to the next if more than one + // Color(red:0, green: 0, blue: 0, alpha: 1),//will transitions form one color to the next if more than one + + + // }, + // IntensityFrom:1, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value + // IntensityTo:0, + // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value + // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts + // EmissivePartNames: new [] + // { + // "Emissive3" + // }), + + + + + // Emissive( + // EmissiveName: "PowerUp", + // Colors: new [] + // { + // Color(red:0, green: .051f, blue:.051f, alpha: .05f),//will transitions form one color to the next if more than one + // Color(red:0, green: 1, blue:1, alpha: 1), + + // }, + // IntensityFrom:0, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value + // IntensityTo:1, + // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value + // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts + // EmissivePartNames: new [] + // { + // "Emissive3" + // }), + // + // Emissive( + // EmissiveName: "ShootPulse", + // Colors: new [] + // { + // + // + // Color(red:0, green: 250, blue: 250, alpha: 1), + // + // }, + // IntensityFrom:1, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value + // IntensityTo:1, + // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value + // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts + // EmissivePartNames: new [] + // { + // "EmissiveSpectrumAtlas.003" + // }), + // Emissive( + // EmissiveName: "PowerDown", + // Colors: new [] + // { + // + // Color(red:0, green: 250, blue:250, alpha: 1), + // Color(red:0, green: .051f, blue:.051f, alpha: .05f), + // + // }, + // IntensityFrom:1, //starting intensity, can be 0.0-1.0 or 1.0-0.0, setting both from and to, to the same value will stay at that value + // IntensityTo:1, + // CycleEmissiveParts: false,//whether to cycle from one part to the next, while also following the Intensity Range, or set all parts at the same time to the same value + // LeavePreviousOn: true,//true will leave last part at the last setting until end of animation, used with cycleEmissiveParts + // EmissivePartNames: new [] + // { + // "Emissive3" + // }), + // + //}, + + EventParticles = new Dictionary + { + [Firing] = new[]{ //This particle fires in the Prefire state, during the 10 second windup the gauss cannon has. + //Valid options include Firing, Reloading, Overheated, Tracking, On, Off, BurstReload, OutOfAmmo, PreFire. + new EventParticle + { + EmptyNames = Names("eject"), //If you want an effect on your own dummy + MuzzleNames = Names(""), //If you want an effect on the muzzle + StartDelay = 0, //ticks 60 = 1 second, delay until particle starts. + LoopDelay = 0, //ticks 60 = 1 second + ForceStop = true, + Particle = new ParticleDef + { + Name = "FieldShield", //Particle subtypeID + Color = Color(red: 25, green: 25, blue: 25, alpha: 1), //This is redundant as recolouring is no longer supported. + Extras = new ParticleOptionDef //do your particle colours in your particle file instead. + { + Loop = false, //Should match your particle definition. + Restart = false, + //Scale = 1, //How chunky the particle is. + // MaxDistance = 10000, + //MaxDuration = 1, + } + } + }, + }, + }, + + AnimationSets = new[] + { + #region Muzzles Animations + new PartAnimationSetDef() + { + SubpartId = Names("rotary"), + BarrelId = "Any", //only used for firing, use "Any" for all muzzles + StartupFireDelay = 0, + AnimationDelays = Delays(FiringDelay : 0, ReloadingDelay: 0, OverheatedDelay: 0, TrackingDelay: 0, LockedDelay: 0, OnDelay: 0, OffDelay: 0, BurstReloadDelay: 0, OutOfAmmoDelay: 0, PreFireDelay: 0, StopFiringDelay: 0, StopTrackingDelay:0, InitDelay:0),//Delay before animation starts + Reverse = Events(), + Loop = Events(), + EventMoveSets = new Dictionary + { + // Reloading, Firing, Tracking, Overheated, TurnOn, TurnOff, BurstReload, NoMagsToLoad, PreFire, EmptyOnGameLoad, StopFiring, StopTracking, LockDelay, Init + + [Firing] = + new[] + { + + new RelMove + { + CenterEmpty = "", + TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 0, 5), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + new RelMove + { + CenterEmpty = "", + TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 0, 9), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + new RelMove + { + CenterEmpty = "", + TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 0, 18), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + new RelMove + { + CenterEmpty = "", + TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 0, 36), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + new RelMove + { + CenterEmpty = "", + TicksToMove = 10, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 0, 72), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + new RelMove + { + CenterEmpty = "", + TicksToMove = 250, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 0, 1800), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + new RelMove + { + CenterEmpty = "", + TicksToMove = 100, //number of ticks to complete motion, 60 = 1 second + MovementType = ExpoDecay, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 0, 180), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + }, + + } + }, + + #endregion + + + } + }; + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Goncol_Generator.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Goncol_Generator.cs index be3b08c1c..9844f18b2 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Goncol_Generator.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Goncol_Generator.cs @@ -1,182 +1,182 @@ -using static Scripts.Structure; -using static Scripts.Structure.WeaponDefinition; -using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; -using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; -using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; -using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; - -namespace Scripts -{ - partial class Parts - { - // Don't edit above this line - WeaponDefinition Goncol_MagnaPulse => new WeaponDefinition - { - Assignments = new ModelAssignmentsDef - { - MountPoints = new[] { - new MountPointDef { - SubtypeId = "MagnaPulse_Gen", // Block Subtypeid. Your Cubeblocks contain this information - SpinPartId = "", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. - MuzzlePartId = "elevation", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. - AzimuthPartId = "azimuth", // Your Rotating Subpart, the bit that moves sideways. - ElevationPartId = "elevation",// Your Elevating Subpart, that bit that moves up. - DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. - IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. - }, - - }, - Muzzles = new[] { - "muzzle" // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A - }, - Ejector = "", // 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. - }, - Targeting = new TargetingDef - { - Threats = new[] { - Projectiles, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals - }, - SubSystems = new[] { - Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any - }, - ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). - IgnoreDumbProjectiles = false, // Don't fire at non-smart projectiles. - 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 = 0, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. - MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. - TopTargets = 4, // 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. - }, - HardPoint = new HardPointDef - { - PartName = "MagnaPulse Generator", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). - DeviateShotAngle = 0f, // Projectile inaccuracy in degrees. - AimingTolerance = 10f, // 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 - 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. - CanShootSubmerged = false, // Whether the weapon can be fired underwater when using WaterMod. - - Ui = new UiDef - { - RateOfFire = false, // Enables terminal slider for changing rate of fire. - DamageModifier = false, // Enables terminal slider for changing damage per shot. - ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. - EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. - }, - Ai = new AiDef - { - TrackTargets = false, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. - TurretAttached = false, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. - TurretController = false, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. - PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. - LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. - SuppressFire = false, // If enabled, weapon can only be fired manually. - OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. - }, - HardWare = new HardwareDef - { - RotateRate = 100f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). - ElevateRate = 100f, // Max traversal speed of elevation subpart in radians per tick. - MinAzimuth = -20, - MaxAzimuth = 20, - MinElevation = -20, - MaxElevation = 20, - HomeAzimuth = 0, // Default resting rotation angle - HomeElevation = 0, // Default resting elevation - InventorySize = 1f, // Inventory capacity in kL. - IdlePower = 80f, // Constant base power draw in MW. - FixedOffset = false, // Deprecated. - Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. - Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom - CriticalReaction = new CriticalDef - { - Enable = false, // Enables Warhead behaviour. - DefaultArmedTimer = 120, // Sets default countdown duration. - PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. - TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. - AmmoRound = "", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. - }, - }, - Other = new OtherDef - { - ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. - RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. - EnergyPriority = 0, // Deprecated. - MuzzleCheck = true, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. - Debug = false, // Force enables debug mode. - RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. - CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. - CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. - }, - Loading = new LoadingDef - { - RateOfFire = 360, // Set this to 3600 for beam weapons. This is how fast your Gun fires. 60 = once per second - BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. - TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. - SkipBarrels = 0, // Number of muzzles to skip after each fire event. - ReloadTime = 1440, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MagsToLoad = 0, // Number of physical magazines to consume on reload. - DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - HeatPerShot = 8, // Heat generated per shot. - MaxHeat = 100, // Max heat before weapon enters cooldown (70% of max heat). - Cooldown = 1f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 - HeatSinkRate = 25, // Amount of heat lost per second. - DegradeRof = true, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat). - ShotsInBurst = 10, // 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 = 60, // How long to spend "reloading" after each burst. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - FireFull = true, // 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. - GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. - BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. - DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). - SpinFree = true, // Spin barrel while not firing - StayCharged = false, // Will start recharging whenever power cap is not full. - MaxActiveProjectiles = 0, // Maximum number of drones in flight (only works for drone launchers) - MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon - }, - Audio = new HardPointAudioDef - { - PreFiringSound = "", // Audio for warmup effect. - FiringSound = "shieldthing_firesound", // Audio for firing. - FiringSoundPerShot = true, // Whether to replay the sound for each shot, or just loop over the entire track while firing. - ReloadSound = "MaxMemeReload", // Sound SubtypeID, for when your Weapon is in a reloading state - NoAmmoSound = "", - HardPointRotationSound = "WepTurretGatlingRotate", // Audio played when turret is moving. - BarrelRotationSound = "WepShipGatlingRotation", - FireSoundEndDelay = 0, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). - FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. - }, - Graphics = new HardPointParticleDef - { - Effect1 = new ParticleDef - { - Name = "FieldShield", // SubtypeId of muzzle particle effect. - Color = Color(red: 0, green: 0, blue: 0, alpha: 1), // Deprecated, set color in particle sbc. - Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. - Extras = new ParticleOptionDef - { - Loop = true, // Set this to the same as in the particle sbc! - Restart = true, // Whether to end a looping effect instantly when firing stops. - //MaxDistance = 10000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! - //MaxDuration = 0, // How many ticks the effect should be ended after, if it's still running. - //Scale = 1f, // Scale of effect. - }, - }, - }, - }, - Ammos = new[] { - FieldDefault, // Must list all primary, shrapnel, and pattern ammos. - }, - Animations = FieldAnimation, - //Upgrades = UpgradeModules, - }; - // Don't edit below this line. - } -} +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts +{ + partial class Parts + { + // Don't edit above this line + WeaponDefinition Goncol_MagnaPulse => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "MagnaPulse_Gen", // Block Subtypeid. Your Cubeblocks contain this information + SpinPartId = "", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. + MuzzlePartId = "elevation", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. + AzimuthPartId = "azimuth", // Your Rotating Subpart, the bit that moves sideways. + ElevationPartId = "elevation",// Your Elevating Subpart, that bit that moves up. + DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + + }, + Muzzles = new[] { + "muzzle" // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A + }, + Ejector = "", // 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. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Projectiles, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals + }, + SubSystems = new[] { + Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = false, // Don't fire at non-smart projectiles. + 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 = 0, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. + TopTargets = 4, // 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. + }, + HardPoint = new HardPointDef + { + PartName = "MagnaPulse Generator", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 0f, // Projectile inaccuracy in degrees. + AimingTolerance = 10f, // 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 + 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. + CanShootSubmerged = false, // Whether the weapon can be fired underwater when using WaterMod. + + Ui = new UiDef + { + RateOfFire = false, // Enables terminal slider for changing rate of fire. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + }, + Ai = new AiDef + { + TrackTargets = false, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = false, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = false, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + }, + HardWare = new HardwareDef + { + RotateRate = 100f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 100f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = -20, + MaxAzimuth = 20, + MinElevation = -20, + MaxElevation = 20, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 0, // Default resting elevation + InventorySize = 1f, // Inventory capacity in kL. + IdlePower = 80f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = true, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + Debug = false, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 360, // Set this to 3600 for beam weapons. This is how fast your Gun fires. 60 = once per second + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 1440, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 0, // Number of physical magazines to consume on reload. + DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 8, // Heat generated per shot. + MaxHeat = 100, // Max heat before weapon enters cooldown (70% of max heat). + Cooldown = 1f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 + HeatSinkRate = 25, // Amount of heat lost per second. + DegradeRof = true, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat). + ShotsInBurst = 10, // 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 = 60, // How long to spend "reloading" after each burst. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + FireFull = true, // 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. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = true, // Spin barrel while not firing + StayCharged = false, // Will start recharging whenever power cap is not full. + MaxActiveProjectiles = 0, // Maximum number of drones in flight (only works for drone launchers) + MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "", // Audio for warmup effect. + FiringSound = "shieldthing_firesound", // Audio for firing. + FiringSoundPerShot = true, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "MaxMemeReload", // Sound SubtypeID, for when your Weapon is in a reloading state + NoAmmoSound = "", + HardPointRotationSound = "WepTurretGatlingRotate", // Audio played when turret is moving. + BarrelRotationSound = "WepShipGatlingRotation", + FireSoundEndDelay = 0, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "FieldShield", // SubtypeId of muzzle particle effect. + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + Extras = new ParticleOptionDef + { + Loop = true, // Set this to the same as in the particle sbc! + Restart = true, // Whether to end a looping effect instantly when firing stops. + //MaxDistance = 10000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! + //MaxDuration = 0, // How many ticks the effect should be ended after, if it's still running. + //Scale = 1f, // Scale of effect. + }, + }, + }, + }, + Ammos = new[] { + FieldDefault, // Must list all primary, shrapnel, and pattern ammos. + }, + Animations = FieldAnimation, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HangarBaySentry.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HangarBaySentry.cs index 6ff446304..0612c6a2b 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HangarBaySentry.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HangarBaySentry.cs @@ -37,7 +37,7 @@ partial class Parts Targeting = new TargetingDef { Threats = new[] { - Grids, Projectiles, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals + Grids,// Projectiles, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals }, SubSystems = new[] { Thrust, Utility, Offense, Power, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any @@ -47,38 +47,47 @@ 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 = 15000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MaxTargetDistance = 20000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. TopTargets = 0, // Maximum number of targets to randomize between; 0 = unlimited. TopBlocks = 0, // Maximum number of blocks to randomize between; 0 = unlimited. StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. + + + + + }, HardPoint = new HardPointDef { PartName = "Sentry Hangar Bay", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). - DeviateShotAngle = 0f, // Projectile inaccuracy in degrees. - AimingTolerance = 1f, // How many degrees off target a turret can fire at. 0 - 180 firing angle. + DeviateShotAngle = 25f, // Projectile inaccuracy in degrees. + AimingTolerance = 180f, // 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 DelayCeaseFire = 120, // Measured in game ticks (6 = 100ms, 60 = 1 second, etc..). Length of time the weapon continues firing after trigger is released. - AddToleranceToTracking = false, // Allows turret to only track to the edge of the AimingTolerance cone instead of dead centre. + AddToleranceToTracking = true, // Allows turret to only 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 { RateOfFire = false, // Enables terminal slider for changing rate of fire. DamageModifier = false, // Enables terminal slider for changing damage per shot. - ToggleGuidance = true, // Enables terminal option to disable smart projectile guidance. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + AlternateUi = false, // This simplifies and customizes the block controls for alternative weapon purposes, + DisableStatus = false, // Do not display weapon status NoTarget, Reloading, NoAmmo, etc.. }, Ai = new AiDef { - TrackTargets = false, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. - TurretAttached = false, // Whether this weapon is a turret and should have the UI and API options for such. - TurretController = false, // Whether this weapon can physically control the turret's movement. - PrimaryTracking = false, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. - LockOnFocus = false, // Whether this weapon should automatically fire at a target that has been locked onto via HUD. + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = false, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. SuppressFire = false, // If enabled, weapon can only be fired manually. OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + DefaultLeadGroup = 0, // Default LeadGroup setting, range 0-5, 0 is disables lead group. Only useful for fixed weapons or weapons set to OverrideLeads. + TargetGridCenter = false, // Does not target blocks, instead it targets grid center. }, HardWare = new HardwareDef { @@ -101,7 +110,7 @@ partial class Parts DefaultArmedTimer = 120, // Sets default countdown duration. PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. - AmmoRound = "40m", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + AmmoRound = "", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. }, }, Other = new OtherDef @@ -117,12 +126,12 @@ partial class Parts }, Loading = new LoadingDef { - RateOfFire = 3600, // Set this to 3600 for beam weapons. + RateOfFire = 36, // Set this to 3600 for beam weapons. BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. SkipBarrels = 0, // Number of muzzles to skip after each fire event. - ReloadTime = 720, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MagsToLoad = 3, // Number of physical magazines to consume on reload. + ReloadTime = 7200, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 1, // Number of physical magazines to consume on reload. DelayUntilFire = 120, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). HeatPerShot = 0, // Heat generated per shot. MaxHeat = 1000, // Max heat before weapon enters cooldown (70% of max heat). @@ -184,19 +193,23 @@ partial class Parts }, }, Ammos = new[] { - //Dragonyos, - // AryxATLASAmmoDrone, - Fegyver, - Agyu, - Orszem, - //ConcussionMissile, - LightArtillery, + FegyverLauncher, //Goes drunkenly for a kilometer, then next stage is sentry mode to stay still + FegyverSentry, //Sentry mode, is the parent stage for the weapon fragments + LightArtillery, //Main weapon, does the actual damage, only fires when it can + + AgyuLauncher, + AgyuSentry, HeavyArtillery, - PointDefenseBullet - //ReturnToSender + + + OrszemLauncher, + OrszemSentry, + PointDroneShot, + }, - //Animations = AryxSmallHangarAnimations, + //Animations = ArcAnimation,// + //Animations = HexcannonAnimation, //Upgrades = UpgradeModules, }; diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HangarBayTester.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HangarBayTester.cs new file mode 100644 index 000000000..c35838adc --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HangarBayTester.cs @@ -0,0 +1,227 @@ +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts +{ + partial class Parts + { + + WeaponDefinition Test_Hangar => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "WCTest_Hangar", + SpinPartId = "None", // For weapons with a spinning barrel such as Gatling Guns. + MuzzlePartId = "None", // The subpart where your muzzle empties are located. + AzimuthPartId = "None", + ElevationPartId = "None", + DurabilityMod = 0.2f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + }, + Muzzles = new[] { + "muzzle_missile_1" + }, + Ejector = "", // Optional; empty from which to eject "shells" if specified. + Scope = "", // Where line of sight checks are performed from. Must be clear of block collision. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Grids,// Projectiles, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals + }, + SubSystems = new[] { + Thrust, Utility, Offense, Power, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = false, // Don't fire at non-smart projectiles. + 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 = 15000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. + TopTargets = 0, // Maximum number of targets to randomize between; 0 = unlimited. + TopBlocks = 0, // Maximum number of blocks to randomize between; 0 = unlimited. + StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. + + + + + + }, + HardPoint = new HardPointDef + { + PartName = "Tester Hangar Bay", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 25f, // Projectile inaccuracy in degrees. + AimingTolerance = 180f, // 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 + DelayCeaseFire = 120, // Measured in game ticks (6 = 100ms, 60 = 1 second, etc..). Length of time the weapon continues firing after trigger is released. + AddToleranceToTracking = true, // Allows turret to only 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 + { + RateOfFire = false, // Enables terminal slider for changing rate of fire. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + AlternateUi = false, // This simplifies and customizes the block controls for alternative weapon purposes, + DisableStatus = false, // Do not display weapon status NoTarget, Reloading, NoAmmo, etc.. + }, + Ai = new AiDef + { + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = false, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + DefaultLeadGroup = 0, // Default LeadGroup setting, range 0-5, 0 is disables lead group. Only useful for fixed weapons or weapons set to OverrideLeads. + TargetGridCenter = false, // Does not target blocks, instead it targets grid center. + }, + HardWare = new HardwareDef + { + RotateRate = 0f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = 0, + MaxAzimuth = 0, + MinElevation = 0, + MaxElevation = 0, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 0, // Default resting elevation + InventorySize = 0.5f, // Inventory capacity in kL. + IdlePower = 0.2f, // Power draw in MW while not charging, or for non-energy weapons. Defaults to 0.001. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "40m", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + Debug = true, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 360, // Set this to 3600 for beam weapons. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 720, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 1, // Number of physical magazines to consume on reload. + DelayUntilFire = 120, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 0, // Heat generated per shot. + MaxHeat = 1000, // Max heat before weapon enters cooldown (70% of max heat). + Cooldown = .5f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 + HeatSinkRate = 0, // Amount of heat lost per second. + DegradeRof = false, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat). + ShotsInBurst = 1, // Use this if you don't want the weapon to fire an entire physical magazine before stopping to reload. Should not be more than your magazine capacity. + DelayAfterBurst = 120, // How long to spend "reloading" after each burst. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + FireFull = true, // Whether the weapon should fire the full burst, even if the target is lost or player stops firing prematurely. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = false, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "", // Audio for warmup effect. + FiringSound = "DroneLaunch", // Audio for firing. + FiringSoundPerShot = false, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "", + NoAmmoSound = "", + HardPointRotationSound = "", // Audio played when turret is moving. + BarrelRotationSound = "", + FireSoundEndDelay = 120, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "", // SubtypeId of muzzle particle effect. + Color = Color(red: 1, green: 1, blue: 1, alpha: 1), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + + Extras = new ParticleOptionDef + { + Loop = true, // Deprecated, set this in particle sbc. + Restart = false, // Whether to end the previous effect early and spawn a new one. + MaxDistance = 250, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! + MaxDuration = 1, // How many ticks the effect should be ended after, if it's still running. + Scale = 1f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "", + Color = Color(red: 1, green: 1, blue: 1, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + + Extras = new ParticleOptionDef + { + Loop = true, // Deprecated, set this in particle sbc. + Restart = false, + MaxDistance = 250, + MaxDuration = 1, + Scale = 1f, + }, + }, + }, + }, + Ammos = new[] { + //Dragonyos, + // AryxATLASAmmoDrone, + Z95, + + //TesterLauncher, //Goes drunkenly for a kilometer, then next stage is sentry mode to stay still + // + // + // + //FegyverDummy, //transitional stage between Launcher and Sentry + //TesterSentry, //Sentry mode, is the parent stage for the weapon fragments + // + //LaserPainter, //Zero damage weapon that will follow any target continuously, might blink on and off + //MediumArtillery, //Main weapon, does the actual damage, only fires when it can + // + //FegyverReturn //Return stage that goes very fast back to hangar + + //Agyu, + //Orszem, + //ConcussionMissile, + + //HeavyArtillery, + //PointDefenseBullet + + + }, + //Animations = AryxSmallHangarAnimations, + //Animations = HexcannonAnimation, + //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 ec37e53fd..1c70920f5 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 @@ -1,4 +1,4 @@ -using static Scripts.Structure; +using static Scripts.Structure; using static Scripts.Structure.WeaponDefinition; using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; using static Scripts.Structure.WeaponDefinition.HardPointDef; @@ -25,7 +25,7 @@ partial class Parts { DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. }, - + }, Muzzles = new[] { "muzzle_coil_EXT", // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A @@ -55,11 +55,11 @@ partial class Parts { HardPoint = new HardPointDef { PartName = "Hercules MAC", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). - DeviateShotAngle = 0.1f, // Projectile inaccuracy in degrees. - AimingTolerance = 0f, // How many degrees off target a turret can fire at. 0 - 180 firing angle. + DeviateShotAngle = 0f, // Projectile inaccuracy in degrees. + AimingTolerance = 1.5f, // How many degrees off target a turret can fire at. 0 - 180 firing angle. 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 @@ -71,10 +71,10 @@ partial class Parts { }, Ai = new AiDef { - TrackTargets = false, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. - TurretAttached = false, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. - TurretController = false, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. - PrimaryTracking = false, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = true, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. SuppressFire = false, // If enabled, weapon can only be fired manually. OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. @@ -128,7 +128,7 @@ partial class Parts { Cooldown = .95f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 HeatSinkRate = 9000000, // Amount of heat lost per second. DegradeRof = false, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat). - ShotsInBurst = 3, // 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. + 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. GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. @@ -192,7 +192,7 @@ partial class Parts { SolHyp_HG_VFX3, // Must list all primary, shrapnel, and pattern ammos. }, - //Animations = Weapon75_Animation, + //Animations = FlakAnimation, //Upgrades = UpgradeModules, }; // Don't edit below this line. diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Heavy_MAC_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Heavy_MAC_Ammo.cs index 50b87d998..21be6e736 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Heavy_MAC_Ammo.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Heavy_MAC_Ammo.cs @@ -11,7 +11,6 @@ using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; - using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; @@ -27,11 +26,11 @@ using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; - using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; namespace Scripts { // Don't edit above this line + partial class Parts { private AmmoDef SolHyp_HeavyMAC_Ammo => new AmmoDef // Your ID, for slotting into the Weapon CS @@ -39,14 +38,12 @@ partial class Parts AmmoMagazine = "MACmag", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. AmmoRound = "Heavy MAC Slug", // 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. + EnergyCost = 0.0645f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. BaseDamage = 75000f, // Direct damage; one steel plate is worth 100. Mass = 10f, // 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 = 200, // 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 = 500000f, // 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) + 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 = 3, // For energy weapons, how many shots to fire before reloading. IgnoreWater = false, // Whether the projectile should be able to penetrate water when using WaterMod. @@ -65,29 +62,29 @@ 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 = 0, // Number of projectiles to spawn. - Degrees = 1, // Cone in which to randomize direction of spawned projectiles. + AmmoRound = "SolHyp_HeavyMAC_Shrap", // 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 = 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 + Enable = true, // 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 = 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 = true, // Start fragment direction pointing at Target + 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 = 0f, //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 @@ -98,7 +95,7 @@ partial class Parts Mode = Weapon, // 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, + 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. @@ -108,14 +105,14 @@ partial class Parts 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.0f, // How much Health to subtract from another projectile on hit; defaults to 1 if zero or less. - VoxelHitModifier = 0.1f, // Voxel damage multiplier; defaults to 1 if zero or less. - Characters = 0.2f, // Character damage multiplier; defaults to 1 if zero or less. + 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 = 1.0f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + MinMultipler = 1f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. }, Grids = new GridSizeDef { @@ -169,7 +166,7 @@ partial class Parts 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 = Pooled, //.NoFalloff applies the same damage to all blocks in radius + 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 @@ -196,8 +193,8 @@ partial class Parts MinArmingTime = 0, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. NoVisuals = false, NoSound = false, - ParticleScale = 1, - CustomParticle = "Exp_Spark_large", // Particle SubtypeID, from your Particle SBC + 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. }, @@ -265,33 +262,34 @@ partial class Parts }, Trajectory = new TrajectoryDef { - Guidance = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed - TargetLossDegree = 80f, // Degrees, Is pointed forward + 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 = 1800, // voxel phasing if you go above 5100 + DesiredSpeed = 2200, // voxel phasing if you go above 5100 MaxTrajectory = 10000f, // 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 = 20f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. Natural Gravity Only. + 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: 0), // 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 { Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. - Aggressiveness = 0.3f, // controls how responsive tracking is. - MaxLateralThrust = 0.1, // controls how sharp the trajectile may turn + 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 = true, // when set to true ammo picks its own target, does not use hardpoint's. + 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..) + 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. { @@ -308,14 +306,14 @@ partial class Parts VisualProbability = 1f, // % ShieldHitDraw = false, Particles = new AmmoParticleDef - { + { Ammo = new ParticleDef { Name = "", //ShipWelderArc Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Scale = 1f, + Scale = 1, }, }, Hit = new ParticleDef @@ -325,7 +323,7 @@ partial class Parts Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Scale = 1f, + Scale = 1, HitPlayChance = 1f, }, }, @@ -343,8 +341,8 @@ partial class Parts }, Lines = new LineDef { - ColorVariance = Random(start: 0.5f, end: 1f), // multiply the color by random values within range. - WidthVariance = Random(start: 0f, end: 0.1f), // adds random value to default width (negatives shrinks width) + 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, @@ -390,7 +388,7 @@ partial class Parts }, OffsetEffect = new OffsetEffectDef { - MaxOffset = 0f,// 0 offset value disables this effect + MaxOffset = 0,// 0 offset value disables this effect MinLength = 1f, MaxLength = 5f, }, @@ -412,7 +410,7 @@ partial class Parts { Type = Particle, // Particle or Item (Inventory Component) Speed = 100f, // Speed inventory is ejected from in dummy direction - SpawnChance = 0.5f, // chance of triggering effect (0 - 1) + SpawnChance = 0f, // chance of triggering effect (0 - 1) CompDef = new ComponentDef { ItemName = "", //InventoryComponent name @@ -420,22 +418,20 @@ partial class Parts Delay = 0, // delay in ticks after shot before ejected } }, // Don't edit below this line - }; - + }; + - private AmmoDef SolHyp_HeavyMAC_Ammo_Shrap => new AmmoDef // Your ID, for slotting into the Weapon CS + private AmmoDef SolHyp_HeavyMAC_Ammo_Shrap => new AmmoDef // Your ID, for slotting into the Weapon CS { AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. AmmoRound = "SolHyp_HeavyMAC_Shrap", // 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.01f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. - BaseDamage = 16500, // Direct damage; one steel plate is worth 100. + EnergyCost = 0.1f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 10050f, // Direct damage; one steel plate is worth 100. Mass = 10f, // 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. - //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) + 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. @@ -455,28 +451,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 = 0, // 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 - MaxSpawns = 0, // Max number of fragment children to spawn - Proximity = 0, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance - ParentDies = false, // Parent dies once after it spawns its last child. - PointAtTarget = false, // Start fragment direction pointing at Target - PointType = Direct, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) - DirectAimCone = 0f, //Aim cone used for Direct fire, in degrees - GroupSize = 0, // Number of spawns in each group - GroupDelay = 0, // Delay between each group. + StartTime = 15, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 1, // Max number of fragment children to spawn + 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 = 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 @@ -484,7 +480,7 @@ partial class Parts Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. "", }, - Mode = Fragment, // 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, @@ -497,13 +493,13 @@ partial class Parts 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 = 0.5, // How much Health to subtract from another projectile on hit; defaults to 1 if zero or less. + 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. + 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 = 10f, // Distance at which damage begins falling off. + Distance = 0f, // Distance at which damage begins falling off. MinMultipler = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. }, Grids = new GridSizeDef @@ -515,14 +511,14 @@ partial class Parts { 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 = -1f, // Multiplier for damage against every else. + Heavy = 0.8f, // Multiplier for damage against heavy armor. + NonArmor = 0.6f, // 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. + BypassModifier = 0f, // 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 { @@ -558,7 +554,7 @@ partial class Parts 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 = Pooled, //.NoFalloff applies the same damage to all blocks in radius + 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 @@ -570,11 +566,11 @@ partial class Parts EndOfLife = new EndOfLifeDef { Enable = false, - Radius = 0f, // Radius of AOE effect, in meters. - Damage = 0, - Depth = 0f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + Radius = 3f, // Radius of AOE effect, in meters. + Damage = 500f, + Depth = 3f, // 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 = Linear, //.NoFalloff applies the same damage to all blocks in radius + Falloff = NoFalloff, //.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 @@ -585,9 +581,9 @@ partial class Parts MinArmingTime = 0, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. NoVisuals = false, NoSound = false, - ParticleScale = 1, - CustomParticle = "particleName", // Particle SubtypeID, from your Particle SBC - CustomSound = "soundName", // SubtypeID from your Audio SBC, not a filename + ParticleScale = 2, + CustomParticle = "", // 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. }, }, @@ -596,12 +592,12 @@ partial class Parts 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 = 0, - Radius = 0f, // Meters - Duration = 0, // In Ticks - StackDuration = false, // Combined Durations - Depletable = false, - MaxStacks = 0, // Max Debuffs at once + 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 @@ -657,30 +653,31 @@ partial class Parts Guidance = None, // 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 = 0, // 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 = 350, // voxel phasing if you go above 5100 - MaxTrajectory = 15, // 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: 0), // 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 { Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. - Aggressiveness = 0.3f, // controls how responsive tracking is. - MaxLateralThrust = 0.05, // controls how sharp the trajectile may turn - TrackingDelay = 10, // Measured in Shape diameter units traveled. + Aggressiveness = 1f, // controls how responsive tracking is. + 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 = false, // when set to true ammo picks its own target, does not use hardpoint's. - CheckFutureIntersection = false, // Utilize obstacle avoidance for drones + 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..) + 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. { @@ -711,10 +708,14 @@ partial class Parts { Name = "", ApplyToShield = true, + Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Scale = 1, + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1.0f, HitPlayChance = 1f, }, }, @@ -732,18 +733,18 @@ partial class Parts }, Lines = new LineDef { - ColorVariance = Random(start: 0f, end: 0f), // multiply the color by random values within range. - WidthVariance = Random(start: 0f, end: 0f), // adds random value to default width (negatives shrinks width) + ColorVariance = Random(start: 0.5f, end: 1f), // multiply the color by random values within range. + WidthVariance = Random(start: 0f, end: 0.1f), // adds random value to default width (negatives shrinks width) Tracer = new TracerBaseDef { Enable = true, - Length = 15f, // - Width = 0.45f, // - Color = Color(red: 1, green: 10, blue: 30f, alpha: 0.1f), // RBG 255 is Neon Glowing, 100 is Quite Bright. - VisualFadeStart = 1, // Number of ticks the weapon has been firing before projectiles begin to fade their color - VisualFadeEnd = 60, // How many ticks after fade began before it will be invisible. + Length = 100f, // + Width = 0.2f, // + Color = Color(red: 0, green: 20, blue: 40f, alpha: 0.02f), // 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. + "WeaponLaser", // Please always have this Line set, if this Section is enabled. }, TextureMode = Normal, // Normal, Cycle, Chaos, Wave Segmentation = new SegmentDef @@ -755,7 +756,7 @@ partial class Parts 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: 0.1f), + Color = Color(red: 1, green: 2, blue: 2.5f, alpha: 0.02f), WidthMultiplier = 1f, Reverse = false, UseLineVariance = true, @@ -767,21 +768,21 @@ partial class Parts { Enable = true, Textures = new[] { - "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + "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: 25, green: 1, blue: 20f, alpha: 0.1f), + DecayTime = 30, // 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: 2, blue: 1, alpha: 0.02f), Back = false, - CustomWidth = 0, + CustomWidth = 1f, UseWidthVariance = false, UseColorFade = true, }, OffsetEffect = new OffsetEffectDef { - MaxOffset = 0,// 0 offset value disables this effect - MinLength = 0.2f, - MaxLength = 4, + MaxOffset = 1f,// 0 offset value disables this effect + MinLength = 10f, + MaxLength = 20f, }, }, }, @@ -794,14 +795,14 @@ partial class Parts PlayerHitSound = "", VoxelHitSound = "", FloatingHitSound = "", - HitPlayChance = 0.5f, + 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 = 0.5f, // chance of triggering effect (0 - 1) + SpawnChance = 0f, // chance of triggering effect (0 - 1) CompDef = new ComponentDef { ItemName = "", //InventoryComponent name @@ -811,7 +812,22 @@ partial class Parts }, // Don't edit below this line }; - + + + + + + + + + + + + + + + + private AmmoDef SolHyp_HG_VFX1 => new AmmoDef // Your ID, for slotting into the Weapon CS { AmmoMagazine = "", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. @@ -1042,11 +1058,11 @@ 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 = 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 = 1800, // voxel phasing if you go above 5100 + DesiredSpeed = 2200, // voxel phasing if you go above 5100 MaxTrajectory = 10000f, // 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 = 20f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. Natural Gravity Only. @@ -1432,11 +1448,11 @@ 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 = 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 = 1800, // voxel phasing if you go above 5100 + DesiredSpeed = 2200, // voxel phasing if you go above 5100 MaxTrajectory = 10000f, // 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 = 20f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. Natural Gravity Only. @@ -1822,11 +1838,11 @@ 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 = 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 = 1800, // voxel phasing if you go above 5100 + DesiredSpeed = 2200, // voxel phasing if you go above 5100 MaxTrajectory = 10000f, // 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 = 20f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. Natural Gravity Only. @@ -1984,3 +2000,4 @@ partial class Parts } } + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HexcannonAnimations.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HexcannonAnimations.cs new file mode 100644 index 000000000..145a865a8 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/HexcannonAnimations.cs @@ -0,0 +1,316 @@ +using System.Collections.Generic; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AnimationDef; +using static Scripts.Structure.WeaponDefinition.AnimationDef.PartAnimationSetDef.EventTriggers; +using static Scripts.Structure.WeaponDefinition.AnimationDef.RelMove.MoveType; +using static Scripts.Structure.WeaponDefinition.AnimationDef.RelMove; +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AnimationDef HexcannonAnimation => new AnimationDef + { + + EventParticles = new Dictionary + { + [PreFire] = new[]{ //This particle fires in the Prefire state, during the 2 second windup. + //Valid options include Firing, Reloading, Overheated, Tracking, On, Off, BurstReload, OutOfAmmo, PreFire. + new EventParticle + { + EmptyNames = Names("muzzle"), //If you want an effect on your own dummy + MuzzleNames = Names("muzzle"), //If you want an effect on the muzzle + StartDelay = 0, //ticks 60 = 1 second, delay until particle starts. + LoopDelay = 0, //ticks 60 = 1 second + ForceStop = false, + Particle = new ParticleDef + { + Name = "THESUNMUZZLE", //Particle subtypeID + Color = Color(red: 25, green: 25, blue: 25, alpha: 1), //This is redundant as recolouring is no longer supported. + Extras = new ParticleOptionDef //do your particle colours in your particle file instead. + { + Loop = false, //Should match your particle definition. + Restart = false, + MaxDistance = 6000, //meters + MaxDuration = 0, //ticks 60 = 1 second + Scale = 5, //How chunky the particle is. + } + } + }, + }, + }, + + AnimationSets = new[] + { + new PartAnimationSetDef() + { + SubpartId = Names("antEA"), + BarrelId = "Any", //only used for firing, use "Any" for all muzzles + StartupFireDelay = 60, + AnimationDelays = Delays(FiringDelay : 0, ReloadingDelay: 0, OverheatedDelay: 0, TrackingDelay: 0, LockedDelay: 0, OnDelay: 0, OffDelay: 0, BurstReloadDelay: 0, OutOfAmmoDelay: 0, PreFireDelay: 0, StopFiringDelay: 0, StopTrackingDelay:0, InitDelay:0),//Delay before animation starts + Reverse = Events(), + Loop = Events(), + EventMoveSets = new Dictionary + { + // Reloading, Firing, Tracking, Overheated, TurnOn, TurnOff, BurstReload, NoMagsToLoad, PreFire, EmptyOnGameLoad, StopFiring, StopTracking, LockDelay, Init + [PreFire] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 50, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + [Firing] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 7000, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, -75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + } + }, + + new PartAnimationSetDef() + { + SubpartId = Names("antFA"), + BarrelId = "Any", //only used for firing, use "Any" for all muzzles + StartupFireDelay = 60, + AnimationDelays = Delays(FiringDelay : 0, ReloadingDelay: 0, OverheatedDelay: 0, TrackingDelay: 0, LockedDelay: 0, OnDelay: 0, OffDelay: 0, BurstReloadDelay: 0, OutOfAmmoDelay: 0, PreFireDelay: 0, StopFiringDelay: 0, StopTrackingDelay:0, InitDelay:0),//Delay before animation starts + Reverse = Events(), + Loop = Events(), + EventMoveSets = new Dictionary + { + // Reloading, Firing, Tracking, Overheated, TurnOn, TurnOff, BurstReload, NoMagsToLoad, PreFire, EmptyOnGameLoad, StopFiring, StopTracking, LockDelay, Init + [PreFire] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 50, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, -75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + [Firing] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 7000, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + } + }, + + new PartAnimationSetDef() + { + SubpartId = Names("antAB"), + BarrelId = "Any", //only used for firing, use "Any" for all muzzles + StartupFireDelay = 60, + AnimationDelays = Delays(FiringDelay : 0, ReloadingDelay: 0, OverheatedDelay: 0, TrackingDelay: 0, LockedDelay: 0, OnDelay: 0, OffDelay: 0, BurstReloadDelay: 0, OutOfAmmoDelay: 0, PreFireDelay: 0, StopFiringDelay: 0, StopTrackingDelay:0, InitDelay:0),//Delay before animation starts + Reverse = Events(), + Loop = Events(), + EventMoveSets = new Dictionary + { + // Reloading, Firing, Tracking, Overheated, TurnOn, TurnOff, BurstReload, NoMagsToLoad, PreFire, EmptyOnGameLoad, StopFiring, StopTracking, LockDelay, Init + [PreFire] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 50, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + //Rotation = Transformation(-59f, -47f, -82f), //degrees + Rotation = Transformation(0, 75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + [Firing] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 7000, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, -75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + } + }, + + new PartAnimationSetDef() + { + SubpartId = Names("antBB"), + BarrelId = "Any", //only used for firing, use "Any" for all muzzles + StartupFireDelay = 60, + AnimationDelays = Delays(FiringDelay : 0, ReloadingDelay: 0, OverheatedDelay: 0, TrackingDelay: 0, LockedDelay: 0, OnDelay: 0, OffDelay: 0, BurstReloadDelay: 0, OutOfAmmoDelay: 0, PreFireDelay: 0, StopFiringDelay: 0, StopTrackingDelay:0, InitDelay:0),//Delay before animation starts + Reverse = Events(), + Loop = Events(), + EventMoveSets = new Dictionary + { + // Reloading, Firing, Tracking, Overheated, TurnOn, TurnOff, BurstReload, NoMagsToLoad, PreFire, EmptyOnGameLoad, StopFiring, StopTracking, LockDelay, Init + [PreFire] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 50, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + //Rotation = Transformation(-59f, -47f, -82f), //degrees + Rotation = Transformation(0, -75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + [Firing] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 7000, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + } + }, + + new PartAnimationSetDef() + { + SubpartId = Names("antCB"), + BarrelId = "Any", //only used for firing, use "Any" for all muzzles + StartupFireDelay = 60, + AnimationDelays = Delays(FiringDelay : 0, ReloadingDelay: 0, OverheatedDelay: 0, TrackingDelay: 0, LockedDelay: 0, OnDelay: 0, OffDelay: 0, BurstReloadDelay: 0, OutOfAmmoDelay: 0, PreFireDelay: 0, StopFiringDelay: 0, StopTrackingDelay:0, InitDelay:0),//Delay before animation starts + Reverse = Events(), + Loop = Events(), + EventMoveSets = new Dictionary + { + // Reloading, Firing, Tracking, Overheated, TurnOn, TurnOff, BurstReload, NoMagsToLoad, PreFire, EmptyOnGameLoad, StopFiring, StopTracking, LockDelay, Init + [PreFire] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 50, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + //Rotation = Transformation(-59f, -47f, -82f), //degrees + Rotation = Transformation(0, -75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + [Firing] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 7000, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + } + }, + + new PartAnimationSetDef() + { + SubpartId = Names("antDB"), + BarrelId = "Any", //only used for firing, use "Any" for all muzzles + StartupFireDelay = 60, + AnimationDelays = Delays(FiringDelay : 0, ReloadingDelay: 0, OverheatedDelay: 0, TrackingDelay: 0, LockedDelay: 0, OnDelay: 0, OffDelay: 0, BurstReloadDelay: 0, OutOfAmmoDelay: 0, PreFireDelay: 0, StopFiringDelay: 0, StopTrackingDelay:0, InitDelay:0),//Delay before animation starts + Reverse = Events(), + Loop = Events(), + EventMoveSets = new Dictionary + { + // Reloading, Firing, Tracking, Overheated, TurnOn, TurnOff, BurstReload, NoMagsToLoad, PreFire, EmptyOnGameLoad, StopFiring, StopTracking, LockDelay, Init + [PreFire] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 50, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + //Rotation = Transformation(-59f, -47f, -82f), //degrees + Rotation = Transformation(0, -75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + [Firing] = + new[] + { + new RelMove + { + CenterEmpty = "", + TicksToMove = 7000, //number of ticks to complete motion, 60 = 1 second + MovementType = Linear, //Linear,ExpoDecay,ExpoGrowth,Delay,Show, //instant or fade Hide, //instant or fade + LinearPoints = new XYZ[0], + Rotation = Transformation(0, 75, 0), //degrees + RotAroundCenter = Transformation(0, 0, 0), //degrees + }, + + }, + + } + }, + } + }; + + + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ImpulseTorch.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ImpulseTorch.cs index 111196bca..019e31cab 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ImpulseTorch.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ImpulseTorch.cs @@ -1,192 +1,192 @@ -using static Scripts.Structure; -using static Scripts.Structure.WeaponDefinition; -using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; -using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; -using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; -using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; - -namespace Scripts { - partial class Parts { - // Don't edit above this line - WeaponDefinition Gimballed_Impulse_Torch => new WeaponDefinition { - Assignments = new ModelAssignmentsDef { - MountPoints = new[] { - new MountPointDef { - SubtypeId = "Impulse_Torch", // Block Subtypeid. Your Cubeblocks contain this information - SpinPartId = "", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. - MuzzlePartId = "elevation", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. - AzimuthPartId = "azimuth", // Your Rotating Subpart, the bit that moves sideways. - ElevationPartId = "elevation",// Your Elevating Subpart, that bit that moves up. - DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. - IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. - }, - }, - Muzzles = new[] { - "muzzle_01" // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A - }, - Ejector = "", // 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. - }, - Targeting = new TargetingDef - { - Threats = new[] { - Grids, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals - }, - SubSystems = new[] { - Thrust, Utility, Offense, Power, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any - }, - ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). - IgnoreDumbProjectiles = true, // Don't fire at non-smart projectiles. - 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 = 600, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. - MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. - TopTargets = 4, // 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. - }, - HardPoint = new HardPointDef - { - PartName = "Gimballed Impsule Torch", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). - DeviateShotAngle = 1f, // 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 - 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. - CanShootSubmerged = false, // Whether the weapon can be fired underwater when using WaterMod. - - Ui = new UiDef - { - RateOfFire = false, // Enables terminal slider for changing rate of fire. - DamageModifier = false, // Enables terminal slider for changing damage per shot. - ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. - EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. - }, - Ai = new AiDef - { - TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. - TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. - TurretController = true, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. - PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. - LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. - SuppressFire = false, // If enabled, weapon can only be fired manually. - OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. - }, - HardWare = new HardwareDef - { - RotateRate = 0.01f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). - ElevateRate = 0.01f, // Max traversal speed of elevation subpart in radians per tick. - MinAzimuth = -20, - MaxAzimuth = 20, - MinElevation = -15, - MaxElevation = 15, - HomeAzimuth = 0, // Default resting rotation angle - HomeElevation = 0, // Default resting elevation - InventorySize = 1f, // Inventory capacity in kL. - IdlePower = 0.25f, // Constant base power draw in MW. - FixedOffset = false, // Deprecated. - Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. - Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom - CriticalReaction = new CriticalDef - { - Enable = false, // Enables Warhead behaviour. - DefaultArmedTimer = 120, // Sets default countdown duration. - PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. - TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. - AmmoRound = "", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. - }, - }, - Other = new OtherDef - { - ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. - RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. - EnergyPriority = 0, // Deprecated. - MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. - Debug = false, // Force enables debug mode. - RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. - CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. - CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. - }, - Loading = new LoadingDef - { - RateOfFire = 3600, // Set this to 3600 for beam weapons. This is how fast your Gun fires. - BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. - TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. - SkipBarrels = 0, // Number of muzzles to skip after each fire event. - ReloadTime = 0, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MagsToLoad = 1, // Number of physical magazines to consume on reload. - DelayUntilFire = 20, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - HeatPerShot = 2, // Heat generated per shot. - MaxHeat = 1800, // Max heat before weapon enters cooldown (70% of max heat). - Cooldown = .90f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 - HeatSinkRate = 20, // Amount of heat lost per second. - DegradeRof = false, // 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 = 120, // 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. - GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. - BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. - DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). - SpinFree = true, // Spin barrel while not firing. - StayCharged = false, // Will start recharging whenever power cap is not full. - MaxActiveProjectiles = 0, // Maximum number of drones in flight (only works for drone launchers) - MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon - }, - Audio = new HardPointAudioDef - { - PreFiringSound = "", // Audio for warmup effect. - FiringSound = "MA_Afterburner_Large_Fug", // Audio for firing. - FiringSoundPerShot = false, // Whether to replay the sound for each shot, or just loop over the entire track while firing. - ReloadSound = "ArcBlockPiston", // Sound SubtypeID, for when your Weapon is in a reloading state - NoAmmoSound = "", - HardPointRotationSound = "WepTurretGatlingRotate", // Audio played when turret is moving. - BarrelRotationSound = "WepShipGatlingRotation", - FireSoundEndDelay = 0, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). - FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. - }, - Graphics = new HardPointParticleDef - { - Effect1 = new ParticleDef - { - Name = "AfterburnerExhaust_1x1", // SubtypeId of muzzle particle effect. - Color = Color(red: 0, green: 0, blue: 0, alpha: 1), // Deprecated, set color in particle sbc. - Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. - - Extras = new ParticleOptionDef - { - Loop = true, // Set this to the same as in the particle sbc! - Restart = false, // Whether to end a looping effect instantly when firing stops. - MaxDistance = 5000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! - MaxDuration = 5, // Deprecated. - Scale = 30f, // Scale of effect. - }, - }, - Effect2 = new ParticleDef - { - Name = "", - Color = Color(red: 1, green: 1, blue: 1, alpha: 1), - Offset = Vector(x: 0, y: 0, z: 0), - - Extras = new ParticleOptionDef - { - Restart = false, - MaxDistance = 5000, - MaxDuration = 5, - Scale = 10f, - }, - }, - }, - }, - Ammos = new[] { - Impulse_Torch_Ammo, // Must list all primary, shrapnel, and pattern ammos. - }, - //Animations = Weapon75_Animation, - //Upgrades = UpgradeModules, - }; - // Don't edit below this line. - } -} +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts { + partial class Parts { + // Don't edit above this line + WeaponDefinition Gimballed_Impulse_Torch => new WeaponDefinition { + Assignments = new ModelAssignmentsDef { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "Impulse_Torch", // Block Subtypeid. Your Cubeblocks contain this information + SpinPartId = "", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. + MuzzlePartId = "elevation", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. + AzimuthPartId = "azimuth", // Your Rotating Subpart, the bit that moves sideways. + ElevationPartId = "elevation",// Your Elevating Subpart, that bit that moves up. + DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + }, + Muzzles = new[] { + "muzzle_01" // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A + }, + Ejector = "", // 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. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Grids, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals + }, + SubSystems = new[] { + Thrust, Utility, Offense, Power, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = true, // Don't fire at non-smart projectiles. + 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 = 600, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. + TopTargets = 4, // 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. + }, + HardPoint = new HardPointDef + { + PartName = "Gimballed Impsule Torch", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 1f, // 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 + 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. + CanShootSubmerged = false, // Whether the weapon can be fired underwater when using WaterMod. + + Ui = new UiDef + { + RateOfFire = false, // Enables terminal slider for changing rate of fire. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + }, + Ai = new AiDef + { + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = true, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + }, + HardWare = new HardwareDef + { + RotateRate = 0.01f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0.01f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = -20, + MaxAzimuth = 20, + MinElevation = -15, + MaxElevation = 15, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 0, // Default resting elevation + InventorySize = 1f, // Inventory capacity in kL. + IdlePower = 0.25f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + Debug = false, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 3600, // Set this to 3600 for beam weapons. This is how fast your Gun fires. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 0, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 1, // Number of physical magazines to consume on reload. + DelayUntilFire = 20, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 2, // Heat generated per shot. + MaxHeat = 1800, // Max heat before weapon enters cooldown (70% of max heat). + Cooldown = .90f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 + HeatSinkRate = 20, // Amount of heat lost per second. + DegradeRof = false, // 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 = 120, // 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. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = true, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + MaxActiveProjectiles = 0, // Maximum number of drones in flight (only works for drone launchers) + MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "", // Audio for warmup effect. + FiringSound = "MA_Afterburner_Large_Fug", // Audio for firing. + FiringSoundPerShot = false, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "ArcBlockPiston", // Sound SubtypeID, for when your Weapon is in a reloading state + NoAmmoSound = "", + HardPointRotationSound = "WepTurretGatlingRotate", // Audio played when turret is moving. + BarrelRotationSound = "WepShipGatlingRotation", + FireSoundEndDelay = 0, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "AfterburnerExhaust_1x1", // SubtypeId of muzzle particle effect. + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + + Extras = new ParticleOptionDef + { + Loop = true, // Set this to the same as in the particle sbc! + Restart = false, // Whether to end a looping effect instantly when firing stops. + MaxDistance = 5000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! + MaxDuration = 5, // Deprecated. + Scale = 30f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "", + Color = Color(red: 1, green: 1, blue: 1, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 5, + Scale = 10f, + }, + }, + }, + }, + Ammos = new[] { + Impulse_Torch_Ammo, // Must list all primary, shrapnel, and pattern ammos. + }, + //Animations = Weapon75_Animation, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ImpulseTorchAmmo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ImpulseTorchAmmo.cs index d0d4f20e5..f5ccc161f 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ImpulseTorchAmmo.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ImpulseTorchAmmo.cs @@ -1,456 +1,456 @@ -using static Scripts.Structure.WeaponDefinition; -using static Scripts.Structure.WeaponDefinition.AmmoDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; -using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; -using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; -using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; -using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; -using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; -using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; -using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; -using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; -using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; -using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; -using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; -using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; -using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; -using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; -using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; - -namespace Scripts -{ // Don't edit above this line - partial class Parts - { - private AmmoDef Impulse_Torch_Ammo => new AmmoDef - { - AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. - AmmoRound = "Impulse_Torch_Ammo", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. - HybridRound = false, // Use both a physical ammo magazine and energy per shot. - EnergyCost = 0.45f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. - BaseDamage = 400f, // Direct damage; one steel plate is worth 100. - Mass = 0, // 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 = 2000000f, // Recoil. - 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 = 1, // For energy weapons, how many shots to fire before reloading. - 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 = "", // 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. - Reverse = false, // Spawn projectiles backward instead of forward. - DropVelocity = false, // 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 - ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. - 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active - { - 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 - 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 - 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 = 0f, //Aim cone used for Direct fire, in degrees - GroupSize = 5, // Number of spawns in each group - GroupDelay = 120, // 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 = Fragment, // 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 = 1, // 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 = true, // Whether to damage the weapon's own grid. - HealthHitModifier = 0.5, // 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 = 20f, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. - }, - Shields = new ShieldDef - { - Modifier = 0.001f, // 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 = Energy, - AreaEffect = Energy, // Kinetic , Energy, are your Options. - Detonation = Energy, - Shield = Energy, // Damage against shields is currently all of one type per projectile. - }, - Custom = new CustomScalesDef - { - IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. - 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 = 1f, // Meters - Damage = 1f, - 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 = 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 - Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. - }, - EndOfLife = new EndOfLifeDef - { - Enable = false, - Radius = 1f, // Radius of AOE effect, in meters. - Damage = 1f, - 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 - //.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 = true, // 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 = true, - NoSound = true, - ParticleScale = 1, - CustomParticle = "particleName", // Particle SubtypeID, from your Particle SBC - CustomSound = "soundName", // 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 = true, // Enable beam behaviour. - 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 = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed - TargetLossDegree = 80f, - TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MaxLifeTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - AccelPerSec = 0f, - DesiredSpeed = 0, // voxel phasing if you go above 5100 - MaxTrajectory = 50f, - DeaccelTime = 0, // 0 is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) - GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. - SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed - RangeVariance = Random(start: 0, end: 0), // 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 = 1f, // controls how responsive tracking is. - MaxLateralThrust = 0.5, // controls how sharp the trajectile may turn. Cap is 1, and this is % of your Accel. - TrackingDelay = 5, // 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. - MaxTargets = 3, // 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..) - }, - Mines = new MinesDef - { - DetectRadius = 0, - DeCloakRadius = 0, - FieldTime = 0, - Cloak = false, - Persist = false, - }, - }, - - - - - - - - - - - - - - AmmoGraphics = new GraphicDef - { - ModelName = "", - VisualProbability = 1f, - ShieldHitDraw = false, - Particles = new AmmoParticleDef - { - Ammo = new ParticleDef - { - Name = "", //ShipWelderArc - //ShrinkByDistance = false, - Color = Color(red: 128, green: 0, blue: 0, alpha: 32), - Offset = Vector(x: 0, y: 0, z: 0), - Extras = new ParticleOptionDef - { - Restart = false, - MaxDistance = 5000, - MaxDuration = 0, - Scale = 1, - }, - }, - Hit = new ParticleDef - { - Name = "", - ApplyToShield = true, - //ShrinkByDistance = false, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), - Offset = Vector(x: 0, y: 0, z: 0), - Extras = new ParticleOptionDef - { - Restart = false, - MaxDistance = 5000, - MaxDuration = 0, - Scale = 1, - HitPlayChance = 1f, - }, - }, - Eject = new ParticleDef - { - Name = "", - ApplyToShield = true, - //ShrinkByDistance = false, - Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), - Offset = Vector(x: 0, y: 0, z: 0), - Extras = new ParticleOptionDef - { - Restart = false, - MaxDistance = 5000, - MaxDuration = 30, - 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 = false, - Length = 5f, - Width = 0.45f, - Color = Color(red: 0, green: 12, blue: 21f, alpha: 1), - 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", - }, - 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) - } - }, - Trail = new TrailDef - { - Enable = false, - Textures = new[] { - "WeaponLaser", - }, - TextureMode = Normal, - DecayTime = 100, - Color = Color(red: 0, green: 8, blue: 9f, alpha: 1), - Back = false, - CustomWidth = 0.2f, - UseWidthVariance = false, - UseColorFade = true, - }, - OffsetEffect = new OffsetEffectDef - { - MaxOffset = 0,// 0 offset value disables this effect - MinLength = 0.2f, - MaxLength = 3, - }, - }, - }, - AmmoAudio = new AmmoAudioDef - { - TravelSound = "", - HitSound = "", - ShotSound = "", - ShieldHitSound = "", - PlayerHitSound = "", - VoxelHitSound = "", - FloatingHitSound = "", - HitPlayChance = 0.5f, - HitPlayShield = true, - }, - Ejection = new EjectionDef - { - Type = Particle, // Particle or Item (Inventory Component) - Speed = 100f, // Speed inventory is ejected from in dummy direction - SpawnChance = 0.5f, // 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 - }; - - - } -} +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AmmoDef Impulse_Torch_Ammo => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Impulse_Torch_Ammo", // Name of ammo in terminal, should be different for each ammo type used by the same weapon. + HybridRound = false, // Use both a physical ammo magazine and energy per shot. + EnergyCost = 0.45f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 400f, // Direct damage; one steel plate is worth 100. + Mass = 0, // 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 = 2000000f, // Recoil. + 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 = 1, // For energy weapons, how many shots to fire before reloading. + 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 = "", // 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. + Reverse = false, // Spawn projectiles backward instead of forward. + DropVelocity = false, // 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + 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 + 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 = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 5, // Number of spawns in each group + GroupDelay = 120, // 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 = Fragment, // 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 = 1, // 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 = true, // Whether to damage the weapon's own grid. + HealthHitModifier = 0.5, // 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 = 20f, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 0.001f, // 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 = Energy, + AreaEffect = Energy, // Kinetic , Energy, are your Options. + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. + }, + Custom = new CustomScalesDef + { + IgnoreAllOthers = false, // Pass through all blocks not listed below without damaging them. + 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 = 1f, // Meters + Damage = 1f, + 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 = 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 1f, + 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 + //.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 = true, // 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 = true, + NoSound = true, + ParticleScale = 1, + CustomParticle = "particleName", // Particle SubtypeID, from your Particle SBC + CustomSound = "soundName", // 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 = true, // Enable beam behaviour. + 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 = None, // None, Remote, TravelTo, Smart, DetectTravelTo, DetectSmart, DetectFixed + TargetLossDegree = 80f, + TargetLossTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MaxLifeTime = 0, // 0 is disabled, Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + AccelPerSec = 0f, + DesiredSpeed = 0, // voxel phasing if you go above 5100 + MaxTrajectory = 50f, + DeaccelTime = 0, // 0 is disabled, a value causes the projectile to come to rest, spawn a field and remain for a time (Measured in game ticks, 60 = 1 second) + GravityMultiplier = 0f, // Gravity multiplier, influences the trajectory of the projectile, value greater than 0 to enable. + SpeedVariance = Random(start: 0, end: 0), // subtracts value from DesiredSpeed + RangeVariance = Random(start: 0, end: 0), // 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 = 1f, // controls how responsive tracking is. + MaxLateralThrust = 0.5, // controls how sharp the trajectile may turn. Cap is 1, and this is % of your Accel. + TrackingDelay = 5, // 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. + MaxTargets = 3, // 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..) + }, + Mines = new MinesDef + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + }, + + + + + + + + + + + + + + AmmoGraphics = new GraphicDef + { + ModelName = "", + VisualProbability = 1f, + ShieldHitDraw = false, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "", //ShipWelderArc + //ShrinkByDistance = false, + Color = Color(red: 128, green: 0, blue: 0, alpha: 32), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + }, + }, + Hit = new ParticleDef + { + Name = "", + ApplyToShield = true, + //ShrinkByDistance = false, + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 0, + Scale = 1, + HitPlayChance = 1f, + }, + }, + Eject = new ParticleDef + { + Name = "", + ApplyToShield = true, + //ShrinkByDistance = false, + Color = Color(red: 3, green: 1.9f, blue: 1f, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 5000, + MaxDuration = 30, + 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 = false, + Length = 5f, + Width = 0.45f, + Color = Color(red: 0, green: 12, blue: 21f, alpha: 1), + 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", + }, + 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) + } + }, + Trail = new TrailDef + { + Enable = false, + Textures = new[] { + "WeaponLaser", + }, + TextureMode = Normal, + DecayTime = 100, + Color = Color(red: 0, green: 8, blue: 9f, alpha: 1), + Back = false, + CustomWidth = 0.2f, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", + HitSound = "", + ShotSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + HitPlayShield = true, + }, + Ejection = new EjectionDef + { + Type = Particle, // Particle or Item (Inventory Component) + Speed = 100f, // Speed inventory is ejected from in dummy direction + SpawnChance = 0.5f, // 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 + }; + + + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/MasterConfig.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/MasterConfig.cs index bde80e056..f295d3635 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/MasterConfig.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/MasterConfig.cs @@ -10,13 +10,20 @@ internal Parts() Gimballed_Impulse_Torch, Flechette_Cannon, Nariman_Smart_Turret, + Auger3_Internal_Turret, + Auger5_Internal_Turret, S_Chem_Laser, //S_Armored_Laser, SM3_Counter_Battery, SolHyp_ArcStrike_HTorpedo, SolHyp_MAC, + Point_Singularity_Projector, + Scathis, + Dreadnaught_Beacon, + Nebulon_Beacon, Sentry_Hangar, - Strikecraft_Hangar + Strikecraft_Hangar, + Test_Hangar ); } } diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nariman_Turret.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nariman_Turret.cs index 25d8a426b..9aa8db357 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nariman_Turret.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nariman_Turret.cs @@ -84,8 +84,8 @@ partial class Parts { ElevateRate = 0.02f, // Max traversal speed of elevation subpart in radians per tick. MinAzimuth = -180, MaxAzimuth = 180, - MinElevation = -180, - MaxElevation = 180, + MinElevation = -10, + MaxElevation = 50, HomeAzimuth = 0, // Default resting rotation angle HomeElevation = 0, // Default resting elevation InventorySize = 0.639f, // Inventory capacity in kL. @@ -119,7 +119,7 @@ partial class Parts { BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. SkipBarrels = 0, // Number of muzzles to skip after each fire event. - ReloadTime = 600, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + ReloadTime = 300, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). MagsToLoad = 12, // Number of physical magazines to consume on reload. DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). HeatPerShot = 40, // Heat generated per shot. 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 2a6bc60ba..a5ad9e736 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 @@ -36,7 +36,7 @@ partial class Parts AmmoRound = "Smart NanoDart", // 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.04f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. - BaseDamage = 7500f, // Direct damage; one steel plate is worth 100. + 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. @@ -175,7 +175,7 @@ partial class Parts { Enable = true, Radius = 1f, // Meters - Damage = 1f, + Damage = 15000f, Depth = 1f, MaxAbsorb = 0f, Falloff = NoFalloff, //.NoFalloff applies the same damage to all blocks in radius @@ -191,7 +191,7 @@ partial class Parts NoSound = false, ParticleScale = 0.25f, CustomParticle = "Exp_Spark_large", // Particle SubtypeID, from your Particle SBC - CustomSound = "K_SA_Gauss_Hit_A", // SubtypeID from your Audio SBC, not a filename + CustomSound = "MissileHitRandom", // SubtypeID from your Audio SBC, not a filename Shape = Diamond, // Round or Diamond }, }, @@ -308,12 +308,12 @@ partial class Parts Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef { - Scale = 1, + Scale = 0.25f, }, }, Hit = new ParticleDef { - Name = "Exp_Spark_FCC", + Name = "", ApplyToShield = true, Offset = Vector(x: 0, y: 0, z: 0), Extras = new ParticleOptionDef @@ -374,25 +374,25 @@ partial class Parts "WeaponLaser", // Please always have this Line set, if this Section is enabled. }, TextureMode = Normal, - DecayTime = 1, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + DecayTime = 10, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. Color = Color(red: 2.5f, green: 7f, blue: 1f, alpha: 1f), Back = false, - CustomWidth = 0, + CustomWidth = 0.25f, UseWidthVariance = false, UseColorFade = true, }, OffsetEffect = new OffsetEffectDef { - MaxOffset = 1,// 0 offset value disables this effect - MinLength = 1.2f, - MaxLength = 7, + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 2, }, }, }, AmmoAudio = new AmmoAudioDef { - TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight - HitSound = "", + TravelSound = "DRONEFLYBY", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "PPCImpact", ShieldHitSound = "", PlayerHitSound = "", diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nebluon_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nebluon_Ammo.cs new file mode 100644 index 000000000..af26b6d82 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nebluon_Ammo.cs @@ -0,0 +1,2658 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AmmoDef Launch_Dummy_Nebulon => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Launch_Dummy", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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. + 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "Nebulon_Launch", // 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. + Reverse = false, // Spawn projectiles backward instead of forward. + DropVelocity = false, // fragments will not inherit velocity from parent. + Offset = -15f, // 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 1, // 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 = 0f, //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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = 1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 1f, + 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 (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = true, + NoSound = true, + ParticleScale = 1, + CustomParticle = "", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 300, // 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 = 1, // voxel phasing if you go above 5100 + MaxTrajectory = 1000000f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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 = 0, // 0 means no limit, something to do due with a thing called delta and something called v. + }, + 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 = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 0.001f, // + Width = 0.001f, // + Color = Color(red: 1, green: 1, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 Nebulon => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Nebulon_Launch", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // In kilograms; how much force the impact will apply to the target. + Health = 10000, // 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 = 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 = 1, // 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = true, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = true, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "Light_Turbolaser_Nebulon", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 2f, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 18, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 120, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 1440, // Max number of fragment children to spawn + Proximity = 2500, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 6, // Number of spawns in each group + GroupDelay = 390, // Delay between each group. + }, + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "Light_Turbolaser_Nebulon", + "Light_Turbolaser_Nebulon", + "Light_Turbolaser_Nebulon", + "Blank_Round_Neb", + "Blank_Round_Neb", + "Blank_Round_Neb", + + "Light_Turbolaser_Nebulon", + "Light_Turbolaser_Nebulon", + "Light_Turbolaser_Nebulon", + "Blank_Round_Neb", + "Blank_Round_Neb", + "Blank_Round_Neb", + + "Concussion_Missile_Nebulon", + "Concussion_Missile_Nebulon", + "Concussion_Missile_Nebulon", + "Concussion_Missile_Nebulon", + "Concussion_Missile_Nebulon", + "Concussion_Missile_Nebulon", + }, + Mode = Fragment, // 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 = true, // Skip the Ammo itself, in the list + PatternSteps = 1, // 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 = 0.5, // 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 //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = 1f, // Multiplier for damage against large grids. + Small = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Kinetic, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 5f, // Radius of AOE effect, in meters. + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "", // Particle SubtypeID, from your Particle SBC + CustomSound = "NebulonB_Death", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 54000, // 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 = 12.5f, // Acceleration in Meters Per Second. Projectile starts on tick 0 at its parents (weapon/other projectiles) travel velocity. + DesiredSpeed = 65, // voxel phasing if you go above 5100 + MaxTrajectory = 100000f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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. + Smarts = new SmartsDef + { + SteeringLimit = 30f, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 1f, // controls how responsive tracking is, recommended value 3-5. + MaxLateralThrust = 0, // controls how sharp the projectile may turn, this is the cheaper but less realistic version of SteeringLimit, cost of 2 on a scale of 1-5, 0 being basic smart. + NavAcceleration = -1f, // helps influence how the projectile steers, 0 defaults to 1/2 Aggressiveness value or 0 if its 0, a value less than 0 disables this feature. + TrackingDelay = 30, // Measured in Shape diameter units traveled. + AccelClearance = false, // Setting this to true will prevent smart acceleration until it is clear of the grid and tracking delay has been met (free fall). + MaxChaseTime = 18000, // 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 = true, // Utilize obstacle avoidance for drones/smarts + FutureIntersectionRange = 250, // Range in front of the projectile at which it will detect obstacle. If set to zero it defaults to DesiredSpeed + Shape Diameter + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // 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..) + OffsetMinRange = 0, // The range from target at which offsets are no longer active + FocusOnly = false, // only target the constructs Ai's focus target + FocusEviction = false, // If FocusOnly and this to true will force smarts to lose target when there is no focus target + ScanRange = 0, // 0 disables projectile screening, the max range that this projectile will be seen at by defending grids (adds this projectile to defenders lookup database). + NoSteering = false, // this disables target follow and instead travel straight ahead (but will respect offsets). + MinTurnSpeed = 50, // set this to a reasonable value to avoid projectiles from spinning in place or being too aggressive turing at slow speeds + NoTargetApproach = false, // If true approaches can begin prior to the projectile ever having had a target. + AltNavigation = false, // If true this will swap the default navigation algorithm from ProNav to ZeroEffort Miss. Zero effort is more direct/precise but less cinematic + }, + Approaches = new[] // These approaches move forward and backward in order, once the end condition of the last one is reached it will revert to default behavior. Cost level of 4+, or 5+ if used with steering. + { + /** What are approaches? How do they interact with other config variables? What problems do they solve? + * + * At the most basic level an "approach" is a collection of variables that allow you, the mod author, to tell the projectile how to "approach" + * a desired "destination" (aka position) when certain conditions are met and what to then do once it has arrived. I say "destination/position" and not "target" on + * purpose, while the desired destination may be the "target" it often is not. Keep in mind that approaches merely "influence" the projectiles path to + * a desired position, they do not absolutely determine it. Instead you are telling the projectile where you want it to go and through which + * trajectory it should travel to get there, but ultimately you are setting the desired flight path, you are not the pilot. + * + * Approaches are an extension of Smarts and these variables are applied ontop of, not in place of, all other config variables. This means anything + * you set in other parts of the config will still influence approaches and sometimes in unexpected ways (i.e. trackingDelay or not finding a target + * can delay when an approaches begins). In a few cases approaches have variables that override/alter/extend how non-approach variables behave. + * + * Approaches will not alter the path of a projectile until its start condition is met(and optionally maintained). Prior to "starting" the + * projectile will behave as it would have had there was no approach defined.This is also the case once all approaches have completed. + * + * Approaches require you to think about projectile navigation in an abstract manner.This is a good time to restate that you are merely "influencing" the + * projectile, you are not controlling/piloting it.The battlefield is dynamic, always changing, you are setting objectives and providing rules to follow + * if certain conditions are met, nothing more. You must also remember that although you are setting variables like positionB, positionC, elevation, lead + * upDirection, forwardDirection etc... these variables merely "influence" the projectiles heading relative to its current position and velocity, they do not + * represent its actual source nor destination positions, directions nor elevation. + * + * Said another way, imagine your projectile half way between its launcher and the "target" and it is at this time that your approach "starts". If you were + * to then draw this scene out visually, you would draw three spheres representing positions which we will call "projectile current position (aka positionA)", "positionB" + * and "positionC", where you only get to define the latter two.You then define two directions, a forward direction and an up direction.You can + * also optionally set a desired "elevation" relative to the up direction and a desired "lead" relative to the forward direction, applied to the positionB and/or + * positionC. Now draw a 1 and 2 that represents the modified positionB and positionC positions (taking into account elevation, lead, and rotations). Your + * projectiles heading will by default attempt to steer to modified C position(2), or alternatively to modified B(1) if you set TrajectoryRelativeToB to true. */ + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToNext, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = DistanceFromTarget, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = HealthRemaining, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 2000, + Start2Value = 0, + End1Value = 9998, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = DoNothing, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardRelativeToShooter, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToShooter, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = PositionA, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = Target, + Elevation = Nothing, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = true, // Updated the position overtime. + AdjustPositionC = true, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 0, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 0, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 0, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = false, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 0.85f, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = true, // Orbit the Position + OrbitRadius = 1000, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = true, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToNext, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = HealthRemaining, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = HealthRemaining, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 9998, + Start2Value = 0, + End1Value = 7000, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = DoNothing, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardRelativeToShooter, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToShooter, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = PositionA, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = Target, + Elevation = Nothing, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = true, // Updated the position overtime. + AdjustPositionC = true, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 0, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 0, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 0, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = false, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 1, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = true, // Orbit the Position + OrbitRadius = 1250, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = true, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "NebulonB_Stage_01", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToNext, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = HealthRemaining, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = HealthRemaining, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 7000, + Start2Value = 0, + End1Value = 4000, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = DoNothing, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardRelativeToShooter, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToShooter, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = PositionA, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = Target, + Elevation = Nothing, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = true, // Updated the position overtime. + AdjustPositionC = true, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 0, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 0, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 0, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = false, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 0.75, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = true, // Orbit the Position + OrbitRadius = 1150, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = true, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "Dreadnaught_Engine_Damage_01", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "NebulonB_Stage_02", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToNext, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = HealthRemaining, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = HealthRemaining, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 4000, + Start2Value = 0, + End1Value = 100, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = EndProjectile, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardRelativeToShooter, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToShooter, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = PositionA, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = Target, + Elevation = Nothing, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = true, // Updated the position overtime. + AdjustPositionC = true, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 0, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 0, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 0, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = false, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 0.5, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = true, // Orbit the Position + OrbitRadius = 1500, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = true, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = true, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "Dreadnaught_Engine_Damage_02", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "NebulonB_Stage_03", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + }, + Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues. + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + OnHit = new OnHitDef { + } + }, + AmmoGraphics = new GraphicDef + { + ModelName = "\\Models\\Cubes\\large\\NebulonB_Projectile.mwm", // 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 = "Nebulon_Engine", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 0.01f, // + Width = 0.01f, // + Color = Color(red: 30, green: 2, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "Ship_Engine", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "Hyperspace_Exit", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 Light_Turbolaser_Nebulon => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Light_Turbolaser_Nebulon", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "MagicFragment", // AmmoRound field of the ammo to spawn. + Fragments = 100, // Number of projectiles to spawn. + Degrees = 15, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + 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 + 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 = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 5, // Number of spawns in each group + GroupDelay = 120, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = 1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3f, // Radius of AOE effect, in meters. + Damage = 50000f, + Depth = 3f, // 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 (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "", // Particle SubtypeID, from your Particle SBC + CustomSound = "Turbolaser_Impact", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 2500f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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 = 0, // 0 means no limit, something to do due with a thing called delta and something called v. + }, + 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 = "Green_Turbo_Light", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 18f, // + Width = 0.5f, // + Color = Color(red: 30, green: 3, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "Light_Turbolaser_Shot", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 Blank_Round_Neb => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Blank_Round_Neb", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 1f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "", // AmmoRound field of the ammo to spawn. + Fragments = 100, // Number of projectiles to spawn. + Degrees = 15, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + 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 + 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 = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 5, // Number of spawns in each group + GroupDelay = 120, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = 1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 3f, // Radius of AOE effect, in meters. + Damage = 50000f, + Depth = 3f, // 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 (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "", // Particle SubtypeID, from your Particle SBC + CustomSound = "Turbolaser_Impact", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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 = 120, // 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 = 2500f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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 = 0, // 0 means no limit, something to do due with a thing called delta and something called v. + }, + 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 = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = false, + Length = 18f, // + Width = 0.5f, // + Color = Color(red: 30, green: 3, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 Concussion_Missile_Nebulon => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Concussion_Missile_Nebulon", // 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 = 0f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 100f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // In kilograms; how much force the impact will apply to the target. + Health = 30, // 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 = 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 = 1, // 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = false, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "", // AmmoRound field of the ammo to spawn. + Fragments = 100, // Number of projectiles to spawn. + Degrees = 15, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + AdvOffset = Vector(x: 0, y: 12.5, z: 44.5), // 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + 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 + 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 + 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 = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 5, // Number of spawns in each group + GroupDelay = 120, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = 1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = false, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 3f, // Radius of AOE effect, in meters. + Damage = 80000f, + Depth = 3f, // 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 (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "", // Particle SubtypeID, from your Particle SBC + CustomSound = "Turbolaser_Impact", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + Trajectory = new TrajectoryDef + { + Guidance = Smart, // 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 = 1200, // 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 = 100, // voxel phasing if you go above 5100 + MaxTrajectory = 3500f, // Max Distance the projectile or beam can Travel. + DeaccelTime = 0, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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 = 0, // 0 means no limit, something to do due with a thing called delta and something called v. + Smarts = new SmartsDef + { + SteeringLimit = 160f, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 1f, // controls how responsive tracking is, recommended value 3-5. + MaxLateralThrust = 0, // controls how sharp the projectile may turn, this is the cheaper but less realistic version of SteeringLimit, cost of 2 on a scale of 1-5, 0 being basic smart. + NavAcceleration = -1f, // helps influence how the projectile steers, 0 defaults to 1/2 Aggressiveness value or 0 if its 0, a value less than 0 disables this feature. + TrackingDelay = 60, // Measured in Shape diameter units traveled. + AccelClearance = false, // Setting this to true will prevent smart acceleration until it is clear of the grid and tracking delay has been met (free fall). + MaxChaseTime = 1200, // 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 for drones/smarts + FutureIntersectionRange = 0, // Range in front of the projectile at which it will detect obstacle. If set to zero it defaults to DesiredSpeed + Shape Diameter + 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 = true, // Whether to stop early death of projectile on target loss + OffsetRatio = 0.35f, // The ratio to offset the random direction (0 to 1) + OffsetTime = 30, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + OffsetMinRange = 500, // The range from target at which offsets are no longer active + FocusOnly = false, // only target the constructs Ai's focus target + FocusEviction = false, // If FocusOnly and this to true will force smarts to lose target when there is no focus target + ScanRange = 0, // 0 disables projectile screening, the max range that this projectile will be seen at by defending grids (adds this projectile to defenders lookup database). + NoSteering = false, // this disables target follow and instead travel straight ahead (but will respect offsets). + MinTurnSpeed = 20, // set this to a reasonable value to avoid projectiles from spinning in place or being too aggressive turing at slow speeds + NoTargetApproach = false, // If true approaches can begin prior to the projectile ever having had a target. + AltNavigation = false, // If true this will swap the default navigation algorithm from ProNav to ZeroEffort Miss. Zero effort is more direct/precise but less cinematic + }, + }, + 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 = "Concussion_Missile", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 0.001f, // + Width = 0.001f, // + Color = Color(red: 1, green: 1, blue: 1f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "Concussion_Missile_Shot", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 + }; + + } +} + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nebulon_Weapon.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nebulon_Weapon.cs new file mode 100644 index 000000000..629eb9ced --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Nebulon_Weapon.cs @@ -0,0 +1,240 @@ +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.TargetingDef; +using static Scripts.Structure.WeaponDefinition.TargetingDef.CommunicationDef.Comms; +using static Scripts.Structure.WeaponDefinition.TargetingDef.CommunicationDef.SecurityMode; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + + +namespace Scripts { + partial class Parts { + // Don't edit above this line + WeaponDefinition Nebulon_Beacon => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "Nebulon_Beacon", // Block Subtypeid. Your Cubeblocks contain this information + SpinPartId = "None", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. + MuzzlePartId = "None", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. + AzimuthPartId = "None", // Your Rotating Subpart, the bit that moves sideways. + ElevationPartId = "None",// Your Elevating Subpart, that bit that moves up. + DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + + }, + Muzzles = new[] { + "muzzle_Dreadnaught", // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A + + }, + Ejector = "", // Optional; empty from which to eject "shells" if specified. + Scope = "", // Where line of sight checks are performed from. Must be clear of block collision. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Grids, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals, ScanRoid, ScanPlanet, ScanFriendlyCharacter, ScanFriendlyGrid, ScanEnemyCharacter, ScanEnemyGrid, ScanNeutralCharacter, ScanNeutralGrid, ScanUnOwnedGrid, ScanOwnersGrid + }, + SubSystems = new[] { + Thrust, Offense, Utility, Power, Production, Jumping, Steering, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = false, // Don't fire at non-smart projectiles. + 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 = 15000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 100, // Minimum distance at which targets will be automatically shot at. + TopTargets = 4, // Maximum number of targets to randomize between; 0 = unlimited. + CycleTargets = 0, // Number of targets to "cycle" per acquire attempt. + TopBlocks = 8, // Maximum number of blocks to randomize between; 0 = unlimited. + CycleBlocks = 2, // Number of blocks to "cycle" per acquire attempt. + StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. + UniqueTargetPerWeapon = false, // only applies to multi-weapon blocks + MaxTrackingTime = 0, // After this time has been reached the weapon will stop tracking existing target and scan for a new one, only applies to turreted weapons + ShootBlanks = false, // Do not generate projectiles when shooting + FocusOnly = false, // This weapon can only track focus targets. + EvictUniqueTargets = false, // if this is set it will evict any weapons set to UniqueTargetPerWeapon unless they to have this set + Communications = new CommunicationDef + { + StoreTargets = false, // Pushes its current target to the grid/construct so that other slaved weapons can fire on it. + StorageLimit = 0, // The limit at which this weapon will no longer export targets onto the channel. + MaxConnections = 0, // 0 is unlimited, this value determines the maximum number of weapons that can link up to another weapon. + StoreLimitPerBlock = false, // Setting this to true will switch the StorageLimit from being per Location to per block per Location. + StorageLocation = "", // This location ID is used either by the master weapon (if ExportTargets = true) or the slave weapon (if its false). This is shared across the conncted grids. + Mode = NoComms, // NoComms, BroadCast, LocalNetwork, Repeater, Relay, Jamming + TargetPersists = false, // Whether or not the weapon will retain its existing target even if the source of the target releases theirs. + Security = Private, // Public, Private, Secure + BroadCastChannel = "", // If defined you will broadcast to all other scanners on this channel. + BroadCastRange = 0, // This is the range that you will broadcast up too. Note that this value applies to both the sender and receiver, both range requirements must be met. + JammingStrength = 0, // If Mode is set to jamming, then this value will decrease the "range" of broadcasts. Strength falls off at sqr of the distance. + RelayChannel = "", // If defined this channel will be used to relay any targets it seems on the broadcast channel. + RelayRange = 0, // This defines the range that any broadcasts will be relayed. Note that this channel id is seen as the "broadcast" channel for all receivers, broadcast range requirements apply. + }, + }, + HardPoint = new HardPointDef + { + PartName = "Nebulon-B", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 0f, // Projectile inaccuracy in degrees. + AimingTolerance = 1f, // How many degrees off target a turret can fire at. 0 - 180 firing angle. + 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 = 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. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + ScanTrackOnly = false, // This weapon only scans and tracks entities, this disables un-needed functionality and customizes for this purpose. + Ui = new UiDef + { + RateOfFire = false, // Enables terminal slider for changing rate of fire. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + AlternateUi = false, // This simplifies and customizes the block controls for alternative weapon purposes, + DisableStatus = false, // Do not display weapon status NoTarget, Reloading, NoAmmo, etc.. + }, + Ai = new AiDef + { + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = true, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + DefaultLeadGroup = 0, // Default LeadGroup setting, range 0-5, 0 is disables lead group. Only useful for fixed weapons or weapons set to OverrideLeads. + TargetGridCenter = false, // Does not target blocks, instead it targets grid center. + }, + HardWare = new HardwareDef + { + RotateRate = 0.1f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0.1f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = -180, // Az/Ele figures are in degrees + MaxAzimuth = 180, + MinElevation = -9, + MaxElevation = 50, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 15, // Default resting elevation + InventorySize = 1f, // Inventory capacity in kL. + IdlePower = 0.25f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "AmmoType2", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 2, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + DisableLosCheck = true, // Do not perform LOS checks at all... not advised for self tracking weapons + NoVoxelLosCheck = true, // If set to true this ignores voxels for LOS checking.. which means weapons will fire at targets behind voxels. However, this can save cpu in some situations, use with caution. + Debug = false, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 120, // Set this to 3600 for beam weapons. This is how fast your Gun fires. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 600, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 1, // Number of physical magazines to consume on reload. + DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 200, // Heat generated per shot. + MaxHeat = 200, // 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 = 1, // Amount of heat lost per second. + DegradeRof = false, // 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. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = true, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + MaxActiveProjectiles = 1, // Maximum number of drones in flight (only works for drone launchers) + MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon + GoHomeToReload = false, // Tells the weapon it must be in the home position before it can reload. + DropTargetUntilLoaded = false, // If true this weapon will drop the target when its out of ammo and until its reloaded. + }, + + + Audio = new HardPointAudioDef + { + PreFiringSound = "", // Audio for warmup effect. + FiringSound = "NebulonB_Arrival", // Audio for firing. + FiringSoundPerShot = true, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "", // Sound SubtypeID, for when your Weapon is in a reloading state + NoAmmoSound = "", + HardPointRotationSound = "WepTurretGatlingRotate", // Audio played when turret is moving. + BarrelRotationSound = "WepShipGatlingRotation", + FireSoundEndDelay = 120, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "BeaconWarpFlash", // SubtypeId of muzzle particle effect. + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + DisableCameraCulling = false, // 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 + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, // Whether to end a looping effect instantly when firing stops. + MaxDistance = 10000, + MaxDuration = 1, + Scale = 1f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "", + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false, // 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 + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, + MaxDistance = 800, + MaxDuration = 0, + Scale = 1f, + }, + }, + }, + }, + Ammos = new[] { + Launch_Dummy_Nebulon, + Nebulon, + Light_Turbolaser_Nebulon, + Blank_Round_Neb, + Concussion_Missile_Nebulon,// Must list all primary, shrapnel, and pattern ammos. + }, + + //Animations = fuck, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/SM3_Counter_Launcher.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/SM3_Counter_Launcher.cs index e9987de65..8a68f4981 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/SM3_Counter_Launcher.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/SM3_Counter_Launcher.cs @@ -1,198 +1,204 @@ -using static Scripts.Structure; -using static Scripts.Structure.WeaponDefinition; -using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; -using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; -using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; -using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; -using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; - -namespace Scripts { - partial class Parts { - // Don't edit above this line - WeaponDefinition SM3_Counter_Battery => new WeaponDefinition - { - Assignments = new ModelAssignmentsDef - { - MountPoints = new[] { - new MountPointDef { - SubtypeId = "Counter_Battery", // Block Subtypeid. Your Cubeblocks contain this information - SpinPartId = "missileturretbarrels", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. - MuzzlePartId = "missileturretbase1", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. - AzimuthPartId = "None", // Your Rotating Subpart, the bit that moves sideways. - ElevationPartId = "None",// Your Elevating Subpart, that bit that moves up. - DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. - IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. - }, - - }, - Muzzles = new[] { - "muzzle_missile_01", - // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A - - }, - Ejector = "", // Optional; empty from which to eject "shells" if specified. - Scope = "", // Where line of sight checks are performed from. Must be clear of block collision. - }, - Targeting = new TargetingDef - { - Threats = new[] { - Projectiles, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals - }, - SubSystems = new[] { - Thrust, Utility, Offense, Power, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any - }, - ClosestFirst = false, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). - IgnoreDumbProjectiles = true, // Don't fire at non-smart projectiles. - 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 = 10000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. - MinTargetDistance = 650, // Minimum distance at which targets will be automatically shot at. - TopTargets = 4, // Maximum number of targets to randomize between; 0 = unlimited. - TopBlocks = 16, // Maximum number of blocks to randomize between; 0 = unlimited. - StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. - }, - HardPoint = new HardPointDef - { - PartName = "SM-3 Torpedo", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). - DeviateShotAngle = 7f, // Projectile inaccuracy in degrees. - AimingTolerance = 270f, // 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 - DelayCeaseFire = 0, // Measured in game ticks (6 = 100ms, 60 = 1 second, etc..). Length of time the weapon continues firing after trigger is released. - 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 - { - RateOfFire = false, // Enables terminal slider for changing rate of fire. - DamageModifier = false, // Enables terminal slider for changing damage per shot. - ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. - EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. - }, - Ai = new AiDef - { - TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. - TurretAttached = false, // Whether this weapon is a turret and should have the UI and API options for such. - TurretController = false, // Whether this weapon can physically control the turret's movement. - PrimaryTracking = false, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. - LockOnFocus = false,// If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. - SuppressFire = false, // If enabled, weapon can only be fired manually. - OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. - }, - HardWare = new HardwareDef - { - RotateRate = 0f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). - ElevateRate = 0f, // Max traversal speed of elevation subpart in radians per tick. - MinAzimuth = 0, - MaxAzimuth = 0, - MinElevation = 0, - MaxElevation = 0, - HomeAzimuth = 0, // Default resting rotation angle - HomeElevation = 0, // Default resting elevation - InventorySize = 5f, // Inventory capacity in kL. - IdlePower = 0.25f, // Constant base power draw in MW. - FixedOffset = false, // Deprecated. - Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. - Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom - CriticalReaction = new CriticalDef - { - Enable = false, // Enables Warhead behaviour. - DefaultArmedTimer = 120, // Sets default countdown duration. - PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. - TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. - AmmoRound = "AmmoType2", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. - }, - }, - Other = new OtherDef - { - ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. - RotateBarrelAxis = 3, // For spinning barrels, which axis to spin the barrel around; 0 = none. - EnergyPriority = 0, // Deprecated. - MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. - Debug = false, // Force enables debug mode. - RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. - CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. - CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. - }, - Loading = new LoadingDef - { - RateOfFire = 80, // Set this to 3600 for beam weapons. This is how fast your Gun fires. - BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. - TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. - SkipBarrels = 0, // Number of muzzles to skip after each fire event. - ReloadTime = 2400, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - MagsToLoad = 1, // Number of physical magazines to consume on reload. - DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - HeatPerShot = 0, // Heat generated per shot. - MaxHeat = 0, // Max heat before weapon enters cooldown (70% of max heat). - Cooldown = 0f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 - HeatSinkRate = 0, // Amount of heat lost per second. - DegradeRof = false, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat). - ShotsInBurst = 8, // 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 = 180, // How long to spend "reloading" after each burst. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). - FireFull = true, // 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. - GiveUpAfter = true, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. - BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. - DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). - SpinFree = false, // Spin barrel while not firing. - StayCharged = false, // Will start recharging whenever power cap is not full. - MaxActiveProjectiles = 0, // Maximum number of projectiles in flight - MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon - }, - Audio = new HardPointAudioDef - { - PreFiringSound = "", // Audio for warmup effect. - FiringSound = "", // Audio for firing. - FiringSoundPerShot = false, // Whether to replay the sound for each shot, or just loop over the entire track while firing. - ReloadSound = "", // Sound SubtypeID, for when your Weapon is in a reloading state - NoAmmoSound = "", - HardPointRotationSound = "", // Audio played when turret is moving. - BarrelRotationSound = "", - FireSoundEndDelay = 0, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). - FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. - }, - Graphics = new HardPointParticleDef - { - Effect1 = new ParticleDef - { - Name = "RERotaryCannonFlash", // SubtypeId of muzzle particle effect. - Color = Color(red: 15, green: 2, blue: 1, alpha: 0.8f), // Deprecated, set color in particle sbc. - Offset = Vector(x: 0, y: 0.22, z: -1.5), // Offsets the effect from the muzzle empty. - - Extras = new ParticleOptionDef - { - Loop = false, // Deprecated, set this in particle sbc. - Restart = true, // Whether to end the previous effect early and spawn a new one. - MaxDistance = 1000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! - MaxDuration = 0, // How many ticks the effect should be ended after, if it's still running. - Scale = 1f, // Scale of effect. - }, - }, - Effect2 = new ParticleDef - { - Name = "", - Color = Color(red: 0, green: 0, blue: 0, alpha: 1), - Offset = Vector(x: 0, y: 0, z: 0), - - Extras = new ParticleOptionDef - { - Restart = false, - MaxDistance = 50, - MaxDuration = 0, - Scale = 1f, - }, - }, - }, - }, - Ammos = new[] { - SM3_Counter_Battery_Launch, - // Must list all primary, shrapnel, and pattern ammos. - }, - //Animations = Weapon75_Animation, - //Upgrades = UpgradeModules, - }; - // Don't edit below this line. - } +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.TargetingDef; +using static Scripts.Structure.WeaponDefinition.TargetingDef.CommunicationDef.Comms; +using static Scripts.Structure.WeaponDefinition.TargetingDef.CommunicationDef.SecurityMode; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts { + partial class Parts { + // Don't edit above this line + WeaponDefinition SM3_Counter_Battery => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "Counter_Battery", // Block Subtypeid. Your Cubeblocks contain this information + SpinPartId = "missileturretbarrels", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. + MuzzlePartId = "missileturretbase1", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. + AzimuthPartId = "None", // Your Rotating Subpart, the bit that moves sideways. + ElevationPartId = "None",// Your Elevating Subpart, that bit that moves up. + DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + + }, + Muzzles = new[] { + "muzzle_missile_01", + // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A + + }, + Ejector = "", // Optional; empty from which to eject "shells" if specified. + Scope = "", // Where line of sight checks are performed from. Must be clear of block collision. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Projectiles, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals + }, + SubSystems = new[] { + Thrust, Utility, Offense, Power, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = false, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = true, // Don't fire at non-smart projectiles. + 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 = 10000, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 650, // Minimum distance at which targets will be automatically shot at. + TopTargets = 4, // Maximum number of targets to randomize between; 0 = unlimited. + TopBlocks = 16, // Maximum number of blocks to randomize between; 0 = unlimited. + StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. + UniqueTargetPerWeapon = true, // only applies to multi-weapon blocks + }, + HardPoint = new HardPointDef + { + PartName = "SM-3 Torpedo", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 7f, // Projectile inaccuracy in degrees. + AimingTolerance = 270f, // 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 + DelayCeaseFire = 0, // Measured in game ticks (6 = 100ms, 60 = 1 second, etc..). Length of time the weapon continues firing after trigger is released. + 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 + { + RateOfFire = false, // Enables terminal slider for changing rate of fire. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + }, + Ai = new AiDef + { + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. + TurretAttached = false, // Whether this weapon is a turret and should have the UI and API options for such. + TurretController = false, // Whether this weapon can physically control the turret's movement. + PrimaryTracking = false, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false,// If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + }, + HardWare = new HardwareDef + { + RotateRate = 0f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = 0, + MaxAzimuth = 0, + MinElevation = 0, + MaxElevation = 0, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 0, // Default resting elevation + InventorySize = 5f, // Inventory capacity in kL. + IdlePower = 0.25f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "AmmoType2", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 3, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + DisableLosCheck = true, // Do not perform LOS checks at all... not advised for self tracking weapons + NoVoxelLosCheck = true, // If set to true this ignores voxels for LOS checking.. which means weapons will fire at targets behind voxels. However, this can save cpu in some situations, use with caution. + Debug = false, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 80, // Set this to 3600 for beam weapons. This is how fast your Gun fires. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 2400, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 1, // Number of physical magazines to consume on reload. + DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 0, // Heat generated per shot. + MaxHeat = 0, // Max heat before weapon enters cooldown (70% of max heat). + Cooldown = 0f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 + HeatSinkRate = 0, // Amount of heat lost per second. + DegradeRof = false, // Progressively lower rate of fire when over 80% heat threshold (80% of max heat). + ShotsInBurst = 8, // 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 = 180, // How long to spend "reloading" after each burst. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + FireFull = true, // 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. + GiveUpAfter = true, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = false, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + MaxActiveProjectiles = 0, // Maximum number of projectiles in flight + MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "", // Audio for warmup effect. + FiringSound = "", // Audio for firing. + FiringSoundPerShot = false, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "", // Sound SubtypeID, for when your Weapon is in a reloading state + NoAmmoSound = "", + HardPointRotationSound = "", // Audio played when turret is moving. + BarrelRotationSound = "", + FireSoundEndDelay = 0, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "RERotaryCannonFlash", // SubtypeId of muzzle particle effect. + Color = Color(red: 15, green: 2, blue: 1, alpha: 0.8f), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0.22, z: -1.5), // Offsets the effect from the muzzle empty. + + Extras = new ParticleOptionDef + { + Loop = false, // Deprecated, set this in particle sbc. + Restart = true, // Whether to end the previous effect early and spawn a new one. + MaxDistance = 1000, // Max distance at which this effect should be visible. NOTE: This will use whichever MaxDistance value is higher across Effect1 and Effect2! + MaxDuration = 0, // How many ticks the effect should be ended after, if it's still running. + Scale = 1f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "", + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + + Extras = new ParticleOptionDef + { + Restart = false, + MaxDistance = 50, + MaxDuration = 0, + Scale = 1f, + }, + }, + }, + }, + Ammos = new[] { + SM3_Counter_Battery_Launch, + // Must list all primary, shrapnel, and pattern ammos. + }, + //Animations = Weapon75_Animation, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } } \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/SM3_Counter_Launcher_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/SM3_Counter_Launcher_Ammo.cs index cf7570ff2..c0b9d479c 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/SM3_Counter_Launcher_Ammo.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/SM3_Counter_Launcher_Ammo.cs @@ -287,6 +287,7 @@ partial class Parts KeepAliveAfterTargetLoss = true, // Whether to stop early death of projectile on target loss OffsetRatio = 0.25f, // The ratio to offset the random direction (0 to 1) OffsetTime = 35, // how often to offset degree, measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..) + //UniqueTargetPerWeapon = true, // only applies to multi-weapon blocks }, Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues. { diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Scathis.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Scathis.cs new file mode 100644 index 000000000..ade2e2022 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Scathis.cs @@ -0,0 +1,223 @@ +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts { + partial class Parts { + // Don't edit above this line + WeaponDefinition Scathis => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "ScathisM77", // Block Subtypeid. Your Cubeblocks contain this information + SpinPartId = "None", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. + MuzzlePartId = "GatlingTurretBarrels", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. + AzimuthPartId = "GatlingTurretBase1", // Your Rotating Subpart, the bit that moves sideways. + ElevationPartId = "GatlingTurretBarrels",// Your Elevating Subpart, that bit that moves up. + DurabilityMod = 0.25f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + + }, + Muzzles = new[] { + "muzzle_storm_01", + "muzzle_storm_02", + "muzzle_storm_03", + "muzzle_storm_04", + "muzzle_storm_05", + "muzzle_storm_06", + "muzzle_storm_07", + "muzzle_storm_08", + "muzzle_storm_09", + "muzzle_storm_10", + "muzzle_storm_11", + "muzzle_storm_12", + "muzzle_storm_13", + "muzzle_storm_14", + "muzzle_storm_15", + "muzzle_storm_16", + "muzzle_storm_17", + "muzzle_storm_18", + "muzzle_storm_19", + "muzzle_storm_20", + "muzzle_storm_21", + "muzzle_storm_22", + "muzzle_storm_23", + "muzzle_storm_24", + "muzzle_storm_25", + "muzzle_storm_26", + "muzzle_storm_27", + "muzzle_storm_28", + "muzzle_storm_29", + "muzzle_storm_30", + "muzzle_storm_31", + "muzzle_storm_32", + // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A + + }, + Ejector = "", // Optional; empty from which to eject "shells" if specified. + Scope = "metal_camera", // Where line of sight checks are performed from. Must be clear of block collision. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Grids, Projectiles, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals + }, + SubSystems = new[] { + Thrust, Utility, Offense, Power, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = false, // Don't fire at non-smart projectiles. + 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 = 5500, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. + TopTargets = 4, // 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. + }, + HardPoint = new HardPointDef + { + PartName = "Scathis M-77", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 0.05f, // Projectile inaccuracy in degrees. + AimingTolerance = 5f, // How many degrees off target a turret can fire at. 0 - 180 firing angle. + 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. + CanShootSubmerged = false, // Whether the weapon can be fired underwater when using WaterMod. + + Ui = new UiDef + { + RateOfFire = true, // Enables terminal slider for changing rate of fire. + DamageModifier = true, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + }, + Ai = new AiDef + { + TrackTargets = true, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = true, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = true, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = true, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = true, // Disable target leading on fixed weapons, or allow it for turrets. + }, + HardWare = new HardwareDef + { + RotateRate = 0.1f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0.1f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = -180, + MaxAzimuth = 180, + MinElevation = -45, + MaxElevation = 45, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 0, // Default resting elevation + InventorySize = 1f, // Inventory capacity in kL. + IdlePower = 0.25f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "AmmoType2", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 0, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + Debug = false, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 2400, // Set this to 3600 for beam weapons. This is how fast your Gun fires. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 800, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 1, // Number of physical magazines to consume on reload. + DelayUntilFire = 0, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 0, // Heat generated per shot. + MaxHeat = 1200, // Max heat before weapon enters cooldown (70% of max heat). + Cooldown = 0.01f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 + HeatSinkRate = 61, // Amount of heat lost per second. + DegradeRof = false, // 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 = true, // 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. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = false, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + MaxActiveProjectiles = 0, // Maximum number of drones in flight (only works for drone launchers) + MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "", // Audio for warmup effect. + FiringSound = "metalstorm", // Audio for firing. + FiringSoundPerShot = true, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "metalstormreload", // Sound SubtypeID, for when your Weapon is in a reloading state + NoAmmoSound = "", + HardPointRotationSound = "WepTurretGatlingRotate", // Audio played when turret is moving. + BarrelRotationSound = "WepShipGatlingRotation", + FireSoundEndDelay = 120, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "Muzzle_Flash_MetalStorm", // SubtypeId of muzzle particle effect. + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + Extras = new ParticleOptionDef + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, // Whether to end a looping effect instantly when firing stops. + Scale = 1f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "", + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, + Scale = 1f, + }, + }, + }, + }, + Ammos = new[] { + MS1, // Must list all primary, shrapnel, and pattern ammos. + }, + //Animations = Weapon75_Animation, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ScathisAmmo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ScathisAmmo.cs new file mode 100644 index 000000000..27b3544a7 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/ScathisAmmo.cs @@ -0,0 +1,268 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AmmoDef MS1 => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "ScathisProj1", // 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.001f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 8000f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 32, // 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 = true, // 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. + }, + 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 = 0.5, // 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. + Grids = new GridSizeDef + { + Large = -1f, // Multiplier for damage against large grids. + Small = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 + }, + Deform = new DeformDef + { + DeformType = NoDeform, // HitBlock- applies deformation to the block that was hit + // AllDamagedBlocks- applies deformation to all blocks damaged (for AOE) + // NoDeform- applies no deformation + DeformDelay = 30, // Time in ticks to wait before applying another deformation event (prevents excess calls for deformation every tick or from multiple sources) + }, + 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, + }, + }, + }, + }, + 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 = 0, // 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 = 1000, // voxel phasing if you go above 5100 + MaxTrajectory = 6000, // 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. + }, + 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 = "", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Scale = 1, + }, + }, + Hit = new ParticleDef + { + Name = "", + 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 = 5f, // + Width = 0.1f, // + Color = Color(red: 25, green: 2, blue: 0f, 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 = true, // If true Tracer TextureMode is ignored + Textures = new[] { + "ProjectileTrailLine", // 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 = 0.0001f, // meters per second + Color = Color(red: 0, green: 0, blue: 0f, alpha: 0), + 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, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "cbar", + ShotSound = "", + ShieldHitSound = "shit", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 + }; + + + } +} + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Singularity_Projector.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Singularity_Projector.cs new file mode 100644 index 000000000..3c3a6cbba --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Singularity_Projector.cs @@ -0,0 +1,208 @@ +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.ModelAssignmentsDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.Prediction; +using static Scripts.Structure.WeaponDefinition.TargetingDef.BlockTypes; +using static Scripts.Structure.WeaponDefinition.TargetingDef.Threat; +using static Scripts.Structure.WeaponDefinition.TargetingDef; +using static Scripts.Structure.WeaponDefinition.TargetingDef.CommunicationDef.Comms; +using static Scripts.Structure.WeaponDefinition.TargetingDef.CommunicationDef.SecurityMode; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef; +using static Scripts.Structure.WeaponDefinition.HardPointDef.HardwareDef.HardwareType; + +namespace Scripts { + partial class Parts { + // Don't edit above this line + WeaponDefinition Point_Singularity_Projector => new WeaponDefinition + { + Assignments = new ModelAssignmentsDef + { + MountPoints = new[] { + new MountPointDef { + SubtypeId = "PSP", // Block Subtypeid. Your Cubeblocks contain this information + SpinPartId = "None", // For weapons with a spinning barrel such as Gatling Guns. Subpart_Boomsticks must be written as Boomsticks. + MuzzlePartId = "None", // The subpart where your muzzle empties are located. This is often the elevation subpart. Subpart_Boomsticks must be written as Boomsticks. + AzimuthPartId = "None", // Your Rotating Subpart, the bit that moves sideways. + ElevationPartId = "None",// Your Elevating Subpart, that bit that moves up. + DurabilityMod = 0.20f, // GeneralDamageMultiplier, 0.25f = 25% damage taken. + IconName = "TestIcon.dds" // Overlay for block inventory slots, like reactors, refineries, etc. + }, + + }, + Muzzles = new[] { + "muzzle", + // Where your Projectiles spawn. Use numbers not Letters. IE Muzzle_01 not Muzzle_A + + }, + Ejector = "", // Optional; empty from which to eject "shells" if specified. + Scope = "", // Where line of sight checks are performed from. Must be clear of block collision. + }, + Targeting = new TargetingDef + { + Threats = new[] { + Grids, // Types of threat to engage: Grids, Projectiles, Characters, Meteors, Neutrals + }, + SubSystems = new[] { + Thrust, Utility, Offense, Power, Production, Any, // Subsystem targeting priority: Offense, Utility, Power, Production, Thrust, Jumping, Steering, Any + }, + ClosestFirst = true, // Tries to pick closest targets first (blocks on grids, projectiles, etc...). + IgnoreDumbProjectiles = false, // Don't fire at non-smart projectiles. + 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 = 0, // Maximum distance at which targets will be automatically shot at; 0 = unlimited. + MinTargetDistance = 0, // Minimum distance at which targets will be automatically shot at. + TopTargets = 16, // Maximum number of targets to randomize between; 0 = unlimited. + TopBlocks = 16, // Maximum number of blocks to randomize between; 0 = unlimited. + StopTrackingSpeed = 0, // Do not track threats traveling faster than this speed; 0 = unlimited. + }, + HardPoint = new HardPointDef + { + PartName = "Point Singularity Projector", // Name of the weapon in terminal, should be unique for each weapon definition that shares a SubtypeId (i.e. multiweapons). + DeviateShotAngle = 0f, // Projectile inaccuracy in degrees. + AimingTolerance = 180f, // 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 + 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. + CanShootSubmerged = false, // Whether the weapon can be fired underwater when using WaterMod. + + Ui = new UiDef + { + RateOfFire = false, // Enables terminal slider for changing rate of fire. + DamageModifier = false, // Enables terminal slider for changing damage per shot. + ToggleGuidance = false, // Enables terminal option to disable smart projectile guidance. + EnableOverload = false, // Enables terminal option to turn on Overload; this allows energy weapons to double damage per shot, at the cost of quadrupled power draw and heat gain, and 2% self damage on overheat. + }, + Ai = new AiDef + { + TrackTargets = false, // Whether this weapon tracks its own targets, or (for multiweapons) relies on the weapon with PrimaryTracking enabled for target designation. Turrets Need this set to True. + TurretAttached = false, // Whether this weapon is a turret and should have the UI and API options for such. Turrets Need this set to True. + TurretController = false, // Whether this weapon can physically control the turret's movement. Turrets Need this set to True. + PrimaryTracking = false, // For multiweapons: whether this weapon should designate targets for other weapons on the platform without their own tracking. + LockOnFocus = false, // If enabled, weapon will only fire at targets that have been HUD selected AND locked onto by pressing Numpad 0. + SuppressFire = false, // If enabled, weapon can only be fired manually. + OverrideLeads = false, // Disable target leading on fixed weapons, or allow it for turrets. + }, + HardWare = new HardwareDef + { + RotateRate = 0.1f, // Max traversal speed of azimuth subpart in radians per tick (0.1 is approximately 360 degrees per second). + ElevateRate = 0.1f, // Max traversal speed of elevation subpart in radians per tick. + MinAzimuth = -180, + MaxAzimuth = 180, + MinElevation = -180, + MaxElevation = 180, + HomeAzimuth = 0, // Default resting rotation angle + HomeElevation = 15, // Default resting elevation + InventorySize = 1f, // Inventory capacity in kL. + IdlePower = 0.25f, // Constant base power draw in MW. + FixedOffset = false, // Deprecated. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the aiming/firing line of the weapon, in metres. + Type = BlockWeapon, // What type of weapon this is; BlockWeapon, HandWeapon, Phantom + CriticalReaction = new CriticalDef + { + Enable = false, // Enables Warhead behaviour. + DefaultArmedTimer = 120, // Sets default countdown duration. + PreArmed = false, // Whether the warhead is armed by default when placed. Best left as false. + TerminalControls = true, // Whether the warhead should have terminal controls for arming and detonation. + AmmoRound = "AmmoType2", // Optional. If specified, the warhead will always use this ammo on detonation rather than the currently selected ammo. + }, + }, + Other = new OtherDef + { + ConstructPartCap = 1, // Maximum number of blocks with this weapon on a grid; 0 = unlimited. + RotateBarrelAxis = 0, // For spinning barrels, which axis to spin the barrel around; 0 = none. + EnergyPriority = 0, // Deprecated. + MuzzleCheck = false, // Whether the weapon should check LOS from each individual muzzle in addition to the scope. + Debug = false, // Force enables debug mode. + RestrictionRadius = 0, // Prevents other blocks of this type from being placed within this distance of the centre of the block. + CheckInflatedBox = false, // If true, the above distance check is performed from the edge of the block instead of the centre. + CheckForAnyWeapon = false, // If true, the check will fail if ANY weapon is present, not just weapons of the same subtype. + }, + Loading = new LoadingDef + { + RateOfFire = 1, // Set this to 3600 for beam weapons. This is how fast your Gun fires. + BarrelsPerShot = 1, // How many muzzles will fire a projectile per fire event. + TrajectilesPerBarrel = 1, // Number of projectiles per muzzle per fire event. + SkipBarrels = 0, // Number of muzzles to skip after each fire event. + ReloadTime = 7200, // Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + MagsToLoad = 1, // Number of physical magazines to consume on reload. + DelayUntilFire = 120, // How long the weapon waits before shooting after being told to fire. Measured in game ticks (6 = 100ms, 60 = 1 seconds, etc..). + HeatPerShot = 7200, // Heat generated per shot. + MaxHeat = 7200, // Max heat before weapon enters cooldown (70% of max heat). + Cooldown = 0f, // Percentage of max heat to be under to start firing again after overheat; accepts 0 - 0.95 + HeatSinkRate = 60, // Amount of heat lost per second. + DegradeRof = false, // 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. + GiveUpAfter = false, // Whether the weapon should drop its current target and reacquire a new target after finishing its magazine or burst. + BarrelSpinRate = 0, // Visual only, 0 disables and uses RateOfFire. + DeterministicSpin = false, // Spin barrel position will always be relative to initial / starting positions (spin will not be as smooth). + SpinFree = false, // Spin barrel while not firing. + StayCharged = false, // Will start recharging whenever power cap is not full. + MaxActiveProjectiles = 0, // Maximum number of drones in flight (only works for drone launchers) + MaxReloads = 0, // Maximum number of reloads in the LIFETIME of a weapon + }, + Audio = new HardPointAudioDef + { + PreFiringSound = "caution", // Audio for warmup effect. + FiringSound = "gapsfx", // Audio for firing. + FiringSoundPerShot = true, // Whether to replay the sound for each shot, or just loop over the entire track while firing. + ReloadSound = "", // Sound SubtypeID, for when your Weapon is in a reloading state + NoAmmoSound = "", + HardPointRotationSound = "WepTurretGatlingRotate", // Audio played when turret is moving. + BarrelRotationSound = "WepShipGatlingRotation", + FireSoundEndDelay = 0, // How long the firing audio should keep playing after firing stops. Measured in game ticks(6 = 100ms, 60 = 1 seconds, etc..). + FireSoundNoBurst = true, // Don't stop firing sound from looping when delaying after burst. + }, + Graphics = new HardPointParticleDef + { + Effect1 = new ParticleDef + { + Name = "EXPLODETHESUN1", // SubtypeId of muzzle particle effect. + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), // Deprecated, set color in particle sbc. + Offset = Vector(x: 0, y: 0, z: 0), // Offsets the effect from the muzzle empty. + Extras = new ParticleOptionDef + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, // Whether to end a looping effect instantly when firing stops. + MaxDistance = 6000, + MaxDuration = 120, + Scale = 10f, // Scale of effect. + }, + }, + Effect2 = new ParticleDef + { + Name = "", + Color = Color(red: 0, green: 0, blue: 0, alpha: 1), + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Loop = false, // Set this to the same as in the particle sbc! + Restart = false, + Scale = 1f, + }, + }, + }, + }, + Ammos = new[] { + + SubterraneanSun, + SubterraneanSunStage2, + SubterraneanSunStage2SuccParticleInvis, + SubterraneanSunStage2SuccParticleVisible, + SubterraneanSunStage2EWARTimespawn, + SubterraneanSunStage2EWARPattern, + + + + + }, + //Animations = Weapon75_Animation, + Animations = HexcannonAnimation, + //Upgrades = UpgradeModules, + }; + // Don't edit below this line. + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Singularity_Projector_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Singularity_Projector_Ammo.cs new file mode 100644 index 000000000..8798a8379 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Singularity_Projector_Ammo.cs @@ -0,0 +1,2331 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + + private AmmoDef SubterraneanSun => new AmmoDef + { + AmmoMagazine = "SubterraneanSun", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "SubterraneanSun", // 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 = 1080f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 1f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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. + 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 = "SubterraneanSunStage2", // 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. + 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 = false, // Enables TimedSpawns mechanism + Interval = 1, // 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 + 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 + ParentDies = true, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Direct, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 0, // Number of spawns in each group + GroupDelay = 0, // Delay between each group. + }, + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "SubterraneanSunStage2", "SubterraneanSunStage2EWARTimespawn", + }, + Mode = Fragment, // 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 = 3, // 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 = 0.5, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // 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 = 5f, // Meters + Damage = 5f, + 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 = 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 1f, + 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 = 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 = 1, + CustomParticle = "fuckoff", // Particle SubtypeID, from your Particle SBC + CustomSound = "soundName", // 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 = None, // 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 = 300, // 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 = 500, // Meters Per Second. This is the spawning Speed of the Projectile, and used by turning. + DesiredSpeed = 500, // voxel phasing if you go above 5100 + MaxTrajectory = 5000, // 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. + Smarts = new SmartsDef + { + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 0f, // controls how responsive tracking is. + MaxLateralThrust = 0, // 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 for drones + 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..) + FocusOnly = false, // only target the constructs Ai's focus target + }, + 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 = true, + 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + Tracer = new TracerBaseDef + { + Enable = true, + Length = 10f, // + Width = 0.5f, // + Color = Color(red: 20, green: 20, blue: 20f, alpha: 1), // RBG 255 is Neon Glowing, 100 is Quite Bright. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = true, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + Textures = new[] { + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + }, + TextureMode = Normal, + DecayTime = 30, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 20, green: 20, blue: 20, alpha: 1), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "suntravelloop", // 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 = 0.5f, // 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 SubterraneanSunStage2 => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "SubterraneanSunStage2", // 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.1f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 1f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // In kilograms; how much force the impact will apply to the target. + Health = 50000, // 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 = 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 = 1, // 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 = SphereShape, // LineShape or SphereShape. Do not use SphereShape for fast moving projectiles if you care about precision. + Diameter = 10, // 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 = "SubterraneanSunStage2SuccParticleInvis", // AmmoRound field of the ammo to spawn. + Fragments = 10, // Number of projectiles to spawn. + Degrees = 360, // 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 = 24, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 60, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 6000, // Max number of fragment children to spawn + Proximity = 0, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = false, // Start fragment direction pointing at Target + PointType = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 10, // Number of spawns in each group + GroupDelay = 60, // 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 = Fragment, // 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 = 1, // 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 = true, // Whether to damage the weapon's own grid. + HealthHitModifier = 0.5, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // 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 = 20f, // Meters + Damage = 25000f, + Depth = 20f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 100f, // Radius of AOE effect, in meters. + Damage = 5000000f, + Depth = 100f, // 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 = 20, + CustomParticle = "EXPLODETHESUN1", // Particle SubtypeID, from your Particle SBC + CustomSound = "rocklaunch", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // 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 = Pull, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 100, + Radius = 1000f, // Meters + Duration = 60, // In Ticks + StackDuration = true, // Combined Durations + Depletable = false, + MaxStacks = 1, // Max Debuffs at once + NoHitParticle = false, + + Force = new PushPullDef + { + ForceFrom = ProjectileLastPosition, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + ForceTo = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + Position = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + DisableRelativeMass = false, + TractorRange = 0, + ShooterFeelsForce = false, + }, + Field = new FieldDef + { + Interval = 6, // Time between each pulse, in game ticks (60 == 1 second), starts at 0 (59 == tick 60). + PulseChance = 100, // 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 = false, // Show Block damage effect. + TriggerRange = 0f, //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 = 3600, // 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 = 0.00000001f, // fucking particle piece of shit + MaxTrajectory = 5000, // 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. + Smarts = new SmartsDef + { + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 2, // controls how responsive tracking is. + MaxLateralThrust = 1, // 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 for drones + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // 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..) + FocusOnly = false, // only target the constructs Ai's focus target + ScanRange = 2000, // 0 disables projectile screening, the max range that this projectile will be seen at by defending grids (adds this projectile to defenders lookup database). + + }, + 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 = "THESUN", //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 = 10, + }, + }, + Hit = new ParticleDef + { + Name = "", + 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 = 1, // + Width = 1, // + Color = Color(red: 10, green: 10, blue: 10f, 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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[] { + "ProjectileTrailLine", // 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 = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), + 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[] { + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + }, + TextureMode = Normal, + DecayTime = 10, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, 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, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "sunloop", // 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 = 0.5f, // 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 SubterraneanSunStage2SuccParticleInvis => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "SubterraneanSunStage2SuccParticleInvis", // 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.1f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 1f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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 = "SubterraneanSunStage2SuccParticleVisible", // 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. + Reverse = true, // 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 = false, // Enables TimedSpawns mechanism + Interval = 4, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 60, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 200, // Max number of fragment children to spawn + Proximity = 0, // 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 = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 180f, //Aim cone used for Direct fire, in degrees + GroupSize = 20, // Number of spawns in each group + GroupDelay = 240, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // 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 = 20f, // Meters + Damage = 25000f, + Depth = 20f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 100f, // Radius of AOE effect, in meters. + Damage = 5000000f, + Depth = 100f, // 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 = 20, + CustomParticle = "fuckoff", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // 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 = Pull, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 100, + Radius = 1000f, // Meters + Duration = 60, // In Ticks + StackDuration = true, // Combined Durations + Depletable = false, + MaxStacks = 1, // Max Debuffs at once + NoHitParticle = false, + + Force = new PushPullDef + { + ForceFrom = ProjectileLastPosition, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + ForceTo = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + Position = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + DisableRelativeMass = false, + TractorRange = 0, + ShooterFeelsForce = false, + }, + Field = new FieldDef + { + Interval = 6, // Time between each pulse, in game ticks (60 == 1 second), starts at 0 (59 == tick 60). + PulseChance = 100, // 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 = false, // Show Block damage effect. + TriggerRange = 0f, //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 = true, // 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 = None, // 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 = 600, // 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 = 100, // Meters Per Second. This is the spawning Speed of the Projectile, and used by turning. + DesiredSpeed = 100, // voxel phasing if you go above 5100 + MaxTrajectory = 2000, // 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. + Smarts = new SmartsDef + { + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 2, // controls how responsive tracking is. + MaxLateralThrust = 1, // 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 for drones + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // 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..) + FocusOnly = false, // only target the constructs Ai's focus target + }, + 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 = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Scale = 20, + }, + }, + Hit = new ParticleDef + { + Name = "", + 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 = false, + Length = 1, // + Width = 1, // + Color = Color(red: 10, green: 10, blue: 10f, 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[] { + "ProjectileTrailLine", // 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 = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), + 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[] { + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + }, + TextureMode = Normal, + DecayTime = 100, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, 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, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // 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 = 0.5f, // 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 SubterraneanSunStage2SuccParticleVisible => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "SubterraneanSunStage2SuccParticleVisible", // 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.1f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 1f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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 = "", // 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. + 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 = false, // Enables TimedSpawns mechanism + Interval = 4, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 60, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 200, // Max number of fragment children to spawn + Proximity = 0, // 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 = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 180f, //Aim cone used for Direct fire, in degrees + GroupSize = 20, // Number of spawns in each group + GroupDelay = 240, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // 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 = 20f, // Meters + Damage = 25000f, + Depth = 20f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 100f, // Radius of AOE effect, in meters. + Damage = 5000000f, + Depth = 100f, // 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 = 20, + CustomParticle = "fuckoff", // Particle SubtypeID, from your Particle SBC + CustomSound = "", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // 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 = Pull, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 100, + Radius = 2000f, // Meters + Duration = 60, // In Ticks + StackDuration = true, // Combined Durations + Depletable = false, + MaxStacks = 1, // Max Debuffs at once + NoHitParticle = false, + + Force = new PushPullDef + { + ForceFrom = ProjectileLastPosition, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + ForceTo = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + Position = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + DisableRelativeMass = false, + TractorRange = 0, + ShooterFeelsForce = false, + }, + Field = new FieldDef + { + Interval = 6, // Time between each pulse, in game ticks (60 == 1 second), starts at 0 (59 == tick 60). + PulseChance = 100, // 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 = false, // Show Block damage effect. + TriggerRange = 0f, //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 = None, // 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 = 600, // 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 = 100, // Meters Per Second. This is the spawning Speed of the Projectile, and used by turning. + DesiredSpeed = 1000, // voxel phasing if you go above 5100 + MaxTrajectory = 1800, // 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. + Smarts = new SmartsDef + { + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 2, // controls how responsive tracking is. + MaxLateralThrust = 1, // 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 for drones + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // 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..) + FocusOnly = false, // only target the constructs Ai's focus target + }, + 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 = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Scale = 20, + }, + }, + Hit = new ParticleDef + { + Name = "", + 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 = 20, // + Width = 1, // + Color = Color(red: 10, green: 5, blue: 0f, 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[] { + "ProjectileTrailLine", // 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 = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), + 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[] { + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + }, + TextureMode = Normal, + DecayTime = 100, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, 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, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // 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 = 0.5f, // 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 SubterraneanSunStage2EWARTimespawn => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "SubterraneanSunStage2EWARTimespawn", // 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.1f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 1f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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 = SphereShape, // LineShape or SphereShape. Do not use SphereShape for fast moving projectiles if you care about precision. + Diameter = 11, // 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 = "SubterraneanSunStage2EWARPattern", // 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. + Reverse = true, // 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 = 60, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 60, // Max number of fragment children to spawn + Proximity = 0, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = false, // Start fragment direction pointing at Target + PointType = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 360f, //Aim cone used for Direct fire, in degrees + GroupSize = 1, // Number of spawns in each group + GroupDelay = 60, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // 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 = 20f, // Meters + Damage = 25000f, + Depth = 20f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 100f, // Radius of AOE effect, in meters. + Damage = 5000000f, + Depth = 100f, // 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 = 20, + CustomParticle = "fuckoff", // Particle SubtypeID, from your Particle SBC + CustomSound = "rocklaunch", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // 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 = Pull, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 100, + Radius = 1000f, // Meters + Duration = 60, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 1, // Max Debuffs at once + NoHitParticle = false, + + Force = new PushPullDef + { + ForceFrom = ProjectileLastPosition, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + ForceTo = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + Position = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + DisableRelativeMass = false, + TractorRange = 0, + ShooterFeelsForce = false, + }, + Field = new FieldDef + { + Interval = 6, // Time between each pulse, in game ticks (60 == 1 second), starts at 0 (59 == tick 60). + PulseChance = 100, // 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 = false, // Show Block damage effect. + TriggerRange = 0f, //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 = 3600, // 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 = 0.00000001f, // voxel phasing if you go above 5100 + MaxTrajectory = 1000, // 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. + Smarts = new SmartsDef + { + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 2, // controls how responsive tracking is. + MaxLateralThrust = 1, // 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 for drones + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // 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..) + FocusOnly = false, // only target the constructs Ai's focus target + ScanRange = 2000, // 0 disables projectile screening, the max range that this projectile will be seen at by defending grids (adds this projectile to defenders lookup database). + + }, + 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 = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Scale = 20, + }, + }, + Hit = new ParticleDef + { + Name = "", + 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 = false, + Length = 1, // + Width = 1, // + Color = Color(red: 10, green: 10, blue: 10f, 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[] { + "ProjectileTrailLine", // 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 = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), + 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[] { + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + }, + TextureMode = Normal, + DecayTime = 100, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, 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, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // 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 = 0.5f, // 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 SubterraneanSunStage2EWARPattern => new AmmoDef + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "SubterraneanSunStage2EWARPattern", // 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.1f, // Scaler for energy per shot (EnergyCost * BaseDamage * (RateOfFire / 3600) * BarrelsPerShot * TrajectilesPerBarrel). Uses EffectStrength instead of BaseDamage if EWAR. + BaseDamage = 1f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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 = 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 = 1, // 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 = SphereShape, // LineShape or SphereShape. Do not use SphereShape for fast moving projectiles if you care about precision. + Diameter = 11, // 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 = "", // 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. + Reverse = true, // 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 = false, // Enables TimedSpawns mechanism + Interval = 4, // Time between spawning fragments, in ticks, 0 means every tick, 1 means every other + StartTime = 60, // Time delay to start spawning fragments, in ticks, of total projectile life + MaxSpawns = 200, // Max number of fragment children to spawn + Proximity = 0, // 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 = Lead, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 180f, //Aim cone used for Direct fire, in degrees + GroupSize = 20, // Number of spawns in each group + GroupDelay = 240, // 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 = Fragment, // 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 = 1, // 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 = 0.5, // 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 = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // 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 = Energy, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // 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 = 20f, // Meters + Damage = 25000f, + Depth = 20f, // 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = false, + Radius = 100f, // Radius of AOE effect, in meters. + Damage = 5000000f, + Depth = 100f, // 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 = 20, + CustomParticle = "fuckoff", // Particle SubtypeID, from your Particle SBC + CustomSound = "rocklaunch", // SubtypeID from your Audio SBC, not a filename + Shape = Round, // Round or Diamond shape. Diamond is more performance friendly. + }, + }, + Ewar = new EwarDef + { + Enable = true, // Enables EWAR effects AND DISABLES BASE DAMAGE AND AOE DAMAGE!! + Type = Pull, // EnergySink, Emp, Offense, Nav, Dot, AntiSmart, JumpNull, Anchor, Tractor, Pull, Push, + Mode = Field, // Effect , Field + Strength = 15f, + Radius = 1000f, // Meters + Duration = 60, // In Ticks + StackDuration = false, // Combined Durations + Depletable = false, + MaxStacks = 1, // Max Debuffs at once + NoHitParticle = false, + + Force = new PushPullDef + { + ForceFrom = ProjectileLastPosition, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + ForceTo = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + Position = TargetCenter, // ProjectileLastPosition, ProjectileOrigin, HitPosition, TargetCenter, TargetCenterOfMass + DisableRelativeMass = false, + TractorRange = 0, + ShooterFeelsForce = false, + }, + Field = new FieldDef + { + Interval = 6, // Time between each pulse, in game ticks (60 == 1 second), starts at 0 (59 == tick 60). + PulseChance = 100, // 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 = false, // Show Block damage effect. + TriggerRange = 0f, //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 = None, // 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 = 60, // 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 = 0.00000001f, // voxel phasing if you go above 5100 + MaxTrajectory = 1000, // 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. + Smarts = new SmartsDef + { + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 2, // controls how responsive tracking is. + MaxLateralThrust = 1, // 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 for drones + MaxTargets = 0, // Number of targets allowed before ending, 0 = unlimited + NoTargetExpire = false, // Expire without ever having a target at TargetLossTime + Roam = true, // Roam current area after target loss + KeepAliveAfterTargetLoss = true, // 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..) + FocusOnly = false, // only target the constructs Ai's focus target + }, + 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 = true, + Particles = new AmmoParticleDef + { + Ammo = new ParticleDef + { + Name = "", //ShipWelderArc + Offset = Vector(x: 0, y: 0, z: 0), + Extras = new ParticleOptionDef + { + Scale = 20, + }, + }, + Hit = new ParticleDef + { + Name = "", + 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 = false, + Length = 1, // + Width = 1, // + Color = Color(red: 10, green: 10, blue: 10f, 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[] { + "ProjectileTrailLine", // 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 = 0.0001f, // meters per second + Color = Color(red: 5, green: 5, blue: 50f, alpha: 0), + 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[] { + "ProjectileTrailLine", // Please always have this Line set, if this Section is enabled. + }, + TextureMode = Normal, + DecayTime = 100, // In Ticks. 1 = 1 Additional Tracer generated per motion, 33 is 33 lines drawn per projectile. Keep this number low. + Color = Color(red: 1, green: 1, 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, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // 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 = 0.5f, // 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 + }; + + + } +} + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Z95_Ammo.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Z95_Ammo.cs new file mode 100644 index 000000000..9abff1e09 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/Z95_Ammo.cs @@ -0,0 +1,671 @@ +using static Scripts.Structure.WeaponDefinition; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EjectionDef.SpawnType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.ShapeDef.Shapes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.CustomScalesDef.SkipMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.PatternDef.PatternModes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.FragmentDef.TimedSpawnDef.PointTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.Conditions; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.UpRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.FwdRelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ReInitCondition; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.RelativeTo; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.ConditionOperators; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef.StageEvents; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.ApproachDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.TrajectoryDef.GuidanceType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.ShieldDef.ShieldType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DeformDef.DeformTypes; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.Falloff; +using static Scripts.Structure.WeaponDefinition.AmmoDef.AreaOfDamageDef.AoeShape; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarMode; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.EwarType; +using static Scripts.Structure.WeaponDefinition.AmmoDef.EwarDef.PushPullDef.Force; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.FactionColor; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.TracerBaseDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.LineDef.Texture; +using static Scripts.Structure.WeaponDefinition.AmmoDef.GraphicDef.DecalDef; +using static Scripts.Structure.WeaponDefinition.AmmoDef.DamageScaleDef.DamageTypes.Damage; + +namespace Scripts +{ // Don't edit above this line + partial class Parts + { + private AmmoDef Z95 => new AmmoDef // Your ID, for slotting into the Weapon CS + { + AmmoMagazine = "Energy", // SubtypeId of physical ammo magazine. Use "Energy" for weapons without physical ammo. + AmmoRound = "Z95_Launch", // 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 = 111f, // Direct damage; one steel plate is worth 100. + Mass = 0f, // 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. + 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. + HeatModifier = -1f, // Allows this ammo to modify the amount of heat the weapon produces per shot. + NpcSafe = false, // This is you tell npc moders that your ammo was designed with them in mind, if they tell you otherwise set this to false. + NoGridOrArmorScaling = true, // If you enable this you can remove the damagescale section entirely. + Sync = new SynchronizeDef + { + Full = false, // Do not use - still in progress + PointDefense = false, // Server will inform clients of what projectiles have died by PD defense and will trigger destruction. + OnHitDeath = false, // Server will inform clients when projectiles die due to them hitting something and will trigger destruction. + }, + 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 grids or projectiles that damage can be applied to, useful to limit overpenetration; 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 = "Fighter_Laser_Red", // AmmoRound field of the ammo to spawn. + Fragments = 1, // Number of projectiles to spawn. + Degrees = 1, // 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. + 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 + ArmWhenHit = false, // Setting this to true will arm the projectile when its shot by other projectiles. + 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, unless ArmWhenHit or Eol ArmOnlyOnHit is set to true then both kinds of frags are active + { + Enable = true, // Enables TimedSpawns mechanism + Interval = 15, // 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 + MaxSpawns = 1, // Max number of fragment children to spawn + Proximity = 1500, // Starting distance from target bounding sphere to start spawning fragments, 0 disables this feature. No spawning outside this distance + ParentDies = false, // Parent dies once after it spawns its last child. + PointAtTarget = true, // Start fragment direction pointing at Target + PointType = Direct, // Point accuracy, Direct (straight forward), Lead (always fire), Predict (only fire if it can hit) + DirectAimCone = 0f, //Aim cone used for Direct fire, in degrees + GroupSize = 7, // Number of spawns in each group + GroupDelay = 360, // Delay between each group. + }, + }, + Pattern = new PatternDef + { + Patterns = new[] { // If enabled, set of multiple ammos to fire in order instead of the main ammo. + "Fighter_Laser_Red", + "Fighter_Laser_Red", + "Fighter_Laser_Red", + "Fighter_Laser_Red", + "Fighter_Laser_Red", + "Fighter_Laser_Red", + "Fighter_Torpedo", + }, + Mode = Fragment, // 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 = 1, // 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 = 0.5, // 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 = 0.5f, // Value from 0.0001f to 1f where 0.1f would be a min damage of 10% of base damage. + }, + Grids = new GridSizeDef //If both of these values are -1, a 4x buff to SG weapons firing at LG and 0.25x debuff to LG weapons firing at SG will apply + { + Large = -1f, // Multiplier for damage against large grids. + Small = -1f, // 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 = -1f, // Multiplier for damage against every else. + }, + Shields = new ShieldDef + { + Modifier = 1f, // Multiplier for damage against shields. + Type = Default, // Damage vs healing against shields; Default, Heal + BypassModifier = -1f, // 0-1 will bypass shields and apply that damage amount as a scaled %. -1 is disabled. -2 to -1 will alter the chance of penning a damaged shield, with -2 being a 100% reduction + HeatModifier = 1, // scales how much of the damage is converted to heat, negative values subtract heat. + }, + DamageType = new DamageTypes // Damage type of each element of the projectile's damage; Kinetic, Energy + { + Base = Kinetic, // Base Damage uses this + AreaEffect = Energy, + Detonation = Energy, + Shield = Energy, // Damage against shields is currently all of one type per projectile. Shield Bypass Weapons, always Deal Energy regardless of this line + }, + Deform = new DeformDef + { + DeformType = HitBlock, + DeformDelay = 30, + }, + 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 // Note AOE is only applied to the Player/Grid it hit (and nearby projectiles) not nearby grids/players. + { + ByBlockHit = new ByBlockHitDef + { + Enable = true, + Radius = 5f, // Meters + Damage = 5f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 64000f, // Soft cutoff for damage (total, against shields or grids), 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 + Shape = Diamond, // Round or Diamond shape. Diamond is more performance friendly. + }, + EndOfLife = new EndOfLifeDef + { + Enable = true, + Radius = 1f, // Radius of AOE effect, in meters. + Damage = 1f, + Depth = 1f, // Max depth of AOE effect, in meters. 0=disabled, and AOE effect will reach to a depth of the radius value + MaxAbsorb = 1f, // Soft cutoff for damage (total, against shields or grids), 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 = 100, // In ticks, before the Ammo is allowed to explode, detonate or similar; This affects shrapnel spawning. + NoVisuals = false, + NoSound = false, + ParticleScale = 1, + CustomParticle = "particleName", // Particle SubtypeID, from your Particle SBC + CustomSound = "soundName", // 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. + FakeVoxelHitTicks = 0, // If this beam hits/misses a voxel it assumes it will continue to do so for this many ticks at the same hit length and not extend further within this window. This can save up to n times worth of cpu. + }, + 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, // EWAR & Mines only- time to spend slowing down to stop at end of trajectory. 0 is instant stop + 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. + Smarts = new SmartsDef + { + SteeringLimit = 0, // 0 means no limit, value is in degrees, good starting is 150. This enable advanced smart "control", cost of 3 on a scale of 1-5, 0 being basic smart. + Inaccuracy = 0f, // 0 is perfect, hit accuracy will be a random num of meters between 0 and this value. + Aggressiveness = 1f, // controls how responsive tracking is, recommended value 3-5. + MaxLateralThrust = 0.75, // controls how sharp the projectile may turn, this is the cheaper but less realistic version of SteeringLimit, cost of 2 on a scale of 1-5, 0 being basic smart. + NavAcceleration = 0, // helps influence how the projectile steers, 0 defaults to 1/2 Aggressiveness value or 0 if its 0, a value less than 0 disables this feature. + TrackingDelay = 0, // Measured in Shape diameter units traveled. + AccelClearance = false, // Setting this to true will prevent smart acceleration until it is clear of the grid and tracking delay has been met (free fall). + 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/smarts + FutureIntersectionRange = 0, // Range in front of the projectile at which it will detect obstacle. If set to zero it defaults to DesiredSpeed + Shape Diameter + 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..) + OffsetMinRange = 0, // The range from target at which offsets are no longer active + FocusOnly = false, // only target the constructs Ai's focus target + FocusEviction = false, // If FocusOnly and this to true will force smarts to lose target when there is no focus target + ScanRange = 0, // 0 disables projectile screening, the max range that this projectile will be seen at by defending grids (adds this projectile to defenders lookup database). + NoSteering = false, // this disables target follow and instead travel straight ahead (but will respect offsets). + MinTurnSpeed = 0, // set this to a reasonable value to avoid projectiles from spinning in place or being too aggressive turing at slow speeds + NoTargetApproach = false, // If true approaches can begin prior to the projectile ever having had a target. + AltNavigation = false, // If true this will swap the default navigation algorithm from ProNav to ZeroEffort Miss. Zero effort is more direct/precise but less cinematic + }, + Approaches = new [] // These approaches move forward and backward in order, once the end condition of the last one is reached it will revert to default behavior. Cost level of 4+, or 5+ if used with steering. + { + /* + * What are approaches? How do they interact with other config variables? What problems do they solve? + * + * At the most basic level an "approach" is a collection of variables that allow you, the mod author, to tell the projectile how to "approach" + * a desired "destination" (aka position) when certain conditions are met and what to then do once it has arrived. I say "destination/position" and not "target" on + * purpose, while the desired destination may be the "target" it often is not. Keep in mind that approaches merely "influence" the projectiles path to + * a desired position, they do not absolutely determine it. Instead you are telling the projectile where you want it to go and through which + * trajectory it should travel to get there, but ultimately you are setting the desired flight path, you are not the pilot. + * + * Approaches are an extension of Smarts and these variables are applied ontop of, not in place of, all other config variables. This means anything + * you set in other parts of the config will still influence approaches and sometimes in unexpected ways (i.e. trackingDelay or not finding a target + * can delay when an approaches begins). In a few cases approaches have variables that override/alter/extend how non-approach variables behave. + * + * Approaches will not alter the path of a projectile until its start condition is met (and optionally maintained). Prior to "starting" the + * projectile will behave as it would have had there was no approach defined. This is also the case once all approaches have completed. + * + * Approaches require you to think about projectile navigation in an abstract manner. This is a good time to restate that you are merely "influencing" the + * projectile, you are not controlling/piloting it. The battlefield is dynamic, always changing, you are setting objectives and providing rules to follow + * if certain conditions are met, nothing more. You must also remember that although you are setting variables like positionB, positionC, elevation, lead + * upDirection, forwardDirection etc... these variables merely "influence" the projectiles heading relative to its current position and velocity, they do not + * represent its actual source nor destination positions, directions nor elevation. + * + * Said another way, imagine your projectile half way between its launcher and the "target" and it is at this time that your approach "starts". If you were + * to then draw this scene out visually, you would draw three spheres representing positions which we will call "projectile current position (aka positionA)", "positionB" + * and "positionC", where you only get to define the latter two. You then define two directions, a forward direction and an up direction. You can + * also optionally set a desired "elevation" relative to the up direction and a desired "lead" relative to the forward direction, applied to the positionB and/or + * positionC. Now draw a 1 and 2 that represents the modified positionB and positionC positions (taking into account elevation, lead, and rotations). Your + * projectiles heading will by default attempt to steer to modified C position (2), or alternatively to modified B (1) if you set TrajectoryRelativeToB to true. + */ + new ApproachDef // * in comments means default + { + // Start/End behaviors + RestartCondition = MoveToPrevious, // Wait*, MoveToPrevious, MoveToNext, ForceRestart -- A restart condition is when the end condition is reached without having met the start condition. + RestartList = new[] + { // This list is used if RestartCondition is set to ForceRestart and trigger requirement was met. -1 to reset to BEFORE the for approach stage was activated. First stage is 0, second is 1, etc... + new WeightedIdListDef + {// If all valid entries (below MaxRuns) role a 0 (i.e. weights are disabled), then the entry with the lowest current "Runs" will be selected, if two or more share lowest runs then the winner is decided by the order below. + ApproachId = -1, + MaxRuns = 0, // 0 means unlimited, defines how many times this entry can return true. + Weight = Random(0, 99), // The approachId that rolls the highest number will be selected + End1WeightMod = 0, // multiplies the weight Start and End value by this number, if both End conditions were true the highest roll between them wins, 0 means disabled + End2WeightMod = 0, + End3WeightMod = 0, + }, + new WeightedIdListDef + { + ApproachId = 0, + MaxRuns = 0, + Weight = Random(0, 55), + End1WeightMod = 0, + End2WeightMod = 0, + End3WeightMod = 0, + }, + new WeightedIdListDef + { + ApproachId = 1, + MaxRuns = 0, + Weight = Random(0, 31.5f), + End1WeightMod = 0, + End2WeightMod = 0, + End3WeightMod = 0, + }, + }, + Operators = StartEnd_And, // Controls how the start and end conditions are matched: StartEnd_And*, StartEnd_Or, StartAnd_EndOr,StartOr_EndAnd, + CanExpireOnceStarted = false, // This stages values will continue to apply until the end conditions are met. + ForceRestart = false, // This forces the ReStartCondition when the end condition is met no matter if the start condition was met or not. + + // Start/End conditions + StartCondition1 = Lifetime, // Each condition type is either >= or <= the corresponding value defined below. + // Ignore(skip this condition)*, DistanceFromPositionC[<=], DistanceToPositionC[>=], DistanceFromPositionB[<=], DistanceToPositionB[>=] + // DistanceFromTarget[<=], DistanceToTarget[>=], DistanceFromEndTrajectory[<=], DistanceToEndTrajectory[>=], Lifetime[>=], DeadTime[<=], + // MinTravelRequired[>=], MaxTravelRequired[<=], Spawn(per stage), DesiredElevation(tolerance can be set with ElevationTolerance), + // NextTimedSpawn[<=], SinceTimedSpawn[>=], RelativeLifetime[>=], RelativeDeadTime[<=], RelativeSpawns[>=], EnemyTargetLoss[>=], + // RelativeHealthLost[>=], HealthRemaining[<=], + // *NOTE* DO NOT set start1 and start2 or end1 and end2 to same condition + StartCondition2 = Ignore, + EndCondition1 = DesiredElevation, + EndCondition2 = Ignore, + EndCondition3 = Ignore, + // Start/End thresholds -- both conditions are evaluated before activation, use Ignore to skip + Start1Value = 60, + Start2Value = 0, + End1Value = 1000, + End2Value = 0, + End3Value = 0, + // Special triggers when the start/end conditions are met (DoNothing*, EndProjectile, EndProjectileOnRestart, StorePositionA, StorePositionB, StorePositionC, Refund) + StartEvent = DoNothing, + EndEvent = DoNothing, + + // Stored "Local" positions are always relative to the shooter and will remain true even if the shooter moves or rotates. + + // Relative positions and directions (relative to projectile current position aka PositionA) + Forward = ForwardElevationDirection, // ForwardElevationDirection*, ForwardRelativeToBlock, ForwardRelativeToShooter, ForwardRelativeToGravity, ForwardTargetDirection, ForwardTargetVelocity, ForwardStoredStartPosition, ForwardStoredEndPosition, ForwardStoredStartLocalPosition, ForwardStoredEndLocalPosition, ForwardOriginDirection + Up = UpRelativeToBlock, // UpRelativeToBlock*, UpRelativeToShooter, UpRelativeToGravity, UpTargetDirection, UpTargetVelocity, UpStoredStartPosition, UpStoredEndPosition, UpStoredStartLocalPosition, UpStoredEndLocalPosition, UpOriginDirection, UpElevationDirection + PositionB = Surface, // Origin*, Shooter, Target, Surface, MidPoint, PositionA, Nothing, StoredStartPosition, StoredEndPosition, StoredStartLocalPosition, StoredEndLocalPosition + PositionC = StoredStartPosition, + Elevation = Surface, + + // + // Control if the vantagepoints update every frame or only at start. + // + AdjustForward = true, // adjust forwardDir overtime. + AdjustUp = true, // adjust upDir overtime + AdjustPositionB = false, // Updated the position overtime. + AdjustPositionC = false, // Update the position overtime. + LeadRotateElevatePositionB = false, // Add Lead, Rotation and DesiredElevation to PositionB + LeadRotateElevatePositionC = false, // Add Lead, Rotation and DesiredElevation to PositionC + TrajectoryRelativeToB = false, // If true the projectiles immediate trajectory will be relative to PositionB instead of PositionC (e.g. quick response to elevation changes relative to PositionB position assuming that position is closer to PositionA) + ElevationRelativeToC = false, // If true the projectiles desired elevation will be relative to PositionC instead of PositionB (e.g. quick response to elevation changes relative to PositionC position assuming that position is closer to PositionA) + // Tweaks to vantagepoint behavior + AngleOffset = 0, // value 0 - 1, rotates the Updir and ForwardDir + AngleVariance = Random(0, 0), // added to AngleOffset above, values of 0,0 disables feature + ElevationTolerance = 0, // adds additional tolerance (in meters) to meet the Elevation condition requirement. *note* collision size is also added to the tolerance + TrackingDistance = 100, // Minimum travel distance before projectile begins racing to heading + DesiredElevation = 100, // The desired elevation relative to reference position + // Storage Values + StoredStartId = 0, // Which approach id the the start storage was saved in, if any. + StoredEndId = 0, // Which approach id the the end storage was saved in, if any. + StoredStartType = PositionA, // Uses same values as PositionB/PositionC/Elevation + StoredEndType = Target, + // Controls the leading behavior + LeadDistance = 40, // Add additional "lead" in meters to the trajectory (project in the future), this will be applied even before TrackingDistance is met. + PushLeadByTravelDistance = true, // the follow lead position will move in its point direction by an amount equal to the projectiles travel distance. + + // Modify speed and acceleration ratios while this approach is active + AccelMulti = 1.5, // Modify default acceleration by this factor + DeAccelMulti = 0, // Modifies your default deacceleration by this factor + TotalAccelMulti = 0, // Modifies your default totalacceleration by this factor + SpeedCapMulti = 0.5, // Limit max speed to this factor, must keep this value BELOW default maxspeed (1). + + // navigation behavior + Orbit = false, // Orbit the Position + OrbitRadius = 0, // The orbit radius to extend between the projectile and the Position (target volume + this value) + OffsetMinRadius = 0, // Min Radius to offset from Position. + OffsetMaxRadius = 0, // Max Radius to offset from Position. + OffsetTime = 0, // How often to change the offset radius. + + // Other + NoTimedSpawns = false, // When true timedSpawns will not be triggered while this approach is active. + DisableAvoidance = false, // Disable futureIntersect. + IgnoreAntiSmart = false, // If set to true, antismart cannot change this approaches target. + HeatRefund = 0, // how much heat to refund when related EndEvent/StartEvent is met. + ReloadRefund = false, // Refund a reload (for max reload). + ToggleIngoreVoxels = false, // Toggles whatever the default IgnoreVoxel value to its opposite. + SelfAvoidance = false, // If this and FutureIntersect is enabled then projectiles will actively avoid the parent grids. + TargetAvoidance = false, // If this and FutureIntersect is enabled then projectiles will actively avoid the target. + SelfPhasing = false, // If enabled the projectiles can phase through the parent grids without doing damage or dying. + SwapNavigationType = false, // This will swap to other navigation (i.e. the alternate of what is set in smart, ProNav vs ZeroEffort) + // Audio/Visual Section + AlternateParticle = new ParticleDef // if blank it will use default, must be a default version for this to be useable. + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + StartParticle = new ParticleDef // Optional particle to play when this stage begins + { + Name = "", + Offset = Vector(x: 0, y: 0, z: 0), + DisableCameraCulling = false,// 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, + }, + }, + AlternateModel = "", // Define only if you want to switch to an alternate model in this phase + AlternateSound = "BoosterStageSound", // if blank it will use default, must be a default version for this to be useable. + ModelRotateTime = 0, // If this value is greater than 0 then the projectile model will rotate to face the target, a value of 1 is instant (in ticks). + }, + }, + Mines = new MinesDef // Note: This is being investigated. Please report to Github, any issues. + { + DetectRadius = 0, + DeCloakRadius = 0, + FieldTime = 0, + Cloak = false, + Persist = false, + }, + OnHit = new OnHitDef { + } + }, + 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 = false,// 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 = false, // 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 = false, // 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, + }, + }, + }, + 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) + DropParentVelocity = false, // If set to true will not take on the parents (grid/player) initial velocity when rendering. + + 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. + FactionColor = DontUse, // DontUse, Foreground, Background. + 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. + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + WidthMultiplier = 1f, + Reverse = false, + UseLineVariance = true, + WidthVariance = Random(start: 0f, end: 0f), + ColorVariance = Random(start: 0f, end: 0f) + } + }, + Trail = new TrailDef + { + Enable = false, + AlwaysDraw = false, // Prevents this tracer from being culled. Only use if you have a reason too (very long tracers/trails). + 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), + FactionColor = DontUse, // DontUse, Foreground, Background. + Back = false, + CustomWidth = 0, + UseWidthVariance = false, + UseColorFade = true, + }, + OffsetEffect = new OffsetEffectDef + { + MaxOffset = 0,// 0 offset value disables this effect + MinLength = 0.2f, + MaxLength = 3, + }, + }, + }, + AmmoAudio = new AmmoAudioDef + { + TravelSound = "", // SubtypeID for your Sound File. Travel, is sound generated around your Projectile in flight + HitSound = "", + ShotSound = "", + ShieldHitSound = "", + PlayerHitSound = "", + VoxelHitSound = "", + FloatingHitSound = "", + HitPlayChance = 0.5f, + 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 = 0.5f, // 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 + }; + + } +} + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/PartCompile.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/PartCompile.cs index 217927a8b..447e3fece 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/PartCompile.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/PartCompile.cs @@ -1,133 +1,133 @@ -using System.Collections.Generic; -using System.ComponentModel; -using VRageMath; -using static Scripts.Structure; -using static Scripts.Structure.WeaponDefinition.AmmoDef; -using static Scripts.Structure.WeaponDefinition.AnimationDef.RelMove; -using static Scripts.Structure.WeaponDefinition.AnimationDef.PartAnimationSetDef; -using static Scripts.Structure.WeaponDefinition.AnimationDef; -using static Scripts.Structure.WeaponDefinition.AnimationDef.PartAnimationSetDef.EventTriggers; -using static Scripts.Structure.ArmorDefinition.ArmorType; - -namespace Scripts -{ - partial class Parts - { - internal ContainerDefinition Container = new ContainerDefinition(); - internal void PartDefinitions(params WeaponDefinition[] defs) - { - Container.WeaponDefs = defs; - } - - internal void ArmorDefinitions(params ArmorDefinition[] defs) - { - Container.ArmorDefs = defs; - } - - internal void SupportDefinitions(params SupportDefinition[] defs) - { - Container.SupportDefs = defs; - } - - internal void UpgradeDefinitions(params UpgradeDefinition[] defs) - { - Container.UpgradeDefs = defs; - } - - internal static void GetBaseDefinitions(out ContainerDefinition baseDefs) - { - baseDefs = new Parts().Container; - } - - internal static void SetModPath(ContainerDefinition baseDefs, string modContext) - { - if (baseDefs.WeaponDefs != null) - for (int i = 0; i < baseDefs.WeaponDefs.Length; i++) - baseDefs.WeaponDefs[i].ModPath = modContext; - - if (baseDefs.SupportDefs != null) - for (int i = 0; i < baseDefs.SupportDefs.Length; i++) - baseDefs.SupportDefs[i].ModPath = modContext; - - if (baseDefs.UpgradeDefs != null) - for (int i = 0; i < baseDefs.UpgradeDefs.Length; i++) - baseDefs.UpgradeDefs[i].ModPath = modContext; - } - - internal Randomize Random(float start, float end) - { - return new Randomize { Start = start, End = end }; - } - - internal Vector4 Color(float red, float green, float blue, float alpha) - { - return new Vector4(red, green, blue, alpha); - } - - internal Vector3D Vector(double x, double y, double z) - { - return new Vector3D(x, y, z); - } - - internal XYZ Transformation(double X, double Y, double Z) - { - return new XYZ { x = X, y = Y, z = Z }; - } - - internal Dictionary Delays(uint FiringDelay = 0, uint ReloadingDelay = 0, uint OverheatedDelay = 0, uint TrackingDelay = 0, uint LockedDelay = 0, uint OnDelay = 0, uint OffDelay = 0, uint BurstReloadDelay = 0, uint OutOfAmmoDelay = 0, uint PreFireDelay = 0, uint StopFiringDelay = 0, uint StopTrackingDelay = 0, uint InitDelay = 0, uint HomingDelay = 0, uint TargetAlignedDelay = 0, uint WhileOnDelay = 0, uint TargetRanged100Delay = 0, uint TargetRanged75Delay = 0, uint TargetRanged50Delay = 0, uint TargetRanged25Delay = 0) - { - return new Dictionary - { - [Firing] = FiringDelay, - [Reloading] = ReloadingDelay, - [Overheated] = OverheatedDelay, - [Tracking] = TrackingDelay, - [TurnOn] = OnDelay, - [TurnOff] = OffDelay, - [BurstReload] = BurstReloadDelay, - [NoMagsToLoad] = OutOfAmmoDelay, - [PreFire] = PreFireDelay, - [EmptyOnGameLoad] = 0, - [StopFiring] = StopFiringDelay, - [StopTracking] = StopTrackingDelay, - [LockDelay] = LockedDelay, - [Init] = InitDelay, - [Homing] = HomingDelay, - [TargetAligned] = TargetAlignedDelay, - [WhileOn] = WhileOnDelay, - [TargetRanged100] = TargetRanged100Delay, - [TargetRanged75] = TargetRanged75Delay, - [TargetRanged50] = TargetRanged50Delay, - [TargetRanged25] = TargetRanged25Delay, - }; - } - - internal PartEmissive Emissive(string EmissiveName, bool CycleEmissiveParts, bool LeavePreviousOn, Vector4[] Colors, float IntensityFrom, float IntensityTo, string[] EmissivePartNames) - { - return new PartEmissive - { - EmissiveName = EmissiveName, - Colors = Colors, - CycleEmissivesParts = CycleEmissiveParts, - LeavePreviousOn = LeavePreviousOn, - EmissivePartNames = EmissivePartNames, - IntensityRange = new[]{ IntensityFrom, IntensityTo } - }; - } - - internal EventTriggers[] Events(params EventTriggers[] events) - { - return events; - } - - internal string[] Names(params string[] names) - { - return names; - } - - internal string[] AmmoRounds(params string[] names) - { - return names; - } - } -} +using System.Collections.Generic; +using System.ComponentModel; +using VRageMath; +using static Scripts.Structure; +using static Scripts.Structure.WeaponDefinition.AmmoDef; +using static Scripts.Structure.WeaponDefinition.AnimationDef.RelMove; +using static Scripts.Structure.WeaponDefinition.AnimationDef.PartAnimationSetDef; +using static Scripts.Structure.WeaponDefinition.AnimationDef; +using static Scripts.Structure.WeaponDefinition.AnimationDef.PartAnimationSetDef.EventTriggers; +using static Scripts.Structure.ArmorDefinition.ArmorType; + +namespace Scripts +{ + partial class Parts + { + internal ContainerDefinition Container = new ContainerDefinition(); + internal void PartDefinitions(params WeaponDefinition[] defs) + { + Container.WeaponDefs = defs; + } + + internal void ArmorDefinitions(params ArmorDefinition[] defs) + { + Container.ArmorDefs = defs; + } + + internal void SupportDefinitions(params SupportDefinition[] defs) + { + Container.SupportDefs = defs; + } + + internal void UpgradeDefinitions(params UpgradeDefinition[] defs) + { + Container.UpgradeDefs = defs; + } + + internal static void GetBaseDefinitions(out ContainerDefinition baseDefs) + { + baseDefs = new Parts().Container; + } + + internal static void SetModPath(ContainerDefinition baseDefs, string modContext) + { + if (baseDefs.WeaponDefs != null) + for (int i = 0; i < baseDefs.WeaponDefs.Length; i++) + baseDefs.WeaponDefs[i].ModPath = modContext; + + if (baseDefs.SupportDefs != null) + for (int i = 0; i < baseDefs.SupportDefs.Length; i++) + baseDefs.SupportDefs[i].ModPath = modContext; + + if (baseDefs.UpgradeDefs != null) + for (int i = 0; i < baseDefs.UpgradeDefs.Length; i++) + baseDefs.UpgradeDefs[i].ModPath = modContext; + } + + internal Randomize Random(float start, float end) + { + return new Randomize { Start = start, End = end }; + } + + internal Vector4 Color(float red, float green, float blue, float alpha) + { + return new Vector4(red, green, blue, alpha); + } + + internal Vector3D Vector(double x, double y, double z) + { + return new Vector3D(x, y, z); + } + + internal XYZ Transformation(double X, double Y, double Z) + { + return new XYZ { x = X, y = Y, z = Z }; + } + + internal Dictionary Delays(uint FiringDelay = 0, uint ReloadingDelay = 0, uint OverheatedDelay = 0, uint TrackingDelay = 0, uint LockedDelay = 0, uint OnDelay = 0, uint OffDelay = 0, uint BurstReloadDelay = 0, uint OutOfAmmoDelay = 0, uint PreFireDelay = 0, uint StopFiringDelay = 0, uint StopTrackingDelay = 0, uint InitDelay = 0, uint HomingDelay = 0, uint TargetAlignedDelay = 0, uint WhileOnDelay = 0, uint TargetRanged100Delay = 0, uint TargetRanged75Delay = 0, uint TargetRanged50Delay = 0, uint TargetRanged25Delay = 0) + { + return new Dictionary + { + [Firing] = FiringDelay, + [Reloading] = ReloadingDelay, + [Overheated] = OverheatedDelay, + [Tracking] = TrackingDelay, + [TurnOn] = OnDelay, + [TurnOff] = OffDelay, + [BurstReload] = BurstReloadDelay, + [NoMagsToLoad] = OutOfAmmoDelay, + [PreFire] = PreFireDelay, + [EmptyOnGameLoad] = 0, + [StopFiring] = StopFiringDelay, + [StopTracking] = StopTrackingDelay, + [LockDelay] = LockedDelay, + [Init] = InitDelay, + [Homing] = HomingDelay, + [TargetAligned] = TargetAlignedDelay, + [WhileOn] = WhileOnDelay, + [TargetRanged100] = TargetRanged100Delay, + [TargetRanged75] = TargetRanged75Delay, + [TargetRanged50] = TargetRanged50Delay, + [TargetRanged25] = TargetRanged25Delay, + }; + } + + internal PartEmissive Emissive(string EmissiveName, bool CycleEmissiveParts, bool LeavePreviousOn, Vector4[] Colors, float IntensityFrom, float IntensityTo, string[] EmissivePartNames) + { + return new PartEmissive + { + EmissiveName = EmissiveName, + Colors = Colors, + CycleEmissivesParts = CycleEmissiveParts, + LeavePreviousOn = LeavePreviousOn, + EmissivePartNames = EmissivePartNames, + IntensityRange = new[]{ IntensityFrom, IntensityTo } + }; + } + + internal EventTriggers[] Events(params EventTriggers[] events) + { + return events; + } + + internal string[] Names(params string[] names) + { + return names; + } + + internal string[] AmmoRounds(params string[] names) + { + return names; + } + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/Slave.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/Slave.cs index a115e1130..4dcf3dfda 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/Slave.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/Slave.cs @@ -1,90 +1,90 @@ -using System; -using System.IO; -using System.Runtime.InteropServices.ComTypes; -using System.Text; -using Sandbox.ModAPI; -using VRage.Game.Components; -using static Scripts.Structure; -namespace Scripts -{ - [MySessionComponentDescriptor(MyUpdateOrder.NoUpdate, int.MaxValue)] - public class Session : MySessionComponentBase - { - public override void LoadData() - { - Log.Init($"{ModContext.ModName}Init.log"); - MyAPIGateway.Utilities.RegisterMessageHandler(7772, Handler); - Init(); - SendModMessage(true); - } - - protected override void UnloadData() - { - Log.Close(); - MyAPIGateway.Utilities.UnregisterMessageHandler(7772, Handler); - Array.Clear(Storage, 0, Storage.Length); - Storage = null; - } - - void Handler(object o) - { - if (o == null) SendModMessage(false); - } - - void SendModMessage(bool sending) - { - Log.CleanLine(sending ? "Sending request to core" : "Receiving request from core"); - MyAPIGateway.Utilities.SendModMessage(7771, Storage); - } - - internal byte[] Storage; - - internal void Init() - { - ContainerDefinition baseDefs; - Parts.GetBaseDefinitions(out baseDefs); - Parts.SetModPath(baseDefs, ModContext.ModPath); - Storage = MyAPIGateway.Utilities.SerializeToBinary(baseDefs); - Log.CleanLine($"Handing over control to Core and going to sleep"); - } - - public class Log - { - private static Log _instance = null; - internal TextWriter File = null; - - public static void Init(string name) - { - var sb = new StringBuilder(name); - ReplaceAll(sb, Path.GetInvalidFileNameChars(), '_'); - _instance = new Log {File = MyAPIGateway.Utilities.WriteFileInLocalStorage(sb.ToString(), typeof(Log))}; - } - - public static void ReplaceAll(StringBuilder sb, char[] charlist, char replacewith) - { - for (int i = 0; i < sb.Length; i++) - { - if (charlist.Contains(sb[i])) - sb[i] = replacewith; - } - } - - public static void CleanLine(string text) - { - _instance.File.WriteLine(text); - _instance.File.Flush(); - } - - public static void Close() - { - if (_instance?.File == null) return; - _instance.File.Flush(); - _instance.File.Close(); - _instance.File.Dispose(); - _instance.File = null; - _instance = null; - } - } - } -} - +using System; +using System.IO; +using System.Runtime.InteropServices.ComTypes; +using System.Text; +using Sandbox.ModAPI; +using VRage.Game.Components; +using static Scripts.Structure; +namespace Scripts +{ + [MySessionComponentDescriptor(MyUpdateOrder.NoUpdate, int.MaxValue)] + public class Session : MySessionComponentBase + { + public override void LoadData() + { + Log.Init($"{ModContext.ModName}Init.log"); + MyAPIGateway.Utilities.RegisterMessageHandler(7772, Handler); + Init(); + SendModMessage(true); + } + + protected override void UnloadData() + { + Log.Close(); + MyAPIGateway.Utilities.UnregisterMessageHandler(7772, Handler); + Array.Clear(Storage, 0, Storage.Length); + Storage = null; + } + + void Handler(object o) + { + if (o == null) SendModMessage(false); + } + + void SendModMessage(bool sending) + { + Log.CleanLine(sending ? "Sending request to core" : "Receiving request from core"); + MyAPIGateway.Utilities.SendModMessage(7771, Storage); + } + + internal byte[] Storage; + + internal void Init() + { + ContainerDefinition baseDefs; + Parts.GetBaseDefinitions(out baseDefs); + Parts.SetModPath(baseDefs, ModContext.ModPath); + Storage = MyAPIGateway.Utilities.SerializeToBinary(baseDefs); + Log.CleanLine($"Handing over control to Core and going to sleep"); + } + + public class Log + { + private static Log _instance = null; + internal TextWriter File = null; + + public static void Init(string name) + { + var sb = new StringBuilder(name); + ReplaceAll(sb, Path.GetInvalidFileNameChars(), '_'); + _instance = new Log {File = MyAPIGateway.Utilities.WriteFileInLocalStorage(sb.ToString(), typeof(Log))}; + } + + public static void ReplaceAll(StringBuilder sb, char[] charlist, char replacewith) + { + for (int i = 0; i < sb.Length; i++) + { + if (charlist.Contains(sb[i])) + sb[i] = replacewith; + } + } + + public static void CleanLine(string text) + { + _instance.File.WriteLine(text); + _instance.File.Flush(); + } + + public static void Close() + { + if (_instance?.File == null) return; + _instance.File.Flush(); + _instance.File.Close(); + _instance.File.Dispose(); + _instance.File = null; + _instance = null; + } + } + } +} + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/Structure.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/Structure.cs index b6fa49f76..d82791a8e 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/Structure.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/script/Structure.cs @@ -1,1570 +1,1569 @@ -using System.Collections.Generic; -using ProtoBuf; -using VRageMath; - -namespace Scripts -{ - public class Structure - { - [ProtoContract] - public class ContainerDefinition - { - [ProtoMember(1)] internal WeaponDefinition[] WeaponDefs; - [ProtoMember(2)] internal ArmorDefinition[] ArmorDefs; - [ProtoMember(3)] internal UpgradeDefinition[] UpgradeDefs; - [ProtoMember(4)] internal SupportDefinition[] SupportDefs; - } - - [ProtoContract] - public class ConsumeableDef - { - [ProtoMember(1)] internal string ItemName; - [ProtoMember(2)] internal string InventoryItem; - [ProtoMember(3)] internal int ItemsNeeded; - [ProtoMember(4)] internal bool Hybrid; - [ProtoMember(5)] internal float EnergyCost; - [ProtoMember(6)] internal float Strength; - } - - [ProtoContract] - public class UpgradeDefinition - { - [ProtoMember(1)] internal ModelAssignmentsDef Assignments; - [ProtoMember(2)] internal HardPointDef HardPoint; - [ProtoMember(3)] internal WeaponDefinition.AnimationDef Animations; - [ProtoMember(4)] internal string ModPath; - [ProtoMember(5)] internal ConsumeableDef[] Consumable; - - [ProtoContract] - public struct ModelAssignmentsDef - { - [ProtoMember(1)] internal MountPointDef[] MountPoints; - - [ProtoContract] - public struct MountPointDef - { - [ProtoMember(1)] internal string SubtypeId; - [ProtoMember(2)] internal float DurabilityMod; - [ProtoMember(3)] internal string IconName; - } - } - - [ProtoContract] - public struct HardPointDef - { - [ProtoMember(1)] internal string PartName; - [ProtoMember(2)] internal HardwareDef HardWare; - [ProtoMember(3)] internal UiDef Ui; - [ProtoMember(4)] internal OtherDef Other; - - - [ProtoContract] - public struct UiDef - { - [ProtoMember(1)] internal bool StrengthModifier; - } - - [ProtoContract] - public struct HardwareDef - { - public enum HardwareType - { - Default, - } - - [ProtoMember(1)] internal float InventorySize; - [ProtoMember(2)] internal HardwareType Type; - [ProtoMember(3)] internal int BlockDistance; - [ProtoMember(4)] internal float IdlePower; - } - - [ProtoContract] - public struct OtherDef - { - [ProtoMember(1)] internal int ConstructPartCap; - [ProtoMember(2)] internal int EnergyPriority; - [ProtoMember(3)] internal bool Debug; - [ProtoMember(4)] internal double RestrictionRadius; - [ProtoMember(5)] internal bool CheckInflatedBox; - [ProtoMember(6)] internal bool CheckForAnySupport; - [ProtoMember(7)] internal bool StayCharged; - } - } - - } - - [ProtoContract] - public class SupportDefinition - { - [ProtoMember(1)] internal ModelAssignmentsDef Assignments; - [ProtoMember(2)] internal HardPointDef HardPoint; - [ProtoMember(3)] internal WeaponDefinition.AnimationDef Animations; - [ProtoMember(4)] internal string ModPath; - [ProtoMember(5)] internal ConsumeableDef[] Consumable; - [ProtoMember(6)] internal SupportEffect Effect; - - [ProtoContract] - public struct ModelAssignmentsDef - { - [ProtoMember(1)] internal MountPointDef[] MountPoints; - - [ProtoContract] - public struct MountPointDef - { - [ProtoMember(1)] internal string SubtypeId; - [ProtoMember(2)] internal float DurabilityMod; - [ProtoMember(3)] internal string IconName; - } - } - [ProtoContract] - public struct HardPointDef - { - [ProtoMember(1)] internal string PartName; - [ProtoMember(2)] internal HardwareDef HardWare; - [ProtoMember(3)] internal UiDef Ui; - [ProtoMember(4)] internal OtherDef Other; - - [ProtoContract] - public struct UiDef - { - [ProtoMember(1)] internal bool ProtectionControl; - } - - [ProtoContract] - public struct HardwareDef - { - [ProtoMember(1)] internal float InventorySize; - [ProtoMember(2)] internal float IdlePower; - } - - [ProtoContract] - public struct OtherDef - { - [ProtoMember(1)] internal int ConstructPartCap; - [ProtoMember(2)] internal int EnergyPriority; - [ProtoMember(3)] internal bool Debug; - [ProtoMember(4)] internal double RestrictionRadius; - [ProtoMember(5)] internal bool CheckInflatedBox; - [ProtoMember(6)] internal bool CheckForAnySupport; - [ProtoMember(7)] internal bool StayCharged; - } - } - - [ProtoContract] - public struct SupportEffect - { - public enum AffectedBlocks - { - Armor, - ArmorPlus, - PlusFunctional, - All, - } - - public enum Protections - { - KineticProt, - EnergeticProt, - GenericProt, - Regenerate, - Structural, - } - - [ProtoMember(1)] internal Protections Protection; - [ProtoMember(2)] internal AffectedBlocks Affected; - [ProtoMember(3)] internal int BlockRange; - [ProtoMember(4)] internal int MaxPoints; - [ProtoMember(5)] internal int PointsPerCharge; - [ProtoMember(6)] internal int UsablePerSecond; - [ProtoMember(7)] internal int UsablePerMinute; - [ProtoMember(8)] internal float Overflow; - [ProtoMember(9)] internal float Effectiveness; - [ProtoMember(10)] internal float ProtectionMin; - [ProtoMember(11)] internal float ProtectionMax; - } - } - - [ProtoContract] - public class ArmorDefinition - { - internal enum ArmorType - { - Light, - Heavy, - NonArmor, - } - - [ProtoMember(1)] internal string[] SubtypeIds; - [ProtoMember(2)] internal ArmorType Kind; - [ProtoMember(3)] internal double KineticResistance; - [ProtoMember(4)] internal double EnergeticResistance; - } - - [ProtoContract] - public class WeaponDefinition - { - [ProtoMember(1)] internal ModelAssignmentsDef Assignments; - [ProtoMember(2)] internal TargetingDef Targeting; - [ProtoMember(3)] internal AnimationDef Animations; - [ProtoMember(4)] internal HardPointDef HardPoint; - [ProtoMember(5)] internal AmmoDef[] Ammos; - [ProtoMember(6)] internal string ModPath; - [ProtoMember(7)] internal Dictionary Upgrades; - - [ProtoContract] - public struct ModelAssignmentsDef - { - [ProtoMember(1)] internal MountPointDef[] MountPoints; - [ProtoMember(2)] internal string[] Muzzles; - [ProtoMember(3)] internal string Ejector; - [ProtoMember(4)] internal string Scope; - - [ProtoContract] - public struct MountPointDef - { - [ProtoMember(1)] internal string SubtypeId; - [ProtoMember(2)] internal string SpinPartId; - [ProtoMember(3)] internal string MuzzlePartId; - [ProtoMember(4)] internal string AzimuthPartId; - [ProtoMember(5)] internal string ElevationPartId; - [ProtoMember(6)] internal float DurabilityMod; - [ProtoMember(7)] internal string IconName; - [ProtoMember(8)] internal string PhantomModel; - } - } - - [ProtoContract] - public struct TargetingDef - { - public enum Threat - { - Projectiles, - Characters, - Grids, - Neutrals, - Meteors, - Other, - ScanNeutralGrid, - ScanFriendlyGrid, - ScanFriendlyCharacter, - ScanRoid, - ScanPlanet, - ScanEnemyCharacter, - ScanEnemyGrid, - ScanNeutralCharacter, - ScanUnOwnedGrid, - ScanOwnersGrid - } - - public enum BlockTypes - { - Any, - Offense, - Utility, - Power, - Production, - Thrust, - Jumping, - Steering - } - - [ProtoMember(1)] internal int TopTargets; - [ProtoMember(2)] internal int TopBlocks; - [ProtoMember(3)] internal double StopTrackingSpeed; - [ProtoMember(4)] internal float MinimumDiameter; - [ProtoMember(5)] internal float MaximumDiameter; - [ProtoMember(6)] internal bool ClosestFirst; - [ProtoMember(7)] internal BlockTypes[] SubSystems; - [ProtoMember(8)] internal Threat[] Threats; - [ProtoMember(9)] internal float MaxTargetDistance; - [ProtoMember(10)] internal float MinTargetDistance; - [ProtoMember(11)] internal bool IgnoreDumbProjectiles; - [ProtoMember(12)] internal bool LockedSmartOnly; - [ProtoMember(13)] internal bool UniqueTargetPerWeapon; - [ProtoMember(14)] internal int MaxTrackingTime; - [ProtoMember(15)] internal bool ShootBlanks; - [ProtoMember(19)] internal CommunicationDef Communications; - [ProtoMember(20)] internal bool FocusOnly; - [ProtoMember(21)] internal bool EvictUniqueTargets; - [ProtoMember(22)] internal int CycleTargets; - [ProtoMember(23)] internal int CycleBlocks; - - [ProtoContract] - public struct CommunicationDef - { - public enum Comms - { - NoComms, - LocalNetwork, - BroadCast, - Relay, - Repeat, - Jamming, - } - - public enum SecurityMode - { - Public, - Private, - Secure, - } - - [ProtoMember(1)] internal bool StoreTargets; - [ProtoMember(2)] internal int StorageLimit; - [ProtoMember(3)] internal string StorageLocation; - [ProtoMember(4)] internal Comms Mode; - [ProtoMember(5)] internal SecurityMode Security; - [ProtoMember(6)] internal string BroadCastChannel; - [ProtoMember(7)] internal double BroadCastRange; - [ProtoMember(8)] internal double JammingStrength; - [ProtoMember(9)] internal string RelayChannel; - [ProtoMember(10)] internal double RelayRange; - [ProtoMember(11)] internal bool TargetPersists; - [ProtoMember(12)] internal bool StoreLimitPerBlock; - [ProtoMember(13)] internal int MaxConnections; - } - } - - - [ProtoContract] - public struct AnimationDef - { - [ProtoMember(1)] internal PartAnimationSetDef[] AnimationSets; - [ProtoMember(2)] internal PartEmissive[] Emissives; - [ProtoMember(3)] internal string[] HeatingEmissiveParts; - [ProtoMember(4)] internal Dictionary EventParticles; - - [ProtoContract(IgnoreListHandling = true)] - public struct PartAnimationSetDef - { - public enum EventTriggers - { - Reloading, - Firing, - Tracking, - Overheated, - TurnOn, - TurnOff, - BurstReload, - NoMagsToLoad, - PreFire, - EmptyOnGameLoad, - StopFiring, - StopTracking, - LockDelay, - Init, - Homing, - TargetAligned, - WhileOn, - TargetRanged100, - TargetRanged75, - TargetRanged50, - TargetRanged25, - } - - public enum ResetConditions - { - None, - Home, - Off, - On, - Reloaded - } - - [ProtoMember(1)] internal string[] SubpartId; - [ProtoMember(2)] internal string BarrelId; - [ProtoMember(3)] internal uint StartupFireDelay; - [ProtoMember(4)] internal Dictionary AnimationDelays; - [ProtoMember(5)] internal EventTriggers[] Reverse; - [ProtoMember(6)] internal EventTriggers[] Loop; - [ProtoMember(7)] internal Dictionary EventMoveSets; - [ProtoMember(8)] internal EventTriggers[] TriggerOnce; - [ProtoMember(9)] internal EventTriggers[] ResetEmissives; - [ProtoMember(10)] internal ResetConditions Resets; - } - - [ProtoContract] - public struct PartEmissive - { - [ProtoMember(1)] internal string EmissiveName; - [ProtoMember(2)] internal string[] EmissivePartNames; - [ProtoMember(3)] internal bool CycleEmissivesParts; - [ProtoMember(4)] internal bool LeavePreviousOn; - [ProtoMember(5)] internal Vector4[] Colors; - [ProtoMember(6)] internal float[] IntensityRange; - } - [ProtoContract] - public struct EventParticle - { - [ProtoMember(1)] internal string[] EmptyNames; - [ProtoMember(2)] internal string[] MuzzleNames; - [ProtoMember(3)] internal ParticleDef Particle; - [ProtoMember(4)] internal uint StartDelay; - [ProtoMember(5)] internal uint LoopDelay; - [ProtoMember(6)] internal bool ForceStop; - } - [ProtoContract] - internal struct RelMove - { - public enum MoveType - { - Linear, - ExpoDecay, - ExpoGrowth, - Delay, - Show, //instant or fade - Hide, //instant or fade - } - - [ProtoMember(1)] internal MoveType MovementType; - [ProtoMember(2)] internal XYZ[] LinearPoints; - [ProtoMember(3)] internal XYZ Rotation; - [ProtoMember(4)] internal XYZ RotAroundCenter; - [ProtoMember(5)] internal uint TicksToMove; - [ProtoMember(6)] internal string CenterEmpty; - [ProtoMember(7)] internal bool Fade; - [ProtoMember(8)] internal string EmissiveName; - - [ProtoContract] - internal struct XYZ - { - [ProtoMember(1)] internal double x; - [ProtoMember(2)] internal double y; - [ProtoMember(3)] internal double z; - } - } - } - - [ProtoContract] - public struct UpgradeValues - { - [ProtoMember(1)] internal string[] Ammo; - [ProtoMember(2)] internal Dependency[] Dependencies; - [ProtoMember(3)] internal int RateOfFireMod; - [ProtoMember(4)] internal int BarrelsPerShotMod; - [ProtoMember(5)] internal int ReloadMod; - [ProtoMember(6)] internal int MaxHeatMod; - [ProtoMember(7)] internal int HeatSinkRateMod; - [ProtoMember(8)] internal int ShotsInBurstMod; - [ProtoMember(9)] internal int DelayAfterBurstMod; - [ProtoMember(10)] internal int AmmoPriority; - - [ProtoContract] - public struct Dependency - { - internal string SubtypeId; - internal int Quanity; - } - } - - [ProtoContract] - public struct HardPointDef - { - public enum Prediction - { - Off, - Basic, - Accurate, - Advanced, - } - - [ProtoMember(1)] internal string PartName; - [ProtoMember(2)] internal int DelayCeaseFire; - [ProtoMember(3)] internal float DeviateShotAngle; - [ProtoMember(4)] internal double AimingTolerance; - [ProtoMember(5)] internal Prediction AimLeadingPrediction; - [ProtoMember(6)] internal LoadingDef Loading; - [ProtoMember(7)] internal AiDef Ai; - [ProtoMember(8)] internal HardwareDef HardWare; - [ProtoMember(9)] internal UiDef Ui; - [ProtoMember(10)] internal HardPointAudioDef Audio; - [ProtoMember(11)] internal HardPointParticleDef Graphics; - [ProtoMember(12)] internal OtherDef Other; - [ProtoMember(13)] internal bool AddToleranceToTracking; - [ProtoMember(14)] internal bool CanShootSubmerged; - [ProtoMember(15)] internal bool NpcSafe; - [ProtoMember(16)] internal bool ScanTrackOnly; - - [ProtoContract] - public struct LoadingDef - { - [ProtoMember(1)] internal int ReloadTime; - [ProtoMember(2)] internal int RateOfFire; - [ProtoMember(3)] internal int BarrelsPerShot; - [ProtoMember(4)] internal int SkipBarrels; - [ProtoMember(5)] internal int TrajectilesPerBarrel; - [ProtoMember(6)] internal int HeatPerShot; - [ProtoMember(7)] internal int MaxHeat; - [ProtoMember(8)] internal int HeatSinkRate; - [ProtoMember(9)] internal float Cooldown; - [ProtoMember(10)] internal int DelayUntilFire; - [ProtoMember(11)] internal int ShotsInBurst; - [ProtoMember(12)] internal int DelayAfterBurst; - [ProtoMember(13)] internal bool DegradeRof; - [ProtoMember(14)] internal int BarrelSpinRate; - [ProtoMember(15)] internal bool FireFull; - [ProtoMember(16)] internal bool GiveUpAfter; - [ProtoMember(17)] internal bool DeterministicSpin; - [ProtoMember(18)] internal bool SpinFree; - [ProtoMember(19)] internal bool StayCharged; - [ProtoMember(20)] internal int MagsToLoad; - [ProtoMember(21)] internal int MaxActiveProjectiles; - [ProtoMember(22)] internal int MaxReloads; - [ProtoMember(23)] internal bool GoHomeToReload; - [ProtoMember(24)] internal bool DropTargetUntilLoaded; - } - - - [ProtoContract] - public struct UiDef - { - [ProtoMember(1)] internal bool RateOfFire; - [ProtoMember(2)] internal bool DamageModifier; - [ProtoMember(3)] internal bool ToggleGuidance; - [ProtoMember(4)] internal bool EnableOverload; - [ProtoMember(5)] internal bool AlternateUi; - [ProtoMember(6)] internal bool DisableStatus; - [ProtoMember(7)] internal float RateOfFireMin; - [ProtoMember(8)] internal bool DisableSupportingPD; - } - - - [ProtoContract] - public struct AiDef - { - [ProtoMember(1)] internal bool TrackTargets; - [ProtoMember(2)] internal bool TurretAttached; - [ProtoMember(3)] internal bool TurretController; - [ProtoMember(4)] internal bool PrimaryTracking; - [ProtoMember(5)] internal bool LockOnFocus; - [ProtoMember(6)] internal bool SuppressFire; - [ProtoMember(7)] internal bool OverrideLeads; - [ProtoMember(8)] internal int DefaultLeadGroup; - [ProtoMember(9)] internal bool TargetGridCenter; - } - - [ProtoContract] - public struct HardwareDef - { - public enum HardwareType - { - BlockWeapon = 0, - HandWeapon = 1, - Phantom = 6, - } - - [ProtoMember(1)] internal float RotateRate; - [ProtoMember(2)] internal float ElevateRate; - [ProtoMember(3)] internal Vector3D Offset; - [ProtoMember(4)] internal bool FixedOffset; - [ProtoMember(5)] internal int MaxAzimuth; - [ProtoMember(6)] internal int MinAzimuth; - [ProtoMember(7)] internal int MaxElevation; - [ProtoMember(8)] internal int MinElevation; - [ProtoMember(9)] internal float InventorySize; - [ProtoMember(10)] internal HardwareType Type; - [ProtoMember(11)] internal int HomeAzimuth; - [ProtoMember(12)] internal int HomeElevation; - [ProtoMember(13)] internal CriticalDef CriticalReaction; - [ProtoMember(14)] internal float IdlePower; - - [ProtoContract] - public struct CriticalDef - { - [ProtoMember(1)] internal bool Enable; - [ProtoMember(2)] internal int DefaultArmedTimer; - [ProtoMember(3)] internal bool PreArmed; - [ProtoMember(4)] internal bool TerminalControls; - [ProtoMember(5)] internal string AmmoRound; - } - } - - [ProtoContract] - public struct HardPointAudioDef - { - [ProtoMember(1)] internal string ReloadSound; - [ProtoMember(2)] internal string NoAmmoSound; - [ProtoMember(3)] internal string HardPointRotationSound; - [ProtoMember(4)] internal string BarrelRotationSound; - [ProtoMember(5)] internal string FiringSound; - [ProtoMember(6)] internal bool FiringSoundPerShot; - [ProtoMember(7)] internal string PreFiringSound; - [ProtoMember(8)] internal uint FireSoundEndDelay; - [ProtoMember(9)] internal bool FireSoundNoBurst; - } - - [ProtoContract] - public struct OtherDef - { - [ProtoMember(1)] internal int ConstructPartCap; - [ProtoMember(2)] internal int EnergyPriority; - [ProtoMember(3)] internal int RotateBarrelAxis; - [ProtoMember(4)] internal bool MuzzleCheck; - [ProtoMember(5)] internal bool Debug; - [ProtoMember(6)] internal double RestrictionRadius; - [ProtoMember(7)] internal bool CheckInflatedBox; - [ProtoMember(8)] internal bool CheckForAnyWeapon; - [ProtoMember(9)] internal bool DisableLosCheck; - [ProtoMember(10)] internal bool NoVoxelLosCheck; - - } - - [ProtoContract] - public struct HardPointParticleDef - { - [ProtoMember(1)] internal ParticleDef Effect1; - [ProtoMember(2)] internal ParticleDef Effect2; - } - } - - [ProtoContract] - public class AmmoDef - { - [ProtoMember(1)] internal string AmmoMagazine; - [ProtoMember(2)] internal string AmmoRound; - [ProtoMember(3)] internal bool HybridRound; - [ProtoMember(4)] internal float EnergyCost; - [ProtoMember(5)] internal float BaseDamage; - [ProtoMember(6)] internal float Mass; - [ProtoMember(7)] internal float Health; - [ProtoMember(8)] internal float BackKickForce; - [ProtoMember(9)] internal DamageScaleDef DamageScales; - [ProtoMember(10)] internal ShapeDef Shape; - [ProtoMember(11)] internal ObjectsHitDef ObjectsHit; - [ProtoMember(12)] internal TrajectoryDef Trajectory; - [ProtoMember(13)] internal AreaDamageDef AreaEffect; - [ProtoMember(14)] internal BeamDef Beams; - [ProtoMember(15)] internal FragmentDef Fragment; - [ProtoMember(16)] internal GraphicDef AmmoGraphics; - [ProtoMember(17)] internal AmmoAudioDef AmmoAudio; - [ProtoMember(18)] internal bool HardPointUsable; - [ProtoMember(19)] internal PatternDef Pattern; - [ProtoMember(20)] internal int EnergyMagazineSize; - [ProtoMember(21)] internal float DecayPerShot; - [ProtoMember(22)] internal EjectionDef Ejection; - [ProtoMember(23)] internal bool IgnoreWater; - [ProtoMember(24)] internal AreaOfDamageDef AreaOfDamage; - [ProtoMember(25)] internal EwarDef Ewar; - [ProtoMember(26)] internal bool IgnoreVoxels; - [ProtoMember(27)] internal bool Synchronize; - [ProtoMember(28)] internal double HeatModifier; - [ProtoMember(29)] internal bool NpcSafe; - [ProtoMember(30)] internal SynchronizeDef Sync; - [ProtoMember(31)] internal bool NoGridOrArmorScaling; - - [ProtoContract] - public struct SynchronizeDef - { - [ProtoMember(1)] internal bool Full; - [ProtoMember(2)] internal bool PointDefense; - [ProtoMember(3)] internal bool OnHitDeath; - } - - [ProtoContract] - public struct DamageScaleDef - { - - [ProtoMember(1)] internal float MaxIntegrity; - [ProtoMember(2)] internal bool DamageVoxels; - [ProtoMember(3)] internal float Characters; - [ProtoMember(4)] internal bool SelfDamage; - [ProtoMember(5)] internal GridSizeDef Grids; - [ProtoMember(6)] internal ArmorDef Armor; - [ProtoMember(7)] internal CustomScalesDef Custom; - [ProtoMember(8)] internal ShieldDef Shields; - [ProtoMember(9)] internal FallOffDef FallOff; - [ProtoMember(10)] internal double HealthHitModifier; - [ProtoMember(11)] internal double VoxelHitModifier; - [ProtoMember(12)] internal DamageTypes DamageType; - [ProtoMember(13)] internal DeformDef Deform; - - [ProtoContract] - public struct FallOffDef - { - [ProtoMember(1)] internal float Distance; - [ProtoMember(2)] internal float MinMultipler; - } - - [ProtoContract] - public struct GridSizeDef - { - [ProtoMember(1)] internal float Large; - [ProtoMember(2)] internal float Small; - } - - [ProtoContract] - public struct ArmorDef - { - [ProtoMember(1)] internal float Armor; - [ProtoMember(2)] internal float Heavy; - [ProtoMember(3)] internal float Light; - [ProtoMember(4)] internal float NonArmor; - } - - [ProtoContract] - public struct CustomScalesDef - { - internal enum SkipMode - { - NoSkip, - Inclusive, - Exclusive, - } - - [ProtoMember(1)] internal CustomBlocksDef[] Types; - [ProtoMember(2)] internal bool IgnoreAllOthers; - [ProtoMember(3)] internal SkipMode SkipOthers; - } - - [ProtoContract] - public struct DamageTypes - { - internal enum Damage - { - Energy, - Kinetic, - ShieldDefault, - } - - [ProtoMember(1)] internal Damage Base; - [ProtoMember(2)] internal Damage AreaEffect; - [ProtoMember(3)] internal Damage Detonation; - [ProtoMember(4)] internal Damage Shield; - } - - [ProtoContract] - public struct ShieldDef - { - internal enum ShieldType - { - Default, - Heal, - Bypass, - EmpRetired, - } - - [ProtoMember(1)] internal float Modifier; - [ProtoMember(2)] internal ShieldType Type; - [ProtoMember(3)] internal float BypassModifier; - [ProtoMember(4)] internal double HeatModifier; - } - - [ProtoContract] - public struct DeformDef - { - internal enum DeformTypes - { - HitBlock, - AllDamagedBlocks, - NoDeform, - } - - [ProtoMember(1)] internal DeformTypes DeformType; - [ProtoMember(2)] internal int DeformDelay; - } - } - - [ProtoContract] - public struct ShapeDef - { - public enum Shapes - { - LineShape, - SphereShape, - } - - [ProtoMember(1)] internal Shapes Shape; - [ProtoMember(2)] internal double Diameter; - } - - [ProtoContract] - public struct ObjectsHitDef - { - [ProtoMember(1)] internal int MaxObjectsHit; - [ProtoMember(2)] internal bool CountBlocks; - } - - - [ProtoContract] - public struct CustomBlocksDef - { - [ProtoMember(1)] internal string SubTypeId; - [ProtoMember(2)] internal float Modifier; - } - - [ProtoContract] - public struct GraphicDef - { - [ProtoMember(1)] internal bool ShieldHitDraw; - [ProtoMember(2)] internal float VisualProbability; - [ProtoMember(3)] internal string ModelName; - [ProtoMember(4)] internal AmmoParticleDef Particles; - [ProtoMember(5)] internal LineDef Lines; - [ProtoMember(6)] internal DecalDef Decals; - - [ProtoContract] - public struct AmmoParticleDef - { - [ProtoMember(1)] internal ParticleDef Ammo; - [ProtoMember(2)] internal ParticleDef Hit; - [ProtoMember(3)] internal ParticleDef Eject; - } - - [ProtoContract] - public struct LineDef - { - internal enum Texture - { - Normal, - Cycle, - Chaos, - Wave, - } - - public enum FactionColor - { - DontUse, - Foreground, - Background, - } - - [ProtoMember(1)] internal TracerBaseDef Tracer; - [ProtoMember(2)] internal string TracerMaterial; - [ProtoMember(3)] internal Randomize ColorVariance; - [ProtoMember(4)] internal Randomize WidthVariance; - [ProtoMember(5)] internal TrailDef Trail; - [ProtoMember(6)] internal OffsetEffectDef OffsetEffect; - [ProtoMember(7)] internal bool DropParentVelocity; - - - [ProtoContract] - public struct OffsetEffectDef - { - [ProtoMember(1)] internal double MaxOffset; - [ProtoMember(2)] internal double MinLength; - [ProtoMember(3)] internal double MaxLength; - } - - [ProtoContract] - public struct TracerBaseDef - { - [ProtoMember(1)] internal bool Enable; - [ProtoMember(2)] internal float Length; - [ProtoMember(3)] internal float Width; - [ProtoMember(4)] internal Vector4 Color; - [ProtoMember(5)] internal uint VisualFadeStart; - [ProtoMember(6)] internal uint VisualFadeEnd; - [ProtoMember(7)] internal SegmentDef Segmentation; - [ProtoMember(8)] internal string[] Textures; - [ProtoMember(9)] internal Texture TextureMode; - [ProtoMember(10)] internal bool AlwaysDraw; - [ProtoMember(11)] internal FactionColor FactionColor; - - [ProtoContract] - public struct SegmentDef - { - [ProtoMember(1)] internal string Material; //retired - [ProtoMember(2)] internal double SegmentLength; - [ProtoMember(3)] internal double SegmentGap; - [ProtoMember(4)] internal double Speed; - [ProtoMember(5)] internal Vector4 Color; - [ProtoMember(6)] internal double WidthMultiplier; - [ProtoMember(7)] internal bool Reverse; - [ProtoMember(8)] internal bool UseLineVariance; - [ProtoMember(9)] internal Randomize ColorVariance; - [ProtoMember(10)] internal Randomize WidthVariance; - [ProtoMember(11)] internal string[] Textures; - [ProtoMember(12)] internal bool Enable; - [ProtoMember(13)] internal FactionColor FactionColor; - } - } - - [ProtoContract] - public struct TrailDef - { - [ProtoMember(1)] internal bool Enable; - [ProtoMember(2)] internal string Material; - [ProtoMember(3)] internal int DecayTime; - [ProtoMember(4)] internal Vector4 Color; - [ProtoMember(5)] internal bool Back; - [ProtoMember(6)] internal float CustomWidth; - [ProtoMember(7)] internal bool UseWidthVariance; - [ProtoMember(8)] internal bool UseColorFade; - [ProtoMember(9)] internal string[] Textures; - [ProtoMember(10)] internal Texture TextureMode; - [ProtoMember(11)] internal bool AlwaysDraw; - [ProtoMember(12)] internal FactionColor FactionColor; - } - } - - [ProtoContract] - public struct DecalDef - { - - [ProtoMember(1)] internal int MaxAge; - [ProtoMember(2)] internal TextureMapDef[] Map; - - [ProtoContract] - public struct TextureMapDef - { - [ProtoMember(1)] internal string HitMaterial; - [ProtoMember(2)] internal string DecalMaterial; - } - } - } - - [ProtoContract] - public struct BeamDef - { - [ProtoMember(1)] internal bool Enable; - [ProtoMember(2)] internal bool ConvergeBeams; - [ProtoMember(3)] internal bool VirtualBeams; - [ProtoMember(4)] internal bool RotateRealBeam; - [ProtoMember(5)] internal bool OneParticle; - [ProtoMember(6)] internal int FakeVoxelHitTicks; - } - - [ProtoContract] - public struct FragmentDef - { - [ProtoMember(1)] internal string AmmoRound; - [ProtoMember(2)] internal int Fragments; - [ProtoMember(3)] internal float Radial; - [ProtoMember(4)] internal float BackwardDegrees; - [ProtoMember(5)] internal float Degrees; - [ProtoMember(6)] internal bool Reverse; - [ProtoMember(7)] internal bool IgnoreArming; - [ProtoMember(8)] internal bool DropVelocity; - [ProtoMember(9)] internal float Offset; - [ProtoMember(10)] internal int MaxChildren; - [ProtoMember(11)] internal TimedSpawnDef TimedSpawns; - [ProtoMember(12)] internal bool FireSound; // not used, can remove - [ProtoMember(13)] internal Vector3D AdvOffset; - [ProtoMember(14)] internal bool ArmWhenHit; - - [ProtoContract] - public struct TimedSpawnDef - { - public enum PointTypes - { - Direct, - Lead, - Predict, - } - - [ProtoMember(1)] internal bool Enable; - [ProtoMember(2)] internal int Interval; - [ProtoMember(3)] internal int StartTime; - [ProtoMember(4)] internal int MaxSpawns; - [ProtoMember(5)] internal double Proximity; - [ProtoMember(6)] internal bool ParentDies; - [ProtoMember(7)] internal bool PointAtTarget; - [ProtoMember(8)] internal int GroupSize; - [ProtoMember(9)] internal int GroupDelay; - [ProtoMember(10)] internal PointTypes PointType; - [ProtoMember(11)] internal float DirectAimCone; - } - } - - [ProtoContract] - public struct PatternDef - { - public enum PatternModes - { - Never, - Weapon, - Fragment, - Both, - } - - [ProtoMember(1)] internal string[] Patterns; - [ProtoMember(2)] internal bool Enable; - [ProtoMember(3)] internal float TriggerChance; - [ProtoMember(4)] internal bool SkipParent; - [ProtoMember(5)] internal bool Random; - [ProtoMember(6)] internal int RandomMin; - [ProtoMember(7)] internal int RandomMax; - [ProtoMember(8)] internal int PatternSteps; - [ProtoMember(9)] internal PatternModes Mode; - } - - [ProtoContract] - public struct EjectionDef - { - public enum SpawnType - { - Item, - Particle, - } - [ProtoMember(1)] internal float Speed; - [ProtoMember(2)] internal float SpawnChance; - [ProtoMember(3)] internal SpawnType Type; - [ProtoMember(4)] internal ComponentDef CompDef; - - [ProtoContract] - public struct ComponentDef - { - [ProtoMember(1)] internal string ItemName; - [ProtoMember(2)] internal int ItemLifeTime; - [ProtoMember(3)] internal int Delay; - } - } - - [ProtoContract] - public struct AreaOfDamageDef - { - public enum Falloff - { - Legacy, - NoFalloff, - Linear, - Curve, - InvCurve, - Squeeze, - Pooled, - Exponential, - } - public enum AoeShape - { - Round, - Diamond, - } - - [ProtoMember(1)] internal ByBlockHitDef ByBlockHit; - [ProtoMember(2)] internal EndOfLifeDef EndOfLife; - - [ProtoContract] - public struct ByBlockHitDef - { - [ProtoMember(1)] internal bool Enable; - [ProtoMember(2)] internal double Radius; - [ProtoMember(3)] internal float Damage; - [ProtoMember(4)] internal float Depth; - [ProtoMember(5)] internal float MaxAbsorb; - [ProtoMember(6)] internal Falloff Falloff; - [ProtoMember(7)] internal AoeShape Shape; - } - - [ProtoContract] - public struct EndOfLifeDef - { - [ProtoMember(1)] internal bool Enable; - [ProtoMember(2)] internal double Radius; - [ProtoMember(3)] internal float Damage; - [ProtoMember(4)] internal float Depth; - [ProtoMember(5)] internal float MaxAbsorb; - [ProtoMember(6)] internal Falloff Falloff; - [ProtoMember(7)] internal bool ArmOnlyOnHit; - [ProtoMember(8)] internal int MinArmingTime; - [ProtoMember(9)] internal bool NoVisuals; - [ProtoMember(10)] internal bool NoSound; - [ProtoMember(11)] internal float ParticleScale; - [ProtoMember(12)] internal string CustomParticle; - [ProtoMember(13)] internal string CustomSound; - [ProtoMember(14)] internal AoeShape Shape; - } - } - - [ProtoContract] - public struct EwarDef - { - public enum EwarType - { - AntiSmart, - JumpNull, - EnergySink, - Anchor, - Emp, - Offense, - Nav, - Dot, - Push, - Pull, - Tractor, - } - - public enum EwarMode - { - Effect, - Field, - } - - [ProtoMember(1)] internal bool Enable; - [ProtoMember(2)] internal EwarType Type; - [ProtoMember(3)] internal EwarMode Mode; - [ProtoMember(4)] internal float Strength; - [ProtoMember(5)] internal double Radius; - [ProtoMember(6)] internal int Duration; - [ProtoMember(7)] internal bool StackDuration; - [ProtoMember(8)] internal bool Depletable; - [ProtoMember(9)] internal int MaxStacks; - [ProtoMember(10)] internal bool NoHitParticle; - [ProtoMember(11)] internal PushPullDef Force; - [ProtoMember(12)] internal FieldDef Field; - - - [ProtoContract] - public struct FieldDef - { - [ProtoMember(1)] internal int Interval; - [ProtoMember(2)] internal int PulseChance; - [ProtoMember(3)] internal int GrowTime; - [ProtoMember(4)] internal bool HideModel; - [ProtoMember(5)] internal bool ShowParticle; - [ProtoMember(6)] internal double TriggerRange; - [ProtoMember(7)] internal ParticleDef Particle; - } - - [ProtoContract] - public struct PushPullDef - { - public enum Force - { - ProjectileLastPosition, - ProjectileOrigin, - HitPosition, - TargetCenter, - TargetCenterOfMass, - } - - [ProtoMember(1)] internal Force ForceFrom; - [ProtoMember(2)] internal Force ForceTo; - [ProtoMember(3)] internal Force Position; - [ProtoMember(4)] internal bool DisableRelativeMass; - [ProtoMember(5)] internal double TractorRange; - [ProtoMember(6)] internal bool ShooterFeelsForce; - } - } - - - [ProtoContract] - public struct AreaDamageDef - { - public enum AreaEffectType - { - Disabled, - Explosive, - Radiant, - AntiSmart, - JumpNullField, - EnergySinkField, - AnchorField, - EmpField, - OffenseField, - NavField, - DotField, - PushField, - PullField, - TractorField, - } - - [ProtoMember(1)] internal double AreaEffectRadius; - [ProtoMember(2)] internal float AreaEffectDamage; - [ProtoMember(3)] internal AreaEffectType AreaEffect; - [ProtoMember(4)] internal PulseDef Pulse; - [ProtoMember(5)] internal DetonateDef Detonation; - [ProtoMember(6)] internal ExplosionDef Explosions; - [ProtoMember(7)] internal EwarFieldsDef EwarFields; - [ProtoMember(8)] internal AreaInfluence Base; - - [ProtoContract] - public struct AreaInfluence - { - [ProtoMember(1)] internal double Radius; - [ProtoMember(2)] internal float EffectStrength; - } - - - [ProtoContract] - public struct PulseDef - { - [ProtoMember(1)] internal int Interval; - [ProtoMember(2)] internal int PulseChance; - [ProtoMember(3)] internal int GrowTime; - [ProtoMember(4)] internal bool HideModel; - [ProtoMember(5)] internal bool ShowParticle; - [ProtoMember(6)] internal ParticleDef Particle; - } - - [ProtoContract] - public struct EwarFieldsDef - { - [ProtoMember(1)] internal int Duration; - [ProtoMember(2)] internal bool StackDuration; - [ProtoMember(3)] internal bool Depletable; - [ProtoMember(4)] internal double TriggerRange; - [ProtoMember(5)] internal int MaxStacks; - [ProtoMember(6)] internal PushPullDef Force; - [ProtoMember(7)] internal bool DisableParticleEffect; - - [ProtoContract] - public struct PushPullDef - { - public enum Force - { - ProjectileLastPosition, - ProjectileOrigin, - HitPosition, - TargetCenter, - TargetCenterOfMass, - } - - [ProtoMember(1)] internal Force ForceFrom; - [ProtoMember(2)] internal Force ForceTo; - [ProtoMember(3)] internal Force Position; - [ProtoMember(4)] internal bool DisableRelativeMass; - [ProtoMember(5)] internal double TractorRange; - [ProtoMember(6)] internal bool ShooterFeelsForce; - } - } - - [ProtoContract] - public struct DetonateDef - { - [ProtoMember(1)] internal bool DetonateOnEnd; - [ProtoMember(2)] internal bool ArmOnlyOnHit; - [ProtoMember(3)] internal float DetonationRadius; - [ProtoMember(4)] internal float DetonationDamage; - [ProtoMember(5)] internal int MinArmingTime; - } - - [ProtoContract] - public struct ExplosionDef - { - [ProtoMember(1)] internal bool NoVisuals; - [ProtoMember(2)] internal bool NoSound; - [ProtoMember(3)] internal float Scale; - [ProtoMember(4)] internal string CustomParticle; - [ProtoMember(5)] internal string CustomSound; - [ProtoMember(6)] internal bool NoShrapnel; - [ProtoMember(7)] internal bool NoDeformation; - } - } - - [ProtoContract] - public struct AmmoAudioDef - { - [ProtoMember(1)] internal string TravelSound; - [ProtoMember(2)] internal string HitSound; - [ProtoMember(3)] internal float HitPlayChance; - [ProtoMember(4)] internal bool HitPlayShield; - [ProtoMember(5)] internal string VoxelHitSound; - [ProtoMember(6)] internal string PlayerHitSound; - [ProtoMember(7)] internal string FloatingHitSound; - [ProtoMember(8)] internal string ShieldHitSound; - [ProtoMember(9)] internal string ShotSound; - } - - [ProtoContract] - public struct TrajectoryDef - { - internal enum GuidanceType - { - None, - Remote, - TravelTo, - Smart, - DetectTravelTo, - DetectSmart, - DetectFixed, - DroneAdvanced, - } - - [ProtoMember(1)] internal float MaxTrajectory; - [ProtoMember(2)] internal float AccelPerSec; - [ProtoMember(3)] internal float DesiredSpeed; - [ProtoMember(4)] internal float TargetLossDegree; - [ProtoMember(5)] internal int TargetLossTime; - [ProtoMember(6)] internal int MaxLifeTime; - [ProtoMember(7)] internal int DeaccelTime; - [ProtoMember(8)] internal Randomize SpeedVariance; - [ProtoMember(9)] internal Randomize RangeVariance; - [ProtoMember(10)] internal GuidanceType Guidance; - [ProtoMember(11)] internal SmartsDef Smarts; - [ProtoMember(12)] internal MinesDef Mines; - [ProtoMember(13)] internal float GravityMultiplier; - [ProtoMember(14)] internal uint MaxTrajectoryTime; - [ProtoMember(15)] internal ApproachDef[] Approaches; - [ProtoMember(16)] internal double TotalAcceleration; - [ProtoMember(17)] internal OnHitDef OnHit; - - [ProtoContract] - public struct SmartsDef - { - [ProtoMember(1)] internal double Inaccuracy; - [ProtoMember(2)] internal double Aggressiveness; - [ProtoMember(3)] internal double MaxLateralThrust; - [ProtoMember(4)] internal double TrackingDelay; - [ProtoMember(5)] internal int MaxChaseTime; - [ProtoMember(6)] internal bool OverideTarget; - [ProtoMember(7)] internal int MaxTargets; - [ProtoMember(8)] internal bool NoTargetExpire; - [ProtoMember(9)] internal bool Roam; - [ProtoMember(10)] internal bool KeepAliveAfterTargetLoss; - [ProtoMember(11)] internal float OffsetRatio; - [ProtoMember(12)] internal int OffsetTime; - [ProtoMember(13)] internal bool CheckFutureIntersection; - [ProtoMember(14)] internal double NavAcceleration; - [ProtoMember(15)] internal bool AccelClearance; - [ProtoMember(16)] internal double SteeringLimit; - [ProtoMember(17)] internal bool FocusOnly; - [ProtoMember(18)] internal double OffsetMinRange; - [ProtoMember(19)] internal bool FocusEviction; - [ProtoMember(20)] internal double ScanRange; - [ProtoMember(21)] internal bool NoSteering; - [ProtoMember(22)] internal double FutureIntersectionRange; - [ProtoMember(23)] internal double MinTurnSpeed; - [ProtoMember(24)] internal bool NoTargetApproach; - [ProtoMember(25)] internal bool AltNavigation; - } - - [ProtoContract] - public struct ApproachDef - { - public enum ReInitCondition - { - Wait, - MoveToPrevious, - MoveToNext, - ForceRestart, - } - - public enum Conditions - { - Ignore, - Spawn, - DistanceFromPositionC, - Lifetime, - DesiredElevation, - MinTravelRequired, - MaxTravelRequired, - Deadtime, - DistanceToPositionC, - NextTimedSpawn, - RelativeLifetime, - RelativeDeadtime, - SinceTimedSpawn, - RelativeSpawns, - EnemyTargetLoss, - RelativeHealthLost, - HealthRemaining, - DistanceFromPositionB, - DistanceToPositionB, - DistanceFromTarget, - DistanceToTarget, - DistanceFromEndTrajectory, - DistanceToEndTrajectory, - } - - public enum UpRelativeTo - { - UpRelativeToBlock, - UpRelativeToGravity, - UpTargetDirection, - UpTargetVelocity, - UpStoredStartDontUse, - UpStoredEndDontUse, - UpStoredStartPosition, - UpStoredEndPosition, - UpStoredStartLocalPosition, - UpStoredEndLocalPosition, - UpRelativeToShooter, - UpOriginDirection, - UpElevationDirection, - } - - public enum FwdRelativeTo - { - ForwardElevationDirection, - ForwardRelativeToBlock, - ForwardRelativeToGravity, - ForwardTargetDirection, - ForwardTargetVelocity, - ForwardStoredStartDontUse, - ForwardStoredEndDontUse, - ForwardStoredStartPosition, - ForwardStoredEndPosition, - ForwardStoredStartLocalPosition, - ForwardStoredEndLocalPosition, - ForwardRelativeToShooter, - ForwardOriginDirection, - } - - public enum RelativeTo - { - Origin, - Shooter, - Target, - Surface, - MidPoint, - PositionA, - Nothing, - StoredStartDontUse, - StoredEndDontUse, - StoredStartPosition, - StoredEndPosition, - StoredStartLocalPosition, - StoredEndLocalPosition, - } - - public enum ConditionOperators - { - StartEnd_And, - StartEnd_Or, - StartAnd_EndOr, - StartOr_EndAnd, - } - - public enum StageEvents - { - DoNothing, - EndProjectile, - EndProjectileOnRestart, - StoreDontUse, - StorePositionDontUse, - Refund, - StorePositionA, - StorePositionB, - StorePositionC, - } - - [ProtoContract] - public struct WeightedIdListDef - { - - [ProtoMember(1)] public int ApproachId; - [ProtoMember(2)] public Randomize Weight; - [ProtoMember(3)] public double End1WeightMod; - [ProtoMember(4)] public double End2WeightMod; - [ProtoMember(5)] public int MaxRuns; - [ProtoMember(6)] public double End3WeightMod; - } - - [ProtoMember(1)] internal ReInitCondition RestartCondition; - [ProtoMember(2)] internal Conditions StartCondition1; - [ProtoMember(3)] internal Conditions EndCondition1; - [ProtoMember(4)] internal UpRelativeTo Up; - [ProtoMember(5)] internal RelativeTo PositionB; - [ProtoMember(6)] internal double AngleOffset; - [ProtoMember(7)] internal double Start1Value; - [ProtoMember(8)] internal double End1Value; - [ProtoMember(9)] internal double LeadDistance; - [ProtoMember(10)] internal double DesiredElevation; - [ProtoMember(11)] internal double AccelMulti; - [ProtoMember(12)] internal double SpeedCapMulti; - [ProtoMember(13)] internal bool AdjustPositionC; - [ProtoMember(14)] internal bool CanExpireOnceStarted; - [ProtoMember(15)] internal ParticleDef AlternateParticle; - [ProtoMember(16)] internal string AlternateSound; - [ProtoMember(17)] internal string AlternateModel; - [ProtoMember(18)] internal int OnRestartRevertTo; - [ProtoMember(19)] internal ParticleDef StartParticle; - [ProtoMember(20)] internal bool AdjustPositionB; - [ProtoMember(21)] internal bool AdjustUp; - [ProtoMember(22)] internal bool PushLeadByTravelDistance; - [ProtoMember(23)] internal double TrackingDistance; - [ProtoMember(24)] internal Conditions StartCondition2; - [ProtoMember(25)] internal double Start2Value; - [ProtoMember(26)] internal Conditions EndCondition2; - [ProtoMember(27)] internal double End2Value; - [ProtoMember(28)] internal RelativeTo Elevation; - [ProtoMember(29)] internal double ElevationTolerance; - [ProtoMember(30)] internal ConditionOperators Operators; - [ProtoMember(31)] internal StageEvents StartEvent; - [ProtoMember(32)] internal StageEvents EndEvent; - [ProtoMember(33)] internal double TotalAccelMulti; - [ProtoMember(34)] internal double DeAccelMulti; - [ProtoMember(35)] internal bool Orbit; - [ProtoMember(36)] internal double OrbitRadius; - [ProtoMember(37)] internal int OffsetTime; - [ProtoMember(38)] internal double OffsetMinRadius; - [ProtoMember(39)] internal bool NoTimedSpawns; - [ProtoMember(40)] internal double OffsetMaxRadius; - [ProtoMember(41)] internal bool ForceRestart; - [ProtoMember(42)] internal RelativeTo PositionC; - [ProtoMember(43)] internal bool DisableAvoidance; - [ProtoMember(44)] internal int StoredStartId; - [ProtoMember(45)] internal int StoredEndId; - [ProtoMember(46)] internal WeightedIdListDef[] RestartList; - [ProtoMember(47)] internal RelativeTo StoredStartType; - [ProtoMember(48)] internal RelativeTo StoredEndType; - [ProtoMember(49)] internal bool LeadRotateElevatePositionB; - [ProtoMember(50)] internal bool LeadRotateElevatePositionC; - [ProtoMember(51)] internal bool NoElevationLead; - [ProtoMember(52)] internal bool IgnoreAntiSmart; - [ProtoMember(53)] internal double HeatRefund; - [ProtoMember(54)] internal Randomize AngleVariance; - [ProtoMember(55)] internal bool ReloadRefund; - [ProtoMember(56)] internal int ModelRotateTime; - [ProtoMember(57)] internal FwdRelativeTo Forward; - [ProtoMember(58)] internal bool AdjustForward; - [ProtoMember(59)] internal bool ToggleIngoreVoxels; - [ProtoMember(60)] internal bool SelfAvoidance; - [ProtoMember(61)] internal bool TargetAvoidance; - [ProtoMember(62)] internal bool SelfPhasing; - [ProtoMember(63)] internal bool TrajectoryRelativeToB; - [ProtoMember(64)] internal Conditions EndCondition3; - [ProtoMember(65)] internal double End3Value; - [ProtoMember(66)] internal bool SwapNavigationType; - [ProtoMember(67)] internal bool ElevationRelativeToC; - } - - [ProtoContract] - public struct MinesDef - { - [ProtoMember(1)] internal double DetectRadius; - [ProtoMember(2)] internal double DeCloakRadius; - [ProtoMember(3)] internal int FieldTime; - [ProtoMember(4)] internal bool Cloak; - [ProtoMember(5)] internal bool Persist; - } - - [ProtoContract] - public struct OnHitDef - { - /* - [ProtoMember(1)] internal int Duration; - [ProtoMember(2)] internal int ProcInterval; - [ProtoMember(3)] internal double ProcAmount; - [ProtoMember(4)] internal bool ProcOnVoxels; - [ProtoMember(5)] internal bool FragOnProc; - [ProtoMember(6)] internal bool DieOnEnd; - [ProtoMember(7)] internal bool StickOnHit; - [ProtoMember(8)] internal bool AlignFragtoImpactAngle; - */ - } - } - - [ProtoContract] - public struct Randomize - { - [ProtoMember(1)] internal float Start; - [ProtoMember(2)] internal float End; - } - } - - [ProtoContract] - public struct ParticleOptionDef - { - [ProtoMember(1)] internal float Scale; - [ProtoMember(2)] internal float MaxDistance; - [ProtoMember(3)] internal float MaxDuration; - [ProtoMember(4)] internal bool Loop; - [ProtoMember(5)] internal bool Restart; - [ProtoMember(6)] internal float HitPlayChance; - } - - - [ProtoContract] - public struct ParticleDef - { - [ProtoMember(1)] internal string Name; - [ProtoMember(2)] internal Vector4 Color; - [ProtoMember(3)] internal Vector3D Offset; - [ProtoMember(4)] internal ParticleOptionDef Extras; - [ProtoMember(5)] internal bool ApplyToShield; - [ProtoMember(6)] internal bool DisableCameraCulling; - } - } - } -} +using System.Collections.Generic; +using ProtoBuf; +using VRageMath; + +namespace Scripts +{ + public class Structure + { + [ProtoContract] + public class ContainerDefinition + { + [ProtoMember(1)] internal WeaponDefinition[] WeaponDefs; + [ProtoMember(2)] internal ArmorDefinition[] ArmorDefs; + [ProtoMember(3)] internal UpgradeDefinition[] UpgradeDefs; + [ProtoMember(4)] internal SupportDefinition[] SupportDefs; + } + + [ProtoContract] + public class ConsumeableDef + { + [ProtoMember(1)] internal string ItemName; + [ProtoMember(2)] internal string InventoryItem; + [ProtoMember(3)] internal int ItemsNeeded; + [ProtoMember(4)] internal bool Hybrid; + [ProtoMember(5)] internal float EnergyCost; + [ProtoMember(6)] internal float Strength; + } + + [ProtoContract] + public class UpgradeDefinition + { + [ProtoMember(1)] internal ModelAssignmentsDef Assignments; + [ProtoMember(2)] internal HardPointDef HardPoint; + [ProtoMember(3)] internal WeaponDefinition.AnimationDef Animations; + [ProtoMember(4)] internal string ModPath; + [ProtoMember(5)] internal ConsumeableDef[] Consumable; + + [ProtoContract] + public struct ModelAssignmentsDef + { + [ProtoMember(1)] internal MountPointDef[] MountPoints; + + [ProtoContract] + public struct MountPointDef + { + [ProtoMember(1)] internal string SubtypeId; + [ProtoMember(2)] internal float DurabilityMod; + [ProtoMember(3)] internal string IconName; + } + } + + [ProtoContract] + public struct HardPointDef + { + [ProtoMember(1)] internal string PartName; + [ProtoMember(2)] internal HardwareDef HardWare; + [ProtoMember(3)] internal UiDef Ui; + [ProtoMember(4)] internal OtherDef Other; + + + [ProtoContract] + public struct UiDef + { + [ProtoMember(1)] internal bool StrengthModifier; + } + + [ProtoContract] + public struct HardwareDef + { + public enum HardwareType + { + Default, + } + + [ProtoMember(1)] internal float InventorySize; + [ProtoMember(2)] internal HardwareType Type; + [ProtoMember(3)] internal int BlockDistance; + [ProtoMember(4)] internal float IdlePower; + } + + [ProtoContract] + public struct OtherDef + { + [ProtoMember(1)] internal int ConstructPartCap; + [ProtoMember(2)] internal int EnergyPriority; + [ProtoMember(3)] internal bool Debug; + [ProtoMember(4)] internal double RestrictionRadius; + [ProtoMember(5)] internal bool CheckInflatedBox; + [ProtoMember(6)] internal bool CheckForAnySupport; + [ProtoMember(7)] internal bool StayCharged; + } + } + + } + + [ProtoContract] + public class SupportDefinition + { + [ProtoMember(1)] internal ModelAssignmentsDef Assignments; + [ProtoMember(2)] internal HardPointDef HardPoint; + [ProtoMember(3)] internal WeaponDefinition.AnimationDef Animations; + [ProtoMember(4)] internal string ModPath; + [ProtoMember(5)] internal ConsumeableDef[] Consumable; + [ProtoMember(6)] internal SupportEffect Effect; + + [ProtoContract] + public struct ModelAssignmentsDef + { + [ProtoMember(1)] internal MountPointDef[] MountPoints; + + [ProtoContract] + public struct MountPointDef + { + [ProtoMember(1)] internal string SubtypeId; + [ProtoMember(2)] internal float DurabilityMod; + [ProtoMember(3)] internal string IconName; + } + } + [ProtoContract] + public struct HardPointDef + { + [ProtoMember(1)] internal string PartName; + [ProtoMember(2)] internal HardwareDef HardWare; + [ProtoMember(3)] internal UiDef Ui; + [ProtoMember(4)] internal OtherDef Other; + + [ProtoContract] + public struct UiDef + { + [ProtoMember(1)] internal bool ProtectionControl; + } + + [ProtoContract] + public struct HardwareDef + { + [ProtoMember(1)] internal float InventorySize; + [ProtoMember(2)] internal float IdlePower; + } + + [ProtoContract] + public struct OtherDef + { + [ProtoMember(1)] internal int ConstructPartCap; + [ProtoMember(2)] internal int EnergyPriority; + [ProtoMember(3)] internal bool Debug; + [ProtoMember(4)] internal double RestrictionRadius; + [ProtoMember(5)] internal bool CheckInflatedBox; + [ProtoMember(6)] internal bool CheckForAnySupport; + [ProtoMember(7)] internal bool StayCharged; + } + } + + [ProtoContract] + public struct SupportEffect + { + public enum AffectedBlocks + { + Armor, + ArmorPlus, + PlusFunctional, + All, + } + + public enum Protections + { + KineticProt, + EnergeticProt, + GenericProt, + Regenerate, + Structural, + } + + [ProtoMember(1)] internal Protections Protection; + [ProtoMember(2)] internal AffectedBlocks Affected; + [ProtoMember(3)] internal int BlockRange; + [ProtoMember(4)] internal int MaxPoints; + [ProtoMember(5)] internal int PointsPerCharge; + [ProtoMember(6)] internal int UsablePerSecond; + [ProtoMember(7)] internal int UsablePerMinute; + [ProtoMember(8)] internal float Overflow; + [ProtoMember(9)] internal float Effectiveness; + [ProtoMember(10)] internal float ProtectionMin; + [ProtoMember(11)] internal float ProtectionMax; + } + } + + [ProtoContract] + public class ArmorDefinition + { + internal enum ArmorType + { + Light, + Heavy, + NonArmor, + } + + [ProtoMember(1)] internal string[] SubtypeIds; + [ProtoMember(2)] internal ArmorType Kind; + [ProtoMember(3)] internal double KineticResistance; + [ProtoMember(4)] internal double EnergeticResistance; + } + + [ProtoContract] + public class WeaponDefinition + { + [ProtoMember(1)] internal ModelAssignmentsDef Assignments; + [ProtoMember(2)] internal TargetingDef Targeting; + [ProtoMember(3)] internal AnimationDef Animations; + [ProtoMember(4)] internal HardPointDef HardPoint; + [ProtoMember(5)] internal AmmoDef[] Ammos; + [ProtoMember(6)] internal string ModPath; + [ProtoMember(7)] internal Dictionary Upgrades; + + [ProtoContract] + public struct ModelAssignmentsDef + { + [ProtoMember(1)] internal MountPointDef[] MountPoints; + [ProtoMember(2)] internal string[] Muzzles; + [ProtoMember(3)] internal string Ejector; + [ProtoMember(4)] internal string Scope; + + [ProtoContract] + public struct MountPointDef + { + [ProtoMember(1)] internal string SubtypeId; + [ProtoMember(2)] internal string SpinPartId; + [ProtoMember(3)] internal string MuzzlePartId; + [ProtoMember(4)] internal string AzimuthPartId; + [ProtoMember(5)] internal string ElevationPartId; + [ProtoMember(6)] internal float DurabilityMod; + [ProtoMember(7)] internal string IconName; + [ProtoMember(8)] internal string PhantomModel; + } + } + + [ProtoContract] + public struct TargetingDef + { + public enum Threat + { + Projectiles, + Characters, + Grids, + Neutrals, + Meteors, + Other, + ScanNeutralGrid, + ScanFriendlyGrid, + ScanFriendlyCharacter, + ScanRoid, + ScanPlanet, + ScanEnemyCharacter, + ScanEnemyGrid, + ScanNeutralCharacter, + ScanUnOwnedGrid, + ScanOwnersGrid + } + + public enum BlockTypes + { + Any, + Offense, + Utility, + Power, + Production, + Thrust, + Jumping, + Steering + } + + [ProtoMember(1)] internal int TopTargets; + [ProtoMember(2)] internal int TopBlocks; + [ProtoMember(3)] internal double StopTrackingSpeed; + [ProtoMember(4)] internal float MinimumDiameter; + [ProtoMember(5)] internal float MaximumDiameter; + [ProtoMember(6)] internal bool ClosestFirst; + [ProtoMember(7)] internal BlockTypes[] SubSystems; + [ProtoMember(8)] internal Threat[] Threats; + [ProtoMember(9)] internal float MaxTargetDistance; + [ProtoMember(10)] internal float MinTargetDistance; + [ProtoMember(11)] internal bool IgnoreDumbProjectiles; + [ProtoMember(12)] internal bool LockedSmartOnly; + [ProtoMember(13)] internal bool UniqueTargetPerWeapon; + [ProtoMember(14)] internal int MaxTrackingTime; + [ProtoMember(15)] internal bool ShootBlanks; + [ProtoMember(19)] internal CommunicationDef Communications; + [ProtoMember(20)] internal bool FocusOnly; + [ProtoMember(21)] internal bool EvictUniqueTargets; + [ProtoMember(22)] internal int CycleTargets; + [ProtoMember(23)] internal int CycleBlocks; + + [ProtoContract] + public struct CommunicationDef + { + public enum Comms + { + NoComms, + LocalNetwork, + BroadCast, + Relay, + Repeat, + Jamming, + } + + public enum SecurityMode + { + Public, + Private, + Secure, + } + + [ProtoMember(1)] internal bool StoreTargets; + [ProtoMember(2)] internal int StorageLimit; + [ProtoMember(3)] internal string StorageLocation; + [ProtoMember(4)] internal Comms Mode; + [ProtoMember(5)] internal SecurityMode Security; + [ProtoMember(6)] internal string BroadCastChannel; + [ProtoMember(7)] internal double BroadCastRange; + [ProtoMember(8)] internal double JammingStrength; + [ProtoMember(9)] internal string RelayChannel; + [ProtoMember(10)] internal double RelayRange; + [ProtoMember(11)] internal bool TargetPersists; + [ProtoMember(12)] internal bool StoreLimitPerBlock; + [ProtoMember(13)] internal int MaxConnections; + } + } + + + [ProtoContract] + public struct AnimationDef + { + [ProtoMember(1)] internal PartAnimationSetDef[] AnimationSets; + [ProtoMember(2)] internal PartEmissive[] Emissives; + [ProtoMember(3)] internal string[] HeatingEmissiveParts; + [ProtoMember(4)] internal Dictionary EventParticles; + + [ProtoContract(IgnoreListHandling = true)] + public struct PartAnimationSetDef + { + public enum EventTriggers + { + Reloading, + Firing, + Tracking, + Overheated, + TurnOn, + TurnOff, + BurstReload, + NoMagsToLoad, + PreFire, + EmptyOnGameLoad, + StopFiring, + StopTracking, + LockDelay, + Init, + Homing, + TargetAligned, + WhileOn, + TargetRanged100, + TargetRanged75, + TargetRanged50, + TargetRanged25, + } + + public enum ResetConditions + { + None, + Home, + Off, + On, + Reloaded + } + + [ProtoMember(1)] internal string[] SubpartId; + [ProtoMember(2)] internal string BarrelId; + [ProtoMember(3)] internal uint StartupFireDelay; + [ProtoMember(4)] internal Dictionary AnimationDelays; + [ProtoMember(5)] internal EventTriggers[] Reverse; + [ProtoMember(6)] internal EventTriggers[] Loop; + [ProtoMember(7)] internal Dictionary EventMoveSets; + [ProtoMember(8)] internal EventTriggers[] TriggerOnce; + [ProtoMember(9)] internal EventTriggers[] ResetEmissives; + [ProtoMember(10)] internal ResetConditions Resets; + } + + [ProtoContract] + public struct PartEmissive + { + [ProtoMember(1)] internal string EmissiveName; + [ProtoMember(2)] internal string[] EmissivePartNames; + [ProtoMember(3)] internal bool CycleEmissivesParts; + [ProtoMember(4)] internal bool LeavePreviousOn; + [ProtoMember(5)] internal Vector4[] Colors; + [ProtoMember(6)] internal float[] IntensityRange; + } + [ProtoContract] + public struct EventParticle + { + [ProtoMember(1)] internal string[] EmptyNames; + [ProtoMember(2)] internal string[] MuzzleNames; + [ProtoMember(3)] internal ParticleDef Particle; + [ProtoMember(4)] internal uint StartDelay; + [ProtoMember(5)] internal uint LoopDelay; + [ProtoMember(6)] internal bool ForceStop; + } + [ProtoContract] + internal struct RelMove + { + public enum MoveType + { + Linear, + ExpoDecay, + ExpoGrowth, + Delay, + Show, //instant or fade + Hide, //instant or fade + } + + [ProtoMember(1)] internal MoveType MovementType; + [ProtoMember(2)] internal XYZ[] LinearPoints; + [ProtoMember(3)] internal XYZ Rotation; + [ProtoMember(4)] internal XYZ RotAroundCenter; + [ProtoMember(5)] internal uint TicksToMove; + [ProtoMember(6)] internal string CenterEmpty; + [ProtoMember(7)] internal bool Fade; + [ProtoMember(8)] internal string EmissiveName; + + [ProtoContract] + internal struct XYZ + { + [ProtoMember(1)] internal double x; + [ProtoMember(2)] internal double y; + [ProtoMember(3)] internal double z; + } + } + } + + [ProtoContract] + public struct UpgradeValues + { + [ProtoMember(1)] internal string[] Ammo; + [ProtoMember(2)] internal Dependency[] Dependencies; + [ProtoMember(3)] internal int RateOfFireMod; + [ProtoMember(4)] internal int BarrelsPerShotMod; + [ProtoMember(5)] internal int ReloadMod; + [ProtoMember(6)] internal int MaxHeatMod; + [ProtoMember(7)] internal int HeatSinkRateMod; + [ProtoMember(8)] internal int ShotsInBurstMod; + [ProtoMember(9)] internal int DelayAfterBurstMod; + [ProtoMember(10)] internal int AmmoPriority; + + [ProtoContract] + public struct Dependency + { + internal string SubtypeId; + internal int Quanity; + } + } + + [ProtoContract] + public struct HardPointDef + { + public enum Prediction + { + Off, + Basic, + Accurate, + Advanced, + } + + [ProtoMember(1)] internal string PartName; + [ProtoMember(2)] internal int DelayCeaseFire; + [ProtoMember(3)] internal float DeviateShotAngle; + [ProtoMember(4)] internal double AimingTolerance; + [ProtoMember(5)] internal Prediction AimLeadingPrediction; + [ProtoMember(6)] internal LoadingDef Loading; + [ProtoMember(7)] internal AiDef Ai; + [ProtoMember(8)] internal HardwareDef HardWare; + [ProtoMember(9)] internal UiDef Ui; + [ProtoMember(10)] internal HardPointAudioDef Audio; + [ProtoMember(11)] internal HardPointParticleDef Graphics; + [ProtoMember(12)] internal OtherDef Other; + [ProtoMember(13)] internal bool AddToleranceToTracking; + [ProtoMember(14)] internal bool CanShootSubmerged; + [ProtoMember(15)] internal bool NpcSafe; + [ProtoMember(16)] internal bool ScanTrackOnly; + + [ProtoContract] + public struct LoadingDef + { + [ProtoMember(1)] internal int ReloadTime; + [ProtoMember(2)] internal int RateOfFire; + [ProtoMember(3)] internal int BarrelsPerShot; + [ProtoMember(4)] internal int SkipBarrels; + [ProtoMember(5)] internal int TrajectilesPerBarrel; + [ProtoMember(6)] internal int HeatPerShot; + [ProtoMember(7)] internal int MaxHeat; + [ProtoMember(8)] internal int HeatSinkRate; + [ProtoMember(9)] internal float Cooldown; + [ProtoMember(10)] internal int DelayUntilFire; + [ProtoMember(11)] internal int ShotsInBurst; + [ProtoMember(12)] internal int DelayAfterBurst; + [ProtoMember(13)] internal bool DegradeRof; + [ProtoMember(14)] internal int BarrelSpinRate; + [ProtoMember(15)] internal bool FireFull; + [ProtoMember(16)] internal bool GiveUpAfter; + [ProtoMember(17)] internal bool DeterministicSpin; + [ProtoMember(18)] internal bool SpinFree; + [ProtoMember(19)] internal bool StayCharged; + [ProtoMember(20)] internal int MagsToLoad; + [ProtoMember(21)] internal int MaxActiveProjectiles; + [ProtoMember(22)] internal int MaxReloads; + [ProtoMember(23)] internal bool GoHomeToReload; + [ProtoMember(24)] internal bool DropTargetUntilLoaded; + } + + + [ProtoContract] + public struct UiDef + { + [ProtoMember(1)] internal bool RateOfFire; + [ProtoMember(2)] internal bool DamageModifier; + [ProtoMember(3)] internal bool ToggleGuidance; + [ProtoMember(4)] internal bool EnableOverload; + [ProtoMember(5)] internal bool AlternateUi; + [ProtoMember(6)] internal bool DisableStatus; + [ProtoMember(7)] internal float RateOfFireMin; + } + + + [ProtoContract] + public struct AiDef + { + [ProtoMember(1)] internal bool TrackTargets; + [ProtoMember(2)] internal bool TurretAttached; + [ProtoMember(3)] internal bool TurretController; + [ProtoMember(4)] internal bool PrimaryTracking; + [ProtoMember(5)] internal bool LockOnFocus; + [ProtoMember(6)] internal bool SuppressFire; + [ProtoMember(7)] internal bool OverrideLeads; + [ProtoMember(8)] internal int DefaultLeadGroup; + [ProtoMember(9)] internal bool TargetGridCenter; + } + + [ProtoContract] + public struct HardwareDef + { + public enum HardwareType + { + BlockWeapon = 0, + HandWeapon = 1, + Phantom = 6, + } + + [ProtoMember(1)] internal float RotateRate; + [ProtoMember(2)] internal float ElevateRate; + [ProtoMember(3)] internal Vector3D Offset; + [ProtoMember(4)] internal bool FixedOffset; + [ProtoMember(5)] internal int MaxAzimuth; + [ProtoMember(6)] internal int MinAzimuth; + [ProtoMember(7)] internal int MaxElevation; + [ProtoMember(8)] internal int MinElevation; + [ProtoMember(9)] internal float InventorySize; + [ProtoMember(10)] internal HardwareType Type; + [ProtoMember(11)] internal int HomeAzimuth; + [ProtoMember(12)] internal int HomeElevation; + [ProtoMember(13)] internal CriticalDef CriticalReaction; + [ProtoMember(14)] internal float IdlePower; + + [ProtoContract] + public struct CriticalDef + { + [ProtoMember(1)] internal bool Enable; + [ProtoMember(2)] internal int DefaultArmedTimer; + [ProtoMember(3)] internal bool PreArmed; + [ProtoMember(4)] internal bool TerminalControls; + [ProtoMember(5)] internal string AmmoRound; + } + } + + [ProtoContract] + public struct HardPointAudioDef + { + [ProtoMember(1)] internal string ReloadSound; + [ProtoMember(2)] internal string NoAmmoSound; + [ProtoMember(3)] internal string HardPointRotationSound; + [ProtoMember(4)] internal string BarrelRotationSound; + [ProtoMember(5)] internal string FiringSound; + [ProtoMember(6)] internal bool FiringSoundPerShot; + [ProtoMember(7)] internal string PreFiringSound; + [ProtoMember(8)] internal uint FireSoundEndDelay; + [ProtoMember(9)] internal bool FireSoundNoBurst; + } + + [ProtoContract] + public struct OtherDef + { + [ProtoMember(1)] internal int ConstructPartCap; + [ProtoMember(2)] internal int EnergyPriority; + [ProtoMember(3)] internal int RotateBarrelAxis; + [ProtoMember(4)] internal bool MuzzleCheck; + [ProtoMember(5)] internal bool Debug; + [ProtoMember(6)] internal double RestrictionRadius; + [ProtoMember(7)] internal bool CheckInflatedBox; + [ProtoMember(8)] internal bool CheckForAnyWeapon; + [ProtoMember(9)] internal bool DisableLosCheck; + [ProtoMember(10)] internal bool NoVoxelLosCheck; + + } + + [ProtoContract] + public struct HardPointParticleDef + { + [ProtoMember(1)] internal ParticleDef Effect1; + [ProtoMember(2)] internal ParticleDef Effect2; + } + } + + [ProtoContract] + public class AmmoDef + { + [ProtoMember(1)] internal string AmmoMagazine; + [ProtoMember(2)] internal string AmmoRound; + [ProtoMember(3)] internal bool HybridRound; + [ProtoMember(4)] internal float EnergyCost; + [ProtoMember(5)] internal float BaseDamage; + [ProtoMember(6)] internal float Mass; + [ProtoMember(7)] internal float Health; + [ProtoMember(8)] internal float BackKickForce; + [ProtoMember(9)] internal DamageScaleDef DamageScales; + [ProtoMember(10)] internal ShapeDef Shape; + [ProtoMember(11)] internal ObjectsHitDef ObjectsHit; + [ProtoMember(12)] internal TrajectoryDef Trajectory; + [ProtoMember(13)] internal AreaDamageDef AreaEffect; + [ProtoMember(14)] internal BeamDef Beams; + [ProtoMember(15)] internal FragmentDef Fragment; + [ProtoMember(16)] internal GraphicDef AmmoGraphics; + [ProtoMember(17)] internal AmmoAudioDef AmmoAudio; + [ProtoMember(18)] internal bool HardPointUsable; + [ProtoMember(19)] internal PatternDef Pattern; + [ProtoMember(20)] internal int EnergyMagazineSize; + [ProtoMember(21)] internal float DecayPerShot; + [ProtoMember(22)] internal EjectionDef Ejection; + [ProtoMember(23)] internal bool IgnoreWater; + [ProtoMember(24)] internal AreaOfDamageDef AreaOfDamage; + [ProtoMember(25)] internal EwarDef Ewar; + [ProtoMember(26)] internal bool IgnoreVoxels; + [ProtoMember(27)] internal bool Synchronize; + [ProtoMember(28)] internal double HeatModifier; + [ProtoMember(29)] internal bool NpcSafe; + [ProtoMember(30)] internal SynchronizeDef Sync; + [ProtoMember(31)] internal bool NoGridOrArmorScaling; + + [ProtoContract] + public struct SynchronizeDef + { + [ProtoMember(1)] internal bool Full; + [ProtoMember(2)] internal bool PointDefense; + [ProtoMember(3)] internal bool OnHitDeath; + } + + [ProtoContract] + public struct DamageScaleDef + { + + [ProtoMember(1)] internal float MaxIntegrity; + [ProtoMember(2)] internal bool DamageVoxels; + [ProtoMember(3)] internal float Characters; + [ProtoMember(4)] internal bool SelfDamage; + [ProtoMember(5)] internal GridSizeDef Grids; + [ProtoMember(6)] internal ArmorDef Armor; + [ProtoMember(7)] internal CustomScalesDef Custom; + [ProtoMember(8)] internal ShieldDef Shields; + [ProtoMember(9)] internal FallOffDef FallOff; + [ProtoMember(10)] internal double HealthHitModifier; + [ProtoMember(11)] internal double VoxelHitModifier; + [ProtoMember(12)] internal DamageTypes DamageType; + [ProtoMember(13)] internal DeformDef Deform; + + [ProtoContract] + public struct FallOffDef + { + [ProtoMember(1)] internal float Distance; + [ProtoMember(2)] internal float MinMultipler; + } + + [ProtoContract] + public struct GridSizeDef + { + [ProtoMember(1)] internal float Large; + [ProtoMember(2)] internal float Small; + } + + [ProtoContract] + public struct ArmorDef + { + [ProtoMember(1)] internal float Armor; + [ProtoMember(2)] internal float Heavy; + [ProtoMember(3)] internal float Light; + [ProtoMember(4)] internal float NonArmor; + } + + [ProtoContract] + public struct CustomScalesDef + { + internal enum SkipMode + { + NoSkip, + Inclusive, + Exclusive, + } + + [ProtoMember(1)] internal CustomBlocksDef[] Types; + [ProtoMember(2)] internal bool IgnoreAllOthers; + [ProtoMember(3)] internal SkipMode SkipOthers; + } + + [ProtoContract] + public struct DamageTypes + { + internal enum Damage + { + Energy, + Kinetic, + ShieldDefault, + } + + [ProtoMember(1)] internal Damage Base; + [ProtoMember(2)] internal Damage AreaEffect; + [ProtoMember(3)] internal Damage Detonation; + [ProtoMember(4)] internal Damage Shield; + } + + [ProtoContract] + public struct ShieldDef + { + internal enum ShieldType + { + Default, + Heal, + Bypass, + EmpRetired, + } + + [ProtoMember(1)] internal float Modifier; + [ProtoMember(2)] internal ShieldType Type; + [ProtoMember(3)] internal float BypassModifier; + [ProtoMember(4)] internal double HeatModifier; + } + + [ProtoContract] + public struct DeformDef + { + internal enum DeformTypes + { + HitBlock, + AllDamagedBlocks, + NoDeform, + } + + [ProtoMember(1)] internal DeformTypes DeformType; + [ProtoMember(2)] internal int DeformDelay; + } + } + + [ProtoContract] + public struct ShapeDef + { + public enum Shapes + { + LineShape, + SphereShape, + } + + [ProtoMember(1)] internal Shapes Shape; + [ProtoMember(2)] internal double Diameter; + } + + [ProtoContract] + public struct ObjectsHitDef + { + [ProtoMember(1)] internal int MaxObjectsHit; + [ProtoMember(2)] internal bool CountBlocks; + } + + + [ProtoContract] + public struct CustomBlocksDef + { + [ProtoMember(1)] internal string SubTypeId; + [ProtoMember(2)] internal float Modifier; + } + + [ProtoContract] + public struct GraphicDef + { + [ProtoMember(1)] internal bool ShieldHitDraw; + [ProtoMember(2)] internal float VisualProbability; + [ProtoMember(3)] internal string ModelName; + [ProtoMember(4)] internal AmmoParticleDef Particles; + [ProtoMember(5)] internal LineDef Lines; + [ProtoMember(6)] internal DecalDef Decals; + + [ProtoContract] + public struct AmmoParticleDef + { + [ProtoMember(1)] internal ParticleDef Ammo; + [ProtoMember(2)] internal ParticleDef Hit; + [ProtoMember(3)] internal ParticleDef Eject; + } + + [ProtoContract] + public struct LineDef + { + internal enum Texture + { + Normal, + Cycle, + Chaos, + Wave, + } + + public enum FactionColor + { + DontUse, + Foreground, + Background, + } + + [ProtoMember(1)] internal TracerBaseDef Tracer; + [ProtoMember(2)] internal string TracerMaterial; + [ProtoMember(3)] internal Randomize ColorVariance; + [ProtoMember(4)] internal Randomize WidthVariance; + [ProtoMember(5)] internal TrailDef Trail; + [ProtoMember(6)] internal OffsetEffectDef OffsetEffect; + [ProtoMember(7)] internal bool DropParentVelocity; + + + [ProtoContract] + public struct OffsetEffectDef + { + [ProtoMember(1)] internal double MaxOffset; + [ProtoMember(2)] internal double MinLength; + [ProtoMember(3)] internal double MaxLength; + } + + [ProtoContract] + public struct TracerBaseDef + { + [ProtoMember(1)] internal bool Enable; + [ProtoMember(2)] internal float Length; + [ProtoMember(3)] internal float Width; + [ProtoMember(4)] internal Vector4 Color; + [ProtoMember(5)] internal uint VisualFadeStart; + [ProtoMember(6)] internal uint VisualFadeEnd; + [ProtoMember(7)] internal SegmentDef Segmentation; + [ProtoMember(8)] internal string[] Textures; + [ProtoMember(9)] internal Texture TextureMode; + [ProtoMember(10)] internal bool AlwaysDraw; + [ProtoMember(11)] internal FactionColor FactionColor; + + [ProtoContract] + public struct SegmentDef + { + [ProtoMember(1)] internal string Material; //retired + [ProtoMember(2)] internal double SegmentLength; + [ProtoMember(3)] internal double SegmentGap; + [ProtoMember(4)] internal double Speed; + [ProtoMember(5)] internal Vector4 Color; + [ProtoMember(6)] internal double WidthMultiplier; + [ProtoMember(7)] internal bool Reverse; + [ProtoMember(8)] internal bool UseLineVariance; + [ProtoMember(9)] internal Randomize ColorVariance; + [ProtoMember(10)] internal Randomize WidthVariance; + [ProtoMember(11)] internal string[] Textures; + [ProtoMember(12)] internal bool Enable; + [ProtoMember(13)] internal FactionColor FactionColor; + } + } + + [ProtoContract] + public struct TrailDef + { + [ProtoMember(1)] internal bool Enable; + [ProtoMember(2)] internal string Material; + [ProtoMember(3)] internal int DecayTime; + [ProtoMember(4)] internal Vector4 Color; + [ProtoMember(5)] internal bool Back; + [ProtoMember(6)] internal float CustomWidth; + [ProtoMember(7)] internal bool UseWidthVariance; + [ProtoMember(8)] internal bool UseColorFade; + [ProtoMember(9)] internal string[] Textures; + [ProtoMember(10)] internal Texture TextureMode; + [ProtoMember(11)] internal bool AlwaysDraw; + [ProtoMember(12)] internal FactionColor FactionColor; + } + } + + [ProtoContract] + public struct DecalDef + { + + [ProtoMember(1)] internal int MaxAge; + [ProtoMember(2)] internal TextureMapDef[] Map; + + [ProtoContract] + public struct TextureMapDef + { + [ProtoMember(1)] internal string HitMaterial; + [ProtoMember(2)] internal string DecalMaterial; + } + } + } + + [ProtoContract] + public struct BeamDef + { + [ProtoMember(1)] internal bool Enable; + [ProtoMember(2)] internal bool ConvergeBeams; + [ProtoMember(3)] internal bool VirtualBeams; + [ProtoMember(4)] internal bool RotateRealBeam; + [ProtoMember(5)] internal bool OneParticle; + [ProtoMember(6)] internal int FakeVoxelHitTicks; + } + + [ProtoContract] + public struct FragmentDef + { + [ProtoMember(1)] internal string AmmoRound; + [ProtoMember(2)] internal int Fragments; + [ProtoMember(3)] internal float Radial; + [ProtoMember(4)] internal float BackwardDegrees; + [ProtoMember(5)] internal float Degrees; + [ProtoMember(6)] internal bool Reverse; + [ProtoMember(7)] internal bool IgnoreArming; + [ProtoMember(8)] internal bool DropVelocity; + [ProtoMember(9)] internal float Offset; + [ProtoMember(10)] internal int MaxChildren; + [ProtoMember(11)] internal TimedSpawnDef TimedSpawns; + [ProtoMember(12)] internal bool FireSound; // not used, can remove + [ProtoMember(13)] internal Vector3D AdvOffset; + [ProtoMember(14)] internal bool ArmWhenHit; + + [ProtoContract] + public struct TimedSpawnDef + { + public enum PointTypes + { + Direct, + Lead, + Predict, + } + + [ProtoMember(1)] internal bool Enable; + [ProtoMember(2)] internal int Interval; + [ProtoMember(3)] internal int StartTime; + [ProtoMember(4)] internal int MaxSpawns; + [ProtoMember(5)] internal double Proximity; + [ProtoMember(6)] internal bool ParentDies; + [ProtoMember(7)] internal bool PointAtTarget; + [ProtoMember(8)] internal int GroupSize; + [ProtoMember(9)] internal int GroupDelay; + [ProtoMember(10)] internal PointTypes PointType; + [ProtoMember(11)] internal float DirectAimCone; + } + } + + [ProtoContract] + public struct PatternDef + { + public enum PatternModes + { + Never, + Weapon, + Fragment, + Both, + } + + [ProtoMember(1)] internal string[] Patterns; + [ProtoMember(2)] internal bool Enable; + [ProtoMember(3)] internal float TriggerChance; + [ProtoMember(4)] internal bool SkipParent; + [ProtoMember(5)] internal bool Random; + [ProtoMember(6)] internal int RandomMin; + [ProtoMember(7)] internal int RandomMax; + [ProtoMember(8)] internal int PatternSteps; + [ProtoMember(9)] internal PatternModes Mode; + } + + [ProtoContract] + public struct EjectionDef + { + public enum SpawnType + { + Item, + Particle, + } + [ProtoMember(1)] internal float Speed; + [ProtoMember(2)] internal float SpawnChance; + [ProtoMember(3)] internal SpawnType Type; + [ProtoMember(4)] internal ComponentDef CompDef; + + [ProtoContract] + public struct ComponentDef + { + [ProtoMember(1)] internal string ItemName; + [ProtoMember(2)] internal int ItemLifeTime; + [ProtoMember(3)] internal int Delay; + } + } + + [ProtoContract] + public struct AreaOfDamageDef + { + public enum Falloff + { + Legacy, + NoFalloff, + Linear, + Curve, + InvCurve, + Squeeze, + Pooled, + Exponential, + } + public enum AoeShape + { + Round, + Diamond, + } + + [ProtoMember(1)] internal ByBlockHitDef ByBlockHit; + [ProtoMember(2)] internal EndOfLifeDef EndOfLife; + + [ProtoContract] + public struct ByBlockHitDef + { + [ProtoMember(1)] internal bool Enable; + [ProtoMember(2)] internal double Radius; + [ProtoMember(3)] internal float Damage; + [ProtoMember(4)] internal float Depth; + [ProtoMember(5)] internal float MaxAbsorb; + [ProtoMember(6)] internal Falloff Falloff; + [ProtoMember(7)] internal AoeShape Shape; + } + + [ProtoContract] + public struct EndOfLifeDef + { + [ProtoMember(1)] internal bool Enable; + [ProtoMember(2)] internal double Radius; + [ProtoMember(3)] internal float Damage; + [ProtoMember(4)] internal float Depth; + [ProtoMember(5)] internal float MaxAbsorb; + [ProtoMember(6)] internal Falloff Falloff; + [ProtoMember(7)] internal bool ArmOnlyOnHit; + [ProtoMember(8)] internal int MinArmingTime; + [ProtoMember(9)] internal bool NoVisuals; + [ProtoMember(10)] internal bool NoSound; + [ProtoMember(11)] internal float ParticleScale; + [ProtoMember(12)] internal string CustomParticle; + [ProtoMember(13)] internal string CustomSound; + [ProtoMember(14)] internal AoeShape Shape; + } + } + + [ProtoContract] + public struct EwarDef + { + public enum EwarType + { + AntiSmart, + JumpNull, + EnergySink, + Anchor, + Emp, + Offense, + Nav, + Dot, + Push, + Pull, + Tractor, + } + + public enum EwarMode + { + Effect, + Field, + } + + [ProtoMember(1)] internal bool Enable; + [ProtoMember(2)] internal EwarType Type; + [ProtoMember(3)] internal EwarMode Mode; + [ProtoMember(4)] internal float Strength; + [ProtoMember(5)] internal double Radius; + [ProtoMember(6)] internal int Duration; + [ProtoMember(7)] internal bool StackDuration; + [ProtoMember(8)] internal bool Depletable; + [ProtoMember(9)] internal int MaxStacks; + [ProtoMember(10)] internal bool NoHitParticle; + [ProtoMember(11)] internal PushPullDef Force; + [ProtoMember(12)] internal FieldDef Field; + + + [ProtoContract] + public struct FieldDef + { + [ProtoMember(1)] internal int Interval; + [ProtoMember(2)] internal int PulseChance; + [ProtoMember(3)] internal int GrowTime; + [ProtoMember(4)] internal bool HideModel; + [ProtoMember(5)] internal bool ShowParticle; + [ProtoMember(6)] internal double TriggerRange; + [ProtoMember(7)] internal ParticleDef Particle; + } + + [ProtoContract] + public struct PushPullDef + { + public enum Force + { + ProjectileLastPosition, + ProjectileOrigin, + HitPosition, + TargetCenter, + TargetCenterOfMass, + } + + [ProtoMember(1)] internal Force ForceFrom; + [ProtoMember(2)] internal Force ForceTo; + [ProtoMember(3)] internal Force Position; + [ProtoMember(4)] internal bool DisableRelativeMass; + [ProtoMember(5)] internal double TractorRange; + [ProtoMember(6)] internal bool ShooterFeelsForce; + } + } + + + [ProtoContract] + public struct AreaDamageDef + { + public enum AreaEffectType + { + Disabled, + Explosive, + Radiant, + AntiSmart, + JumpNullField, + EnergySinkField, + AnchorField, + EmpField, + OffenseField, + NavField, + DotField, + PushField, + PullField, + TractorField, + } + + [ProtoMember(1)] internal double AreaEffectRadius; + [ProtoMember(2)] internal float AreaEffectDamage; + [ProtoMember(3)] internal AreaEffectType AreaEffect; + [ProtoMember(4)] internal PulseDef Pulse; + [ProtoMember(5)] internal DetonateDef Detonation; + [ProtoMember(6)] internal ExplosionDef Explosions; + [ProtoMember(7)] internal EwarFieldsDef EwarFields; + [ProtoMember(8)] internal AreaInfluence Base; + + [ProtoContract] + public struct AreaInfluence + { + [ProtoMember(1)] internal double Radius; + [ProtoMember(2)] internal float EffectStrength; + } + + + [ProtoContract] + public struct PulseDef + { + [ProtoMember(1)] internal int Interval; + [ProtoMember(2)] internal int PulseChance; + [ProtoMember(3)] internal int GrowTime; + [ProtoMember(4)] internal bool HideModel; + [ProtoMember(5)] internal bool ShowParticle; + [ProtoMember(6)] internal ParticleDef Particle; + } + + [ProtoContract] + public struct EwarFieldsDef + { + [ProtoMember(1)] internal int Duration; + [ProtoMember(2)] internal bool StackDuration; + [ProtoMember(3)] internal bool Depletable; + [ProtoMember(4)] internal double TriggerRange; + [ProtoMember(5)] internal int MaxStacks; + [ProtoMember(6)] internal PushPullDef Force; + [ProtoMember(7)] internal bool DisableParticleEffect; + + [ProtoContract] + public struct PushPullDef + { + public enum Force + { + ProjectileLastPosition, + ProjectileOrigin, + HitPosition, + TargetCenter, + TargetCenterOfMass, + } + + [ProtoMember(1)] internal Force ForceFrom; + [ProtoMember(2)] internal Force ForceTo; + [ProtoMember(3)] internal Force Position; + [ProtoMember(4)] internal bool DisableRelativeMass; + [ProtoMember(5)] internal double TractorRange; + [ProtoMember(6)] internal bool ShooterFeelsForce; + } + } + + [ProtoContract] + public struct DetonateDef + { + [ProtoMember(1)] internal bool DetonateOnEnd; + [ProtoMember(2)] internal bool ArmOnlyOnHit; + [ProtoMember(3)] internal float DetonationRadius; + [ProtoMember(4)] internal float DetonationDamage; + [ProtoMember(5)] internal int MinArmingTime; + } + + [ProtoContract] + public struct ExplosionDef + { + [ProtoMember(1)] internal bool NoVisuals; + [ProtoMember(2)] internal bool NoSound; + [ProtoMember(3)] internal float Scale; + [ProtoMember(4)] internal string CustomParticle; + [ProtoMember(5)] internal string CustomSound; + [ProtoMember(6)] internal bool NoShrapnel; + [ProtoMember(7)] internal bool NoDeformation; + } + } + + [ProtoContract] + public struct AmmoAudioDef + { + [ProtoMember(1)] internal string TravelSound; + [ProtoMember(2)] internal string HitSound; + [ProtoMember(3)] internal float HitPlayChance; + [ProtoMember(4)] internal bool HitPlayShield; + [ProtoMember(5)] internal string VoxelHitSound; + [ProtoMember(6)] internal string PlayerHitSound; + [ProtoMember(7)] internal string FloatingHitSound; + [ProtoMember(8)] internal string ShieldHitSound; + [ProtoMember(9)] internal string ShotSound; + } + + [ProtoContract] + public struct TrajectoryDef + { + internal enum GuidanceType + { + None, + Remote, + TravelTo, + Smart, + DetectTravelTo, + DetectSmart, + DetectFixed, + DroneAdvanced, + } + + [ProtoMember(1)] internal float MaxTrajectory; + [ProtoMember(2)] internal float AccelPerSec; + [ProtoMember(3)] internal float DesiredSpeed; + [ProtoMember(4)] internal float TargetLossDegree; + [ProtoMember(5)] internal int TargetLossTime; + [ProtoMember(6)] internal int MaxLifeTime; + [ProtoMember(7)] internal int DeaccelTime; + [ProtoMember(8)] internal Randomize SpeedVariance; + [ProtoMember(9)] internal Randomize RangeVariance; + [ProtoMember(10)] internal GuidanceType Guidance; + [ProtoMember(11)] internal SmartsDef Smarts; + [ProtoMember(12)] internal MinesDef Mines; + [ProtoMember(13)] internal float GravityMultiplier; + [ProtoMember(14)] internal uint MaxTrajectoryTime; + [ProtoMember(15)] internal ApproachDef[] Approaches; + [ProtoMember(16)] internal double TotalAcceleration; + [ProtoMember(17)] internal OnHitDef OnHit; + + [ProtoContract] + public struct SmartsDef + { + [ProtoMember(1)] internal double Inaccuracy; + [ProtoMember(2)] internal double Aggressiveness; + [ProtoMember(3)] internal double MaxLateralThrust; + [ProtoMember(4)] internal double TrackingDelay; + [ProtoMember(5)] internal int MaxChaseTime; + [ProtoMember(6)] internal bool OverideTarget; + [ProtoMember(7)] internal int MaxTargets; + [ProtoMember(8)] internal bool NoTargetExpire; + [ProtoMember(9)] internal bool Roam; + [ProtoMember(10)] internal bool KeepAliveAfterTargetLoss; + [ProtoMember(11)] internal float OffsetRatio; + [ProtoMember(12)] internal int OffsetTime; + [ProtoMember(13)] internal bool CheckFutureIntersection; + [ProtoMember(14)] internal double NavAcceleration; + [ProtoMember(15)] internal bool AccelClearance; + [ProtoMember(16)] internal double SteeringLimit; + [ProtoMember(17)] internal bool FocusOnly; + [ProtoMember(18)] internal double OffsetMinRange; + [ProtoMember(19)] internal bool FocusEviction; + [ProtoMember(20)] internal double ScanRange; + [ProtoMember(21)] internal bool NoSteering; + [ProtoMember(22)] internal double FutureIntersectionRange; + [ProtoMember(23)] internal double MinTurnSpeed; + [ProtoMember(24)] internal bool NoTargetApproach; + [ProtoMember(25)] internal bool AltNavigation; + } + + [ProtoContract] + public struct ApproachDef + { + public enum ReInitCondition + { + Wait, + MoveToPrevious, + MoveToNext, + ForceRestart, + } + + public enum Conditions + { + Ignore, + Spawn, + DistanceFromPositionC, + Lifetime, + DesiredElevation, + MinTravelRequired, + MaxTravelRequired, + Deadtime, + DistanceToPositionC, + NextTimedSpawn, + RelativeLifetime, + RelativeDeadtime, + SinceTimedSpawn, + RelativeSpawns, + EnemyTargetLoss, + RelativeHealthLost, + HealthRemaining, + DistanceFromPositionB, + DistanceToPositionB, + DistanceFromTarget, + DistanceToTarget, + DistanceFromEndTrajectory, + DistanceToEndTrajectory, + } + + public enum UpRelativeTo + { + UpRelativeToBlock, + UpRelativeToGravity, + UpTargetDirection, + UpTargetVelocity, + UpStoredStartDontUse, + UpStoredEndDontUse, + UpStoredStartPosition, + UpStoredEndPosition, + UpStoredStartLocalPosition, + UpStoredEndLocalPosition, + UpRelativeToShooter, + UpOriginDirection, + UpElevationDirection, + } + + public enum FwdRelativeTo + { + ForwardElevationDirection, + ForwardRelativeToBlock, + ForwardRelativeToGravity, + ForwardTargetDirection, + ForwardTargetVelocity, + ForwardStoredStartDontUse, + ForwardStoredEndDontUse, + ForwardStoredStartPosition, + ForwardStoredEndPosition, + ForwardStoredStartLocalPosition, + ForwardStoredEndLocalPosition, + ForwardRelativeToShooter, + ForwardOriginDirection, + } + + public enum RelativeTo + { + Origin, + Shooter, + Target, + Surface, + MidPoint, + PositionA, + Nothing, + StoredStartDontUse, + StoredEndDontUse, + StoredStartPosition, + StoredEndPosition, + StoredStartLocalPosition, + StoredEndLocalPosition, + } + + public enum ConditionOperators + { + StartEnd_And, + StartEnd_Or, + StartAnd_EndOr, + StartOr_EndAnd, + } + + public enum StageEvents + { + DoNothing, + EndProjectile, + EndProjectileOnRestart, + StoreDontUse, + StorePositionDontUse, + Refund, + StorePositionA, + StorePositionB, + StorePositionC, + } + + [ProtoContract] + public struct WeightedIdListDef + { + + [ProtoMember(1)] public int ApproachId; + [ProtoMember(2)] public Randomize Weight; + [ProtoMember(3)] public double End1WeightMod; + [ProtoMember(4)] public double End2WeightMod; + [ProtoMember(5)] public int MaxRuns; + [ProtoMember(6)] public double End3WeightMod; + } + + [ProtoMember(1)] internal ReInitCondition RestartCondition; + [ProtoMember(2)] internal Conditions StartCondition1; + [ProtoMember(3)] internal Conditions EndCondition1; + [ProtoMember(4)] internal UpRelativeTo Up; + [ProtoMember(5)] internal RelativeTo PositionB; + [ProtoMember(6)] internal double AngleOffset; + [ProtoMember(7)] internal double Start1Value; + [ProtoMember(8)] internal double End1Value; + [ProtoMember(9)] internal double LeadDistance; + [ProtoMember(10)] internal double DesiredElevation; + [ProtoMember(11)] internal double AccelMulti; + [ProtoMember(12)] internal double SpeedCapMulti; + [ProtoMember(13)] internal bool AdjustPositionC; + [ProtoMember(14)] internal bool CanExpireOnceStarted; + [ProtoMember(15)] internal ParticleDef AlternateParticle; + [ProtoMember(16)] internal string AlternateSound; + [ProtoMember(17)] internal string AlternateModel; + [ProtoMember(18)] internal int OnRestartRevertTo; + [ProtoMember(19)] internal ParticleDef StartParticle; + [ProtoMember(20)] internal bool AdjustPositionB; + [ProtoMember(21)] internal bool AdjustUp; + [ProtoMember(22)] internal bool PushLeadByTravelDistance; + [ProtoMember(23)] internal double TrackingDistance; + [ProtoMember(24)] internal Conditions StartCondition2; + [ProtoMember(25)] internal double Start2Value; + [ProtoMember(26)] internal Conditions EndCondition2; + [ProtoMember(27)] internal double End2Value; + [ProtoMember(28)] internal RelativeTo Elevation; + [ProtoMember(29)] internal double ElevationTolerance; + [ProtoMember(30)] internal ConditionOperators Operators; + [ProtoMember(31)] internal StageEvents StartEvent; + [ProtoMember(32)] internal StageEvents EndEvent; + [ProtoMember(33)] internal double TotalAccelMulti; + [ProtoMember(34)] internal double DeAccelMulti; + [ProtoMember(35)] internal bool Orbit; + [ProtoMember(36)] internal double OrbitRadius; + [ProtoMember(37)] internal int OffsetTime; + [ProtoMember(38)] internal double OffsetMinRadius; + [ProtoMember(39)] internal bool NoTimedSpawns; + [ProtoMember(40)] internal double OffsetMaxRadius; + [ProtoMember(41)] internal bool ForceRestart; + [ProtoMember(42)] internal RelativeTo PositionC; + [ProtoMember(43)] internal bool DisableAvoidance; + [ProtoMember(44)] internal int StoredStartId; + [ProtoMember(45)] internal int StoredEndId; + [ProtoMember(46)] internal WeightedIdListDef[] RestartList; + [ProtoMember(47)] internal RelativeTo StoredStartType; + [ProtoMember(48)] internal RelativeTo StoredEndType; + [ProtoMember(49)] internal bool LeadRotateElevatePositionB; + [ProtoMember(50)] internal bool LeadRotateElevatePositionC; + [ProtoMember(51)] internal bool NoElevationLead; + [ProtoMember(52)] internal bool IgnoreAntiSmart; + [ProtoMember(53)] internal double HeatRefund; + [ProtoMember(54)] internal Randomize AngleVariance; + [ProtoMember(55)] internal bool ReloadRefund; + [ProtoMember(56)] internal int ModelRotateTime; + [ProtoMember(57)] internal FwdRelativeTo Forward; + [ProtoMember(58)] internal bool AdjustForward; + [ProtoMember(59)] internal bool ToggleIngoreVoxels; + [ProtoMember(60)] internal bool SelfAvoidance; + [ProtoMember(61)] internal bool TargetAvoidance; + [ProtoMember(62)] internal bool SelfPhasing; + [ProtoMember(63)] internal bool TrajectoryRelativeToB; + [ProtoMember(64)] internal Conditions EndCondition3; + [ProtoMember(65)] internal double End3Value; + [ProtoMember(66)] internal bool SwapNavigationType; + [ProtoMember(67)] internal bool ElevationRelativeToC; + } + + [ProtoContract] + public struct MinesDef + { + [ProtoMember(1)] internal double DetectRadius; + [ProtoMember(2)] internal double DeCloakRadius; + [ProtoMember(3)] internal int FieldTime; + [ProtoMember(4)] internal bool Cloak; + [ProtoMember(5)] internal bool Persist; + } + + [ProtoContract] + public struct OnHitDef + { + /* + [ProtoMember(1)] internal int Duration; + [ProtoMember(2)] internal int ProcInterval; + [ProtoMember(3)] internal double ProcAmount; + [ProtoMember(4)] internal bool ProcOnVoxels; + [ProtoMember(5)] internal bool FragOnProc; + [ProtoMember(6)] internal bool DieOnEnd; + [ProtoMember(7)] internal bool StickOnHit; + [ProtoMember(8)] internal bool AlignFragtoImpactAngle; + */ + } + } + + [ProtoContract] + public struct Randomize + { + [ProtoMember(1)] internal float Start; + [ProtoMember(2)] internal float End; + } + } + + [ProtoContract] + public struct ParticleOptionDef + { + [ProtoMember(1)] internal float Scale; + [ProtoMember(2)] internal float MaxDistance; + [ProtoMember(3)] internal float MaxDuration; + [ProtoMember(4)] internal bool Loop; + [ProtoMember(5)] internal bool Restart; + [ProtoMember(6)] internal float HitPlayChance; + } + + + [ProtoContract] + public struct ParticleDef + { + [ProtoMember(1)] internal string Name; + [ProtoMember(2)] internal Vector4 Color; + [ProtoMember(3)] internal Vector3D Offset; + [ProtoMember(4)] internal ParticleOptionDef Extras; + [ProtoMember(5)] internal bool ApplyToShield; + [ProtoMember(6)] internal bool DisableCameraCulling; + } + } + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/Onedeeper/capacitorlimited.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/Onedeeper/capacitorlimited.cs index cd8f515b9..3499ab323 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/Onedeeper/capacitorlimited.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/Onedeeper/capacitorlimited.cs @@ -1,92 +1,92 @@ -using Sandbox.Common.ObjectBuilders; -using Sandbox.Game; -using Sandbox.Game.Entities; -using Sandbox.Game.Entities.Blocks; -using Sandbox.ModAPI; -using Sandbox.ModAPI.Ingame; -using System; -using VRage.Game.Components; -using VRage.Game.ModAPI; -using VRage.ModAPI; -using VRage.ObjectBuilders; -using VRageMath; - -namespace capacitorlimited -{ - [MyEntityComponentDescriptor(typeof(MyObjectBuilder_BatteryBlock), false, "CapacitorLarge")] - public class capacitorlimited : MyGameLogicComponent - { - private Sandbox.ModAPI.IMyBatteryBlock Capacitor; - private int triggerTick = 0; - private const double OFFSET_DISTANCE = 3; - private const int COUNTDOWN_SECONDS = 30 * 60; // 5 seconds in game time - - public override void Init(MyObjectBuilder_EntityBase objectBuilder) - { - if (!MyAPIGateway.Session.IsServer) return; // Only do explosions serverside - Capacitor = Entity as Sandbox.ModAPI.IMyBatteryBlock; - NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME; - } - - public override void UpdateOnceBeforeFrame() - { - if (Capacitor == null || Capacitor.CubeGrid.Physics == null) return; - Capacitor.ChargeMode = ChargeMode.Recharge; // Set to recharge mode by default - Capacitor.IsWorkingChanged += CapacitorIsWorkingChanged; - NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME; - } - - public override void UpdateAfterSimulation() - { - if (Capacitor == null || Capacitor.CubeGrid.Physics == null) return; - if (Capacitor.ChargeMode != ChargeMode.Recharge) - { - triggerTick += 1; - if (triggerTick >= COUNTDOWN_SECONDS) - { - DoExplosion(); - } - else if (triggerTick % 60 == 0) // Show notification every second - { - int remainingSeconds = COUNTDOWN_SECONDS - triggerTick; - int seconds = remainingSeconds / 60; - string name = Capacitor.CustomName; - string message = string.Format("Capacitor ({0}) explodes in {1} seconds", name, seconds); - - MyVisualScriptLogicProvider.ShowNotificationLocal(message, 1000, "Red"); - } - } - else - { - triggerTick = 0; // Reset countdown if in recharge mode - } - } - - private void DoExplosion() - { - if (Capacitor == null || Capacitor.CubeGrid.Physics == null) return; - double radius = 30; - BoundingSphereD sphere = new BoundingSphereD(Capacitor.WorldMatrix.Translation + (Capacitor.WorldMatrix.Forward * OFFSET_DISTANCE), radius); // Apply offset, 10); - MyExplosionInfo explosion = new MyExplosionInfo(0f, 10000f, sphere, MyExplosionTypeEnum.CUSTOM, true); - - MyExplosions.AddExplosion(ref explosion); - } - - private void CapacitorIsWorkingChanged(IMyCubeBlock obj) - { - if (obj.EntityId != Capacitor.EntityId) return; - if (Capacitor.ChargeMode != ChargeMode.Recharge && Capacitor.Enabled) - { - triggerTick += 1; - } - } - - public override void Close() - { - if (Capacitor != null) - { - Capacitor.IsWorkingChanged -= CapacitorIsWorkingChanged; - } - } - } -} +using Sandbox.Common.ObjectBuilders; +using Sandbox.Game; +using Sandbox.Game.Entities; +using Sandbox.Game.Entities.Blocks; +using Sandbox.ModAPI; +using Sandbox.ModAPI.Ingame; +using System; +using VRage.Game.Components; +using VRage.Game.ModAPI; +using VRage.ModAPI; +using VRage.ObjectBuilders; +using VRageMath; + +namespace capacitorlimited +{ + [MyEntityComponentDescriptor(typeof(MyObjectBuilder_BatteryBlock), false, "CapacitorLarge")] + public class capacitorlimited : MyGameLogicComponent + { + private Sandbox.ModAPI.IMyBatteryBlock Capacitor; + private int triggerTick = 0; + private const double OFFSET_DISTANCE = 3; + private const int COUNTDOWN_SECONDS = 30 * 60; // 5 seconds in game time + + public override void Init(MyObjectBuilder_EntityBase objectBuilder) + { + if (!MyAPIGateway.Session.IsServer) return; // Only do explosions serverside + Capacitor = Entity as Sandbox.ModAPI.IMyBatteryBlock; + NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME; + } + + public override void UpdateOnceBeforeFrame() + { + if (Capacitor == null || Capacitor.CubeGrid.Physics == null) return; + Capacitor.ChargeMode = ChargeMode.Recharge; // Set to recharge mode by default + Capacitor.IsWorkingChanged += CapacitorIsWorkingChanged; + NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME; + } + + public override void UpdateAfterSimulation() + { + if (Capacitor == null || Capacitor.CubeGrid.Physics == null) return; + if (Capacitor.ChargeMode != ChargeMode.Recharge) + { + triggerTick += 1; + if (triggerTick >= COUNTDOWN_SECONDS) + { + DoExplosion(); + } + else if (triggerTick % 60 == 0) // Show notification every second + { + int remainingSeconds = COUNTDOWN_SECONDS - triggerTick; + int seconds = remainingSeconds / 60; + string name = Capacitor.CustomName; + string message = string.Format("Capacitor ({0}) explodes in {1} seconds", name, seconds); + + MyVisualScriptLogicProvider.ShowNotificationLocal(message, 1000, "Red"); + } + } + else + { + triggerTick = 0; // Reset countdown if in recharge mode + } + } + + private void DoExplosion() + { + if (Capacitor == null || Capacitor.CubeGrid.Physics == null) return; + double radius = 30; + BoundingSphereD sphere = new BoundingSphereD(Capacitor.WorldMatrix.Translation + (Capacitor.WorldMatrix.Forward * OFFSET_DISTANCE), radius); // Apply offset, 10); + MyExplosionInfo explosion = new MyExplosionInfo(0f, 10000f, sphere, MyExplosionTypeEnum.CUSTOM, true); + + MyExplosions.AddExplosion(ref explosion); + } + + private void CapacitorIsWorkingChanged(IMyCubeBlock obj) + { + if (obj.EntityId != Capacitor.EntityId) return; + if (Capacitor.ChargeMode != ChargeMode.Recharge && Capacitor.Enabled) + { + triggerTick += 1; + } + } + + public override void Close() + { + if (Capacitor != null) + { + Capacitor.IsWorkingChanged -= CapacitorIsWorkingChanged; + } + } + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/selfrepair/selfrepair.cs b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/selfrepair/selfrepair.cs index 363ee0799..4de6b91a5 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/selfrepair/selfrepair.cs +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Scripts/selfrepair/selfrepair.cs @@ -1,101 +1,101 @@ -using Sandbox.Common.ObjectBuilders; -using Sandbox.Game; -using Sandbox.Game.Entities; -using Sandbox.Game.EntityComponents; -using Sandbox.ModAPI; -using VRage.Game; -using VRage.Game.Components; -using VRage.Game.ModAPI; -using VRage.Game.ModAPI.Ingame; -using VRage.ModAPI; -using VRage.ObjectBuilders; -using VRageMath; -using IMySlimBlock = VRage.Game.ModAPI.IMySlimBlock; - -namespace TIOSelfRepair -{ - [MyEntityComponentDescriptor(typeof(MyObjectBuilder_ConveyorSorter), false, "ACTIVE_BLASTPLATE", "GIGA_BLASTPLATE" )] - public class TIOSelfRepair : MyGameLogicComponent - { - private IMyConveyorSorter artilleryBlock; //gosh i hope this doesnt conflict with the script in TIO - private int triggerTick = 0; - private const int COUNTDOWN_TICKS = 10 * 60; // (60 ticks per second) - - public override void Init(MyObjectBuilder_EntityBase objectBuilder) - { - if (!MyAPIGateway.Session.IsServer) return; - artilleryBlock = Entity as IMyConveyorSorter; - NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME; - } - - public override void UpdateOnceBeforeFrame() - { - if (artilleryBlock == null || artilleryBlock.CubeGrid.Physics == null) return; - artilleryBlock.EnabledChanged += ArtilleryBlockEnabledChanged; - NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME; - } - - public override void UpdateAfterSimulation() - { - if (artilleryBlock == null || artilleryBlock.CubeGrid.Physics == null) return; - - if (!artilleryBlock.IsFunctional) - { - triggerTick += 1; - if (triggerTick >= COUNTDOWN_TICKS) - { - DoRepair(); - MyVisualScriptLogicProvider.CreateParticleEffectAtPosition("RepairParticle", artilleryBlock.GetPosition()); - MyVisualScriptLogicProvider.PlaySingleSoundAtPosition("RepairSound", artilleryBlock.GetPosition()); - triggerTick = 0; // Restart the timer after repair - } - } - else - { - triggerTick = 0; // Reset countdown if the block is functional - } - } - - private void DoRepair() - { - if (artilleryBlock == null || artilleryBlock.CubeGrid.Physics == null) return; - - IMySlimBlock slimBlock = artilleryBlock.SlimBlock; - if (slimBlock == null) return; - - // Fetch the original owner ID of the grid. - long gridOwnerId = artilleryBlock.CubeGrid.BigOwners.Count > 0 ? artilleryBlock.CubeGrid.BigOwners[0] : 0; - - // If the grid has an owner, proceed with repair and ownership change. - - float repairAmount = 14; //about 1% per triggertick, tested in game. - slimBlock.IncreaseMountLevel(repairAmount, 0L, null, 0f, false, MyOwnershipShareModeEnum.Faction); - - // Try casting to MyCubeBlock and change the owner. - MyCubeBlock cubeBlock = artilleryBlock as MyCubeBlock; - if (cubeBlock != null) - { - cubeBlock.ChangeBlockOwnerRequest(gridOwnerId, MyOwnershipShareModeEnum.Faction); - } - - } - - - private void ArtilleryBlockEnabledChanged(IMyTerminalBlock obj) - { - if (obj.EntityId != artilleryBlock.EntityId) return; - if (artilleryBlock.IsFunctional) - { - triggerTick = 0; // Reset countdown if functional - } - } - - public override void Close() - { - if (artilleryBlock != null) - { - artilleryBlock.EnabledChanged -= ArtilleryBlockEnabledChanged; - } - } - } -} +using Sandbox.Common.ObjectBuilders; +using Sandbox.Game; +using Sandbox.Game.Entities; +using Sandbox.Game.EntityComponents; +using Sandbox.ModAPI; +using VRage.Game; +using VRage.Game.Components; +using VRage.Game.ModAPI; +using VRage.Game.ModAPI.Ingame; +using VRage.ModAPI; +using VRage.ObjectBuilders; +using VRageMath; +using IMySlimBlock = VRage.Game.ModAPI.IMySlimBlock; + +namespace TIOSelfRepair +{ + [MyEntityComponentDescriptor(typeof(MyObjectBuilder_ConveyorSorter), false, "ACTIVE_BLASTPLATE", "Nariman_Dart_Turret", "GIGA_BLASTPLATE" )] + public class TIOSelfRepair : MyGameLogicComponent + { + private IMyConveyorSorter artilleryBlock; //gosh i hope this doesnt conflict with the script in TIO + private int triggerTick = 0; + private const int COUNTDOWN_TICKS = 10 * 60; // (60 ticks per second) + + public override void Init(MyObjectBuilder_EntityBase objectBuilder) + { + if (!MyAPIGateway.Session.IsServer) return; + artilleryBlock = Entity as IMyConveyorSorter; + NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME; + } + + public override void UpdateOnceBeforeFrame() + { + if (artilleryBlock == null || artilleryBlock.CubeGrid.Physics == null) return; + artilleryBlock.EnabledChanged += ArtilleryBlockEnabledChanged; + NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME; + } + + public override void UpdateAfterSimulation() + { + if (artilleryBlock == null || artilleryBlock.CubeGrid.Physics == null) return; + + if (!artilleryBlock.IsFunctional) + { + triggerTick += 1; + if (triggerTick >= COUNTDOWN_TICKS) + { + DoRepair(); + MyVisualScriptLogicProvider.CreateParticleEffectAtPosition("RepairParticle", artilleryBlock.GetPosition()); + MyVisualScriptLogicProvider.PlaySingleSoundAtPosition("RepairSound", artilleryBlock.GetPosition()); + triggerTick = 0; // Restart the timer after repair + } + } + else + { + triggerTick = 0; // Reset countdown if the block is functional + } + } + + private void DoRepair() + { + if (artilleryBlock == null || artilleryBlock.CubeGrid.Physics == null) return; + + IMySlimBlock slimBlock = artilleryBlock.SlimBlock; + if (slimBlock == null) return; + + // Fetch the original owner ID of the grid. + long gridOwnerId = artilleryBlock.CubeGrid.BigOwners.Count > 0 ? artilleryBlock.CubeGrid.BigOwners[0] : 0; + + // If the grid has an owner, proceed with repair and ownership change. + + float repairAmount = 14; //about 1% per triggertick, tested in game. + slimBlock.IncreaseMountLevel(repairAmount, 0L, null, 0f, false, MyOwnershipShareModeEnum.Faction); + + // Try casting to MyCubeBlock and change the owner. + MyCubeBlock cubeBlock = artilleryBlock as MyCubeBlock; + if (cubeBlock != null) + { + cubeBlock.ChangeBlockOwnerRequest(gridOwnerId, MyOwnershipShareModeEnum.Faction); + } + + } + + + private void ArtilleryBlockEnabledChanged(IMyTerminalBlock obj) + { + if (obj.EntityId != artilleryBlock.EntityId) return; + if (artilleryBlock.IsFunctional) + { + triggerTick = 0; // Reset countdown if functional + } + } + + public override void Close() + { + if (artilleryBlock != null) + { + artilleryBlock.EnabledChanged -= ArtilleryBlockEnabledChanged; + } + } + } +} diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SolHyp_FAC_MuzzleFlash.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SolHyp_FAC_MuzzleFlash.sbc index f35ff9697..596214acb 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SolHyp_FAC_MuzzleFlash.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/SolHyp_FAC_MuzzleFlash.sbc @@ -1,1859 +1,1859 @@ - - - - - - 63758 - 4 - 0 - false - false - 4 - 0 - 0 - - - GPU - - - - 32 - 16 - 0 - - - - 480 - - - 16 - - - - - - - - - - - 2 - 5.1 - 5 - 1 - - - - - - - 3 - 5.1 - 5 - 1 - - - - - - - 4 - 5.1 - 5 - 0.2 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 50 - - - - - 20 - - - - - 1 - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 1 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - -500 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0.8 - - - - - 0.8 - - - - - 0 - - - - - - - - - 0.3 - - - 15 - - - 1 - - - 0.02 - - - true - - - - - - Atlas_D_01 - - - 15 - - - false - - - false - - - false - - - false - - - 1 - - - 0 - - - - 0 - 0 - -7 - - - - 0 - - - 0.306 - - - false - - - 0 - - - 0 - - - false - - - 1 - - - - 90 - 0 - 90 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 2 - - - - - 2 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 5 - - - - - 200 - - - - - 100 - - - - - 50 - - - - - - - - - 0.5 - - - false - - - true - - - 20 - - - 5 - - - 1 - - - 0 - - - 0.001 - - - false - - - 0 - - - - - GPU - - - - 16 - 16 - 0 - - - - 64 - - - 72 - - - - - - - - - - - 1 - 0.933333337 - 0.7921569 - 1 - - - - - - - 0.235294119 - 0.235294119 - 0.235294119 - 1 - - - - - - - 0.008526365 - 0.008526365 - 0.008526365 - 0.07843138 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 1 - - - - - 0.2 - - - - - 0.05 - - - - - 0 - - - - - - - - - 0.5 - - - - - - - 0.02 - 0.02 - 0.02 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 30 - - - - - - - - - 5 - - - - - - - - - 0 - - - - - - - - - 15 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - - - -300 - - - - - -35 - - - - - -9 - - - - - 0 - - - - - - - - - 1.6 - - - - - - - - - - 0.25 - - - - - 3 - - - - - 8 - - - - - 0.7 - - - - - - - - - 2 - - - 2 - - - 4 - - - 0.2 - - - true - - - - - - Atlas_D_01 - - - 0.3 - - - false - - - false - - - true - - - false - - - 1 - - - -0.04 - - - - 0 - 0 - 0 - - - - 1 - - - 0 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 8 - - - - - - 0 - - - - - - - - - - 3 - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - - - - - 1 - - - false - - - false - - - 10 - - - 1 - - - 1 - - - 0 - - - 0 - - - false - - - 0 - - - - - GPU - - - - 16 - 16 - 0 - - - - 128 - - - 96 - - - - - - - - - - - 1 - 0.5764706 - 0.215686277 - 0.156862751 - - - - - - - 0.215686277 - 0.215686277 - 0.215686277 - 0.5882353 - - - - - - - 0.008526365 - 0.008526365 - 0.008526365 - 0.07843138 - - - - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - 0.5 - - - - - 0.02 - - - - - 0.02 - - - - - 0.02 - - - - - - - - - 0.5 - - - - - - - 0.012 - 0.012 - 0.012 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 2 - - - - - - - - - 3 - - - - - - - - - 0 - - - - - - - - - 50 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 2 - - - - - - - - - - 4 - - - - - 9 - - - - - 25 - - - - - 6 - - - - - - - - - 1 - - - 2 - - - 4 - - - 0.02 - - - true - - - - - - Atlas_E_01 - - - 0.1 - - - false - - - false - - - true - - - false - - - 1 - - - -0.04 - - - - 0 - 0 - -4 - - - - 0 - - - 0 - - - true - - - 0.95 - - - 0.5 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 2 - - - - - - 0 - - - - - - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 1 - - - false - - - false - - - 25 - - - 0 - - - 1 - - - 0 - - - 0 - - - false - - - 0 - - - - - GPU - - - - 4 - 4 - 0 - - - - 6 - - - 1 - - - - - - - - - - - 0 - 0 - 0.1 - 0.5 - - - - - - - 0 - 0.5 - 0.8 - 0.4 - - - - - - - 0.5 - 0.6 - 0.8 - 0.7 - - - - - - - 0.5 - 0.5 - 0.5 - 0.4 - - - - - - - - - - - - - - - - - 1 - - - - - 0.1 - - - - - 0.3 - - - - - 0.13 - - - - - - - - - 10.5 - - - - - - - 0 - 0 - 5 - - - - - - - - - - 0 - - - - - - - 0 - 0 - -1 - - - - - - - 1 - - - - - - - - - 0 - - - - - - - - - 10 - - - - - - - - - 30 - - - - - - - 0 - 0 - 0 - - - - - - - - - - - 0 - - - - - 0 - - - - - 11 - - - - - 0 - - - - - - - - - 0.85 - - - - - - - - - - 0 - - - - - 0 - - - - - 2 - - - - - 22 - - - - - - - - - 0.3 - - - 0 - - - 4 - - - 0.01 - - - true - - - - - - Atlas_E_01 - - - 0.51 - - - false - - - false - - - false - - - false - - - 2 - - - 0 - - - - 0 - 0 - -1 - - - - 0 - - - 0.089 - - - true - - - 0 - - - 0 - - - false - - - 0 - - - - 0 - 0 - 0 - - - - - 0 - 0 - 0 - - - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - - - - 1 - - - - - - 0 - - - - - - - - - - 1000 - - - - - 100 - - - - - 0.1 - - - - - 0 - - - - - - - - - 1 - - - false - - - false - - - 1 - - - 0.5 - - - 1 - - - 0 - - - 0 - - - false - - - 0 - - - - - - - - - - - - - 0 - 0 - -2 - - - - - - - 0 - 0 - -13 - - - - - - - - - - - - - - 1 - 0.7742273 - 0.3736151 - 1 - - - - - - - - - - - - - 100 - - - - - - - - - - - - 200 - - - - - 0 - - - - - - - - - 50 - - - - - 0 - - - - - - true - - - 0 - - - 0.1 - - - 0.005 - - - - - 3000 - 1 - - + + + + + + 63758 + 4 + 0 + false + false + 4 + 0 + 0 + + + GPU + + + + 32 + 16 + 0 + + + + 480 + + + 16 + + + + + + + + + + + 2 + 5.1 + 5 + 1 + + + + + + + 3 + 5.1 + 5 + 1 + + + + + + + 4 + 5.1 + 5 + 0.2 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 50 + + + + + 20 + + + + + 1 + + + + + 0 + + + + + + + + + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 0 + + + + + + + + + 1 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + -500 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 0 + + + + + + + + + + 0 + + + + + 0.8 + + + + + 0.8 + + + + + 0 + + + + + + + + + 0.3 + + + 15 + + + 1 + + + 0.02 + + + true + + + + + + Atlas_D_01 + + + 15 + + + false + + + false + + + false + + + false + + + 1 + + + 0 + + + + 0 + 0 + -7 + + + + 0 + + + 0.306 + + + false + + + 0 + + + 0 + + + false + + + 1 + + + + 90 + 0 + 90 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 2 + + + + + 2 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 5 + + + + + 200 + + + + + 100 + + + + + 50 + + + + + + + + + 0.5 + + + false + + + true + + + 20 + + + 5 + + + 1 + + + 0 + + + 0.001 + + + false + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 64 + + + 72 + + + + + + + + + + + 1 + 0.933333337 + 0.7921569 + 1 + + + + + + + 0.235294119 + 0.235294119 + 0.235294119 + 1 + + + + + + + 0.008526365 + 0.008526365 + 0.008526365 + 0.07843138 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 1 + + + + + 0.2 + + + + + 0.05 + + + + + 0 + + + + + + + + + 0.5 + + + + + + + 0.02 + 0.02 + 0.02 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 30 + + + + + + + + + 5 + + + + + + + + + 0 + + + + + + + + + 15 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + + + + -300 + + + + + -35 + + + + + -9 + + + + + 0 + + + + + + + + + 1.6 + + + + + + + + + + 0.25 + + + + + 3 + + + + + 8 + + + + + 0.7 + + + + + + + + + 2 + + + 2 + + + 4 + + + 0.2 + + + true + + + + + + Atlas_D_01 + + + 0.3 + + + false + + + false + + + true + + + false + + + 1 + + + -0.04 + + + + 0 + 0 + 0 + + + + 1 + + + 0 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 8 + + + + + + 0 + + + + + + + + + + 3 + + + + + 0.5 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 10 + + + 1 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + GPU + + + + 16 + 16 + 0 + + + + 128 + + + 96 + + + + + + + + + + + 1 + 0.5764706 + 0.215686277 + 0.156862751 + + + + + + + 0.215686277 + 0.215686277 + 0.215686277 + 0.5882353 + + + + + + + 0.008526365 + 0.008526365 + 0.008526365 + 0.07843138 + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + 0.5 + + + + + 0.02 + + + + + 0.02 + + + + + 0.02 + + + + + + + + + 0.5 + + + + + + + 0.012 + 0.012 + 0.012 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 2 + + + + + + + + + 3 + + + + + + + + + 0 + + + + + + + + + 50 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 2 + + + + + + + + + + 4 + + + + + 9 + + + + + 25 + + + + + 6 + + + + + + + + + 1 + + + 2 + + + 4 + + + 0.02 + + + true + + + + + + Atlas_E_01 + + + 0.1 + + + false + + + false + + + true + + + false + + + 1 + + + -0.04 + + + + 0 + 0 + -4 + + + + 0 + + + 0 + + + true + + + 0.95 + + + 0.5 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 2 + + + + + + 0 + + + + + + + + + + 0.5 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 25 + + + 0 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + GPU + + + + 4 + 4 + 0 + + + + 6 + + + 1 + + + + + + + + + + + 0 + 0 + 0.1 + 0.5 + + + + + + + 0 + 0.5 + 0.8 + 0.4 + + + + + + + 0.5 + 0.6 + 0.8 + 0.7 + + + + + + + 0.5 + 0.5 + 0.5 + 0.4 + + + + + + + + + + + + + + + + + 1 + + + + + 0.1 + + + + + 0.3 + + + + + 0.13 + + + + + + + + + 10.5 + + + + + + + 0 + 0 + 5 + + + + + + + + + + 0 + + + + + + + 0 + 0 + -1 + + + + + + + 1 + + + + + + + + + 0 + + + + + + + + + 10 + + + + + + + + + 30 + + + + + + + 0 + 0 + 0 + + + + + + + + + + + 0 + + + + + 0 + + + + + 11 + + + + + 0 + + + + + + + + + 0.85 + + + + + + + + + + 0 + + + + + 0 + + + + + 2 + + + + + 22 + + + + + + + + + 0.3 + + + 0 + + + 4 + + + 0.01 + + + true + + + + + + Atlas_E_01 + + + 0.51 + + + false + + + false + + + false + + + false + + + 2 + + + 0 + + + + 0 + 0 + -1 + + + + 0 + + + 0.089 + + + true + + + 0 + + + 0 + + + false + + + 0 + + + + 0 + 0 + 0 + + + + + 0 + 0 + 0 + + + + + + + + + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + + + + + + 1 + + + + + + 0 + + + + + + + + + + 1000 + + + + + 100 + + + + + 0.1 + + + + + 0 + + + + + + + + + 1 + + + false + + + false + + + 1 + + + 0.5 + + + 1 + + + 0 + + + 0 + + + false + + + 0 + + + + + + + + + + + + + 0 + 0 + -2 + + + + + + + 0 + 0 + -13 + + + + + + + + + + + + + + 1 + 0.7742273 + 0.3736151 + 1 + + + + + + + + + + + + + 100 + + + + + + + + + + + + 200 + + + + + 0 + + + + + + + + + 50 + + + + + 0 + + + + + + true + + + 0 + + + 0.1 + + + 0.005 + + + + + 3000 + 1 + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/TransparentMaterials.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/TransparentMaterials.sbc index f18d2d10a..11da730c9 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/TransparentMaterials.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/TransparentMaterials.sbc @@ -1,26 +1,26 @@ - - - - - - TransparentMaterialDefinition - Atlas_AnoText - - false - 0 - false - false - 1 - Textures\Atlas_AnoText.dds - false - - 0 - 0 - - - 1 - 1 - - - + + + + + + TransparentMaterialDefinition + Atlas_AnoText + + false + 0 + false + false + 1 + Textures\Atlas_AnoText.dds + false + + 0 + 0 + + + 1 + 1 + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_MS.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_MS.sbc new file mode 100644 index 000000000..2370a6a0b --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_MS.sbc @@ -0,0 +1,21 @@ + + + + + + + WeaponDefinition + MetalStorm + + + WepShipGatlingNoAmmo + 2 + + + + 0 + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SA.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SA.sbc index cf9ff9ed5..e058ca0fb 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SA.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SA.sbc @@ -1,25 +1,25 @@ - - - - - - - WeaponDefinition - K_SA_Gun - - - 100 - 0 - 0 - WepShipGatlingNoAmmo - WepShipGatlingRotation - 0 - - - - - - - - + + + + + + + WeaponDefinition + K_SA_Gun + + + 100 + 0 + 0 + WepShipGatlingNoAmmo + WepShipGatlingRotation + 0 + + + + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SC.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SC.sbc index 6405b4c2a..6c1c63509 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SC.sbc +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SC.sbc @@ -1,23 +1,23 @@ - - - - - - WeaponDefinition - Starcore_FakeWeapon - - - 100 - 0 - 0 - WepShipGatlingNoAmmo - WepShipGatlingRotation - 0 - - - - - - - + + + + + + WeaponDefinition + Starcore_FakeWeapon + + + 100 + 0 + 0 + WepShipGatlingNoAmmo + WepShipGatlingRotation + 0 + + + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SCMW.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SCMW.sbc new file mode 100644 index 000000000..e79f800f6 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SCMW.sbc @@ -0,0 +1,21 @@ + + + + + + + WeaponDefinition + is this even used for anything? + + + WepShipGatlingNoAmmo + 2 + + + + 0 + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SW.sbc b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SW.sbc new file mode 100644 index 000000000..90a1d1980 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/Weapons_SW.sbc @@ -0,0 +1,22 @@ + + + + + + WeaponDefinition + ReinforcementBeacon + + + 0 + 0 + 0 + WepShipGatlingNoAmmo + WepShipGatlingRotation + + + + 0 + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.fbx b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.fbx new file mode 100644 index 000000000..422610702 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.fbx differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.mwm new file mode 100644 index 000000000..24826d0db Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.xml b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.xml new file mode 100644 index 000000000..9ffc5a7a6 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Azimuth.xml @@ -0,0 +1,78 @@ + + + 1.0 + false + false + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas1_cm.dds + Textures\Models\Cubes\Atlas1_ng.dds + Textures\Models\Cubes\Atlas1_add.dds + Textures\Models\Cubes\Atlas1_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Chrome_cm.dds + Textures\Models\Cubes\Atlas3_Chrome_ng.dds + Textures\Models\Cubes\Atlas3_Chrome_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Colorable_cm.dds + Textures\Models\Cubes\Atlas3_Colorable_ng.dds + Textures\Models\Cubes\Atlas3_Colorable_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\ButtonsAtlas_Colorable_cm.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_ng.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_add.dds + Textures\Models\Cubes\ButtonsAtlas_alphamask.dds + + + MESH + Textures\Models\Cubes\EmissiveAtlas_cm.dds + Textures\Models\Cubes\EmissiveAtlas_ng.dds + Textures\Models\Cubes\EmissiveAtlas_add.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterConePlates_cm.dds + Textures\Models\Cubes\HydrogenThrusterConePlates_ng.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterInjector_cm.dds + Textures\Models\Cubes\HydrogenThrusterInjector_ng.dds + + + MESH + Textures\Models\Cubes\Leather_Dark_cm.dds + Textures\Models\Cubes\Leather_Dark_ng.dds + Textures\Models\Cubes\Leather_Dark_add.dds + + + MESH + Textures\Models\Cubes\Aluminium_cm.dds + Textures\Models\Cubes\AluminiumDull_ng.dds + + + MESH + Textures\Models\Cubes\MetalMilitary_cm.dds + Textures\Models\Cubes\MetalMilitary_ng.dds + Textures\Models\Cubes\MetalMilitary_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_Clean_cm.dds + Textures\Models\Cubes\PaintedMetal_Clean_ng.dds + Textures\Models\Cubes\PaintedMetal_Clean_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_VeryDark_cm.dds + Textures\Models\Cubes\PaintedMetalColorable_ng.dds + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.fbx b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.fbx new file mode 100644 index 000000000..90dbf2143 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.fbx differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.mwm new file mode 100644 index 000000000..a04ad4a46 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.xml b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.xml new file mode 100644 index 000000000..1ab4d858a --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS3_Beam_Elevation.xml @@ -0,0 +1,78 @@ + + + 1.0 + false + false + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas1_cm.dds + Textures\Models\Cubes\Atlas1_ng.dds + Textures\Models\Cubes\Atlas1_add.dds + Textures\Models\Cubes\Atlas1_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Chrome_cm.dds + Textures\Models\Cubes\Atlas3_Chrome_ng.dds + Textures\Models\Cubes\Atlas3_Chrome_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Colorable_cm.dds + Textures\Models\Cubes\Atlas3_Colorable_ng.dds + Textures\Models\Cubes\Atlas3_Colorable_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\ButtonsAtlas_Colorable_cm.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_ng.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_add.dds + Textures\Models\Cubes\ButtonsAtlas_alphamask.dds + + + MESH + Textures\Models\Cubes\EmissiveAtlas_cm.dds + Textures\Models\Cubes\EmissiveAtlas_ng.dds + Textures\Models\Cubes\EmissiveAtlas_add.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterConePlates_cm.dds + Textures\Models\Cubes\HydrogenThrusterConePlates_ng.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterInjector_cm.dds + Textures\Models\Cubes\HydrogenThrusterInjector_ng.dds + + + MESH + Textures\Models\Cubes\Leather_Dark_cm.dds + Textures\Models\Cubes\Leather_Dark_ng.dds + Textures\Models\Cubes\Leather_Dark_add.dds + + + MESH + Textures\Models\Cubes\Aluminium_cm.dds + Textures\Models\Cubes\AluminiumDull_ng.dds + + + MESH + Textures\Models\Cubes\MetalMilitary_cm.dds + Textures\Models\Cubes\MetalMilitary_ng.dds + Textures\Models\Cubes\MetalMilitary_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_Clean_cm.dds + Textures\Models\Cubes\PaintedMetal_Clean_ng.dds + Textures\Models\Cubes\PaintedMetal_Clean_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_VeryDark_cm.dds + Textures\Models\Cubes\PaintedMetalColorable_ng.dds + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.fbx b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.fbx new file mode 100644 index 000000000..377e17a83 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.fbx differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.mwm new file mode 100644 index 000000000..0adb9f2b2 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.xml b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.xml new file mode 100644 index 000000000..2a620fba3 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Azimuth.xml @@ -0,0 +1,78 @@ + + + 1.0 + false + false + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas1_cm.dds + Textures\Models\Cubes\Atlas1_ng.dds + Textures\Models\Cubes\Atlas1_add.dds + Textures\Models\Cubes\Atlas1_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Chrome_cm.dds + Textures\Models\Cubes\Atlas3_Chrome_ng.dds + Textures\Models\Cubes\Atlas3_Chrome_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Colorable_cm.dds + Textures\Models\Cubes\Atlas3_Colorable_ng.dds + Textures\Models\Cubes\Atlas3_Colorable_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\ButtonsAtlas_Colorable_cm.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_ng.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_add.dds + Textures\Models\Cubes\ButtonsAtlas_alphamask.dds + + + MESH + Textures\Models\Cubes\EmissiveAtlas_cm.dds + Textures\Models\Cubes\EmissiveAtlas_ng.dds + Textures\Models\Cubes\EmissiveAtlas_add.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterConePlates_cm.dds + Textures\Models\Cubes\HydrogenThrusterConePlates_ng.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterInjector_cm.dds + Textures\Models\Cubes\HydrogenThrusterInjector_ng.dds + + + MESH + Textures\Models\Cubes\Leather_Dark_cm.dds + Textures\Models\Cubes\Leather_Dark_ng.dds + Textures\Models\Cubes\Leather_Dark_add.dds + + + MESH + Textures\Models\Cubes\Aluminium_cm.dds + Textures\Models\Cubes\AluminiumDull_ng.dds + + + MESH + Textures\Models\Cubes\MetalMilitary_cm.dds + Textures\Models\Cubes\MetalMilitary_ng.dds + Textures\Models\Cubes\MetalMilitary_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_Clean_cm.dds + Textures\Models\Cubes\PaintedMetal_Clean_ng.dds + Textures\Models\Cubes\PaintedMetal_Clean_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_VeryDark_cm.dds + Textures\Models\Cubes\PaintedMetalColorable_ng.dds + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.fbx b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.fbx new file mode 100644 index 000000000..87a6064e5 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.fbx differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.mwm new file mode 100644 index 000000000..0694111e7 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.xml b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.xml new file mode 100644 index 000000000..87598180a --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/AugerS5_Beam_Elevation.xml @@ -0,0 +1,78 @@ + + + 1.0 + false + false + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas1_cm.dds + Textures\Models\Cubes\Atlas1_ng.dds + Textures\Models\Cubes\Atlas1_add.dds + Textures\Models\Cubes\Atlas1_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Chrome_cm.dds + Textures\Models\Cubes\Atlas3_Chrome_ng.dds + Textures\Models\Cubes\Atlas3_Chrome_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Colorable_cm.dds + Textures\Models\Cubes\Atlas3_Colorable_ng.dds + Textures\Models\Cubes\Atlas3_Colorable_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\ButtonsAtlas_Colorable_cm.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_ng.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_add.dds + Textures\Models\Cubes\ButtonsAtlas_alphamask.dds + + + MESH + Textures\Models\Cubes\EmissiveAtlas_cm.dds + Textures\Models\Cubes\EmissiveAtlas_ng.dds + Textures\Models\Cubes\EmissiveAtlas_add.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterConePlates_cm.dds + Textures\Models\Cubes\HydrogenThrusterConePlates_ng.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterInjector_cm.dds + Textures\Models\Cubes\HydrogenThrusterInjector_ng.dds + + + MESH + Textures\Models\Cubes\Leather_Dark_cm.dds + Textures\Models\Cubes\Leather_Dark_ng.dds + Textures\Models\Cubes\Leather_Dark_add.dds + + + MESH + Textures\Models\Cubes\Aluminium_cm.dds + Textures\Models\Cubes\AluminiumDull_ng.dds + + + MESH + Textures\Models\Cubes\MetalMilitary_cm.dds + Textures\Models\Cubes\MetalMilitary_ng.dds + Textures\Models\Cubes\MetalMilitary_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_Clean_cm.dds + Textures\Models\Cubes\PaintedMetal_Clean_ng.dds + Textures\Models\Cubes\PaintedMetal_Clean_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_VeryDark_cm.dds + Textures\Models\Cubes\PaintedMetalColorable_ng.dds + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntA Mesh.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntA Mesh.mwm new file mode 100644 index 000000000..778c4b679 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntA Mesh.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntA Subpart.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntA Subpart.mwm new file mode 100644 index 000000000..dff5d333f Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntA Subpart.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntB Mesh.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntB Mesh.mwm new file mode 100644 index 000000000..b86d7ed12 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntB Mesh.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntB Subpart.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntB Subpart.mwm new file mode 100644 index 000000000..f69f4e887 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntB Subpart.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntC Mesh.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntC Mesh.mwm new file mode 100644 index 000000000..27764d3ac Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntC Mesh.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntC Subpart.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntC Subpart.mwm new file mode 100644 index 000000000..eb4c3d81e Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntC Subpart.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Mesh (AntD Mesh).mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Mesh (AntD Mesh).mwm new file mode 100644 index 000000000..7395e88fb Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Mesh (AntD Mesh).mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Mesh.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Mesh.mwm new file mode 100644 index 000000000..436b8baa3 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Mesh.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Subpart.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Subpart.mwm new file mode 100644 index 000000000..e046985d1 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntD Subpart.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntE Mesh.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntE Mesh.mwm new file mode 100644 index 000000000..5559dd5f7 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntE Mesh.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntE Subpart.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntE Subpart.mwm new file mode 100644 index 000000000..290c1206c Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntE Subpart.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntF Mesh.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntF Mesh.mwm new file mode 100644 index 000000000..4ca108bde Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntF Mesh.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntF Subpart.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntF Subpart.mwm new file mode 100644 index 000000000..bba130534 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/AntF Subpart.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/HexCannon.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/HexCannon.mwm new file mode 100644 index 000000000..7c257c6f9 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/HexCannon.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/HexCannonWings.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/HexCannonWings.mwm new file mode 100644 index 000000000..beee8b6d8 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/HexCannonWings.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/MagicCannon.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/MagicCannon.mwm new file mode 100644 index 000000000..624eba0a8 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/MagicCannon.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm.mwm new file mode 100644 index 000000000..6e5bed979 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels.mwm new file mode 100644 index 000000000..ff080196b Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD1.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD1.mwm new file mode 100644 index 000000000..e293f60af Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD1.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD2.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD2.mwm new file mode 100644 index 000000000..d3b4e6d85 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD2.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD3.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD3.mwm new file mode 100644 index 000000000..df279e9b0 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Barrels_LOD3.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base.mwm new file mode 100644 index 000000000..2c84564d5 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD1.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD1.mwm new file mode 100644 index 000000000..9b9d86b41 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD1.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD2.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD2.mwm new file mode 100644 index 000000000..bf5d51911 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD2.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD3.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD3.mwm new file mode 100644 index 000000000..bacca3b89 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_Base_LOD3.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD1.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD1.mwm new file mode 100644 index 000000000..3d51667a5 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD1.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD2.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD2.mwm new file mode 100644 index 000000000..2ae12a525 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD2.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD3.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD3.mwm new file mode 100644 index 000000000..8aa3eef31 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/Metal_Storm_LOD3.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/zappyspellcaster.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/zappyspellcaster.mwm new file mode 100644 index 000000000..1f93a936c Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Cubes/large/zappyspellcaster.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/Dreadnaught_Projectile.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/Dreadnaught_Projectile.mwm new file mode 100644 index 000000000..48e3e45c9 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/Dreadnaught_Projectile.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/NebulonB_Projectile.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/NebulonB_Projectile.mwm new file mode 100644 index 000000000..8b81c14c4 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/NebulonB_Projectile.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/YWing_Projectile.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/YWing_Projectile.mwm new file mode 100644 index 000000000..20da2c352 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/YWing_Projectile.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/Z95_Projectile.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/Z95_Projectile.mwm new file mode 100644 index 000000000..b251f011b Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Drones/Z95_Projectile.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Large_Reinforcement_Beacon.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Large_Reinforcement_Beacon.mwm new file mode 100644 index 000000000..a1a0227fb Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/Large_Reinforcement_Beacon.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.fbx b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.fbx new file mode 100644 index 000000000..97cf90dcc Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.fbx differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.mwm new file mode 100644 index 000000000..bd17d05eb Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.xml b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.xml new file mode 100644 index 000000000..098680cf8 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S3.xml @@ -0,0 +1,78 @@ + + + 1.0 + false + false + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas1_cm.dds + Textures\Models\Cubes\Atlas1_ng.dds + Textures\Models\Cubes\Atlas1_add.dds + Textures\Models\Cubes\Atlas1_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Chrome_cm.dds + Textures\Models\Cubes\Atlas3_Chrome_ng.dds + Textures\Models\Cubes\Atlas3_Chrome_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Colorable_cm.dds + Textures\Models\Cubes\Atlas3_Colorable_ng.dds + Textures\Models\Cubes\Atlas3_Colorable_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\ButtonsAtlas_Colorable_cm.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_ng.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_add.dds + Textures\Models\Cubes\ButtonsAtlas_alphamask.dds + + + MESH + Textures\Models\Cubes\EmissiveAtlas_cm.dds + Textures\Models\Cubes\EmissiveAtlas_ng.dds + Textures\Models\Cubes\EmissiveAtlas_add.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterConePlates_cm.dds + Textures\Models\Cubes\HydrogenThrusterConePlates_ng.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterInjector_cm.dds + Textures\Models\Cubes\HydrogenThrusterInjector_ng.dds + + + MESH + Textures\Models\Cubes\Leather_Dark_cm.dds + Textures\Models\Cubes\Leather_Dark_ng.dds + Textures\Models\Cubes\Leather_Dark_add.dds + + + MESH + Textures\Models\Cubes\Aluminium_cm.dds + Textures\Models\Cubes\AluminiumDull_ng.dds + + + MESH + Textures\Models\Cubes\MetalMilitary_cm.dds + Textures\Models\Cubes\MetalMilitary_ng.dds + Textures\Models\Cubes\MetalMilitary_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_Clean_cm.dds + Textures\Models\Cubes\PaintedMetal_Clean_ng.dds + Textures\Models\Cubes\PaintedMetal_Clean_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_VeryDark_cm.dds + Textures\Models\Cubes\PaintedMetalColorable_ng.dds + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.fbx b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.fbx new file mode 100644 index 000000000..aef8178a4 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.fbx differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.mwm new file mode 100644 index 000000000..c43de1087 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.xml b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.xml new file mode 100644 index 000000000..dd8f183f2 --- /dev/null +++ b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Auger_S5.xml @@ -0,0 +1,78 @@ + + + 1.0 + false + false + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas1_cm.dds + Textures\Models\Cubes\Atlas1_ng.dds + Textures\Models\Cubes\Atlas1_add.dds + Textures\Models\Cubes\Atlas1_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Chrome_cm.dds + Textures\Models\Cubes\Atlas3_Chrome_ng.dds + Textures\Models\Cubes\Atlas3_Chrome_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\Atlas3_Colorable_cm.dds + Textures\Models\Cubes\Atlas3_Colorable_ng.dds + Textures\Models\Cubes\Atlas3_Colorable_add.dds + Textures\Models\Cubes\Atlas3_alphamask.dds + + + DECAL_CUTOUT + Textures\Models\Cubes\ButtonsAtlas_Colorable_cm.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_ng.dds + Textures\Models\Cubes\ButtonsAtlas_Colorable_add.dds + Textures\Models\Cubes\ButtonsAtlas_alphamask.dds + + + MESH + Textures\Models\Cubes\EmissiveAtlas_cm.dds + Textures\Models\Cubes\EmissiveAtlas_ng.dds + Textures\Models\Cubes\EmissiveAtlas_add.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterConePlates_cm.dds + Textures\Models\Cubes\HydrogenThrusterConePlates_ng.dds + + + MESH + Textures\Models\Cubes\HydrogenThrusterInjector_cm.dds + Textures\Models\Cubes\HydrogenThrusterInjector_ng.dds + + + MESH + Textures\Models\Cubes\Leather_Dark_cm.dds + Textures\Models\Cubes\Leather_Dark_ng.dds + Textures\Models\Cubes\Leather_Dark_add.dds + + + MESH + Textures\Models\Cubes\Aluminium_cm.dds + Textures\Models\Cubes\AluminiumDull_ng.dds + + + MESH + Textures\Models\Cubes\MetalMilitary_cm.dds + Textures\Models\Cubes\MetalMilitary_ng.dds + Textures\Models\Cubes\MetalMilitary_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_Clean_cm.dds + Textures\Models\Cubes\PaintedMetal_Clean_ng.dds + Textures\Models\Cubes\PaintedMetal_Clean_add.dds + + + MESH + Textures\Models\Cubes\PaintedMetal_VeryDark_cm.dds + Textures\Models\Cubes\PaintedMetalColorable_ng.dds + + diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Ele_Large.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Ele_Large.mwm index a33f883db..f480de8a8 100644 Binary files a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Ele_Large.mwm and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Ele_Large.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Large.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Large.mwm index 33cf5d3fa..76f0a84c9 100644 Binary files a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Large.mwm and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Large.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Recoil_Large.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Recoil_Large.mwm index 39cfbdc6b..6e0e8e706 100644 Binary files a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Recoil_Large.mwm and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Recoil_Large.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Rot_Large.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Rot_Large.mwm index 8222f1f04..7c55f877f 100644 Binary files a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Rot_Large.mwm and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_GaussAP_Rot_Large.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Gauss_AP_Large.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Gauss_AP_Large.mwm new file mode 100644 index 000000000..2c19d6e43 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SA_Gauss_AP_Large.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SwordMelee.mwm b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SwordMelee.mwm new file mode 100644 index 000000000..6a7a849a0 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Models/SwordMelee.mwm differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/HexCannon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/HexCannon.png new file mode 100644 index 000000000..9b897f231 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/HexCannon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/1000mmShell_Icon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/1000mmShell_Icon.png new file mode 100644 index 000000000..c8f322dd1 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/1000mmShell_Icon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/1500mmShell_Icon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/1500mmShell_Icon.png new file mode 100644 index 000000000..c7575e205 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/1500mmShell_Icon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/150mmShell_Icon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/150mmShell_Icon.png new file mode 100644 index 000000000..fcfddeea1 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/150mmShell_Icon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/220mmBurstMissile_Icon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/220mmBurstMissile_Icon.png new file mode 100644 index 000000000..f313805a7 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/220mmBurstMissile_Icon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/300mmShell_Icon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/300mmShell_Icon.png new file mode 100644 index 000000000..e63106381 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/300mmShell_Icon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/30mmAmmoBox_Icon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/30mmAmmoBox_Icon.png new file mode 100644 index 000000000..bb4b580e2 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/30mmAmmoBox_Icon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/400mmShell_Icon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/400mmShell_Icon.png new file mode 100644 index 000000000..a13e835eb Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/400mmShell_Icon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/FoldingChair_Icon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/FoldingChair_Icon.png new file mode 100644 index 000000000..f76f94358 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Ammo/FoldingChair_Icon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Cubes/Metal_Storm.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Cubes/Metal_Storm.dds new file mode 100644 index 000000000..65b073167 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Cubes/Metal_Storm.dds differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Cubes/SA_Auger_S5.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Cubes/SA_Auger_S5.dds new file mode 100644 index 000000000..466884225 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/Cubes/SA_Auger_S5.dds differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/SA_GaussAP_Large.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/SA_GaussAP_Large.dds new file mode 100644 index 000000000..769e02f05 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Icons/SA_GaussAP_Large.dds differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Screens/AWP_TurretOverlay_Universal.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Screens/AWP_TurretOverlay_Universal.dds new file mode 100644 index 000000000..9b758e76d Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/Screens/AWP_TurretOverlay_Universal.dds differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/magiccannon.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/magiccannon.png new file mode 100644 index 000000000..e4d7c209d Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/GUI/magiccannon.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S3.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S3.dds new file mode 100644 index 000000000..62a7f02e8 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S3.dds differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S5.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S5.dds new file mode 100644 index 000000000..f3b37fe86 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S5.dds differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S5.xcf b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S5.xcf new file mode 100644 index 000000000..cc913bb6f Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_S5.xcf differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_Template.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_Template.png new file mode 100644 index 000000000..8e1b4610c Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/SA_Auger_Template.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/Series 3.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/Series 3.png new file mode 100644 index 000000000..95f7e2b40 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/Series 3.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/Series 5.png b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/Series 5.png new file mode 100644 index 000000000..f42109092 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Icons/Series 5.png differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Logo_Imperial.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Logo_Imperial.dds new file mode 100644 index 000000000..5d31c829e Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Logo_Imperial.dds differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Logo_Rebel.DDS b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Logo_Rebel.DDS new file mode 100644 index 000000000..3f65de240 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/Logo_Rebel.DDS differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/RV_Dreadnaught_CM.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/RV_Dreadnaught_CM.dds new file mode 100644 index 000000000..efcd1f7af Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/RV_Dreadnaught_CM.dds differ diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/RV_Dreadnaught_NG.dds b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/RV_Dreadnaught_NG.dds new file mode 100644 index 000000000..b878a3208 Binary files /dev/null and b/Weapon Mods/Anomaly_Solaris_Hypernautics/Textures/RV_Dreadnaught_NG.dds differ diff --git a/Weapon Mods/Military Industrial Complex/Data/Scripts/CoreParts/script/Structure.cs b/Weapon Mods/Military Industrial Complex/Data/Scripts/CoreParts/script/Structure.cs index b6fa49f76..ed5efbe33 100644 --- a/Weapon Mods/Military Industrial Complex/Data/Scripts/CoreParts/script/Structure.cs +++ b/Weapon Mods/Military Industrial Complex/Data/Scripts/CoreParts/script/Structure.cs @@ -525,7 +525,6 @@ public struct UiDef [ProtoMember(5)] internal bool AlternateUi; [ProtoMember(6)] internal bool DisableStatus; [ProtoMember(7)] internal float RateOfFireMin; - [ProtoMember(8)] internal bool DisableSupportingPD; } diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Drone_Flyby.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Drone_Flyby.wav new file mode 100644 index 000000000..a031828d6 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Drone_Flyby.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Audio_MissileTravelLoop_Dark.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Audio_MissileTravelLoop_Dark.wav new file mode 100644 index 000000000..bc8d466f2 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Audio_MissileTravelLoop_Dark.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Charge_up.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Charge_up.wav new file mode 100644 index 000000000..317ccf17e Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Charge_up.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/HSR_Missile_Launch_A.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/HSR_Missile_Launch_A.wav new file mode 100644 index 000000000..7e2b48371 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/HSR_Missile_Launch_A.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Reverb_Cannon.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Reverb_Cannon.wav new file mode 100644 index 000000000..a98bef64e Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Gauss/Reverb_Cannon.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/HellfireLaserLONG.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/HellfireLaserLONG.wav new file mode 100644 index 000000000..ccd0ac0a5 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/HellfireLaserLONG.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Krankenschwester_bereit.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Krankenschwester_bereit.wav new file mode 100644 index 000000000..6c2996fd4 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Krankenschwester_bereit.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/Missile Knows.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/Missile Knows.wav new file mode 100644 index 000000000..3970208c4 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/Missile Knows.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_AA.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_AA.wav new file mode 100644 index 000000000..0e8429f14 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_AA.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_ATM.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_ATM.wav new file mode 100644 index 000000000..1e96c5b82 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_ATM.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_Light.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_Light.wav new file mode 100644 index 000000000..fe1fb8711 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_Light.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_Medium.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_Medium.wav new file mode 100644 index 000000000..b58061da1 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/MissileLaunch_Medium.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/Tartarus Lock.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/Tartarus Lock.wav new file mode 100644 index 000000000..ba2b010d7 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missile/Tartarus Lock.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missiles/TestSoundMRM.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missiles/TestSoundMRM.wav new file mode 100644 index 000000000..632b70fa7 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/Missiles/TestSoundMRM.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/VenatorLaserFiringC.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/VenatorLaserFiringC.wav new file mode 100644 index 000000000..225fdb4a5 Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/VenatorLaserFiringC.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/shotgun/Dopamine_Device_Hydra_Loading.wav b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/shotgun/Dopamine_Device_Hydra_Loading.wav new file mode 100644 index 000000000..ec1a7fa8f Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Audio/shotgun/Dopamine_Device_Hydra_Loading.wav differ diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/Audio.sbc b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/Audio.sbc new file mode 100644 index 000000000..89b639d0d --- /dev/null +++ b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/Audio.sbc @@ -0,0 +1,1622 @@ + + + + + + + + + + + + + + + + + + + + + + MyObjectBuilder_AudioDefinition + Auger3Reload + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 1.2 + 5 + + + Audio\Auger\Auger2Reload.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Auger5Reload + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 1.2 + 5 + + + Audio\Auger\Auger2ReloadLong.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Auger3Fire + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 1 + 5 + + + Audio\Auger\Auger2PulseFire.wav + + + + + + + + MyObjectBuilder_AudioDefinition + Auger5Fire + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 3 + true + 5 + 1.2 + 5 + + + Audio\Auger\Auger2BeamFire.wav + + + + + + + + MyObjectBuilder_AudioDefinition + AugerGears + + SHOT + 0.1 + 500 + 0 + HeavyFight + 1 + true + 1 + 1.2 + 5 + + + Audio\Auger\Goliath2GearLoopB.wav + + + + + + + + MyObjectBuilder_AudioDefinition + AugerHitA + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 1.2 + 5 + + + Audio\Auger\Auger2HitA.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + RadioGlitchLoop + + SHOT + 0.1 + 3000 + 0 + HeavyFight + 4 + true + 4 + 0.7 + 5 + 3 + + + Audio\Auger\RadioLoop2MIN.wav + + + + + + + + + + + + + + + + + + + + + MyObjectBuilder_AudioDefinition + metalstorm + + SHOT + 0.1 + 2100 + 0 + + + + HeavyFight + 15 + false + 32 + 0.1 + 5 + + + Audio\Arcade\metalstorm.wav + + + + + + + + MyObjectBuilder_AudioDefinition + metalstormdistant + + SHOT + 0.1 + 2100 + 0 + HeavyFight + 15 + false + 32 + 0.1 + 5 + + + Audio\Arcade\metalstorm.wav + + + + + + + + MyObjectBuilder_AudioDefinition + cbar + + SHOT + 0.1 + 1000 + 0 + HeavyFight + 15 + false + 0.1 + 5 + + + Audio\Arcade\cbar_hit1A.wav + + + + + + + + MyObjectBuilder_AudioDefinition + shit + + SHOT + 0.1 + 1000 + 0 + HeavyFight + 15 + false + 0.1 + 5 + + + Audio\Arcade\shieldhit1.wav + + + + + + + + MyObjectBuilder_AudioDefinition + metalstormreload + + SHOT + 0.1 + 250 + 10 + 0 + HeavyFight + 15 + false + 1 + 5 + + + Audio\Arcade\metalstormreload.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + VenatorLaserFiring + + SHOT + 3000 + 0.95 + true + 1 + 1 + 25 + + + Audio\VenatorLaserFiringC.wav + + + + + + + + MyObjectBuilder_AudioDefinition + DroidTankArtillery + + SHOT + 3000 + 0.55 + true + 1 + 1 + 25 + + + Audio\DroidTankArtillerySFX.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + shieldthing_firesound + + SHOT + 3000 + 0.75 + true + 1 + 3 + 25 + + + Audio\mw4lasercopy.wav + + + + + + + + MyObjectBuilder_AudioDefinition + MaxMemeReload + + SHOT + 2500 + 0 + HeavyFight + 35 + 1 + false + + + Audio\Krankenschwester_bereit.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + DroneLaunch + + WEP_EXPL + 500 + 2.0 + 100 + 10 + 3 + + + Audio\sfx\dronelaunchaudio.wav + + + Audio\sfx\dronelaunchaudio.wav + + + Audio\sfx\dronelaunchaudio.wav + + + + + + + + + + + MyObjectBuilder_AudioDefinition + TorpLaunch + + SHOT + 300 + 1 + HeavyFight + 3 + 1 + false + 100 + 3 + + + Audio\Missiles\TorpLaunch.wav + + + + + + + MyObjectBuilder_AudioDefinition + TorpHit + + SHOT + 250 + 15 + HeavyFight + 3 + 1 + 100 + false + + + Audio\Missiles\TorpMissileImpact.wav + + + + + + + MyObjectBuilder_AudioDefinition + TorpFlyby + + SHOT + 200 + 25 + HeavyFight + 3 + 1 + 100 + true + + + Audio\Missiles\SonicBoom.wav + + + + + + + + MyObjectBuilder_AudioDefinition + DRONEFLYBY + + SHOT + 800 + 25 + HeavyFight + 3 + 2 + 100 + true + + + Audio\Drone_Flyby.wav + + + + + + + MyObjectBuilder_AudioDefinition + PPCFire + + SHOT + 400 + 0 + HeavyFight + 3 + 1 + false + + + Audio\PPC\PPC_Fire.wav + + + + + + MyObjectBuilder_AudioDefinition + MedLaserFire + + SHOT + 1200 + 0 + HeavyFight + 3 + 1 + 25 + 5 + false + + + Audio\MW4 Laser Medium.wav + + + + + + + MyObjectBuilder_AudioDefinition + MedLaserLoop + + SHOT + 1200 + 0 + HeavyFight + 3 + 0.4 + 25 + 5 + true + + + Audio\MW4 Laser MediumLoop.wav + + + + + + + + + + + + + + MyObjectBuilder_AudioDefinition + LrgLaserFire + + SHOT + 1200 + 0 + HeavyFight + 3 + 1 + 15 + 5 + false + + + Audio\MW4 Laser Large.wav + + + + + + + MyObjectBuilder_AudioDefinition + FFC_Reload + + SHOT + 500 + HeavyFight + 3 + 0.65 + 15 + false + 2 + + + Audio\HGaussReload2.wav + + + + + + + MyObjectBuilder_AudioDefinition + FCCFire + + SHOT + 5000 + 2 + HeavyFight + 35 + 0.8 + 30 + + + + false + + + Audio\SC_HeavyGauss.wav + + + + + + MyObjectBuilder_AudioDefinition + FCCFire_Dist + + SHOT + 5000 + 2 + HeavyFight + 3 + 0.8 + 30 + false + + + Audio\SC_HeavyGauss_Dist.wav + + + + + + + MyObjectBuilder_AudioDefinition + PPCImpact + + SHOT + 200 + 10 + HeavyFight + 3 + 2 + false + + + Audio\PPC\PPC_Impact.wav + + + + + + + MyObjectBuilder_AudioDefinition + PPCRecharge + + SHOT + 200 + 4 + HeavyFight + 3 + 1.25 + false + + + Audio\PPC\PPC_Recharge.wav + + + + + + + MyObjectBuilder_AudioDefinition + PPCFlyby + + SHOT + 400 + 25 + HeavyFight + 3 + 2 + true + + + Audio\PPC\PPC_Flyby.wav + + + + + + + + + + + MyObjectBuilder_AudioDefinition + caution + + SHOT + 3000 + 0 + HeavyFight + 15 + false + 1 + 5 + + + Audio\Magic\hexcannoncharge.wav + + + + + + + + MyObjectBuilder_AudioDefinition + suntravelloop + + SHOT + 3000 + 0 + HeavyFight + 15 + true + 5 + + + Audio\Magic\suntravelloop.wav + Audio\Magic\suntravelloop.wav + Audio\Magic\suntravelloop.wav + + + + + + + + MyObjectBuilder_AudioDefinition + sunloop + + SHOT + 3000 + 0 + HeavyFight + 15 + true + 1 + + + Audio\Magic\sunloop.wav + + + + + + + + MyObjectBuilder_AudioDefinition + sunprojhit + + SHOT + 500 + 0 + + + HeavyFight + 15 + false + 1 + 5 + + + Audio\Magic\sunprojhit.wav + + + + + + + + MyObjectBuilder_AudioDefinition + gapsfx + + SHOT + 1000 + 0 + + + HeavyFight + 15 + false + 1 + 5 + 5 + + + Audio\Magic\gapsfx.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + ObviousFlyby + + SHOT + 500 + 20 + HeavyFight + 3 + 1 + 30 + true + + + Audio\Missiles\engine_rocket_01.wav + + + Audio\Missiles\engine_rocket_02.wav + + + Audio\Missiles\engine_rocket_03.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + MissileThoompLaunch + + SHOT + 300 + HeavyFight + 3 + 0.8 + false + 0.2 + 100 + 10 + + + Audio\Missiles\MW4_NARC_Fire.wav + + + + + + + + + + + MyObjectBuilder_AudioDefinition + MissileFshooLaunch + + SHOT + 300 + HeavyFight + 3 + 0.8 + false + 0.2 + 100 + 10 + + + Audio\Missiles\craft_launch_01.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + MissileHitRandom + + SHOT + 2500 + 0 + HeavyFight + 3 + 1 + false + 0.15 + 75 + + + + + + + Audio\Generic\MW4Explosion_1.wav + + + Audio\Generic\MW4Explosion_2.wav + + + Audio\Generic\MW4Explosion_3.wav + + + Audio\Generic\MW4Explosion_4.wav + + + Audio\Generic\MW4Explosion_5.wav + + + Audio\Generic\MW4Explosion_6.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + MissileHitRandom_Distant + + SHOT + 2500 + HeavyFight + 3 + 0.8 + 0.15 + false + -2 + 75 + + + Audio\Generic\Dist\MW4Explosion_1_Dist.wav + + + Audio\Generic\Dist\MW4Explosion_2_Dist.wav + + + Audio\Generic\Dist\MW4Explosion_3_Dist.wav + + + Audio\Generic\Dist\MW4Explosion_4_Dist.wav + + + Audio\Generic\Dist\MW4Explosion_5_Dist.wav + + + Audio\Generic\Dist\MW4Explosion_6_Dist.wav + + + + + + + MyObjectBuilder_AudioDefinition + Betty_Weapon_Destroyed + + SHOT + 175 + 0 + HeavyFight + 3 + 1 + false + + + Audio\Betty\MW4_M_Betty_Weapon_Destroyed.wav + + + + + + + MyObjectBuilder_AudioDefinition + AI_Voice_Missile_Launch_Detected + + SHOT + 200 + 1 + HeavyFight + 3 + 1 + 5 + true + + + Audio\Betty\AI_Voice_Missile_Launch_Detected.wav + + + + + + + MyObjectBuilder_AudioDefinition + Missile_Beep + + SHOT + 450 + 0 + HeavyFight + 3 + 2 + 8 + 0.1 + 0.1 + true + + + Audio\Generic\ACZ Missile Beep.wav + + + + + + + MyObjectBuilder_AudioDefinition + Missile_BeepBeepBeep + + SHOT + 450 + 0 + HeavyFight + 3 + 2 + 8 + 0.1 + 0.1 + true + + + Audio\Generic\ACZ Missile BeepBeepBeep.wav + + + + + + + MyObjectBuilder_AudioDefinition + RWR_Beeps + + SHOT + 500 + 0 + + + 1 + + 0.1 + 0.1 + false + 510 + + + Audio\Generic\RWR Beep.wav + + + + + + + MyObjectBuilder_AudioDefinition + MissileSwooshLaunch + + SHOT + 100 + HeavyFight + 3 + 0.75 + false + 0 + 0.2 + 100 + + + + + + Audio\Missiles\MW3_WEAPON_LRM5.wav + + + + + + + MyObjectBuilder_AudioDefinition + MissileSwooshLaunch_Distant + + SHOT + 475 + HeavyFight + 3 + 0.25 + false + 75 + -2 + + + Audio\Missiles\MW3_WEAPON_LRM5.wav + + + + + + + MyObjectBuilder_AudioDefinition + CloseNuked + + SHOT + 2000 + HeavyFight + 3 + 1.5 + false + + 0 + + + + + + Audio\Nuke\CloseNuked.wav + + + + + + + MyObjectBuilder_AudioDefinition + FarNuked + + SHOT + 2000 + HeavyFight + 3 + 2 + false + 0 + + + Audio\Nuke\FarNuked.wav + + + + + + + + MyObjectBuilder_AudioDefinition + ArcMK1CoilCannonFCC + + SHOT + 6000 + 0.25 + + 1 + 0 + + + + + 0.25 + + + Audio\MK1CoilCannon3.wav + + + + + + + + MyObjectBuilder_AudioDefinition + ArcMK1CoilCannonDistant1FCC + + SHOT + 6000 + + 0.25 + + + Audio\MK1CoilCannon_far2.wav + + + + + + + MyObjectBuilder_AudioDefinition + FCC_Whistle + + SHOT + 3750 + 0 + HeavyFight + 35 + 1 + true + + + Audio\DistantTravel.wav + + + + + + + + + + + + + + + + + + + + + + + + + + + MyObjectBuilder_AudioDefinition + RailRoundFlight + + SHOT + 11000 + 0 + HeavyFight + 35 + 2 + + + + + true + + + Audio\ShellFlight\NewRailTravel.wav + + + + + + MyObjectBuilder_AudioDefinition + RailRoundFlightD1 + + SHOT + 11000 + 0 + HeavyFight + 35 + 2 + true + + + Audio\ShellFlight\NewRailTravelD1.wav + + + + + + MyObjectBuilder_AudioDefinition + RailRoundFlightD2 + + SHOT + 11000 + 0 + HeavyFight + 35 + 2 + true + + + Audio\ShellFlight\NewRailTravelD2.wav + + + + + + + + MyObjectBuilder_AudioDefinition + MyRailRoundHit + + WEP_EXPL + 15000 + 0 + HeavyFight + 3 + 10 + + + + + + + + + Audio\Crunch\RailgunNewHit1.wav + + + Audio\Crunch\RailgunNewHit2.wav + + + + + + MyObjectBuilder_AudioDefinition + MyRailRoundHitDistant1 + + WEP_EXPL + 15000 + 0 + HeavyFight + 3 + 10 + + + Audio\Crunch\RailgunNewHit1Range1.wav + + + Audio\Crunch\RailgunNewHit2Range1.wav + + + + + + MyObjectBuilder_AudioDefinition + MyRailRoundHitDistant2 + + WEP_EXPL + 15000 + 0 + HeavyFight + 3 + 10 + + + Audio\Crunch\RailgunNewHit1Range2.wav + + + Audio\Crunch\RailgunNewHit2Range2.wav + + + + + + MyObjectBuilder_AudioDefinition + MyRailRoundHitDistant3 + + WEP_EXPL + 15000 + 0 + HeavyFight + 3 + 10 + + + Audio\Crunch\RailgunNewHit1Range3.wav + + + Audio\Crunch\RailgunNewHit2Range3.wav + + + + + + MyObjectBuilder_AudioDefinition + MyRailRoundHitDistant4 + + WEP_EXPL + 15000 + 0 + HeavyFight + 3 + 10 + + + Audio\Crunch\RailgunNewHit1Range4.wav + + + Audio\Crunch\RailgunNewHit2Range4.wav + + + + + + + + + MyObjectBuilder_AudioDefinition + RailRoundShot + + WEP_EXPL + 10000 + 0 + HeavyFight + 3 + 1 + + + Audio\Shot\RailgunDistantShot.wav + + + + + + + + + + MyObjectBuilder_AudioDefinition + MyRailgunLargeCharge + + SHOT + 5000 + 2.5 + 30 + 1 + + + + + + Audio\Rail\RailGun_Charge_01.wav + + + + + + MyObjectBuilder_AudioDefinition + MyRailgunLargeChargeDistant + + SHOT + 5000 + 2.5 + 30 + 1 + + + Audio\Shot\RailGun_Charge_Distant_01.wav + + + + + + + MyObjectBuilder_AudioDefinition + MyRailgunLargeShot + + SHOT + 9000 + 2 + + + + HeavyFight + 15 + 2 + + + Audio\Rail\RailGun_Shot_01.wav + + + Audio\Rail\RailGun_Shot_2.wav + + + Audio\Rail\RailGun_Shot_3.wav + + + + + + + MyObjectBuilder_AudioDefinition + MyLargeRailgunShotDist + + SHOT + 9000 + 3 + + + Audio\Rail\RailGun_Shot_1_Distant.wav + + + Audio\Rail\RailGun_Shot_2_Distant.wav + + + + + + + MyObjectBuilder_AudioDefinition + RailgunSmallCharge + + SHOT + 1500 + 1.5 + 30 + 1 + + + Audio\Rail\RailGun_S_Grid_Charge_01_Short.wav + + + + + + + MyObjectBuilder_AudioDefinition + RailgunSmallCharge + + SHOT + 1500 + 1.5 + realShipFilter + 30 + 1 + + + Audio\Rail\RailGun_S_Grid_Charge_01_Short.wav + + + + + + + MyObjectBuilder_AudioDefinition + RailgunSmallShot + + SHOT + 5000 + 2 + + + + HeavyFight + 15 + 2 + + + Audio\Rail\RailGun_S_Grid_Shot_01.wav + + + Audio\Rail\RailGun_S_Grid_Shot_2.wav + + + Audio\Rail\RailGun_S_Grid_Shot_3.wav + + + + + + MyObjectBuilder_AudioDefinition + SmallRailgunShotDist + + SHOT + 5000 + 1 + + + Audio\Rail\RailGun_Shot_1_Distant.wav + + + Audio\Rail\RailGun_Shot_2_Distant.wav + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/AMP_AmmoMagazines.sbc b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/SOL_AmmoMagazines.sbc similarity index 55% rename from Weapon Mods/Anomaly_Solaris_Hypernautics/Data/AMP_AmmoMagazines.sbc rename to Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/SOL_AmmoMagazines.sbc index 4633a2c65..6c3cefca9 100644 --- a/Weapon Mods/Anomaly_Solaris_Hypernautics/Data/AMP_AmmoMagazines.sbc +++ b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/SOL_AmmoMagazines.sbc @@ -1,194 +1,346 @@ - - - - - - - AmmoMagazine - ImpulseTorch_Magazine - - ImpulseTorch Fuel Cartridge - Textures\GUI\Icons\ImpulseTorch_Magazine.dds - - 0.25 - 0.2 - 0.2 - - 1000 - 10 - Models\Ammos\ImpulseTorch_Magazine.mwm - 15 - - - - - - AmmoMagazine - FlakShotgun_Magazine - - Shotgun Shell - Textures\GUI\Icons\ImpulseTorch_Magazine.dds - - 0.25 - 0.2 - 0.2 - - 1000 - 10 - Models\Ammos\LBX5_AmmoShellShotgun.mwm - 1 - - - - - - - - - - - - - AmmoMagazine - DragonyosBomber - - Dragonyos Torpedo Bomber - Textures\GUI\Icons\Manticore.dds - - 1 - 2 - 0.5 - - 300 - 500 - Models\Drones\Manticore.mwm - Ammo - 1 - - - 6 - 12 - 3 - 24 - true - - - - - - AmmoMagazine - HarcosFighter - - Harcos Laser Fighter - Textures\GUI\Icons\Fighter_drone.dds - - 1 - 2 - 0.5 - - 300 - 500 - Models\Drones\Fighter_drone.mwm - Ammo - 1 - - - 6 - 12 - 3 - 24 - true - - - - - - - AmmoMagazine - FegyverDrone - - Fegyver Light Sentry - Textures\GUI\Icons\Artillery_drone.dds - - 1 - 2 - 0.5 - - 350 - 500 - Models\Drones\Artillery_drone.mwm - Ammo - 1 - - - 6 - 12 - 3 - 24 - true - - - - - - AmmoMagazine - AgyuDrone - - Agyu Heavy Sentry - Textures\GUI\Icons\Artillery_drone.dds - - 1 - 2 - 0.5 - - 290 - 500 - Models\Drones\Artillery_drone.mwm - Ammo - 1 - - - 6 - 12 - 3 - 24 - true - - - - - - AmmoMagazine - OrszemDrone - - Orszem Sentinel - Textures\GUI\Icons\Artillery_drone.dds - - 1 - 2 - 0.5 - - 290 - 500 - Models\Drones\Artillery_drone.mwm - Ammo - 1 - - - 6 - 12 - 3 - 24 - true - - - - - - - - - - - + + + + + + + + AmmoMagazine + ImpulseTorch_Magazine + + ImpulseTorch Fuel Cartridge + Textures\GUI\Icons\ImpulseTorch_Magazine.dds + + 0.25 + 0.2 + 0.2 + + 1000 + 10 + Models\Ammos\ImpulseTorch_Magazine.mwm + 15 + + + + + + AmmoMagazine + FlakShotgun_Magazine + + Shotgun Shell + Textures\GUI\Icons\ImpulseTorch_Magazine.dds + + 0.25 + 0.2 + 0.2 + + 1000 + 10 + Models\Ammos\LBX5_AmmoShellShotgun.mwm + 1 + + + + + + + + + + + + + AmmoMagazine + DragonyosBomber + + Dragonyos Torpedo Bomber + Textures\GUI\Icons\Manticore.dds + + 1 + 2 + 0.5 + + 300 + 500 + Models\Drones\Manticore.mwm + Ammo + 1 + + + 6 + 12 + 3 + 24 + true + + + + + + AmmoMagazine + HarcosFighter + + Harcos Laser Fighter + Textures\GUI\Icons\Fighter_drone.dds + + 1 + 2 + 0.5 + + 300 + 500 + Models\Drones\Fighter_drone.mwm + Ammo + 1 + + + 6 + 12 + 3 + 24 + true + + + + + + AmmoMagazine + TesterLauncherStage + + Tester Sentry + Textures\GUI\Icons\Artillery_drone.dds + + 1 + 2 + 0.5 + + 350 + 500 + Models\Drones\Artillery_drone.mwm + Ammo + 1 + + + 1 + 12 + 1 + 12 + true + + + + + AmmoMagazine + FegyverLauncherStage + + Fegyver Light Sentry + Textures\GUI\Icons\Artillery_drone.dds + + 1 + 2 + 0.5 + + 350 + 500 + Models\Drones\Artillery_drone.mwm + Ammo + 1 + + + 1 + 12 + 1 + 12 + true + + + + + + AmmoMagazine + AgyuLauncherStage + + Agyu Heavy Sentry + Textures\GUI\Icons\Artillery_drone.dds + + 1 + 2 + 0.5 + + 290 + 500 + Models\Drones\Artillery_drone.mwm + Ammo + 1 + + + 6 + 12 + 3 + 24 + true + + + + + + AmmoMagazine + OrszemLauncherStage + + Orszem Sentinel + Textures\GUI\Icons\Artillery_drone.dds + + 1 + 2 + 0.5 + + 290 + 500 + Models\Drones\Artillery_drone.mwm + Ammo + 1 + + + 6 + 12 + 3 + 24 + true + + + + + + + + + + + + + + + + + + + + + AmmoMagazine + MACmag + + MACammo + Textures\Icons\srm8l.dds + pewpewpew + + 0.25 + 0.2 + 0.2 + + 103.5 + 138 + Models\Ammo\Starcore_LRM_Missile_Large.mwm + Ammo + 1 + + + + + + + + AmmoMagazine + SubterraneanSun + + no one reads this + + pain + + 0.1 + 0.1 + 0.1 + + 150 + 1 + + Ammo + 1 + + + + + + + + + + + AmmoMagazine + ScathisProj1 + + Scathis Electric Bullet + + pain + + 0.1 + 0.1 + 0.1 + + 150 + 1 + + Ammo + 32 + + + + + + + + + + + AmmoMagazine + ARCSTRIKEMAG + + ArcStrike Long Range Anti-Shield Missile + Textures\Icons\arrowiv.dds + I'M HERE TO EAT ASS AND KICK BUBBLEGUM. + + 0.1 + 0.1 + 0.1 + + 30 + 1 + Models\Ammo\Starcore_Arrow_Missile_Large.mwm + Ammo + 4 + + + + + + AmmoMagazine + SM3MAG + + SM-3 Counter Missile + Textures\Icons\arrowiv.dds + I'M HERE TO EAT ASS AND KICK BUBBLEGUM. + + 0.1 + 0.1 + 0.1 + + 30 + 1 + Models\Ammo\Starcore_Arrow_Missile_Large.mwm + Ammo + 8 + + + + + \ No newline at end of file diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc new file mode 100644 index 000000000..3105ca971 --- /dev/null +++ b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/SOL_CubeBlocks.sbc @@ -0,0 +1,1446 @@ + + + + + + + + ConveyorSorter + MagnaPulse_Gen + + [SOL] Goncol MagnaPulse + + Refresh your buddy's shields by manually shooting at it. + [Range: 4.5km technically] + [Heal: 12-20 mill shields (surface area dependent)] + [Reload Charge: 755 megaawatt] + [Relaod Time: 24 seconds] + + Textures\GUI\Icons\LargeArcEmitter.dds + Large + TriangleMesh + + + Models\ElectroShield3x3.mwm + + + + + + 60 + + + + + + + + + MagnaPulse_Gen + Y + + + + + + + ConveyorSorter + Flechette_DoubleBarrel + + [SOL] Flechette Shotgun + + Two shotguns duct taped together, with two ammo's. + Buckshot: + [Range: 2km technically] + [Damage: Kinetic] + [Reload Time: 4 seconds] + Smart Flak: + [Homing and AMS] + + Textures\GUI\Icons\FlakShotgun.dds + Large + TriangleMesh + + + Models\FlakShotgun.mwm + + + + + + + + + + + + + + + Flechette_DoubleBarrel + + + + + + ConveyorSorter + Impulse_Torch + + [SOL] Impulse Torch + + Its a offensive afterburner that gimbals + [Range: 600m] + [Damage: Energy] + [Afterburner and Impulse] + + Textures\GUI\Icons\ImpulseTorchBase.dds + Large + TriangleMesh + + + Models\FlamethrowerBase.mwm + + + + + + + + Impulse_Torch + + + + + + + + + + Z + Y + + + + + + + + + + + + + + ConveyorSorter + SolHyp_ArcStrike_Torp + + [SOL] ArcStrike CS-LR Torpedo + + Anti Shield Torpedo + [14km range] + [Energy damage] + [no physical damage] + [1min reload] + + + Textures\GUI\Icons\OPA-Logo.dds + Large + true + TriangleMesh + + + Models\OPA-Launcher.mwm + + + + + + + + + + + + + SolHyp_ArcStrike_Torp + Z + Y + Light + 65 + 5 + Default + + Defense + 1 + -15 + 75 + -180 + 180 + false + false + 7000 + 0.0005 + 0.0002 + 0.1 + 1.04719755 + Betty_Weapon_Destroyed + + + + + + ConveyorSorter + Counter_Battery + + [SOL] SM-3 Counter Battery + Anti-Missile Torpedo + [10km range with 1.5km minimum] + [8 mini torps target missiles] + [Will heal shields if it impacts] + [40 second reload] + + + Textures\GUI\missile_defense.png + Large + true + TriangleMesh + + + Models\OPA_Light_Launcher.mwm + + + + + + + + + + + + + Counter_Battery + Z + Y + Light + 65 + 5 + Default + + Defense + 1 + -15 + 75 + -180 + 180 + false + false + 10000 + 0.0005 + 0.0002 + 0.1 + 1.04719755 + Betty_Weapon_Destroyed + + + + + + + + + + + + + + + + + + + ConveyorSorter + S_Chem_Laser_Block + + [SOL] Saber Guided Laser + + [3km range] + [Energy damage] + [Homing] + [Reload: 10sec] + Uses a limited capacity fuel cell to power a powerful laser for 2 seconds before running out and needing 10 seconds to reset for another firing. + + Textures\Icons\laser icon.png + Large + true + TriangleMesh + + + Models\BT_Beam_Laser.mwm + + + + + + + + + + + + S_Chem_Laser_Block + Z + Y + + + + + + + + Light + 65 + 5 + Default + + Defense + 1 + -15 + 75 + -180 + 180 + false + false + 7000 + 0.0005 + 0.0002 + 0.1 + 1.04719755 + Betty_Weapon_Destroyed + + + + + + + + + + + + + + + + + + + + + ConveyorSorter + Nariman_Dart_Turret + + [SOL] Nariman NanoDart Turret + + Guided Turret + [Range: 5km] + [Velocity: 2.5km/s] + [Damage: Energy] + [Homing and AMS] + + Textures\GUI\Icons\SA_GaussAP_Large.dds + Large + false + TriangleMesh + + + Models\SA_GaussAP_Large.mwm + true + + + + + + + + + + + + + + + + + + + + + OutsideVoxel + 0.2 + 0 + + + OutsideVoxel + 0.2 + 0.01 + + + Nariman_Dart_Turret + Z + Y + Light + 30 + 1 + 213 + false + ParticleWeapExpl + Defense + -5 + 100 + -180 + 180 + 0.0001 + 0.0001 + false + 3500 + 0.0001 + 2 + Default + + + + + + + + + + + ConveyorSorter + Meson5_Turret + + [SOL] Auger Series 5 Meson Gun + + Internal Turret + Heavy Meson Gun: + [Range: 5km] + [Velocity: 5km/s] + [Damage: Kinetic] + + Textures\Icons\SA_Auger_S5.dds + Large + false + TriangleMesh + + + Models\SA_Auger_S5.mwm + true + + + + + + + + + + + + + + + + + + + + + + + + + + OutsideVoxel + 0.2 + 0 + + + OutsideVoxel + 0.2 + 0.01 + + + Meson5_Turret + Z + Y + Light + 30 + 1 + 213 + false + ParticleWeapExpl + Defense + -5 + 100 + -180 + 180 + 0.0001 + 0.0001 + false + 3500 + 0.0001 + 2 + Default + + + + + + ConveyorSorter + Meson3_Turret + + [SOL] Auger Series 3 Meson Gun + + Internal Turret + Medium Meson Gun: + [Range: 3km] + [Velocity: 5km/s] + [Damage: Kinetic] + + Textures\Icons\SA_Auger_S3.dds + Large + false + TriangleMesh + + + Models\SA_Auger_S3.mwm + true + + + + + + + + + + + + + + + + + + + + + + + + + + OutsideVoxel + 0.2 + 0 + + + OutsideVoxel + 0.2 + 0.01 + + + Meson3_Turret + Z + Y + Light + 120 + 1 + 213 + false + ParticleWeapExpl + Defense + -5 + 100 + -180 + 180 + 0.0001 + 0.0001 + false + 3500 + 0.0001 + 2 + Default + + + + + + + + + + + + + + + + + ConveyorSorter + SolHyp_Magnetic_Coilgun + + [SOL] Hercules Magnetic Accelerator Coilgun + + Hercules MAC + [10km range, 5km effective range] + [Kinetic damage] + [3500 m/s] + Three shot magazine. 8s reload. + + Textures\Icons\FixedCoilCannon.dds + Large + true + TriangleMesh + + + Models\Starcore\muzzled_coil_odin.mwm + + + + + + + + + + + + + + + + + SolHyp_Magnetic_Coilgun + Z + Y + Light + 65 + 5 + Default + + Defense + 1 + -15 + 75 + -180 + 180 + false + false + 7000 + 0.0005 + 0.0002 + 0.1 + 1.04719755 + Betty_Weapon_Destroyed + + + + + + + + + + + + + + ConveyorSorter + PSP + + [SOL] Point Singularity Projector + + ☢ CAUTION!! ☢ + Fires a singularity that + travels for [3km]. + At the end, an artificial + sun is spawned, with a + [2km pull EWAR field], + lasting 1 minute. + + Anything pulled to the center + will experience + Ultimate Nuclear Fusion™ + 2 minute reload. + + Textures\GUI\HexCannon.png + Large + TriangleMesh + + +
+ Models\Cubes\Large\HexCannon.mwm + + + + + + + + + + + + + + + + + + + + + + 1 + PSP + Z + Y + 600 + Heavy + + 0.960 + Defense + 213 + 0.2 + 1800 + + + + + + + ConveyorSorter + ScathisM77 + + [SOL] Scathis M-77 + + Burst AMS Turret + [Range: 5.5km] + [Velocity: 1km/s] + [Damage: Kinetic] + Adjustable RoF + 8 second reload + + Textures\GUI\Icons\Cubes\Metal_Storm.dds + Large + TriangleMesh + + + Models\Cubes\Large\Metal_Storm.mwm + + + + + + + + + + + + + + + + + + + + + + OutsideVoxel + 0.2 + 0 + + + OutsideVoxel + 0.2 + 0.01 + + + ScathisM77 + Z + Y + Light + 22 + Textures\GUI\Screens\AWP_TurretOverlay_Universal.dds + + 1.056 + Damage_WeapExpl_Damaged + ParticleWeapExpl + Defense + -9 + 85 + -180 + 180 + false + 800 + 0.002 + 0.003 + Default + 0.1 + 1.0 + BlockDestroyedExplosion_Large + WepSmallWarheadExpl + 280 + false + 1 + + + + + + + + + + + + + + ConveyorSorter + Dreadnaught_Beacon + + [SOL] Beacon Dreadnaught + Reinforcement Beacon that calls in a Dreadnaught Heavy Cruiser with Two Z-95 Starfighter Escorts + Textures\Logo_Imperial.dds + Large + TriangleMesh + + + Models\Large_Reinforcement_Beacon.mwm + + + + + + + + + + + + + + + + + Dreadnaught_Beacon_Block + Z + Y + Light + Extended + 30 + + 0.384 + 2 + 6 + Default + 225 + + + + + ConveyorSorter + Nebulon_Beacon + + [SOL] Beacon Nebulon-B + Reinforcement Beacon that calls in a Nebulon-B Frigate with Two Y-Wing Bomber Escorts + Textures\Logo_Rebel.dds + Large + TriangleMesh + + + Models\Large_Reinforcement_Beacon.mwm + + + + + + + + + + + + + + + + + Nebulon_Beacon_Block + Z + Y + Light + Extended + 30 + + 0.384 + 2 + 6 + Default + 225 + + + + + + + + + + + + + + + + + + + + + ConveyorSorter + WCSentry_Hangar + + [SOL] Sentry Hangar Bay + Textures\GUI\Icons\Hangar.dds + + 2 Minute Sentry Reload + 1 km Deployment Distance + + [Fegyver Medium Sentry] + 6km Railgun + 20 Shots + [Agyu Heavy Sentry] + 8km Coilgun + 4 Shots + [Orszem Sentinel] + 1.5km EMP Laser + + These drones can be given orders via the hangar's ActionFriend/ActionEnemy options. + Large + TriangleMesh + + + Models\Hangar.mwm + + + + + + + + + + + + + + + + + + + + + SentryHangar + Z + Z + Y + Light + 30 + Default + Defense + 1 + Damage_WeapExpl_Damaged + ParticleWeapExpl + BlockDestroyedExplosion_Large + WepSmallWarheadExpl + 500 + + Weapons + + + + + + ConveyorSorter + WCStrikecraft_Hangar + + [SOL] Strikecraft Hangar Bay + Textures\GUI\Icons\Hangar.dds + + These drones can be given orders via the hangar's ActionFriend/ActionEnemy options. + Large + TriangleMesh + + + Models\Hangar.mwm + + + + + + + + + + + + + + + + + + + + + FighterHangar + Z + Z + Y + Light + 30 + Default + Defense + 1 + Damage_WeapExpl_Damaged + ParticleWeapExpl + BlockDestroyedExplosion_Large + WepSmallWarheadExpl + 500 + + Weapons + + + + + + + + + + + + + + + + + + + + ConveyorSorter + WCTest_Hangar + + [SOL] Test Hangar Bay + Textures\GUI\Icons\Hangar.dds + These drones can be given orders via the hangar's ActionFriend/ActionEnemy options. + Large + TriangleMesh + + + Models\Hangar.mwm + + + + + + + + + + + + + + + + + + + + + TestHangar + Z + Z + Y + Light + 30 + Default + Defense + 1 + Damage_WeapExpl_Damaged + ParticleWeapExpl + BlockDestroyedExplosion_Large + WepSmallWarheadExpl + 500 + + Weapons + + + + + + + + + + + + + + + + + + + + + + + + ConveyorSorter + GIGA_BLASTPLATE + + 7x7 Basedplate + A massive 7x7 armored plate with the mass and integrity of 100 buster blocks to protect ships from directional damage. Lined with an integrated nanite repair network to slowly but constantly fix the blastplate. + Textures\Icons\SH_LG_BPB_Basedplate.dds + Large + TriangleMesh + + + Models\Cubes\large\SH_LG_BPB_Basedplate.mwm + + + + + + + + + + + + + + + + + + GIGA_BLASTPLATE + + Heavy + 1080 + 3 + 0.5 + 400 + true + + + + + + ConveyorSorter + ACTIVE_BLASTPLATE + + Active Blastplate + A 5x5 armor plate with the mass and integrity of 30 buster blocks to protect ships from directional damage. Has a pair of boreholes for weapon's fire to pass through uneffected. Lined with an integrated nanite repair network to slowly but constantly fix the blastplate. + Textures\GUI\Icons\ACTIVE_BLASTPLATE_icon.dds + Large + TriangleMesh + + + Models\Cubes\large\PM_LG_BLASTPLATE_BLASTPLATE.mwm + + + + + + + + + + + + + + + ACTIVE_BLASTPLATE + + Heavy + 420 + 3 + 0.5 + 300 + true + + + + + + TerminalBlock + REINFORCED_BLASTPLATE + + Reinforced Blastplate + A 5x5 reinforced armor with the mass and integrity of 30 buster blocks plate to protect ships from directional damage. Has a pair of boreholes for weapon's fire to pass through uneffected. + Textures\GUI\Icons\REINFORCED_BLASTPLATE_icon.dds + Large + TriangleMesh + + + Models\Cubes\large\PM_LG_BLASTPLATEINERT_BLASTPLATEINERT.mwm + + + + + + + + + + + + + + + REINFORCED_BLASTPLATE + + Heavy + 420 + 3 + 0.5 + 300 + true + + + + + + + + + TerminalBlock + 3x3_Blastplate_C + + Standard Blastplate C + A 3x3 armored plate with the mass and integrity of 10 buster blocks to protect ships from directional damage. Has four boreholes in an X shape for weapon's fire to pass through uneffected. + + + Textures\Icons\SH_LG_BP33C_3x3_Blast_Plate_C.dds + Large + TriangleMesh + + + Models\Cubes\large\SH_LG_BP33C_3x3_Blast_Plate_C.mwm + + + + + + + + + + + + + + + 3x3_Blastplate_C + 0.5 + Heavy + 180 + 3 + 100 + true + + + + + + + TerminalBlock + 3x3_Blastplate_B + + Standard Blastplate B + A 3x3 armored plate with the mass and integrity of 10 buster blocks to protect ships from directional damage. Has four boreholes for weapon's fire to pass through uneffected. + + + Textures\Icons\SH_LG_BP33B_3x3_Blastplate.dds + Large + TriangleMesh + + + Models\Cubes\large\SH_LG_BP33B_3x3_Blastplate.mwm + + + + + + + + + + + + + + + 3x3_Blastplate_B + 0.5 + Heavy + 180 + 3 + 100 + true + + + + + + TerminalBlock + 3x3_Blastplate_A + + Standard Blastplate A + A 3x3 armored plate with the mass and integrity of 10 buster blocks to protect ships from directional damage. Has a pair of boreholes for weapon's fire to pass through uneffected. + + + Textures\Icons\SH_LG_BP33A_3x3_Blastplate.dds + Large + TriangleMesh + + + Models\Cubes\large\SH_LG_BP33A_3x3_Blastplate.mwm + + + + + + + 3x3_Blastplate_A + + 0.5 + Heavy + 180 + 3 + 100 + true + + + + + + + + TerminalBlock + 2x4_Blastplate + + Elongated Blastplate + An elongated 2x4 armored plate with the mass and integrity of 10 buster blocks to protect ships from directional damage. Has a single central borehole for weapon's fire to pass through uneffected. + + + Textures\Icons\SH_LG_BP24_2x4_Blastplate.dds + Large + TriangleMesh + + + Models\Cubes\large\SH_LG_BP24_2x4_Blastplate.mwm + + + + + + + 2x4_Blastplate + 0.5 + Heavy + 180 + 3 + 100 + true + + + + + + diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/MasterConfig.cs b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/MasterConfig.cs new file mode 100644 index 000000000..4f5c6277b --- /dev/null +++ b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Data/Scripts/CoreParts/MasterConfig.cs @@ -0,0 +1,30 @@ + +namespace Scripts +{ + partial class Parts + { + internal Parts() + { + PartDefinitions( + Goncol_MagnaPulse, + Gimballed_Impulse_Torch, + Flechette_Cannon, + Nariman_Smart_Turret, + Auger3_Internal_Turret, + Auger5_Internal_Turret, + S_Chem_Laser, + //S_Armored_Laser, + SM3_Counter_Battery, + SolHyp_ArcStrike_HTorpedo, + SolHyp_MAC, + Point_Singularity_Projector, + Scathis, + Dreadnaught_Beacon, + Nebulon_Beacon, + Sentry_Hangar, + Strikecraft_Hangar, + Test_Hangar + ); + } + } +} diff --git a/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Models/ElectroShield3x3.mwm b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Models/ElectroShield3x3.mwm new file mode 100644 index 000000000..54d95c16e Binary files /dev/null and b/Weapon Mods/Stable/Anomaly_Solaris_Hypernautics/Models/ElectroShield3x3.mwm differ diff --git a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Data/Ammos_SA.sbc b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Data/Ammos_SA.sbc index 1db1b75eb..cf091c04f 100644 --- a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Data/Ammos_SA.sbc +++ b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Data/Ammos_SA.sbc @@ -52,5 +52,28 @@ + + + AmmoDefinition + TestAmmoB8T + + + 500 + 0 + 1400 + 50 + GunBullet + + + 0.2 + 6 + 80 + 50 + true + + + + + \ No newline at end of file diff --git a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Ele_Large.mwm b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Ele_Large.mwm index a33f883db..f480de8a8 100644 Binary files a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Ele_Large.mwm and b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Ele_Large.mwm differ diff --git a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Large.mwm b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Large.mwm index 33cf5d3fa..76f0a84c9 100644 Binary files a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Large.mwm and b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Large.mwm differ diff --git a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Recoil_Large.mwm b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Recoil_Large.mwm index 39cfbdc6b..6e0e8e706 100644 Binary files a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Recoil_Large.mwm and b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Recoil_Large.mwm differ diff --git a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Rot_Large.mwm b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Rot_Large.mwm index 8222f1f04..7c55f877f 100644 Binary files a/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Rot_Large.mwm and b/Weapon Mods/Starcore_Serpent_Arms_Heavy_Metal/Models/SerpentArms/SA_GaussAP_Rot_Large.mwm differ